(mozilla-projects-nss-reference-fc-gettokeninfo)= # FC_GetTokenInfo ## [Name](#name) :::{container} FC_GetTokenInfo - obtain information about a particular token in the system. ::: ## [Syntax](#syntax) :::{container} ```{code} CK_RV FC_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo); ``` ::: ## [Parameters](#parameters) :::{container} `FC_GetTokenInfo` has two parameters: `slotID` : the ID of the token's slot `pInfo` : points to a [CK_TOKEN_INFO](/en-US/CK_TOKEN_INFO) structure ::: ## [Description](#description) :::{container} `FC_GetTokenInfo` returns information about the token in the specified slot. On return, the `CK_TOKEN_INFO` structure that `pInfo` points to has the following information: - `label`: the label of the token, assigned during token initialization, padded with spaces to 32 bytes and not null-terminated. - `manufacturerID`: ID of the device manufacturer, "Mozilla Foundation", padded with spaces to 32 characters and not null-terminated. - `model`: model of the device, "NSS 3", padded with spaces to 16 characters and not null-terminated. - `serialNumber`: the device's serial number as a string, "0000000000000000", 16 characters and not null-terminated. - `flags`: bit flags indicating capabilities and status of the device. - `CKF_RNG (0x00000001)`: this device has a random number generator - `CKF_WRITE_PROTECTED (0x00000002)`: this device is read-only - `CKF_LOGIN_REQUIRED (0x00000004)`: this device requires the user to log in to use some of its services - `CKF_USER_PIN_INITIALIZED (0x00000008)`: the user's password has been initialized - `CKF_DUAL_CRYPTO_OPERATIONS (0x00000200)`: a single session with the token can perform dual cryptographic operations - `CKF_TOKEN_INITIALIZED (0x00000400)`: the token has been initialized. If login is required (which is true for the FIPS mode of operation), this flag means the user's password has been initialized. - `ulSessionCount`: number of sessions that this application currently has open with the token - `ulRwSessionCount`: number of read/write sessions that this application currently has open with the token - `hardwareVersion`: hardware version number, for example, 8.3 (`major=0x08, minor=0x03`), which are the version numbers of the certificate and key databases, respectively. - `firmwareVersion`: firmware version number, 0.0 (`major=0x00, minor=0x00`). A user may call `FC_GetTokenInfo` without logging into the token (to assume the NSS User role). ::: ## [Return value](#return_value) ::::{container} `CKR_OK` : Token information was successfully copied. `CKR_CRYPTOKI_NOT_INITIALIZED` : The PKCS #11 module library is not initialized. `CKR_SLOT_ID_INVALID` : The specified slot number is out of the defined range of values. :::{note} FC_GetTokenInfo should return CKR_ARGUMENTS_BAD if pInfo is NULL. ::: :::: ## [Examples](#examples) :::{container} Note the use of the `%.32s` format string to print the `label` and `manufacturerID` members of the `CK_TOKEN_INFO` structure. ::: ## [See also](#see_also) :::{container} - {ref}`mozilla_projects_nss_reference_fc_getslotinfo`, [NSC_GetTokenInfo](/en-US/NSC_GetTokenInfo) :::