• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:OpenSSLのPEMファイル入出力時の強制終了)

OpenSSLのPEMファイル入出力時の問題について

このQ&Aのポイント
  • OpenSSLのPEMファイル入出力時に強制終了する問題が発生しています。
  • 関数実行時にエラーが表示されず、異常終了してしまいます。
  • ファイル出力ではなく、stdout(コンソール)での実行では問題が発生しないようです。

質問者が選んだベストアンサー

  • ベストアンサー
  • norachlo
  • ベストアンサー率100% (10/10)
回答No.2

(たぶん)ソースコードには問題ないと思います。 DLL だけ以下のサイトから差し替えてみてはどうでしょうか。

参考URL:
http://www.nec.co.jp/WebOTX/module/apache1_080709.html
sh_hirose
質問者

お礼

参考URL先のDLLを使用したらうまくいきました。 ありがとうございました。

その他の回答 (1)

  • norachlo
  • ベストアンサー率100% (10/10)
回答No.1

皆目検討もつきませんが、 OpenSSL はご自分でコンパイルされたのでしょうか。 また、もし前後のソースコードを公開できるのなら、 それも解決のヒントになるかと思います。

sh_hirose
質問者

補足

回答ありがとうございます。 OpenSSLは http://www.slproweb.com/products/Win32OpenSSL.html からダウンロードしたDLLを使用しています。 ソースコード(通常のプロジェクト)は // main.c #include <stdio.h> #include <string.h> #include <openssl/rsa.h> #include <openssl/engine.h> #include <openssl/pem.h> int main() { FILE *fp; RSA *rsa; int result; fp = fopen("C:\\publicKey", "w"); if( fp == NULL ) { printf("FILE ERROR!!"); return 1; } rsa = RSA_generate_key(2048, 65537, NULL, NULL); if (rsa == NULL) { printf("RSA ERROR!!"); fclose(fp); return 1; } result = PEM_write_RSA_PUBKEY(fp, rsa); if( result != 1 ) { printf("PEM WRITE ERROR!!"); fclose(fp); return 1; } RSA_free(rsa); fclose(fp); return 0; } // end result = PEM_write_RSA_PUBKEY(fp, rsa);の部分で強制終了してしまいます。 また、resutl = PEM_write_RSA_PUBKEY(stdout, rsa); だと正常終了します。 よろしくお願いいたします。

関連するQ&A