2016-12-01 5 views
0

私たちはオクテット文字列でなければならないRSA公開鍵を作成しようとしています。DERでエンコードされたRSA公開鍵(OCTET STRING)

私たちは、コードの下に使用して、鍵ペアを作成しようとしている。

public static KeyPair getRSAKeyPair() throws InvalidAlgorithmParameterException, NoSuchAlgorithmException, NoSuchProviderException { 
    KeyPairGenerator g = KeyPairGenerator.getInstance("RSA", "SC"); 
    g.initialize(2048); 
    return g.generateKeyPair(); 

}

をして、それを取得する公開鍵を思わ

PublicKey publicKey1 = keyPair.getPublic(); 
byte[] pubkey = publicKey1.getEncoded(); 

コードの下に使用して、それから公開鍵を取得上記のコードでフェッチされるのは、DERでエンコードされたバイナリ文字列です。

クエリ:

  1. それはオクテット文字列を作成するようにどのように私は上記のコードを変更することができます。
  2. どのようにDERエンコードすることができますか?
+1

理由がない限り、プロバイダを指定しないでください。おそらくあなたのコードは移植性に欠けます。 –

答えて

2

は、オクテット文字列です。 「オクテット文字列」は「バイト配列」の別の用語です。

getEncodedは通常SubjectPublicKeyInfoにエンコードされたDERを返すため、既にDERでエンコードされています。それにopenssl asn1parse -inform DER -in <file>を試してください。

関連する問題