開放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)

Copyright 2021 The OpenSSL Project Authors。保留所有權利。

根據 Apache 授權條款 2.0(「授權條款」)授權。您只能在遵守授權條款的情況下使用此檔案。您可以在原始程式碼散佈中的 LICENSE 檔案或 https://www.openssl.org/source/license.html 取得副本。