Я занимаюсь проверкой цифровой подписи. И когда я пытался использовать SignedCms.Decode()
, это вызывало System.Security.Cryptography.CryptographicException
{"ASN1 bad tag value
met.\r\n"}
Я генерирую данные подписи на Java и пытаюсь проверить их на С#.
Вот код С# для проверки подписи.
//base64 signature data
string encodedMessage_b64 = "ahXwmjFNUVxxxxxx==";
byte[] encodedMessage = Convert.FromBase64String(encodedMessage_b64);
SignedCms signedCms = new SignedCms();
//throw exception
signedCms.Decode(encodedMessage);
А вот код Java для генерации подписи.
Signature rsaSig = Signature.getInstance("SHA1withRSA");
//privateKey from keytore
rsaSig.initSign(priKey);
rsaSig.update(data.getBytes());
//org.apache.commons.codec.binary.Base64;
String signedData = Base64.encodeBase64String(rsaSig.sign());
Проблема в carriage return
и line feed
, не знаю откуда они.
Любой совет будет принят с благодарностью :)