現在、GOST 34.10-2001 署名アルゴリズムの鍵ペアを生成する必要があります。バウンシーキャッスルプロバイダーがこのアルゴリズムをサポートしていることを発見してうれしく思いましたが、キーペアを生成して、任意のタイプのキーストアに保存することはできません. 現在、私はこのコマンドを試しました(このコマンドは、 keyalg
isDSA
および sigalg isの場合にうまく機能しますSHA1withDSA
):
keytool -genkey -alias test1 -keyalg ECGOST3410 -keysize 512 -sigalg GOST3411withECGOST3410 \
-keypass test_1 -validity 1000 -storetype JKS -keystore test1.jks -storepass test_1 -v \
-provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-1.46.jar"
しかし、私はエラーがあります:
keytool error: java.lang.IllegalArgumentException: unknown key size.
java.lang.IllegalArgumentException: unknown key size.
at sun.security.x509.CertAndKeyGen.generate(CertAndKeyGen.java:134)
at sun.security.tools.KeyTool.doGenKeyPair(KeyTool.java:1156)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:786)
at sun.security.tools.KeyTool.run(KeyTool.java:172)
at sun.security.tools.KeyTool.main(KeyTool.java:166)
keysize
キーサイズを操作したり、コマンドからオプションを削除しようとしたときに表示されるエラーとまったく同じです。しかし、いくつかの特別なケースがあります。に設定keysize
する256
と、別のエラーが発生しました:
keytool error: java.lang.IllegalArgumentException: key size not configurable.
java.lang.IllegalArgumentException: key size not configurable.
at sun.security.x509.CertAndKeyGen.generate(CertAndKeyGen.java:134)
at sun.security.tools.KeyTool.doGenKeyPair(KeyTool.java:1156)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:786)
at sun.security.tools.KeyTool.run(KeyTool.java:172)
at sun.security.tools.KeyTool.main(KeyTool.java:166)
現在、キーペアを生成する方法とキーストアに保存する方法がわかりません。また、GOST 34.10-2001 アルゴリズムのキー ペアを生成できる Java コードもあります。
Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider());
KeyPairGenerator kpg = KeyPairGenerator.getInstance("ECGOST3410", "BC");
kpg.initialize(new ECGenParameterSpec("GostR3410-2001-CryptoPro-A"));
KeyPair kp = kpg.generateKeyPair();
このコード サンプルではECGenParameterSpec
、クラスを使用してキー ペア ジェネレーターを初期化してい-providerArg provider_arg
ます-Jjavaoption
。
PS 曲線名をパラメーターとして指定する必要があると思いますが、使用するパラメーターを決定できません。