首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从.DER文件加载私钥

从.DER文件加载私钥
EN

Stack Overflow用户
提问于 2017-08-05 18:07:49
回答 1查看 1.8K关注 0票数 1

我最初有一个带有私钥的受密码保护的PEM文件,该文件使用BouncyCastle读取到一个Java应用程序中。PEM文件以

-开始RSA私钥

这让我相信它是PKCS#1格式的。我不使用PEM文件,而是生成一个二进制文件,并将私钥读入Java程序。根据here,我使用了以下openssl代码来生成DER文件:

代码语言:javascript
复制
openssl pkcs8 -topk8 -nocrypt -in private.pem -outform der -out private.der

然后使用以下Java代码尝试读取DER文件:

代码语言:javascript
复制
Path path = Paths.get(privateKeyLocation);
        byte[] byteArray = Files.readAllBytes(path);

        PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(byteArray);

        PrivateKey privKey;
        try {
            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            privKey = keyFactory.generatePrivate(keySpec);
        } catch (InvalidKeySpecException e) {
            logger.error("error with jwt", e);
            return null;
        } catch (NoSuchAlgorithmException e) {
            logger.error("error with jwt", e);
            return null;
        }

但我遇到了一个错误:

代码语言:javascript
复制
java.lang.NoClassDefFoundError: com/rsa/asn1/ASN_Exception
at com.rsa.jsafe.provider.JS_KeyFactory.b(Unknown Source)
at com.rsa.jsafe.provider.JS_KeyFactory.engineGeneratePrivate(Unknown Source)
at java.security.KeyFactory.generatePrivate(KeyFactory.java:372)
...

我不知道是什么导致了这个错误,我想知道是否有更好的方法使用BouncyCastle来读取DER文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-12 14:24:51

它最终变成了一个maven问题,它正在更改private.der文件的路径。使用绝对路径解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45525002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档