- ベストアンサー
OpenSSLのPEMファイル入出力時の問題について
- OpenSSLのPEMファイル入出力時に強制終了する問題が発生しています。
- 関数実行時にエラーが表示されず、異常終了してしまいます。
- ファイル出力ではなく、stdout(コンソール)での実行では問題が発生しないようです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
(たぶん)ソースコードには問題ないと思います。 DLL だけ以下のサイトから差し替えてみてはどうでしょうか。
その他の回答 (1)
- norachlo
- ベストアンサー率100% (10/10)
皆目検討もつきませんが、 OpenSSL はご自分でコンパイルされたのでしょうか。 また、もし前後のソースコードを公開できるのなら、 それも解決のヒントになるかと思います。
補足
回答ありがとうございます。 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); だと正常終了します。 よろしくお願いいたします。
お礼
参考URL先のDLLを使用したらうまくいきました。 ありがとうございました。