0
点赞
收藏
分享

微信扫一扫

《OpenSSL3.0学习之二十五 EVP简介》

文章目录

🍧名字

evp - 高级加密函数

🍦描述

EVP 库为加密函数提供了高级接口。

EVP_SealXXX和==EVP_OpenXXX ==提供公钥加密和解密,以实现数字"信封"。

EVP_DigestSignXXXEVP_DigestVerifyXXX函数实现数字签名和消息身份验证代码 (MAC)。

对称加密可用EVP_EncryptXXX函数。 EVP_DigestXXX函数提供消息摘要。

EVP_PKEYXXX函数为非对称算法提供了高级接口。EVP_PKEYs 可以使用EVP_PKEY_fromdata页面上描述的函数与特定算法的私钥相关联, 或者可以使用EVP_PKEY_keygen生成新密钥。EVP_PKEYs可以使用EVP_PKEY_eq进行比较,也可以使用EVP_PKEY_print_private进行打印。EVP_PKEY_todata可用于将密钥转换回OSSL_PARAM数组。

EVP_PKEY函数支持全系列非对称算法操作:

  • 密钥协议
    参见EVP_PKEY_derive
  • 签名和验证
    参见EVP_PKEY_signEVP_PKEY_verifyEVP_PKEY_verify_recover。但是,请注意,这些函数不执行要签名的数据的摘要。因此, 通常您会使用EVP_DigestSignInit函数来实现此目的。
  • 加密和解密
    参阅EVP_PKEY_encryptEVP_PKEY_decrypt。但是,请注意,这些函数仅执行加密和解密。由于公钥加密是一项昂贵的操作, 通常您会使用EVP_SealInitEVP_OpenInit函数将加密的消息包装在"数字信封"中。
  • 基于密码的加密提供支持
    EVP_BytesToKey函数为基于密码的加密提供了一些有限的支持。仔细选择参数将提供与 PKCS#5 PBKDF1兼容的实现。但是,新应用程序通常不应使用此方法(例如,首选 PCKS#5 中的 PBKDF2)。
  • base 64 编码和解码
    EVP_EncodeXXXEVP_DecodeXXX函数实现base64编码和解码。
举报

相关推荐

0 条评论