Data Types

COSE Algorithm Identifiers

The WebAuthn specification uses COSE Algorithm Identifiers to specify which signing algorithms are allowed for new WebAuthn passkeys during registration and also the signing algorithm that a given passkey is using. These identifier values are defined by the IANA COSE Algorithms registry. FusionAuth supports a subset of these algorithms.

Supported algorithms

NameValueDescription
RS256-257RSASSA-PKCS1-v1_5 using SHA-256
RS384-258RSASSA-PKCS1-v1_5 using SHA-384
RS512-259RSASSA-PKCS1-v1_5 using SHA-512
PS256-37RSASSA-PSS w/ SHA-256
PS384-38RSASSA-PSS w/ SHA-384
PS512-39RSASSA-PSS w/ SHA-512
ES256-7ECDSA w/ SHA-256
ES384-35ECDSA w/ SHA-384
ES512-36ECDSA w/ SHA-512

Instants

FusionAuth stores all time references as the number of milliseconds since January 1st, 1970 UTC, this is more generally referred to as Epoch time.

For example, consider the following date.

10:45 AM MST on July 4th, 2015

In order to send this value to FusionAuth, you would need to convert this date time to the number of milliseconds since epoch and then send the value 1436028300000 as an input parameter. Convert instants to human readable dates or vice versa.

Locales

FusionAuth accepts and returns Locales on the API using the Java standard format of a ISO 639-1 two letter language code followed by an optional underscore and a ISO 3166-1 alpha-2 country code. Below is a table of common language and country codes and the resulting locale string that can either be sent into an API or be expected on the API response. This is not an exhaustive list but only provided as an example.

Locale Codes

LanguageCountryLocale
Arabicar
Danishda
Germande
Englishen
Spanishes
SpanishMexicoes_MX
Finishfi
Frenchfr
Italianit
Japaneseja
Koreanko
Dutchnl
Norwegianno
Polishpl
Portuguesept
Russianru
Swedishsv
ChineseTaiwanzh_TW
ChineseChinazh_CN

Time Zone

FusionAuth accepts time zones in an IANA time zone format.

For example, the following values are all valid time zone formats.

  • America/Chicago
  • America/Denver
  • America/New_York
  • Asia/Tel_Aviv
  • Asia/Tokyo
  • Europe/Amsterdam
  • Europe/Belfast
  • Europe/Kiev
  • Europe/Paris
  • Pacific/Tahiti
  • US/Central
  • US/Pacific
  • US/Mountain
  • US/Eastern
  • UTC-7
  • UTC+2

UUIDs

Data types specified as UUID are expected to be in a valid string representation of a universally unique identifier (UUID). The API specifically expects the UUID to be provided in its canonical form which is represented by 32 lowercase hexadecimal digits displayed in five groups separated by hyphens.

This representation takes the form of 8-4-4-4-12 for a total of 36 characters, 32 hexadecimal characters and four hyphens. In case you are converting an array of bytes, the break down of bytes for the hexadecimal String is 4-2-2-2-6. UUIDs are version 4.

Example of a UUID in the expected canonical string format in a JSON request or response body.

{
  "foo": {
    "id": "965865ef-b17d-4153-b952-d8902e584f7d"
  }
}

Example of a UUID being provided as a URL segment for an API.

/api/user/965865ef-b17d-4153-b952-d8902e584f7d

Generate a UUID.