1010
1111sys .path .insert (0 , os .path .join (os .path .dirname (__file__ ), '..' ))
1212
13- sign .DEFAULT_SIGN_ALGORITHM = "rsa-sha256 "
13+ sign .DEFAULT_SIGN_ALGORITHM = "hs2019 "
1414
1515
1616class TestSign (unittest .TestCase ):
@@ -19,17 +19,22 @@ class TestSign(unittest.TestCase):
1919 header_host = 'example.com'
2020 header_date = 'Thu, 05 Jan 2014 21:31:40 GMT'
2121 header_content_type = 'application/json'
22- header_digest = 'SHA-256 =X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE='
22+ header_digest = 'SHA-512 =X48E9qOokqqrvdts8nOJRJN3OWDUoyWxBf7kbu9DBPE='
2323 header_content_length = '18'
2424
2525 def setUp (self ):
26- self .key_path = os .path .join (
27- os .path .dirname (__file__ ), 'rsa_private.pem' )
28- with open (self .key_path , 'rb' ) as f :
29- self .key = f .read ()
26+ self .key_path_2048 = os .path .join (
27+ os .path .dirname (__file__ ), 'rsa_private_2048.pem' )
28+ with open (self .key_path_2048 , 'rb' ) as f :
29+ self .key_2048 = f .read ()
30+
31+ self .key_path_1024 = os .path .join (
32+ os .path .dirname (__file__ ), 'rsa_private_1024.pem' )
33+ with open (self .key_path_1024 , 'rb' ) as f :
34+ self .key_1024 = f .read ()
3035
3136 def test_default (self ):
32- hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key )
37+ hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key_2048 , sign_algorithm = "PSS" , salt_length = 0 )
3338 unsigned = {
3439 'Date' : self .header_date
3540 }
@@ -43,11 +48,11 @@ def test_default(self):
4348 self .assertIn ('algorithm' , params )
4449 self .assertIn ('signature' , params )
4550 self .assertEqual (params ['keyId' ], 'Test' )
46- self .assertEqual (params ['algorithm' ], 'rsa-sha256 ' )
47- self .assertEqual (params ['signature' ], 'jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9HpFQlG7N4YcJPteKTu4MWCLyk+gIr0wDgqtLWf9NLpMAMimdfsH7FSWGfbMFSrsVTHNTk0rK3usrfFnti1dxsM4jl0kYJCKTGI/UWkqiaxwNiKqGcdlEDrTcUhhsFsOIo8VhddmZTZ8w =' ) # noqa: E501
51+ self .assertEqual (params ['algorithm' ], 'hs2019 ' )
52+ self .assertEqual (params ['signature' ], 'T8+Cj3Zp2cBDm2r8/loPgfHUSSFXXyZJNxxbNx1NvKVz/r5T4z6pVxhl9rqk8WfYHMdlh2aT5hCrYKvhs88Jy0DDmeUP4nELWRsO1BF0oAqHfcrbEikZQL7jA6z0guVaLr0S5QRGmd1K5HUEkP/vYEOns+FRL+JrFG4dNJNESvG5iyKUoaXfoZCFdqtzLlIteEAL7dW/kaX/dE116wfpbem1eCABuGopRhuFtjqLKVjuUVwyP/zSYTqd9j+gDhinkAifTJPxbGMh0b5LZdNCqw5irT9NkTcTFRXDp8ioX8r805Z9QhjT7H+rSo350U2LsAFoQ9ttryPBOoMPCiQTlw= =' ) # noqa: E501
4853
4954 def test_basic (self ):
50- hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key , headers = [
55+ hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key_2048 , sign_algorithm = "PSS" , salt_length = 0 , headers = [
5156 '(request-target)' ,
5257 'host' ,
5358 'date' ,
@@ -68,13 +73,13 @@ def test_basic(self):
6873 self .assertIn ('algorithm' , params )
6974 self .assertIn ('signature' , params )
7075 self .assertEqual (params ['keyId' ], 'Test' )
71- self .assertEqual (params ['algorithm' ], 'rsa-sha256 ' )
76+ self .assertEqual (params ['algorithm' ], 'hs2019 ' )
7277 self .assertEqual (
7378 params ['headers' ], '(request-target) host date' )
74- self .assertEqual (params ['signature' ], 'HUxc9BS3P/kPhSmJo+0pQ4IsCo007vkv6bUm4Qehrx+B1Eo4Mq5/6KylET72ZpMUS80XvjlOPjKzxfeTQj4DiKbAzwJAb4HX3qX6obQTa00/qPDXlMepD2JtTw33yNnm/0xV7fQuvILN/ys+378Ysi082+4xBQFwvhNvSoVsGv4 =' ) # noqa: E501
79+ self .assertEqual (params ['signature' ], 'KkF4oeOJJH9TaYjQdaU634G7AVmM5Bf3fnfJCBZ7G0H5puW5XlQTpduA+TgouKOJhbv4aRRpunPzCHUxUjEvrR3TSALqW1EOsBwCVIusE9CnrhL7vUOvciIDai/jI15RsfR9+XyTmOSFbsI07E8mmywr3nLeWX6AAFDMO2vWc21zZxrSc13vFfAkVvFhXLxO4g0bBm6Z4m5/9ytWtdE0Gf3St2kY8aZTedllRCS8cMx8GVAIw/qYGeIlGKUCZKxrFxnviN7gfxixwova6lcxpppIo+WXxEiwMJfSQBlx0WGn3A3twCv6TsIxPOVUEW4jcogDh+jGFf1aGdVyHquTRQ= =' ) # noqa: E501
7580
7681 def test_all (self ):
77- hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key , headers = [
82+ hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key_2048 , sign_algorithm = "PSS" , salt_length = 0 , headers = [
7883 '(request-target)' ,
7984 'host' ,
8085 'date' ,
@@ -101,8 +106,26 @@ def test_all(self):
101106 self .assertIn ('algorithm' , params )
102107 self .assertIn ('signature' , params )
103108 self .assertEqual (params ['keyId' ], 'Test' )
104- self .assertEqual (params ['algorithm' ], 'rsa-sha256 ' )
109+ self .assertEqual (params ['algorithm' ], 'hs2019 ' )
105110 self .assertEqual (
106111 params ['headers' ],
107112 '(request-target) host date content-type digest content-length' )
108- self .assertEqual (params ['signature' ], 'Ef7MlxLXoBovhil3AlyjtBwAL9g4TN3tibLj7uuNB3CROat/9KaeQ4hW2NiJ+pZ6HQEOx9vYZAyi+7cmIkmJszJCut5kQLAwuX+Ms/mUFvpKlSo9StS2bMXDBNjOh4Auj774GFj4gwjS+3NhFeoqyr/MuN6HsEnkvn6zdgfE2i0=' ) # noqa: E501
113+ self .assertEqual (params ['signature' ], 'Ur8ehf0YlxBIRyXJG+iBBubrMlxWxDqpYgEaABq5ukcant30Gygkrs4ujFWxlR8pbBS/kDewYdlNhJOsVva2Y/ZSmardYHWYuSw3QjW0KON7nfVT/hijDFCAAzDDOqS6uSJimWmyko23bt2XDydMS2ekGoRFXxQcCtd2piWDpwaHneZiUu4njoiyRVZo9dLWMe9i9QR/14tjWO+PinfSlo1Bs1uMKGjx3EDRSw76cMHXb0VURzVf08ShBxsnts8o/l8TPNyMgcqeEuNaMFTr3rMMpfkeLtBcBljqnvPjusAPmzJxi6aElophSmuPpwSgC/QCHOxT99mEObrf0VDRNw==' ) # noqa: E501
114+
115+ def test_default_deprecated_256 (self ):
116+ hs = sign .HeaderSigner (key_id = 'Test' , secret = self .key_1024 , algorithm = "rsa-sha256" )
117+ unsigned = {
118+ 'Date' : self .header_date
119+ }
120+ signed = hs .sign (unsigned )
121+ self .assertIn ('Date' , signed )
122+ self .assertEqual (unsigned ['Date' ], signed ['Date' ])
123+ self .assertIn ('Authorization' , signed )
124+ auth = parse_authorization_header (signed ['authorization' ])
125+ params = auth [1 ]
126+ self .assertIn ('keyId' , params )
127+ self .assertIn ('algorithm' , params )
128+ self .assertIn ('signature' , params )
129+ self .assertEqual (params ['keyId' ], 'Test' )
130+ self .assertEqual (params ['algorithm' ], 'rsa-sha256' )
131+ self .assertEqual (params ['signature' ], 'jKyvPcxB4JbmYY4mByyBY7cZfNl4OW9HpFQlG7N4YcJPteKTu4MWCLyk+gIr0wDgqtLWf9NLpMAMimdfsH7FSWGfbMFSrsVTHNTk0rK3usrfFnti1dxsM4jl0kYJCKTGI/UWkqiaxwNiKqGcdlEDrTcUhhsFsOIo8VhddmZTZ8w=' ) # noqa: E501
0 commit comments