no longer use b64 transport (was a crutch/temp fix), mail work, dont name all files 'txt'

This commit is contained in:
Kevin Froman 2019-02-06 19:03:31 -06:00
parent 06048fe442
commit 0e3fb41912
9 changed files with 45 additions and 18 deletions

View File

@ -138,11 +138,13 @@ class PublicAPI:
if data not in self.hideBlocks: if data not in self.hideBlocks:
if data in clientAPI._core.getBlockList(): if data in clientAPI._core.getBlockList():
block = clientAPI.getBlockData(data, raw=True).encode() block = clientAPI.getBlockData(data, raw=True).encode()
resp = base64.b64encode(block).decode() block = clientAPI._core._utils.strToBytes(block)
resp = block
#resp = base64.b64encode(block).decode()
if len(resp) == 0: if len(resp) == 0:
abort(404) abort(404)
resp = "" resp = ""
return Response(resp) return Response(resp, mimetype='application/octet-stream')
@app.route('/www/<path:path>') @app.route('/www/<path:path>')
def wwwPublic(path): def wwwPublic(path):
@ -500,7 +502,7 @@ class API:
else: else:
validSig = False validSig = False
signer = self._core._utils.bytesToStr(bl.signer) signer = self._core._utils.bytesToStr(bl.signer)
print(signer, bl.isSigned(), self._core._utils.validatePubKey(signer), bl.isSigner(signer)) #print(signer, bl.isSigned(), self._core._utils.validatePubKey(signer), bl.isSigner(signer))
if bl.isSigned() and self._core._utils.validatePubKey(signer) and bl.isSigner(signer): if bl.isSigned() and self._core._utils.validatePubKey(signer) and bl.isSigner(signer):
validSig = True validSig = True
bl.bheader['validSig'] = validSig bl.bheader['validSig'] = validSig

View File

@ -222,7 +222,8 @@ class OnionrCommunicatorDaemon:
self.blockQueue[i] = [peer] # add blocks to download queue self.blockQueue[i] = [peer] # add blocks to download queue
else: else:
if peer not in self.blockQueue[i]: if peer not in self.blockQueue[i]:
self.blockQueue[i].append(peer) if len(self.blockQueue[i]) < 10:
self.blockQueue[i].append(peer)
self.decrementThreadCount('lookupBlocks') self.decrementThreadCount('lookupBlocks')
return return
@ -240,10 +241,10 @@ class OnionrCommunicatorDaemon:
break break
# Do not download blocks being downloaded or that are already saved (edge cases) # Do not download blocks being downloaded or that are already saved (edge cases)
if blockHash in self.currentDownloading: if blockHash in self.currentDownloading:
logger.debug('Already downloading block %s...' % blockHash) #logger.debug('Already downloading block %s...' % blockHash)
continue continue
if blockHash in self._core.getBlockList(): if blockHash in self._core.getBlockList():
logger.debug('Block %s is already saved.' % (blockHash,)) #logger.debug('Block %s is already saved.' % (blockHash,))
try: try:
del self.blockQueue[blockHash] del self.blockQueue[blockHash]
except KeyError: except KeyError:

View File

@ -40,7 +40,7 @@ try:
except ImportError: except ImportError:
raise Exception("You need the PySocks module (for use with socks5 proxy to use Tor)") raise Exception("You need the PySocks module (for use with socks5 proxy to use Tor)")
ONIONR_TAGLINE = 'Anonymous P2P Platform - GPLv3 - https://Onionr.VoidNet.Tech' ONIONR_TAGLINE = 'Anonymous P2P Platform - GPLv3 - https://Onionr.net'
ONIONR_VERSION = '0.5.0' # for debugging and stuff ONIONR_VERSION = '0.5.0' # for debugging and stuff
ONIONR_VERSION_TUPLE = tuple(ONIONR_VERSION.split('.')) # (MAJOR, MINOR, VERSION) ONIONR_VERSION_TUPLE = tuple(ONIONR_VERSION.split('.')) # (MAJOR, MINOR, VERSION)
API_VERSION = '5' # increments of 1; only change when something fundemental about how the API works changes. This way other nodes know how to communicate without learning too much information about you. API_VERSION = '5' # increments of 1; only change when something fundemental about how the API works changes. This way other nodes know how to communicate without learning too much information about you.
@ -986,7 +986,7 @@ class Onionr:
''' '''
self.addFile(singleBlock=True, blockType='html') self.addFile(singleBlock=True, blockType='html')
def addFile(self, singleBlock=False, blockType='txt'): def addFile(self, singleBlock=False, blockType='bin'):
''' '''
Adds a file to the onionr network Adds a file to the onionr network
''' '''

