PEM函数定义在crypto/pem.h中。函数比较简单,主要的函数有:
1) PEM_write_XXXX/PEM_write_bio_XXXX
将XXXX代表的信息类型写入到文件/bio中。
2) PEM_read_XXXX/PEM_read_bio_XXXX
从文件/bio中读取PEM的XXXX代表类型的信息。
XXXX可用代表的有:SSL_SESSION、X509、X509_REQ、X509_AUX、X509_CRL、RSAPrivateKey、RSAPublicKey、DSAPrivateKey、PrivateKey、PKCS7、DHparams、NETSCAPE_CERT_SEQUENCE、PKCS8PrivateKey、DSAPrivateKey、DSA_PUBKEY、DSAparams、ECPKParameters、ECPrivateKey、EC_PUBKEY等。
3) PEM_ASN1_read/PEM_ASN1_read_bio
比较底层的PEM读取函数,2)中的函数都调用了这两个函数。
4) PEM_ASN1_write/PEM_ASN1_write_bio
比较底层的PEM读取函数,1)中的函数都调用了这两个函数。
5) PEM_read_bio
读取PEM文件的各个部分,包括文件类型、头信息以及消息体(base64解码后的结果)。
6) PEM_get_EVP_CIPHER_INFO
根据头信息获取对称算法,并加载初始化向量iv。
7) PEM_do_header
根据对称算法,解密数据。
8) PEM_bytes_read_bio
获取PEM数据,得到的结果为一个DER编码的明文数据,该函数先后调用了5)、6)和7)函数。