【发布时间】:2017-04-05 03:55:50
【问题描述】:
我想验证我的签名。我的签名是一个字节数组。我用海绵城堡 我收到错误“org.spongycastle.cms.CMSException:格式错误的内容。” 这是我的代码:
String base64 = Base64.toBase64String(signedchallenge);
CMSSignedData cms = new CMSSignedData(Base64.decode(base64));
Store store = cms.getCertificates();
SignerInformationStore signers = cms.getSignerInfos();
Collection c = signers.getSigners();
我在“CMSSignedData cms = new CMSSignedData(Base64.decode(base64));”行中出现错误
我也使用这种方法生成签名挑战。它在智能购物车中做到了
Signature signature=Signature.getInstance(Signature.ALG_RSA_SHA_PKCS1,false);
signature.init(thePrivateKey,Signature.MODE_SIGN);
signLength=signature.sign(buffer,(short)(ISO7816.OFFSET_CDATA & 0xFF), inputlength, buffer, (short)(0));
apdu.setOutgoingAndSend((short)0,signLength);
【问题讨论】:
-
code的第一个sn-p不是签名验证。我猜签名生成为
buffer。buffer和signedchallenge是什么关系?显示完整代码。公钥在哪里?您想要简单的 PKCS#1 验证吗? -
谢谢你回答我。是的,我编辑了我的代码。已签名的质询在缓冲区中。我不会为验证编写完整的代码。publickey 并不重要。我从另一种方法得到它。是的,这是我生成符号的代码。我想和我的私人 ke 签署一个挑战。什么是标准?我会为符号生成犯错吗?如果好的话我想用这个方法
-
您将需要公钥来验证 PKCS#1 签名。这是一个标准的数字签名,但您有关于嵌入 pkcs1 的“CMS”格式的邮政编码。我提供了一个答案来验证 PKCS#1 签名
-
这是否意味着我应该生成一个 cms signe 格式?
-
CMS 封装了数字签名,包括签名时间或使用的 X509 证书等其他属性,CMS 值以 ASN.1 语法编码。用法取决于您的用例的目的。不知道细节是不可能给建议的。我建议在这里发布您的问题security.stackexchange.com
标签: android digital-signature bouncycastle smartcard contactless-smartcard