OpenSSL
是用于安全传输层(TLS,Transport Layer
Security)协议和安全套接字层(SSL,Secure
Sockets Layer)协议的的工具包,提供了 SSL
协议实现(SSLv2
、SSLv3
、TLSv1
)、大量算法实现(对称/非对称/摘要)、大数运算、非对称算法密钥、ASN.1
编解码库、证书请求(PKCS10
)编解码、数字证书编解码、CRL
编解码、OCSP
协议、数字证书验证、PKCS7
标准实现和 PKCS12
个人数字证书格式实现等功能。
然而一直以来 OpenSSL 代码质量,总是受到开发人员的各种诟病,因而出现了 WolfSSL 与 PolorSSL 等 OpenSSL 的开源替代产品,其中 PolarSSL 被 ARM 公司收购之后,现更名为 Mbed TLS,主要由 Trusted Firmware 组织进行维护,遵循相关的 ARM 规范,并为 Armv8-A、Armv9-A、Armv8-M 内核架构提供了安全可信的参考实现。本文主要主要讨论了 Base64 与 Hash 编码、以及 OpenSSL 所涉及的相关加解密知识。