def test_stream(self): msg = b'Hello, world!' key = nacl.randombytes(nacl.stream_KEYBYTES) nonce = nacl.randombytes(nacl.stream_NONCEBYTES) enc = nacl.stream_xor(msg, nonce, key) self.assertIsInstance(enc, bytes) self.assertEqual(len(msg), len(enc)) msg2 = nacl.stream_xor(enc, nonce, key) self.assertEqual(msg, msg2)
def test_scalarmult(self): x = nacl.randombytes(nacl.scalarmult_SCALARBYTES) y = nacl.randombytes(nacl.scalarmult_SCALARBYTES) gX = nacl.scalarmult_base(x) self.assertEqual(len(gX), nacl.scalarmult_BYTES) gY = nacl.scalarmult_base(y) self.assertEqual(len(gY), nacl.scalarmult_BYTES) gXY = nacl.scalarmult(y, gX) self.assertEqual(len(gXY), nacl.scalarmult_BYTES) gYX = nacl.scalarmult(x, gY) self.assertEqual(len(gYX), nacl.scalarmult_BYTES) self.assertEqual(gXY, gYX)
def test_onetimeauth(self): msg = b'Hello, world!' key = nacl.randombytes(nacl.lookup('onetimeauth_KEYBYTES')) auth = nacl.onetimeauth(msg, key) self.assertIsInstance(auth, bytes) self.assertTrue(nacl.onetimeauth_verify(auth, msg, key)) self.assertEqual(len(auth), nacl.lookup('onetimeauth_BYTES')) msg = bytearray(msg) key = bytearray(key) auth = bytearray(auth) msg[0] ^= 0xff; self.assertFalse(nacl.onetimeauth_verify(auth, msg, key)) msg[0] ^= 0xff; self.assertTrue(nacl.onetimeauth_verify(auth, msg, key)) key[0] ^= 0xff; self.assertFalse(nacl.onetimeauth_verify(auth, msg, key)) key[0] ^= 0xff; self.assertTrue(nacl.onetimeauth_verify(auth, msg, key)) auth[0] ^= 0xff; self.assertFalse(nacl.onetimeauth_verify(auth, msg, key)) auth[0] ^= 0xff; self.assertTrue(nacl.onetimeauth_verify(auth, msg, key))