more work on tests
parent
398d8da347
commit
4afff79d2f
|
@ -11,6 +11,7 @@
|
|||
(***pre-alpha & experimental, not well tested or easy to use yet***)
|
||||
|
||||
[![Open Source Love](https://badges.frapsoft.com/os/v3/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badges/)
|
||||
<img src='https://gitlab.com/beardog/Onionr/badges/master/build.svg'>
|
||||
|
||||
<hr>
|
||||
|
||||
|
|
|
@ -1,35 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
'''
|
||||
Onionr - P2P Microblogging Platform & Social network
|
||||
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/>.
|
||||
'''
|
||||
import unittest, sys, os, core, onionrcrypto, logger
|
||||
|
||||
class OnionrCryptoTests(unittest.TestCase):
|
||||
def testSymmetric(self):
|
||||
dataString = "this is a secret message"
|
||||
dataBytes = dataString.encode()
|
||||
myCore = core.Core()
|
||||
crypto = onionrcrypto.OnionrCrypto(myCore)
|
||||
key = key = b"tttttttttttttttttttttttttttttttt"
|
||||
|
||||
logger.info("Encrypting: " + dataString, timestamp=True)
|
||||
encrypted = crypto.symmetricEncrypt(dataString, key, returnEncoded=True)
|
||||
logger.info(encrypted, timestamp=True)
|
||||
logger.info('Decrypting encrypted string:', timestamp=True)
|
||||
decrypted = crypto.symmetricDecrypt(encrypted, key, encodedMessage=True)
|
||||
logger.info(decrypted, timestamp=True)
|
||||
self.assertTrue(True)
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
|
@ -18,7 +18,7 @@
|
|||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
'''
|
||||
import nacl.signing, nacl.encoding, nacl.public, nacl.hash, nacl.pwhash, nacl.utils, nacl.secret, os, binascii, base64, hashlib, logger, onionrproofs, time, math, sys, hmac
|
||||
import onionrexceptions, keymanager
|
||||
import onionrexceptions, keymanager, core
|
||||
# secrets module was added into standard lib in 3.6+
|
||||
if sys.version_info[0] == 3 and sys.version_info[1] < 6:
|
||||
from dependencies import secrets
|
||||
|
@ -180,12 +180,6 @@ class OnionrCrypto:
|
|||
decrypted = base64.b64encode(decrypted)
|
||||
return decrypted
|
||||
|
||||
def generateSymmetricPeer(self, peer):
|
||||
'''Generate symmetric key for a peer and save it to the peer database'''
|
||||
key = self.generateSymmetric()
|
||||
self._core.setPeerInfo(peer, 'forwardKey', key)
|
||||
return
|
||||
|
||||
def generateSymmetric(self):
|
||||
'''Generate a symmetric key (bytes) and return it'''
|
||||
return binascii.hexlify(nacl.utils.random(nacl.secret.SecretBox.KEY_SIZE))
|
||||
|
@ -283,6 +277,15 @@ class OnionrCrypto:
|
|||
|
||||
@staticmethod
|
||||
def safeCompare(one, two):
|
||||
# Do encode here to avoid spawning core
|
||||
try:
|
||||
one = one.encode()
|
||||
except AttributeError:
|
||||
pass
|
||||
try:
|
||||
two = two.encode()
|
||||
except AttributeError:
|
||||
pass
|
||||
return hmac.compare_digest(one, two)
|
||||
|
||||
@staticmethod
|
||||
|
|
|
@ -1,11 +1,10 @@
|
|||
#!/usr/bin/env python3
|
||||
import sys, os
|
||||
sys.path.append(".")
|
||||
import unittest, uuid, sqlite3
|
||||
import unittest, uuid
|
||||
TEST_DIR = 'testdata/%s-%s' % (uuid.uuid4(), os.path.basename(__file__)) + '/'
|
||||
print("Test directory:", TEST_DIR)
|
||||
os.environ["ONIONR_HOME"] = TEST_DIR
|
||||
from urllib.request import pathname2url
|
||||
import core, onionr
|
||||
|
||||
core.Core()
|
||||
|
@ -37,7 +36,7 @@ class OnionrValidations(unittest.TestCase):
|
|||
self.assertTrue(c._utils.validatePubKey(valid))
|
||||
|
||||
for x in invalid:
|
||||
print('testing', x)
|
||||
#print('testing', x)
|
||||
self.assertFalse(c._utils.validatePubKey(x))
|
||||
|
||||
def test_integer_string(self):
|
||||
|
@ -46,13 +45,11 @@ class OnionrValidations(unittest.TestCase):
|
|||
c = core.Core()
|
||||
|
||||
for x in valid:
|
||||
print('testing', x)
|
||||
#print('testing', x)
|
||||
self.assertTrue(c._utils.isIntegerString(x))
|
||||
|
||||
for x in invalid:
|
||||
print('testing', x)
|
||||
#print('testing', x)
|
||||
self.assertFalse(c._utils.isIntegerString(x))
|
||||
|
||||
|
||||
|
||||
unittest.main()
|
Loading…
Reference in New Issue