do not base64encode signatures in requests
This commit is contained in:
@@ -488,7 +488,7 @@ class EC_KEY(object):
|
||||
def sign_message(self, message, compressed, address):
|
||||
signature = self.sign(Hash(msg_magic(message)))
|
||||
for i in range(4):
|
||||
sig = base64.b64encode(chr(27 + i + (4 if compressed else 0)) + signature)
|
||||
sig = chr(27 + i + (4 if compressed else 0)) + signature
|
||||
try:
|
||||
self.verify_message(address, sig, message)
|
||||
return sig
|
||||
@@ -498,8 +498,7 @@ class EC_KEY(object):
|
||||
raise Exception("error: cannot sign message")
|
||||
|
||||
@classmethod
|
||||
def verify_message(self, address, signature, message):
|
||||
sig = base64.b64decode(signature)
|
||||
def verify_message(self, address, sig, message):
|
||||
if len(sig) != 65:
|
||||
raise Exception("Wrong encoding")
|
||||
nV = ord(sig[0])
|
||||
|
||||
@@ -24,6 +24,7 @@ import copy
|
||||
import argparse
|
||||
import json
|
||||
import ast
|
||||
import base64
|
||||
from functools import wraps
|
||||
from decimal import Decimal
|
||||
|
||||
@@ -361,12 +362,14 @@ class Commands:
|
||||
def signmessage(self, address, message):
|
||||
"""Sign a message with a key. Use quotes if your message contains
|
||||
whitespaces"""
|
||||
return self.wallet.sign_message(address, message, self.password)
|
||||
sig = self.wallet.sign_message(address, message, self.password)
|
||||
return base64.b64encode(sig)
|
||||
|
||||
@command('')
|
||||
def verifymessage(self, address, signature, message):
|
||||
"""Verify a signature."""
|
||||
return bitcoin.verify_message(address, signature, message)
|
||||
sig = base64.b64decode(signature)
|
||||
return bitcoin.verify_message(address, sig, message)
|
||||
|
||||
def _mktx(self, outputs, fee, change_addr, domain, nocheck, unsigned):
|
||||
self.nocheck = nocheck
|
||||
|
||||
Reference in New Issue
Block a user