Sten Lindström, head of the Swedish police when the Bofors scandal broke in 1987, handed evidence seized during his investigation to Indian newspapers, including to journalist Chitra Subramaniam-Duella.
The case revolved around the sale of 410 artillery guns to India by Swedish arms group AB Bofors, which was subsequently accused of paying bribes of up to $1.3 billion, notably to a businessman with links to Gandhi.
"I could not count on my government or Bofors or the government of India to get to the bottom this," Lindström said in an interview with Subramaniam-Duella on The Hoot media website.
"My only option was to leak the documents to someone we could trust," said the "Swedish Deep Throat" as he was branded in India, a reference to the whistleblower who brought down US president Richard Nixon in 1970s.
Lindström said that there was no evidence that Gandhi had received a bribe, but the leader "watched the massive cover up in India and Sweden and did nothing" which meant "innocent people were punished while the guilty got away".
The revelations resulted in a criminal probe in Sweden into Bofors executive Martin Ardbo, but the probe was dropped due to lack of evidence.
In his 2005 book Blood on the "Snow: The Killing of Olof Palme", historian Jan Bondeson speculated there was a connection between then-Swedish prime minister Olof Palme's involvement in the deal and his assassination.
In comments that raise more questions about the investigation into the scandal, Lindström added that there was "conclusive evidence" against Ottavio Quattrocchi, the Italian middleman linked to Gandhi.
In March last year, Indian police definitively closed down their probe saying they did not have enough evidence to prosecute anyone and that further enquiries were a waste of taxpayers' money.
Rajiv Gandhi was voted out of office in 1989 largely over the Bofors deal.
He was assassinated in 1991 by ethnic Tamil extremists.
His Italian-born wife Sonia today heads the Congress party, which is again embroiled in a host of corruption scandals.