`pemParser.readObject()`返回PrivateKeyInfo的实例`

问题描述 投票:0回答:1

我有加载客户端私钥的代码

// load client private key
PEMParser pemParser = new PEMParser(new FileReader(keyFile));
Object object = pemParser.readObject();
PEMDecryptorProvider decProv = new JcePEMDecryptorProviderBuilder().build(password.toCharArray());
JcaPEMKeyConverter converter = new JcaPEMKeyConverter().setProvider("BC");

KeyPair key;
if (object instanceof PEMEncryptedKeyPair) {
    System.out.println("Encrypted key - we will use provided password");
    key = converter.getKeyPair(((PEMEncryptedKeyPair) object)
            .decryptKeyPair(decProv));
} else {
    System.out.println("Unencrypted key - no password needed "+object.getClass().getName());
    key = converter.getKeyPair((PEMKeyPair) object);
}
pemParser.close();

在某些情况下,

pemParser.readObject()
返回类
PEMKeyPair
的对象,这很好。但如果我在下面定义了客户端密钥,则返回
pemParser.readObject()
的实例。为什么我会得到
PrivateKeyInfo
以及在这种情况下如何处理?

客户端密钥:

PrivateKeyInfo

UPD

说实话,我的安全性并不强,当我从 pemParser.readObject() 获取

-----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC4weh0zOpMwqZc y3oExJQ84Vhyrf/6IdGmUpHaexyrhbbuZD8SThb1O/pp/gs7ZOgqXLQx5jYEwncO 7VVlDJg8inKDaeDZn/EHmTqs4AVYAxvqXU4C9J3QKw4+zf/WRbvd1FWMvD/Lurqn 3/UF0iIjiyu/sZojyQ1VnWAHGtnuYIGEKij12fQt+AMhcuYKPExaCdB7rQocEnxw /AxKRTHmRPHu9f1ny78ALCBMp8/3UdclHCL2Hszcpj+mfRwoRMVDER0LA3edUnGj kkhbxGckSvGatmknNRzsf4XhSAfxb1kXEtX1ZQd7/ZPIxE1JZSbljgOIi5X1CLpc gGD4vYaDAgMBAAECggEBALfa9vksZchnN2hGcDFIcf+3e+37Kyz99IQfzNbvBlPF p4nJpl4P6Za2zfYmAYVkYAiv4f16Cq1n21S2ZvE8vE4as+QEO+Y03IVkPViFQawY w/HQUe5tAJKEFhP3qSzQjigswclgF9gkBNVD76+QMbrPJoUHNs1/qE5XYpUPamlk XFvw+7+DQVQpd4zMx0lP1zU9wdG4hX3639H+5SYHHDpfnjNk8vdVVmBZO0iPUjAO gNs/yllqTRmqst7Nt4oVKb+Ygabv+j+nz55Z2kHNJGKQA4JoHXYcctNz9CjKOs0p kHMsYQWnlPXYs/wrkUv+PnRP0Crwav/bjtDsDYLeeRECgYEA5eCEauTI4V0MU9dO PV8sShNIfTBo9kjjrkUq3LTlUEk1nvBLtc1uyMQPRisTWYrG+InhRgyZvhax4wgK ynuicxyB/5vyTA7OZl/kG2ikSllsDJrfAtFjqGDvuDKrNpo1u9dkrtvcZNdV5B4Z ui4Ekh1v9iuciwma3nQita1v8IsCgYEAzcDKt3NTgsL/ilHO4bIIkXwf3Qltsnlf hxVdfkaCWU653e7IVrLkORK2qCeDQDqh/H+58astuW6kw+WjcYuMY/4IXETsBhUv zAKyuwSAXYva+Qpk7NIsgRBCYJbt6s6Q9Xnh2VKVHpWrWWZL05MmSbH/OHbjzPj2 KhVMytStyOkCgYEAmQorPjsIXbkjzuGFbihhhQNnfCjxiB2orsnPqlYoYJYMw764 uNWGztRwUse0vyU8KBUrTAZxiHL1hO9Ct+EtmrM8/N5mpiopUVC/vVuiHPmBjLbC h869KUk37wqUn+p0oZTZq+wlw2D1BsTfXerrEhfVBS+trYb8euMYhJlt79cCgYBI vF7te1eKYmT0APeh0c41oCujeDHPZhjfKC5k9YgfCjWqvz8TZypHAtaPm2hKzG93 U6/oPxtq8jJNDmE5QpvevW83LyZBADxlYo7MjkrSxx4h7ArBrYsOFTFh8/kniN61 6OBuc0NEDKUGdaNYqCxg4QvYai8dxuU++0iqa4UEAQKBgB01N4lwaUDf2NAagr4j c9ctHWdK8Zmic8YDGpTu2EFDaFuBOpcy9dmdrluikQOtX1zBcp0pxQCVBHzT/3bE DBRxQocxhzKzUZlxxnHsbXTJlXvatxlkkU5zxsmj1zX3p/we46F7nkP7n7jabH+V sNRd5qP8b/Dm0tXxUAZ1uOb6 -----END PRIVATE KEY-----

时,我不知道如何构造

KeyStore
对象。

完整程序代码:

PrivateKeyInfo


java rsa bouncycastle
1个回答
0
投票

如果您发现了什么,请分享。

© www.soinside.com 2019 - 2024. All rights reserved.