예제 #1
0
파일: test_evp.py 프로젝트: steev/M2Crypto
 def test_simple(self):
     algo = 'sha1'
     for d in self.data:
         h = EVP.HMAC(d[0], algo)
         h.update(d[1])
         ret = h.final()
         self.assertEqual(ret, d[2])
     with self.assertRaises(ValueError):
         EVP.HMAC(d[0], algo='nosuchalgo')
예제 #2
0
 def make_chain_HMAC(self, key, start, input, algo='sha1'):
     chain = []
     hmac = EVP.HMAC(key, algo)
     hmac.update( ` start `)
     digest = hmac.final()
     chain.append((digest, start))
     for i in input:
         hmac.reset(digest)
         hmac.update( ` i `)
         digest = hmac.final()
         chain.append((digest, i))
     return chain
예제 #3
0
 def verify_chain_HMAC(self, key, start, chain, algo='sha1'):
     hmac = EVP.HMAC(key, algo)
     hmac.update( ` start `)
     digest = hmac.final()
     c = chain[0]
     if c[0] != digest or c[1] != start:
         return 0
     for d, v in chain[1:]:
         hmac.reset(digest)
         hmac.update( ` v `)
         digest = hmac.final()
         if digest != d:
             return 0
     return 1
예제 #4
0
    def HMAC(self, *data):
        hmac = EVP.HMAC(self.cipher.hmac_key, algo="sha1")
        for d in data:
            hmac.update(d)

        return hmac.final()
예제 #5
0
 def HMAC(self, data):
     hmac = EVP.HMAC(self.cipher.hmac_key, algo="sha1")
     hmac.update(data)
     return hmac.final()