I’m using the function multosModularMultiplication from the multos.h C-API.
Doing so I noticed the following strange behaviour:
should be MultOS Card Ubivelox Card
5*6 mod 7 2 2 2
5*6 mod 8 6 6 err
5*6 mod 9 3 3 3
5*6 mod 10 0 0 err
5*6 mod 11 8 8 8
5*6 mod 12 6 6 err
5*6 mod 13 4 4 4
So while everything works fine on the MultOS card it seems that I always get an error on the Ubivelox card when I calculate something modulus an even number (I use the same code and the same APDU on both cards).
The error message I get is always: “exchange error SCardTransmit unknown pcsc error 0x8010002f”
Any ideas on this?
The Modular Multiplication primitive was included in MULTOS in order to support RSA. In RSA the modulus n is of course the product of two primes p and q. n therefore cannot be odd. So what I suspect you are seeing is that the Ubivelox implementation of the primitive is performing a check on the modulus to make sure it is odd (and therefore valid for RSA).
The error you are seeing if probably because the card has abended (i.e. gone mute), which is a standard response to attempts to call primitives in an invalid way.
Just to be clear for others reading this post, both cards are MULTOS cards, but one is implemented by Multos International, the other by Ubivelox.