def testDecode2(self): # Multi-byte integer der = DerInteger() # Value 0x180L der.decode(b('\x02\x02\x01\x80')) self.assertEquals(der.value, 0x180) # One very long integer der.decode( b('\x02\x82\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00') + b('\x00\x00\x00\x00\x00\x00\x00\x00\x00')) self.assertEquals(der.value, 2**2048)
def testStrict1(self): number = DerInteger() number.decode(b'\x02\x02\x00\x01') number.decode(b'\x02\x02\x00\x7F') self.assertRaises(ValueError, number.decode, b'\x02\x02\x00\x01', strict=True) self.assertRaises(ValueError, number.decode, b'\x02\x02\x00\x7F', strict=True)
def testDecode2(self): # Multi-byte integer der = DerInteger() # Value 0x180L der.decode(b('\x02\x02\x01\x80')) self.assertEquals(der.value,0x180L) # One very long integer der.decode( b('\x02\x82\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')+ b('\x00\x00\x00\x00\x00\x00\x00\x00\x00')) self.assertEquals(der.value,2L**2048)
def testStrict1(self): number = DerInteger() number.decode(b'\x02\x02\x00\x01') number.decode(b'\x02\x02\x00\x7F') self.assertRaises(ValueError, number.decode, b'\x02\x02\x00\x01', strict=True) self.assertRaises(ValueError, number.decode, b'\x02\x02\x00\x7F', strict=True)
def testDecode3(self): # Negative integer der = DerInteger() # Value -1 der.decode(b('\x02\x01\xFF')) self.assertEquals(der.value, -1) # Value -32768 der.decode(b('\x02\x02\x80\x00')) self.assertEquals(der.value, -32768)
def testDecode3(self): # Negative integer der = DerInteger() # Value -1 der.decode(b('\x02\x01\xFF')) self.assertEquals(der.value, -1) # Value -32768 der.decode(b('\x02\x02\x80\x00')) self.assertEquals(der.value, -32768)
def testDecode5(self): # We still accept BER integer format der = DerInteger() # Redundant leading zeroes der.decode(b('\x02\x02\x00\x01')) self.assertEquals(der.value, 1) # Redundant leading 0xFF der.decode(b('\x02\x02\xFF\xFF')) self.assertEquals(der.value, -1) # Empty payload der.decode(b('\x02\x00')) self.assertEquals(der.value, 0)
def testDecode1(self): # Single-byte integer der = DerInteger() # Value 0 der.decode(b('\x02\x01\x00')) self.assertEquals(der.value, 0) # Value 1 der.decode(b('\x02\x01\x01')) self.assertEquals(der.value, 1) # Value 127 der.decode(b('\x02\x01\x7F')) self.assertEquals(der.value, 127)
def testDecode5(self): # We still accept BER integer format der = DerInteger() # Redundant leading zeroes der.decode(b('\x02\x02\x00\x01')) self.assertEquals(der.value, 1) # Redundant leading 0xFF der.decode(b('\x02\x02\xFF\xFF')) self.assertEquals(der.value, -1) # Empty payload der.decode(b('\x02\x00')) self.assertEquals(der.value, 0)
def testDecode1(self): # Single-byte integer der = DerInteger() # Value 0 der.decode(b('\x02\x01\x00')) self.assertEquals(der.value, 0) # Value 1 der.decode(b('\x02\x01\x01')) self.assertEquals(der.value, 1) # Value 127 der.decode(b('\x02\x01\x7F')) self.assertEquals(der.value, 127)
def testDecode7(self): # Verify decode returns the DerInteger der = DerInteger() self.assertEquals(der, der.decode(b('\x02\x01\x7F')))
def testDecode6(self): # Explicit encoding number = DerInteger(explicit=3) number.decode(b('\xa3\x03\x02\x01\x34')) self.assertEquals(number.value, 0x34)
def testDecode7(self): # Verify decode returns the DerInteger der = DerInteger() self.assertEquals(der, der.decode(b('\x02\x01\x7F')))
def testDecode6(self): # Explicit encoding number = DerInteger(explicit=3) number.decode(b('\xa3\x03\x02\x01\x34')) self.assertEquals(number.value, 0x34)