[解決済み] PEM_read_RSAPublicKeyでopensslが生成したRSA pub keyを読み込めないのはなぜですか?
2022-02-18 22:45:39
質問
OpenSSLで生成したRSA公開鍵をこのように読み取ろうとしています。
Private Key:
openssl genrsa -out mykey.pem 1024
Public Key afterwards:
openssl rsa -in mykey.pem -pubout > somewhere.pub
そして、読もうとする。
FILE *keyfile = fopen("somewhere.pub", "r");
RSA *rsa_pub = PEM_read_RSAPublicKey(keyfile, NULL, NULL, NULL);
//rsa_pub == NULL!
秘密鍵を読み込むと、次のように動作します。
FILE *keyfile = fopen("mykey.pem", "r");
RSA *rsa_pri = PEM_read_RSAPrivateKey(keyfile, NULL, NULL, NULL);
//all good
何かアイデアはありますか?
RSA公開鍵のX509鍵をopensslが生成すると読んだことがあります。しかし、私はX509の公開鍵さえも読み込むことができませんでした。
ありがとうございます。
解決方法は?
次のことを試してみてください。
PEM_read_RSA_PUBKEY()
の代わりに
PEM_read_RSAPublicKey()
.
これは、フォーマットに関するものです。
opensslが生成するデフォルトの公開鍵ファイル形式は、PEM形式です。
PEM_read_RSA_PUBKEY()
はPEM形式を読み取ります。
PEM_read_RSAPublicKey()
はPKCS#1形式を読み取ります。
だから、もしあなたが
PEM_read_RSAPublicKey()
を指定すると、PKCS#1 形式で公開鍵ファイルを生成することができます。
-outform DER
オプションで指定します。
関連
-
[解決済み】C 言語の添え字で配列の要素値を代入すると、配列でもポインタでもベクトルでもない値になる
-
[解決済み】「ポインタから異なるサイズの整数へのキャスト」エラーが発生するのはなぜですか?
-
[解決済み】Cコンパイルエラーです。Idは1終了ステータスを返した
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】cudamalloc()の使用。) なぜダブルポインタなのか?
-
[解決済み】argv[]をint型として取得するには?
-
[解決済み】シンプルなC言語のscanfが機能しない?重複
-
[解決済み] 配列の場合、なぜ a[5] == 5[a] になるのでしょうか?
-
[解決済み] RSA秘密鍵を使って公開鍵を生成する?
-
[解決済み】RSA鍵のフィンガープリントを計算する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み】エラー:cの入力の最後に期待される宣言またはステートメント
-
[解決済み】Valgrind - strcpyのサイズ1の無効な書き込み
-
[解決済み】式は、単純なポインタ演算を使用して完全なオブジェクト型へのポインタでなければなりません【重複】。
-
[解決済み】C言語におけるファイルスコープでの可変長配列の変更
-
[解決済み】GCC Cコードで静的宣言が非静的宣言に続くことを解決するには?
-
[解決済み】C言語でint64_t型を表示する方法
-
[解決済み】sizeof float (3.0) vs (3.0f)
-
[解決済み】.axfファイルとは何ですか?
-
[解決済み】C言語でpow( )への未定義参照、math.hを含むにもかかわらず【重複】。