問題タブ [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.
pgp - マスターキーの代わりに GnuPG サブキーをキーサーバーに送信しますか?
OK、GnuPG を使用して PGP キーを生成し、そのキーをキーサーバーに送信しました。
しかしその後、GnuPG が 1 つのメイン キーと 1 つのサブキーのペアのキーを生成することがわかりました。
メインキーの ID (いくつかの文字/数字) を使用してメインキーをキーサーバーにアップロードしたことでエラーが発生しましたか? サブキーの機能とその使用方法について少し迷っています。
ありがとう
c# - GnuPG とは異なる BouncyCastle C# PublicKey
BouncyCastle C# ライブラリを使用して、GnuPG によって作成されたキーリングから公開 PGP キーを取得しようとしています。次のコードを使用して、半作業にしました。問題は、出力される公開鍵が実際の公開鍵の長さの約半分であり、最後の数バイトも異なることです。本当の鍵を手に入れようとしているだけです。
更新:興味深いことに、私が生成したキーリングには公開鍵が 1 つしかありませんでしたが、bouncycastle から 2 つ取得しています。また、2 番目のキーを末尾から数文字目に挿入すると、ほぼ元のキーが生成されることもわかりました。末尾の数文字だけが異なります。では、なぜ 2 つのキーがあり、なぜこれが発生するのでしょうか? 私は何が欠けていますか?
GnuPG キーリングは互換性がありませんか?
また、ここに示すコードは最後のキーのみを取得することに注意してください。現在、それぞれをリストに追加しています。
これが私のコードです:
実際の公開鍵は次のとおりです。
以下は、BouncyCastle によって作成された新しいキーです (申し訳ありませんが、書式設定を手伝うことはできません)。
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
まだ同じではありません。両方のキーをメモ帳に入れ、「tNCDnS」を検索します。その後、それらが変更される場所です。
私に固執してくれてありがとう。私はこれで十分に進んだので、コード全体を無駄な暗号化のために破棄したくありません。
encryption - openpgp golang gpg ライブラリの問題
だから私はgolangにかなり慣れていないので、openpgpでテキストを暗号化し、再び復号化する実際の例を得るのに苦労しています。
これが私がこれまでに持っているものです:( https://gist.github.com/93750a142d3de4e8fdd2.git )
これはhttps://github.com/jyap808/jaegerに基づいています
実行すると、部分的に機能しているように見えますが、元の文字列の一部の文字しか出力されません... 元の文字列を変更すると、非常に奇妙な問題が発生します。
明らかに私が理解していないことがあるので、助けていただければ幸いです。
c# - BouncyCastle 暗号ライブラリ (C# バージョン) の ArmoredOutputStream を使用して、ascii アーマーの署名付き OpenPGP メッセージを作成するにはどうすればよいですか?
ArmoredOutputStream を使用すると、クリア テキストの後に「-----BEGIN PGP SIGNATURE-----」ではなく「-----BEGIN PGP MESSAGE-----」が表示されます。ArmoredOutputStream を自分で使用する方法がわかりません。署名ヘッダーを取得しても、メッセージに base64 以外の文字が含まれていることがあります。BC の軍団はサディストに違いありません。このような優れたライブラリを、使用方法に関するドキュメントがほとんどない状態でリリースしています...
これが私のコードです:
angularjs - angularJSでopenPGP.jsライブラリを使用するにはどうすればよいですか?
私はAngularにかなり慣れていません。openPGP ライブラリを自分のアプリ (クライアント側) に取り込もうとしています。javascript ライブラリを Angular アプリに組み込む方法について助けが必要です。ありがとう!
openPGP ドキュメントhttps://github.com/openpgpjs/openpgpjs を読んでいます。ドキュメントで提供されている例は次のとおりです。
私は自分のアプリに openPGP をソースにするために require を使用したくありません。だから私は
var openpgp = window.openpgp;
ここでエラーをスローしないように見えるものを試しました。ただし、TypeError: Cannot read property 'key' of undefined
エラーが発生します。
bower install を使用して openpgp をインストールしたことに言及する必要があります。
私はまだAngularアプリでopenPGPを参照するために何ができるかを理解しようとしています. ありがとう。
c++ - サーバーとクライアントの安全なハンドシェイク方式
私のクライアント/サーバー プログラムは OpenSSL を使用してデータ交換を処理し、動作していますが、クライアントが接続しているサーバーが偽のサーバーではなく正しいサーバーであることを確認する必要があります。
問題は、私のプログラムが自己署名証明書を生成し、クライアントがそれによって検証できないことです。証明書を埋め込むと、誰でもそれを抽出して、偽のクライアント サーバーを作成し、情報を盗もうとする可能性があります。OpenPGP 鍵についても同様です。
では、クライアントでもあるため、サーバーバイナリが誰でも利用できる場合でも、サーバーを検証する方法を実装できますか?
java - Javaで物理鍵リングにアクセスせずに公開鍵OpenPGP(GPG)を利用する方法
設定:
- GnuPG を使用する Linux または GPG4Win(OpenPGP) を使用する Windows
- 2048 RSA キーペアは、キー リングにアクセスできる特権ユーザーによって作成されました
- 権限の低い 2 番目のユーザーが、Java アプリケーションを実行するために作成されました。
- このユーザーには GPG コマンドを実行する権限が付与されていますが、物理キー リング ファイルにはアクセスできません
- キー ID は Java アプリケーションに認識されているため、秘密キーを抽出するためのパスフレーズも認識されています。
- Java アプリケーションは Bouncycastle ライブラリをインポートしました
- Java プログラムは、キー ペアを使用して暗号化と復号化を実行する必要があります。
問題:
Bouncycastle を使用して暗号化と復号化を正常に実行しました。しかし、pubring ファイルと secring ファイルから公開鍵と秘密鍵を読み取ろうとする必要がありました。セキュリティのために、Java アプリケーションがキー リング ファイルに直接アクセスできないようにしたいと考えています。
私のオプションは何ですか。キーリングを読み取ったり、キーを別のファイルにエクスポートしたりせずにこれを行うオプションは Bouncycastle にありますか?
注:バウンシー キャッスルを使用する必要はありません。
javascript - OpenPGP.min.js が鍵ペアを生成しない
私は昨日からopenpgp.jsを機能させようとしています。フルバージョンを試しましたが、成功しなかったので、今は最小バージョンを試しましたが、まだ成功していません. 次の HTML コードがあります。
しかし、私のChromeのコンソールでは、次のものしか得られません:
なぜ未定義なのですか?
java - PCI-DSS準拠について - ファイル暗号化
私たちのアプリケーションは、FTP インターフェイスを介して外部システムからクレジット カード情報 (クレジット カード番号を想定) を含むファイルを処理する必要があります。これはフラット ファイル (テキスト) です。いくつかのビジネス ルールに基づいてデータを処理し、FTP インターフェイスを介して別の外部システムに転送する必要があります。また、アプリケーションは受信ファイルと送信ファイルのコピーを保持する必要があります。
では、PCI-DSS ガイドラインに準拠するには、GnuGP を使用してファイルを暗号化するだけで十分ですか?それともデータ要素 (CC 番号など) を個別に暗号化してからファイルを暗号化する必要がありますか?
よろしくお願いします、サン