20
20
import unittest
21
21
import securesystemslib .formats
22
22
import securesystemslib .keys as KEYS
23
- from securesystemslib .signer import SSlibSigner
23
+ from securesystemslib .signer import Signature , SSlibSigner
24
+ import securesystemslib .exceptions as exceptions
24
25
25
-
26
- class TestSSlibSigner (unittest .TestCase ):\
26
+ class TestSSlibSigner (unittest .TestCase ):
27
27
28
28
@classmethod
29
29
def setUpClass (cls ):
@@ -38,63 +38,48 @@ def setUpClass(cls):
38
38
39
39
40
40
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 )
58
45
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." )
62
49
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
67
54
68
- self .assertRaises (ValueError , sslib_signer .sign , self .DATA )
55
+ with self .assertRaises (ValueError ):
56
+ sslib_signer .sign (self .DATA )
69
57
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
73
59
74
- # Test generation of ECDSA signatures.
60
+ # Supplying an incorrect number of arguments.
61
+ with self .assertRaises (TypeError ):
62
+ sslib_signer .sign ()
75
63
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 )
79
68
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 )
83
71
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
88
73
89
- # Removing private key from 'ecdsakey_dict' - should raise a TypeError.
90
- private = self .ecdsakey_dict ['keyval' ]['private' ]
91
- self .ecdsakey_dict ['keyval' ]['private' ] = ''
92
74
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 )
94
81
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 ())
98
83
99
84
100
85
# Run the unit tests.
0 commit comments