def HashMsg(msg, modulo=None, IsDec=False): HASHMSG = Nakasendo.hash256(msg) if (IsDec): Hm = Nakasendo.BigNum(str(int(HASHMSG.value, 16)), modulo.value, isDec=True) else: Hm = Nakasendo.BigNum(HASHMSG.value, modulo.value, isDec=False) return Hm
def hashMessage(self, message): # hash the message Hm = Nakasendo.hash256(message) return Hm.value
xval = hex(ecdsaPubKey.x())[2:] yval = hex(ecdsaPubKey.y())[2:] pempubkey = Nakasendo.pubKeyHexPtasPem(xval, yval) pubkeytest = ecdsa.ecdsa.Public_key(G, ecdsaPubKey) privkeytest = ecdsa.ecdsa.Private_key(pubkeytest, int(AliceKey.priKey, 16)) #print ('private key %s' % secret.value ) #ecdsa_sig = privkeytest.sign(int(Hm.value,16),int(inv_k.value,16)) #signature = ecdsa.util.sigencode_der_canonize(ecdsa_sig.r, ecdsa_sig.s,int(modulo_n.value,16)) message = 'Im a message and Im about to be hashed' print('Private Key in Hex %s \n Public Key Hex %s' % (AliceKey.priKey, AliceKey.pubKey)) hashedT = Nakasendo.hash256(message) print(hashedT) ecdsa_sig = privkeytest.sign(int(hashedT.value, 16), int(AliceKey.priKey, 16)) signature = ecdsa.util.sigencode_der_canonize( ecdsa_sig.r, ecdsa_sig.s, int("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141", 16)) #print (signature) print('ecdsa r %s \n ecdsa s %s' % (hex(ecdsa_sig.r)[2:], hex(ecdsa_sig.s)[2:])) veifySign = Nakasendo.verify(message, pempubkey, hex(ecdsa_sig.r)[2:],
valPem = Nakasendo.verify(message, pempubkey, sigRStr, sigSStr) if (valPem == True): print( 'Calculated signature verified with calculated PEM & call to verify' ) else: print('Failed to verify with calculated PEM') val = Nakasendo.verifyPubKeyHex(message, pubKeyStr, sigRStr, sigSStr) if (val == True): print('Calculated signature verified via Nakasendo verify') else: print('Failed to verify with Nakasendo verify') hmMessage = Nakasendo.hash256( message=message, modulo= "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141") #create an ecdsa public key from the program parameter ecdsaPubKeyPoint = ecdsa.ellipticcurve.Point( ecdsa.SECP256k1.generator.curve(), int(coords[0], 16), int(coords[1], 16)) pubkeytestB = ecdsa.ecdsa.Public_key(G, ecdsaPubKeyPoint) thresHoldSigLocalCal = ecdsa.ecdsa.Signature(int(sigRStr, 16), int(sigSStr, 16)) if (pubkeytestB.verifies(int(hmMessage.value, 16), thresHoldSigLocalCal)): print( "SUCESS WITH TS via ECDSA library .. point constructed from public key parameter" ) else: