openssl 编程
背景: 生成私钥、公钥 --》
生成AES-key seed[32], iv[16] --》
公钥加密ASE-key, IV,传给Server --》
Server用私钥解密,得到AES-key,IV --》
Server私钥加密签名SHA1, 传给Client --》
Client用公钥解密,验证签名--》
之后的数据全都用AES加密,不过IV按照一定规定可能会变化,不过解密放要能知道加密用的IV.
1.openssl 工具生成公钥、私钥
2.Client准备数据,加密,发给Server
Input: 公钥、AES-key, IV
char* rsa_publibckey_path = "/xx/rsa_public_key.pem"
fp=fopen(rsa_publibckey_path, "r");
RSA* pPubRsa = PEM_read_RSA_PUBKEY(fp,NULL,NULL,NULL);
IV会有规律的变化
3. 解析数据,得到AES-Key, IV, 对AES-key用SHA1签名并发给Clienty验证