OSDN Git Service

add ed25519 test data
authorChengcheng Zhang <943420582@qq.com>
Mon, 24 Dec 2018 09:17:16 +0000 (17:17 +0800)
committerChengcheng Zhang <943420582@qq.com>
Mon, 24 Dec 2018 09:17:16 +0000 (17:17 +0800)
app/model/key.py
app/model/signature.py

index 8c8bd07..57c8fbe 100644 (file)
@@ -124,6 +124,12 @@ def seed_to_root_xprv(seed_str):
 #     return xpub_str
 ##################################################
 
+
+# def xprv_to_child_xprv(xprv_str, path_str):
+#     child_xprv_str = xprv_str
+
+#     return child_xprv_str
+
 # xprv_to_expanded_private_key create expanded private key from xprv
 # You can verify or get more test data from: https://gist.github.com/zcc0721/ef0bf2e69f5e92b29d716981f2a8fe7d
 # test data 1:
@@ -142,6 +148,12 @@ def xprv_to_expanded_private_key(xprv_str):
     return expanded_private_key_str
 
 
+# def xprv_sign(xprv_str, message_str):
+
+
+#     return signature_str
+
+
 # xpub_to_public_key create 32 bytes public key from xpub
 # xpub length is 64 bytes.
 # You can verify or get more test data from: 
@@ -159,7 +171,3 @@ def xpub_to_public_key(xpub_str):
 
     return public_key_str
 
-
-# def xprv_sign(xprv_str, message_str):
-    
-#     return signature_str
\ No newline at end of file
index 13cd86e..ac16bc8 100644 (file)
@@ -1,21 +1,34 @@
 import ed25519
 
-# test data:
-#     private_key: 33c6e964cf64246fc37f26be46c7b783ef4364f9d4c69daa4ccd9d0fef5fcef1
-#     public_key: b25690a0ccd290a3346fb412dfd342c5ce6134ef116e89b0642d7534e34df432
-#     message: hello bytom
-#     signature: dfb19c1892796ad9560eb61a065c016c82a7a81a42f2c3f69d20f44582262551b62fee6836c866e008c2cb37bba7e2045013f073ad7f69f5dd2a634929c3d406
+# You can verify or get more test data from: https://gist.github.com/zcc0721/bfa5c34a49ddfcaf9fdc3374cecb1477
+# test data 1:
+#   private_key_str: 33c6e964cf64246fc37f26be46c7b783ef4364f9d4c69daa4ccd9d0fef5fcef1
+#   public_key_str: b25690a0ccd290a3346fb412dfd342c5ce6134ef116e89b0642d7534e34df432
+#   message_str: 68656c6c6f206279746f6d      # value is: 'hello bytom'
+#   signature_str: dfb19c1892796ad9560eb61a065c016c82a7a81a42f2c3f69d20f44582262551b62fee6836c866e008c2cb37bba7e2045013f073ad7f69f5dd2a634929c3d406
+# test data 2:
+#   private_key_str: 0164f0d6bc1f063fc74f1010dc4c5393af40d215cc905884443ed0cfe2e2c1c4
+#   public_key_str: 5faaee522735460654190609cab55f96edd44ea78e358d6a02ef769b0c9eb314
+#   message_str: b435f948bd3748ede8f9d6f59728d669939e79c6c885667a5c138e05bbabde1de0dcfcbe0c6112022fbbf0da522f4e224a9c2381016380688b51886248b3156f
+#   signature_str: 18d29864775ff4ec0c78a477f57c5d4dd03526d55ba33bd6768acf3ca0cf7e41fe9c241a7bc550f4fa14a745fbe0155cb896f9e4d88c87337e6dc3a313c8d80b
+# test data 3:
+#   private_key_str: 7eb40ebe8beee07dfbc645300f571948a9ce83191c28505e710b6900ec2531ed
+#   public_key_str: 026b5e22e282d07051203fb0596be140cf17f2532a31407f3b177faa74237cbe
+#   message_str: 48ec69c784c519b65d0e52badda3b7c25113a6b53b4c8e582abee3e2f9aab41514f15bd44c999f3d2ddae4bbab15baf9f4d82dde4f97aa5042cbcfdd8271530e
+#   signature_str: 691fe6fc51603adbac0db2f71f383e7039b6a031a2242da8fd6203f9c71e3b526d0cdace626811ee06797de21afebe54d0293027eb6b22b10c63d4dd0ab8790c
 
 def sign(private_key_str, message_str):
     signing_key = ed25519.SigningKey(bytes.fromhex(private_key_str))
-    signature = signing_key.sign(message_str.encode(), encoding='hex')
+    # signature = signing_key.sign(message_str.encode(), encoding='hex')
+    signature = signing_key.sign(bytes.fromhex(message_str), encoding='hex')
+
     return signature.decode()
 
 def verify(public_key_str, signature_str, message_str):
     result = False
     verifying_key = ed25519.VerifyingKey(public_key_str.encode(), encoding='hex')
     try:
-        verifying_key.verify(signature_str.encode(), message_str.encode(), encoding='hex')
+        verifying_key.verify(signature_str.encode(), bytes.fromhex(message_str), encoding='hex')
         result = True
     except ed25519.BadSignatureError:
         result = False