Remove ed25519, add pynacl, documentation updates and preparation for PyPI
This commit is contained in:
parent
f000e564f9
commit
fff2d3e244
24 changed files with 404 additions and 82 deletions
|
@ -4,7 +4,8 @@ from collections import OrderedDict
|
|||
from django.conf import settings
|
||||
import os
|
||||
|
||||
import ed25519
|
||||
from nacl import signing
|
||||
from nacl.exceptions import BadSignatureError
|
||||
import mock
|
||||
|
||||
from ..crypto import HMAC, Ed25519, generate_randomness
|
||||
|
@ -111,11 +112,11 @@ class TestEd25519(unittest.TestCase):
|
|||
b'\x97\x145\x90N[\xb9\xfc\x8e\x8a\x9e\xd2=\xad\x84\xcd\xf1\x93\x06'
|
||||
)
|
||||
|
||||
@mock.patch('ed25519.SigningKey')
|
||||
@mock.patch('nacl.signing.SigningKey')
|
||||
def test_sign_data_mock(self, mock_signing_key):
|
||||
signature = self.sig.sign_data()
|
||||
|
||||
self.assertEqual(signature, mock_signing_key.return_value.sign.return_value)
|
||||
self.assertEqual(signature, mock_signing_key.return_value.sign.return_value.signature)
|
||||
mock_signing_key.assert_called_once_with(self.sig.private_key)
|
||||
mock_signing_key.return_value.sign.assert_called_once_with(self.sig.msg)
|
||||
|
||||
|
@ -125,17 +126,17 @@ class TestEd25519(unittest.TestCase):
|
|||
self.assertTrue(self.sig.is_signature_valid(signature))
|
||||
self.assertFalse(self.sig.is_signature_valid(b'a' + signature[:-1]))
|
||||
|
||||
@mock.patch('ed25519.VerifyingKey')
|
||||
@mock.patch('nacl.signing.VerifyKey')
|
||||
def test_is_signature_mock(self, mock_verifying_key):
|
||||
is_valid = self.sig.is_signature_valid(mock.sentinel.signature)
|
||||
|
||||
self.assertTrue(is_valid)
|
||||
mock_verifying_key.assert_called_once_with(self.sig.public_key)
|
||||
mock_verifying_key.return_value.verify.assert_called_once_with(
|
||||
mock.sentinel.signature, self.data
|
||||
self.data, mock.sentinel.signature
|
||||
)
|
||||
|
||||
@mock.patch('ed25519.VerifyingKey')
|
||||
@mock.patch('nacl.signing.VerifyKey')
|
||||
def test_is_signature_mock_assertion_error(self, mock_verifying_key):
|
||||
mock_verifying_key.return_value.verify.side_effect = AssertionError
|
||||
|
||||
|
@ -144,19 +145,19 @@ class TestEd25519(unittest.TestCase):
|
|||
self.assertFalse(is_valid)
|
||||
mock_verifying_key.assert_called_once_with(self.sig.public_key)
|
||||
mock_verifying_key.return_value.verify.assert_called_once_with(
|
||||
mock.sentinel.signature, self.data
|
||||
self.data, mock.sentinel.signature
|
||||
)
|
||||
|
||||
@mock.patch('ed25519.VerifyingKey')
|
||||
def test_is_signature_mock_bas_signature_error(self, mock_verifying_key):
|
||||
mock_verifying_key.return_value.verify.side_effect = ed25519.BadSignatureError
|
||||
@mock.patch('nacl.signing.VerifyKey')
|
||||
def test_is_signature_mock_bad_signature_error(self, mock_verifying_key):
|
||||
mock_verifying_key.return_value.verify.side_effect = BadSignatureError
|
||||
|
||||
is_valid = self.sig.is_signature_valid(mock.sentinel.signature)
|
||||
|
||||
self.assertFalse(is_valid)
|
||||
mock_verifying_key.assert_called_once_with(self.sig.public_key)
|
||||
mock_verifying_key.return_value.verify.assert_called_once_with(
|
||||
mock.sentinel.signature, self.data
|
||||
self.data, mock.sentinel.signature
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
import unittest
|
||||
from collections import OrderedDict
|
||||
|
||||
import ed25519
|
||||
from nacl import signing
|
||||
import mock
|
||||
from django import forms, test
|
||||
from django.contrib.auth import SESSION_KEY, get_user_model
|
||||
|
@ -19,9 +19,10 @@ TESTING_MODULE = 'sqrl.forms'
|
|||
|
||||
class TestRequestForm(test.TestCase):
|
||||
def get_key_pair(self):
|
||||
signing_key, verifying_key = ed25519.create_keypair()
|
||||
signing_key = signing_key.to_bytes()
|
||||
verifying_key = verifying_key.to_bytes()
|
||||
signing_key = signing.SigningKey.generate()
|
||||
verifying_key = signing_key.verify_key
|
||||
signing_key = signing_key._signing_key
|
||||
verifying_key = verifying_key._key
|
||||
|
||||
return signing_key, verifying_key
|
||||
|
||||
|
|
|
@ -59,7 +59,7 @@ class TestSQRLStatusView(test.TestCase):
|
|||
|
||||
def test_get_success_url_complete_registration(self):
|
||||
self.view.request.GET['url'] = '?next={}'.format(reverse('sqrl:login'))
|
||||
self.view.request.user.is_authenticated.return_value = False
|
||||
self.view.request.user.is_authenticated = False
|
||||
self.view.request.session = {SQRL_IDENTITY_SESSION_KEY: ''}
|
||||
|
||||
self.assertEqual(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue