当前位置: 首页 > 知识库问答 >
问题:

弹力城堡:创建CMS(又名PKCS7)证书?

曹臻
2023-03-14
    ASN1EncodableVector  v = new ASN1EncodableVector();

    v.add(tbsCert);
    v.add(sigAlgId);
    v.add(new DERBitString(signature));

    X509CertificateObject clientCert = new X509CertificateObject(Certificate.getInstance(new DERSequence(v))); 

    PKCS12BagAttributeCarrier bagCert = clientCert;
    bagCert.setBagAttribute(PKCSObjectIdentifiers.pkcs_9_at_friendlyName,
            new DERBMPString("Certificate for IPSec WLAN access"));
    bagCert.setBagAttribute(
            PKCSObjectIdentifiers.pkcs_9_at_localKeyId,
            new SubjectKeyIdentifierStructure(pubKey));

我看到API中有CMSSignedDataGenerator,但我不知道它是否适用于我的情况,如果适用,如何....

我也不明白为什么,如果创建的证书是PKCS12证书,那么为什么他们使用PKCS9变量来构建它。

共有1个答案

段成益
2023-03-14

没有CMS证书或PKCS#12证书。

CMS是加密消息语法。它指定一种容器格式,该格式可能包含签名者的X5.09兼容证书。PKCS#12是一种用于加密对象的容器格式,通常用于存储一个或多个证书/私钥对。PKCS#9显式定义X5.09证书的属性。

您可能只需要构建一个X5.09证书,可能使用PKCS#9定义的属性。这些证书应该与CMS和PKCS#12兼容。

 类似资料:
  • Ladar Levison编写了ecies_encrypt和ecies_decrypt C函数。这些功能与ECIES弹力城堡兼容吗?如果不是,有没有人知道要修复什么或者ecies的另一个C实现?

  • 我正在处理一个包含多个子项目的项目,它们都使用我创建的用于哈希、签名和加密消息的实用程序库。这个库基本上是bouncy Castle的包装器。 当我运行与库相关联的测试时,一切都通过了,一切都好了。当我将实用程序库打包到jar中时,会发生两件事: 正在使用库的子项目找不到与bouncy Castle关联的JAR。 即使将bouncy castle JAR添加到正在使用库的子项目中,项目也找不到bo

  • 使用PEM证书,如 我的问题是,AFAIK,pemparser中没有密码的位置。 有人能给我一个如何将代码迁移到PEMParser版本的例子吗?

  • 在FIPS模式下,PKCS#12格式在加密文件时必须使用兼容的加密和哈希算法。 当我阅读BC-FIPS文档时,它说在批准模式下,它们不支持PKCS#12,因此这意味着我们无法在BC-FIPS批准模式下读取PKCS12密钥库;我们使用BC-FIPS作为加密提供者,还使用PKCS12和JKS格式存储密钥和证书。 BC-FIPS声称-“PKCS12密钥存储支持以下变体: PKCS12-3DES-3DES

  • 我的项目正在对来自某些第三方软件的某些数据集进行签名验证。使用的签名算法是 。当我使用SDK附带的标准SUN加密提供程序时,一切都很顺利。最近我切换到了Bouncy Castle 1.50,之后,一些以前(即SUN提供者)进行验证的数据集开始失败,而其余的仍然被验证正常。 我探索了两个提供程序的源代码,结果发现SDK的默认提供程序对格式错误的签名有某种保护(同时能够恢复),而Bouncy Cast

  • 我有一个自签名证书(不是流行的X.509证书)。证书和ECDSA公钥/私钥对由java程序使用bouncy Castle生成。我需要使用OpenSSL用C程序验证这个证书。然而,java程序可以正确地验证ECDSA签名,但openssl验证失败。如果我使用相同的私钥用openssl对消息重新签名,那么使用openssl的签名验证将通过。 下面是与密钥生成相关的java代码片段(生成密钥对后,我实际