syntax = "proto3"; package arbiter.user_agent; import "google/protobuf/empty.proto"; import "evm.proto"; message AuthChallengeRequest { bytes pubkey = 1; optional string bootstrap_token = 2; } message AuthChallenge { bytes pubkey = 1; int32 nonce = 2; } message AuthChallengeSolution { bytes signature = 1; } message AuthOk {} message UnsealStart { bytes client_pubkey = 1; } message UnsealStartResponse { bytes server_pubkey = 1; } message UnsealEncryptedKey { bytes nonce = 1; bytes ciphertext = 2; bytes associated_data = 3; } enum UnsealResult { UNSEAL_RESULT_UNSPECIFIED = 0; UNSEAL_RESULT_SUCCESS = 1; UNSEAL_RESULT_INVALID_KEY = 2; UNSEAL_RESULT_UNBOOTSTRAPPED = 3; } enum VaultState { VAULT_STATE_UNSPECIFIED = 0; VAULT_STATE_UNBOOTSTRAPPED = 1; VAULT_STATE_SEALED = 2; VAULT_STATE_UNSEALED = 3; VAULT_STATE_ERROR = 4; } message UserAgentRequest { oneof payload { AuthChallengeRequest auth_challenge_request = 1; AuthChallengeSolution auth_challenge_solution = 2; UnsealStart unseal_start = 3; UnsealEncryptedKey unseal_encrypted_key = 4; google.protobuf.Empty query_vault_state = 5; google.protobuf.Empty evm_wallet_create = 6; google.protobuf.Empty evm_wallet_list = 7; } } message UserAgentResponse { oneof payload { AuthChallenge auth_challenge = 1; AuthOk auth_ok = 2; UnsealStartResponse unseal_start_response = 3; UnsealResult unseal_result = 4; VaultState vault_state = 5; arbiter.evm.WalletCreateResponse evm_wallet_create = 6; arbiter.evm.WalletListResponse evm_wallet_list = 7; } }