예제 #1
0
 def value_decode(self, val):
     log.debug("Got value to decode: %s" % val)
     encoded_data = val
     val = base64.b64decode(val.strip('"'))
     hashlength = get_hash_length(self.hashalg) / 4
     sig, data = val[:hashlength], val[hashlength:]
     if verify_data(data, sig, self.sig_key, self.hashalg):
         return self.serializer.loads(data), encoded_data
예제 #2
0
 def value_decode(self, val):
     encoded_data = val
     val = base64.b64decode(val.strip('"'))
     hashlength = get_hash_length(self.hashalg) / 4
     sig, ciphertext = val[:hashlength], val[hashlength:]
     data = decrypt_authenticated(ciphertext, sig, self.enc_key,
                                  self.sig_key, self.hashalg)
     return self.serializer.loads(data), encoded_data
예제 #3
0
def test_get_hash_length():
    for algname, length in [('md5', 128), ('sha1', 160), ('sha256', 256),
                            ('sha512', 512)]:
        alg = getattr(hashlib, algname)
        assert get_hash_length(alg) == length