From 69545f9368765f574f749bef2a5c6390c6a54688 Mon Sep 17 00:00:00 2001 From: bowenerchen Date: Tue, 24 Dec 2024 14:03:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E4=BC=98=E5=8C=96README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2389734..3298bb8 100644 --- a/README.md +++ b/README.md @@ -104,7 +104,7 @@ pip install easy_gmssl from __future__ import annotations from easy_gmssl import EasySm4CBC - from gmssl import SM4_BLOCK_SIZE, SM4_CBC_IV_SIZE + from easy_gmssl.gmssl import SM4_BLOCK_SIZE, SM4_CBC_IV_SIZE key = 'x' * SM4_BLOCK_SIZE iv = 'y' * SM4_CBC_IV_SIZE From 8d15116a3d869938bfaf8e350797b99d86f1d2b0 Mon Sep 17 00:00:00 2001 From: bowenerchen Date: Sat, 28 Dec 2024 11:05:08 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=9D=99=E6=80=81?= =?UTF-8?q?=E5=BA=93=E6=9F=A5=E6=89=BE=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gmssl.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gmssl.py b/gmssl.py index 6e15d1a..2b036d4 100755 --- a/gmssl.py +++ b/gmssl.py @@ -19,7 +19,7 @@ if not home_directory.endswith('/'): home_directory += '/' ext_dir = home_directory + ".gmssl_3.1.1_install/" - gmssl = cdll.LoadLibrary(ext_dir + "/lib/libgmssl.a") + gmssl = cdll.LoadLibrary(ext_dir + "lib/libgmssl.a") except Exception: try: gmssl = cdll.LoadLibrary(find_library("gmssl")) From 3b76f5a6a8af44be5abcf47ee562119069748844 Mon Sep 17 00:00:00 2001 From: bowenerchen Date: Sat, 28 Dec 2024 11:26:03 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=BA=93=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- easy_random_data.py | 4 ++-- easy_random_data_test.py | 2 +- easy_sm2_key_test.py | 5 ++--- easy_sm2_sign_test.py | 19 +++++++++++-------- easy_sm3_key_test.py | 4 ++-- easy_sm4_test.py | 5 ++--- easy_zuc_test.py | 6 +++--- run_unittest.sh | 7 +++++++ 8 files changed, 30 insertions(+), 22 deletions(-) create mode 100755 run_unittest.sh diff --git a/easy_random_data.py b/easy_random_data.py index aeb680c..2b24192 100644 --- a/easy_random_data.py +++ b/easy_random_data.py @@ -9,7 +9,7 @@ from enum import Enum from typing import Union -import gmssl +from .gmssl import rand_bytes class RandomMode(Enum): @@ -24,7 +24,7 @@ def __init__(self, mode: RandomMode = RandomMode.RandomBytes): self._mode = mode def GetRandomData(self, length: int = 16) -> Union[bytes | str]: - r = gmssl.rand_bytes(length) + r = rand_bytes(length) if length < 1: raise ValueError('invalid random length, required greater than 0') if self._mode == RandomMode.RandomBytes: diff --git a/easy_random_data_test.py b/easy_random_data_test.py index bb024da..f367257 100644 --- a/easy_random_data_test.py +++ b/easy_random_data_test.py @@ -1,7 +1,7 @@ import string import unittest -from easy_random_data import EasyRandomData, RandomMode +from .easy_random_data import EasyRandomData, RandomMode class MyTestCase(unittest.TestCase): diff --git a/easy_sm2_key_test.py b/easy_sm2_key_test.py index 12c3ef1..a8694d9 100644 --- a/easy_sm2_key_test.py +++ b/easy_sm2_key_test.py @@ -2,9 +2,8 @@ import random import unittest -from easy_gmssl.easy_sm2_key import EasySm2EncryptionKey, EasySm2Key, SM2CipherFormat, SM2CipherMode - -from gmssl import SM2_MAX_CIPHERTEXT_SIZE, SM2_MAX_PLAINTEXT_SIZE +from .easy_sm2_key import EasySm2EncryptionKey, EasySm2Key, SM2CipherFormat, SM2CipherMode +from .gmssl import SM2_MAX_CIPHERTEXT_SIZE, SM2_MAX_PLAINTEXT_SIZE class SM2KeyCase(unittest.TestCase): diff --git a/easy_sm2_sign_test.py b/easy_sm2_sign_test.py index 2ebcb22..7e162f7 100644 --- a/easy_sm2_sign_test.py +++ b/easy_sm2_sign_test.py @@ -1,16 +1,16 @@ import random import unittest -from easy_gmssl.easy_sm2_sign_key import EasySM2SignKey, EasySM2VerifyKey, SignatureMode - from gmssl import SM2_MAX_SIGNATURE_SIZE +from .easy_sm2_sign_key import EasySM2SignKey, EasySM2VerifyKey, SignatureMode class MyTestCase(unittest.TestCase): def test_sign_data(self): signer_id = 'test_signer' print('signer_id hex:', signer_id.encode('utf-8').hex()) - test = EasySM2SignKey(signer_id = signer_id, pem_private_key_file = './test_keys/tmp_test_sm2_private.pem', + + test = EasySM2SignKey(signer_id = signer_id, pem_private_key_file = './easy_gmssl/test_keys/tmp_test_sm2_private.pem', password = '123456') plain = bytes([random.randint(0, 255) for _ in range(0, 64)]) print('plain hex:', plain.hex()) @@ -22,7 +22,8 @@ def test_sign_data(self): self.assertTrue(len(sign_value) <= SM2_MAX_SIGNATURE_SIZE) self.assertTrue(len(sign_value) >= 64) # RS_ASN1 模式下的签名不小于 64 字节 - verify_test = EasySM2VerifyKey(signer_id = signer_id, pem_public_key_file = './test_keys/tmp_test_sm2_public.pem') + verify_test = EasySM2VerifyKey(signer_id = signer_id, + pem_public_key_file = './easy_gmssl/test_keys/tmp_test_sm2_public.pem') print('verify public key:', verify_test.get_sm2_public_key_in_hex()) verify_test.UpdateData(plain) ret = verify_test.VerifySignature(sign_value) @@ -31,7 +32,7 @@ def test_sign_data(self): def test_rs_sign_mode(self): signer_id = 'test_signer' print('signer_id hex:', signer_id.encode('utf-8').hex()) - test = EasySM2SignKey(signer_id = signer_id, pem_private_key_file = './test_keys/tmp_test_sm2_private.pem', + test = EasySM2SignKey(signer_id = signer_id, pem_private_key_file = './easy_gmssl/test_keys/tmp_test_sm2_private.pem', password = '123456') plain = bytes([random.randint(0, 255) for _ in range(0, 64)]) print('plain hex:', plain.hex()) @@ -44,7 +45,8 @@ def test_rs_sign_mode(self): self.assertTrue(len(sign_value) <= SM2_MAX_SIGNATURE_SIZE) self.assertTrue(len(sign_value) == 64) - verify_test = EasySM2VerifyKey(signer_id = signer_id, pem_public_key_file = './test_keys/tmp_test_sm2_public.pem') + verify_test = EasySM2VerifyKey(signer_id = signer_id, + pem_public_key_file = './easy_gmssl/test_keys/tmp_test_sm2_public.pem') print('verify public key:', verify_test.get_sm2_public_key_in_hex()) verify_test.UpdateData(plain) ret = verify_test.VerifySignature(sign_value, signature_mode = SignatureMode.RS) @@ -52,7 +54,7 @@ def test_rs_sign_mode(self): def test_invalid_sign_mode(self): signer_id = 'test_signer' - test = EasySM2SignKey(signer_id = signer_id, pem_private_key_file = './test_keys/tmp_test_sm2_private.pem', + test = EasySM2SignKey(signer_id = signer_id, pem_private_key_file = './easy_gmssl/test_keys/tmp_test_sm2_private.pem', password = '123456') plain = bytes([random.randint(0, 255) for _ in range(0, 64)]) try: @@ -67,7 +69,8 @@ def test_invalid_sign_mode(self): def test_invalid_signature_size(self): signer_id = 'test_signer' plain = bytes([random.randint(0, 255) for _ in range(0, 64)]) - verify_test = EasySM2VerifyKey(signer_id = signer_id, pem_public_key_file = './test_keys/tmp_test_sm2_public.pem') + verify_test = EasySM2VerifyKey(signer_id = signer_id, + pem_public_key_file = './easy_gmssl/test_keys/tmp_test_sm2_public.pem') print('verify public key:', verify_test.get_sm2_public_key_in_hex()) verify_test.UpdateData(plain) diff --git a/easy_sm3_key_test.py b/easy_sm3_key_test.py index 91f7b82..1ba2805 100644 --- a/easy_sm3_key_test.py +++ b/easy_sm3_key_test.py @@ -1,9 +1,9 @@ import random import unittest -from easy_gmssl.easy_sm3_key import EasySM3Digest, EasySM3Hmac +from .easy_sm3_key import EasySM3Digest, EasySM3Hmac -from gmssl import SM3_DIGEST_SIZE, SM3_HMAC_MAX_KEY_SIZE, SM3_HMAC_MIN_KEY_SIZE, SM3_HMAC_SIZE +from .gmssl import SM3_DIGEST_SIZE, SM3_HMAC_MAX_KEY_SIZE, SM3_HMAC_MIN_KEY_SIZE, SM3_HMAC_SIZE class MyTestCase(unittest.TestCase): diff --git a/easy_sm4_test.py b/easy_sm4_test.py index aadae27..59961ff 100644 --- a/easy_sm4_test.py +++ b/easy_sm4_test.py @@ -1,8 +1,7 @@ import unittest -from easy_gmssl.easy_sm4_key import EasySm4CBC, EasySm4GCM - -from gmssl import SM4_BLOCK_SIZE, SM4_CBC_IV_SIZE, SM4_GCM_DEFAULT_TAG_SIZE, Sm4Cbc +from .easy_sm4_key import EasySm4CBC, EasySm4GCM +from .gmssl import SM4_BLOCK_SIZE, SM4_CBC_IV_SIZE, SM4_GCM_DEFAULT_TAG_SIZE, Sm4Cbc class MyTestCase(unittest.TestCase): diff --git a/easy_zuc_test.py b/easy_zuc_test.py index 5d2ae7b..bc3ca52 100644 --- a/easy_zuc_test.py +++ b/easy_zuc_test.py @@ -1,9 +1,9 @@ import unittest -from easy_gmssl.easy_zuc import EasyZuc +from .easy_zuc import EasyZuc -from easy_random_data import EasyRandomData -from gmssl import ZUC_IV_SIZE, ZUC_KEY_SIZE +from .easy_random_data import EasyRandomData +from .gmssl import ZUC_IV_SIZE, ZUC_KEY_SIZE class MyTestCase(unittest.TestCase): diff --git a/run_unittest.sh b/run_unittest.sh new file mode 100755 index 0000000..9354da2 --- /dev/null +++ b/run_unittest.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +python3 -m unittest easy_gmssl/easy_random_data_test.py +python3 -m unittest easy_gmssl/easy_sm2_key.py +python3 -m unittest easy_gmssl/easy_sm2_sign_test.py +python3 -m unittest easy_gmssl/easy_sm3_key_test.py +python3 -m unittest easy_gmssl/easy_sm4_test.py From 727377d09e67a0edce325934d41e3a7b522c97aa Mon Sep 17 00:00:00 2001 From: bowenerchen Date: Sat, 28 Dec 2024 12:02:24 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/GmSSL-3.1.1/CMakeLists.txt | 2 +- gmssl.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Core/GmSSL-3.1.1/CMakeLists.txt b/Core/GmSSL-3.1.1/CMakeLists.txt index b960a2a..34acff7 100644 --- a/Core/GmSSL-3.1.1/CMakeLists.txt +++ b/Core/GmSSL-3.1.1/CMakeLists.txt @@ -311,7 +311,7 @@ if (ENABLE_HTTP_TESTS) endif() # option(BUILD_SHARED_LIBS "Build using shared libraries" ON) -option(BUILD_SHARED_LIBS "Build using shared libraries" OFF) +option(BUILD_SHARED_LIBS "Build using shared libraries" ON) if (CMAKE_C_COMPILER_ID MATCHES "MSVC") message(STATUS "CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS") diff --git a/gmssl.py b/gmssl.py index 2b036d4..c4c7ccf 100755 --- a/gmssl.py +++ b/gmssl.py @@ -19,7 +19,7 @@ if not home_directory.endswith('/'): home_directory += '/' ext_dir = home_directory + ".gmssl_3.1.1_install/" - gmssl = cdll.LoadLibrary(ext_dir + "lib/libgmssl.a") + gmssl = cdll.LoadLibrary(ext_dir + "lib/libgmssl.so.3.1") except Exception: try: gmssl = cdll.LoadLibrary(find_library("gmssl"))