我正在尝试用bouncy castle (v1.65)在java中进行加密/解密。因此,我需要将MSCAPI(Windows- my )密钥转换为PGP密钥。当我尝试使用PSCK12或PSCK8时,它就像是一种魔力。但对于MSCAPI(Windows-MY) Store,它不起作用。
下面是我的代码:
Security.addProvider(new BouncyCastleProvider());
JcaPGPKeyConverter converter = new JcaPGPKeyConverter().setProvider(TypeProvider.MSCAPI.getType());
PGPPublicKey pgpPublicKey = this.getPgpPublicKey(keyPair.getCertificate());
PGPPrivateKey pgpPrivateKey = converter.getPGPPrivateKey(pgpPublicKey, (PrivateKey)keyPair.getPrivateKey());
PGPKeyPair pgpKeyPair = new PGPKeyPair(pgpPublicKey, pgpPrivateKey);
ByteArrayOutputStream secretKeyOutput = new PGPCryptographieServiceImpl().pgpPrivateKeyFromKeyPair(pgpKeyPair);
File pgpKeyFile = new File(initialDirectory, nom.replace("*", "")
.replace("/", "").replace("<", "").replace(">", "").replace(":", "")
.replace("|", "").replace("\\", "").replace("?", "") + ".secret.asc");
FileUtils.writeByteArrayToFile(pgpKeyFile, secretKeyOutput.toByteArray());
}使用MSCAPI(Windows-MY)键时,我有以下例外:
sun.security.mscapi.CPrivateKey cannot be cast to java.security.interfaces.RSAPrivateCrtKey
有谁能帮帮我吗?
发布于 2021-03-06 18:46:40
我认为现在回复太晚了。
支持的加密机制
https://stackoverflow.com/questions/62768578
复制相似问题