Barack Obama has said he is "disappointed" that Russia granted temporary asylum to National Security Agency leaker Edward Snowden instead of sending the former government contractor back to the US to face espionage charges.

Obama, in his first comments about Snowden since Russia's decision last week, said the situation reflected "underlying challenges" in dealing with Moscow.

"There have been times where they slip back into cold war thinking and a cold war mentality," Obama said on NBC's Tonight Show.

Snowden, an ex-NSA systems analyst, is accused of leaking details about highly secretive government surveillance programs. He spent several weeks in the transit zone of a Moscow airport before being granted asylum for a year.

Russia's decision has pushed the White House to reconsider Obama's plans to travel to Russia in September. He said he would attend an international summit in St Petersburg as it was important for the US to be represented at talks among global economic powers. But he did not say whether he planned to attend separate meetings with Vladimir Putin in Moscow.

The White House has said it was evaluating the "utility" of the Putin meetings.

Obama also criticised a new Russian law cracking down on gay rights activism, saying he has "no patience for countries that try to treat gays and lesbians and transgendered persons in ways that intimidate them or are harmful to them".

Russia has said it will enforce the law when it hosts the 2014 Winter Olympics in Sochi. Asked whether the law would affect the games, Obama said he believed Putin and Russia have "a big stake in making sure the Olympics work".

"I think they understand that for most of the countries that participate in the Olympics, we wouldn't tolerate gays and lesbians being treated differently," he said.