tencentcloud-sdk-python-ess 3.1.157__py2.py3-none-any.whl → 3.1.166__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
tencentcloud/__init__.py CHANGED
@@ -14,4 +14,4 @@
14
14
  # limitations under the License.
15
15
 
16
16
 
17
- __version__ = '3.1.157'
17
+ __version__ = '3.1.166'
@@ -534,8 +534,8 @@ class EssClient(AbstractClient):
534
534
  1. 该接口可生成签署人的批量、合同组签署/查看链接 。
535
535
  2. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建批量签署链接 。
536
536
  3. 该接口返回的签署链接适用于APP集成的场景,支持APP打开或浏览器直接打开,**不支持微信小程序嵌入**。
537
- 跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
538
537
  4. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
538
+ 5. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
539
539
 
540
540
  :param request: Request instance for CreateBatchQuickSignUrl.
541
541
  :type request: :class:`tencentcloud.ess.v20201111.models.CreateBatchQuickSignUrlRequest`
@@ -1010,6 +1010,9 @@ class EssClient(AbstractClient):
1010
1010
  1. `支持的文件类型有doc、docx、xls、xlsx、html、jpg、jpeg、png、bmp、txt`
1011
1011
  2. `可通过发起合同时设置预览来检查转换文件是否达到预期效果`
1012
1012
 
