#pragma once
// PKCS#11 API library-specific definitions

#ifdef __cplusplus
extern "C"
{
#endif

#include "pkcs11types.h"

typedef enum {
    PKCS11_CTRL_EMPTY,			// not used
    PKCS11_CTRL_OPEN_TOKEN,		// not used
    PKCS11_CTRL_CLOSE_TOKEN,	// not used
    PKCS11_CTRL_SEED_PATH,		// not used
    PKCS11_CTRL_SEED_CALLBACK,	// not used
    PKCS11_CTRL_LICENSE_IN,		// not used
    PKCS11_CTRL_LICENSE_OUT,	// not used
	PKCS11_CTRL_LOG_PATH,
	PKCS11_CTRL_FORMAT_TOKEN,	// not used
    PKCS11_CTRL_MAX,
} PKCS11_CTRL;

// Additional API function type for LSMS11 configuring
typedef CK_RV (CK_PTR CK_C_Ctrl)
	(int cmd, long i, void *p, void(*f)(void));

typedef enum {
    TOKEN_TYPE_EMPTY,
    TOKEN_TYPE_FILE_SYSTEM,			// not used
    TOKEN_TYPE_HW_TOKEN,			// not used
    TOKEN_TYPE_HW_SLOT,				// not used
	TOKEN_TYPE_JAVA_CARD,			// not used
	TOKEN_TYPE_MEMORY,				// not used
	TOKEN_TYPE_REGISTRY,			// not used
	TOKEN_TYPE_LSMS11_SMART_CARD,	// for lsms11 card only	
	TOKEN_TYPE_UNSUPPORTED,			// for unsupported token
    TOKEN_TYPE_MAX,
} TOKEN_TYPE;

#ifdef __cplusplus
}
#endif

