示例#1
0
        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()
示例#2
0
        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()
示例#3
0
文件: test.py 项目: david415/pynacl-1
 def nonce(self):
     return nacl.randombytes(nacl.crypto_box_NONCEBYTES)
示例#4
0
文件: test.py 项目: david415/pynacl-1
 def test_random_1000(self):
     r = nacl.randombytes(1000)
     self.assertEqual(len(r), 1000)
示例#5
0
 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)
示例#6
0
 def test_random_1000(self):
     r = nacl.randombytes(1000)
     self.assertEqual(len(r), 1000)
示例#7
0
 def setUp(self):
     self.k = nacl.randombytes(self.attr('_KEYBYTES'))
     self.auth = self.attr('')
     self.verify = self.attr('_verify')
示例#8
0
 def test_stream(self):
     nonce = nacl.randombytes(nacl.crypto_stream_NONCEBYTES)
     c = nacl.crypto_stream(1000, nonce, self.k)
     self.assertEqual(len(c), 1000)
示例#9
0
 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)
示例#10
0
文件: test.py 项目: david415/pynacl-1
 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)
示例#11
0
文件: test.py 项目: david415/pynacl-1
 def test_random_10(self):
     r = nacl.randombytes(10)
     self.assertEqual(len(r), 10)
     s = nacl.randombytes(10)
     self.assertNotEqual(r, s)
示例#12
0
文件: test.py 项目: david415/pynacl-1
 def setUp(self):
     self.k = nacl.randombytes(nacl.crypto_secretbox_KEYBYTES)
示例#13
0
文件: test.py 项目: david415/pynacl-1
 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)
示例#14
0
        def randombytes(self, l = 0):
                """
                """

                return nacl.randombytes(l)
示例#15
0
        def __init__(self):
                """
                """

                self.seed(nacl.randombytes(16))
                self.gauss_next = None
示例#16
0
 def setUp(self):
     self.k = nacl.randombytes(nacl.crypto_secretbox_KEYBYTES)
示例#17
0
 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)
示例#18
0
文件: test.py 项目: david415/pynacl-1
 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)
示例#19
0
 def setUp(self):
     self.k = nacl.randombytes(nacl.crypto_stream_KEYBYTES)
示例#20
0
文件: test.py 项目: david415/pynacl-1
 def setUp(self):
     self.k = nacl.randombytes(nacl.crypto_stream_KEYBYTES)
示例#21
0
 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)
示例#22
0
文件: test.py 项目: david415/pynacl-1
 def test_stream(self):
     nonce = nacl.randombytes(nacl.crypto_stream_NONCEBYTES)
     c = nacl.crypto_stream(1000, nonce, self.k)
     self.assertEqual(len(c), 1000)
示例#23
0
 def test_random_10(self):
     r = nacl.randombytes(10)
     self.assertEqual(len(r), 10)
     s = nacl.randombytes(10)
     self.assertNotEqual(r, s)
示例#24
0
文件: test.py 项目: david415/pynacl-1
 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)
示例#25
0
 def nonce(self):
     return nacl.randombytes(nacl.crypto_box_NONCEBYTES)
示例#26
0
文件: test.py 项目: david415/pynacl-1
 def setUp(self):
     self.k = nacl.randombytes(self.attr('_KEYBYTES'))
     self.auth = self.attr('')
     self.verify = self.attr('_verify')