@@ -258,3 +258,73 @@ def setUp(self):
258258 self .sign_secret = private_key
259259 self .verify_secret = public_key
260260 self .sign_algorithm = PSS (salt_length = 0 )
261+
262+
263+ class TestSignAndVerify (unittest .TestCase ):
264+ header_date = 'Thu, 05 Jan 2014 21:31:40 GMT'
265+ sign_header = 'authorization'
266+
267+ def setUp (self ):
268+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_private_1024.pem' ), 'rb' ) as f :
269+ self .private_key = f .read ()
270+
271+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_public_1024.pem' ), 'rb' ) as f :
272+ self .public_key = f .read ()
273+
274+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_private_2048.pem' ), 'rb' ) as f :
275+ self .other_private_key = f .read ()
276+
277+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_public_2048.pem' ), 'rb' ) as f :
278+ self .other_public_key = f .read ()
279+
280+ def test_default (self ):
281+ unsigned = {
282+ 'Date' : self .header_date
283+ }
284+
285+ hs = HeaderSigner (
286+ key_id = "Test" , secret = self .private_key , algorithm = 'rsa-sha1' ,
287+ sign_header = self .sign_header )
288+ signed = hs .sign (unsigned )
289+ hv = HeaderVerifier (
290+ headers = signed , secret = self .public_key , sign_header = self .sign_header )
291+ self .assertTrue (hv .verify ())
292+
293+ def test_other_default (self ):
294+ unsigned = {
295+ 'Date' : self .header_date
296+ }
297+
298+ hs = HeaderSigner (
299+ key_id = "Test" , secret = self .other_private_key , algorithm = 'rsa-sha256' ,
300+ sign_header = self .sign_header )
301+ signed = hs .sign (unsigned )
302+ hv = HeaderVerifier (
303+ headers = signed , secret = self .other_public_key , sign_header = self .sign_header )
304+ self .assertTrue (hv .verify ())
305+
306+ def test_mix_default_1_256 (self ):
307+ unsigned = {
308+ 'Date' : self .header_date
309+ }
310+
311+ hs = HeaderSigner (
312+ key_id = "Test" , secret = self .private_key , algorithm = 'rsa-sha1' ,
313+ sign_header = self .sign_header )
314+ signed = hs .sign (unsigned )
315+ hv = HeaderVerifier (
316+ headers = signed , secret = self .other_public_key , sign_header = self .sign_header )
317+ self .assertFalse (hv .verify ())
318+
319+ def test_mix_default_256_1 (self ):
320+ unsigned = {
321+ 'Date' : self .header_date
322+ }
323+
324+ hs = HeaderSigner (
325+ key_id = "Test" , secret = self .other_private_key , algorithm = 'rsa-sha256' ,
326+ sign_header = self .sign_header )
327+ signed = hs .sign (unsigned )
328+ hv = HeaderVerifier (
329+ headers = signed , secret = self .public_key , sign_header = self .sign_header )
330+ self .assertFalse (hv .verify ())
0 commit comments