dev@locazia: edit signer method
This commit is contained in:
1 parent
492ab9d2ac
commit
86d6dde5ae
3 files changed
+13
-16
No files matched your search
+10
-15
@@ -1,6 +1,5 @@
|
||||
from Crypto.PublicKey import ECC
|
||||
from Crypto.Hash import SHA256
|
||||
from Crypto.Signature import DSS
|
||||
import nacl.signing
|
||||
import nacl.encoding
|
||||
import base58
|
||||
|
||||
|
||||
@@ -8,22 +7,18 @@ class Signer:
|
||||
def __init__(self, seed: bytes):
|
||||
if len(seed) != 32:
|
||||
raise ValueError("Seed must be 32 bytes")
|
||||
|
||||
self.key = ECC.generate(curve='P-256', randfunc=lambda n: seed)
|
||||
self.verifier = DSS.new(self.key, 'fips-186-3')
|
||||
self.signing_key = nacl.signing.SigningKey(seed)
|
||||
self.verify_key = self.signing_key.verify_key
|
||||
|
||||
def sign(self, data_bytes: bytes) -> str:
|
||||
hash_obj = SHA256.new(data_bytes)
|
||||
signature = self.verifier.sign(hash_obj)
|
||||
signature_str = base58.b58encode(signature).decode()
|
||||
return signature_str
|
||||
signed_message = self.signing_key.sign(data_bytes)
|
||||
signature = signed_message.signature
|
||||
return base58.b58encode(signature).decode()
|
||||
|
||||
def verify(self, data_bytes: str, signature: str) -> bool:
|
||||
data_bytes = base58.b58decode(data_bytes)
|
||||
def verify(self, data_bytes: bytes, signature: str) -> bool:
|
||||
signature_bytes = base58.b58decode(signature)
|
||||
hash_obj = SHA256.new(data_bytes)
|
||||
try:
|
||||
self.verifier.verify(hash_obj, signature_bytes)
|
||||
self.verify_key.verify(data_bytes, signature_bytes)
|
||||
return True
|
||||
except ValueError:
|
||||
except nacl.exceptions.BadSignatureError:
|
||||
return False
|
||||
Reference in new issue
Block a user