Data Structure

Main Data Structures

PlantUML Diagram Loading...

Info

Although the data types are basically JSON format types, the following two types are used exceptionally for explanation.

  • Date Date and time information. Handled as a string type in ISO8601 format in JSON.
  • Buffer Binary (byte array) information. Handled as a string type in Base64Url format in JSON.

FSS WebAPI mainly handles “user data” and “credential data”.

  • User Data
  • Credential Data
    • Handles information on credentials (public keys for FIDO authentication processing, etc.).
    • Basically, it handles the information of PublicKeyCredential in WebAuthn and AuthenticatorAttestationResponse used inside it.
    • Information held in binary format in AuthenticatorAttestationResponse is expanded and held in a format that is easy to handle.
    • One user data is associated with 0 to n credential data.

For both data, as FSS original items, there are items called attributes for holding application-specific information and a disabled flag item.

User Data

The format of user data is as follows.

interface UserData {
	rpId : string,
	userId : Buffer,
	userName : string,
	displayName : string | null,
	userAttributes : { [key : string] : any} | null,
	disabled : boolean,
	registered : Date,
	updated : Date,
	enabledCredentialCount : number,
	credentialCount : number,
}
Key Type Content
rpId string RP ID.
userId Buffer User ID. A Base64Url encoded string of id of PublicKeyCredentialUserEntity.
userName string User name. Corresponds to name of PublicKeyCredentialUserEntity.
*Since user identification is done by userId, duplication of userName is allowed by default, but it can be prohibited by RP settings.
displayName string | null Display name. Corresponds to displayName of PublicKeyCredentialUserEntity.
userAttributes { [key : string] : any } | null User attributes. Stores additional information that can be freely set by the FSS WebAPI user. A JSON object format or null can be set.
disabled boolean Disabled flag. If true, the record is invalid.
registered Date A string representing the registration date and time in ISO8601 format.
updated Date A string representing the update date and time in ISO8601 format.
enabledCredentialCount number The number of valid (disabled is false) credential data associated with the user.
credentialCount number The number of credential data associated with the user. Includes credential data that is considered invalid.

Credential Data

The format of credential data is as follows.

