US President President Donald Trump has sought to discredit his former lawyer Michael Cohen after the ex-aide's bombshell congressional testimony in which he essentially called Mr Trump a criminal.

"He lied a lot," Mr Trump told a press conference in Vietnam after his summit with North Korean leader Kim Jong-un.

However, he said Mr Cohen had told the truth in yesterday’s testimony to a congressional hearing in Washington when he said there was had been no collusion with Russia.

"He didn't lie about one thing; he said 'no collusion'."

Mr Cohen told the hearing he had no direct knowledge of collusion but that he had suspicions.

During his testimony, Mr Cohen called Mr Trump a "conman" who knew in advance about the release of stolen emails aimed at hurting his Democratic rival Hillary Clinton in the 2016 US presidential election campaign.

Mr Trump called the testimony "shameful".

The president complained that the testimony took place during the summit with Mr Kim.

"I think having a fake hearing like that and having it in the middle of this very important summit is really a terrible thing," Mr Trump said.

Mr Trump again insisted the probe into Russian collusion is a "hoax" and a "witch-hunt".

Mr Cohen will be back on Capitol Hill today for another committee hearing, this time behind closed doors.

The focus of the meeting will be possible collusion between the Trump campaign and Russia. 

Read more
Michael Cohen calls Trump 'racist' and 'conman'
Michael Cohen's testimony on Donald Trump - the main points
'We had to walk' says Trump as Kim summit ends without agreement