問題タブ [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 投票する
1 に答える
3116 参照

java - 曲線名と未加工の秘密鍵/ポイントがわかっている場合、PrivateKey を作成する方法は?

要件: 指定された名前付き曲線について、受信者が EC PrivateKey を構築できるように、できるだけ少ないデータを送信します。

現在、Android で BouncyCastle/SpongyCastle を使用しています。これは私が今まで理解したことです。

ここで、Bouncy/Spongy キャッスルを使用して、derEncoding に存在する他の情報なしで、秘密鍵の実際のポイントを取得します。

質問: ポイントD ( privateKeyParam.getD()) と曲線名を使用するだけで、PrivateKey オブジェクトを再構築するにはどうすればよいですか? 曲線名を使用して、ECCurveParameters を取得できます。

編集:ECPrivateKeyParameters秘密鍵ポイント ( praram.getD()) を使用して構築することはできますが、 から PrivateKey を生成する方法がわかりませんでしたECPrivateKeyParameters

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

java - AlgorithmParameterSpec なしで KeyAgreement を使用できますか?

SpongyCastleで動作する私の Android アプリケーションでは、特定の楕円曲線( prime192v1 )を使用してECDH キー交換を実行したいと考えており、このコードを使用してプライベートおよびパブリック パラメータの byte[] 表現を生成しています。

ここで、Alice と Bob が秘密鍵をローカルに保存し、交換pubK1pubK2て、共有秘密鍵の設定に進みたいと仮定します (両方の鍵がbyte[]フォーマットされています)。ボブの場合は同じなので、アリスの場合のみ説明します。

ここで私の質問があります - 次のコードを使用して、アリスとボブの両方に同じ共有秘密を取得することができました

しかし、私は私の特別な曲線prime192v1をどこにも指定していません

この方法でこれを提供しようとすると:

と言って例外がスローされます

必要なパラメータを指定できないのはなぜですか? KeyAgreement秘密鍵から何らかの形でこれを推測しますか?

ありがとう!

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

java - Serpent GCM 弾む城の実装が Android で非常に遅い

Bouncy Castleの最新ソースを使用して、Serpent GCM 暗号化を実装しました。

私のデスクトップ マシン (Windows Core i7) で完全に動作します。5Mb のファイルを暗号化するには、約 190 ミリ秒かかります。しかし、突然、Samsung Galaxy 4 タブレット (Android 5.0.1) に展開された同じコードが、同じファイルの同じ暗号化を行うのに 40 秒かかりました。Huawei Acend G300 (Android 2.3.6) を試したところ、わずか 17 秒しかかかりませんでした。

また、 Spongy Castleで同じ暗号化をテストしましたが、残念ながらパフォーマンスは向上しませんでした。

  1. なぜデスクトップと劇的に異なるのか、また、Samsung Galaxy s4 タブレットよりも強力ではないデバイス Huawei の方が暗号化時間が速い理由を教えてください。
  2. Android でコードのパフォーマンスを向上させる方法はありますか?

よろしくお願いいたします。

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

java - PEM 公開鍵を DER 公開鍵に変換する方法は?

PEM でエンコードされた REST API から公開鍵を受け取ります。ここで、オブジェクトとして保存するためにエンコーディングを DER に変更する必要がありPublicKeyます。ただし、残念ながら、次のエラーが表示されます。

java.lang.IllegalArgumentException: getInstance の不明なオブジェクト: org.spongycastle.asn1.ASN1Integer

エラーは次の行を指しています。

公開鍵は次のようになります。

これが私のコードです: