Compare commits
6 Commits
wot
...
username-s
Author | SHA1 | Date | |
---|---|---|---|
|
4b7b408d60 | ||
|
cb17270512 | ||
|
74db4d2d9d | ||
|
f74fd0d03d | ||
|
df292afe69 | ||
|
d247c1eee8 |
@ -22,13 +22,13 @@ The following exploits are of particular interest:
|
|||||||
* Cryptography/protocol issues
|
* Cryptography/protocol issues
|
||||||
* Denying nodes access to the network by segmenting them out with Sybil nodes
|
* Denying nodes access to the network by segmenting them out with Sybil nodes
|
||||||
|
|
||||||
We do not consider non-network based same-machine attacks to be very significant, but we are still willing to listen.
|
We do not consider OS user-level side channel attacks on a shared machine to be very significant, but we are still willing to listen.
|
||||||
|
|
||||||
# Rewards
|
# Rewards
|
||||||
|
|
||||||
Onionr is a student-owned hobby project, resources are not available for large rewards.
|
Onionr is a hobbyist project, resources are not available for monetary rewards.
|
||||||
|
|
||||||
Stickers or other small rewards are available. We reserve the right to refuse rewards for any reason.
|
Shirts/stickers or other small rewards are available. We reserve the right to refuse rewards for any reason.
|
||||||
|
|
||||||
Public recognition can be given upon request.
|
Public recognition can be given upon request.
|
||||||
|
|
||||||
@ -36,4 +36,4 @@ Public recognition can be given upon request.
|
|||||||
|
|
||||||
Email: beardog [ at ] mailbox.org
|
Email: beardog [ at ] mailbox.org
|
||||||
|
|
||||||
PGP (optional): F61A 4DBB 0B3D F172 1F65 0EDF 0D41 4D0F E405 B63B
|
Keybase: beardog
|
||||||
|
@ -4,10 +4,12 @@ Setup config from onboarding choices
|
|||||||
"""
|
"""
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Union
|
from typing import Union
|
||||||
|
from threading import Thread
|
||||||
|
from time import sleep
|
||||||
|
|
||||||
from filepaths import onboarding_mark_file
|
|
||||||
from onionrtypes import JSONSerializable
|
from onionrtypes import JSONSerializable
|
||||||
from onionrtypes import OnboardingConfig
|
from onionrtypes import OnboardingConfig
|
||||||
|
|
||||||
import config
|
import config
|
||||||
"""
|
"""
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@ -69,11 +71,3 @@ def set_config_from_onboarding(config_settings: OnboardingConfig):
|
|||||||
|
|
||||||
config.set('onboarding.done', True, savefile=True)
|
config.set('onboarding.done', True, savefile=True)
|
||||||
|
|
||||||
|
|
||||||
def set_onboarding_finished():
|
|
||||||
"""Create the onboarding completed setting file"""
|
|
||||||
Path(onboarding_mark_file).touch()
|
|
||||||
|
|
||||||
|
|
||||||
def is_onboarding_finished() -> bool:
|
|
||||||
return True
|
|
||||||
|
@ -24,6 +24,15 @@ from coredb import keydb
|
|||||||
friends = Blueprint('friends', __name__)
|
friends = Blueprint('friends', __name__)
|
||||||
|
|
||||||
|
|
||||||
|
@friends.route('/friends/listall')
|
||||||
|
def list_all():
|
||||||
|
pubkey_list = {}
|
||||||
|
friend_list = contactmanager.ContactManager.list_friends(0)
|
||||||
|
for friend in friend_list:
|
||||||
|
pubkey_list[friend.publicKey] = {'name': friend.get_info('name')}
|
||||||
|
return json.dumps(pubkey_list)
|
||||||
|
|
||||||
|
|
||||||
@friends.route('/friends/list')
|
@friends.route('/friends/list')
|
||||||
def list_friends():
|
def list_friends():
|
||||||
pubkey_list = {}
|
pubkey_list = {}
|
||||||
|
@ -16,18 +16,18 @@ import onionrcrypto
|
|||||||
from onionrcrypto import getourkeypair
|
from onionrcrypto import getourkeypair
|
||||||
from etc.onionrvalues import DATABASE_LOCK_TIMEOUT
|
from etc.onionrvalues import DATABASE_LOCK_TIMEOUT
|
||||||
"""
|
"""
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU General Public License as published by
|
it under the terms of the GNU General Public License as published by
|
||||||
the Free Software Foundation, either version 3 of the License, or
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
(at your option) any later version.
|
(at your option) any later version.
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
This program is distributed in the hope that it will be useful,
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
GNU General Public License for more details.
|
GNU General Public License for more details.
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
You should have received a copy of the GNU General Public License
|
||||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
@ -252,8 +252,8 @@ class OnionrUser:
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def list_friends(cls):
|
def list_friends(cls, trust_level=1):
|
||||||
friendList = []
|
friendList = []
|
||||||
for x in keydb.listkeys.list_peers(trust=1):
|
for x in keydb.listkeys.list_peers(trust=trust_level):
|
||||||
friendList.append(cls(x))
|
friendList.append(cls(x))
|
||||||
return list(friendList)
|
return list(friendList)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name" : "pms",
|
"name" : "pms",
|
||||||
"version" : "0.1.2",
|
"version" : "0.1.3",
|
||||||
"author" : "onionr"
|
"author" : "onionr"
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ import notifier
|
|||||||
locale.setlocale(locale.LC_ALL, '')
|
locale.setlocale(locale.LC_ALL, '')
|
||||||
|
|
||||||
plugin_name = 'pms'
|
plugin_name = 'pms'
|
||||||
PLUGIN_VERSION = '0.1.2'
|
PLUGIN_VERSION = '0.1.3'
|
||||||
|
|
||||||
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
||||||
import sentboxdb, mailapi, loadinbox # import after path insert
|
import sentboxdb, mailapi, loadinbox # import after path insert
|
||||||
|
@ -240,7 +240,7 @@
|
|||||||
<div id="sendMessage">
|
<div id="sendMessage">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
<label><i class="fas fa-user"></i> Select friend: <select id="friendSelect"></select></label>
|
<label><i class="fas fa-user"></i> Select contact: <select id="friendSelect"></select></label>
|
||||||
</div>
|
</div>
|
||||||
<form method="post" action="" id="sendForm" enctype="application/x-www-form-urlencoded">
|
<form method="post" action="" id="sendForm" enctype="application/x-www-form-urlencoded">
|
||||||
<div class="field">
|
<div class="field">
|
||||||
|
@ -415,7 +415,7 @@ for (var i = 0; i < document.getElementsByClassName('refresh').length; i++){
|
|||||||
document.getElementsByClassName('refresh')[i].style.float = 'right'
|
document.getElementsByClassName('refresh')[i].style.float = 'right'
|
||||||
}
|
}
|
||||||
|
|
||||||
fetch('/friends/list', {
|
fetch('/friends/listall', {
|
||||||
headers: {
|
headers: {
|
||||||
"token": webpass
|
"token": webpass
|
||||||
}})
|
}})
|
||||||
|
5
static-data/default-plugins/usernames/info.json
Executable file
5
static-data/default-plugins/usernames/info.json
Executable file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"name" : "usernames",
|
||||||
|
"version" : "0.0.1",
|
||||||
|
"author" : "onionr"
|
||||||
|
}
|
53
static-data/default-plugins/usernames/main.py
Executable file
53
static-data/default-plugins/usernames/main.py
Executable file
@ -0,0 +1,53 @@
|
|||||||
|
"""
|
||||||
|
Onionr - Private P2P Communication.
|
||||||
|
|
||||||
|
Preset Onionr usernames
|
||||||
|
"""
|
||||||
|
import locale
|
||||||
|
locale.setlocale(locale.LC_ALL, '')
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
|
||||||
|
import logger
|
||||||
|
from onionrusers import contactmanager
|
||||||
|
from utils import identifyhome
|
||||||
|
import config
|
||||||
|
"""
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
"""
|
||||||
|
|
||||||
|
plugin_name = 'usernames'
|
||||||
|
PLUGIN_VERSION = '0.0.1'
|
||||||
|
|
||||||
|
|
||||||
|
def on_init(api, data = None):
|
||||||
|
config.reload()
|
||||||
|
if config.get('onboarding.done', True):
|
||||||
|
return
|
||||||
|
|
||||||
|
username_file = identifyhome.identify_home() + 'plugins/usernames/usernames.dat'
|
||||||
|
with open(username_file, 'r') as usernames:
|
||||||
|
username_and_keys = usernames.readlines()
|
||||||
|
|
||||||
|
logger.info("Setting preset usernames", terminal=True)
|
||||||
|
for entry in username_and_keys:
|
||||||
|
username, key = entry.split(',')
|
||||||
|
username = username.strip()
|
||||||
|
if not username:
|
||||||
|
continue
|
||||||
|
key = key.strip()
|
||||||
|
user = contactmanager.ContactManager(key, saveUser=True)
|
||||||
|
user.set_info('name', username)
|
||||||
|
|
3
static-data/default-plugins/usernames/usernames.dat
Normal file
3
static-data/default-plugins/usernames/usernames.dat
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
Kevin Froman,GM3E4VCUNLF5F7Y64STD2HEURG45U3NYPLBZBT3Z6YWOALJHZPPQ
|
||||||
|
Supernova,OXDRJS7YC7GQCQX7AAAJWN7LFI34AB2BE4VBYGEEUWGB3TSDB5FQ
|
||||||
|
Cartr,DWQ4CGQGUAVBTXZKFABS63W6KK4JSXK6HTEOXDATOADJNBE4C62A
|
@ -230,7 +230,7 @@
|
|||||||
<nav class="level">
|
<nav class="level">
|
||||||
<div class="level-left">
|
<div class="level-left">
|
||||||
<div class="level-item">
|
<div class="level-item">
|
||||||
<i class="icon fas fa-microchip" for="optimize"></i> <input type="checkbox" name="optimize"> <label for="optimize">Optimize CPU</label>
|
<i class="icon fas fa-microchip" for="optimize"></i> <input type="checkbox" name="optimize" checked> <label for="optimize">Optimize CPU</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -52,10 +52,11 @@ document.getElementById('onboardingForm').onsubmit = function(e){
|
|||||||
submitInfo.networkContrib = getCheckValue('networkContribution')
|
submitInfo.networkContrib = getCheckValue('networkContribution')
|
||||||
submitInfo.plainContrib = getCheckValue('networkContributionPlain')
|
submitInfo.plainContrib = getCheckValue('networkContributionPlain')
|
||||||
submitInfo.donate = getCheckValue('donate')
|
submitInfo.donate = getCheckValue('donate')
|
||||||
//submitInfo.deterministic = getCheckValue('useDeterministic')
|
|
||||||
submitInfo.mail = getCheckValue('useMail')
|
submitInfo.mail = getCheckValue('useMail')
|
||||||
submitInfo.circles = getCheckValue('useCircles')
|
submitInfo.circles = getCheckValue('useCircles')
|
||||||
submitInfo.useDark = getCheckValue('useDarkTheme')
|
submitInfo.useDark = getCheckValue('useDarkTheme')
|
||||||
|
submitInfo.optimize = getCheckValue('optimize')
|
||||||
|
|
||||||
|
|
||||||
if (submitInfo.donate){
|
if (submitInfo.donate){
|
||||||
openDonateModal(submitInfo)
|
openDonateModal(submitInfo)
|
||||||
|
Loading…
Reference in New Issue
Block a user