main.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/usr/bin/python3
  2. from lib import eecdh
  3. from sys import argv
  4. if __name__=='__main__':
  5. action=0
  6. o_type='PEM'
  7. name=''
  8. peer_pub=''
  9. key=''
  10. length=32
  11. #0-help
  12. #1-gen
  13. #2-ECDH with HKDF
  14. #3-Pure ECDH
  15. for i in range(1,len(argv)):
  16. if(argv[i][0]=='-'):
  17. if(argv[i]=='-h'):
  18. pass
  19. elif(argv[i]=='-g'):
  20. action=1
  21. elif(argv[i]=='-n'):
  22. name=argv[i+1]
  23. elif(argv[i]=='-t'):
  24. o_type=argv[i+1]
  25. elif(argv[i]=='-i'):
  26. peer_pub=argv[i+1]
  27. elif(argv[i]=='-k'):
  28. key=argv[i+1]
  29. elif(argv[i]=='-dh'):
  30. action=2
  31. elif(argv[i]=='-pdh'):
  32. action=3
  33. elif(argv[i]=='-l'):
  34. length=int(argv[i+1])
  35. else:
  36. pass
  37. if(action==0):
  38. print(
  39. 'Invalid command\n\
  40. -dh [-k -i -n -t -l] — computate shared key with ECDH+HKDF and save to *share_key*\n\
  41. -pdh [-k -i -n -t] — computate shared key with pure ECDH and save to *share_key*\n\
  42. -g\t\t— generate key\'s pair and save it DEFAULT=key[.pub]\n\
  43. -h\t\t— help page\n\
  44. -t [PEM|DER]\t— set output/imported key type DEFAULT=PEM\n\
  45. -n name\t\t— set output file name\n\
  46. -i peer_key\t— import peer public key from peer_key\n\
  47. -k key\t\t— import private key DEFAULT=key\n\
  48. -l key_length\t— set key length in bytes for KDF DEFAULT=32')
  49. elif(action==1):
  50. print('Key generation...')
  51. eecdh.gen_key(file=name,o_type=o_type)
  52. elif(action==2):
  53. eecdh.ecdh(key,peer_pub,name,o_type,length)
  54. elif(action==3):
  55. eecdh.pure_ecdh(key,peer_pub,name,o_type)