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/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/gmssl.py b/gmssl.py index 6e15d1a..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")) 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