| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- import sqlmodel
- import hashlib
- import Crypto
- class secret(sqlmodel.SQLModel, table = True):
- id: int | None = sqlmodel.Field(default = None, primary_key = True)
- name: str = sqlmodel.Field(default = None, index = True)
- domain: str = sqlmodel.Field(default = None, index = True)
- crypted: bytes = sqlmodel.Field(default = None)
- nonce: bytes = sqlmodel.Field(default = None)
- class secret_builder:
- def __init__(self):
- self.clean()
- def clean(self) -> None:
- self.__target = secret()
- @property
- def ready(self) -> bool:
- if self.__target.name is None or self.__target.domain is None:
- return False
- if self.__target.crypted is None or self.__target.nonce is None:
- return False
- return True
- @property
- def result(self) -> secret:
- if not self.ready:
- raise TypeError("Secret is not ready to load.")
- return self.__target
- @property
- def name(self) -> str | None:
- return self.__target.name
- @property
- def domain(self) -> str | None:
- return self.__target.domain
- def crypt(self, key: str, target: str) -> bool:
- pass
|