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 中获取副本。