查看源码 加密应用

描述

Crypto 应用的目的是为加密函数提供 Erlang API,请参阅 crypto。 请注意,该 API 处于相当低的级别,并且在 public_key 中有对应的高层抽象 API 函数,在其实现中使用了 crypto 应用。

依赖项

当前的 crypto 实现使用 nif 与 OpenSSL 的加密库进行接口,并且可能在功能有限的情况下与 OpenSSL 0.9.8c 等旧版本一起工作。FIPS 模式支持至少需要 1.0.1 版本和支持 FIPS 的 OpenSSL 安装。我们建议使用 OpenSSL 项目官方支持的版本。API 兼容的后端(如 LibreSSL)也应该可以工作。

crypto 应用每天至少使用 OpenSSL 1.0.1、1.0.2、1.1.0、1.1.1 和 3.0 的一个版本进行测试。FIPS 模式也针对 1.0.1、1.0.2 和 3.0 进行了测试。

自 OTP 26.2 起,支持将 OpenSSL 3.0 与 Engines 一起使用。

OpenSSL 的源代码发布版本可以从 OpenSSL 项目主页或其中列出的镜像站点下载。

配置

为 crypto 应用定义了以下配置参数。有关配置参数的更多信息,请参阅 app(3)

  • fips_mode = boolean() - 指定是否在 FIPS 模式下运行 crypto。此设置将在加载 nif 模块时生效。如果请求 FIPS 模式但在运行时不可用,则 nif 模块以及 crypto 模块将无法加载。此机制可防止意外使用未经验证的算法。

  • rand_cache_size = integer() - 设置 crypto:rand_seed_alg(crypto_cache) crypto:rand_seed_alg_s(crypto_cache) 使用的缓存大小(以字节为单位)。此参数在调用种子函数时读取,然后保存在生成器的状态对象中。它有一个相当小的默认值,这导致大约每调用一百次随机值读取一次强随机字节。设置的值向上舍入为这些种子函数使用的大小(字)的整数倍。

另请参阅

application(3)