def IcedollTestVec(i, key, pt, ct): """ Run single AES test vector with any legal blockSize and any legal key size. """ bkey, plainText, cipherText = a2b_hex(key), a2b_hex(pt), a2b_hex(ct) kSize = len(bkey) bSize = len(cipherText) # set block size to length of block alg = Icedoll(bkey, keySize=kSize, blockSize=bSize, padding=noPadding()) cct = alg.encrypt(plainText) print 'pt =',b2a_p(plainText) print 'ct =',b2a_p(cct) dcct = alg.decrypt(cct) #print '_dcct',b2a_p(dcct) self.assertEqual( dcct, plainText ) self.assertEqual( alg.encrypt(plainText), cipherText ) self.assertEqual( alg.decrypt(cipherText), plainText )
def testDctEqPt(self): """ test of plaintext = decrypt(encrypt(plaintext)) """ alg = Icedoll(16 * chr(0), padding=noPadding()) pt = 16 * 4 * 'a' # block aligned ct = alg.encrypt(pt) print('ct = ', b2a_p(ct)) dct = alg.decrypt(ct) print('dct = ', b2a_p(dct)) assert (pt == dct), 'pt != dct' alg = Icedoll(16 * chr(0)) # autoPad pt = 17 * 4 * 'a' # non-block aligned ct = alg.encrypt(pt) print('ct = ', b2a_p(ct)) dct = alg.decrypt(ct) print('dct = ', b2a_p(dct)) assert (pt == dct), 'pt != dct'
def testDctEqPt(self): """ test of plaintext = decrypt(encrypt(plaintext)) """ alg = Icedoll( 16*chr(0), padding=noPadding()) pt = 16*4*'a' # block aligned ct = alg.encrypt(pt) print 'ct = ',b2a_p(ct) dct = alg.decrypt(ct) print 'dct = ',b2a_p(dct) assert(pt == dct), 'pt != dct' alg = Icedoll( 16*chr(0)) # autoPad pt = 17*4*'a' # non-block aligned ct = alg.encrypt(pt) print 'ct = ',b2a_p(ct) dct = alg.decrypt(ct) print 'dct = ',b2a_p(dct) assert(pt == dct), 'pt != dct'
def encrypt(self, plainText, more=None): """ """ if not(self.hasIV): # On first call to encrypt put in an IV plainText = self._makeIV() + plainText # add the 'IV' self.hasIV = 1 if more == None: # on last call to encrypt append integrity check plainText = plainText + self._makeIC() return Icedoll.encrypt(self, plainText, more=more)
def encrypt(self, plainText, more=None): """ """ if not (self.hasIV): # On first call to encrypt put in an IV plainText = self._makeIV() + plainText # add the 'IV' self.hasIV = 1 if more == None: # on last call to encrypt append integrity check plainText = plainText + self._makeIC() return Icedoll.encrypt(self, plainText, more=more)
def testEncrcptDecryptMultiSizesPt(self): """ Encrypt decrypt multiple sizes """ alg = Icedoll(16 * chr(0)) for size in range(100): pt = size * 'a' ct = alg.encrypt(pt) #print 'ct = ',b2a_p(ct) dct = alg.decrypt(ct) #print 'dct = ',b2a_p(dct) assert (pt == dct), 'pt != dct'
def testEncrcptDecryptMultiSizesPt(self): """ Encrypt decrypt multiple sizes """ alg = Icedoll( 16*chr(0)) for size in range(100): pt = size*'a' ct = alg.encrypt(pt) #print 'ct = ',b2a_p(ct) dct = alg.decrypt(ct) #print 'dct = ',b2a_p(dct) assert(pt == dct), 'pt != dct'