From e25f08b9edb2e2b116e06eb564f9fa4da185014b Mon Sep 17 00:00:00 2001 From: Jonathan Warren Date: Fri, 7 Jun 2013 18:58:28 -0400 Subject: [PATCH] Correct ECDSA verify --- Makefile | 2 +- debian.sh | 2 +- src/bitmessagemain.py | 9 +++++---- src/shared.py | 2 +- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index e84d1bc4..5a8acd18 100755 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ APP=pybitmessage -VERSION=0.3.3 +VERSION=0.3.3-2 DEST_SHARE=$(DESTDIR)/usr/share DEST_APP=$(DEST_SHARE)/$(APP) diff --git a/debian.sh b/debian.sh index a26398e3..42817522 100755 --- a/debian.sh +++ b/debian.sh @@ -8,7 +8,7 @@ APP=pybitmessage PREV_VERSION=0.3.2 -VERSION=0.3.3 +VERSION=0.3.3-2 ARCH_TYPE=all #update version numbers automatically - so you don't have to diff --git a/src/bitmessagemain.py b/src/bitmessagemain.py index 4f612904..e618b4bd 100755 --- a/src/bitmessagemain.py +++ b/src/bitmessagemain.py @@ -1343,10 +1343,12 @@ class receiveDataThread(threading.Thread): readPosition += specifiedNonceTrialsPerByteLength specifiedPayloadLengthExtraBytes, specifiedPayloadLengthExtraBytesLength = decodeVarint(data[readPosition:readPosition+10]) readPosition += specifiedPayloadLengthExtraBytesLength + endOfSignedDataPosition = readPosition signatureLength, signatureLengthLength = decodeVarint(data[readPosition:readPosition+10]) - signature = data[readPosition:readPosition+signatureLengthLength] + readPosition += signatureLengthLength + signature = data[readPosition:readPosition+signatureLength] try: - if not highlevelcrypto.verify(data[8:readPosition],signature,publicSigningKey.encode('hex')): + if not highlevelcrypto.verify(data[8:endOfSignedDataPosition],signature,publicSigningKey.encode('hex')): print 'ECDSA verify failed (within processpubkey)' return print 'ECDSA verify passed (within processpubkey)' @@ -2918,8 +2920,7 @@ class singleWorker(threading.Thread): dataToEncrypt += '\x02' #message encoding type dataToEncrypt += encodeVarint(len('Subject:' + subject + '\n' + 'Body:' + body)) #Type 2 is simple UTF-8 message encoding. dataToEncrypt += 'Subject:' + subject + '\n' + 'Body:' + body - - signature = highlevelcrypto.sign(payload,privSigningKeyHex) + signature = highlevelcrypto.sign(dataToEncrypt,privSigningKeyHex) dataToEncrypt += encodeVarint(len(signature)) dataToEncrypt += signature privEncryptionKey = hashlib.sha512(encodeVarint(addressVersionNumber)+encodeVarint(streamNumber)+ripe).digest()[:32] diff --git a/src/shared.py b/src/shared.py index acc8b3a2..fbf48b01 100644 --- a/src/shared.py +++ b/src/shared.py @@ -1,4 +1,4 @@ -softwareVersion = '0.3.3' +softwareVersion = '0.3.3-2' import threading import sys