1.1 加密解密使用步骤
表1.1 加密解密使用步骤
加密 |
解密 |
备注 | |
1 |
EVP_CIPHER_CTX_init( &ctx); |
EVP_CIPHER_CTX_init( &ctx); | |
2 |
EVP_EncryptInit_ex( &ctx, cipher, NULL, key, iv); |
EVP_DecryptInit_ex( &ctx, cipher, NULL, key, iv); |
cipher 可以是EVP_sm4_ecb()、EVP_sm4_cbc()等 |
3 |
EVP_EncryptUpdate( &ctx,p_out,&outlen,p_in,inlen); |
EVP_DecryptUpdate( &ctx,p_out,&outlen,p_in,inlen); |
消息可多次添加 |
4 |
EVP_EncryptFinal_ex( &ctx,p_out,&outlen); |
EVP_DecryptFinal_ex( &ctx,p_out,&outlen); |
◆本步还会输出密文/明文; ◆ctlen >= ptlen; ◆填充方式为每个被填充的字节设置为填充长度 |
5 |
EVP_CIPHER_CTX_cleanup(&ctx); |
EVP_CIPHER_CTX_cleanup(&ctx); |