def test_basic(self): """ """ for i in range(0, 1000): test_octets = int_to_string(i) self.assertEqual(string_to_int(test_octets), i) self.assertEqual(b27decode(b27encode(test_octets)), test_octets) self.assertEqual(b85decode(b85encode(test_octets)), test_octets) self.assertEqual(b94decode(b94encode(test_octets)), test_octets)
def test_RFC1924_Example(self): """ Test conformance of to RFC1924 definition of base85 RFC1924 example of a IPv6 address -> 1080:0:0:0:8:800:200C:417A """ rfc1924_example_number = 0x108000000000000000080800200C417A rfc1924_example = int_to_string(rfc1924_example_number) rfc1924_example_encoded = "4)+k&C#VzJ4br>0wv%Yp" base85_encoded = b85encode(rfc1924_example) self.assertEqual(base85_encoded, rfc1924_example_encoded) self.assertEqual(b85decode(base85_encoded), rfc1924_example)
def test_RFC1924_Example(self): """ Test conformance of to RFC1924 definition of base85 RFC1924 example of a IPv6 address -> 1080:0:0:0:8:800:200C:417A """ rfc1924_example_number = 0x108000000000000000080800200c417a rfc1924_example = int_to_string(rfc1924_example_number) rfc1924_example_encoded = '4)+k&C#VzJ4br>0wv%Yp' base85_encoded = b85encode(rfc1924_example) self.assertEqual(base85_encoded, rfc1924_example_encoded) self.assertEqual(b85decode(base85_encoded), rfc1924_example)
if __name__ == '__main__': """ Examples of text encodings for 128 bit and 48 bits (USID and SID) """ # calculate a USID and SID and use to demonstrate encodings service_name = 'service.name.example' from hashlib import sha256 hash_value = sha256( service_name ).digest() usid = hash_value[0:16] # USIDs are 16 octets of the hash value service_id = hash_value[0:6] # SIDs are 6 octets of the hash value print 'service name: ', service_name print 'hash value: ', hash_value.encode('hex') print 'usid: ', usid.encode('hex') print 'usid b27 ', b27encode(usid) assert b27decode(b27encode(usid)) == usid # test decode b27 print 'usid b85 ', b85encode(usid) print 'usid b94: ', b94encode(usid) print 'service id: ', service_id.encode('hex') print 'service id b27: ', b27encode(service_id) print 'service id b85: ', b85encode(service_id) print 'service id b94: ', b94encode(service_id) service_name = 'service.name.example' hash_value = sha256( service_name ).digest() usid = hash_value[0:16] usib_b27 = b27encode(usid) print 'usid b27', usib_b27