I need to enable my applications' users to sign their approvals with their personal USB security token.
I've managed to sign data but I haven't been able to get the information of who's token has been used to do so.
Here is the code I have so far:
CspParameters csp = new CspParameters(1, "SafeNet RSA CSP");
csp.Flags = CspProviderFlags.UseDefaultKeyContainer;
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(csp);
// Create some data to sign.
byte[] data = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7 };
Console.WriteLine("Data : " + BitConverter.ToString(data));
// Sign the data using the Smart Card CryptoGraphic Provider.
byte[] sig = rsa.SignData(data, "SHA1");
Console.WriteLine("Signature : " + BitConverter.ToString(sig));
There is a field in token's information called "Token Name". How can I access that field in order to validate which token has been used to sign the approval?
Additional info and update:
- "Token name" always match owner's name (the user who owns the usb token)
- It seems like it can't be done, maybe there is a web service or something I need to call in order to get the information directly from the cert authority.