問題タブ [dsa]

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 に答える
443 参照

android - まだ実装されていません: DSA 公開鍵

サーバーと Android クライアント アプリケーションの両方を作成しています。Android クライアントは測定値をサーバーに送信します。データの完全性を確保するために、デジタル署名が各測定値に追加されます。

すべてを Gson 対応にする必要があるため、公開鍵自体を保存することはできません。代わりに、G、P、Q、および Y 係数を格納しています。

リクエスト クラスのスニペットを次に示します。

コンストラクターは、setPublicKey メソッドを使用します。クライアント側でそのようなリクエストを作成してサーバーに送信すると、どちらも例外になります。

クライアントで:

スタック トレースの次のものは、私が B としてマークしたルールを指しています

サーバー上:

次に、ルール A を指します。

何が間違っていたのか、これらのメッセージが何を意味するのか、まったくわかりません。これらを解決するにはどうすればよいですか?私が間違っていることを教えてくれる人はいますか?

どうもありがとう。

0 投票する
3 に答える
1126 参照

http - エンティティ署名用のHTTPヘッダー

HTTPリクエスト本文のダイジェストを提供するための標準ヘッダーがあります(Content-MD5)。

ダイジェストのDSA署名(で生成されたopenssl dgst -dss1 -sign <keyfile>)を含めるために一般的に使用されるヘッダー名はありますか、それともアプリケーション固有の署名を作成する必要がありますか?

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

c# - IHOS-63スキームによって署名されたDSA署名を確認します

ENC(電子航海用電子海図)の署名を確認しようとしています。ファイルは、SHA1でDSAを使用して証明書で署名されます。

個々のENCの署名ファイルは次のようになります

//署名部分R:

0DA3 AFDB CE55 B926 00D6 D97A ADE2 CAAF8AD151C3。

//署名部分S:

1A25 7FDD B1E9 FE28 AE12 15CE 4DF8 76163E324312。

//署名部分R:

53AA DA​​93 CEA4 162D 01A1 BDB3 2A66 D9A79D4A02F8。

//署名部分S:

7DF3 9C2C EB93 73C6 CC2C 65A1 AE7C C7D65BCBBFBA。

// BIG p

FCA6 82CE 8E12 CABA 26EF CCF7 110E 526D B078 B05E DECB CD1E B4A2 08F3 AE16 17AE 01F3 5B91 A47E 6DF6 3413 C5E1 2ED0 899B CD13 2ACD 50D9 9151 BDC4 3EE737592E17。

// BIG q

962E DDCC 369C BA8E BB26 0EE6 B6A126D9346E38C5。

// BIG g

6784 71B2 7A9C F44E E91A 49C5 147D B1A9 AAF2 44F0 5A43 4D64 8693 1D2D 1427 1B9E 3503 0B71 FD73 DA17 9069 B32E 2935 630E 1C20 6235 4D0D A20A 6C41 6E50BE794CA4。

// BIG y

AA25 DF9E C3CA 96B7 9D01 3ED8 D572 D47C B3F3 80D0 731D EA47 B106 26BA C387 C1FA 3C33 EC55 6845 3744 76BE 5825 6E07 A74D 607F 7A5E 7B7E 3455 71D8 21104C8AC4BF。

以下のテキストは、IHOS-63仕様からの抜粋です。ここにリンクされている完全なPDF。

5.4.2.7ENC署名ファイル形式

署名ファイルには、署名と証明書のペアが含まれている必要があります。署名のみのファイルは、データサーバーのIDを証明しないため、無効です。ENCデジタル署名ファイルには、次の例のような形式、構造、および順序があります。

2番目のRとSのペアは、データサーバーのデジタル証明書(p、q、g、およびy文字列)を認証するために使用されます。検証に成功すると、データサーバーの公開鍵(y文字列)を抽出して、暗号化されたENCのデジタル署名(最初のRとSのペア)を検証するために使用できます。これにより、データクライアントはSAデジタル証明書を検証し、データサーバーの公開鍵を抽出し、ENCデータのデジタル署名を検証できます。

既存の実装から変換された私のコードは次のようになります。

p、q、g、およびyのバイト配列値を使用して新しいDSACryptoServiceProviderを初期化します(スペースと末尾の。は削除されます)

署名ファイル(ヘッダーを含む)のBIG P、Q、G、およびYセクションをバイト配列およびSHA1として読み取ります。配列をハッシュします。

次の文字列のバイト配列を取得します

そして電話

