打开SSL

密码学和 SSL/TLS 工具包

life_cycle-cipher

名称

life_cycle-cipher - 密码算法生命周期

描述

所有对称密码 (CIPHER) 在其生命周期中都经历多个阶段

开始

此状态表示 CIPHER 在分配之前。它是任何生命周期转换的起始状态。

已分配

此状态表示 CIPHER 在分配之后。

已初始化

这些状态表示 CIPHER 设置完毕并能够处理输入时。有三种可能的初始化状态

使用 EVP_CipherInit 初始化
使用 EVP_DecryptInit 初始化解密
使用 EVP_EncryptInit 初始化加密
已更新

这些状态表示 CIPHER 设置完毕并能够处理其他输入或生成输出时。三种可能的状态与上述初始化状态直接对应。三种不同的流不应混合使用。

已完成

此状态表示 CIPHER 生成输出时。

已释放

当 CIPHER 被释放时,将进入此状态。它是所有生命周期转换的终止状态。

状态转换图

说明了 CIPHER 的常用生命周期

正式状态转换

本节定义所有合法状态转换。这是规范列表。

函数调用 当前状态
开始 已分配 已初始化 已更新 已完成 已初始化
解密
已更新
解密
已初始化
加密
已更新
加密
已释放
EVP_CIPHER_CTX_new 已分配
EVP_CipherInit 已初始化 已初始化 已初始化 已初始化 已初始化 已初始化 已初始化 已初始化
EVP_DecryptInit 已初始化
解密
已初始化
解密
已初始化
解密
已初始化
解密
已初始化
解密
已初始化
解密
已初始化
解密
已初始化
解密
EVP_EncryptInit 已初始化
加密
已初始化
加密
已初始化
加密
已初始化
加密
已初始化
加密
已初始化
加密
已初始化
加密
已初始化
加密
EVP_CipherUpdate 已更新 已更新
EVP_DecryptUpdate 已更新
解密
已更新
解密
EVP_EncryptUpdate 已更新
加密
已更新
加密
EVP_CipherFinal 已完成
EVP_DecryptFinal 已完成
解密
EVP_EncryptFinal 已完成
解密
EVP_CIPHER_CTX_free 已释放 已释放 已释放 已释放 已释放 已释放 已释放 已释放 已释放
EVP_CIPHER_CTX_reset 已分配 已分配 已分配 已分配 已分配 已分配 已分配
EVP_CIPHER_CTX_get_params 已分配 已初始化 已更新 已初始化
解密
已更新
解密
已初始化
加密
已更新
加密
EVP_CIPHER_CTX_set_params 已分配 已初始化 已更新 已初始化
解密
已更新
解密
已初始化
加密
已更新
加密
EVP_CIPHER_CTX_gettable_params 已分配 已初始化 已更新 已初始化
解密
已更新
解密
已初始化
加密
已更新
加密
EVP_CIPHER_CTX_settable_params 已分配 已初始化 已更新 已初始化
解密
已更新
解密
已初始化
加密
已更新
加密

注释

在某个时刻,EVP 层将开始强制执行此处描述的转换。

另请参见

provider-cipher(7)EVP_EncryptInit(3)

版权所有 2021 OpenSSL 项目作者。保留所有权利。

根据 Apache 许可证 2.0(“许可证”)获得许可。除非符合许可证,否则您不得使用此文件。您可以在源代码分发版中的 LICENSE 文件或 https://www.openssl.org/source/license.html 中获取副本。