def test_seed(self): # use 32-byte secret self.assertRaises(TypeError, Private, secret=123) self.assertRaises(TypeError, Private, secret=b"too short") secret1 = b"abcdefghijklmnopqrstuvwxyz123456" assert len(secret1) == 32 priv1 = Private(secret=secret1) priv1a = Private(secret=secret1) priv1b = Private(priv1.serialize()) self.assertEqual(priv1.serialize(), priv1a.serialize()) self.assertEqual(priv1.serialize(), priv1b.serialize()) e = b"6062636465666768696a6b6c6d6e6f707172737475767778797a313233343576" self.assertEqual(hexlify(priv1.serialize()), e) # the private key is a clamped form of the secret, so they won't # quite be the same p = Private(secret=b"\x00" * 32) self.assertEqual(hexlify(p.serialize()), b"00" * 31 + b"40") p = Private(secret=b"\xff" * 32) self.assertEqual(hexlify(p.serialize()), b"f8" + b"ff" * 30 + b"7f") # use arbitrary-length seed self.assertRaises(TypeError, Private, seed=123) priv1 = Private(seed=b"abc") priv1a = Private(seed=b"abc") priv1b = Private(priv1.serialize()) self.assertEqual(priv1.serialize(), priv1a.serialize()) self.assertEqual(priv1.serialize(), priv1b.serialize()) self.assertRaises(AssertionError, Private, seed=b"abc", secret=b"no") priv1 = Private(seed=b"abc") priv1a = Private(priv1.serialize()) self.assertEqual(priv1.serialize(), priv1a.serialize()) self.assertRaises(AssertionError, Private, seed=b"abc", secret=b"no") # use built-in os.urandom priv2 = Private() priv2a = Private(priv2.private) self.assertEqual(priv2.serialize(), priv2a.serialize()) # attempt to use both secret= and seed=, not allowed self.assertRaises(AssertionError, Private, seed=b"abc", secret=b"no")
def test_seed(self): # use 32-byte secret self.assertRaises(TypeError, Private, secret=123) self.assertRaises(TypeError, Private, secret=b"too short") secret1 = b"abcdefghijklmnopqrstuvwxyz123456" assert len(secret1) == 32 priv1 = Private(secret=secret1) priv1a = Private(secret=secret1) priv1b = Private(priv1.serialize()) self.assertEqual(priv1.serialize(), priv1a.serialize()) self.assertEqual(priv1.serialize(), priv1b.serialize()) e = b"6062636465666768696a6b6c6d6e6f707172737475767778797a313233343576" self.assertEqual(hexlify(priv1.serialize()), e) # the private key is a clamped form of the secret, so they won't # quite be the same p = Private(secret=b"\x00"*32) self.assertEqual(hexlify(p.serialize()), b"00"*31+b"40") p = Private(secret=b"\xff"*32) self.assertEqual(hexlify(p.serialize()), b"f8"+b"ff"*30+b"7f") # use arbitrary-length seed self.assertRaises(TypeError, Private, seed=123) priv1 = Private(seed=b"abc") priv1a = Private(seed=b"abc") priv1b = Private(priv1.serialize()) self.assertEqual(priv1.serialize(), priv1a.serialize()) self.assertEqual(priv1.serialize(), priv1b.serialize()) self.assertRaises(AssertionError, Private, seed=b"abc", secret=b"no") priv1 = Private(seed=b"abc") priv1a = Private(priv1.serialize()) self.assertEqual(priv1.serialize(), priv1a.serialize()) self.assertRaises(AssertionError, Private, seed=b"abc", secret=b"no") # use built-in os.urandom priv2 = Private() priv2a = Private(priv2.private) self.assertEqual(priv2.serialize(), priv2a.serialize()) # attempt to use both secret= and seed=, not allowed self.assertRaises(AssertionError, Private, seed=b"abc", secret=b"no")