Exemplo n.º 1
0
    def testLeftRotationOperationWithShiftMajorThanBits(self):
        """
		testo l'operazione di rotazione a sinistra di un valore diverso da zero e maggiore di 32
		"""
        l = leftRotationOperation(self.a, 49)
        result = 0b01010101111111100000000111111111
        self.assertEqual(result, l)
Exemplo n.º 2
0
    def testLeftRotationOperationWithShift33(self):
        """
		testo l'operazione di rotazione a sinistra di un valore uguale a 33
		"""
        l = leftRotationOperation(self.a, 33)
        result = 0b00000001111111110101010111111110
        self.assertEqual(result, l)
Exemplo n.º 3
0
	def b(cls,l,r):
		'''
		Effettua le operazioni della funzione b. 
		Le operazioni effettuate sono le seguenti (pag 171 della rfc):
		.) <<< = rotazione verso sinistra (non shift)
		.) >>> = rotazione verso sinistra (non shift)
		.) ^ = xor
		.) a mod b: prendo i b bit di a, a partire da destra
		'''
		r = r ^ leftRotationOperation(l,17)		# r = r ^ (l <<< 17)
		l = (l + r) & 0xffffffffL			# l = (l+r) mod (2^32)  ---> prende i 32bit a destra
		r = r ^ cls.xswap(l)				# r = r ^ cls.xswap(l)
		l = (l + r) & 0xffffffffL
		r = r ^ leftRotationOperation(l,3)		# r = r ^ (l <<< 3)
		l = (l + r) & 0xffffffffL
		r = r ^ rightRotationOperation(l,2)		# r = r ^ (l >>> 2)
		l = (l + r) & 0xffffffffL
		return (l,r)
Exemplo n.º 4
0
    def testLeftRotationOperationWithShiftEqualToBits(self):
        """
		testo l'operazione di rotazione a sinistra di un valore uguale al numero di bits (32)
		"""
        l = leftRotationOperation(self.a, 32)
        self.assertEqual(self.a, l)
Exemplo n.º 5
0
    def testLeftRotationOperationWithoutRotation(self):
        """
		testo l'operazione di rotazione a Sinistra di un valore uguale a 0
		"""
        l = leftRotationOperation(self.a, 0)
        self.assertEqual(self.a, l)