Account creation
This module allows users to create VeraId identifiers under Relaycorp-managed domain names for use in Letro. Such domain names are available for various locales, such as American English (applepie.rocks) and Venezuelan Spanish (guarapo.cafe), with nautilus.ink used as a fallback.
User name constraints
In addition to the constraints imposed by VeraId (i.e., at signs are not allowed and the name must contain at least one Unicode character), the following constraints are imposed:
- Whitespace is not allowed, and will be removed from the name.
- Upper case characters will be converted to lower case.
- The name must be up to 16 characters long.
- If the name contains reserved words (e.g., “admin”, “support”, “Relaycorp”, “Gus Narea”), the entire name will be replaced with a randomly generated name.
- If the name is already taken, we will create one with a randomly-generated suffix. For example, if
alice@nautilus.inkis requested but already taken, we will create something likealice-12345@nautilus.ink.
Messages
Account creation request
This message signifies a Letro user’s intention to create a VeraId identifier.
- Recipient: Letro server.
- Content type:
application/vnd.relaycorp.letro.account-request. - Content: A DER-serialised
AccountRequestSignaturestructure (see below).
The ASN.1 AccountRequestSignature structure is defined as follows:
AccountRequestSignature ::= SEQUENCE {
request [0] AccountRequest,
signature [1] BIT STRING
}
AccountRequest ::= SEQUENCE {
userName [0] UTF8String, -- E.g., "maria"
locale [1] VisibleString, -- E.g., "es-ve"
publicKey [2] SubjectPublicKeyInfo -- From the X.509 spec
}
AccountRequestSignature.signature MUST be the digital signature of the DER-serialised AccountRequestSignature.request using the private key corresponding to AccountRequest.publicKey.
Account creation
This message signifies that a VeraId identifier has been created.
- Recipient: Letro user agent.
- Content type:
application/vnd.relaycorp.letro.account-creation. - Content: A DER-serialised
AccountCreationstructure (see below).
The ASN.1 AccountCreation structure is defined as follows:
AccountCreation ::= SEQUENCE {
requestedUserName [0] UTF8String, -- E.g., "maria"
locale [1] VisibleString, -- E.g., "es-ve"
assignedUserId [2] UTF8String, -- E.g., "maria@guarapo.cafe"
veraidBundle [3] OCTET STRING
}
Data persistence
We do not store any data related to this module, beyond what’s already stored by the VeraId Authority server.