在用openssl读取密钥的时候,从openssl的源码的找到一个很好的示例,完美的示范了读不同格式,不同密钥来源的程序,整理一下,用来学习是相当不错
完整的代码位于…/apps/app.c中
函数是
EVP_PKEY *load_key(BIO *err,const char *file,int format,int maybe_stdin,const char *pass,ENGINE *e,const char *key_descript)
{
const SSL_METHOD *meth;
meth = SSLv23_client_method();
//meth = TLSv1_client_method();
OpenSSL_add_ssl_algorithms();
SSL_load_error_strings();
//参数1:错误输出 bio,一般就是stderr了
//
BIO *bio_err = NULL;
if(bio_err == NULL)
bio_err = BIO_new_fp(stderr,NIO_MOCLOSE);
//参数2 : 密钥文件名字,可以是pem,der,pfx,或者engine中key的label
char *key_file = NULL;
//参数3 : 密钥格式
int key_format = FORMAT_PEM; //openssl中默认一般都是 PEM格式