"I'm doing my best to control my anger, but I'm totally disappointed with the confirmation," Cardoso said in a statement on Facebook. "I've been fighting this for 16 months, but from the beginning it was clear that the UCI wanted to make an example of me to set a precedent to sanction athletes with an A sample, ignoring due process."
Cardoso's out-of-competition sample from June 18, 2017 tested positive for the presence of the banned blood booster erythropoietin. However, EPO positives are not always clear-cut because the body makes its own version of the hormone and can only be distinguished from the banned pharmaceutical by tests that detect different types of modifications made during the manufacturing process.
After his B-sample was analysed, test was inconclusive, according to Cardoso. Rather than negate the positive, the lab called the sample 'atypical'.
"We realized that when they [the UCI] hired one of Switzerland's main law offices and practically all the specialist doctors who could help us prove our case," Cardoso wrote. "Why did they do that in a case they claim to be completely clear? If it were a simple case, it would be closed quickly.
"I would also like to point out that the test out of competition in question was held outside my designated schedule and that I opened the door knowing who was there. If I was involved in something illegal, I could have just stayed in without fear of repercussions. I know that does not prove my innocence but I would like to think that it shows how open and involved I have always been in the fight against doping."
Cardoso said that despite the anguish it has caused him, his family and his former teammates at Trek-Segafredo, he will raise funds for an appeal and continue trying to prove his innocence.
"For me, it is also a question of justice, because unless you have the financial resources of a great cyclist, it is impossible to fight."
Thank you for signing up to Cycling News. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.