問題タブ [spongycastle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
198 参照

java - Java: BouncyCastle - SpongyCastle と条件付きコンパイル

Android が独自の古いバージョンの BouncyCastle 暗号ライブラリを出荷したおかげで、私は醜い状況に陥っています。クライアントがオンザフライでデータを暗号化および復号化する独自の Web サービスと REST をやり取りするライブラリを構築しました。クライアントは、Android 上のモバイル アプリケーション、または Oracle Java を実行するデスクトップ/サーバー コンピューターのいずれかです。

Android の場合は SpongyCastle が必要で、デスクトップ/サーバーの場合は BouncyCastle が必要です。これは、SpongyCastle JAR が署名されておらず、Oracle ランタイムがその暗号化を許可しないためです。

つまり、使用するライブラリに関係なく、コードはまったく同じです。パッケージ名が異なるため、インポートのみが異なります。C では条件付きコンパイルを使用してプラットフォーム固有のヘッダーを含めますが、Java ではそれほど多くはありません。それでも、ほとんど同じソースから 2 つのビルドを作成して、似たようなことを達成できる、あまり労力をかけない方法はありますか? まったく同じことを行う 2 つの .java ファイルが存在するのは本当に嫌ですが、インポートがいくつか異なるだけです。それはメンテナンスの悪夢です。

0 投票する
0 に答える
1144 参照

java - BC を使用して秘密鍵から EC 公開鍵を計算する

私のプログラムでは、Spongy Castle (Android の Bouncy Castle に相当) を使用して、PEM ファイルから EC 秘密鍵を正常に復元できます。ファイルに公開鍵が含まれていないため、秘密鍵から公開鍵を再計算しようとしています。

有効な公開鍵を計算できます。ただし、私の公開鍵には、元の参照 (92 バイト) よりもはるかに多くのデータ (311 バイト) が含まれています。これは、秘密鍵 (152 バイト) よりもさらに多くなります。

公開鍵の圧縮 (?) バージョンを取得するにはどうすればよいですか?

0 投票する
1 に答える
4976 参照

android - Spongy Castle (Bouncy Castle ディストリビューション) を使用して、Android で有効な ECDSA secp256r1/prime256v1 キーペアを生成する

Android で SpongyCastle を使用して ECDSA キー ペアを生成しようとしています。これはコードです:

公開鍵の例のようなものを常に取得するため、何かが間違っています。

3059301306072A8648CE3D020106082A8648CE3D03010703420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

および秘密鍵:

308193020100301306072A8648CE3D020106082A8648CE3D030107047930770201010420219AB4B3701630973A4B2917D53F69A4BE6DAD61F48016BFEF147B2999575CB2A00A06082A8648CE3D030107A14403420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

サイトのECDSA サンプルは無効な ECDSA 署名を提供します。それらは、同じサイトで生成されたより小さな秘密鍵とは常に "04" の公開鍵で始まるものとは非常に異なっているようです。

また、バックエンド検証で「無効なポイント エンコーディング 0x30」というエラーが表示されます。

バックエンド Java メソッド チェックは次のとおりです。

0 投票する
1 に答える
4883 参照

android - Android: InvalidKeySpecException: エンコードされたキーの仕様が認識されません

文字列から RSA 公開鍵を作成しようとすると。以下の例外が発生します。Android で生成されたキー (文字列、Swift を使用) を検証しようとしています。文字列を秘密鍵/公開鍵に変換する方法は?

例外

iOS の公開鍵:

0 投票する
2 に答える
8781 参照

bouncycastle - 有効な ECDSA EC キー ペアを生成するにはどうすればよいですか?

Android で SpongyCastle を使用して ECDSA キー ペアを生成しようとしています。これはコードです:

公開鍵の例のようなものを常に取得するため、何かが間違っています。

3059301306072A8648CE3D020106082A8648CE3D03010703420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

および秘密鍵:

308193020100301306072A8648CE3D020106082A8648CE3D030107047930770201010420219AB4B3701630973A4B2917D53F69A4BE6DAD61F48016BFEF147B2999575CB2A00A06082A8648CE3D030107A14403420004483ABA9F322240010ECF00E818C041A60FE71A2BD64C64CD5A60519985F110AEDE6308027D2730303F5E2478F083C7F5BB683DCAC22BFEB62F3A48BD01009F40

サイトのECDSA サンプルで「無効な ECDSA 署名メッセージ」が表示されますが、同じサイトで生成されたより小さな秘密鍵とは常に「04」の公開鍵で始まるものとは非常に異なっているようです。

また、バックエンド検証で「無効なポイント エンコーディング 0x30」というエラーが表示されます。

バックエンド Java メソッド チェックは次のとおりです。