better support human public keys, do not use forward secrecy when not signing
This commit is contained in:
parent
30604fa23c
commit
3cf5f4c04d
@ -748,6 +748,7 @@ class Core:
|
|||||||
data = data.decode()
|
data = data.decode()
|
||||||
data = str(data)
|
data = str(data)
|
||||||
plaintext = data
|
plaintext = data
|
||||||
|
plaintextMeta = {}
|
||||||
|
|
||||||
# Convert asym peer human readable key to base32 if set
|
# Convert asym peer human readable key to base32 if set
|
||||||
if ' ' in asymPeer.strip():
|
if ' ' in asymPeer.strip():
|
||||||
@ -774,7 +775,7 @@ class Core:
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
if encryptType == 'asym':
|
if encryptType == 'asym':
|
||||||
if not disableForward and asymPeer != self._crypto.pubKey:
|
if not disableForward and sign and asymPeer != self._crypto.pubKey:
|
||||||
try:
|
try:
|
||||||
forwardEncrypted = onionrusers.OnionrUser(self, asymPeer).forwardEncrypt(data)
|
forwardEncrypted = onionrusers.OnionrUser(self, asymPeer).forwardEncrypt(data)
|
||||||
data = forwardEncrypted[0]
|
data = forwardEncrypted[0]
|
||||||
@ -786,6 +787,7 @@ class Core:
|
|||||||
#fsKey = onionrusers.OnionrUser(self, asymPeer).getGeneratedForwardKeys().reverse()
|
#fsKey = onionrusers.OnionrUser(self, asymPeer).getGeneratedForwardKeys().reverse()
|
||||||
meta['newFSKey'] = fsKey
|
meta['newFSKey'] = fsKey
|
||||||
jsonMeta = json.dumps(meta)
|
jsonMeta = json.dumps(meta)
|
||||||
|
plaintextMeta = jsonMeta
|
||||||
if sign:
|
if sign:
|
||||||
signature = self._crypto.edSign(jsonMeta.encode() + data, key=self._crypto.privKey, encodeResult=True)
|
signature = self._crypto.edSign(jsonMeta.encode() + data, key=self._crypto.privKey, encodeResult=True)
|
||||||
signer = self._crypto.pubKey
|
signer = self._crypto.pubKey
|
||||||
@ -845,7 +847,7 @@ class Core:
|
|||||||
self.daemonQueueAdd('uploadBlock', retData)
|
self.daemonQueueAdd('uploadBlock', retData)
|
||||||
|
|
||||||
if retData != False:
|
if retData != False:
|
||||||
events.event('insertblock', {'content': plaintext, 'meta': jsonMeta, 'hash': retData, 'peer': self._utils.bytesToStr(asymPeer)}, onionr = self.onionrInst, threaded = False)
|
events.event('insertblock', {'content': plaintext, 'meta': plaintextMeta, 'hash': retData, 'peer': self._utils.bytesToStr(asymPeer)}, onionr = self.onionrInst, threaded = True)
|
||||||
return retData
|
return retData
|
||||||
|
|
||||||
def introduceNode(self):
|
def introduceNode(self):
|
||||||
|
@ -40,6 +40,9 @@ class OnionrUser:
|
|||||||
Takes an instance of onionr core, a base32 encoded ed25519 public key, and a bool saveUser
|
Takes an instance of onionr core, a base32 encoded ed25519 public key, and a bool saveUser
|
||||||
saveUser determines if we should add a user to our peer database or not.
|
saveUser determines if we should add a user to our peer database or not.
|
||||||
'''
|
'''
|
||||||
|
if ' ' in coreInst._utils.bytesToStr(publicKey).strip():
|
||||||
|
publicKey = coreInst._utils.convertHumanReadableID(publicKey)
|
||||||
|
|
||||||
self.trust = 0
|
self.trust = 0
|
||||||
self._core = coreInst
|
self._core = coreInst
|
||||||
self.publicKey = publicKey
|
self.publicKey = publicKey
|
||||||
|
@ -290,10 +290,8 @@ class OnionrMail:
|
|||||||
return
|
return
|
||||||
|
|
||||||
def on_insertblock(api, data={}):
|
def on_insertblock(api, data={}):
|
||||||
print(data)
|
|
||||||
sentboxTools = sentboxdb.SentBox(api.get_core())
|
sentboxTools = sentboxdb.SentBox(api.get_core())
|
||||||
meta = json.dumps(data['meta'])
|
meta = json.dumps(data['meta'])
|
||||||
print('on_insertblock', data)
|
|
||||||
sentboxTools.addToSent(data['hash'], data['peer'], data['content'])
|
sentboxTools.addToSent(data['hash'], data['peer'], data['content'])
|
||||||
|
|
||||||
def on_pluginrequest(api, data=None):
|
def on_pluginrequest(api, data=None):
|
||||||
|
@ -48,6 +48,7 @@
|
|||||||
<form method='post' action='/apipoints/mail/send' id='sendForm' enctype="application/x-www-form-urlencoded">
|
<form method='post' action='/apipoints/mail/send' id='sendForm' enctype="application/x-www-form-urlencoded">
|
||||||
<span class='closeOverlay' overlay='sendMessage'></span>
|
<span class='closeOverlay' overlay='sendMessage'></span>
|
||||||
To: <input id='draftID' type='text' name='to' placeholder='pubkey' required>
|
To: <input id='draftID' type='text' name='to' placeholder='pubkey' required>
|
||||||
|
Subject: <input name='subject' id='draftSubject' maxlength=25 type='text' placeholder='message subject'>
|
||||||
<textarea name='message' placeholder='type your message...' id='draftText' required></textarea>
|
<textarea name='message' placeholder='type your message...' id='draftText' required></textarea>
|
||||||
<input type='submit' value='Send' class='successBtn'>
|
<input type='submit' value='Send' class='successBtn'>
|
||||||
</form>
|
</form>
|
||||||
|
@ -32,6 +32,7 @@ function httpGet(theUrl) {
|
|||||||
function overlay(overlayID) {
|
function overlay(overlayID) {
|
||||||
el = document.getElementById(overlayID)
|
el = document.getElementById(overlayID)
|
||||||
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible"
|
el.style.visibility = (el.style.visibility == "visible") ? "hidden" : "visible"
|
||||||
|
scroll(0,0)
|
||||||
}
|
}
|
||||||
|
|
||||||
var passLinks = document.getElementsByClassName("idLink")
|
var passLinks = document.getElementsByClassName("idLink")
|
||||||
|
Loading…
Reference in New Issue
Block a user