huaweicloud-encryption-sdk-python 1.2.1__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.
Files changed (174) hide show
  1. examples/file_encryption_example.py +57 -0
  2. examples/key_capsule_encryption_example.py +240 -0
  3. examples/kms_discovery_encryption_example.py +56 -0
  4. examples/local_aes_encryption_example.py +59 -0
  5. examples/test_rsa.py +42 -0
  6. examples/test_sm2.py +38 -0
  7. examples/test_sm4_cbc.py +37 -0
  8. examples/test_sm4_gcm.py +37 -0
  9. huaweicloud_encryption_sdk_python-1.2.1.dist-info/METADATA +18 -0
  10. huaweicloud_encryption_sdk_python-1.2.1.dist-info/RECORD +174 -0
  11. huaweicloud_encryption_sdk_python-1.2.1.dist-info/WHEEL +5 -0
  12. huaweicloud_encryption_sdk_python-1.2.1.dist-info/top_level.txt +3 -0
  13. huaweicloud_encryptionsdk/__init__.py +5 -0
  14. huaweicloud_encryptionsdk/_apig_sdk/__init__.py +1 -0
  15. huaweicloud_encryptionsdk/_apig_sdk/signer.py +278 -0
  16. huaweicloud_encryptionsdk/_apig_sdk/signer_v11.py +70 -0
  17. huaweicloud_encryptionsdk/_apig_sdk/sm3_hash.py +141 -0
  18. huaweicloud_encryptionsdk/_lts_sdk/auth/__init__.py +0 -0
  19. huaweicloud_encryptionsdk/_lts_sdk/auth/signer.py +174 -0
  20. huaweicloud_encryptionsdk/_lts_sdk/consumer/__init__.py +0 -0
  21. huaweicloud_encryptionsdk/_lts_sdk/consumer/client/__init__.py +0 -0
  22. huaweicloud_encryptionsdk/_lts_sdk/consumer/client/consumer_client_adapter.py +59 -0
  23. huaweicloud_encryptionsdk/_lts_sdk/consumer/client/http_client.py +211 -0
  24. huaweicloud_encryptionsdk/_lts_sdk/consumer/core/__init__.py +0 -0
  25. huaweicloud_encryptionsdk/_lts_sdk/consumer/core/client_consumer_worker.py +106 -0
  26. huaweicloud_encryptionsdk/_lts_sdk/consumer/core/consumer_heartbeat.py +73 -0
  27. huaweicloud_encryptionsdk/_lts_sdk/consumer/core/log_shard_consumer.py +179 -0
  28. huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/__init__.py +0 -0
  29. huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_check_point_tracker.py +120 -0
  30. huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_processor.py +18 -0
  31. huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_processor_factory.py +3 -0
  32. huaweicloud_encryptionsdk/_lts_sdk/consumer/model/__init__.py +0 -0
  33. huaweicloud_encryptionsdk/_lts_sdk/consumer/model/check_point.py +20 -0
  34. huaweicloud_encryptionsdk/_lts_sdk/consumer/model/consumer_config.py +27 -0
  35. huaweicloud_encryptionsdk/_lts_sdk/consumer/model/log_data.py +18 -0
  36. huaweicloud_encryptionsdk/_lts_sdk/consumer/model/task_result.py +40 -0
  37. huaweicloud_encryptionsdk/_lts_sdk/consumer/task/__init__.py +0 -0
  38. huaweicloud_encryptionsdk/_lts_sdk/consumer/task/consumer_fetch_task.py +53 -0
  39. huaweicloud_encryptionsdk/_lts_sdk/consumer/task/initial_task.py +55 -0
  40. huaweicloud_encryptionsdk/_lts_sdk/consumer/task/process_task.py +25 -0
  41. huaweicloud_encryptionsdk/_lts_sdk/consumer/task/shutdown_task.py +24 -0
  42. huaweicloud_encryptionsdk/_lts_sdk/consumer_main.py +88 -0
  43. huaweicloud_encryptionsdk/_lts_sdk/parallel_main.py +64 -0
  44. huaweicloud_encryptionsdk/_lts_sdk/producer/__init__.py +0 -0
  45. huaweicloud_encryptionsdk/_lts_sdk/producer/callback/__init__.py +0 -0
  46. huaweicloud_encryptionsdk/_lts_sdk/producer/callback/call_back.py +7 -0
  47. huaweicloud_encryptionsdk/_lts_sdk/producer/core/__init__.py +0 -0
  48. huaweicloud_encryptionsdk/_lts_sdk/producer/core/accumulator.py +135 -0
  49. huaweicloud_encryptionsdk/_lts_sdk/producer/core/io_thread_pool.py +107 -0
  50. huaweicloud_encryptionsdk/_lts_sdk/producer/core/io_worker.py +124 -0
  51. huaweicloud_encryptionsdk/_lts_sdk/producer/core/mover.py +69 -0
  52. huaweicloud_encryptionsdk/_lts_sdk/producer/core/producer.py +98 -0
  53. huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/__init__.py +0 -0
  54. huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/http_client.py +63 -0
  55. huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/simple_request.py +14 -0
  56. huaweicloud_encryptionsdk/_lts_sdk/producer/model/__init__.py +0 -0
  57. huaweicloud_encryptionsdk/_lts_sdk/producer/model/config.py +50 -0
  58. huaweicloud_encryptionsdk/_lts_sdk/producer/model/error.py +18 -0
  59. huaweicloud_encryptionsdk/_lts_sdk/producer/model/log.py +87 -0
  60. huaweicloud_encryptionsdk/_lts_sdk/producer/model/log_batch.py +154 -0
  61. huaweicloud_encryptionsdk/_lts_sdk/producer/model/lts_store.py +21 -0
  62. huaweicloud_encryptionsdk/_lts_sdk/producer/model/result.py +17 -0
  63. huaweicloud_encryptionsdk/_lts_sdk/producer/model/retry_queue.py +39 -0
  64. huaweicloud_encryptionsdk/_lts_sdk/serial_main.py +77 -0
  65. huaweicloud_encryptionsdk/_lts_sdk/utils/__init__.py +0 -0
  66. huaweicloud_encryptionsdk/_lts_sdk/utils/common.py +57 -0
  67. huaweicloud_encryptionsdk/_lts_sdk/utils/lts_threading.py +32 -0
  68. huaweicloud_encryptionsdk/cache/__init__.py +0 -0
  69. huaweicloud_encryptionsdk/cache/data_key_cache.py +79 -0
  70. huaweicloud_encryptionsdk/cache/local_data_key_cache.py +161 -0
  71. huaweicloud_encryptionsdk/common/__init__.py +0 -0
  72. huaweicloud_encryptionsdk/common/constants.py +15 -0
  73. huaweicloud_encryptionsdk/common/counting_output_stream.py +18 -0
  74. huaweicloud_encryptionsdk/common/crypto_factory.py +48 -0
  75. huaweicloud_encryptionsdk/common/ec_private_key_loader.py +43 -0
  76. huaweicloud_encryptionsdk/common/ecs_metadata_service.py +42 -0
  77. huaweicloud_encryptionsdk/common/file_path_for_example_constants.py +4 -0
  78. huaweicloud_encryptionsdk/common/utils.py +162 -0
  79. huaweicloud_encryptionsdk/exception/__init__.py +0 -0
  80. huaweicloud_encryptionsdk/exception/errors.py +109 -0
  81. huaweicloud_encryptionsdk/handler/__init__.py +0 -0
  82. huaweicloud_encryptionsdk/handler/cipher_handler.py +294 -0
  83. huaweicloud_encryptionsdk/handler/crypto_handler.py +24 -0
  84. huaweicloud_encryptionsdk/handler/default_crypto_handler.py +148 -0
  85. huaweicloud_encryptionsdk/handler/default_serialize_handler.py +45 -0
  86. huaweicloud_encryptionsdk/handler/file_decrypt_handler.py +101 -0
  87. huaweicloud_encryptionsdk/handler/file_encrypt_handler.py +30 -0
  88. huaweicloud_encryptionsdk/handler/serialize_handler.py +14 -0
  89. huaweicloud_encryptionsdk/huawei_config.py +49 -0
  90. huaweicloud_encryptionsdk/huawei_crypto.py +311 -0
  91. huaweicloud_encryptionsdk/keyrings/__init__.py +0 -0
  92. huaweicloud_encryptionsdk/keyrings/keyring.py +14 -0
  93. huaweicloud_encryptionsdk/keyrings/keyring_factory.py +10 -0
  94. huaweicloud_encryptionsdk/keyrings/kms_keyring_factory.py +21 -0
  95. huaweicloud_encryptionsdk/keyrings/kmskeyring/__init__.py +0 -0
  96. huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_discovery_keyring.py +51 -0
  97. huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_key_capsule_keyring.py +100 -0
  98. huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_keyring.py +155 -0
  99. huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_multi_region_keyring.py +8 -0
  100. huaweicloud_encryptionsdk/keyrings/raw_keyring_factory.py +27 -0
  101. huaweicloud_encryptionsdk/keyrings/rawkeyring/__init__.py +0 -0
  102. huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_aes_keyring.py +63 -0
  103. huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_keyring.py +112 -0
  104. huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_rsa_keyring.py +55 -0
  105. huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm2_keyring.py +75 -0
  106. huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm4_cbc_keyring.py +66 -0
  107. huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm4_keyring.py +70 -0
  108. huaweicloud_encryptionsdk/kms/__init__.py +0 -0
  109. huaweicloud_encryptionsdk/kms/create_key_capsule_request.py +35 -0
  110. huaweicloud_encryptionsdk/kms/create_key_capsule_response.py +19 -0
  111. huaweicloud_encryptionsdk/kms/decrypt_key_capsule_request.py +32 -0
  112. huaweicloud_encryptionsdk/kms/decrypt_key_capsule_response.py +19 -0
  113. huaweicloud_encryptionsdk/kms/kms_http_client.py +116 -0
  114. huaweicloud_encryptionsdk/log/__init__.py +0 -0
  115. huaweicloud_encryptionsdk/log/log_config.py +30 -0
  116. huaweicloud_encryptionsdk/log/log_file_backup.py +144 -0
  117. huaweicloud_encryptionsdk/log/log_metrics.py +132 -0
  118. huaweicloud_encryptionsdk/log/log_reporter_manager.py +163 -0
  119. huaweicloud_encryptionsdk/log/lts_sdk_producer.py +386 -0
  120. huaweicloud_encryptionsdk/log/lts_struct_log_builder.py +106 -0
  121. huaweicloud_encryptionsdk/meterialmanager/__init__.py +0 -0
  122. huaweicloud_encryptionsdk/meterialmanager/cache_crypto_meterial_manager.py +221 -0
  123. huaweicloud_encryptionsdk/meterialmanager/crypto_meterial_manager.py +19 -0
  124. huaweicloud_encryptionsdk/meterialmanager/data_key_generate.py +10 -0
  125. huaweicloud_encryptionsdk/meterialmanager/data_key_generate_factory.py +20 -0
  126. huaweicloud_encryptionsdk/meterialmanager/default_crypto_meterials_manager.py +71 -0
  127. huaweicloud_encryptionsdk/meterialmanager/key_capsule_data_key_generate.py +63 -0
  128. huaweicloud_encryptionsdk/meterialmanager/kms_data_key_generate.py +65 -0
  129. huaweicloud_encryptionsdk/meterialmanager/local_data_key_generate.py +13 -0
  130. huaweicloud_encryptionsdk/model/__init__.py +0 -0
  131. huaweicloud_encryptionsdk/model/access_point_config.py +9 -0
  132. huaweicloud_encryptionsdk/model/cipher_body.py +81 -0
  133. huaweicloud_encryptionsdk/model/cipher_header.py +405 -0
  134. huaweicloud_encryptionsdk/model/ciphertext_data_key.py +166 -0
  135. huaweicloud_encryptionsdk/model/crypto_result.py +11 -0
  136. huaweicloud_encryptionsdk/model/data_key_materials.py +17 -0
  137. huaweicloud_encryptionsdk/model/data_materials.py +11 -0
  138. huaweicloud_encryptionsdk/model/enums/__init__.py +0 -0
  139. huaweicloud_encryptionsdk/model/enums/access_point_type.py +28 -0
  140. huaweicloud_encryptionsdk/model/enums/crypto_algorithm.py +75 -0
  141. huaweicloud_encryptionsdk/model/enums/data_key_generate_type.py +20 -0
  142. huaweicloud_encryptionsdk/model/enums/key_provider_enum.py +19 -0
  143. huaweicloud_encryptionsdk/model/enums/keyring_type_enum.py +27 -0
  144. huaweicloud_encryptionsdk/model/key_capsule.py +10 -0
  145. huaweicloud_encryptionsdk/model/key_capsule_config.py +12 -0
  146. huaweicloud_encryptionsdk/model/kms_config.py +10 -0
  147. huaweicloud_encryptionsdk/model/request/__init__.py +0 -0
  148. huaweicloud_encryptionsdk/model/request/encrypt_request.py +10 -0
  149. huaweicloud_encryptionsdk/model/request/sign_request.py +2 -0
  150. huaweicloud_encryptionsdk/model/request/verify_request.py +2 -0
  151. huaweicloud_encryptionsdk/proof/__init__.py +0 -0
  152. huaweicloud_encryptionsdk/proof/attestation_document.py +36 -0
  153. huaweicloud_encryptionsdk/proof/collector/__init__.py +0 -0
  154. huaweicloud_encryptionsdk/proof/collector/cce_proof_collector.py +24 -0
  155. huaweicloud_encryptionsdk/proof/collector/ecs_proof_collector.py +11 -0
  156. huaweicloud_encryptionsdk/proof/collector/key_pair_proof_collector.py +55 -0
  157. huaweicloud_encryptionsdk/proof/collector/ma_proof_collector.py +51 -0
  158. huaweicloud_encryptionsdk/proof/private_key_decrypt_callback.py +7 -0
  159. huaweicloud_encryptionsdk/proof/proof_collector.py +11 -0
  160. huaweicloud_encryptionsdk/proof/proof_collector_factory.py +53 -0
  161. huaweicloud_encryptionsdk/proof/proof_info.py +10 -0
  162. huaweicloud_encryptionsdk/util/__init__.py +0 -0
  163. huaweicloud_encryptionsdk/util/common_utils.py +12 -0
  164. tests/__init__.py +0 -0
  165. tests/test_enums.py +84 -0
  166. tests/test_exceptions.py +38 -0
  167. tests/test_factories.py +71 -0
  168. tests/test_huawei_crypto.py +67 -0
  169. tests/test_imports.py +46 -0
  170. tests/test_kms_models.py +95 -0
  171. tests/test_log_file_backup.py +45 -0
  172. tests/test_lts_struct_log_builder.py +97 -0
  173. tests/test_models.py +142 -0
  174. tests/test_utils.py +111 -0