私はp、q、g、yを検証できていないと言えば十分です。誰かが私にドキュメントや例の良い情報源を指摘したり、私が欠けているものを説明したりできますか?

ありがとう、ベン。

0 投票する
3 に答える
1001 参照

c# - DSACryptoServiceProvider.ToXmlString が「指定されたフラグが無効です」という例外をスローする

DSACryptoServiceProvider でキー ペアを生成しようとしています。

コードは次のとおりです。

dsa.ToXmlString(true);の例外が発生します:無効なフラグが指定されました。どうしたの?

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

hash - PGP用にハッシュするデータの長さ

私はついにいくつかの単純なPGP署名付きメッセージブロックを検証することができました。しかし、何らかの理由で、私の実装では9〜16バイトの長さのデータの検証に制限されていることがわかりました。劣らず。もういや。

任意の長さのプレーンテキストデータを処理する方法を指定する命令がどこかにありますか(RFC4880または他の場所)?多分私が逃したある種のパディングがありますか?pkcs1?

RFC 4880秒5.2.4の指示ではテキスト文書について述べているので、データを適切にハッシュするようにフォーマットしたと確信しています。すべて\nを置き換えて\r\n、トレーラーを追加するだけです。私のテスト値は1行のデータだったので、何も置き換える必要はありませんでした

特に明記されていない限り、これらの値はすべて10進数です。

動作しない:

働く:

ハッシュに含めなかったデータ/間違ったことは何ですか?

編集:関連する値がすでに投稿されている場合でも、要求された公開鍵はここにあります)

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

java - Java での DSA データ変換

公開鍵が秘密鍵に対応しているかどうかを確認したいのですが、正しいですか。

BCというプロバイダーもありません。私はこの実装を持っていますが、Utils.createFixedRandom() が何をすべきかわかりません。私はそのようなライブラリとメソッドを持っていません。

さらに、java.security を使用しない未加工の実装がある場合、それは素晴らしいことです。

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

java - DSAアルゴリズム-デジタル署名

昨日、java.secureや他のjava.secureのようなライブラリを使用せずにDSAの正しいJava実装を探すことに費やしました(私はすでにjava.secureを何度も使用しています)。

私はグーグルでウィキに行きましたが、正確で明確な説明を見つけることができませんでした。その実装がある場合は共有してください。それは宿題ではありません-学校は夏休みですが、これは私を非常に助けてくれます。

私はすでにRSAを実行しましたが、DSAは私にとってより大きな取引です。

ご協力ありがとうございました!

DSA: http: //en.wikipedia.org/wiki/Digital_Signature_Algorithm

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

android - Android: DSA 署名 - 署名と検証

作成したばかりの署名の検証に問題があります。署名後、まず Base64 を使用して署名をテキストに変換し、テストとして、Base64 をデコードして署名を検証できることを確認したいと考えました。これは失敗します。エラー処理のないコードを次に示します。

キーペアがあります:

今、私はいくつかのテキストに署名し、出力をログに記録します - それは問題ないようです:

次に、Base64 ではなく、上記で作成した SignedObject オブジェクトを使用して署名を検証します。これは成功です:

私のアプリでは、署名者の公開証明書と Base64 でエンコードされた文字列しか持たないため、これらのパラメーターのみを使用して署名を検証する必要があるため、AFAIK では SignedObject オブジェクトを使用できません。Signature オブジェクトを使用しました。

この検証は常に失敗します (b = false)。

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

java - DSAアルゴリズムjavaでのPの生成

私が正しいかどうか教えていただけますか?アルゴリズムで生成pしたい。DSA私はそれを理解していません:それは私が2,5,7である数字の素数だけを探していることを意味するので|| pTemp.bitLength() != l、ステートメントで?ナンセンスです。do while1

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

php - PHPを使用したSAML2.0でのDSA署名チェック

私はSOをチェックしてグーグルで検索しましたが、今のところ答えは見つかりませんでした。私はサービスプロバイダーとしてSAML2.0を使用しており、 php-samlを埋め込みました-最初にsimplesamlphpを使用しましたが、埋め込むのが少し難しいことがわかりました。

IdPの応答は署名付きで返されます

xmlseclibsはdsa署名をサポートしていないようです。

質問A:dsa署名を検証するために何を使用するかについての提案はありますか?

質問B:他の人がSAMLに使用しているライブラリに興味があります。simplesamlphpに約20分費やしたところ、それ自体のURL構造に完全に依存しており、単なるライブラリではなく適切なWebサーバーエンドポイントであることがわかりました。

乾杯