OracleがJavaの7の実装を提供するだけSEC曲線を使用しています。ここでは
は、私が使用するコマンドです。これらはNISTの標準曲線と同じです。あなたの場合、P-256が使用されたことは確かです。しかしJavaでは、元のSEC名は
"secp256r1"
です。
ASN.1 decodeその後、内容
KeyStore store = KeyStore.getInstance("JKS");
store.load(new FileInputStream(args[0]), args[1].toCharArray());
ECPrivateKey key = (ECPrivateKey) store.getKey(args[2], args[3].toCharArray());
System.out.println(Base64.getEncoder().encodeToString(key.getEncoded()));
::第二オブジェクト識別子(OID)のための
SEQUENCE (3 elem)
INTEGER 0
SEQUENCE (2 elem)
OBJECT IDENTIFIER 1.2.840.10045.2.1
OBJECT IDENTIFIER 1.2.840.10045.3.1.7
OCTET STRING (1 elem)
SEQUENCE (2 elem)
INTEGER 1
OCTET STRING (32 byte) E935A4475D495ADA18A791C1222D5A3424CF540BDE42802F588C664082D10808
そしてlookup the value:1.2を
だから、秘密鍵を取得してエンコードすることができます。 840.10045.3.1.7:
「SEC 2:推奨楕円曲線領域パラメータ」に記載されている楕円曲線領域「secp256r1」をカバーしています。 SEC(効率的な暗号化のための規格)曲線は、ANSI X9.62、ANSI X9.63、IEEE P1363、および他の標準のようなECC標準の実装者が使用するために一般的に要求されるセキュリティレベルで楕円曲線領域パラメータを提供する。