「OpenSSL/プログラミングの基本/サンプル/証明書の読み込みと表示」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
証明書ファイルの読み込みと表示を行うサンプルです。
/* % cc -o t_x509read t_x509read.c -lcrypto */
#include <openssl/bio.h>
#include <openssl/bn.h>
#include <openssl/x509.h>
#include <openssl/x509_vfy.h>
void err(char *msg);
int main() {
X509 *x; // 証明書構造体
BIO *certBIO; // 証明書を読み込むストリーム
// 1. 入力ストリームの生成
certBIO = BIO_new(BIO_s_file());
if (certBIO == NULL) err("new cerBIO error");
// 2. 証明書ファイル"a.cer"をバイトストリームとして読み込み
BIO_read_filename(certBIO, "a.cer");
// 3. 証明書バイトストリームから証明書構造体の生成
x = d2i_X509_bio(certBIO, NULL);
// 4. 証明書構造体の内容を標準出力へ
X509_print_fp(stdout, x);
return 0;
}
void err(char *msg) { printf("err: %s\n", msg); exit(1); }
これは、コマンド
% openssl x509 -in a.cer -noout -text
として証明書"a.cer"の内容を表示させた時と同じ結果になります。
証明書ファイルの読み込みと表示を行うサンプルです。
プログラムをわかりやすくするためにエラー処理、メモリの開放等は省略しています。
/* % cc -o t_x509read t_x509read.c -lcrypto */
#include <openssl/bio.h>
#include <openssl/bn.h>
#include <openssl/x509.h>
#include <openssl/x509_vfy.h>
void err(char *msg);
int main() {
X509 *x; // 証明書構造体
BIO *certBIO; // 証明書を読み込むストリーム
// 1. 入力ストリームの生成
certBIO = BIO_new(BIO_s_file());
if (certBIO == NULL) err("new cerBIO error");
// 2. 証明書ファイル"a.cer"をバイトストリームとして読み込み
BIO_read_filename(certBIO, "a.cer");
// 3. 証明書バイトストリームから証明書構造体の生成
x = d2i_X509_bio(certBIO, NULL);
// 4. 証明書構造体の内容を標準出力へ
X509_print_fp(stdout, x);
return 0;
}
void err(char *msg) { printf("err: %s\n", msg); exit(1); }
これは、コマンド
% openssl x509 -in a.cer -noout -text
として証明書"a.cer"の内容を表示させた時と同じ結果になります。