2
0

create_keys.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. import os
  2. import rsa
  3. from cryptography.hazmat.backends import default_backend
  4. #from cryptography.hazmat.primitives.asymmetric import rsa
  5. from cryptography.hazmat.primitives import serialization
  6. from cryptography.fernet import Fernet
  7. def make_keys(contract_name):
  8. (public_key,private_key)=rsa.newkeys(2048)
  9. # private_key = rsa.generate_private_key(
  10. # public_exponent=65537,
  11. # key_size=2048,
  12. # backend=default_backend()
  13. # )
  14. # public_key = private_key.public_key()
  15. # pem = public_key.public_bytes(
  16. # encoding=serialization.Encoding.PEM,
  17. # format=serialization.PublicFormat.SubjectPublicKeyInfo
  18. # )
  19. path = 'contract_keys\\' + contract_name + '\\'
  20. os.mkdir(path)
  21. with open(path + 'publickey.key','wb') as f:
  22. f.write(public_key)
  23. # pem = private_key.private_bytes(
  24. # encoding=serialization.Encoding.PEM,
  25. # format=serialization.PrivateFormat.PKCS8,
  26. # encryption_algorithm=serialization.NoEncryption()
  27. # )
  28. with open(path + 'privatekey.key','wb') as f:
  29. f.write(private_key)
  30. symmetric_key = Fernet.generate_key()
  31. with open(path + 'symmetric.key','wb') as f:
  32. f.write(symmetric_key)
  33. def get_keys(contract_name):
  34. path = 'contract_keys\\' + contract_name + '\\publickey.key'
  35. # with open(path, 'rb') as f:
  36. # public_key = serialization.load_pem_public_key(
  37. # f.read(),
  38. # backend=default_backend()
  39. # )
  40. # return public_key
  41. with open(path, 'rb') as f:
  42. return rsa.PublicKey.load_pkcs1(f.read())
  43. def get_symmetric_key(contract_name):
  44. path = 'contract_keys\\' + contract_name + '\\symmetric.key'
  45. with open(path, 'rb') as f:
  46. return f.read()
  47. def get_private_key(contract_name):
  48. path = 'contract_keys\\' + contract_name + '\\privatekey.key'
  49. # with open(path, "rb") as key_file:
  50. # private_key = serialization.load_pem_private_key(
  51. # key_file.read(),
  52. # password=None,
  53. # backend=default_backend()
  54. # )
  55. # return private_key
  56. with open(path, 'rb') as f:
  57. return rsa.PrivateKey.load_pkcs1(f.read())
  58. def get_plain_key(contract_name):
  59. path = 'contract_keys\\' + contract_name + '\\publickey.key'
  60. with open(path, 'rt') as f:
  61. return f.read().split('-----')[2].strip().replace('\n', '')