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.
- examples/file_encryption_example.py +57 -0
- examples/key_capsule_encryption_example.py +240 -0
- examples/kms_discovery_encryption_example.py +56 -0
- examples/local_aes_encryption_example.py +59 -0
- examples/test_rsa.py +42 -0
- examples/test_sm2.py +38 -0
- examples/test_sm4_cbc.py +37 -0
- examples/test_sm4_gcm.py +37 -0
- huaweicloud_encryption_sdk_python-1.2.1.dist-info/METADATA +18 -0
- huaweicloud_encryption_sdk_python-1.2.1.dist-info/RECORD +174 -0
- huaweicloud_encryption_sdk_python-1.2.1.dist-info/WHEEL +5 -0
- huaweicloud_encryption_sdk_python-1.2.1.dist-info/top_level.txt +3 -0
- huaweicloud_encryptionsdk/__init__.py +5 -0
- huaweicloud_encryptionsdk/_apig_sdk/__init__.py +1 -0
- huaweicloud_encryptionsdk/_apig_sdk/signer.py +278 -0
- huaweicloud_encryptionsdk/_apig_sdk/signer_v11.py +70 -0
- huaweicloud_encryptionsdk/_apig_sdk/sm3_hash.py +141 -0
- huaweicloud_encryptionsdk/_lts_sdk/auth/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/auth/signer.py +174 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/client/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/client/consumer_client_adapter.py +59 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/client/http_client.py +211 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/core/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/core/client_consumer_worker.py +106 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/core/consumer_heartbeat.py +73 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/core/log_shard_consumer.py +179 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_check_point_tracker.py +120 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_processor.py +18 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/interface/consumer_processor_factory.py +3 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/model/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/model/check_point.py +20 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/model/consumer_config.py +27 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/model/log_data.py +18 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/model/task_result.py +40 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/task/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/task/consumer_fetch_task.py +53 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/task/initial_task.py +55 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/task/process_task.py +25 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer/task/shutdown_task.py +24 -0
- huaweicloud_encryptionsdk/_lts_sdk/consumer_main.py +88 -0
- huaweicloud_encryptionsdk/_lts_sdk/parallel_main.py +64 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/callback/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/callback/call_back.py +7 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/core/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/core/accumulator.py +135 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/core/io_thread_pool.py +107 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/core/io_worker.py +124 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/core/mover.py +69 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/core/producer.py +98 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/http_client.py +63 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/lts_http/simple_request.py +14 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/config.py +50 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/error.py +18 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/log.py +87 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/log_batch.py +154 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/lts_store.py +21 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/result.py +17 -0
- huaweicloud_encryptionsdk/_lts_sdk/producer/model/retry_queue.py +39 -0
- huaweicloud_encryptionsdk/_lts_sdk/serial_main.py +77 -0
- huaweicloud_encryptionsdk/_lts_sdk/utils/__init__.py +0 -0
- huaweicloud_encryptionsdk/_lts_sdk/utils/common.py +57 -0
- huaweicloud_encryptionsdk/_lts_sdk/utils/lts_threading.py +32 -0
- huaweicloud_encryptionsdk/cache/__init__.py +0 -0
- huaweicloud_encryptionsdk/cache/data_key_cache.py +79 -0
- huaweicloud_encryptionsdk/cache/local_data_key_cache.py +161 -0
- huaweicloud_encryptionsdk/common/__init__.py +0 -0
- huaweicloud_encryptionsdk/common/constants.py +15 -0
- huaweicloud_encryptionsdk/common/counting_output_stream.py +18 -0
- huaweicloud_encryptionsdk/common/crypto_factory.py +48 -0
- huaweicloud_encryptionsdk/common/ec_private_key_loader.py +43 -0
- huaweicloud_encryptionsdk/common/ecs_metadata_service.py +42 -0
- huaweicloud_encryptionsdk/common/file_path_for_example_constants.py +4 -0
- huaweicloud_encryptionsdk/common/utils.py +162 -0
- huaweicloud_encryptionsdk/exception/__init__.py +0 -0
- huaweicloud_encryptionsdk/exception/errors.py +109 -0
- huaweicloud_encryptionsdk/handler/__init__.py +0 -0
- huaweicloud_encryptionsdk/handler/cipher_handler.py +294 -0
- huaweicloud_encryptionsdk/handler/crypto_handler.py +24 -0
- huaweicloud_encryptionsdk/handler/default_crypto_handler.py +148 -0
- huaweicloud_encryptionsdk/handler/default_serialize_handler.py +45 -0
- huaweicloud_encryptionsdk/handler/file_decrypt_handler.py +101 -0
- huaweicloud_encryptionsdk/handler/file_encrypt_handler.py +30 -0
- huaweicloud_encryptionsdk/handler/serialize_handler.py +14 -0
- huaweicloud_encryptionsdk/huawei_config.py +49 -0
- huaweicloud_encryptionsdk/huawei_crypto.py +311 -0
- huaweicloud_encryptionsdk/keyrings/__init__.py +0 -0
- huaweicloud_encryptionsdk/keyrings/keyring.py +14 -0
- huaweicloud_encryptionsdk/keyrings/keyring_factory.py +10 -0
- huaweicloud_encryptionsdk/keyrings/kms_keyring_factory.py +21 -0
- huaweicloud_encryptionsdk/keyrings/kmskeyring/__init__.py +0 -0
- huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_discovery_keyring.py +51 -0
- huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_key_capsule_keyring.py +100 -0
- huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_keyring.py +155 -0
- huaweicloud_encryptionsdk/keyrings/kmskeyring/kms_multi_region_keyring.py +8 -0
- huaweicloud_encryptionsdk/keyrings/raw_keyring_factory.py +27 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/__init__.py +0 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_aes_keyring.py +63 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_keyring.py +112 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_rsa_keyring.py +55 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm2_keyring.py +75 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm4_cbc_keyring.py +66 -0
- huaweicloud_encryptionsdk/keyrings/rawkeyring/raw_sm4_keyring.py +70 -0
- huaweicloud_encryptionsdk/kms/__init__.py +0 -0
- huaweicloud_encryptionsdk/kms/create_key_capsule_request.py +35 -0
- huaweicloud_encryptionsdk/kms/create_key_capsule_response.py +19 -0
- huaweicloud_encryptionsdk/kms/decrypt_key_capsule_request.py +32 -0
- huaweicloud_encryptionsdk/kms/decrypt_key_capsule_response.py +19 -0
- huaweicloud_encryptionsdk/kms/kms_http_client.py +116 -0
- huaweicloud_encryptionsdk/log/__init__.py +0 -0
- huaweicloud_encryptionsdk/log/log_config.py +30 -0
- huaweicloud_encryptionsdk/log/log_file_backup.py +144 -0
- huaweicloud_encryptionsdk/log/log_metrics.py +132 -0
- huaweicloud_encryptionsdk/log/log_reporter_manager.py +163 -0
- huaweicloud_encryptionsdk/log/lts_sdk_producer.py +386 -0
- huaweicloud_encryptionsdk/log/lts_struct_log_builder.py +106 -0
- huaweicloud_encryptionsdk/meterialmanager/__init__.py +0 -0
- huaweicloud_encryptionsdk/meterialmanager/cache_crypto_meterial_manager.py +221 -0
- huaweicloud_encryptionsdk/meterialmanager/crypto_meterial_manager.py +19 -0
- huaweicloud_encryptionsdk/meterialmanager/data_key_generate.py +10 -0
- huaweicloud_encryptionsdk/meterialmanager/data_key_generate_factory.py +20 -0
- huaweicloud_encryptionsdk/meterialmanager/default_crypto_meterials_manager.py +71 -0
- huaweicloud_encryptionsdk/meterialmanager/key_capsule_data_key_generate.py +63 -0
- huaweicloud_encryptionsdk/meterialmanager/kms_data_key_generate.py +65 -0
- huaweicloud_encryptionsdk/meterialmanager/local_data_key_generate.py +13 -0
- huaweicloud_encryptionsdk/model/__init__.py +0 -0
- huaweicloud_encryptionsdk/model/access_point_config.py +9 -0
- huaweicloud_encryptionsdk/model/cipher_body.py +81 -0
- huaweicloud_encryptionsdk/model/cipher_header.py +405 -0
- huaweicloud_encryptionsdk/model/ciphertext_data_key.py +166 -0
- huaweicloud_encryptionsdk/model/crypto_result.py +11 -0
- huaweicloud_encryptionsdk/model/data_key_materials.py +17 -0
- huaweicloud_encryptionsdk/model/data_materials.py +11 -0
- huaweicloud_encryptionsdk/model/enums/__init__.py +0 -0
- huaweicloud_encryptionsdk/model/enums/access_point_type.py +28 -0
- huaweicloud_encryptionsdk/model/enums/crypto_algorithm.py +75 -0
- huaweicloud_encryptionsdk/model/enums/data_key_generate_type.py +20 -0
- huaweicloud_encryptionsdk/model/enums/key_provider_enum.py +19 -0
- huaweicloud_encryptionsdk/model/enums/keyring_type_enum.py +27 -0
- huaweicloud_encryptionsdk/model/key_capsule.py +10 -0
- huaweicloud_encryptionsdk/model/key_capsule_config.py +12 -0
- huaweicloud_encryptionsdk/model/kms_config.py +10 -0
- huaweicloud_encryptionsdk/model/request/__init__.py +0 -0
- huaweicloud_encryptionsdk/model/request/encrypt_request.py +10 -0
- huaweicloud_encryptionsdk/model/request/sign_request.py +2 -0
- huaweicloud_encryptionsdk/model/request/verify_request.py +2 -0
- huaweicloud_encryptionsdk/proof/__init__.py +0 -0
- huaweicloud_encryptionsdk/proof/attestation_document.py +36 -0
- huaweicloud_encryptionsdk/proof/collector/__init__.py +0 -0
- huaweicloud_encryptionsdk/proof/collector/cce_proof_collector.py +24 -0
- huaweicloud_encryptionsdk/proof/collector/ecs_proof_collector.py +11 -0
- huaweicloud_encryptionsdk/proof/collector/key_pair_proof_collector.py +55 -0
- huaweicloud_encryptionsdk/proof/collector/ma_proof_collector.py +51 -0
- huaweicloud_encryptionsdk/proof/private_key_decrypt_callback.py +7 -0
- huaweicloud_encryptionsdk/proof/proof_collector.py +11 -0
- huaweicloud_encryptionsdk/proof/proof_collector_factory.py +53 -0
- huaweicloud_encryptionsdk/proof/proof_info.py +10 -0
- huaweicloud_encryptionsdk/util/__init__.py +0 -0
- huaweicloud_encryptionsdk/util/common_utils.py +12 -0
- tests/__init__.py +0 -0
- tests/test_enums.py +84 -0
- tests/test_exceptions.py +38 -0
- tests/test_factories.py +71 -0
- tests/test_huawei_crypto.py +67 -0
- tests/test_imports.py +46 -0
- tests/test_kms_models.py +95 -0
- tests/test_log_file_backup.py +45 -0
- tests/test_lts_struct_log_builder.py +97 -0
- tests/test_models.py +142 -0
- 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 @@
|
|
|
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)
|