OpenSSL 内置的API的类型和方法有很多,实现同一个功能的有很多API,要搞清这些API的用法和区别还是要时间的,因为不同的API的具体用法还是要自己去试试的
总结一下坑点:
我用的是简单的实现,就是一个MD5(),看网上,这个简单的函数底层也是调用上面复杂的函数实现的
而且在进行MD5生成的时候,用sizeof和strlen的结果都可能是不同的
-----BEGIN RSA PRIVATE KEY-----
-----END RSA PRIVATE KEY-----
-----BEGIN PUBLIC KEY-----
-----END PUBLIC KEY-----
提取PEM格式公钥:
openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
-in 指定输入的密钥文件
-out 指定提取生成公钥的文件(PEM RSAPublicKey格式)
API:
//从BIO重加载PublicKey格式公钥证书
RSA *PEM_read_RSA_PUBKEY(FILE *fp, RSA **x, pem_password_cb *cb, void *u);
-----BEGIN RSA PUBLIC KEY-----
-----END RSA PUBLIC KEY-----
提取:
openssl rsa -in key.pem -RSAPublicKey_out -out pubkey.pem
-in 指定输入的密钥文件
-out 指定提取生成公钥的文件(PEM RSAPublicKey格式)
API:
//从BIO重加载RSAPublicKey格式公钥证书
RSA *PEM_read_bio_RSAPublicKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u);
一般都是指针的问题
常见的溢出主要有:
原文:https://www.cnblogs.com/volva/p/11815202.html