008-application_secret.py 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import pathlib
  2. current = pathlib.Path(__file__).parent
  3. root = current.parent
  4. import sys
  5. sys.path.append(str(root))
  6. import assets
  7. import assets
  8. import sqlmodel
  9. def drop_db() -> None:
  10. db = pathlib.Path("./008-application_secret.db")
  11. if db.is_file():
  12. db.unlink()
  13. drop_db()
  14. connection = sqlmodel.create_engine("sqlite:///008-application_secret.db")
  15. user_app = assets.application_user(connection)
  16. secret_app = assets.application_secret(connection)
  17. sqlmodel.SQLModel.metadata.create_all(connection)
  18. user_app.register("test", "password")
  19. apikey = user_app.login("test", "password")["apikey"]
  20. print("Create test user, apikey: " + apikey)
  21. code_key = user_app.get(apikey)["code_key"]
  22. coder = assets.code_key_manager("password", code_key).coder
  23. coded = coder.encrypt("sample")
  24. secret_app.create(apikey, "sample", "https://xyz.com", coded)
  25. print()
  26. print("Created secret.")
  27. print("Result:")
  28. print(secret_app.get(apikey, "sample"))
  29. print()
  30. print("Decoding:")
  31. print(coder.decrypt(secret_app.get(apikey, "sample")["coded"]))
  32. drop_db()