def __init__(self, host = "", ip = "", port = 0, key = "", ext = "", timeout = 5, consumer = None, clientext = "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"): asyncore.dispatcher.__init__(self) self.consumer = consumer self.host = host self.ip = ip self.port = port self.key = key self.ext = ext self.start = time.time() self.timeout = timeout self.clientext = clientext nonce = "CurveCP-client-H%s" % nacl.randombytes(8) packet = "QvnQ5XlH" packet += self.ext packet += self.clientext #XXX (self.clientshorttermpk, self.clientshorttermsk) = nacl.crypto_box_curve25519xsalsa20poly1305_keypair() packet += self.clientshorttermpk packet += allzero packet += nonce[16:] text = nacl.crypto_box_curve25519xsalsa20poly1305(allzero, nonce, self.key, self.clientshorttermsk) packet += text self.packet = packet try: self.create_socket(socket.AF_INET, socket.SOCK_DGRAM) self.bind(('', 0)) except socket.error: self.handle_error()
def __init__(self, query = None, consumer = None): """ """ asyncore.dispatcher.__init__(self) self.consumer = consumer self.query = query if not len(self.query.transport): raise Exception("XXX") (self.ip, self.remotepk, self.zone, self.timeout) = self.query.transport[0] self.query.transport = self.query.transport[1:] self.dnsid = nacl.randombytes(2) #dnscurve self.nonce = "" self.mypk = "" self.txtid = "" self.key = "" if self.remotepk: self.nonce = nacl.randombytes(12) mysk = nacl.randombytes(32) self.mypk = nacl.crypto_scalarmult_curve25519_base(mysk) self.key = nacl.crypto_box_curve25519xsalsa20poly1305_beforenm(self.remotepk, mysk) if self.zone: self.txtid = nacl.randombytes(2) self.start = time.time() self.connected = False self.response = "" if self.remotepk: self.request = self.query.dnscurve_packet(self.zone, self.mypk, self.key, self.nonce, self.dnsid, self.txtid) else: self.request = self.query.packet(self.dnsid) if self.query.tcp: self.request = "%s%s" % (struct.pack('>H', len(self.request)), self.request) try: self.bindconnect() except socket.error: self.handle_error()
def nonce(self): return nacl.randombytes(nacl.crypto_box_NONCEBYTES)
def test_random_1000(self): r = nacl.randombytes(1000) self.assertEqual(len(r), 1000)
def setUp(self): self.sk1 = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) self.pk1 = nacl.crypto_scalarmult_curve25519_base(self.sk1) self.sk2 = nacl.randombytes(nacl.crypto_scalarmult_curve25519_BYTES) self.pk2 = nacl.crypto_scalarmult_curve25519_base(self.sk2)
def setUp(self): self.k = nacl.randombytes(self.attr('_KEYBYTES')) self.auth = self.attr('') self.verify = self.attr('_verify')
def test_stream(self): nonce = nacl.randombytes(nacl.crypto_stream_NONCEBYTES) c = nacl.crypto_stream(1000, nonce, self.k) self.assertEqual(len(c), 1000)
def test_secretbox_badsig(self): nonce = nacl.randombytes(nacl.crypto_secretbox_NONCEBYTES) c = nacl.crypto_secretbox(self.msg, nonce, self.k) c1 = c[:-1] + bchr((ord(c[-1:]) + 1) % 256) self.assertRaises(ValueError, nacl.crypto_secretbox_open, c1, nonce, self.k)
def test_secretbox(self): nonce = nacl.randombytes(nacl.crypto_secretbox_NONCEBYTES) c = nacl.crypto_secretbox(self.msg, nonce, self.k) m = nacl.crypto_secretbox_open(c, nonce, self.k) self.assertEqual(m, self.msg)
def test_random_10(self): r = nacl.randombytes(10) self.assertEqual(len(r), 10) s = nacl.randombytes(10) self.assertNotEqual(r, s)
def setUp(self): self.k = nacl.randombytes(nacl.crypto_secretbox_KEYBYTES)
def randombytes(self, l = 0): """ """ return nacl.randombytes(l)
def __init__(self): """ """ self.seed(nacl.randombytes(16)) self.gauss_next = None
def setUp(self): self.k = nacl.randombytes(nacl.crypto_stream_KEYBYTES)
def test_stream_xor(self): nonce = nacl.randombytes(nacl.crypto_stream_NONCEBYTES) c = nacl.crypto_stream_xor(self.msg, nonce, self.k) m = nacl.crypto_stream_xor(c, nonce, self.k) self.assertEqual(m, self.msg)