mirror of https://gitlab.com/bashrc2/epicyon
Support for enigma-reloaded public key
parent
10a215c71c
commit
aa709f7e24
17
daemon.py
17
daemon.py
|
@ -29,6 +29,8 @@ from webfinger import webfingerUpdate
|
|||
from mastoapiv1 import mastoApiV1Response
|
||||
from metadata import metaDataNodeInfo
|
||||
from metadata import metadataCustomEmoji
|
||||
from enigma import getEnigmaPubKey
|
||||
from enigma import setEnigmaPubKey
|
||||
from pgp import getEmailAddress
|
||||
from pgp import setEmailAddress
|
||||
from pgp import getPGPpubKey
|
||||
|
@ -5379,6 +5381,18 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
setCwtchAddress(actorJson, '')
|
||||
actorChanged = True
|
||||
|
||||
# change Enigma public key
|
||||
currentEnigmaPubKey = getEnigmaPubKey(actorJson)
|
||||
if fields.get('enigmapubkey'):
|
||||
if fields['enigmapubkey'] != currentEnigmaPubKey:
|
||||
setEnigmaPubKey(actorJson,
|
||||
fields['enigmapubkey'])
|
||||
actorChanged = True
|
||||
else:
|
||||
if currentEnigmaPubKey:
|
||||
setEnigmaPubKey(actorJson, '')
|
||||
actorChanged = True
|
||||
|
||||
# change PGP public key
|
||||
currentPGPpubKey = getPGPpubKey(actorJson)
|
||||
if fields.get('pgp'):
|
||||
|
@ -7039,6 +7053,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
isGroup = False
|
||||
donateUrl = None
|
||||
websiteUrl = None
|
||||
EnigmaPubKey = None
|
||||
PGPpubKey = None
|
||||
PGPfingerprint = None
|
||||
xmppAddress = None
|
||||
|
@ -7076,6 +7091,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
jamiAddress = getJamiAddress(actorJson)
|
||||
cwtchAddress = getCwtchAddress(actorJson)
|
||||
emailAddress = getEmailAddress(actorJson)
|
||||
EnigmaPubKey = getEnigmaPubKey(actorJson)
|
||||
PGPpubKey = getPGPpubKey(actorJson)
|
||||
PGPfingerprint = getPGPfingerprint(actorJson)
|
||||
if actorJson.get('alsoKnownAs'):
|
||||
|
@ -7110,6 +7126,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
ssbAddress, blogAddress,
|
||||
toxAddress, briarAddress,
|
||||
jamiAddress, cwtchAddress,
|
||||
EnigmaPubKey,
|
||||
PGPpubKey, PGPfingerprint,
|
||||
emailAddress,
|
||||
self.server.dormantMonths,
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
__filename__ = "enigma.py"
|
||||
__author__ = "Bob Mottram"
|
||||
__license__ = "AGPL3+"
|
||||
__version__ = "1.2.0"
|
||||
__maintainer__ = "Bob Mottram"
|
||||
__email__ = "bob@libreserver.org"
|
||||
__status__ = "Production"
|
||||
__module_group__ = "Profile Metadata"
|
||||
|
||||
|
||||
def getEnigmaPubKey(actorJson: {}) -> str:
|
||||
"""Returns Enigma public key for the given actor
|
||||
"""
|
||||
if not actorJson.get('attachment'):
|
||||
return ''
|
||||
for propertyValue in actorJson['attachment']:
|
||||
if not propertyValue.get('name'):
|
||||
continue
|
||||
if not propertyValue['name'].lower().startswith('enigma'):
|
||||
continue
|
||||
if not propertyValue.get('type'):
|
||||
continue
|
||||
if not propertyValue.get('value'):
|
||||
continue
|
||||
if propertyValue['type'] != 'PropertyValue':
|
||||
continue
|
||||
return propertyValue['value']
|
||||
return ''
|
||||
|
||||
|
||||
def setEnigmaPubKey(actorJson: {}, enigmaPubKey: str) -> None:
|
||||
"""Sets a Enigma public key for the given actor
|
||||
"""
|
||||
removeKey = False
|
||||
if not enigmaPubKey:
|
||||
removeKey = True
|
||||
|
||||
if not actorJson.get('attachment'):
|
||||
actorJson['attachment'] = []
|
||||
|
||||
# remove any existing value
|
||||
propertyFound = None
|
||||
for propertyValue in actorJson['attachment']:
|
||||
if not propertyValue.get('name'):
|
||||
continue
|
||||
if not propertyValue.get('type'):
|
||||
continue
|
||||
if not propertyValue['name'].lower().startswith('enigma'):
|
||||
continue
|
||||
propertyFound = propertyValue
|
||||
break
|
||||
if propertyFound:
|
||||
actorJson['attachment'].remove(propertyValue)
|
||||
if removeKey:
|
||||
return
|
||||
|
||||
for propertyValue in actorJson['attachment']:
|
||||
if not propertyValue.get('name'):
|
||||
continue
|
||||
if not propertyValue.get('type'):
|
||||
continue
|
||||
if not propertyValue['name'].lower().startswith('enigma'):
|
||||
continue
|
||||
if propertyValue['type'] != 'PropertyValue':
|
||||
continue
|
||||
propertyValue['value'] = enigmaPubKey
|
||||
return
|
||||
|
||||
newenigmaPubKey = {
|
||||
"name": "Enigma",
|
||||
"type": "PropertyValue",
|
||||
"value": enigmaPubKey
|
||||
}
|
||||
actorJson['attachment'].append(newenigmaPubKey)
|
|
@ -49,6 +49,7 @@ def htmlPersonOptions(defaultTimeline: str,
|
|||
briarAddress: str,
|
||||
jamiAddress: str,
|
||||
cwtchAddress: str,
|
||||
EnigmaPubKey: str,
|
||||
PGPpubKey: str,
|
||||
PGPfingerprint: str,
|
||||
emailAddress: str,
|
||||
|
@ -226,6 +227,9 @@ def htmlPersonOptions(defaultTimeline: str,
|
|||
if cwtchAddress:
|
||||
optionsStr += \
|
||||
'<p class="imText">Cwtch: ' + removeHtml(cwtchAddress) + '</p>\n'
|
||||
if EnigmaPubKey:
|
||||
optionsStr += \
|
||||
'<p class="imText">Enigma: ' + removeHtml(EnigmaPubKey) + '</p>\n'
|
||||
if PGPfingerprint:
|
||||
optionsStr += '<p class="pgp">PGP: ' + \
|
||||
removeHtml(PGPfingerprint).replace('\n', '<br>') + '</p>\n'
|
||||
|
|
|
@ -47,6 +47,7 @@ from ssb import getSSBAddress
|
|||
from pgp import getEmailAddress
|
||||
from pgp import getPGPfingerprint
|
||||
from pgp import getPGPpubKey
|
||||
from enigma import getEnigmaPubKey
|
||||
from tox import getToxAddress
|
||||
from briar import getBriarAddress
|
||||
from jami import getJamiAddress
|
||||
|
@ -631,6 +632,7 @@ def htmlProfile(signingPrivateKeyPem: str,
|
|||
donateUrl = getDonationUrl(profileJson)
|
||||
websiteUrl = getWebsite(profileJson, translate)
|
||||
blogAddress = getBlogAddress(profileJson)
|
||||
EnigmaPubKey = getEnigmaPubKey(profileJson)
|
||||
PGPpubKey = getPGPpubKey(profileJson)
|
||||
PGPfingerprint = getPGPfingerprint(profileJson)
|
||||
emailAddress = getEmailAddress(profileJson)
|
||||
|
@ -643,7 +645,7 @@ def htmlProfile(signingPrivateKeyPem: str,
|
|||
cwtchAddress = getCwtchAddress(profileJson)
|
||||
if donateUrl or websiteUrl or xmppAddress or matrixAddress or \
|
||||
ssbAddress or toxAddress or briarAddress or \
|
||||
jamiAddress or cwtchAddress or PGPpubKey or \
|
||||
jamiAddress or cwtchAddress or PGPpubKey or EnigmaPubKey or \
|
||||
PGPfingerprint or emailAddress:
|
||||
donateSection = '<div class="container">\n'
|
||||
donateSection += ' <center>\n'
|
||||
|
@ -696,6 +698,10 @@ def htmlProfile(signingPrivateKeyPem: str,
|
|||
donateSection += \
|
||||
'<p>Cwtch: <label class="toxaddr">' + \
|
||||
cwtchAddress + '</label></p>\n'
|
||||
if EnigmaPubKey:
|
||||
donateSection += \
|
||||
'<p>Enigma: <label class="toxaddr">' + \
|
||||
EnigmaPubKey + '</label></p>\n'
|
||||
if PGPfingerprint:
|
||||
donateSection += \
|
||||
'<p class="pgp">PGP: ' + \
|
||||
|
@ -1853,6 +1859,7 @@ def _htmlEditProfileContactInfo(nickname: str,
|
|||
cwtchAddress: str,
|
||||
PGPfingerprint: str,
|
||||
PGPpubKey: str,
|
||||
EnigmaPubKey: str,
|
||||
translate: {}) -> str:
|
||||
"""Contact Information section of edit profile screen
|
||||
"""
|
||||
|
@ -1869,6 +1876,10 @@ def _htmlEditProfileContactInfo(nickname: str,
|
|||
editProfileForm += editTextField('Briar', 'briarAddress', briarAddress)
|
||||
editProfileForm += editTextField('Jami', 'jamiAddress', jamiAddress)
|
||||
editProfileForm += editTextField('Cwtch', 'cwtchAddress', cwtchAddress)
|
||||
enigmaUrl = 'https://github.com/enigma-reloaded/enigma-reloaded'
|
||||
editProfileForm += \
|
||||
editTextField('<a href="' + enigmaUrl + '">Enigma</a>',
|
||||
'enigmapubkey', EnigmaPubKey)
|
||||
editProfileForm += editTextField(translate['PGP Fingerprint'],
|
||||
'openpgp', PGPfingerprint)
|
||||
editProfileForm += \
|
||||
|
@ -2079,7 +2090,8 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
|
|||
notifyLikes = notifyReactions = ''
|
||||
hideLikeButton = hideReactionButton = mediaInstanceStr = ''
|
||||
blogsInstanceStr = newsInstanceStr = movedTo = twitterStr = ''
|
||||
bioStr = donateUrl = websiteUrl = emailAddress = PGPpubKey = ''
|
||||
bioStr = donateUrl = websiteUrl = emailAddress = ''
|
||||
PGPpubKey = EnigmaPubKey = ''
|
||||
PGPfingerprint = xmppAddress = matrixAddress = ''
|
||||
ssbAddress = blogAddress = toxAddress = jamiAddress = ''
|
||||
cwtchAddress = briarAddress = manuallyApprovesFollowers = ''
|
||||
|
@ -2099,6 +2111,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
|
|||
jamiAddress = getJamiAddress(actorJson)
|
||||
cwtchAddress = getCwtchAddress(actorJson)
|
||||
emailAddress = getEmailAddress(actorJson)
|
||||
EnigmaPubKey = getEnigmaPubKey(actorJson)
|
||||
PGPpubKey = getPGPpubKey(actorJson)
|
||||
PGPfingerprint = getPGPfingerprint(actorJson)
|
||||
if actorJson.get('name'):
|
||||
|
@ -2240,7 +2253,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
|
|||
ssbAddress, toxAddress,
|
||||
briarAddress, jamiAddress,
|
||||
cwtchAddress, PGPfingerprint,
|
||||
PGPpubKey, translate)
|
||||
PGPpubKey, EnigmaPubKey, translate)
|
||||
|
||||
# Customize images and banners
|
||||
editProfileForm += _htmlEditProfileBackground(newsInstance, translate)
|
||||
|
|
Loading…
Reference in New Issue