1013
+ 整体流程如下图
1014
+ ![image](https://qcloudimg.tencent-cloud.cn/raw/bb35c9cfa453d28eade16df36221f313.png)
1015
+
1013
1016
  :param request: Request instance for CreateFileConvertTask.
1014
1017
  :type request: :class:`tencentcloud.ess.v20201111.models.CreateFileConvertTaskRequest`
1015
1018
  :rtype: :class:`tencentcloud.ess.v20201111.models.CreateFileConvertTaskResponse`
@@ -1624,8 +1627,8 @@ class EssClient(AbstractClient):
1624
1627
  **注意**
1625
1628
  1. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建签署链接。
1626
1629
  2. 该接口返回的签署链接适用于APP集成的场景,支持APP、支付宝打开或浏览器直接打开,**不支持微信小程序嵌入**。配置方式请参考:<a href="https://qian.tencent.com/developers/company/openqianh5/">跳转电子签H5</a>。
1627
- 如需跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
1628
1630
  3. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
1631
+ 4. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
1629
1632
 
1630
1633
  :param request: Request instance for CreateFlowSignUrl.
1631
1634
  :type request: :class:`tencentcloud.ess.v20201111.models.CreateFlowSignUrlRequest`
@@ -2393,6 +2396,143 @@ class EssClient(AbstractClient):
2393
2396
  raise TencentCloudSDKException(type(e).__name__, str(e))
2394
2397
 
2395
2398
 
2399
+ def CreateRequestWithEncryption(self, request):
2400
+ r"""该接口支持对请求内容进行加密传输。调用方需使用约定的 AES-CBC 或 SM4-CBC 算法对请求内容进行加密,并使用 HMAC-SHA256 或 HMAC-SM3 算法对 IV 和加密后的数据进行完整性校验,防止请求内容被篡改。
2401
+
2402
+ ![image](https://qcloudimg.tencent-cloud.cn/raw/391df0a37c2b213445c4909ba98824ac.svg)
2403
+
2404
+ **请求端加密流程**
2405
+ 1. 每次请求使用密码学安全的随机源生成 16 字节 的 IV。每次请求必须重新生成,严禁复用。
2406
+ 2. 使用约定的 AES-CBC 或 SM4-CBC 算法对原始请求体进行加密,使用 PKCS#7 Padding。
2407
+ 3. 将加密后的密文原始字节进行标准 Base64 编码,作为 EncryptedData 参数。
2408
+ 4. 将 IV 原始字节进行标准 Base64 编码,作为 IV 参数。
2409
+ 5. 对 IV 原始字节和密文原始字节直接拼接(不添加分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)
2410
+ 6. 将 HMAC 的结果进行 标准 Base64 编码,作为 EncryptionSignature 参数。
2411
+
2412
+ **响应端解密流程**
2413
+ 1. 先判断本接口自身是否返回外层错误,此时错误为明文(标准腾讯云错误体),有则直接失败处理。
2414
+ 2. 分别对 IV、EncryptedData、EncryptionSignature 做标准 Base64 解码,得到原始字节。
2415
+ 3. 将 IV 与密文原始字节直接拼接(无分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)。
2416
+ 4. 与响应中 EncryptionSignature 解码后的字节做恒定时间比较,不一致立即失败,不得继续解密。
2417
+ 5. 使用约定的 AES-CBC 或 SM4-CBC,以 IV 和密钥解密 EncryptedData,去除 PKCS#7 Padding 得到明文。
2418
+ 6. 先用腾讯云标准错误体反序列化明文,判断被加密业务接口是否返回 Error。
2419
+ 7. 无业务错误时,再用目标业务接口的响应结构体反序列化明文,取出实际业务参数。
2420
+
2421
+ **响应端错误处理**
2422
+ 1. 外层错误(本接口本身调用失败):返回标准腾讯云错误 JSON(含 Error.Code / Error.Message),无 EncryptedData,不需要解密即可处理。
2423
+ 2. 内层错误(业务接口执行失败):外层成功,但解密后的明文里包含 Error.Code / Error.Message,按目标业务接口的错误规范处理。
2424
+
2425
+ **处理过程示例**
2426
+ ```
2427
+ # ========== 前置约定 ==========
2428
+ AESKey : 加密 密钥(AES 32 字节,SM4 16 字节)
2429
+ HMACKey : HMAC 密钥(与加密密钥需要不同)
2430
+ ALGO : AES-CBC 或 SM4-CBC,双方约定
2431
+ HMAC : ALGO == AES-CBC ? HMAC-SHA256 : HMAC-SM3
2432
+
2433
+ # ========== 请求端:加密并调用 ==========
2434
+ function CallWithEncryption(bizAction, bizRequestObj):
2435
+ # 1. 序列化业务请求
2436
+ plaintext = JSON.stringify(bizRequestObj)
2437
+ # 2. 生成 16 字节随机 IV(每次新生成,禁止复用)
2438
+ iv = SecureRandom(16)
2439
+ # 3. 对称加密(PKCS#7 Padding)
2440
+ ciphertext = SymmetricEncrypt(ALGO, AESKey, iv, plaintext)
2441
+ # 4. 计算完整性签名:HMAC(Key, IV || Ciphertext)
2442
+ signature = HMAC(HMACKey, concat(iv, ciphertext))
2443
+ # 5. 组装外层请求参数(三段均为标准 Base64)
2444
+ encReq = {
2445
+ RequestAction: bizAction,
2446
+ IV: Base64(iv),
2447
+ EncryptedData: Base64(ciphertext),
2448
+ EncryptionSignature: Base64(signature),
2449
+ }
2450
+ # 6. 调用 CreateRequestWithEncryption
2451
+ # TC3-HMAC-SHA256 鉴权由官方 SDK 自动完成
2452
+ encResp = CloudAPI.CreateRequestWithEncryption(encReq)
2453
+ # 7. 外层错误:明文,直接抛出
2454
+ if encResp.Error != nil:
2455
+ raise OuterError(encResp.Error)
2456
+ # 8. 解密并返回业务响应
2457
+ return DecryptResponse(encResp.Response)
2458
+
2459
+ # ========== 响应端:校验并解密 ==========
2460
+ function DecryptResponse(resp):
2461
+ # 1. Base64 解码
2462
+ ivBytes = Base64Decode(resp.IV)
2463
+ ctBytes = Base64Decode(resp.EncryptedData)
2464
+ sigBytes = Base64Decode(resp.EncryptionSignature)
2465
+ # 2. 重新计算 HMAC
2466
+ expected = HMAC(HMACKey, concat(ivBytes, ctBytes))
2467
+ # 3. 恒定时间比较,失败立即终止(不得继续解密)
2468
+ if not ConstantTimeEqual(expected, sigBytes):
2469
+ raise SignatureMismatch
2470
+ # 4. 对称解密,去除 PKCS#7 Padding
2471
+ plaintext = SymmetricDecrypt(ALGO, AESKey, ivBytes, ctBytes)
2472
+ # 5. 先按腾讯云错误体解析,判断业务是否失败
2473
+ bizErr = TryParseTencentCloudError(plaintext)
2474
+ if bizErr != nil:
2475
+ raise BusinessError(bizErr)
2476
+ # 6. 按目标业务接口的响应结构反序列化
2477
+ return JSON.parse(plaintext, BizResponseSchema)
2478
+ ```
2479
+
2480
+ **AES-CBC 示例**
2481
+ 以下示例参数及结果可用于验证 AES-CBC 加密和 HMAC-SHA256 签名算法的实现是否正确。
2482
+
2483
+ 加密密钥:AES-CBC-Key-1234
2484
+ 签名密钥:AES-HMAC-Key-123
2485
+ IV:1234567890abcdef
2486
+ 请求内容:{"Request": "This is a test."}
2487
+
2488
+ 最终请求参数:
2489
+ ```
2490
+ {
2491
+ "RequestAction": "DescribeFlowComponents",
2492
+ "IV": "MTIzNDU2Nzg5MGFiY2RlZg==",
2493
+ "EncryptedData": "Iqp2W1jislwMNmE7bH9dKZZiMQsfkAPyvAAqDFRnWLw=",
2494
+ "EncryptionSignature": "4TT3PUCZgZT7YmEPtXDm5PDcM6xT7FoYHfMW8xunB5I="
2495
+ }
2496
+ ```
2497
+
2498
+ **SM4-CBC 示例**
2499
+ 以下示例参数及结果可用于验证 SM4-CBC 加密和 HMAC-SM4 签名算法的实现是否正确。
2500
+
2501
+ 加密密钥:SM4-CBC-Key-1234
2502
+ 签名密钥:SM4-HMAC-Key-123
2503
+ IV:fedcba0987654321
2504
+ 请求内容:{"Request": "This is a test."}
2505
+
2506
+ 最终请求参数:
2507
+ ```
2508
+ {
2509
+ "RequestAction": "DescribeFlowComponents",
2510
+ "IV": "ZmVkY2JhMDk4NzY1NDMyMQ==",
2511
+ "EncryptedData": "GwUovQhNUPaUnVM/UDXMtPOYTpTSi2B1oyZDFbyyvns=",
2512
+ "EncryptionSignature": "nHB/v/AvOaDCQ66esFNnp12lHKcGkwaLGid0Warl/KE="
2513
+ }
2514
+ ```
2515
+
2516
+ :param request: Request instance for CreateRequestWithEncryption.
2517
+ :type request: :class:`tencentcloud.ess.v20201111.models.CreateRequestWithEncryptionRequest`
2518
+ :rtype: :class:`tencentcloud.ess.v20201111.models.CreateRequestWithEncryptionResponse`
2519
+
2520
+ """
2521
+ try:
2522
+ params = request._serialize()
2523
+ headers = request.headers
2524
+ body = self.call("CreateRequestWithEncryption", params, headers=headers)
2525
+ response = json.loads(body)
2526
+ model = models.CreateRequestWithEncryptionResponse()
2527
+ model._deserialize(response["Response"])
2528
+ return model
2529
+ except Exception as e:
2530
+ if isinstance(e, TencentCloudSDKException):
2531
+ raise
2532
+ else:
2533
+ raise TencentCloudSDKException(type(e).__name__, str(e))
2534
+
2535
+
2396
2536
  def CreateRiskIdentificationTaskFeedback(self, request):
2397
2537
  r"""此接口(CreateRiskIdentificationTaskFeedback)用于创建合同审查任务结果反馈。
2398
2538
 
@@ -3377,6 +3517,9 @@ class EssClient(AbstractClient):
3377
3517
  1. `大文件转换所需的时间可能会比较长`
3378
3518
  2. `本接口返回的文件资源ID就是PDF资源ID,可以直接用于【用PDF文件创建签署流程】接口发起合同。`
3379
3519
 
3520
+ 整体流程如下图
3521
+ ![image](https://qcloudimg.tencent-cloud.cn/raw/bb35c9cfa453d28eade16df36221f313.png)
3522
+
3380
3523
  :param request: Request instance for DescribeFileConvertTask.
3381
3524
  :type request: :class:`tencentcloud.ess.v20201111.models.DescribeFileConvertTaskRequest`
3382
3525
  :rtype: :class:`tencentcloud.ess.v20201111.models.DescribeFileConvertTaskResponse`
@@ -463,8 +463,8 @@ class EssClient(AbstractClient):
463
463
  1. 该接口可生成签署人的批量、合同组签署/查看链接 。
464
464
  2. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建批量签署链接 。
465
465
  3. 该接口返回的签署链接适用于APP集成的场景,支持APP打开或浏览器直接打开,**不支持微信小程序嵌入**。
466
- 跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
467
466
  4. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
467
+ 5. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
468
468
  """
469
469
 
470
470
  kwargs = {}
@@ -863,6 +863,9 @@ class EssClient(AbstractClient):
863
863
  注:
864
864
  1. `支持的文件类型有doc、docx、xls、xlsx、html、jpg、jpeg、png、bmp、txt`
865
865
  2. `可通过发起合同时设置预览来检查转换文件是否达到预期效果`
866
+
867
+ 整体流程如下图
868
+ ![image](https://qcloudimg.tencent-cloud.cn/raw/bb35c9cfa453d28eade16df36221f313.png)
866
869
  """
867
870
 
868
871
  kwargs = {}
@@ -1408,8 +1411,8 @@ class EssClient(AbstractClient):
1408
1411
  **注意**
1409
1412
  1. 该签署链接**默认有效期为30分钟**,过期后将失效,如需签署可重新创建签署链接。
1410
1413
  2. 该接口返回的签署链接适用于APP集成的场景,支持APP、支付宝打开或浏览器直接打开,**不支持微信小程序嵌入**。配置方式请参考:<a href="https://qian.tencent.com/developers/company/openqianh5/">跳转电子签H5</a>。
1411
- 如需跳转到小程序的实现,参考微信官方文档(分为<a href="https://developers.weixin.qq.com/miniprogram/dev/api/navigate/wx.navigateToMiniProgram.html">全屏</a>、<a href="https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/openEmbeddedMiniProgram.html">半屏</a>两种方式),如何配置也可以请参考: <a href="https://qian.tencent.com/developers/company/openwxminiprogram">跳转电子签小程序配置</a>。
1412
1414
  3. 因h5涉及人脸身份认证能力基于慧眼人脸核身,对Android和iOS系统均有一定要求, 因此<font color='red'>App嵌入H5签署合同需要按照慧眼提供的<a href="https://cloud.tencent.com/document/product/1007/61076">慧眼人脸核身兼容性文档</a>做兼容性适配</font>。
1415
+ 4. <font color='red'>iframe 嵌入暂不支持人脸相关操作</font>,包括设置密码等需要进行的人脸核验。
1413
1416
  """
1414
1417
 
1415
1418
  kwargs = {}
@@ -2052,6 +2055,138 @@ class EssClient(AbstractClient):
2052
2055
 
2053
2056
  return await self.call_and_deserialize(**kwargs)
2054
2057
 
2058
+ async def CreateRequestWithEncryption(
2059
+ self,
2060
+ request: models.CreateRequestWithEncryptionRequest,
2061
+ opts: Dict = None,
2062
+ ) -> models.CreateRequestWithEncryptionResponse:
2063
+ """
2064
+ 该接口支持对请求内容进行加密传输。调用方需使用约定的 AES-CBC 或 SM4-CBC 算法对请求内容进行加密,并使用 HMAC-SHA256 或 HMAC-SM3 算法对 IV 和加密后的数据进行完整性校验,防止请求内容被篡改。
2065
+
2066
+ ![image](https://qcloudimg.tencent-cloud.cn/raw/391df0a37c2b213445c4909ba98824ac.svg)
2067
+
2068
+ **请求端加密流程**
2069
+ 1. 每次请求使用密码学安全的随机源生成 16 字节 的 IV。每次请求必须重新生成,严禁复用。
2070
+ 2. 使用约定的 AES-CBC 或 SM4-CBC 算法对原始请求体进行加密,使用 PKCS#7 Padding。
2071
+ 3. 将加密后的密文原始字节进行标准 Base64 编码,作为 EncryptedData 参数。
2072
+ 4. 将 IV 原始字节进行标准 Base64 编码,作为 IV 参数。
2073
+ 5. 对 IV 原始字节和密文原始字节直接拼接(不添加分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)
2074
+ 6. 将 HMAC 的结果进行 标准 Base64 编码,作为 EncryptionSignature 参数。
2075
+
2076
+ **响应端解密流程**
2077
+ 1. 先判断本接口自身是否返回外层错误,此时错误为明文(标准腾讯云错误体),有则直接失败处理。
2078
+ 2. 分别对 IV、EncryptedData、EncryptionSignature 做标准 Base64 解码,得到原始字节。
2079
+ 3. 将 IV 与密文原始字节直接拼接(无分隔符),计算 HMAC-SHA256 或 HMAC-SM4:HMAC(Key, IVBytes || CiphertextBytes)。
2080
+ 4. 与响应中 EncryptionSignature 解码后的字节做恒定时间比较,不一致立即失败,不得继续解密。
2081
+ 5. 使用约定的 AES-CBC 或 SM4-CBC,以 IV 和密钥解密 EncryptedData,去除 PKCS#7 Padding 得到明文。
2082
+ 6. 先用腾讯云标准错误体反序列化明文,判断被加密业务接口是否返回 Error。
2083
+ 7. 无业务错误时,再用目标业务接口的响应结构体反序列化明文,取出实际业务参数。
2084
+
2085
+ **响应端错误处理**
2086
+ 1. 外层错误(本接口本身调用失败):返回标准腾讯云错误 JSON(含 Error.Code / Error.Message),无 EncryptedData,不需要解密即可处理。
2087
+ 2. 内层错误(业务接口执行失败):外层成功,但解密后的明文里包含 Error.Code / Error.Message,按目标业务接口的错误规范处理。
2088
+
2089
+ **处理过程示例**
2090
+ ```
2091
+ # ========== 前置约定 ==========
2092
+ AESKey : 加密 密钥(AES 32 字节,SM4 16 字节)
2093
+ HMACKey : HMAC 密钥(与加密密钥需要不同)
2094
+ ALGO : AES-CBC 或 SM4-CBC,双方约定
2095
+ HMAC : ALGO == AES-CBC ? HMAC-SHA256 : HMAC-SM3
2096
+
2097
+ # ========== 请求端:加密并调用 ==========
2098
+ function CallWithEncryption(bizAction, bizRequestObj):
2099
+ # 1. 序列化业务请求
2100
+ plaintext = JSON.stringify(bizRequestObj)
2101
+ # 2. 生成 16 字节随机 IV(每次新生成,禁止复用)
2102
+ iv = SecureRandom(16)
2103
+ # 3. 对称加密(PKCS#7 Padding)
2104
+ ciphertext = SymmetricEncrypt(ALGO, AESKey, iv, plaintext)
2105
+ # 4. 计算完整性签名:HMAC(Key, IV || Ciphertext)
2106
+ signature = HMAC(HMACKey, concat(iv, ciphertext))
2107
+ # 5. 组装外层请求参数(三段均为标准 Base64)
2108
+ encReq = {
2109
+ RequestAction: bizAction,
2110
+ IV: Base64(iv),
2111
+ EncryptedData: Base64(ciphertext),
2112
+ EncryptionSignature: Base64(signature),
2113
+ }
2114
+ # 6. 调用 CreateRequestWithEncryption
2115
+ # TC3-HMAC-SHA256 鉴权由官方 SDK 自动完成
2116
+ encResp = CloudAPI.CreateRequestWithEncryption(encReq)
2117
+ # 7. 外层错误:明文,直接抛出
2118
+ if encResp.Error != nil:
2119
+ raise OuterError(encResp.Error)
2120
+ # 8. 解密并返回业务响应
2121
+ return DecryptResponse(encResp.Response)
2122
+
2123
+ # ========== 响应端:校验并解密 ==========
2124
+ function DecryptResponse(resp):
2125
+ # 1. Base64 解码
2126
+ ivBytes = Base64Decode(resp.IV)
2127
+ ctBytes = Base64Decode(resp.EncryptedData)
2128
+ sigBytes = Base64Decode(resp.EncryptionSignature)
2129
+ # 2. 重新计算 HMAC
2130
+ expected = HMAC(HMACKey, concat(ivBytes, ctBytes))
2131
+ # 3. 恒定时间比较,失败立即终止(不得继续解密)
2132
+ if not ConstantTimeEqual(expected, sigBytes):
2133
+ raise SignatureMismatch
2134
+ # 4. 对称解密,去除 PKCS#7 Padding
2135
+ plaintext = SymmetricDecrypt(ALGO, AESKey, ivBytes, ctBytes)
2136
+ # 5. 先按腾讯云错误体解析,判断业务是否失败
2137
+ bizErr = TryParseTencentCloudError(plaintext)
2138
+ if bizErr != nil:
2139
+ raise BusinessError(bizErr)
2140
+ # 6. 按目标业务接口的响应结构反序列化
2141
+ return JSON.parse(plaintext, BizResponseSchema)
2142
+ ```
2143
+
2144
+ **AES-CBC 示例**
2145
+ 以下示例参数及结果可用于验证 AES-CBC 加密和 HMAC-SHA256 签名算法的实现是否正确。
2146
+
2147
+ 加密密钥:AES-CBC-Key-1234
2148
+ 签名密钥:AES-HMAC-Key-123
2149
+ IV:1234567890abcdef
2150
+ 请求内容:{"Request": "This is a test."}
2151
+
2152
+ 最终请求参数:
2153
+ ```
2154
+ {
2155
+ "RequestAction": "DescribeFlowComponents",
2156
+ "IV": "MTIzNDU2Nzg5MGFiY2RlZg==",
2157
+ "EncryptedData": "Iqp2W1jislwMNmE7bH9dKZZiMQsfkAPyvAAqDFRnWLw=",
2158
+ "EncryptionSignature": "4TT3PUCZgZT7YmEPtXDm5PDcM6xT7FoYHfMW8xunB5I="
2159
+ }
2160
+ ```
2161
+
2162
+ **SM4-CBC 示例**
2163
+ 以下示例参数及结果可用于验证 SM4-CBC 加密和 HMAC-SM4 签名算法的实现是否正确。
2164
+
2165
+ 加密密钥:SM4-CBC-Key-1234
2166
+ 签名密钥:SM4-HMAC-Key-123
2167
+ IV:fedcba0987654321
2168
+ 请求内容:{"Request": "This is a test."}
2169
+
2170
+ 最终请求参数:
2171
+ ```
2172
+ {
2173
+ "RequestAction": "DescribeFlowComponents",
2174
+ "IV": "ZmVkY2JhMDk4NzY1NDMyMQ==",
2175
+ "EncryptedData": "GwUovQhNUPaUnVM/UDXMtPOYTpTSi2B1oyZDFbyyvns=",
2176
+ "EncryptionSignature": "nHB/v/AvOaDCQ66esFNnp12lHKcGkwaLGid0Warl/KE="
2177
+ }
2178
+ ```
2179
+ """
2180
+
2181
+ kwargs = {}
2182
+ kwargs["action"] = "CreateRequestWithEncryption"
2183
+ kwargs["params"] = request._serialize()
2184
+ kwargs["resp_cls"] = models.CreateRequestWithEncryptionResponse
2185
+ kwargs["headers"] = request.headers
2186
+ kwargs["opts"] = opts or {}
2187
+
2188
+ return await self.call_and_deserialize(**kwargs)
2189
+
2055
2190
  async def CreateRiskIdentificationTaskFeedback(
2056
2191
  self,
2057
2192
  request: models.CreateRiskIdentificationTaskFeedbackRequest,
@@ -2855,6 +2990,9 @@ class EssClient(AbstractClient):
2855
2990
  注:
2856
2991
  1. `大文件转换所需的时间可能会比较长`
2857
2992
  2. `本接口返回的文件资源ID就是PDF资源ID,可以直接用于【用PDF文件创建签署流程】接口发起合同。`
2993
+
2994
+ 整体流程如下图
2995
+ ![image](https://qcloudimg.tencent-cloud.cn/raw/bb35c9cfa453d28eade16df36221f313.png)
2858
2996
  """
2859
2997
 
2860
2998
  kwargs = {}
@@ -18507,6 +18507,160 @@ class CreateReleaseFlowResponse(AbstractModel):
18507
18507
  self._RequestId = params.get("RequestId")
18508
18508
 
18509
18509
 
18510
+ class CreateRequestWithEncryptionRequest(AbstractModel):
18511
+ r"""CreateRequestWithEncryption请求参数结构体
18512
+
18513
+ """
18514
+
18515
+ def __init__(self):
18516
+ r"""
18517
+ :param _RequestAction: <p>操作的接口名称。取值参考接口文档输入参数章节关于公共参数 Action 的说明。</p>
18518
+ :type RequestAction: str
18519
+ :param _IV: <p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
18520
+ :type IV: str
18521
+ :param _EncryptedData: <p>使用 AES-CBC 或 SM4-CBC 加密请求内容得到的密文。加密前请求内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
18522
+ :type EncryptedData: str
18523
+ :param _EncryptionSignature: <p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
18524
+ :type EncryptionSignature: str
18525
+ """
18526
+ self._RequestAction = None
18527
+ self._IV = None
18528
+ self._EncryptedData = None
18529
+ self._EncryptionSignature = None
18530
+
18531
+ @property
18532
+ def RequestAction(self):
18533
+ r"""<p>操作的接口名称。取值参考接口文档输入参数章节关于公共参数 Action 的说明。</p>
18534
+ :rtype: str
18535
+ """
18536
+ return self._RequestAction
18537
+
18538
+ @RequestAction.setter
18539
+ def RequestAction(self, RequestAction):
18540
+ self._RequestAction = RequestAction
18541
+
18542
+ @property
18543
+ def IV(self):
18544
+ r"""<p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
18545
+ :rtype: str
18546
+ """
18547
+ return self._IV
18548
+
18549
+ @IV.setter
18550
+ def IV(self, IV):
18551
+ self._IV = IV
18552
+
18553
+ @property
18554
+ def EncryptedData(self):
18555
+ r"""<p>使用 AES-CBC 或 SM4-CBC 加密请求内容得到的密文。加密前请求内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
18556
+ :rtype: str
18557
+ """
18558
+ return self._EncryptedData
18559
+
18560
+ @EncryptedData.setter
18561
+ def EncryptedData(self, EncryptedData):
18562
+ self._EncryptedData = EncryptedData
18563
+
18564
+ @property
18565
+ def EncryptionSignature(self):
18566
+ r"""<p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
18567
+ :rtype: str
18568
+ """
18569
+ return self._EncryptionSignature
18570
+
18571
+ @EncryptionSignature.setter
18572
+ def EncryptionSignature(self, EncryptionSignature):
18573
+ self._EncryptionSignature = EncryptionSignature
18574
+
18575
+
18576
+ def _deserialize(self, params):
18577
+ self._RequestAction = params.get("RequestAction")
18578
+ self._IV = params.get("IV")
18579
+ self._EncryptedData = params.get("EncryptedData")
18580
+ self._EncryptionSignature = params.get("EncryptionSignature")
18581
+ memeber_set = set(params.keys())
18582
+ for name, value in vars(self).items():
18583
+ property_name = name[1:]
18584
+ if property_name in memeber_set:
18585
+ memeber_set.remove(property_name)
18586
+ if len(memeber_set) > 0:
18587
+ warnings.warn("%s fileds are useless." % ",".join(memeber_set))
18588
+
18589
+
18590
+
18591
+ class CreateRequestWithEncryptionResponse(AbstractModel):
18592
+ r"""CreateRequestWithEncryption返回参数结构体
18593
+
18594
+ """
18595
+
18596
+ def __init__(self):
18597
+ r"""
18598
+ :param _IV: <p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
18599
+ :type IV: str
18600
+ :param _EncryptedData: <p>使用 AES-CBC 或 SM4-CBC 加密返回内容得到的密文。加密前返回内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
18601
+ :type EncryptedData: str
18602
+ :param _EncryptionSignature: <p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
18603
+ :type EncryptionSignature: str
18604
+ :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
18605
+ :type RequestId: str
18606
+ """
18607
+ self._IV = None
18608
+ self._EncryptedData = None
18609
+ self._EncryptionSignature = None
18610
+ self._RequestId = None
18611
+
18612
+ @property
18613
+ def IV(self):
18614
+ r"""<p>加密算法使用的初始化向量。固定为 16 字节,将 IV 原始字节使用标准 Base64 编码后传入。</p>
18615
+ :rtype: str
18616
+ """
18617
+ return self._IV
18618
+
18619
+ @IV.setter
18620
+ def IV(self, IV):
18621
+ self._IV = IV
18622
+
18623
+ @property
18624
+ def EncryptedData(self):
18625
+ r"""<p>使用 AES-CBC 或 SM4-CBC 加密返回内容得到的密文。加密前返回内容采用 PKCS#7 Padding;将密文原始字节使用标准 Base64 编码后传入。</p>
18626
+ :rtype: str
18627
+ """
18628
+ return self._EncryptedData
18629
+
18630
+ @EncryptedData.setter
18631
+ def EncryptedData(self, EncryptedData):
18632
+ self._EncryptedData = EncryptedData
18633
+
18634
+ @property
18635
+ def EncryptionSignature(self):
18636
+ r"""<p>用于校验请求数据完整性。对 IV 原始字节和密文原始字节直接拼接(不加拼接符)后计算 HMAC-SHA256,再将计算结果使用标准 Base64 编码后传入。</p>
18637
+ :rtype: str
18638
+ """
18639
+ return self._EncryptionSignature
18640
+
18641
+ @EncryptionSignature.setter
18642
+ def EncryptionSignature(self, EncryptionSignature):
18643
+ self._EncryptionSignature = EncryptionSignature
18644
+
18645
+ @property
18646
+ def RequestId(self):
18647
+ r"""唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。
18648
+ :rtype: str
18649
+ """
18650
+ return self._RequestId
18651
+
18652
+ @RequestId.setter
18653
+ def RequestId(self, RequestId):
18654
+ self._RequestId = RequestId
18655
+
18656
+
18657
+ def _deserialize(self, params):
18658
+ self._IV = params.get("IV")
18659
+ self._EncryptedData = params.get("EncryptedData")
18660
+ self._EncryptionSignature = params.get("EncryptionSignature")
18661
+ self._RequestId = params.get("RequestId")
18662
+
18663
+
18510
18664
  class CreateResultPageConfig(AbstractModel):
18511
18665
  r"""发起流程的可嵌入页面操作结果页配置
18512
18666
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: tencentcloud-sdk-python-ess
3
- Version: 3.1.157
3
+ Version: 3.1.166
4
4
  Summary: Tencent Cloud Ess SDK for Python
5
5
  Home-page: https://github.com/TencentCloud/tencentcloud-sdk-python
6
6
  Author: Tencent Cloud
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 2.7
15
15
  Classifier: Programming Language :: Python :: 3
16
16
  Classifier: Programming Language :: Python :: 3.6
17
17
  Classifier: Programming Language :: Python :: 3.7
18
- Requires-Dist: tencentcloud-sdk-python-common <4.0.0,>=3.1.157
18
+ Requires-Dist: tencentcloud-sdk-python-common <4.0.0,>=3.1.166
19
19
 
20
20
  ============================
21
21
  Tencent Cloud SDK for Python
@@ -0,0 +1,11 @@
1
+ tencentcloud/__init__.py,sha256=yhpZww772TBu5Yq4CtKLQ0oSRJtTQXXtyIoWDqLX-L4,630
2
+ tencentcloud/ess/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ tencentcloud/ess/v20201111/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ tencentcloud/ess/v20201111/errorcodes.py,sha256=F1_B_bBaEBV-LQ2Y2sOZx6STYdPLCrmovN1kMS4Y-f0,28910
5
+ tencentcloud/ess/v20201111/ess_client.py,sha256=NgfpzsDnCgroEBvh1CZgEFA8f5Nr4W0s8BG5GsZeJxw,263368
6
+ tencentcloud/ess/v20201111/ess_client_async.py,sha256=L5W8MzIMaxlGFby7bMG6xxkezWLXDv8VqEH_BiC36Zg,214946
7
+ tencentcloud/ess/v20201111/models.py,sha256=1C7sTOgtJHXQigTRUdpaubhNdz6mdc15Hfew5OSTVUA,2040542
8
+ tencentcloud_sdk_python_ess-3.1.166.dist-info/METADATA,sha256=_mrFoynDT1oymepI5v_lONeDCqvMznDbgtmT6N-hz3Y,1497
9
+ tencentcloud_sdk_python_ess-3.1.166.dist-info/WHEEL,sha256=a5ogxI61vGGBHYbAAwISCXsfU7mxKr76gTpCEmSNOI8,109
10
+ tencentcloud_sdk_python_ess-3.1.166.dist-info/top_level.txt,sha256=g-8OyzoqI6O6LiS85zkeNzhB-osEnRIPZMdyRd_0eL0,13
11
+ tencentcloud_sdk_python_ess-3.1.166.dist-info/RECORD,,
@@ -1,11 +0,0 @@
1
- tencentcloud/__init__.py,sha256=U63FkrJRP7HjC_aWhQCRC4MxxLkVCjY2rI618cSXOY0,630
2
- tencentcloud/ess/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
- tencentcloud/ess/v20201111/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- tencentcloud/ess/v20201111/errorcodes.py,sha256=F1_B_bBaEBV-LQ2Y2sOZx6STYdPLCrmovN1kMS4Y-f0,28910
5
- tencentcloud/ess/v20201111/ess_client.py,sha256=kblSg7iiRGyJIUaNztSuILWFeAoBjzR1IA-hddQGwKU,256510
6
- tencentcloud/ess/v20201111/ess_client_async.py,sha256=8ti3FycxNkBN1olaqZj2T9bc9gMJ9P8M5rsR9USuCsg,208397
7
- tencentcloud/ess/v20201111/models.py,sha256=krSAa_18Sq9p7NA1nkgVWOxkzsKVM0rW-oRHK_76fuQ,2034143
8
- tencentcloud_sdk_python_ess-3.1.157.dist-info/METADATA,sha256=7JuqQlO3Am_CiTmI2UajjxfH3OtuNjDadjhm_ewrIPM,1497
9
- tencentcloud_sdk_python_ess-3.1.157.dist-info/WHEEL,sha256=a5ogxI61vGGBHYbAAwISCXsfU7mxKr76gTpCEmSNOI8,109
10
- tencentcloud_sdk_python_ess-3.1.157.dist-info/top_level.txt,sha256=g-8OyzoqI6O6LiS85zkeNzhB-osEnRIPZMdyRd_0eL0,13
11
- tencentcloud_sdk_python_ess-3.1.157.dist-info/RECORD,,