Sir*_*ish 6 java bouncycastle public-key-encryption
我需要使用java读取公钥并对其进行解析,以检查其有效性,指数,模数或是否有效.我尝试了以下代码,并遇到了问题.能帮我找到解决这个问题的方法吗?
public static void getPublicKey(String key) throws Exception {
key = key.replaceAll("-----BEGIN SSH2 PUBLIC KEY-----", "");
key = key.replaceAll("-----END SSH2 PUBLIC KEY-----", "");
KeyFactory kFactory = KeyFactory.getInstance("RSA", new BouncyCastleProvider());
byte pub_llave[] = new BASE64Decoder().decodeBuffer( key ) ;
X509EncodedKeySpec spec = new X509EncodedKeySpec(pub_llave);
PublicKey pubkey = (PublicKey) kFactory.generatePublic(spec);
}
Run Code Online (Sandbox Code Playgroud)
以下是例外情况:
java.lang.IllegalArgumentException: unknown object in getInstance: org.bouncycastle.asn1.DERApplicationSpecific
at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source)
at org.bouncycastle.asn1.ASN1Sequence.getInstance(Unknown Source)
at org.bouncycastle.asn1.x509.SubjectPublicKeyInfo.getInstance(Unknown Source)
Run Code Online (Sandbox Code Playgroud)
SSH 密钥不是 X.509 密钥,因此它无法工作(以这种方式)。
https://jsvnserve.googlecode.com/svn/trunk/src/main/java/com/googlecode/jsvnserve/sshd/PublicKeyReaderUtil.java显示了如何解析 SSH 密钥的方法。
| 归档时间: |
|
| 查看次数: |
5001 次 |
| 最近记录: |