Write new secret manager using existing RSA logic
This commit is contained in:
@ -140,11 +140,23 @@ class ShellStoreSecret(CommandDispatcher):
|
||||
secret=secret_name,
|
||||
)
|
||||
|
||||
await self.store_managed_secret(secret_name, secret_data)
|
||||
|
||||
def encrypt_secret(self, value: str) -> str:
|
||||
"""Encrypt a secret."""
|
||||
public_key = load_public_key(self.client.public_key.encode())
|
||||
return encrypt_string(value, public_key)
|
||||
|
||||
async def store_managed_secret(self, secret_name: str, secret_data: str) -> None:
|
||||
"""Store managed secret."""
|
||||
system_client = await self.backend.get_system_client()
|
||||
if not system_client:
|
||||
return
|
||||
public_key = load_public_key(system_client.public_key.encode())
|
||||
encrypted = encrypt_string(secret_data, public_key)
|
||||
await self.backend.create_client_secret(("id", str(system_client.id)), secret_name, encrypted)
|
||||
await self.audit(operation=Operation.CREATE, message="Managed secret entry created.", secret=secret_name)
|
||||
|
||||
async def get_secret_on_stdin(self) -> str | None:
|
||||
"""Get secret from stdin."""
|
||||
secret_data = ""
|
||||
|
||||
Reference in New Issue
Block a user