Example #1
0
    def testRightRotationOperationWithShiftMajorThanBits(self):
        """
		testo l'operazione di rotazione a destra di un valore maggiore di 32 bit
		"""
        r = rightRotationOperation(self.a, 49)
        result = 0b11010101011111111000000001111111
        self.assertEqual(result, r)
Example #2
0
    def testRightRotationOperationWithShift33(self):
        """
		testo l'operazione di rotazione a destra di 33 bit
		"""
        r = rightRotationOperation(self.a, 33)
        result = 0b10000000011111111101010101111111
        self.assertEqual(result, r)
Example #3
0
    def testRightRotationOperationWithShiftMinorThanBits(self):
        """
		testo l'operazione di rotazione a destra di un valore diverso da zero (e minore di 32)
		"""
        r = rightRotationOperation(self.a, 17)
        result = 0b11010101011111111000000001111111
        self.assertEqual(result, r)
Example #4
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)
Example #5
0
	def rotR1(cls,value):
		'''
		Effettua la rotazione a destra di un bit del valore passato come parametro
		'''
		return rightRotationOperation(value,1,16)			
Example #6
0
    def testRightRotationOperationWithShiftEqualToBits(self):
        """
		testo l'operazione di rotazione a destra di un valore uguale al numero di bits
		"""
        r = rightRotationOperation(self.a, 32)
        self.assertEqual(self.a, r)
Example #7
0
    def testRightRotationOperationWithoutRotation(self):
        """
		testo l'operazione di rotazione a destra di un valore zero
		"""
        r = rightRotationOperation(self.a, 0)
        self.assertEqual(self.a, r)