@@ -0,0 +1,174 @@
1
+ examples/file_encryption_example.py,sha256=7y-p23BUwU78FAQz7d2UDk7WFizWYB1KQHz2C-2zzNg,1963
2
+ examples/key_capsule_encryption_example.py,sha256=sdsWrEGe2-wrLsRp2yscM-FauNjoOEaEOL7x_JkdAJc,16762
3
+ examples/kms_discovery_encryption_example.py,sha256=IIqzhYTgviUt6X09XgJrqDtSLgceQuNrfoWZtseC1Yw,2063
4
+ examples/local_aes_encryption_example.py,sha256=8qLsVOwLegr7yu7EYPbFkTK1F6HaULQyAMkLIAV52jo,2338
5
+ examples/test_rsa.py,sha256=jww1qpuegqDwVM6UN1vn1n95PvBqrpXleG3CiMLC7gA,3441
6
+ examples/test_sm2.py,sha256=tHNv2u7LJmKj1Y7gj_bnOVn4p9_s83rMoPp6C3IF250,1582
7
+ examples/test_sm4_cbc.py,sha256=m-an5l15aFI4BII8L2hOgC0qavcNkI0OLxNbSTtpTMU,1355
8
+ examples/test_sm4_gcm.py,sha256=A1KrOWtZdDcYSPGn2Wsv5Na-ez9m5FM3QuGdQXIMFPM,1357
9
+ huaweicloud_encryptionsdk/__init__.py,sha256=iPMhHwmyr43OO8MTtbTPTqGI_PsesV5t5MLeKYjl3j4,196
10
+ huaweicloud_encryptionsdk/huawei_config.py,sha256=xJ-AOoEcmdkZ19ipvccsucnqptvSuV_TPSWtoVWkEj4,1726
11
+ huaweicloud_encryptionsdk/huawei_crypto.py,sha256=pjKkFpVV-Rot5AkSvP1R_yF2DLNRZZ8lLV1W_0fGjX8,15381
12
+ huaweicloud_encryptionsdk/_apig_sdk/__init__.py,sha256=vTBx3glBRCzTmZQUSLOdsLHVg_fZuPDv-nQei3qLHDk,33
13
+ huaweicloud_encryptionsdk/_apig_sdk/signer.py,sha256=DjDHEq7Km_NuzATmVUM13Us-lGybygH6azIRibbB5i0,8909
14
+ huaweicloud_encryptionsdk/_apig_sdk/signer_v11.py,sha256=69QymbdTDBjt28TPCrNye-LO8tYRCpK7c4vedd8pr6w,2739
15
+ huaweicloud_encryptionsdk/_apig_sdk/sm3_hash.py,sha256=hpr-1HFPypAtFFdksOJACRRj6LRBiky03WgmxkKsBwg,4843
16
+ huaweicloud_encryptionsdk/_lts_sdk/consumer_main.py,sha256=rODt1m1IECnTtEuAZ9I8DCt9SulAyvUUdF7qmDuNy1g,4380
17
+ huaweicloud_encryptionsdk/_lts_sdk/parallel_main.py,sha256=g6pgDNpZODzs-1pAobSRFdq7DBL3lzunbscgjtqOHfs,1946
18
+ huaweicloud_encryptionsdk/_lts_sdk/serial_main.py,sha256=RLrIsS-r9WrLu_tKx4udP_QNTUMlf2zAZMdZYioo0dE,3035
19
+ huaweicloud_encryptionsdk/_lts_sdk/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
+ huaweicloud_encryptionsdk/_lts_sdk/auth/signer.py,sha256=5AMLkDeN6wU1f6apo5yomdO1jBtvoUKoCok4vAGyQmE,7080
21
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/client/consumer_client_adapter.py,sha256=pL4nT1rDv1o-h8n265Z1vyLRvvGrTT1fI3DweDuFYvs,2531
24
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/client/http_client.py,sha256=XYkTgGcvBdWrKin-Q0ruVgOyuxd26Qnoceuez1Jjqys,11656
25
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/core/client_consumer_worker.py,sha256=iyepym5aJpxGWvVAKW45kKZaqZFrLV9BSM7MglJU3YU,4336
27
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/core/consumer_heartbeat.py,sha256=6xUXW1DhlTMqjcZ5qOA1Pf2QGJpn-3cYuRfqkSHUCJc,2782
28
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/core/log_shard_consumer.py,sha256=Q64xiDz9PZia_H95RI29S5PlKWiAEhlL6x2MQCZFJCo,8611
29
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_check_point_tracker.py,sha256=NQN-WgxmZZW7uJYylA7sZrNyUJA5z0y3JqnC17AH0tY,3546
31
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_processor.py,sha256=5P5mkgmreNNF6e3rJSHfEgazUfh6oKr5JJkSYlhlzDo,633
32
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_processor_factory.py,sha256=WS-Hh3mE1VfmIaz_yLOr4cKFgacQ89ytlv0NVVkgE7I,130
33
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/model/check_point.py,sha256=-8vKhAgngVVpiWgOQ4KWDXQWH6T3yDPeM6JOWiFSeKQ,446
35
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/model/consumer_config.py,sha256=v2dtCkof2xz2vM5xkMOh4PMSTnchfWyou9LFWLAQX-w,1299
36
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/model/log_data.py,sha256=zfRNhJQcszYh7AQZ67JMUzP3bMfniDVCo1Ww5F2N5R4,443
37
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/model/task_result.py,sha256=_yTdscHSGdqP-bUSJjEhkGBuHAXJSqd6ew0V9Yfvg8Q,1101
38
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/task/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/task/consumer_fetch_task.py,sha256=4ZBEPNE79SKWODTRi_mvnrLOCbUg-AfLrCkWOCBfSHA,2490
40
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/task/initial_task.py,sha256=LJv1Tm0V6CKdwqr5OtPo9vR0xMIjni2oOQlurCsEYUc,2851
41
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/task/process_task.py,sha256=cygE_qrduWVe3U13xWDnBnWyTdgZ6t9IESdQj9_0t4w,1208
42
+ huaweicloud_encryptionsdk/_lts_sdk/consumer/task/shutdown_task.py,sha256=5AE0KpSNrxlg4wKNMhJhgmNuUrzT3K3BHw1-xXle8DQ,824
43
+ huaweicloud_encryptionsdk/_lts_sdk/producer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
44
+ huaweicloud_encryptionsdk/_lts_sdk/producer/callback/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
+ huaweicloud_encryptionsdk/_lts_sdk/producer/callback/call_back.py,sha256=BvsYFSl_WyeNPbtN5j0hdOsw_HkPlPV4HbJDksJZMjo,133
46
+ huaweicloud_encryptionsdk/_lts_sdk/producer/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
+ huaweicloud_encryptionsdk/_lts_sdk/producer/core/accumulator.py,sha256=1QaK0I4REUaGujq_xZl9Esd2JKJ2owtBn59As33KBDM,4757
48
+ huaweicloud_encryptionsdk/_lts_sdk/producer/core/io_thread_pool.py,sha256=akZTY-mcX293Ooz9CTrBnmh6S6_RRfQsd1SZfSkGEvM,3366
49
+ huaweicloud_encryptionsdk/_lts_sdk/producer/core/io_worker.py,sha256=34g9p_raDsjurPqCjbitKorsqM5jzbqTk5Wwdr6aN0U,5064
50
+ huaweicloud_encryptionsdk/_lts_sdk/producer/core/mover.py,sha256=l4SW5PiQs8_hDmW9Quxt6c3bNvNjFLXte6qC2mcOL6c,2798
51
+ huaweicloud_encryptionsdk/_lts_sdk/producer/core/producer.py,sha256=QKnuz8_bdj4lJcPROLm95zxSIU34jrvCuVBp7QiUIHM,3314
52
+ huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
+ huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/http_client.py,sha256=eH7tWISpGbXzdr5RqY2-48EHsQqueiOJNvHCeCYucs8,2937
54
+ huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/simple_request.py,sha256=mR7uSOlzZTubGGuyJKs0uaKI3SaxxX04C7CWrg4uXic,426
55
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/config.py,sha256=KBpPFVZrQ0prxiD0fIrzgQRudL0OfhZffvzkTl-dHjk,2113
57
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/error.py,sha256=5Wvf8_AzWq3JST7kSMk6b26iGTlFmhagVUWFP1D3nCk,594
58
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/log.py,sha256=YxhD3-WWdaiM4MJnnpChmaVB0eZdai_Hsnsplu6LPXE,2211
59
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/log_batch.py,sha256=Q8kMmGeOtgDAVbARna5FLzCCSWozVKEcm5qTxl52-Y0,4256
60
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/lts_store.py,sha256=_07ahBaYzpkBLxB3k4KxdrRWJURaMaITixqC-RZ-h7Q,521
61
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/result.py,sha256=PEnxdLdJbqSBBDE6qbbE5cSvQn2NUkNVpb5a8EUYRvQ,524
62
+ huaweicloud_encryptionsdk/_lts_sdk/producer/model/retry_queue.py,sha256=xGS1RYpjUVxwayFJyqgSACIg_ZZQ7qg4bGlPwHB4i00,1176
63
+ huaweicloud_encryptionsdk/_lts_sdk/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ huaweicloud_encryptionsdk/_lts_sdk/utils/common.py,sha256=LQZVu2nh6OiKGzIPr1iSiJnLOH0A49wBQk7SEm1Q0Hs,1107
65
+ huaweicloud_encryptionsdk/_lts_sdk/utils/lts_threading.py,sha256=nuuqb5ALxOAJ3tF_vZ_ZF1D2go_Yuv2d08PceRZbfqA,744
66
+ huaweicloud_encryptionsdk/cache/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
67
+ huaweicloud_encryptionsdk/cache/data_key_cache.py,sha256=xzf3M7ws3XcQ4SmJ8zyIc0eguHh29Uukr_2_TxbwtDE,2439
68
+ huaweicloud_encryptionsdk/cache/local_data_key_cache.py,sha256=iZ6bw_-AjmaTxAplxQbLiAKtevBPJgPc7IQuuvnQBec,6129
69
+ huaweicloud_encryptionsdk/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
+ huaweicloud_encryptionsdk/common/constants.py,sha256=4Y524_-3KFqak68ecC-YV7tuu3KXxDxEVeZWjxzcaQM,330
71
+ huaweicloud_encryptionsdk/common/counting_output_stream.py,sha256=G-GsJxWbq27kLulXv_hWML0fuZK5vC6qdQDz2tCqmS0,475
72
+ huaweicloud_encryptionsdk/common/crypto_factory.py,sha256=5fIdFeWUGwFdW4TKqHMnmg1YmQ6L1lR-Pwsp048N-r8,1381
73
+ huaweicloud_encryptionsdk/common/ec_private_key_loader.py,sha256=qfN6FFbM2wYbwAOBxUD8T6A-8y-J2K8vkzjp9cl_AfM,1338
74
+ huaweicloud_encryptionsdk/common/ecs_metadata_service.py,sha256=jAyIUEYBpuFlr0ruHZQ6a117q-aHKm_fjPoDXMagF3U,1216
75
+ huaweicloud_encryptionsdk/common/file_path_for_example_constants.py,sha256=knbDQjpTYvNZjp3EzrDqbzBme77pdJtfU2vVW9eNmbc,152
76
+ huaweicloud_encryptionsdk/common/utils.py,sha256=xUUsxVOSgCJifLKlGR--tMtD6JzSaZEyG-h2683YA1Y,4886
77
+ huaweicloud_encryptionsdk/exception/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
+ huaweicloud_encryptionsdk/exception/errors.py,sha256=VaJLKsyVqanHiqukFB0dsX49ZBrMlk2qdHF6rwmzFBA,4468
79
+ huaweicloud_encryptionsdk/handler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
+ huaweicloud_encryptionsdk/handler/cipher_handler.py,sha256=BeLhB5ovw2dGWAm7ZJrIor4GTwJd8MbBbLnF1D0ATo4,12970
81
+ huaweicloud_encryptionsdk/handler/crypto_handler.py,sha256=t5mOwmpgm6XgKbmNZLDyzdE-ol2I0uTktDKvQ-CQ4ms,721
82
+ huaweicloud_encryptionsdk/handler/default_crypto_handler.py,sha256=XzvwVtnj1AWFizmvXHdhmlApOjsLFpBqhYphxoRG8gQ,6454
83
+ huaweicloud_encryptionsdk/handler/default_serialize_handler.py,sha256=PBI80h06j3vw8k9wmF8fnvMC6TBSUx8OczqNs_KhSw4,1977
84
+ huaweicloud_encryptionsdk/handler/file_decrypt_handler.py,sha256=jYFokuHxQyENldVHMzajA7o7H3o1iUA_arzzzvCMhrE,4868
85
+ huaweicloud_encryptionsdk/handler/file_encrypt_handler.py,sha256=SAjPi_jeuZ4W120IVBZqLzUsHllUVVXKQrRDIIcSJ2Q,1219
86
+ huaweicloud_encryptionsdk/handler/serialize_handler.py,sha256=dT-EEquiOBf_U3S1zBM5pKLkwN5LvHMU986t4vo57ec,290
87
+ huaweicloud_encryptionsdk/keyrings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
+ huaweicloud_encryptionsdk/keyrings/keyring.py,sha256=LC4RBsAkaXpiKPBaSZUSij7OMjJJgwomworg9S0pHw8,387
89
+ huaweicloud_encryptionsdk/keyrings/keyring_factory.py,sha256=GF06pngV9kuFD5eFEMmlvjInl_KK4r89AWJSPOtPOEc,212
90
+ huaweicloud_encryptionsdk/keyrings/kms_keyring_factory.py,sha256=2I09gRYxSFBGBFoKRl7Ccty3fOez3kJcK1-FAZRO22k,1192
91
+ huaweicloud_encryptionsdk/keyrings/raw_keyring_factory.py,sha256=-K8bHzw5xI1AK3tiX-roPvTgxr1hxXDoW7KT6zmgrns,1486
92
+ huaweicloud_encryptionsdk/keyrings/kmskeyring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
93
+ huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_discovery_keyring.py,sha256=PVbnpozOjuYUtVZQ-seoAMerVcua-XXjYP53aQ_FiXk,2632
94
+ huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_key_capsule_keyring.py,sha256=Pj-MWJZRcPy-mTlXR0e6h2GqAXmwKrMrZZHgUcI2YS0,5205
95
+ huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_keyring.py,sha256=l9_7e2lDGDDFWGJyhbScgHNBIoHbkE0qqVxjvWSOjj0,7674
96
+ huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_multi_region_keyring.py,sha256=E_ce7udYFo6txn2r4l0cRB1SH-11SCzXHY4pcuO048U,315
97
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
98
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_aes_keyring.py,sha256=ZgAQtwhcEwBvLHrRWzXjQHpn5_zyPQJ7NN07w6v6Z2k,3051
99
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_keyring.py,sha256=SEkOWCJ-TZT5yHUKS0swO9ppNARxuRcoC8Tif3GAsgU,4594
100
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_rsa_keyring.py,sha256=eI4dvhkvkj7O4VkkMtA3LRuBEhOQ_fspdlRDmZ3XAzU,2477
101
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm2_keyring.py,sha256=DqxhkoO3W1GE3k0BfSyQfwDzDx4CKClbYtW-IL6RwNk,3389
102
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm4_cbc_keyring.py,sha256=ACDWPYnqFmtNXIl16ufjnzzaW0EuN8zvw1strCjrY-w,2902
103
+ huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm4_keyring.py,sha256=JsSpF9SFefdStDHOHfZ1F3US4YLZ_FoP6aYMvD71JWA,3352
104
+ huaweicloud_encryptionsdk/kms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
+ huaweicloud_encryptionsdk/kms/create_key_capsule_request.py,sha256=8Rf4kaXERxAZah31UoRoPIrhjcLoyntSHjBLuMXzV7o,1109
106
+ huaweicloud_encryptionsdk/kms/create_key_capsule_response.py,sha256=0pJ41l0HKY1PmCMgkQSI4vsZ7XkqU8PJ9W-9PjEhZy8,527
107
+ huaweicloud_encryptionsdk/kms/decrypt_key_capsule_request.py,sha256=KTZ5GxXFY18q5WPlyYP4z8AsloGUMzjSJoqhm09gzMo,1163
108
+ huaweicloud_encryptionsdk/kms/decrypt_key_capsule_response.py,sha256=xRxDXmYvQtXpcv_XDuBJXna7b9cps80IkNxfsdVz4z4,516
109
+ huaweicloud_encryptionsdk/kms/kms_http_client.py,sha256=juuZiVxcWNEY5eLVGnEpNkS6Ess8YUu4UBCXojqBJXY,4429
110
+ huaweicloud_encryptionsdk/log/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
111
+ huaweicloud_encryptionsdk/log/log_config.py,sha256=dtYREo4mDniRItZDB2nGma-pSwZ9iwXsEZc9VXFp37Q,1066
112
+ huaweicloud_encryptionsdk/log/log_file_backup.py,sha256=n0D-G8hLc3R2ueSHs-Hf8nfnDQjkpCZSeDlXYybNLEM,6294
113
+ huaweicloud_encryptionsdk/log/log_metrics.py,sha256=kQmKx2QlGplp1Htb4unDDEVxZbJKnYqASjyAjSSiH0Q,3801
114
+ huaweicloud_encryptionsdk/log/log_reporter_manager.py,sha256=R9mvt9SXwEsBrPCwTQ6sS-l6l-1amvK3l_AxP4ysr-8,6284
115
+ huaweicloud_encryptionsdk/log/lts_sdk_producer.py,sha256=Cr5xNL2osGGaHzVYGy7W6M3RD06xgiPisyH4DK1s_i0,16854
116
+ huaweicloud_encryptionsdk/log/lts_struct_log_builder.py,sha256=-_SLrFM222BsYQBDmi9j2ivvh6DLHvv_5hbjreJVC44,3629
117
+ huaweicloud_encryptionsdk/meterialmanager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
+ huaweicloud_encryptionsdk/meterialmanager/cache_crypto_meterial_manager.py,sha256=88j065Z5PiEFtBTRcet1Cdm5f4tWGwa6a1jH1iN11Xk,11904
119
+ huaweicloud_encryptionsdk/meterialmanager/crypto_meterial_manager.py,sha256=s6pmk23pQzwl8yprtla4BgGoUTs3uUCdxRQBO7oRrSA,596
120
+ huaweicloud_encryptionsdk/meterialmanager/data_key_generate.py,sha256=QZaT6grue8nd2BZ30Qdni540TSS3Ve6SV0zXotkBKqk,275
121
+ huaweicloud_encryptionsdk/meterialmanager/data_key_generate_factory.py,sha256=n0ta8RDQ7atqCsO7rhIDqTwd5k1Pr_IXzKe95qmO7uM,1180
122
+ huaweicloud_encryptionsdk/meterialmanager/default_crypto_meterials_manager.py,sha256=r_QQJ5rHfE_v_wymOyXYZpFrE3x8wSM-7FYf2yuf9e0,4774
123
+ huaweicloud_encryptionsdk/meterialmanager/key_capsule_data_key_generate.py,sha256=eW5acivgTqU2hAeSEFLaIgLUakxmwmKdRxyTLvWNu48,3382
124
+ huaweicloud_encryptionsdk/meterialmanager/kms_data_key_generate.py,sha256=HtlC4DmiXssj-e2dgW7pImQUelmPndPUX1Z-TiWHyFI,3122
125
+ huaweicloud_encryptionsdk/meterialmanager/local_data_key_generate.py,sha256=2nPnjwYtnMgGIiWraHdv2ZnEx-w0W7eT2T3jOlDPH4o,535
126
+ huaweicloud_encryptionsdk/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
+ huaweicloud_encryptionsdk/model/access_point_config.py,sha256=4m7wzeN7hsBlXS13vTmFe9YXJZNFWqGeRv_inDdh5gQ,248
128
+ huaweicloud_encryptionsdk/model/cipher_body.py,sha256=Re2ZmiKI-kdSFcoqmMBFEf6En5QZh4GeLOh3do_uIv8,3176
129
+ huaweicloud_encryptionsdk/model/cipher_header.py,sha256=5hb1A2SiG8nJPMOT2Y4mqJYogM42sMbrhwTucve7HJE,16367
130
+ huaweicloud_encryptionsdk/model/ciphertext_data_key.py,sha256=XTsZMFE2NHkMxIBwoQm-yw1qwSME_TtSu3d1WSI9Tjk,6673
131
+ huaweicloud_encryptionsdk/model/crypto_result.py,sha256=O0F3gRb1FurtOZxLDO3n33eviPmeI-BoNruQxtW9Ohw,251
132
+ huaweicloud_encryptionsdk/model/data_key_materials.py,sha256=QgGQ4-e696Tbvjp-CSx102_e-PcYnEO2HukcPDVHufw,710
133
+ huaweicloud_encryptionsdk/model/data_materials.py,sha256=G7ue8xALd0emQCvi_jgkyqx-5OBs5cIE9TxbNucjWN8,323
134
+ huaweicloud_encryptionsdk/model/key_capsule.py,sha256=muL2BulND1vlvuVlmyDtStdILmDKJqrt-Quvuv_OW6s,237
135
+ huaweicloud_encryptionsdk/model/key_capsule_config.py,sha256=zn8nZv_LmLGW-adoVN3Svm5G5Z_Sz1kfGcje-2Guo2g,352
136
+ huaweicloud_encryptionsdk/model/kms_config.py,sha256=JE06QmTd59k3ZAANxeBzgVToznKtcIF8wdA5BTj3K48,195
137
+ huaweicloud_encryptionsdk/model/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
+ huaweicloud_encryptionsdk/model/enums/access_point_type.py,sha256=QR-VivdkPSNUCWhLaHD8vnbowrjsQ7X8OKicZDOuG_A,578
139
+ huaweicloud_encryptionsdk/model/enums/crypto_algorithm.py,sha256=wmMuD7AmC-Az8Hw55suIsnUu6P175qKVkHalehbVT1M,2021
140
+ huaweicloud_encryptionsdk/model/enums/data_key_generate_type.py,sha256=MMiu1cPvLvr5u9wJAGZTaQgQRKBnJ2tCMfhntOPXZWs,442
141
+ huaweicloud_encryptionsdk/model/enums/key_provider_enum.py,sha256=Oc_iPU398SuXbbyDXmUtoG_dN17YcZ965QcW2eLy9Fk,343
142
+ huaweicloud_encryptionsdk/model/enums/keyring_type_enum.py,sha256=vqcp65Zjo7K1Ji6wC0TBOIOC6bljBKmytT_gxzJYio0,613
143
+ huaweicloud_encryptionsdk/model/request/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
+ huaweicloud_encryptionsdk/model/request/encrypt_request.py,sha256=cyVA0XL81qKQnhtoF77jRmURaLOe-_XPbTt3fQwxF1U,280
145
+ huaweicloud_encryptionsdk/model/request/sign_request.py,sha256=mKQhFmsSRPOzj21hfG4vrikm1fi_qeTM1Ajv733pbG4,28
146
+ huaweicloud_encryptionsdk/model/request/verify_request.py,sha256=Ayk5F7h14h_TSSwbqGqckE6OLkUxiRUgd2TkR8bA5gA,30
147
+ huaweicloud_encryptionsdk/proof/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
148
+ huaweicloud_encryptionsdk/proof/attestation_document.py,sha256=iCfWoHKhP0igETQc6P4Da30Qbz02vDiGhgjf9EHVLYY,1340
149
+ huaweicloud_encryptionsdk/proof/private_key_decrypt_callback.py,sha256=qi9-PdOQLrOGDonhK1pdSizEZtsJkmMCmGCQcaHGoyQ,144
150
+ huaweicloud_encryptionsdk/proof/proof_collector.py,sha256=0W_YTR0QY6dKyrjQdoo_aMsLteQPjhznpU6ngdwZmRM,319
151
+ huaweicloud_encryptionsdk/proof/proof_collector_factory.py,sha256=IT8i7o3DHFeJXWcJkO6JrbsAWm9zFnNzVzB7T655LHc,2201
152
+ huaweicloud_encryptionsdk/proof/proof_info.py,sha256=xuU9XemMBgFHien-MKUpAHIdY9fuuBuM2YehU-JHZdU,278
153
+ huaweicloud_encryptionsdk/proof/collector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
+ huaweicloud_encryptionsdk/proof/collector/cce_proof_collector.py,sha256=EKGnOPYv0zn-aW9OJ0rU23MD1eTJVaoMTcAS_N99dDo,983
155
+ huaweicloud_encryptionsdk/proof/collector/ecs_proof_collector.py,sha256=NnEzoiY3wNMIPJDmT4DN7n09lxH3oGLGcBvCKI6brTE,549
156
+ huaweicloud_encryptionsdk/proof/collector/key_pair_proof_collector.py,sha256=zW-r_n35RgE8951SMxOt6dFBeC2T3O3zXWufLF1YCWg,2445
157
+ huaweicloud_encryptionsdk/proof/collector/ma_proof_collector.py,sha256=H6jf-pqTyi1suBAC9qFHu1Mk8U6l27dgWecEN4BMGGo,1728
158
+ huaweicloud_encryptionsdk/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
+ huaweicloud_encryptionsdk/util/common_utils.py,sha256=lHw12K2Ekc6CtW2wECrTwuBgB5Vga8eXDhWlZP4dlhA,315
160
+ tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
161
+ tests/test_enums.py,sha256=d1Ak9LWRruomJ2_o3lMmOakY59WAOMkyJF4p1S05YnI,3712
162
+ tests/test_exceptions.py,sha256=grl52ylnB9Mtw8TWPUodezAaKDso4LHX34FqepSU4c8,1494
163
+ tests/test_factories.py,sha256=Jnqp5r4WHi8r7TBu9hNZRIUrFvlD2B6Pt3CSIVxfuaQ,3520
164
+ tests/test_huawei_crypto.py,sha256=vYq1R7x6ICVJ-PL8Kzn7K4eHgsVt3SihaG_fMBv6bsM,2855
165
+ tests/test_imports.py,sha256=XY4ZrdTkwhpdblKifynk5AN8Pjqdv2Zy3b17JNAy6zs,2373
166
+ tests/test_kms_models.py,sha256=aSmDXem4uMwl4hbdDKUjGgK-qumABEpIU_XDf7mOTrk,3553
167
+ tests/test_log_file_backup.py,sha256=FGIpBnfRcPTIThdoRH6QHqgV-9OXuKhrI5zItTwSXHg,1690
168
+ tests/test_lts_struct_log_builder.py,sha256=LiOXlXLWCDuplqGekqSLGYnPbKmmSWp-1HXZQy1ij40,3563
169
+ tests/test_models.py,sha256=8iqtF40DKwart0ZRcmznKn3RKxRE9PLa0_qVlbJIio4,5076
170
+ tests/test_utils.py,sha256=1B0iVO8DCw8W95jtGSmXB8QeWkEBTPZmZ6Iau-ntAH4,3407
171
+ huaweicloud_encryption_sdk_python-1.2.1.dist-info/METADATA,sha256=RkeYd46zohX275_Wg9A39tPGLj_KBrnAA6vHah4Zz_s,584
172
+ huaweicloud_encryption_sdk_python-1.2.1.dist-info/WHEEL,sha256=mOdXR9C3wMVov7cSY8PY-XCzo3SmmWCHvGQr5csJoao,91
173
+ huaweicloud_encryption_sdk_python-1.2.1.dist-info/top_level.txt,sha256=_yAXE-NNgsNmeRTrlk4qHJuQD_Rszkec4feGDDGALtE,41
174
+ huaweicloud_encryption_sdk_python-1.2.1.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (84.2.1)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,3 @@
1
+ examples
2
+ huaweicloud_encryptionsdk
3
+ tests
@@ -0,0 +1,5 @@
1
+ from huaweicloud_encryptionsdk.huawei_crypto import HuaweiCrypto
2
+ from huaweicloud_encryptionsdk.huawei_config import HuaweiConfig
3
+
4
+ __all__ = ["HuaweiCrypto", "HuaweiConfig"]
5
+ __version__ = "1.1.0"
@@ -0,0 +1 @@
1
+ __all__ = ["signer", "sm3_hash"]
@@ -0,0 +1,278 @@
1
+ #
2
+ # Copyright (c) Huawei Technologies CO., Ltd. 2022-2025. All rights reserved.
3
+ #
4
+ import copy
5
+ import re
6
+ import sys
7
+ import hashlib
8
+ import hmac
9
+ import binascii
10
+ from . import sm3_hash
11
+ from .signer_v11 import SignV11
12
+ from datetime import datetime
13
+
14
+ if sys.version_info.major < 3:
15
+ from urllib import quote, unquote
16
+ else:
17
+ from urllib.parse import quote, unquote
18
+
19
+ DateFormat = "%Y%m%dT%H%M%SZ"
20
+ HXDate = "X-Sdk-Date"
21
+ HHost = "host"
22
+ HAuthorization = "Authorization"
23
+ HSdkContent = "x-sdk-content-"
24
+ UTF8 = "utf-8"
25
+ V11 = "V11"
26
+ SHA256 = "SHA256"
27
+ SDK_HMAC_SHA256 = "SDK-HMAC-SHA256"
28
+ SDK_HMAC_SM3 = "SDK-HMAC-SM3"
29
+ V11_HMAC_SHA256 = "V11-HMAC-SHA256"
30
+ V11_HMAC_SM3 = "V11-HMAC-SM3"
31
+ alg_set = {"SDK-HMAC-SHA256", "SDK-HMAC-SM3", "V11-HMAC-SHA256", "V11-HMAC-SM3"}
32
+
33
+
34
+ def urlencode(str):
35
+ return quote(str, safe='~')
36
+
37
+
38
+ def findHeader(req, h):
39
+ for header in req.headers:
40
+ if header.lower() == h.lower():
41
+ return req.headers[header]
42
+ return None
43
+
44
+
45
+ # HexEncodeSHA256Hash returns hexcode of sha256
46
+ def HexEncodeSHA256Hash(d):
47
+ sha = hashlib.sha256()
48
+ sha.update(d)
49
+ return sha.hexdigest()
50
+
51
+
52
+ def CanonicalURI(req):
53
+ patterns = unquote(req.uri).split('/')
54
+ uri = []
55
+ for value in patterns:
56
+ uri.append(urlencode(value))
57
+ url_path = "/".join(uri)
58
+ if url_path[-1] != '/':
59
+ url_path = url_path + "/" # always end with /
60
+ # r.uri = urlpath
61
+ return url_path
62
+
63
+
64
+ def CanonicalQueryString(req):
65
+ keys = []
66
+ for key in req.query:
67
+ keys.append(key)
68
+ keys.sort()
69
+ arr = []
70
+ for key in keys:
71
+ ke = urlencode(key)
72
+ value = req.query[key]
73
+ if type(value) is list:
74
+ value.sort()
75
+ for v in value:
76
+ kv = ke + "=" + urlencode(str(v))
77
+ arr.append(kv)
78
+ else:
79
+ kv = ke + "=" + urlencode(str(value))
80
+ arr.append(kv)
81
+ return '&'.join(arr)
82
+
83
+
84
+ def CanonicalHeaders(req, sHeaders):
85
+ arr = []
86
+ _headers = {}
87
+ for k in req.headers:
88
+ keyEncoded = k.lower()
89
+ value = req.headers[k]
90
+ valueEncoded = value.strip()
91
+ _headers[keyEncoded] = valueEncoded
92
+ if sys.version_info.major == 3:
93
+ req.headers[k] = valueEncoded.encode(UTF8).decode('iso-8859-1')
94
+ for k in sHeaders:
95
+ arr.append(k + ":" + _headers[k])
96
+ return '\n'.join(arr) + "\n"
97
+
98
+
99
+ def SignedHeaders(req):
100
+ arr = []
101
+ for k in req.headers:
102
+ arr.append(k.lower())
103
+ arr.sort()
104
+ return arr
105
+
106
+
107
+ def _process_headers(signature_header, request_headers):
108
+ match = re.search(r"SignedHeaders=([^, ]+)", signature_header)
109
+ if not match:
110
+ raise ValueError("SignedHeaders 未找到")
111
+ signed_headers_str = match.group(1)
112
+ signed_headers = [h.strip().lower() for h in signed_headers_str.split(";") if h.strip()]
113
+
114
+ for key in list(request_headers.keys()):
115
+ if key.lower() not in signed_headers:
116
+ request_headers.pop(key, None)
117
+
118
+
119
+ class Signer:
120
+ def __init__(self, algorithm=SDK_HMAC_SHA256, region_id=""):
121
+ self.Key = ""
122
+ self.Secret = ""
123
+ self.algorithm = algorithm.upper()
124
+ if self.algorithm.startswith(V11) and len(region_id) == 0:
125
+ raise ValueError("region id is required when you use V11 encryption algorithm")
126
+ self.region_id = region_id
127
+ if self.algorithm.endswith(SHA256):
128
+ self.hash_func = hashlib.sha256
129
+ else:
130
+ self.hash_func = sm3_hash.new_sm3_hash
131
+
132
+ def Verify(self, req, authorization):
133
+ if sys.version_info.major == 3 and isinstance(req.body, str):
134
+ req.body = req.body.encode(UTF8)
135
+ header_time = findHeader(req, HXDate)
136
+ if header_time is None:
137
+ return False
138
+ else:
139
+ datetime.strptime(header_time, DateFormat)
140
+
141
+ r_verify = copy.deepcopy(req)
142
+ r_verify.headers.pop(HAuthorization, None)
143
+ _process_headers(authorization, r_verify.headers)
144
+ auth_value = self._get_auth_value(r_verify)
145
+ return authorization == auth_value
146
+
147
+ # SignRequest set Authorization header
148
+ def Sign(self, req):
149
+ if sys.version_info.major == 3 and isinstance(req.body, str):
150
+ req.body = req.body.encode(UTF8)
151
+ auth_value = self._get_auth_value(req)
152
+ req.headers[HAuthorization] = auth_value
153
+
154
+ # Build a CanonicalRequest from a regular request string
155
+ #
156
+ # CanonicalRequest =
157
+ # HTTPRequestMethod + '\n' +
158
+ # CanonicalURI + '\n' +
159
+ # CanonicalQueryString + '\n' +
160
+ # CanonicalHeaders + '\n' +
161
+ # SignedHeaders + '\n' +
162
+ # HexEncode(Hash(RequestPayload))
163
+ def _canonical_request(self, req, signed_headers):
164
+ canonical_headers = CanonicalHeaders(req, signed_headers)
165
+ hencode = findHeader(req, self._get_not_sign_body_header_key())
166
+ if hencode is None:
167
+ hencode = self.hex_encode_hash(req.body)
168
+ return "%s\n%s\n%s\n%s\n%s\n%s" % (req.method.upper(), CanonicalURI(req), CanonicalQueryString(req),
169
+ canonical_headers, ";".join(signed_headers), hencode)
170
+
171
+ def _get_not_sign_body_header_key(self):
172
+ temp_arr = self.algorithm.split("-")
173
+ real_use_alg = temp_arr[-1].lower()
174
+ return HSdkContent + real_use_alg
175
+
176
+ def _get_auth_value(self, req):
177
+ header_time = findHeader(req, HXDate)
178
+ if header_time is None:
179
+ time = datetime.utcnow()
180
+ req.headers[HXDate] = datetime.strftime(time, DateFormat)
181
+ else:
182
+ time = datetime.strptime(header_time, DateFormat)
183
+ have_host = False
184
+ for key in req.headers:
185
+ if key.lower() == HHost:
186
+ have_host = True
187
+ break
188
+ if not have_host:
189
+ req.headers[HHost] = req.host
190
+ signed_headers = SignedHeaders(req)
191
+ canonical_request = self._canonical_request(req, signed_headers)
192
+ if self.algorithm.startswith(V11):
193
+ sign_v11 = SignV11(self)
194
+ auth_value = sign_v11.generate_auth(canonical_request, time, signed_headers)
195
+ else:
196
+ string_to_sign = self._get_string_to_sign(canonical_request, time)
197
+ signature = self.sign_string_to_sign(self.Secret, string_to_sign)
198
+ auth_value = self.auth_header_value(signature, signed_headers)
199
+ return auth_value
200
+
201
+ # Create the HWS Signature.
202
+ def sign_string_to_sign(self, secret_key, string_to_sign):
203
+ sign_hmac = self._new_hmac(secret_key, string_to_sign)
204
+ return binascii.hexlify(sign_hmac).decode()
205
+
206
+ # Get the finalized value for the "Authorization" header. The signature
207
+ # parameter is the output from SignStringToSign
208
+ def auth_header_value(self, sig, signed_headers):
209
+ return "%s Access=%s, SignedHeaders=%s, Signature=%s" % (
210
+ self.algorithm, self.Key, ";".join(signed_headers), sig)
211
+
212
+ def hex_encode_hash(self, data):
213
+ # type: (bytes) -> str
214
+ _hash = self.hash_func(data)
215
+ return _hash.hexdigest()
216
+
217
+ if sys.version_info.major < 3:
218
+ def _new_hmac(self, byte, msg):
219
+ return hmac.new(byte, msg, digestmod=self.hash_func).digest()
220
+
221
+ def _get_string_to_sign(self, request, time):
222
+ b = self.hex_encode_hash(request)
223
+ return "%s\n%s\n%s" % (self.algorithm, datetime.strftime(time, DateFormat), b)
224
+
225
+ else:
226
+ def _new_hmac(self, byte, msg):
227
+ return hmac.new(byte.encode(UTF8), msg.encode(UTF8), digestmod=self.hash_func).digest()
228
+
229
+ def _get_string_to_sign(self, request, time):
230
+ b = self.hex_encode_hash(request.encode(UTF8))
231
+ return "%s\n%s\n%s" % (self.algorithm, datetime.strftime(time, DateFormat), b)
232
+
233
+
234
+ # HWS API Gateway Signature
235
+ class HttpRequest:
236
+ def __init__(self, m="", u="", h=None, b=""):
237
+ self.method = m
238
+ sp = u.split("://", 1)
239
+ s = 'http'
240
+ if len(sp) > 1:
241
+ s = sp[0]
242
+ u = sp[1]
243
+ q = {}
244
+ sp = u.split('?', 1)
245
+ u = sp[0]
246
+ if len(sp) > 1:
247
+ for kv in sp[1].split("&"):
248
+ sp = kv.split("=", 1)
249
+ k = sp[0]
250
+ v = ""
251
+ if len(sp) > 1:
252
+ v = sp[1]
253
+ if k != '':
254
+ k = unquote(k)
255
+ v = unquote(v)
256
+ if k in q:
257
+ q[k].append(v)
258
+ else:
259
+ q[k] = [v]
260
+ sp = u.split('/', 1)
261
+ host = sp[0]
262
+ if len(sp) > 1:
263
+ u = '/' + sp[1]
264
+ else:
265
+ u = '/'
266
+
267
+ self.scheme = s
268
+ self.host = host
269
+ self.uri = u
270
+ self.query = q
271
+ if h is None:
272
+ self.headers = {}
273
+ else:
274
+ self.headers = copy.deepcopy(h)
275
+ if sys.version_info.major < 3:
276
+ self.body = b
277
+ else:
278
+ self.body = b.encode("utf-8")
@@ -0,0 +1,70 @@
1
+ #
2
+ # Copyright (c) Huawei Technologies CO., Ltd. 2025. All rights reserved.
3
+ #
4
+
5
+ import hmac
6
+ import sys
7
+ from datetime import datetime
8
+
9
+ APIC = "apic"
10
+ UTF8 = 'utf-8'
11
+ DATE_FORMAT = "%Y%m%dT%H%M%SZ"
12
+
13
+
14
+ class SignV11:
15
+ def __init__(self, signer):
16
+ self.signer = signer
17
+ self._credential_scope = ""
18
+
19
+ def _set_credential_scope(self, time):
20
+ formatted_date = time.strftime('%Y%m%d')
21
+ self._credential_scope = formatted_date + "/" + self.signer.region_id + "/" + APIC
22
+
23
+ def _get_auth_header_value(self, key, signed_headers, signature):
24
+ return "%s Credential=%s/%s, SignedHeaders=%s, Signature=%s" % (
25
+ self.signer.algorithm, key, self._credential_scope, ";".join(signed_headers), signature)
26
+
27
+ def _get_real_use_secret(self, key, secret):
28
+ return self._hkdf(key, secret, self._credential_scope)
29
+
30
+ def _hkdf(self, key, secret, credential_scope, length=32):
31
+ salt = bytearray(key, UTF8)
32
+ ikm = bytearray(secret, UTF8)
33
+ info = bytearray(credential_scope, UTF8)
34
+ hash_func = self.signer.hash_func
35
+
36
+ # 提取阶段 (HKDF-Extract)
37
+ prk = hmac.new(salt, ikm, hash_func).digest()
38
+ # 扩展阶段 (HKDF-Expand)
39
+ okm = b""
40
+ t = b""
41
+ for i in range(1, (length + 32) // 32 + 1):
42
+ new_info = t + info + bytes([i])
43
+ t = hmac.new(prk, new_info, hash_func).digest()
44
+ okm += t
45
+
46
+ return okm[:length].hex()
47
+
48
+ def generate_auth(self, canonical_request, t, signed_headers):
49
+ s = self.signer
50
+ if s is None:
51
+ raise ValueError("he signer is None")
52
+ string_to_sign_str = self._get_string_to_sign(canonical_request, t)
53
+ real_use_secret = self._get_real_use_secret(s.Key, s.Secret)
54
+ signature = s.sign_string_to_sign(real_use_secret, string_to_sign_str)
55
+ auth_value = self._get_auth_header_value(s.Key, signed_headers, signature)
56
+ return auth_value
57
+
58
+ if sys.version_info.major < 3:
59
+ def _get_string_to_sign(self, request, time):
60
+ hashed_canonical_request = self.signer.hex_encode_hash(request)
61
+ self._set_credential_scope(time)
62
+ return "%s\n%s\n%s\n%s" % (self.signer.algorithm, datetime.strftime(time, DATE_FORMAT),
63
+ self._credential_scope, hashed_canonical_request)
64
+
65
+ else:
66
+ def _get_string_to_sign(self, request, time):
67
+ hashed_canonical_request = self.signer.hex_encode_hash(request.encode(UTF8))
68
+ self._set_credential_scope(time)
69
+ return "%s\n%s\n%s\n%s" % (self.signer.algorithm, datetime.strftime(time, DATE_FORMAT),
70
+ self._credential_scope, hashed_canonical_request)