예제 #1
0
 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'
예제 #3
0
    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'
예제 #4
0
 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)
예제 #5
0
 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'
예제 #7
0
 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'