对象存储服务 OBS-客户端加密接口详情(Python SDK):初始化 CryptoCipher

时间:2024-03-26 14:14:57

初始化 CryptoCipher

OBS Python SDK 提供两种 CryptoCipher。您可根据使用场景自行选择。

CtrRSACipherGenerator 需要提供一个 RSA 公钥或 RSA 私钥,用以加密随机生产的数据密钥。

方法定义

CtrRSACipherGenerator(master_crypto_key_path, master_key_info=None, need_sha256=False)

接口参数

表1 CtrRSACipherGenerator

参数名称

参数类型

是否必选

描述

master_crypto_key_path

str

必选

参数解释

RSA 密钥文件的路径。

默认取值:

master_key_info

str

可选

参数解释

密钥信息,该信息会存至对象的自定义元数据中, 帮助您区分不同crypto_key,需您自行维护 master_key_info 与 crypto_key 的映射关系。

默认取值:

need_sha256

bool

可选

参数解释

是否校验加密后数据的sha256,并设置加密前后的sha256作为自定义元数据。

说明:

为了节省内存开销,SDK 采用了流式计算的方法,这也就意味着,普通上传时需要读取并加密文件两次;在另外由于断点续传上传接口为分段上传接口的封装,在断点续传下,则需要读取并加密文件三次。

取值范围:

True:校验加密后数据的sha256,SDK自动计算待上传对象的加密前 sha256 值与加密后的 sha256 值,并存至对象自定义元数据,同时也会在发送请求时置于请求头,服务端收到请求后会计算收到对象的 sha256,如果 sha256 不一致会返回错误信息。

False:不校验加密后数据的sha256。

默认取值:

False

CTRCipherGenerator 仅需提供一个数据密钥,所有对象均使用该数据密钥进行加密。

方法定义

CTRCipherGenerator(crypto_key, master_key_info=None, crypto_iv=None, need_sha256=False)

接口参数

表2 CTRCipherGenerator

参数名称

参数类型

是否必选

描述

crypto_key

str or bytes

必选

参数解释

加密数据所使用的数据密钥。

约束限制:

  • 长度为 32 bytes。
  • 如果传入的是字符串也会被转换为bytes。

默认取值:

master_key_info

str

可选

参数解释

密钥信息,该信息会存至对象的自定义元数据中, 帮助您区分不同crypto_key,需您自行维护 master_key_info 与 crypto_key 的映射关系。

默认取值:

crypto_iv

str or bytes

可选

参数解释

加密数据时所使用的初始值。

约束限制:

  • 长度为 16 bytes。
  • 指定crypto_iv时,所有对象均使用该初始值加密;未指定crypto_iv时,SDK会为每个对象随机生成不同初始值。

默认取值:

need_sha256

bool

可选

参数解释

是否校验加密后数据的sha256,并设置加密前后的sha256作为自定义元数据。

说明:

为了节省内存开销,SDK 采用了流式计算的方法,这也就意味着,普通上传时需要读取并加密文件两次;在另外由于断点续传上传接口为分段上传接口的封装,在断点续传下,则需要读取并加密文件三次。

取值范围:

True:校验加密后数据的sha256,SDK自动计算待上传对象的加密前 sha256 值与加密后的 sha256 值,并存至对象自定义元数据,同时也会在发送请求时置于请求头,服务端收到请求后会计算收到对象的 sha256,如果 sha256 不一致会返回错误信息。

False:不校验加密后数据的sha256。

默认取值:

False

support.huaweicloud.com/sdk-python-devg-obs/obs_22_1011.html