interface CredentialData {
	rpId : string,
	userId : Buffer,
	credentialId : Buffer,
	credentialName : string | null,
	credentialAttributes : { [key : string] : any} | null,
	format : string,
	userPresence : boolean,
	userVerification : boolean,
	backupEligibility : boolean,
	backupState : boolean,
	attestedCredentialData : boolean,
	extensionData : boolean,
	aaguid : string | null,
	aaguidModelName : string | null,
	publicKey : Buffer,
	transportsRaw : string | null,
	transportsBle : boolean | null,
	transportsHybrid : boolean | null,
	transportsInternal : boolean | null,
	transportsNfc : boolean | null,
	transportsUsb : boolean | null,
	discoverableCredential : boolean | null,
	enterpriseAttestation : boolean,
	vendorId : string | null,
	authenticatorId : string | null,
	attestationObject : Buffer,
	authenticatorAttachment : string | null,
	credentialType : string,
	clientDataJson : string,
	clientDataJsonRaw : string,
	lastAuthenticated : Date | null,
	lastSignCounter : number | null,
	disabled : boolean,
	registered : Date,
	updated : Date,
}
Key Type Content
rpId string RP ID.
userId Buffer User ID. A Base64Url encoded string of id of PublicKeyCredentialUserEntity.
credentialId Buffer Credential ID. A Base64Url encoded string of credentialId of AttestedCredentialData.
credentialName string | null Credential name. Can be arbitrarily specified by the FSS WebAPI user at the time of credential registration.
credentialAttributes { [key : string] : any} | null Credential attributes. Stores additional information that can be freely set by the FSS WebAPI user. A JSON object format or null can be set.
format string Attestation format. Corresponds to fmt of AttestationObject.
userPresence boolean true if user presence was performed at the time of credential registration. Corresponds to UP of flags of AuthenticatorData.
userVerification boolean true if user verification was performed at the time of credential registration. Corresponds to UV of flags of AuthenticatorData.
backupEligibility boolean true if there is backup eligibility at the time of credential registration. Corresponds to BE of flags of AuthenticatorData.
backupState boolean true if a backup is being performed at the time of credential registration. Corresponds to BS of flags of AuthenticatorData.
attestedCredentialData boolean true if attested credential data exists at the time of credential registration. Corresponds to AT of flags of AuthenticatorData. (Since a credential cannot be registered if AttestedCredentialData does not exist, it will always be true)
extensionData boolean true if extension information exists at the time of credential registration. Corresponds to ED of flags of AuthenticatorData.
aaguid string | null AAGUID of the registered authenticator. Corresponds to aaguid of AttestedCredentialData.
aaguidModelName string | null Authenticator model name derived from AAGUID and MDS (FIDO Alliance MetaData Service). null if the corresponding information does not exist.
publicKey Buffer Public key. Corresponds to credentialPublicKey of AttestedCredentialData.
transportsRaw string | null Corresponds to the execution result of the getTransports() method of AuthenticatorAttestationResponse. Can be recorded by setting the transports parameter in the registerCredential/finish call parameter.
transportsBle boolean | null true if the authenticator supports transport by BLE.
transportsHybrid boolean | null true if the authenticator supports transport by hybrid authentication.
transportsInternal boolean | null true if the authenticator supports internal transport.
transportsNfc boolean | null true if the authenticator supports transport by NFC.
transportsUsb boolean | null true if the authenticator supports transport by USB.
discoverableCredential boolean | null true if the authentication information is a DiscoverableCredential. (Corresponds to rk of the credProps extension. May not be available on platforms that do not support the credProps extension)
enterpriseAttestation boolean true if FSS can confirm that it is EnterpriseAttestation.
vendorId string | null Vendor ID when EnterpriseAttestation is confirmed (FSS original definition). As of 2025/08, only yubico.
authenticatorId string | null Identifier such as serial number when EnterpriseAttestation is confirmed.
attestationObject Buffer The entire AttestationObject.
authenticatorAttachment string | null A string indicating the authenticator type (platform authenticator/cross-platform authenticator). Corresponds to authenticatorAttachment of PublicKeyCredential.
credentialType string Credential type. Corresponds to type of PublicKeyCredential. Fixed to “public-key”.
clientDataJson string Client data JSON. Corresponds to the Base64Url decoded clientDataJSON item of AuthenticatorAttestationResponse.
clientDataJsonRaw Buffer Binary representation of client data JSON. Corresponds to the clientDataJSON item of AuthenticatorAttestationResponse.
lastAuthenticated Date | null Last authentication date and time. null if not yet authenticated.
lastSignCounter number | null Internal counter value at the time of the last authentication. Corresponds to the signCount item of AuthenticatorData.
disabled boolean Disabled flag. If true, the record is invalid.
registered Date A string representing the registration date and time in ISO8601 format.
updated Date A string representing the update date and time in ISO8601 format.
*lastAuthenticated and lastSignCounter are updated at the time of authentication, but updated is not updated when this data is updated.

Other Data Structures

These are types used in some API calls.

Credential Name Setting Data

This is a data structure for setting the credential name from the registration content at the time of credential registration. If a string is specified for this type, it is considered that only the name property is set.

type Fido2CredentialNameParameter = {
	name : string;
	nameIfModelNameExists? : string;
	nameIfEnterpriseAttestationExists? : string;
} | string | undefined;
Key Type Content
name string Credential name.
nameIfModelNameExists string Credential name used when the authenticator type can be obtained from AAGUID. If omitted or if the authenticator type cannot be obtained, the name property is used.
nameIfEnterpriseAttestationExists string Credential name used when FSS can confirm that it is EnterpriseAttestation. If omitted or if it is not EnterpriseAttestation, the nameIfModelNameExists property is used.
Info

Each property of Fido2CredentialNameParameter can include the following placeholders, which will be replaced with the actual values at the time of registration.

  • $$: Replaced with $.
  • $modelName: Product model name derived from AAGUID.
  • $authenticatorId: Authenticator ID (serial number, etc.) derived from the certificate in the case of EnterpriseAttestation.