以前、OpenSSLでBase64変換しようとした時に、ファイル経由でしか変換できないとおもっていたが、プログラム内のメモリ上でも変換できる事がわかった。
/docs/man1.0.2/man3/BIO_get_mem_ptr.html
c++ - Base64 encoding and decoding with OpenSSL - Stack Overflow
ポイントは、BIO_get_mem_ptr。
BUF_MEMという構造体のポインタが貰える。
この中に、変換後のデータや長さが格納されている模様。
とすると、
$ vi BIO_get_mem_ptr.c $ gcc -o BIO_get_mem_ptr BIO_get_mem_ptr.c -lcrypto $ ./BIO_get_mem_ptr buf = QUJDREU= $
ちゃんとプログラム内でBase64変換出来てる。