你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

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

使用客户端密钥解密单个加密数据块。

需要 keys/decrypt 权限。 此方法仅解密单个数据块,其大小取决于密钥和加密算法。

encrypt

使用客户端密钥加密字节。

需要 keys/encrypt 权限。 此方法仅加密单个数据块,其大小取决于密钥和加密算法。

from_jwk

创建只能在本地执行加密操作的客户端。

send_request

使用客户端的现有管道运行网络请求。

请求 URL 可以相对于保管库 URL。 除非另行指定,否则用于请求的服务 API 版本与客户端的版本相同。 如果响应是错误,则此方法不会引发;若要引发异常,请对返回的响应对象调用 raise_for_status () 。 有关如何使用此方法发送自定义请求的详细信息,请参阅 https://aka.ms/azsdk/dpcodegen/python/send_request

sign

使用客户端密钥从摘要创建签名。

需要 keys/sign 权限。

unwrap_key

解包以前用客户端密钥包装的密钥。

需要 keys/unwrapKey 权限。

verify

使用客户端密钥验证签名。

需要 keys/verify 权限。

wrap_key

使用客户端的密钥包装密钥。

需要 keys/wrapKey 权限。

close

关闭客户端打开的套接字。

使用客户端作为上下文管理器时,不需要调用此方法。

close() -> None

decrypt

使用客户端密钥解密单个加密数据块。

需要 keys/decrypt 权限。 此方法仅解密单个数据块,其大小取决于密钥和加密算法。

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

参数

algorithm
EncryptionAlgorithm
必需

要使用的加密算法

ciphertext
bytes
必需

要解密的加密字节。 Microsoft 建议不要在不首先使用(例如 HMAC)确保密码文本的完整性的情况下使用 CBC。 有关详细信息,请参阅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

使用客户端密钥加密字节。

需要 keys/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

使用客户端密钥从摘要创建签名。

需要 keys/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

使用客户端密钥验证签名。

需要 keys/verify 权限。

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

参数

algorithm
SignatureAlgorithm
必需

验证算法

digest
bytes
必需

对应于 签名的预哈希摘要。 使用的哈希算法必须与 兼容 algorithm

signature
bytes
必需

要验证的签名

返回类型

wrap_key

使用客户端的密钥包装密钥。

需要 keys/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,