@@ -218,3 +218,73 @@ def setUp(self):
218218
219219class TestVerifyRSASHA512ChangeHeader (TestVerifyRSASHA1 ):
220220 sign_header = 'Signature'
221+
222+
223+ class TestSignAndVerify (unittest .TestCase ):
224+ header_date = 'Thu, 05 Jan 2014 21:31:40 GMT'
225+ sign_header = 'authorization'
226+
227+ def setUp (self ):
228+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_private.pem' ), 'rb' ) as f :
229+ self .private_key = f .read ()
230+
231+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_public.pem' ), 'rb' ) as f :
232+ self .public_key = f .read ()
233+
234+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_private_2.pem' ), 'rb' ) as f :
235+ self .other_private_key = f .read ()
236+
237+ with open (os .path .join (os .path .dirname (__file__ ), 'rsa_public_2.pem' ), 'rb' ) as f :
238+ self .other_public_key = f .read ()
239+
240+ def test_default (self ):
241+ unsigned = {
242+ 'Date' : self .header_date
243+ }
244+
245+ hs = HeaderSigner (
246+ key_id = "Test" , secret = self .private_key , algorithm = 'rsa-sha1' ,
247+ sign_header = self .sign_header )
248+ signed = hs .sign (unsigned )
249+ hv = HeaderVerifier (
250+ headers = signed , secret = self .public_key , sign_header = self .sign_header )
251+ self .assertTrue (hv .verify ())
252+
253+ def test_other_default (self ):
254+ unsigned = {
255+ 'Date' : self .header_date
256+ }
257+
258+ hs = HeaderSigner (
259+ key_id = "Test" , secret = self .other_private_key , algorithm = 'rsa-sha256' ,
260+ sign_header = self .sign_header )
261+ signed = hs .sign (unsigned )
262+ hv = HeaderVerifier (
263+ headers = signed , secret = self .other_public_key , sign_header = self .sign_header )
264+ self .assertTrue (hv .verify ())
265+
266+ def test_mix_default_1_256 (self ):
267+ unsigned = {
268+ 'Date' : self .header_date
269+ }
270+
271+ hs = HeaderSigner (
272+ key_id = "Test" , secret = self .private_key , algorithm = 'rsa-sha1' ,
273+ sign_header = self .sign_header )
274+ signed = hs .sign (unsigned )
275+ hv = HeaderVerifier (
276+ headers = signed , secret = self .other_public_key , sign_header = self .sign_header )
277+ self .assertFalse (hv .verify ())
278+
279+ def test_mix_default_256_1 (self ):
280+ unsigned = {
281+ 'Date' : self .header_date
282+ }
283+
284+ hs = HeaderSigner (
285+ key_id = "Test" , secret = self .other_private_key , algorithm = 'rsa-sha256' ,
286+ sign_header = self .sign_header )
287+ signed = hs .sign (unsigned )
288+ hv = HeaderVerifier (
289+ headers = signed , secret = self .public_key , sign_header = self .sign_header )
290+ self .assertFalse (hv .verify ())
0 commit comments