Skip to content

Commit d18d92e

Browse files
committed
Address Lukas comments for "Add tests for SSlib..."
Signed-off-by: Martin Vrachev <[email protected]>
1 parent 8475028 commit d18d92e

File tree

1 file changed

+34
-49
lines changed

1 file changed

+34
-49
lines changed

tests/test_signer.py

Lines changed: 34 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@
2020
import unittest
2121
import securesystemslib.formats
2222
import securesystemslib.keys as KEYS
23-
from securesystemslib.signer import SSlibSigner
23+
from securesystemslib.signer import Signature, SSlibSigner
24+
import securesystemslib.exceptions as exceptions
2425

25-
26-
class TestSSlibSigner(unittest.TestCase):\
26+
class TestSSlibSigner(unittest.TestCase):
2727

2828
@classmethod
2929
def setUpClass(cls):
@@ -38,63 +38,48 @@ def setUpClass(cls):
3838

3939

4040
def test_sslib_sign(self):
41-
# Test generation of RSA signatures.
42-
sslib_signer = SSlibSigner(self.rsakey_dict)
43-
rsa_sig_obj = sslib_signer.sign(self.DATA)
44-
45-
# Verify rsa signature
46-
verified = KEYS.verify_signature(self.rsakey_dict,
47-
rsa_sig_obj.to_dict(), self.DATA)
48-
49-
# Verify rsa signature
50-
verified = KEYS.verify_signature(self.rsakey_dict,
51-
rsa_sig_obj.to_dict(), self.DATA)
52-
self.assertTrue(verified, "Incorrect signature.")
53-
54-
# Test for invalid signature scheme.
55-
valid_scheme = self.rsakey_dict['scheme']
56-
self.rsakey_dict['scheme'] = 'invalid_scheme'
57-
sslib_signer.key_dict = self.rsakey_dict
41+
for scheme_dict in [self.rsakey_dict, self.ecdsakey_dict]:
42+
# Test generation of signatures.
43+
sslib_signer = SSlibSigner(scheme_dict)
44+
sig_obj = sslib_signer.sign(self.DATA)
5845

59-
self.assertRaises(securesystemslib.exceptions.UnsupportedAlgorithmError,
60-
sslib_signer.sign, self.DATA)
61-
self.rsakey_dict['scheme'] = valid_scheme
46+
# Verify signature
47+
verified = KEYS.verify_signature(scheme_dict, sig_obj.to_dict(), self.DATA)
48+
self.assertTrue(verified, "Incorrect signature.")
6249

63-
# Removing private key from 'rsakey_dict' - should raise a TypeError.
64-
private = self.rsakey_dict['keyval']['private']
65-
self.rsakey_dict['keyval']['private'] = ''
66-
sslib_signer.key_dict = self.rsakey_dict
50+
# Removing private key from 'rsakey_dict' - should raise a ValueError.
51+
private = scheme_dict['keyval']['private']
52+
scheme_dict['keyval']['private'] = ''
53+
sslib_signer.key_dict = scheme_dict
6754

68-
self.assertRaises(ValueError, sslib_signer.sign, self.DATA)
55+
with self.assertRaises(ValueError):
56+
sslib_signer.sign(self.DATA)
6957

70-
# Supplying an incorrect number of arguments.
71-
self.assertRaises(TypeError, KEYS.create_signature)
72-
self.rsakey_dict['keyval']['private'] = private
58+
scheme_dict['keyval']['private'] = private
7359

74-
# Test generation of ECDSA signatures.
60+
# Supplying an incorrect number of arguments.
61+
with self.assertRaises(TypeError):
62+
sslib_signer.sign()
7563

76-
sslib_signer.key_dict = self.ecdsakey_dict
77-
# Creating a signature for 'DATA'.
78-
ecdsa_sig = sslib_signer.sign(self.DATA)
64+
# Test for invalid signature scheme.
65+
valid_scheme = self.rsakey_dict['scheme']
66+
self.rsakey_dict['scheme'] = 'invalid_scheme'
67+
sslib_signer = SSlibSigner(self.rsakey_dict)
7968

80-
# Verify rsa signature
81-
verified = KEYS.verify_signature(self.ecdsakey_dict,
82-
ecdsa_sig.to_dict(), self.DATA)
69+
with self.assertRaises(exceptions.UnsupportedAlgorithmError):
70+
sslib_signer.sign(self.DATA)
8371

84-
# Verify rsa signature
85-
verified = KEYS.verify_signature(self.ecdsakey_dict,
86-
ecdsa_sig.to_dict(), self.DATA)
87-
self.assertTrue(verified, "Incorrect signature.")
72+
self.rsakey_dict['scheme'] = valid_scheme
8873

89-
# Removing private key from 'ecdsakey_dict' - should raise a TypeError.
90-
private = self.ecdsakey_dict['keyval']['private']
91-
self.ecdsakey_dict['keyval']['private'] = ''
9274

93-
self.assertRaises(ValueError, sslib_signer.sign, self.DATA)
75+
def test_signature_from_to_json(self):
76+
signature_dict = {
77+
"sig": "30460221009342e4566528fcecf6a7a5d53ebacdb1df151e242f55f8775883469cb01dbc6602210086b426cc826709acfa2c3f9214610cb0a832db94bbd266fd7c5939a48064a851",
78+
"keyid": "11fa391a0ed7a447cbfeb4b2667e286fc248f64d5e6d0eeed2e5e23f97f9f714"
79+
}
80+
sig_obj = Signature.from_dict(signature_dict)
9481

95-
# Supplying an incorrect number of arguments.
96-
self.assertRaises(TypeError, sslib_signer.sign)
97-
self.ecdsakey_dict['keyval']['private'] = private
82+
self.assertEqual(signature_dict, sig_obj.to_dict())
9883

9984

10085
# Run the unit tests.

0 commit comments

Comments
 (0)