OpenSSL 中用于base64 编解码的函数主要有:
编码函数
EVP_EncodeInit 编码前初始化上下文
EVP_EncodeUpdate 进行base64编码, 本函数可多次调用
EVP_EncodeFinal 进行base64编码,并输出结果
EVP_EncodeBlock 进行base64编码
解码函数
EVP_DecodeInit 解码前初始化上下文
EVP_DecodeUpdate base64解码,本函数可多次调用
EVP_DecodeFinal base64解码,并输出结果
EVP_DecodeBlock base64解码,可单独调用
base64.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <openssl/evp.h>
int main()
{
EVP_ENCODE_CTX ectx, dctx;
unsigned char in[500], out[800], d[500];
int inl, outl, i, total, ret, total2;
EVP_EncodeInit(&ectx);
for(i=0; i< 500; i++)
memset(&in[i],i, 1);
inl = 500;
total = 0;
EVP_EncodeUpdate(&ectx, out, &outl, in, inl);
total +