※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

証明書ファイルの読み込みと表示を行うサンプルです。
プログラムをわかりやすくするためにエラー処理、メモリの開放等は省略しています。

/* % 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"の内容を表示させた時と同じ結果になります。