/**********************************************************************************************
* Copyright (C) Aktiv Co. 2026-2026                                                           *
* biopkcs11f.h                                                                                *
* This file contains additional functions for work with BIO authentication in PKCS#11 library *
***********************************************************************************************/

/* C_BIO_GetFunctionListBio returns the bio function list */
CK_PKCS11_FUNCTION_INFO(C_BIO_GetFunctionListBio)
#ifdef CK_NEED_ARG_LIST
(
  CK_FUNCTION_LIST_BIO_PTR_PTR    ppFunctionList    /* [out] pointer to pointer to bio function list */
);
#endif

/* C_BIO_Initialize disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_Initialize)
#ifdef CK_NEED_ARG_LIST
(
  CK_BYTE flags
);
#endif

/* C_BIO_Finalize disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_Finalize)
#ifdef CK_NEED_ARG_LIST
(
  CK_VOID_PTR   pReserved  /* reserved.  Should be NULL_PTR */
);
#endif

/* C_BIO_ListScannersAdapters disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_ListScannersAdapters)
#ifdef CK_NEED_ARG_LIST
(
  CK_BIO_SCANNERS_ADAPTER_INFO_PTR pInfos,
  CK_ULONG_PTR pInfosCount
);
#endif

/* C_BIO_ListScanners */
CK_PKCS11_FUNCTION_INFO(C_BIO_ListScanners)
#ifdef CK_NEED_ARG_LIST
(
  CK_BIO_SCANNER_INFO_PTR pInfos,
  CK_ULONG_PTR pInfosCount
);
#endif

/* C_BIO_SetDefaultScanner */
CK_PKCS11_FUNCTION_INFO(C_BIO_SetDefaultScanner)
#ifdef CK_NEED_ARG_LIST
(
  CK_BIO_SCANNER_INFO_PTR pInfo
);
#endif

/* C_BIO_GetFingerprintInfo */
CK_PKCS11_FUNCTION_INFO(C_BIO_GetFingerprintInfo)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_BIO_FINGERPRINT_INFO_PTR pInfo,
  CK_BIO_FINGERPRINT_SCAN_PARAMS_PTR pScanParams,
  CK_ULONG_PTR pScanParamsCount
);
#endif

/* C_BIO_SetFingerprintInit */
CK_PKCS11_FUNCTION_INFO(C_BIO_SetFingerprintInit)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_BIO_FINGERPRINT_SCAN_PARAMS_PTR pParams,
  CK_ULONG paramsCount,
  CK_BIO_FINGERPRINT_TYPE_PTR pNextToScan
);
#endif

/* C_BIO_SetFingerprintStatus */
CK_PKCS11_FUNCTION_INFO(C_BIO_SetFingerprintStatus)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_BIO_FINGERPRINT_SCAN_STATUS_PTR pStatus,
  CK_ULONG_PTR pStatusCount
);
#endif

/* C_BIO_SetFingerprintScan */
CK_PKCS11_FUNCTION_INFO(C_BIO_SetFingerprintScan)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_ULONG timeout,
  CK_BIO_FINGERPRINT_TYPE_PTR pNextToScan
);
#endif

/* C_BIO_SetFingerprintScanCancel disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_SetFingerprintScanCancel)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session
);
#endif

/* C_BIO_SetFingerprintFinal disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_SetFingerprintFinal)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_ULONG_PTR pFingerprintId
);
#endif

/* C_BIO_UnblockFingerprint disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_UnblockFingerprint)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session
);
#endif

/* C_BIO_Authenticate disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_Authenticate)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_UTF8CHAR_PTR pin,
  CK_ULONG pinLen,
  CK_ULONG timeout,
  CK_BYTE flags
);
#endif

/* C_BIO_AuthenticateCancel disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_AuthenticateCancel)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session
);
#endif

/* C_BIO_Deauthenticate disctription */
CK_PKCS11_FUNCTION_INFO(C_BIO_Deauthenticate)
#ifdef CK_NEED_ARG_LIST
(
  CK_SESSION_HANDLE session,
  CK_BYTE flags
);
#endif
