BIO_s_mem

ファイルに文字列を書き込む場合は、BIO_new_file()でファイル用データシンクBIOを作成した。
メモリに文字列を書き込んでいく場合は、BIO_new()にBIO_s_mem()を渡すことで、メモリ用データシンクBIOを作成する。

/docs/man1.0.2/crypto/BIO_s_mem.html

BIO_s_mem.cに、

と書く。
BIO_writeでmemに"ABCDE"を書いて、BIO_flushでフラッシュ。
その後、memに"XYZ"を書いて、またフラッシュ。
BIO_readで読み込んでbufに格納、それをprintfで出力。

$ vi BIO_s_mem.c
$ gcc -o BIO_s_mem BIO_s_mem.c -lcrypto
$ ./BIO_s_mem 
buf = ABCDEXYZ
$

memに"ABCDEXYZ"が書き込まれていたことがわかる。

Sample/openssl/BIO_s_mem/BIO_s_mem/src/BIO_s_mem at master · bg1bgst333/Sample · GitHub