使用 openssl shell 命令,我可以在导出 pkcs12 文件时传递 -CSP 参数来定义自定义提供程序。
例如:
openssl pkcs12 -export -in "${DIR}/${NAME}.crt"-passin pass:"${PASSWD_KEY}"-passout pass:"${PASSWD_KEY}"-inkey "${DIR}/${NAME}.key"-name "${NAME}"-certfile ${CAFILES} -CSP "ECDSA_p256#Microsoft 软件 key 服务提供商"-out "${DIR}/${NAME}.p12"
我需要为使用 Java API 和充气城堡生成的 keystore 设置此提供程序。 我正在使用 Keystore 和 X509v3CertificateBuilder 类。
使用 Java API 生成 pkcs12 时如何设置提供程序?
注意: 我知道 Keystore.getInstance 方法接收一个指定提供程序的字符串,但是,该字符串表示一个充气城堡样式的提供程序,而不是一个允许在 Windows 应用程序中使用椭圆曲线的提供程序。
最佳答案
我已经找到了如何设置 Microsoft CSP 属性,您必须执行此操作:
PKCS12BagAttributeCarrier bagAttr = (PKCS12BagAttributeCarrier)privateKey;
bagAttr.setBagAttribute(
MicrosoftObjectIdentifiers.microsoft.branch("17").branch("1"),
new DERBMPString("ECDSA_P256#Microsoft Software key Service Provider"));
关于java - 如何使用 java 设置 keystore 的加密服务提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37150964/