Source code
Revision control
Copy as Markdown
Other Tools
(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)
:::