fuchsia.identity.transfer

PROTOCOLS

AccountManagerPeer

Defined in fuchsia.identity.transfer/account_transfer.fidl

The control protocol used by two AccountManager components on different devices to exchange information.

Note: this is a sensitive interface and connections should only be created between AccountManagers on remotely attested devices. No components on the same device should connect over this protocol.

ReceiveAccount

Requests an account transfer. lifetime The lifetime that the transferred account should have on the target device. account_transfer The server end of an AccountTransfer channel.

Request

NameType
lifetime fuchsia.identity.account/Lifetime
account_transfer request<AccountTransfer>

AccountTransfer

Defined in fuchsia.identity.transfer/account_transfer.fidl

The control channel through which AccountManager components on different devices communicate to execute an account transfer.

When an account needs to be transferred, the source device should request an AccountTransfer connection using the ReceiveAccount method on the AccountManagerPeer exposed by the target device. Once the target device is ready, it sends an OnTransferReady containing a target_key. The source device should then encrypt the account using the target_key and complete the transfer with CompleteAccountTransfer. Once the account transfer is complete, the channel is closed.

OnTransferReady

This event is sent once by the target device when it has completed preparing to receive an account. The event contains a target_key which should be used to encrypt the account data sent through CompleteAccountTransfer.

Response

NameType
target_key fuchsia.kms/PublicKey

CompleteAccountTransfer

Completes the account transfer by sending the transfered data. The data is opaque to the AccountManager binary, and should be supplied and encrypted by the account handler on the source device using the target_key received through OnTransferReady.

If the account is already present on the target device this fails with UNSUPPORTED_OPERATION.

Request

NameType
encrypted_account_data vector<uint8>

Response

NameType
result AccountTransfer_CompleteAccountTransfer_Result

STRUCTS

AccountTransfer_CompleteAccountTransfer_Response

generated

NameTypeDescriptionDefault

UNIONS

AccountTransfer_CompleteAccountTransfer_Result

generated

NameTypeDescription
response AccountTransfer_CompleteAccountTransfer_Response
err fuchsia.identity.account/Error