type t = (_ck_function_list, [ `Struct ]) Ctypes.structured
val version : (CK_VERSION.t, t) Ctypes.fieldval c_Initialize : (unit Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_Finalize : (unit Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetInfo : (CK_INFO.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetFunction_list : (ck_function_list Ctypes.ptr Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetSlotList : (CK_BBOOL.t -> CK_SLOT_ID.t Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetSlotInfo : (CK_SLOT_ID.t -> CK_SLOT_INFO.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetTokenInfo : (CK_SLOT_ID.t -> CK_TOKEN_INFO.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetMechanismList : (CK_SLOT_ID.t -> CK_MECHANISM_TYPE.t Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetMechanismInfo : (CK_SLOT_ID.t -> CK_MECHANISM_TYPE.t -> CK_MECHANISM_INFO.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_InitToken : (CK_SLOT_ID.t -> CK_UTF8CHAR.t Ctypes.ptr -> Unsigned.ulong -> CK_UTF8CHAR.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_InitPIN : (CK_SESSION_HANDLE.t -> CK_UTF8CHAR.t Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_SetPIN : (CK_SESSION_HANDLE.t -> CK_UTF8CHAR.t Ctypes.ptr -> Unsigned.ulong -> CK_UTF8CHAR.t Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_OpenSession : (CK_SLOT_ID.t -> CK_FLAGS.t -> unit Ctypes.ptr -> CK_NOTIFY.t -> CK_SESSION_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_CloseSession : (CK_SESSION_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_CloseAllSessions : (CK_SLOT_ID.t -> CK_RV.t, t) Ctypes.fieldval c_GetSessionInfo : (CK_SESSION_HANDLE.t -> CK_SESSION_INFO.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetOperationState : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_SetOperationState : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_Login : (CK_SESSION_HANDLE.t -> CK_USER_TYPE.t -> CK_UTF8CHAR.t Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_Logout : (CK_SESSION_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_CreateObject : (CK_SESSION_HANDLE.t -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_CopyObject : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DestroyObject : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_GetObjectSize : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GetAttributeValue : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_SetAttributeValue : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_FindObjectsInit : (CK_SESSION_HANDLE.t -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_FindObjects : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t Ctypes.ptr -> Unsigned.ulong -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_FindObjectsFinal : (CK_SESSION_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_EncryptInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_Encrypt : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_EncryptUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_EncryptFinal : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DecryptInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_Decrypt : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DecryptUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DecryptFinal : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DigestInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_Digest : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DigestUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_DigestKey : (CK_SESSION_HANDLE.t -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_DigestFinal : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_SignInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_Sign : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_SignUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_SignFinal : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_SignRecoverInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_SignRecover : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_VerifyInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_Verify : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_VerifyUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_VerifyFinal : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_VerifyRecoverInit : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_VerifyRecover : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DigestEncryptUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DecryptDigestUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_SignEncryptUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DecryptVerifyUpdate : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GenerateKey : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_GenerateKeyPair : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_WrapKey : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_OBJECT_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_UnwrapKey : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_DeriveKey : (CK_SESSION_HANDLE.t -> CK_MECHANISM.t Ctypes.ptr -> CK_OBJECT_HANDLE.t -> CK_ATTRIBUTE.t Ctypes.ptr -> Unsigned.ulong -> CK_OBJECT_HANDLE.t Ctypes.ptr -> CK_RV.t, t) Ctypes.fieldval c_SeedRandom : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_GenerateRandom : (CK_SESSION_HANDLE.t -> char Ctypes.ptr -> Unsigned.ulong -> CK_RV.t, t) Ctypes.fieldval c_GetFunctionStatus : (CK_SESSION_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_CancelFunction : (CK_SESSION_HANDLE.t -> CK_RV.t, t) Ctypes.fieldval c_WaitForSlotEvent : (CK_FLAGS.t -> CK_SLOT_ID.t Ctypes.ptr -> unit Ctypes.ptr -> CK_RV.t, t) Ctypes.field