Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7082730
  • 博文数量: 703
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12042
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院云平台架构师,专注于数字化、智能化,技术方向:云、Linux内核、AI、MES/ERP/CRM/OA、物联网、传感器、大数据、ML、微服务。

文章分类

全部博文(703)

分类: 网络与安全

2022-04-22 10:56:56

EVP_XXX函数

evp(envelope信封)是openssl中用于非对称算法的 高级加密函数,EVP 库为加密函数提供了高级接口。
  • EVP_SealXXX和EVP_OpenXXX提供公钥加密和解密,以实现数字"信封"。
  • EVP_DigestSignXXX和EVP_DigestVerifyXXX函数实现数字签名和消息身份验证代码 (MAC)。
  • 对称加密可用EVP_EncryptXXX函数。 EVP_DigestXXX函数提供消息摘要。

EVP_PKEYXXX函数

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_sign、 EVP_PKEY_verify和EVP_PKEY_verify_recover。但是,请注意,这些函数不执行要签名的数据的摘要。因此, 通常您会使用EVP_DigestSignInit函数来实现此目的。
  •  加密和解密:参阅EVP_PKEY_encrypt 和EVP_PKEY_decrypt。但是,请注意,这些函数仅执行加密和解密。由于公钥加密是一项昂贵的操作, 通常您会使用EVP_SealInit和EVP_OpenInit函数将加密的消息包装在"数字信封"中。
  •  基于密码的加密提供支持:EVP_BytesToKey函数为基于密码的加密提供了一些有限的支持。仔细选择参数将提供与 PKCS#5 PBKDF1兼容的实现。但是,新应用程序通常不应使用此方法(例如,首选 PCKS#5 中的 PBKDF2)。
  •  base 64 编码和解码:EVP_EncodeXXX和EVP_DecodeXXX函数实现base64编码和解码。
阅读(3418) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~