View File

@ -94,7 +94,8 @@ class Block:
logger.error(str(e)) logger.error(str(e))
pass pass
except nacl.exceptions.CryptoError: except nacl.exceptions.CryptoError:
logger.debug('Could not decrypt block. Either invalid key or corrupted data') pass
#logger.debug('Could not decrypt block. Either invalid key or corrupted data')
else: else:
retData = True retData = True
self.decrypted = True self.decrypted = True

View File

@ -309,7 +309,8 @@ class OnionrUtils:
else: else:
self._core.updateBlockInfo(blockHash, 'expire', expireTime) self._core.updateBlockInfo(blockHash, 'expire', expireTime)
else: else:
logger.debug('Not processing metadata on encrypted block we cannot decrypt.') pass
#logger.debug('Not processing metadata on encrypted block we cannot decrypt.')
def escapeAnsi(self, line): def escapeAnsi(self, line):
''' '''

View File

@ -1 +0,0 @@
i7dgbnouzyl7gv75b3eaqfz7x236abkn6nkjdpun273sydkbwcoidrid.onion

View File

@ -28,7 +28,7 @@
<div class='overlayContent'> <div class='overlayContent'>
<span class='closeOverlay' overlay='messageDisplay'></span> <span class='closeOverlay' overlay='messageDisplay'></span>
<div> <div>
From: <input type='text' id='fromUser' readonly> From: <input type='text' id='fromUser' readonly> Signature: <span id='sigValid'></span>
</div> </div>
<div id='signatureValidity'></div> <div id='signatureValidity'></div>
<div id='threadDisplay'> <div id='threadDisplay'>

View File

@ -2,7 +2,7 @@
padding-top: 1em; padding-top: 1em;
} }
.threads div span{ .threads div span{
padding-left: 0.1em; padding-left: 0.2em;
padding-right: 0.2em; padding-right: 0.2em;
} }
@ -52,4 +52,16 @@ input{
min-height: 100%; min-height: 100%;
padding: 1em; padding: 1em;
margin: 1em; margin: 1em;
} }
.danger{
color: red;
}
.warn{
color: orange;
}
.good{
color: greenyellow;
}

View File

@ -24,11 +24,23 @@ tabBtns = document.getElementById('tabBtns')
threadContent = {} threadContent = {}
myPub = httpGet('/getActivePubkey') myPub = httpGet('/getActivePubkey')
function openThread(bHash, sender, date){ function openThread(bHash, sender, date, sigBool){
var messageDisplay = document.getElementById('threadDisplay') var messageDisplay = document.getElementById('threadDisplay')
blockContent = httpGet('/getblockbody/' + bHash) var blockContent = httpGet('/getblockbody/' + bHash)
document.getElementById('fromUser').value = sender document.getElementById('fromUser').value = sender
messageDisplay.innerText = blockContent messageDisplay.innerText = blockContent
var sigEl = document.getElementById('sigValid')
var sigMsg = 'signature'
if (sigBool){
sigMsg = 'Good ' + sigMsg
sigEl.classList.remove('danger')
}
else{
sigMsg = 'Bad/no ' + sigMsg + ' (message could be fake)'
sigEl.classList.add('danger')
}
sigEl.innerText = sigMsg
overlay('messageDisplay') overlay('messageDisplay')
} }
@ -68,7 +80,6 @@ function loadInboxEntrys(bHash){
var metadata = resp['metadata'] var metadata = resp['metadata']
humanDate.setUTCSeconds(resp['meta']['time']) humanDate.setUTCSeconds(resp['meta']['time'])
senderInput.value = httpGet('/getHumanReadable/' + resp['meta']['signer']) senderInput.value = httpGet('/getHumanReadable/' + resp['meta']['signer'])
alert(resp['meta']['validSig'])
if (resp['meta']['validSig']){ if (resp['meta']['validSig']){
validSig.innerText = 'Signature Validity: Good' validSig.innerText = 'Signature Validity: Good'
} }
@ -99,7 +110,7 @@ function loadInboxEntrys(bHash){
entry.classList.add('threadEntry') entry.classList.add('threadEntry')
entry.onclick = function(){ entry.onclick = function(){
openThread(entry.getAttribute('hash'), senderInput.value, dateStr.innerText) openThread(entry.getAttribute('hash'), senderInput.value, dateStr.innerText, resp['meta']['validSig'])
} }
}.bind(bHash)) }.bind(bHash))