2017-09-08 5 views
0

私はDSAパラメータ用のPEMファイルを持っています。私ははBouncyCastleがDSAParametersDSAKeyGenerationParmatersのクラスを持っていることがわかりBouncycastleのPEMファイルからDSAパラメータをロードするにはどうすればよいですか?

-----BEGIN DSA PARAMETERS----- ....... -----END DSA PARAMETERS-----

:他の言葉では、コンテンツがこのようなヘッダー/フッターを持っています。私はこのPEMがこれらのパラメータを表現していると思われますが、PEM形式から読み込む方法を理解することはできません。

(背景:レガシープロジェクトからは、DSAのシグネチャが40バイトになると思っていましたが、代わりに46バイトが使用されていますが、DSAパラメータは責任があると思われます。

+0

PEMReaderを試しましたか? – Lothar

答えて

1

少なくとも1.57まで(私はまだ1.58はインストールされていません)BCpkix org.bouncycastle.openssl.PEMParserはDSAパラメータを実装していませんが(ただし、鍵を生成してシグネチャを生成するためにロードしようとしています)これは容易ではないので、ECパラメータを実行します)。 はちょうどそれが

openssl dsaparam -in file -noout -text 

を使用する方が簡単(ずっと)になりますあなたのパラメータを見てしかし、私はあなたのパラメータで間違った何かを見つけることができません保証します。従来のDSAパラメータは、1024ビットグループと160ビットサブグループであり、20年にわたって変化や変化はありませんでした。

DSA-1024/160シグネチャが40オクテットを超える通常の理由は、(FIPS 186では必須ではありませんが)規約上、ASN.1 DERでエンコードされているためです。あなたはそれについて質問をしていた場合、私は正確に同じ問題があるECDSA用の既存のQsが、にあなたを指すことができます:

https://crypto.stackexchange.com/questions/1795/how-can-i-convert-a-der-ecdsa-signature-to-ASN.1 https://crypto.stackexchange.com/questions/33095/shouldnt-a-signature-using-ecdsa-be-exactly-96-bytes-not-102-or-103
https://crypto.stackexchange.com/questions/37528/why-do-openssl-elliptic-curve-digital-signatures-differ-by-one-byte
https://crypto.stackexchange.com/questions/44988/length-of-ecdsa-signature

をしかし、あなたは質問をするのでそれはあなたの実際の問題に関するものではありません。あなたの実際の問題に対する解決策を提供するスタックポリシーに反するものです。

FWIWあなたはパラメータを使用したOpenSSLにDSA キー(ペア)を生成する場合には、PrivateKeyのためにすべての4つのPEM形式(PKCS8明確で暗号化され、「レガシー」をクリアし、暗号化された)と公開のための通常のPEM形式(SPKI )は、によって読み取られ、PEMParserであり、パラメータを抽出することができるキーオブジェクトを生成することができる。 (技術的には、SPKIの仕様により、特定の状況でDSAパラメータを省略することはできますが、OpenSSLは決してそうしません)

+0

あなたは正しいです。実際の問題は、バウンシーキャスルが私にasn.1エンコードされた署名を与えていることです。私は生のバイトが期待されていたので、代わりにそれらの質問に対する答えを調べます。 – Ben

関連する問題