デジタル署名の検証について行っています。そして、私が使用しようとしたときにSignedCms.Decode()
、それが原因でしたSystem.Security.Cryptography.CryptographicException
{"ASN1 bad tag value
met.\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
どこから来たのかわかりません。
どんなアドバイスでも大歓迎です:)