MD_GetHsmState
Retrieves the current state of the specified HSM.
Synopsis
#include <md.h> MD_RV MD_GetHsmState(uint32 hsmIndex, HsmState_t* pState, uint32* pErrorCode);
Input Requirements
The message dispatch library has been initialized via the MD_Initialize() function.
Input Parameters
| Parameter | Description |
|---|---|
| hsmIndex | Zero based index of the HSM to query. When MD_Initialize () is invoked the message dispatch library assigns an index to each available HSM. |
| pState | Pointer to a variable to hold the HSM state. The pointer must not be NULL. |
| pErrorCode | Not used: always return zero. The pointer may be NULL. |
Output Requirements
| Parameter | Description |
|---|---|
| pState | When the function returns, pState points to a variable containing one of the following values. These values are defined in hsmstate.h |
| Label | Value | Meaning |
|---|---|---|
| S_NORMAL_OPERATION | 0x8000 |
The HSM is operational. |
| S_HSM_DISCONNECTED | 2 | No HSM detected. |
| S_HSM_ERASED | 1 | HSM Decommissioned. |
| S_TAMPER_RESPOND | 3 | HSM is in Tampered State. |
NOTE Any other value indicates a non-operational HSM
| pErrorCode | Error code can be ignored. |
The function returns the following codes:
| Function Code | Qualification |
|---|---|
| MDR_OK | No error |
| MDR_UNSUCCESSFUL | Error in operation. Operation failed. |
| MDR_NOT_INITIALIZE | The message dispatch library was not previously initialized successfully |
| MDR_INVALID_HSM_INDEX | HSM index was not in the range of accessible HSMs |