Advertisement
Guest User

Untitled

a guest
Jul 18th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.98 KB | None | 0 0
  1. import pyaudio
  2. import socket
  3. from Crypto.Hash import SHA256
  4. from Crypto.Cipher import AES
  5. import os, random, sys
  6. from Crypto import Random
  7. from threading import Thread
  8.  
  9. frames = []
  10. server_sni_hostname = 'tuongle'
  11. server_cert = 'server.crt'
  12. client_cert = 'client.crt'
  13. client_key = 'client.key'
  14. k = 'test'
  15. key = k.encode('utf-8')
  16.  
  17. def getkey(password):
  18. hasher = SHA256.new(password)
  19. return hasher.digest()
  20. def createIv():
  21. IV = ''
  22.  
  23. for i in range(16):
  24. IV += chr(random.randint(0, 0xFF))
  25. return IV
  26.  
  27. def Padding(s):
  28. return s + ((16 - len(s) % 16) * '`')
  29.  
  30. def udpStream():
  31. iv = Random.new().read(AES.block_size)
  32. encryptor = AES.new(getkey(key), AES.MODE_CFB, iv)
  33. udp = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
  34. #conn = context.wrap_socket(udp, server_side=False, server_hostname=server_sni_hostname)
  35.  
  36. while True:
  37. if len(frames) > 0:
  38. smg = iv + encryptor.encrypt(frames.pop(0))
  39. udp.sendto(smg, ("192.168.100.11", 12345)) #
  40. udp.close()
  41.  
  42. def record(stream, CHUNK):
  43. while True:
  44. data = stream.read(CHUNK,exception_on_overflow=False)
  45. exception_on_overflow=False
  46. frames.append(data)
  47.  
  48. if __name__ == "__main__":
  49. CHUNK = 8192
  50. FORMAT = pyaudio.paInt16 #Audio Codec
  51. CHANNELS = 1 #Stereo or Mono
  52. RATE = 44100 #Sampling Rate
  53. dev_index = 2
  54.  
  55. Audio = pyaudio.PyAudio()
  56.  
  57. stream = Audio.open(format = FORMAT,
  58. channels = CHANNELS,
  59. rate = RATE,
  60. input = True,
  61. input_device_index = dev_index,
  62. frames_per_buffer = CHUNK,
  63. )
  64.  
  65. #Initialize Threads
  66. AudioThread = Thread(target = record, args = (stream, CHUNK,))
  67. udpThread = Thread(target = udpStream)
  68. AudioThread.setDaemon(True)
  69. udpThread.setDaemon(True)
  70. AudioThread.start()
  71. udpThread.start()
  72. AudioThread.join()
  73. udpThread.join()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement