Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pyaudio
- import socket
- from Crypto.Hash import SHA256
- from Crypto.Cipher import AES
- import os, random, sys
- from Crypto import Random
- from threading import Thread
- frames = []
- server_sni_hostname = 'tuongle'
- server_cert = 'server.crt'
- client_cert = 'client.crt'
- client_key = 'client.key'
- k = 'test'
- key = k.encode('utf-8')
- def getkey(password):
- hasher = SHA256.new(password)
- return hasher.digest()
- def createIv():
- IV = ''
- for i in range(16):
- IV += chr(random.randint(0, 0xFF))
- return IV
- def Padding(s):
- return s + ((16 - len(s) % 16) * '`')
- def udpStream():
- iv = Random.new().read(AES.block_size)
- encryptor = AES.new(getkey(key), AES.MODE_CFB, iv)
- udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
- #conn = context.wrap_socket(udp, server_side=False, server_hostname=server_sni_hostname)
- while True:
- if len(frames) > 0:
- smg = iv + encryptor.encrypt(frames.pop(0))
- udp.sendto(smg, ("192.168.100.11", 12345)) #
- udp.close()
- def record(stream, CHUNK):
- while True:
- data = stream.read(CHUNK,exception_on_overflow=False)
- exception_on_overflow=False
- frames.append(data)
- if __name__ == "__main__":
- CHUNK = 8192
- FORMAT = pyaudio.paInt16 #Audio Codec
- CHANNELS = 1 #Stereo or Mono
- RATE = 44100 #Sampling Rate
- dev_index = 2
- Audio = pyaudio.PyAudio()
- stream = Audio.open(format = FORMAT,
- channels = CHANNELS,
- rate = RATE,
- input = True,
- input_device_index = dev_index,
- frames_per_buffer = CHUNK,
- )
- #Initialize Threads
- AudioThread = Thread(target = record, args = (stream, CHUNK,))
- udpThread = Thread(target = udpStream)
- AudioThread.setDaemon(True)
- udpThread.setDaemon(True)
- AudioThread.start()
- udpThread.start()
- AudioThread.join()
- udpThread.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement