我正在做驗證數字簽名。當我試圖用SignedCms.Decode()
,就引起System.Security.Cryptography.CryptographicException
{"ASN1 bad tag value met.\r\n"}
SignedCms.Decode()會導致「遇到ASN1錯誤標記值」。 r n「
我生成Java簽名數據,並嘗試以驗證它在C#中。
這是用於驗證簽名的C#代碼。
//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
,我不知道他們來自哪裏。
任何意見將不勝感激:)
感謝您的幫助。你是對的。我正在努力使用PKCS#7。 :) – Ashkandi