問題タブ [openpgp]
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.
java - Spongy Castle が bcpg および openpgp パッケージを無視するのはなぜですか
SpongyCastleが openpgp および bcpg パッケージ (とりわけ) をビルドから明示的に除外している理由を知っている人はいますか? 私は OpenPGP サポートを機能させたいと考えています。そのためには、これらのクラスがいくつか必要になります。
除外はpom.xmlファイルで確認できます。
好奇心から、リポジトリのクローンを作成し、それらのパッケージを含めようとしました。bzip2 ディレクトリの内容を src ディレクトリに移動し、POM ファイルから 2 つの除外を削除するだけの簡単なものだったようです。結果はビルドされたようで、結果の JAR ファイルには必要なクラスが含まれています。予期せず発生する可能性のある実行時の問題はありますか?
go - Go の openpgp パッケージを使用するにはどうすればよいですか?
Go のパッケージのドキュメントに目を通しましたが、openpgp
いくつかの明らかな点が欠けているに違いないと思います。たとえば、ReadKeyRing
関数はありますが、ありませんWriteKeyRing
。一方、 はできますが、Serialize
読み返すEntity
方法がありません。何が起きてる?誰かが実際にこのパッケージを使用していますか?
php - 純粋なPHPでのOpenPGP暗号化
あなたのウェブサイトで、Thunderbird&Enigmailによって復号化するために、OpenPGP標準に従って暗号化されたメッセージを送信するフォームを作成してください。オンラインショップからの注文が含まれます。サーバーがGnuPGをサポートしていないため、GnuPGを使用できません。純粋なPHPでのOpenPGPの実装は、https://github.com/bendiken/openpgp-php/tree/master/libおよびhttp://phpseclib.sourceforge.net/で入手できます。RSAキーの暗号化のみに成功しましたが、Thunderbirdを復号化できません。
上記のソフトウェアを使用して、OpenPGP標準として純粋なPHPでメッセージを暗号化する方法はありますか?
PGPキーペアの例(パブリッシングを行っていることはわかっています-パブリケーション用に特別に作成されています):
RSAキーペアの例(PGPキーペア以外):
encryption - GnuPG/PGP と SSL: 同じ秘密鍵を共有していますか?
デジタル署名と暗号化の使用方法を整理しようとしています。これを行うには、主に PGP 方式と SSL 方式の 2 つの方法があることを理解しています。
これが RSA 2048 ビット キーであるという条件で、SSL 証明書と GnuPG の両方に同じ秘密キーを使用できるかどうかを知りたいです。
私はすでに CA によって署名された SSL 証明書を持っているので、その証明書の秘密鍵を GnuPG マスター秘密鍵として使用したいと考えていました。
この方法で SSL と GnuPG の間でアサーションを行うことができないことはわかっていますが、秘密鍵は 1 つだけにしたい (したがって、1 つのデータのみを保護する必要があります)。
ありがとう
authentication - EIDAuthenticateでのスマートカード認証
たぶん私は完全で完全な初心者ですが、EIDAuthenticateを使用してWindows用のスマートカード認証を実装することに本当に固執しています。
カード用の汎用(OpenPGP)ミニドライバーをダウンロードする必要がありました。これは事実上不明であり、ドライバーが利用できなかったためです。しかし、私はそれに証明書を入れようとしています、そしてそれは私を許しません。
カードに書き込むために、ミニドライバーはそれを行うための準備をする必要がありますか?
任意のガイダンスをいただければ幸いです:)
vb.net - VB.Net を使用した弾む城 OpenPGP
私は主にこれを必要とする他の人のためにこれを投稿しています. 私が見つけたサンプルはせいぜい一緒に足を引きずっているように見え、私にとっては決してうまくいきませんでした. このクラスで何か問題を見つけたり見つけたりした場合は、ぜひお知らせください。このクラスは、私の特定の実装用にわずかに変更されていますが、Bouncy Castle .Net ソース コードのバージョン 1.7 に対しては正常に動作するはずです。
javascript - JavascriptでのPGP鍵ペアの生成、および暗号化されたPGP秘密鍵を使用したテキストへの署名
私は電子署名をする必要がある何かを書いています。
一部のユーザーは私のようなオタクであり、すでに独自のPGPキーを持っています。ほとんどの人はそうしないでしょうし、とにかくそれをインストールしたり維持したりすることに夢中になりたくないでしょう。
回避策として、次のことを実行したいと思います。
- 別の「署名」パスワードを使用するユーザーの公開/秘密キーペアを作成します。
- ユーザーが何かに署名する必要がある場合は、タイムスタンプやその他の参照などの情報とともにプレーンテキストをユーザーに提供し、保存した秘密鍵を使用して署名してもらいます。
これを行うには、基本的に2つの方法があります(独自のPGPキーを持っていないユーザーの場合)。
- ユーザーはSSLを介して署名パスワードを私に送信します。秘密鍵ペアサーバー側を生成し、署名が必要になったときに秘密鍵のロックを一時的に解除します。パスワードはまったく保存せず、ロック解除された秘密鍵をできるだけ早く削除します。
- ユーザーはJavascriptでpub/privキーを生成します。彼らは私に公開鍵と暗号化された秘密鍵を送り、ローカルストレージにコピーを保存します。彼らが何かに署名する必要があるとき、私は彼らのローカルストレージがそれを持っていることを確認します(そしてそうでない場合はプッシュします)、彼らはJSを使用してローカルでテキストを復号化して署名します。彼らの署名パスワードもロック解除された秘密鍵も見たことがありません。
いずれにせよ、サーバーのキーを使用して結果に署名します。しかし、ユーザーがテキストに署名するための、ユーザー独自の、再現性のない方法が必要です。私が維持しているPGPキーをユーザーに持たせるのが、最も簡単な方法です。
オプション1は非常に簡単で、私の最小限のニーズを満たすのに十分に機能します。
オプション2はもう少し信頼できます。つまり、JSを破壊しない限り(これはまだ可能です)、自分でそれらのプライベートキーを使用することはできません。
ただし、それを行うには、次のことができるJavaScriptライブラリが必要です。
- pub/privキーペアを生成します
- 使用する秘密鍵を復号化する
- その秘密鍵でテキストのブロックに署名します
どの図書館がこれを行うことができますか?
PS特定の公開鍵に暗号化する必要はないことに注意してください。ユーザーが自分の(保存時に暗号化された)キーで署名する必要があります。
hash - OpenPGP署名パケットハッシュデータ
RFC 4880は、バージョン4の署名パケットであるタグ2を次のように記述しています。
最後から2番目の行は、ハッシュされたサブパケットの文字列を取得し、ハッシュアルゴリズムを使用してハッシュし、最初の2バイトを取得することを意味すると思います。しかし、私が何をしても、私はそれを得ることができないようです。
私はずっと前にこの偽の鍵を生成しました
私がやるべきだと思うこと:
pgpdump.netから、ハッシュ(SHA 1)値の残りの2バイトは45 24
、最初の署名パケットと51 ac
2番目の署名パケット用であることがわかります。私は52 f0
両方のために得ています。明らかに、私はいくつかの情報を含んでいませんが、それは何ですか?ハッシュ化されたサブパケットは同一であり、ハッシュ化されたデータの前のすべてのデータは、異なるタイプの署名パケット(0x13 / 0x18)であることを除いて、同様に同じです。データパケットから文字を追加/取得しても、正しいハッシュ値のいずれかを取得できませんでした。生成されるキーimは、ハッシュ値を除いて、ここに示されているキーとまったく同じです。
ハッシュする必要のあるデータは何ですか?
編集:これが少し後で見つかった場合:
しかし、署名されているデータは何ですか?署名の前のすべてのパケット?現在の署名パケットの前のパケットだけですか?
そこにある重要な例はで構成されていpacket 6 + packet 13 + packet 2 + packet 14 + packet 2
ます。packet 6
、、、packet 13
および(バージョン番号からハッシュデータまで)のあらゆる種類の組み合わせを試しpacket 2
ましたが、それでも正しい値にハッシュする文字列を見つけることができません
standards - このあいまいな代名詞は、RFC 4880 のテキストで何を表していますか?
RFC 4880 秒 5.1の「this 」は何を意味していますか?
上記の式の値「m」は、セッション キーから次のように導出されます。まず、セッション キーには、次の対称暗号化データ パケットの暗号化に使用される対称暗号化アルゴリズムを指定する 1 オクテットのアルゴリズム識別子がプレフィックスとして付けられます。次に、2 オクテットのチェックサムが追加されます。これは、65536 を法として、アルゴリズム識別子を含まない、前のセッション キー オクテットの合計に等しくなります。 [RFC3447] のセクション 7.2.1 を参照して、上記の式で使用される「m」値を形成します。OpenPGP での PKCS#1 の使用に関する注意事項については、このドキュメントのセクション 13.1 を参照してください。
2オクテットのチェックサムですか?「1 オクテット プレフィックス + セッション キー + チェックサム」全体ですか?
ruby - OpenPGPとRubyを使用してデータを非対称的に暗号化するにはどうすればよいですか?
これはとても単純なはずのように感じますが、私には運がありません。
シナリオは次のとおりです。公開*.ascキーファイルがあります。このファイル(個人のキーリングではない)を使用してサーバー上のデータを暗号化し、秘密鍵を使用してローカルでデータを復号化できるようにします。
コマンドラインからは、を使用してこれを実現できgpg
ますが、CLIの単なるラッパーではないRubyライブラリ(つまり、おそらくCライブラリへのバインディングを提供するライブラリ)を使用したいと思います。私はGPGMEとOpenPGPの宝石を見てきましたが、それらの使用方法を理解できませんでした。ドキュメント(特にOpenPGPの場合)は非常にまばらです。
たとえば、これは私がGPGMEを使用して試したものですが、運がありません。
誰かがこれをすでに経験しましたか?確かにこれはそれほど複雑ではありませんか?