@startuml actor User autoactivate on User -> Backup : Create Repository Backup -> Backup : generate P-256 key pair return keypair Backup -> Yubikey : Read the public key of the YubiKey return public key Backup -> Backup : Calculate ECDHE shared secret return shared secret Backup -> Backup : Generate Curve 25519 key pair return keypair Backup -> Backup : Generate encyption key from the shared secret return encryption key Backup -> Backup : Encrypt the private key with the encryption key return encrypted private key Backup -> Backend : Store the encrypted private key and public key return success return success @enduml