Module Pkcs11
Low-level PKCS#11 bindings.
module Data = Pkcs11_datamodule CK_ULONG = P11_ulongmodule CK_BYTE = Pkcs11_CK_BYTEmodule CK_BBOOL = Pkcs11_CK_BBOOLmodule CK_UTF8CHAR = Pkcs11_CK_UTF8CHARmodule CK_VOID = Pkcs11_CK_VOIDmodule CK_SESSION_HANDLE = Pkcs11_CK_SESSION_HANDLEmodule CK_OBJECT_HANDLE = Pkcs11_CK_OBJECT_HANDLEmodule CK_HW_FEATURE_TYPE = Pkcs11_CK_HW_FEATURE_TYPEmodule CK_SLOT_ID = Pkcs11_CK_SLOT_IDmodule CK_FLAGS = Pkcs11_CK_FLAGSmodule CK_OBJECT_CLASS = Pkcs11_CK_OBJECT_CLASSmodule CK_KEY_TYPE = Pkcs11_CK_KEY_TYPEmodule CK_VERSION = Pkcs11_CK_VERSIONmodule CK_BIGINT = P11_bigintmodule CK_RV = Pkcs11_CK_RVmodule CK_MECHANISM_TYPE = Pkcs11_CK_MECHANISM_TYPEmodule CK_RSA_PKCS_MGF_TYPE = Pkcs11_CK_RSA_PKCS_MGF_TYPEmodule CK_RSA_PKCS_OAEP_PARAMS = Pkcs11_CK_RSA_PKCS_OAEP_PARAMSmodule CK_RSA_PKCS_PSS_PARAMS = Pkcs11_CK_RSA_PKCS_PSS_PARAMSmodule CK_KEY_DERIVATION_STRING_DATA = Pkcs11_CK_KEY_DERIVATION_STRING_DATAmodule CK_AES_CBC_ENCRYPT_DATA_PARAMS = Pkcs11_CBC_ENCRYPT_DATA_PARAMS.CK_AES_CBC_ENCRYPT_DATA_PARAMSmodule CK_DES_CBC_ENCRYPT_DATA_PARAMS = Pkcs11_CBC_ENCRYPT_DATA_PARAMS.CK_DES_CBC_ENCRYPT_DATA_PARAMSmodule CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE = Pkcs11_CK_PKCS5_PBKDF2_SALT_SOURCE_TYPEmodule CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE = Pkcs11_CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPEmodule CK_PKCS5_PBKD2_PARAMS = Pkcs11_CK_PKCS5_PBKD2_PARAMSmodule CK_EC_KDF_TYPE = Pkcs11_CK_EC_KDF_TYPEmodule CK_ECDH1_DERIVE_PARAMS = Pkcs11_CK_ECDH1_DERIVE_PARAMSmodule CK_ECMQV_DERIVE_PARAMS = Pkcs11_CK_ECMQV_DERIVE_PARAMSmodule CK_MECHANISM = Pkcs11_CK_MECHANISMmodule Key_gen_mechanism = Pkcs11_key_gen_mechanismmodule CK_USER_TYPE = Pkcs11_CK_USER_TYPEmodule CK_INFO = Pkcs11_CK_INFOmodule CK_TOKEN_INFO = Pkcs11_CK_TOKEN_INFOmodule CK_SLOT_INFO = Pkcs11_CK_SLOT_INFOmodule Slot_list = Pkcs11_slot_listmodule CK_MECHANISM_INFO = Pkcs11_CK_MECHANISM_INFOmodule CK_SESSION_INFO = Pkcs11_CK_SESSION_INFOmodule CK_ATTRIBUTE_TYPE = Pkcs11_CK_ATTRIBUTE_TYPEmodule CK_ATTRIBUTE = Pkcs11_CK_ATTRIBUTEmodule CK_ATTRIBUTE_SET = Pkcs11_CK_ATTRIBUTE_SETmodule Template = Pkcs11_templatemodule Mechanism_list = Pkcs11_mechanism_listmodule CK_AES_CTR_PARAMS = Pkcs11_CK_AES_CTR_PARAMSmodule CK_GCM_PARAMS = Pkcs11_CK_GCM_PARAMSmodule Initialize_arg : sig ... endmodule Nss_initialize_arg : sig ... endtype _ck_function_listtype ck_function_list= _ck_function_list Ctypes.structure
val ck_function_list : ck_function_list Ctypes.typ
module CK_NOTIFY : sig ... endmodule CK : sig ... endmodule CK_FUNCTION_LIST : sig ... endFunction lists.
module type LOW_LEVEL_BINDINGS = sig ... endLow-level bindings directly wrap the Ctypes function calls. The only functions available are the ones in the PKCS#11 interface specification. Functions expect to be passed and return CK_* types, and argument types exactly reflect those in the PKCS#11 specification.
module type CONFIG = sig ... endmodule Fake : functor (X : sig ... end) -> LOW_LEVEL_BINDINGSmodule type LOW_LEVEL_WRAPPER = sig ... endA low-level wrapper wraps low-level bindings. Only functions in the PKCS#11 interface are available. Functions expect to mostly take and return CK_* types, but some arguments are named, use ocaml builtin types or are removed for convenience (for example the void ptr used by c_Initialize is replaced by unit).
module Wrap_low_level_bindings : functor (X : LOW_LEVEL_BINDINGS) -> LOW_LEVEL_WRAPPERval load_driver : ?log_calls:(string * Stdlib.Format.formatter) -> ?on_unknown:(string -> unit) -> ?load_mode:P11.Load_mode.t -> string -> (module LOW_LEVEL_BINDINGS)on_unknownwill be called with a warning message when unsupported codes are encountered.