問題タブ [pem]
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.
php - 以前に Crypto++ で暗号化された OpenSSL の文字列を復号化する方法は?
編集:コメントで言ったように、キーが問題ではないことがわかりました。それらを問題なく使用して、OpenSSL でデータを暗号化および復号化できます。
しかし、Crypto++ を介して以前に暗号化された OpenSSL 上の文字列を復号化する必要があり、それは機能していません。
後で追加の詳細を投稿します。
こんにちは、Crypto++ で生成された RSA 公開鍵を使用して文字列を暗号化しましたが、PHP と OpenSSL を介して復号化しようとしています (まだ失敗しています)。
それが私がやっていることです:
- base64 または 16 進数でエンコードされていない秘密鍵は、「rsa-private.key」というファイルに保存されます。
- 暗号化されたメッセージは「message.txt」に保存されます (16 進数でエンコード)
ステップ 1: 次の方法で秘密鍵をロードします。$key = file_get_contents("rsa-private.key");
ステップ 2: 次の関数を使用してキーを PEM 形式に変換します。
(stackoverflow.com/questions/1357569/)
ステップ 3: OpenSSL でさらに使用するためのキーを準備します: (問題なし)
ステップ 4: メッセージを取得し、次の関数を使用してメッセージをデコードします。
ステップ 5: 文字列を復号化する: (機能しません)
$decrypteddata は常に空です。
なぜ機能しないのかわかりません。私が間違っていることに気づいた人はいますか?
php - PHPファイルのアップロードでエラーが発生し続ける
Web サイトに rsa 秘密鍵 (.pem ファイル) をアップロードし、fopen を使用して内容を読み取っていますが、最近、あまり意味がなく同じエラーが何度も発生します。
HTML
Upload.php
サイトはエラーを返し続けます:
警告: fopen(mykey.pem) [function.fopen]: ストリームを開くことができませんでした: No such file or directory in .... on line 38
(これはfopenラインです)。fopen 状態になるという事実は、実際にはアップロードすることを証明していますが、fopen を使用すると (file_get_contents($_FILES['uploaded_file']['name']); も使用してみましたが失敗しました)、エラーが返されます。
なんてこった!
最終的な注意事項:
なんらかの理由で、fopen() は OpenSSL 証明書を読み取らず、エラーを返します。
openssl_private_decrypt(): 提供されたリソースは有効な OpenSSL X.509/key リソースではありません
ただし、 file_get_contents を使用すると機能します。
java - Apache HttpClient および PEM 証明書ファイル
PEM ファイルにあるクライアント証明書を必要とするサイトにプログラムでアクセスしたいと考えています。このアプリケーションでは、それらをキーストアに追加したり、keytool を使用したり、できれば openssl を使用したりしたくありません。それらをコードで直接処理する必要があります。
リクエストとともに証明書を「送信」するにはどうすればよいですか?
php - stream_context_set_option の奇妙なエラー
SSLサーバーに接続したかった。そして、stream_context_set_option で ssl 証明書を添付しました。
しかし、それは戻ります"check that your cafile/capath settings include details of your certificate".
apns-dev.pem は同じフォルダーにあります。
上に追加すると、うまく機能します。理解できない。証明書ファイルのパーミッションは 644 です
c++ - PEMからDERへの変換(PKCS7)-別名Base64C++の問題
OpenSSL / PKCS7デジタル署名コードの記述が完了し、PEMでエンコードされたPKCS7ファイルが機能するようになりました。少しの戦いの後、私はそのPEMをDER形式に変換する必要があります。これは私が思っていたよりも難しいことを証明しています。
OpenSSLには、PKCS7オブジェクトを書き込むための「PEM_write_bio_PKCS7_stream」などの便利なメソッドがいくつかあります。しかし、いくつかの大規模なグーグルといくつかのヘッダーファイルを参照した後、PKCS7オブジェクトを取得してDER形式で何か(BIO、FILE、char *)に書き込むものが見つからないようです。
そこで敗北したと感じたので、PEMファイルのヘッダーとフッターを解析し、Base64でコンテンツをデコードすることにしました。チェックとして、JavaとBouncyCastleを使用してこれを実行し、必要なものを正確に取得しました。
これがそのための私のコードです。ほとんどすべてのBase64デコーダーで、私はこのようなものを回してみます...
の中へ...
これがそのコードです...
何かご意見は?
x509 - .crt を .pem に変換する方法
.crt を .pem に変換するにはどうすればよいですか?
python - Chrome拡張機能をパックするためにGoogleのPEMに40文字が残っているのはなぜですか
私は最近、Google Chrome のパッキング プロセスによって生成された PEM を PyCrypto に認識させる方法を見つけようとしています。問題は、標準の importKey メソッドがエラーを引き起こすことです。かなり長いプロセスの後、DerSequence.decode メソッドをリバース エンジニアリングすることで、最初にインポートをシミュレートできることに最終的に気付きました (すべての詳細はこちら)。残念ながら、未解決の問題が 1 つあります。
インポートするキーを取得できます。かなり一貫しているように見えますが、40 文字が残っています。
なぜその40文字がそこにあるのか誰か知っていますか? それらを無視すると、一部の秘密鍵と公開鍵のペアで問題が発生しますか?
c# - 特定の CSR のキーサイズをビット単位で取得するにはどうすればよいですか?
指定された CSR を非常にうまくデコードするLiping Share ASN1 Editorを使用して、.net(c#) でプログラムを作成しています。
だから、私の問題は次のとおりです。特定のCSRのビットサイズを取得するにはどうすればよいですか? (1024以上かどうかをテストしたい)
すでに.net X509Certificateクラスを試しましたが、それは証明書でのみ機能し、CSRでは機能しません。
Java クラスを使用したり、CSR Decoder を含む Web サイドを解析したりすることはできません。(私はすでに問題を解決するよりもはるかに簡単だと思っていましたが)
たぶん、解決策は非常に単純で、私には理解できませんが、誰かが私にアドバイスをくれるなら、本当に感謝しています! (この 2 日間は Google を使いすぎました!!)
c++ - C++OpenSSLエクスポート秘密鍵
私はこれまでSSLをうまく使用していますが、紛らわしい障害に直面しています。RSAキーペアを生成し、以前はPEM_write_bio_RSAPrivateKey(...)を使用してそれらをエクスポートしていました。ただし、マニュアルページでは、フォーマットが古くなっていると主張しています(実際、通常のPEMフォーマットとは異なって見えます)。代わりに、PEM_write_bio_PKCS8PrivateKey(...)をお勧めします。
ただし、PEM_write_bio_PKCS8PrivateKeyはEVP_PKEYオブジェクトを受け入れます。RSA *キーペアをその関数で使用するためにEVP_PKEY*構造に変換するにはどうすればよいですか?
retは常に0です。古いPEM_write_bio_RSAPrivateKeyを使用するとうまくいきます。キーを次のようにエクスポートすることを検討しています。
ありがとう。
c# - 文字列から .Net に Jira パブリック証明書をロードする (ASN.1 でエンコードされた SubjectPublicKeyInfo を .Net で X509 Cert に変換する方法)
Jira 内のガジェットによって消費される oauth 1.0a サービスを構築しています。これは、C# で記述された .Net 3.5 アプリケーションです。
Jira は RSA-SHA1 署名方式を使用してこのサービスにリクエストを送信します。つまり、リクエストの署名を検証するために、公開証明書から X509Certificate インスタンスを作成する必要があります。
Jira アプリケーション内では、コンシューマー情報画面 (Jira などのコンシューマー キーもある) に移動して公開証明書を取得でき、公開キーが次の形式で表示されます。
このキーを生成する Jira コードを見ると、(おそらく) BEGIN/END 証明書ヘッダー/フッターなしで PEM エンコードされていることがわかります。
RSAKeys は、次の場所にあるオープン ソース クラスです。
この公開証明書 (キー) を .Net 内の X509Certificate インスタンスにロードしたいのですが、これまでのところ失敗しています。ここに私が持っているコードがあります:
しかし、コードの最後の行で、例外がスローされます。
初歩的な何かが欠けていると確信していますが、それが何であるかを考えることができます。
アップデート
OK、さらに調査すると、これは公開鍵の SubjectPublicKeyInfo シリアライゼーションであると思われるため、ASN.1、base 64 エンコード (エンコードされていない 162 バイト) であり、java.security.PublicKey.getEncoded() を使用した Java からのデフォルト出力です。 .
以上のことから、この公開鍵をラップする X509Certificate2 インスタンスを作成する簡単な方法はありますか? それとも、x509Certificate2 インスタンスを作成するために公開鍵以外に追加のメタデータが必要ですか?