From f4cc1a6f8f195112354a8c29bebdbf9a853fa530 Mon Sep 17 00:00:00 2001 From: Kevin Froman Date: Tue, 28 Aug 2018 22:02:32 -0500 Subject: [PATCH] updated dockerfile, fixed bug in showing name in mail --- Dockerfile | 2 +- onionr/onionrusers.py | 9 ++++++--- onionr/onionrutils.py | 10 ++++++---- onionr/static-data/default-plugins/cliui/main.py | 2 +- onionr/static-data/default-plugins/pms/main.py | 11 ++++++++--- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index c83de87d..e6132726 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ FROM ubuntu:bionic ENV HOME /root #Install needed packages -RUN apt update && apt install -y python3 python3-dev python3-pip tor locales nano +RUN apt update && apt install -y python3 python3-dev python3-pip tor locales nano sqlite3 RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen && \ locale-gen diff --git a/onionr/onionrusers.py b/onionr/onionrusers.py index 03807ea9..208419aa 100644 --- a/onionr/onionrusers.py +++ b/onionr/onionrusers.py @@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . ''' -import onionrblockapi, logger +import onionrblockapi, logger, onionrexceptions class OnionrUser: def __init__(self, coreInst, publicKey): self.trust = 0 @@ -69,5 +69,8 @@ class OnionrUser: if block.verifySig(): newName = block.getMetadata('name') if newName.isalnum(): - logger.info('%s is now using the name %s.' % (self.publicKey, newName)) - self._core.setPeerInfo(self.publicKey, 'name', newName) \ No newline at end of file + logger.info('%s is now using the name %s.' % (self.publicKey, self._core._utils.escapeAnsi(newName))) + self._core.setPeerInfo(self.publicKey, 'name', newName) + print("DEBUG PLS") + else: + raise onionrexceptions.InvalidPubkey \ No newline at end of file diff --git a/onionr/onionrutils.py b/onionr/onionrutils.py index 075077e5..29d3f350 100644 --- a/onionr/onionrutils.py +++ b/onionr/onionrutils.py @@ -95,7 +95,10 @@ class OnionrUtils: except IndexError: logger.warn('No pow token') continue - value = base64.b64decode(key[1]) + try: + value = base64.b64decode(key[1]) + except binascii.Error: + continue hashedKey = self._core._crypto.blake2bHash(key[0]) powHash = self._core._crypto.blake2bHash(value + hashedKey) try: @@ -264,8 +267,7 @@ class OnionrUtils: if myBlock.isEncrypted: myBlock.decrypt() blockType = myBlock.getMetadata('type') # we would use myBlock.getType() here, but it is bugged with encrypted blocks - signer = myBlock.signer - + signer = self.bytesToStr(myBlock.signer) try: if len(blockType) <= 10: self._core.updateBlockInfo(blockHash, 'dataType', blockType) @@ -282,7 +284,7 @@ class OnionrUtils: pass else: self._core.setPeerInfo(signer, 'name', peerName) - logger.info('%s is now using the name %s.' % (signer, peerName)) + logger.info('%s is now using the name %s.' % (signer, self.escapeAnsi(peerName))) except TypeError: pass diff --git a/onionr/static-data/default-plugins/cliui/main.py b/onionr/static-data/default-plugins/cliui/main.py index 1d0db8b0..4d4adb3d 100644 --- a/onionr/static-data/default-plugins/cliui/main.py +++ b/onionr/static-data/default-plugins/cliui/main.py @@ -31,7 +31,7 @@ class OnionrCLIUI: self.myCore = apiInst.get_core() return def start(self): - name = input("Enter your name") + name = input("Enter your name: ") self.myCore.insertBlock("userInfo-" + str(uuid.uuid1()), sign=True, header='userInfo', meta={'name': name}) return diff --git a/onionr/static-data/default-plugins/pms/main.py b/onionr/static-data/default-plugins/pms/main.py index dc57a82c..46a614b7 100644 --- a/onionr/static-data/default-plugins/pms/main.py +++ b/onionr/static-data/default-plugins/pms/main.py @@ -82,9 +82,14 @@ class OnionrMail: blockCount += 1 pmBlockMap[blockCount] = blockHash - block = Block(blockHash, core=self.myCore) - senderKey = block.getMetadata('signer') - senderDisplay = onionrusers.OnionrUser(self.myCore, senderKey) + block = pmBlocks[blockHash] + senderKey = block.signer + try: + senderKey = senderKey.decode() + except AttributeError: + pass + print("DEBUG:", senderKey) + senderDisplay = onionrusers.OnionrUser(self.myCore, senderKey).getName() if senderDisplay == 'anonymous': senderDisplay = senderKey