Bläddra i källkod

新增签名验签测试代码

liyan 11 månader sedan
förälder
incheckning
9695b85bc0
2 ändrade filer med 8 tillägg och 61 borttagningar
  1. 0 61
      tests/sign_verify.py
  2. 8 0
      tests/sign_verify_test.py

+ 0 - 61
tests/sign_verify.py

@@ -1,61 +0,0 @@
-import ctypes
-
-SIGN_LIB_NAME = 'libgmsign.so'
-VERIFY_LIB_NAME = 'libgmsign.so'
-
-def get_sign(raw_data: str) -> (str, str):
-    """
-    获取签名值
-    :param raw_data: 原文字符串
-    :return: tuple(str,str):(签名值base64字符串,公钥base64字符串)
-    """
-    # 加载共享库
-    lib = ctypes.CDLL(SIGN_LIB_NAME)
-
-    # 定义函数的参数和返回类型
-    # 签名函数签名如下:
-    # int sign(char *key_value, char *hash_value, char *public_key)
-    lib.sign.argtypes = [ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p]
-    lib.sign.restype = ctypes.c_int
-
-    key_value = raw_data.replace(" ", "").encode('utf-8')
-    hash_value = ctypes.create_string_buffer(256)  # 设置签名值输出缓冲区大小为 256 字节
-    public_key = ctypes.create_string_buffer(256)  # 设置公钥输出缓冲区大小为 256 字节
-
-    result = lib.sign(key_value, hash_value, public_key)
-
-    if result == 0:
-        return hash_value.value.decode(), public_key.value.decode()
-    else:
-        return None, None
-
-
-def verify_sign(raw_data: str, sign_data: str, public_key: str) -> bool:
-    """
-    验证签名
-    :param raw_data: 原文字符串
-    :param sign_data: 签名值base64字符串
-    :param public_key: 公钥base64字符串
-    :return:
-    """
-    # 加载共享库
-    lib = ctypes.CDLL(VERIFY_LIB_NAME)
-    # 验签函数签名如下:
-    # int sign_verify(char *content, char *sign_value, char *public_key)
-    lib.sign_verify.argtypes = [ctypes.c_char_p, ctypes.c_char_p, ctypes.c_char_p]
-    lib.sign_verify.restype = ctypes.c_int
-
-    content = raw_data.replace(" ", "").encode('utf-8')
-    sign_value = sign_data.encode('utf-8')
-    public_key = public_key.encode('utf-8')
-    verify_result = lib.sign_verify(content, sign_value, public_key)
-    verify_result = True if verify_result == 1 else False
-    return verify_result
-
-
-if __name__ == '__main__':
-    raw_data = "hello world test sign"
-    sign_data, public_key = get_sign(raw_data)
-    print(f"sign_data: {sign_data}\npublic_key: {public_key}")
-    verify_result = verify_sign(raw_data, sign_data, public_key)
-    print(f"verify_result: {verify_result}")

+ 8 - 0
tests/sign_verify_test.py

@@ -0,0 +1,8 @@
+from watermark_codec.tool.sign_verify import get_sign, verify_sign
+
+if __name__ == '__main__':
+    raw_data = "hello world test sign"
+    sign_data, public_key = get_sign(raw_data)
+    print(f"sign_data: {sign_data}\npublic_key: {public_key}")
+    verify_result = verify_sign(raw_data, sign_data, public_key)
+    print(f"verify_result: {verify_result}")