CryptographyClient 類別

使用 Azure 金鑰保存庫金鑰執行密碼編譯作業。

當此用戶端使用必要的金鑰資料進行初始化,或能夠從金鑰保存庫取得該資料時,此用戶端會在本機執行作業。 當必要的金鑰資料無法使用時,金鑰保存庫服務會執行密碼編譯作業。

繼承
azure.keyvault.keys._shared.client_base.KeyVaultClientBase
CryptographyClient

建構函式

CryptographyClient(key: KeyVaultKey | str, credential: TokenCredential, **kwargs)

參數

key
KeyVaultKey
必要

KeyVaultKey由 傳回 get_key 的 實例或字串。 如果字串,此值必須是 Azure 金鑰保存庫金鑰的識別碼。 建議包含版本。

credential
TokenCredential
必要

物件,可為保存庫提供存取權杖,例如來自 的認證 identity

api_version
ApiVersion

要使用的服務 API 版本。 預設為最新的 。

verify_challenge_resource
bool

是否要驗證驗證挑戰資源符合金鑰保存庫或受控 HSM 網域。 預設值為 True。

方法

close

關閉用戶端開啟的通訊端。

使用用戶端作為內容管理員時,不需要呼叫這個方法。

decrypt

使用用戶端的金鑰解密加密資料的單一區塊。

需要金鑰/解密權限。 這個方法只會解密單一資料區塊,其大小取決於金鑰和加密演算法。

encrypt

使用用戶端的金鑰加密位元組。

需要金鑰/加密權限。 這個方法只會加密單一資料區塊,其大小取決於金鑰和加密演算法。

from_jwk

建立只能在本機執行密碼編譯作業的用戶端。

send_request

使用用戶端的現有管線執行網路要求。

要求 URL 可以相對於保存庫 URL。 除非另有指定,否則用於要求的服務 API 版本與用戶端的版本相同。 如果回應為錯誤,這個方法就不會引發;若要引發例外狀況,請在傳回的回應物件上呼叫 raise_for_status () 。 如需如何使用此方法傳送自訂要求的詳細資訊,請參閱 https://aka.ms/azsdk/dpcodegen/python/send_request

sign

使用用戶端的金鑰,從摘要建立簽章。

需要金鑰/簽署權限。

unwrap_key

解除包裝先前以用戶端金鑰包裝的金鑰。

需要 keys/unwrapKey 許可權。

verify

使用用戶端的金鑰驗證簽章。

需要金鑰/驗證權限。

wrap_key

使用用戶端的金鑰包裝金鑰。

需要金鑰/wrapKey 許可權。

close

關閉用戶端開啟的通訊端。

使用用戶端作為內容管理員時,不需要呼叫這個方法。

close() -> None

decrypt

使用用戶端的金鑰解密加密資料的單一區塊。

需要金鑰/解密權限。 這個方法只會解密單一資料區塊,其大小取決於金鑰和加密演算法。

decrypt(algorithm: EncryptionAlgorithm, ciphertext: bytes, **kwargs) -> DecryptResult

參數

algorithm
EncryptionAlgorithm
必要

要使用的加密演算法

ciphertext
bytes
必要

要解密的加密位元組。 Microsoft 建議您不要先使用 CBC,而不需要先確保使用加密文字的完整性,例如 HMAC。 如需相關資訊,請參閱 https://docs.microsoft.com/dotnet/standard/security/vulnerabilities-cbc-mode

iv
bytesNone

加密期間所使用的初始化向量。 AES 解密的必要專案。

authentication_tag
bytesNone

加密期間產生的驗證標記。 只需要 AES-GCM 解密。

additional_authenticated_data
bytesNone

已驗證但未加密的選擇性資料。 用於 AES-GCM 解密。

傳回類型

例外狀況

如果提供與指定演算法不相容的參數。

encrypt

使用用戶端的金鑰加密位元組。

需要金鑰/加密權限。 這個方法只會加密單一資料區塊,其大小取決於金鑰和加密演算法。

encrypt(algorithm: EncryptionAlgorithm, plaintext: bytes, **kwargs) -> EncryptResult

參數

algorithm
EncryptionAlgorithm
必要

要使用的加密演算法

plaintext
bytes
必要

要加密的位元組

iv
bytesNone

初始化向量。 只有 AES-CBC (PAD) 加密的必要專案。 如果您傳遞自己的 IV,請確定您使用密碼編譯隨機的非重複 IV。 如果省略,將會嘗試透過os.urandom產生 IV 以進行本機密碼編譯;針對遠端密碼編譯,金鑰保存庫會產生 IV。

additional_authenticated_data
bytesNone

已驗證但未加密的選擇性資料。 用於 AES-GCM 加密。

傳回類型

例外狀況

如果提供與指定演算法不相容的參數,或在目前平臺上產生 IV 失敗,則為 。

from_jwk

建立只能在本機執行密碼編譯作業的用戶端。

from_jwk(jwk: JsonWebKey | Dict[str, Any]) -> CryptographyClient

參數

jwk
JsonWebKeyDict[str, Any]
必要

金鑰的密碼編譯資料,做為 JsonWebKey 或字典。

傳回類型

send_request

使用用戶端的現有管線執行網路要求。

要求 URL 可以相對於保存庫 URL。 除非另有指定,否則用於要求的服務 API 版本與用戶端的版本相同。 如果回應為錯誤,這個方法就不會引發;若要引發例外狀況,請在傳回的回應物件上呼叫 raise_for_status () 。 如需如何使用此方法傳送自訂要求的詳細資訊,請參閱 https://aka.ms/azsdk/dpcodegen/python/send_request

send_request(request: HttpRequest, *, stream: bool = False, **kwargs) -> HttpResponse

參數

request
HttpRequest
必要

您想要進行的網路要求。

stream
bool

是否要串流回應承載。 預設為 False。

傳回

網路通話的回應。 不會在您的回應上處理錯誤。

傳回類型

sign

使用用戶端的金鑰,從摘要建立簽章。

需要金鑰/簽署權限。

sign(algorithm: SignatureAlgorithm, digest: bytes, **kwargs) -> SignResult

參數

algorithm
SignatureAlgorithm
必要

簽署演算法

digest
bytes
必要

要簽署的雜湊位元組

傳回類型

unwrap_key

解除包裝先前以用戶端金鑰包裝的金鑰。

需要 keys/unwrapKey 許可權。

unwrap_key(algorithm: KeyWrapAlgorithm, encrypted_key: bytes, **kwargs) -> UnwrapResult

參數

algorithm
KeyWrapAlgorithm
必要

包裝要使用的演算法

encrypted_key
bytes
必要

包裝的索引鍵

傳回類型

verify

使用用戶端的金鑰驗證簽章。

需要金鑰/驗證權限。

verify(algorithm: SignatureAlgorithm, digest: bytes, signature: bytes, **kwargs) -> VerifyResult

參數

algorithm
SignatureAlgorithm
必要

驗證演算法

digest
bytes
必要

對應至 簽章的預先雜湊摘要。 使用的雜湊演算法必須與 相容 algorithm

signature
bytes
必要

要驗證的簽章

傳回類型

wrap_key

使用用戶端的金鑰包裝金鑰。

需要金鑰/wrapKey 許可權。

wrap_key(algorithm: KeyWrapAlgorithm, key: bytes, **kwargs) -> WrapResult

參數

algorithm
KeyWrapAlgorithm
必要

包裝要使用的演算法

key
bytes
必要

要包裝的索引鍵

傳回類型

屬性

key_id

用戶端金鑰的完整識別碼。

當使用 建構 from_jwk 用戶端時,這個屬性可能是 None。

傳回類型

str,

vault_url

用戶端金鑰的基底保存庫 URL。

當使用 建構 from_jwk 用戶端時,這個屬性可能是 None。

傳回類型

str,