{
  "comment": "This file is automatically generated from p11-kit/common/pkcs11.h",
  "license": "BSD-3-Clause",
  "functions": [
    {
      "name": "C_Initialize",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_VOID_PTR",
          "name": "init_args",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_Finalize",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_VOID_PTR",
          "name": "pReserved",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetInfo",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_INFO_PTR",
          "name": "pInfo",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetFunctionList",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_FUNCTION_LIST_PTR_PTR",
          "name": "function_list",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetSlotList",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "unsigned char",
          "name": "token_present",
          "ffi-type": "uchar"
        },
        {
          "type": "CK_SLOT_ID_PTR",
          "name": "slot_list",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ulCount",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetSlotInfo",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_SLOT_INFO_PTR",
          "name": "pInfo",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetTokenInfo",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_TOKEN_INFO_PTR",
          "name": "pInfo",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetMechanismList",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_TYPE_PTR",
          "name": "mechanism_list",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ulCount",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetMechanismInfo",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_TYPE",
          "name": "type",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_INFO_PTR",
          "name": "pInfo",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_InitToken",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "pin",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "pin_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "label",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_InitPIN",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "pin",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "pin_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SetPIN",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "old_pin",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "old_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "new_pin",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "new_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_OpenSession",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_FLAGS",
          "name": "flags",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "application",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_NOTIFY",
          "name": "notify",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_SESSION_HANDLE_PTR",
          "name": "session",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_CloseSession",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_CloseAllSessions",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SLOT_ID",
          "name": "slotID",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_GetSessionInfo",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_SESSION_INFO_PTR",
          "name": "pInfo",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetOperationState",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "operation_state",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "operation_state_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SetOperationState",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "operation_state",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "operation_state_len",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "encryption_key",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "authentication_key",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_Login",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_USER_TYPE",
          "name": "user_type",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "pin",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "pin_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_Logout",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_CreateObject",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulCount",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "object",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_CopyObject",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "object",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulCount",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "new_object",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DestroyObject",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "object",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_GetObjectSize",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "object",
          "ffi-type": "ulong"
        },
        {
          "type": "long unsigned int *",
          "name": "size",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetAttributeValue",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "object",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulCount",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SetAttributeValue",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "object",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulCount",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_FindObjectsInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulCount",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_FindObjects",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "object",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "max_object_count",
          "ffi-type": "ulong"
        },
        {
          "type": "long unsigned int *",
          "name": "object_count",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_FindObjectsFinal",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_EncryptInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_Encrypt",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "encrypted_data_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_EncryptUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "encrypted_part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_EncryptFinal",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "last_encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "last_encrypted_part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecryptInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_Decrypt",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "encrypted_data_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ulDataLen",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecryptUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "encrypted_part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecryptFinal",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "last_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "last_part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DigestInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_Digest",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "digest",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "digest_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DigestUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_DigestKey",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_DigestFinal",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "digest",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "digest_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SignInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_Sign",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "signature_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SignUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SignFinal",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "signature_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SignRecoverInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SignRecover",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "signature_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_VerifyInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_Verify",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "signature_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyFinal",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "signature_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyRecoverInit",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyRecover",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "signature_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ulDataLen",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DigestEncryptUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "encrypted_part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecryptDigestUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "encrypted_part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SignEncryptUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "encrypted_part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecryptVerifyUpdate",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "encrypted_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "encrypted_part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "part_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GenerateKey",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulCount",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "hKey",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GenerateKeyPair",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "public_key_template",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "public_key_attribute_count",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "private_key_template",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "private_key_attribute_count",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "publicKey",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "private_key",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_WrapKey",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "wrapping_key",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "wrapped_key",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "wrapped_key_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_UnwrapKey",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "unwrapping_key",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "wrapped_key",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "wrapped_key_len",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulAttributeCount",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "hKey",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DeriveKey",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "base_key",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulAttributeCount",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "hKey",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SeedRandom",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "seed",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulSeedLen",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_GenerateRandom",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "random_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulRandomLen",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_GetFunctionStatus",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_CancelFunction",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_WaitForSlotEvent",
      "version": [
        2,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_FLAGS",
          "name": "flags",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_SLOT_ID_PTR",
          "name": "slot",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pReserved",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetInterfaceList",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_INTERFACE_PTR",
          "name": "interfaces_list",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ulCount",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_GetInterface",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "unsigned char *",
          "name": "interface_name",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_VERSION_PTR",
          "name": "version",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_INTERFACE_PTR_PTR",
          "name": "interface_",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_FLAGS",
          "name": "flags",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_LoginUser",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_USER_TYPE",
          "name": "user_type",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "pin",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "pin_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "username",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "username_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SessionCancel",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_FLAGS",
          "name": "flags",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageEncryptInit",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_EncryptMessage",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "associated_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "associated_data_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "plaintext",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "plaintext_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "ciphertext",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ciphertext_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_EncryptMessageBegin",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "associated_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "associated_data_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_EncryptMessageNext",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "plaintext_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "plaintext_part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "ciphertext_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ciphertext_part_len",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_FLAGS",
          "name": "flags",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageEncryptFinal",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageDecryptInit",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_DecryptMessage",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "associated_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "associated_data_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "ciphertext",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ciphertext_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "plaintext",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "plaintext_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecryptMessageBegin",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "associated_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "associated_data_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_DecryptMessageNext",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "ciphertext_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ciphertext_part_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "plaintext_part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "plaintext_part_len",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_FLAGS",
          "name": "flags",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageDecryptFinal",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageSignInit",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SignMessage",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "signature_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_SignMessageBegin",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_SignMessageNext",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "signature_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_MessageSignFinal",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageVerifyInit",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyMessage",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "signature_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyMessageBegin",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifyMessageNext",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_VOID_PTR",
          "name": "pParameter",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulParameterLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "signature_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_MessageVerifyFinal",
      "version": [
        3,
        0
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_EncapsulateKey",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "publicKey",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulAttributeCount",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "ciphertext",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ciphertext_len",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "phKey",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_DecapsulateKey",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "private_key",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulAttributeCount",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "ciphertext",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "ciphertext_len",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "phKey",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_VerifySignatureInit",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "signature",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "signature_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifySignature",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifySignatureUpdate",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "part",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "part_len",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_VerifySignatureFinal",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_GetSessionValidationFlags",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_SESSION_VALIDATION_FLAGS_TYPE",
          "name": "type",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_FLAGS *",
          "name": "flags_ptr",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_AsyncComplete",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "function_name",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_ASYNC_DATA_PTR",
          "name": "result",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_AsyncGetID",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "function_name",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "id_ptr",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_AsyncJoin",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "function_name",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "id",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulDataLen",
          "ffi-type": "ulong"
        }
      ]
    },
    {
      "name": "C_WrapKeyAuthenticated",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "wrapping_key",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "hKey",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "associated_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "associated_data_len",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "wrapped_key",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int *",
          "name": "wrapped_key_len",
          "ffi-type": "pointer"
        }
      ]
    },
    {
      "name": "C_UnwrapKeyAuthenticated",
      "version": [
        3,
        2
      ],
      "returns": "CK_RV",
      "arguments": [
        {
          "type": "CK_SESSION_HANDLE",
          "name": "session",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_MECHANISM_PTR",
          "name": "mechanism",
          "ffi-type": "pointer"
        },
        {
          "type": "CK_OBJECT_HANDLE",
          "name": "unwrapping_key",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "wrapped_key",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "wrapped_key_len",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_ATTRIBUTE_PTR",
          "name": "pTemplate",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "ulAttributeCount",
          "ffi-type": "ulong"
        },
        {
          "type": "unsigned char *",
          "name": "associated_data",
          "ffi-type": "pointer"
        },
        {
          "type": "long unsigned int",
          "name": "associated_data_len",
          "ffi-type": "ulong"
        },
        {
          "type": "CK_OBJECT_HANDLE_PTR",
          "name": "phKey",
          "ffi-type": "pointer"
        }
      ]
    }
  ],
  "structs": [
    {
      "name": "CK_ATTRIBUTE",
      "members": [
        {
          "name": "type",
          "type": "CK_ATTRIBUTE_TYPE"
        },
        {
          "name": "pValue",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulValueLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_C_INITIALIZE_ARGS",
      "members": [
        {
          "name": "CreateMutex",
          "type": "CK_CREATEMUTEX"
        },
        {
          "name": "DestroyMutex",
          "type": "CK_DESTROYMUTEX"
        },
        {
          "name": "LockMutex",
          "type": "CK_LOCKMUTEX"
        },
        {
          "name": "UnlockMutex",
          "type": "CK_UNLOCKMUTEX"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        },
        {
          "name": "pReserved",
          "type": "CK_VOID_PTR"
        }
      ]
    },
    {
      "name": "CK_DATE",
      "members": [
        {
          "name": "year",
          "type": "unsigned char[4]"
        },
        {
          "name": "month",
          "type": "unsigned char[2]"
        },
        {
          "name": "day",
          "type": "unsigned char[2]"
        }
      ]
    },
    {
      "name": "CK_DERIVED_KEY",
      "members": [
        {
          "name": "pTemplate",
          "type": "CK_ATTRIBUTE_PTR"
        },
        {
          "name": "ulAttributeCount",
          "type": "long unsigned int"
        },
        {
          "name": "phKey",
          "type": "CK_OBJECT_HANDLE_PTR"
        }
      ]
    },
    {
      "name": "CK_VERSION",
      "members": [
        {
          "name": "major",
          "type": "unsigned char"
        },
        {
          "name": "minor",
          "type": "unsigned char"
        }
      ]
    },
    {
      "name": "CK_INFO",
      "members": [
        {
          "name": "cryptokiVersion",
          "type": "CK_VERSION"
        },
        {
          "name": "manufacturerID",
          "type": "unsigned char[32]"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        },
        {
          "name": "libraryDescription",
          "type": "unsigned char[32]"
        },
        {
          "name": "libraryVersion",
          "type": "CK_VERSION"
        }
      ]
    },
    {
      "name": "CK_INTERFACE",
      "members": [
        {
          "name": "pInterfaceName",
          "type": "__builtin_ms_va_list"
        },
        {
          "name": "pFunctionList",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        }
      ]
    },
    {
      "name": "CK_MECHANISM",
      "members": [
        {
          "name": "mechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "pParameter",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulParameterLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_MECHANISM_INFO",
      "members": [
        {
          "name": "ulMinKeySize",
          "type": "long unsigned int"
        },
        {
          "name": "ulMaxKeySize",
          "type": "long unsigned int"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        }
      ]
    },
    {
      "name": "CK_SESSION_INFO",
      "members": [
        {
          "name": "slotID",
          "type": "CK_SLOT_ID"
        },
        {
          "name": "state",
          "type": "CK_STATE"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        },
        {
          "name": "ulDeviceError",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SLOT_INFO",
      "members": [
        {
          "name": "slotDescription",
          "type": "unsigned char[64]"
        },
        {
          "name": "manufacturerID",
          "type": "unsigned char[32]"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        },
        {
          "name": "hardwareVersion",
          "type": "CK_VERSION"
        },
        {
          "name": "firmwareVersion",
          "type": "CK_VERSION"
        }
      ]
    },
    {
      "name": "CK_TOKEN_INFO",
      "members": [
        {
          "name": "label",
          "type": "unsigned char[32]"
        },
        {
          "name": "manufacturerID",
          "type": "unsigned char[32]"
        },
        {
          "name": "model",
          "type": "unsigned char[16]"
        },
        {
          "name": "serialNumber",
          "type": "unsigned char[16]"
        },
        {
          "name": "flags",
          "type": "CK_FLAGS"
        },
        {
          "name": "ulMaxSessionCount",
          "type": "long unsigned int"
        },
        {
          "name": "ulSessionCount",
          "type": "long unsigned int"
        },
        {
          "name": "ulMaxRwSessionCount",
          "type": "long unsigned int"
        },
        {
          "name": "ulRwSessionCount",
          "type": "long unsigned int"
        },
        {
          "name": "ulMaxPinLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulMinPinLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulTotalPublicMemory",
          "type": "long unsigned int"
        },
        {
          "name": "ulFreePublicMemory",
          "type": "long unsigned int"
        },
        {
          "name": "ulTotalPrivateMemory",
          "type": "long unsigned int"
        },
        {
          "name": "ulFreePrivateMemory",
          "type": "long unsigned int"
        },
        {
          "name": "hardwareVersion",
          "type": "CK_VERSION"
        },
        {
          "name": "firmwareVersion",
          "type": "CK_VERSION"
        },
        {
          "name": "utcTime",
          "type": "unsigned char[16]"
        }
      ]
    },
    {
      "name": "CK_AES_CBC_ENCRYPT_DATA_PARAMS",
      "members": [
        {
          "name": "iv",
          "type": "unsigned char[16]"
        },
        {
          "name": "pData",
          "type": "unsigned char *"
        },
        {
          "name": "length",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_AES_CCM_PARAMS",
      "members": [
        {
          "name": "ulDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceLen",
          "type": "long unsigned int"
        },
        {
          "name": "pAAD",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulMACLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_AES_CTR_PARAMS",
      "members": [
        {
          "name": "ulCounterBits",
          "type": "long unsigned int"
        },
        {
          "name": "cb",
          "type": "unsigned char[16]"
        }
      ]
    },
    {
      "name": "CK_AES_GCM_PARAMS",
      "members": [
        {
          "name": "pIv",
          "type": "unsigned char *"
        },
        {
          "name": "ulIvLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIvBits",
          "type": "long unsigned int"
        },
        {
          "name": "pAAD",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulTagBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_ARIA_CBC_ENCRYPT_DATA_PARAMS",
      "members": [
        {
          "name": "iv",
          "type": "unsigned char[16]"
        },
        {
          "name": "pData",
          "type": "unsigned char *"
        },
        {
          "name": "length",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_ASYNC_DATA",
      "members": [
        {
          "name": "ulVersion",
          "type": "long unsigned int"
        },
        {
          "name": "pValue",
          "type": "unsigned char *"
        },
        {
          "name": "ulValueLen",
          "type": "long unsigned int"
        },
        {
          "name": "hObject",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "hAdditionalObject",
          "type": "CK_OBJECT_HANDLE"
        }
      ]
    },
    {
      "name": "CK_CAMELLIA_CBC_ENCRYPT_DATA_PARAMS",
      "members": [
        {
          "name": "iv",
          "type": "unsigned char[16]"
        },
        {
          "name": "pData",
          "type": "unsigned char *"
        },
        {
          "name": "length",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_CAMELLIA_CTR_PARAMS",
      "members": [
        {
          "name": "ulCounterBits",
          "type": "long unsigned int"
        },
        {
          "name": "cb",
          "type": "unsigned char[16]"
        }
      ]
    },
    {
      "name": "CK_CCM_MESSAGE_PARAMS",
      "members": [
        {
          "name": "ulDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulNonceFixedBits",
          "type": "long unsigned int"
        },
        {
          "name": "nonceGenerator",
          "type": "CK_GENERATOR_FUNCTION"
        },
        {
          "name": "pMac",
          "type": "unsigned char *"
        },
        {
          "name": "ulMACLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_CCM_PARAMS",
      "members": [
        {
          "name": "ulDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "nonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceLen",
          "type": "long unsigned int"
        },
        {
          "name": "aad",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulMACLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_CCM_WRAP_PARAMS",
      "members": [
        {
          "name": "ulDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulNonceFixedBits",
          "type": "long unsigned int"
        },
        {
          "name": "nonceGenerator",
          "type": "CK_GENERATOR_FUNCTION"
        },
        {
          "name": "pAAD",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulMACLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_CHACHA20_PARAMS",
      "members": [
        {
          "name": "pBlockCounter",
          "type": "unsigned char *"
        },
        {
          "name": "blockCounterBits",
          "type": "long unsigned int"
        },
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_CMS_SIG_PARAMS",
      "members": [
        {
          "name": "certificateHandle",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pSigningMechanism",
          "type": "CK_MECHANISM_PTR"
        },
        {
          "name": "pDigestMechanism",
          "type": "CK_MECHANISM_PTR"
        },
        {
          "name": "pContentType",
          "type": "unsigned char *"
        },
        {
          "name": "pRequestedAttributes",
          "type": "unsigned char *"
        },
        {
          "name": "ulRequestedAttributesLen",
          "type": "long unsigned int"
        },
        {
          "name": "pRequiredAttributes",
          "type": "unsigned char *"
        },
        {
          "name": "ulRequiredAttributesLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_DES_CBC_ENCRYPT_DATA_PARAMS",
      "members": [
        {
          "name": "iv",
          "type": "unsigned char[8]"
        },
        {
          "name": "pData",
          "type": "unsigned char *"
        },
        {
          "name": "length",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_DSA_PARAMETER_GEN_PARAM",
      "members": [
        {
          "name": "hash",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "pSeed",
          "type": "unsigned char *"
        },
        {
          "name": "ulSeedLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIndex",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_ECDH_AES_KEY_WRAP_PARAMS",
      "members": [
        {
          "name": "ulAESKeyBits",
          "type": "long unsigned int"
        },
        {
          "name": "kdf",
          "type": "CK_EC_KDF_TYPE"
        },
        {
          "name": "ulSeedLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIndex",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_ECDH1_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_EC_KDF_TYPE"
        },
        {
          "name": "ulSharedDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pSharedData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_ECDH2_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_EC_KDF_TYPE"
        },
        {
          "name": "ulSharedDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pSharedData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPrivateDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "hPrivateData",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "ulPublicDataLen2",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData2",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_ECMQV_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_EC_KDF_TYPE"
        },
        {
          "name": "ulSharedDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pSharedData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPrivateDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "hPrivateData",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "ulPublicDataLen2",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData2",
          "type": "unsigned char *"
        },
        {
          "name": "publicKey",
          "type": "CK_OBJECT_HANDLE"
        }
      ]
    },
    {
      "name": "CK_EDDSA_PARAMS",
      "members": [
        {
          "name": "phFlag",
          "type": "unsigned char"
        },
        {
          "name": "ulContextDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pContextData",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_GCM_MESSAGE_PARAMS",
      "members": [
        {
          "name": "pIv",
          "type": "unsigned char *"
        },
        {
          "name": "ulIvLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIvFixedBits",
          "type": "long unsigned int"
        },
        {
          "name": "ivGenerator",
          "type": "CK_GENERATOR_FUNCTION"
        },
        {
          "name": "pTag",
          "type": "unsigned char *"
        },
        {
          "name": "ulTagBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_GCM_PARAMS",
      "members": [
        {
          "name": "pIv",
          "type": "unsigned char *"
        },
        {
          "name": "ulIvLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIvBits",
          "type": "long unsigned int"
        },
        {
          "name": "pAAD",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulTagBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_GCM_WRAP_PARAMS",
      "members": [
        {
          "name": "pIv",
          "type": "unsigned char *"
        },
        {
          "name": "ulIvLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIvFixedBits",
          "type": "long unsigned int"
        },
        {
          "name": "ivGenerator",
          "type": "CK_GENERATOR_FUNCTION"
        },
        {
          "name": "pAAD",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulTagBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_GOSTR3410_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_EC_KDF_TYPE"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pUKM",
          "type": "unsigned char *"
        },
        {
          "name": "ulUKMLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_GOSTR3410_KEY_WRAP_PARAMS",
      "members": [
        {
          "name": "pWrapOID",
          "type": "unsigned char *"
        },
        {
          "name": "ulWrapOIDLen",
          "type": "long unsigned int"
        },
        {
          "name": "pUKM",
          "type": "unsigned char *"
        },
        {
          "name": "ulUKMLen",
          "type": "long unsigned int"
        },
        {
          "name": "hKey",
          "type": "CK_OBJECT_HANDLE"
        }
      ]
    },
    {
      "name": "CK_HASH_SIGN_ADDITIONAL_CONTEXT",
      "members": [
        {
          "name": "hedgeVariant",
          "type": "CK_HEDGE_TYPE"
        },
        {
          "name": "pContext",
          "type": "unsigned char *"
        },
        {
          "name": "ulContextLen",
          "type": "long unsigned int"
        },
        {
          "name": "hash",
          "type": "CK_MECHANISM_TYPE"
        }
      ]
    },
    {
      "name": "CK_HKDF_PARAMS",
      "members": [
        {
          "name": "bExtract",
          "type": "unsigned char"
        },
        {
          "name": "bExpand",
          "type": "unsigned char"
        },
        {
          "name": "prfHashMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "ulSaltType",
          "type": "long unsigned int"
        },
        {
          "name": "pSalt",
          "type": "unsigned char *"
        },
        {
          "name": "ulSaltLen",
          "type": "long unsigned int"
        },
        {
          "name": "hSaltKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pInfo",
          "type": "unsigned char *"
        },
        {
          "name": "ulInfoLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_KEA_DERIVE_PARAMS",
      "members": [
        {
          "name": "isSender",
          "type": "unsigned char"
        },
        {
          "name": "ulRandomLen",
          "type": "long unsigned int"
        },
        {
          "name": "RandomA",
          "type": "unsigned char *"
        },
        {
          "name": "RandomB",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_KEY_DERIVATION_STRING_DATA",
      "members": [
        {
          "name": "pData",
          "type": "unsigned char *"
        },
        {
          "name": "ulLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_KEY_WRAP_SET_OAEP_PARAMS",
      "members": [
        {
          "name": "bBC",
          "type": "unsigned char"
        },
        {
          "name": "pX",
          "type": "unsigned char *"
        },
        {
          "name": "ulXLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_KIP_PARAMS",
      "members": [
        {
          "name": "pMechanism",
          "type": "CK_MECHANISM_PTR"
        },
        {
          "name": "hKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pSeed",
          "type": "unsigned char *"
        },
        {
          "name": "ulSeedLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_OTP_PARAM",
      "members": [
        {
          "name": "type",
          "type": "CK_OTP_PARAM_TYPE"
        },
        {
          "name": "pValue",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulValueLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_OTP_PARAMS",
      "members": [
        {
          "name": "pParams",
          "type": "CK_OTP_PARAM *"
        },
        {
          "name": "ulCount",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_OTP_SIGNATURE_INFO",
      "members": [
        {
          "name": "pParams",
          "type": "CK_OTP_PARAM *"
        },
        {
          "name": "ulCount",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_PBE_PARAMS",
      "members": [
        {
          "name": "pInitVector",
          "type": "unsigned char *"
        },
        {
          "name": "pPassword",
          "type": "unsigned char *"
        },
        {
          "name": "ulPasswordLen",
          "type": "long unsigned int"
        },
        {
          "name": "pSalt",
          "type": "unsigned char *"
        },
        {
          "name": "ulSaltLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulIteration",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_PKCS5_PBKD2_PARAMS",
      "members": [
        {
          "name": "saltSource",
          "type": "CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE"
        },
        {
          "name": "pSaltSourceData",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulSaltSourceDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "iterations",
          "type": "long unsigned int"
        },
        {
          "name": "prf",
          "type": "CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE"
        },
        {
          "name": "pPrfData",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulPrfDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPassword",
          "type": "unsigned char *"
        },
        {
          "name": "ulPasswordLen",
          "type": "long unsigned int *"
        }
      ]
    },
    {
      "name": "CK_PKCS5_PBKD2_PARAMS2",
      "members": [
        {
          "name": "saltSource",
          "type": "CK_PKCS5_PBKDF2_SALT_SOURCE_TYPE"
        },
        {
          "name": "pSaltSourceData",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulSaltSourceDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "iterations",
          "type": "long unsigned int"
        },
        {
          "name": "prf",
          "type": "CK_PKCS5_PBKD2_PSEUDO_RANDOM_FUNCTION_TYPE"
        },
        {
          "name": "pPrfData",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulPrfDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPassword",
          "type": "unsigned char *"
        },
        {
          "name": "ulPasswordLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_PRF_DATA_PARAM",
      "members": [
        {
          "name": "type",
          "type": "CK_PRF_DATA_TYPE"
        },
        {
          "name": "pValue",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulValueLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_RC2_CBC_PARAMS",
      "members": [
        {
          "name": "ulEffectiveBits",
          "type": "long unsigned int"
        },
        {
          "name": "iv",
          "type": "unsigned char[8]"
        }
      ]
    },
    {
      "name": "CK_RC2_MAC_GENERAL_PARAMS",
      "members": [
        {
          "name": "ulEffectiveBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulMacLength",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_RC5_CBC_PARAMS",
      "members": [
        {
          "name": "ulWordsize",
          "type": "long unsigned int"
        },
        {
          "name": "ulRounds",
          "type": "long unsigned int"
        },
        {
          "name": "pIv",
          "type": "unsigned char *"
        },
        {
          "name": "ulIvLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_RC5_MAC_GENERAL_PARAMS",
      "members": [
        {
          "name": "ulWordsize",
          "type": "long unsigned int"
        },
        {
          "name": "ulRounds",
          "type": "long unsigned int"
        },
        {
          "name": "ulMacLength",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_RC5_PARAMS",
      "members": [
        {
          "name": "ulWordsize",
          "type": "long unsigned int"
        },
        {
          "name": "ulRounds",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_RSA_PKCS_OAEP_PARAMS",
      "members": [
        {
          "name": "hashAlg",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "mgf",
          "type": "CK_RSA_PKCS_MGF_TYPE"
        },
        {
          "name": "source",
          "type": "CK_RSA_PKCS_OAEP_SOURCE_TYPE"
        },
        {
          "name": "pSourceData",
          "type": "CK_VOID_PTR"
        },
        {
          "name": "ulSourceDataLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_RSA_AES_KEY_WRAP_PARAMS",
      "members": [
        {
          "name": "ulAESKeyBits",
          "type": "long unsigned int"
        },
        {
          "name": "pOAEPParams",
          "type": "CK_RSA_PKCS_OAEP_PARAMS_PTR"
        }
      ]
    },
    {
      "name": "CK_RSA_PKCS_PSS_PARAMS",
      "members": [
        {
          "name": "hashAlg",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "mgf",
          "type": "CK_RSA_PKCS_MGF_TYPE"
        },
        {
          "name": "sLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SALSA20_CHACHA20_POLY1305_MSG_PARAMS",
      "members": [
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceBits",
          "type": "long unsigned int"
        },
        {
          "name": "pTag",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_SALSA20_CHACHA20_POLY1305_PARAMS",
      "members": [
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceBits",
          "type": "long unsigned int"
        },
        {
          "name": "pAAD",
          "type": "unsigned char *"
        },
        {
          "name": "ulAADLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SALSA20_PARAMS",
      "members": [
        {
          "name": "pBlockCounter",
          "type": "unsigned char *"
        },
        {
          "name": "pNonce",
          "type": "unsigned char *"
        },
        {
          "name": "ulNonceBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SEED_CBC_ENCRYPT_DATA_PARAMS",
      "members": [
        {
          "name": "iv",
          "type": "unsigned char[16]"
        },
        {
          "name": "pData",
          "type": "unsigned char *"
        },
        {
          "name": "length",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SIGN_ADDITIONAL_CONTEXT",
      "members": [
        {
          "name": "hedgeVariant",
          "type": "CK_HEDGE_TYPE"
        },
        {
          "name": "pContext",
          "type": "unsigned char *"
        },
        {
          "name": "ulContextLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SKIPJACK_PRIVATE_WRAP_PARAMS",
      "members": [
        {
          "name": "ulPasswordLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPassword",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPAndGLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulQLen",
          "type": "long unsigned int"
        },
        {
          "name": "ulRandomLen",
          "type": "long unsigned int"
        },
        {
          "name": "pRandomA",
          "type": "unsigned char *"
        },
        {
          "name": "pPrimeP",
          "type": "unsigned char *"
        },
        {
          "name": "pBaseG",
          "type": "unsigned char *"
        },
        {
          "name": "pSubprimeQ",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_SKIPJACK_RELAYX_PARAMS",
      "members": [
        {
          "name": "ulOldWrappedXLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOldWrappedX",
          "type": "unsigned char *"
        },
        {
          "name": "ulOldPasswordLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOldPassword",
          "type": "unsigned char *"
        },
        {
          "name": "ulOldPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOldPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulOldRandomLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOldRandomA",
          "type": "unsigned char *"
        },
        {
          "name": "ulNewPasswordLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNewPassword",
          "type": "unsigned char *"
        },
        {
          "name": "ulNewPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNewPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulNewRandomLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNewRandomA",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_SP800_108_COUNTER_FORMAT",
      "members": [
        {
          "name": "bLittleEndian",
          "type": "unsigned char"
        },
        {
          "name": "ulWidthInBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SP800_108_DKM_LENGTH_FORMAT",
      "members": [
        {
          "name": "dkmLengthMethod",
          "type": "CK_SP800_108_DKM_LENGTH_METHOD"
        },
        {
          "name": "bLittleEndian",
          "type": "unsigned char"
        },
        {
          "name": "ulWidthInBits",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SP800_108_FEEDBACK_KDF_PARAMS",
      "members": [
        {
          "name": "prfType",
          "type": "CK_SP800_108_PRF_TYPE"
        },
        {
          "name": "ulNumberOfDataParams",
          "type": "long unsigned int"
        },
        {
          "name": "pDataParams",
          "type": "CK_PRF_DATA_PARAM_PTR"
        },
        {
          "name": "ulIvLen",
          "type": "long unsigned int"
        },
        {
          "name": "pIv",
          "type": "unsigned char *"
        },
        {
          "name": "ulAdditionalDerivedKeys",
          "type": "long unsigned int"
        },
        {
          "name": "pAdditionalDerivedKeys",
          "type": "CK_DERIVED_KEY_PTR"
        }
      ]
    },
    {
      "name": "CK_TLS12_EXTENDED_MASTER_KEY_DERIVE_PARAMS",
      "members": [
        {
          "name": "prfHashMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "pSessionHash",
          "type": "unsigned char *"
        },
        {
          "name": "ulSessionHashLen",
          "type": "long unsigned int"
        },
        {
          "name": "pVersion",
          "type": "CK_VERSION_PTR"
        }
      ]
    },
    {
      "name": "CK_SP800_108_KDF_PARAMS",
      "members": [
        {
          "name": "prfType",
          "type": "CK_SP800_108_PRF_TYPE"
        },
        {
          "name": "ulNumberOfDataParams",
          "type": "long unsigned int"
        },
        {
          "name": "pDataParams",
          "type": "CK_PRF_DATA_PARAM_PTR"
        },
        {
          "name": "ulAdditionalDerivedKeys",
          "type": "long unsigned int"
        },
        {
          "name": "pAdditionalDerivedKeys",
          "type": "CK_DERIVED_KEY_PTR"
        }
      ]
    },
    {
      "name": "CK_X2RATCHET_INITIALIZE_PARAMS",
      "members": [
        {
          "name": "sk",
          "type": "unsigned char *"
        },
        {
          "name": "peer_public_prekey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "peer_public_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "own_public_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "bEncryptedHeader",
          "type": "unsigned char"
        },
        {
          "name": "eCurve",
          "type": "long unsigned int"
        },
        {
          "name": "aeadMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "kdfMechanism",
          "type": "CK_X2RATCHET_KDF_TYPE"
        }
      ]
    },
    {
      "name": "CK_X2RATCHET_RESPOND_PARAMS",
      "members": [
        {
          "name": "sk",
          "type": "unsigned char *"
        },
        {
          "name": "own_prekey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pInitiator_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "own_public_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "bEncryptedHeader",
          "type": "unsigned char"
        },
        {
          "name": "eCurve",
          "type": "long unsigned int"
        },
        {
          "name": "aeadMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "kdfMechanism",
          "type": "CK_X2RATCHET_KDF_TYPE"
        }
      ]
    },
    {
      "name": "CK_X3DH_INITIATE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_X3DH_KDF_TYPE"
        },
        {
          "name": "pPeer_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pPeer_prekey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pPrekey_signature",
          "type": "unsigned char *"
        },
        {
          "name": "pOnetime_key",
          "type": "unsigned char *"
        },
        {
          "name": "pOwn_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pOwn_ephemeral",
          "type": "CK_OBJECT_HANDLE"
        }
      ]
    },
    {
      "name": "CK_X3DH_RESPOND_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_X3DH_KDF_TYPE"
        },
        {
          "name": "pIdentity_id",
          "type": "unsigned char *"
        },
        {
          "name": "pPrekey_id",
          "type": "unsigned char *"
        },
        {
          "name": "pOnetime_id",
          "type": "unsigned char *"
        },
        {
          "name": "pInitiator_identity",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pInitiator_ephemeral",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_X9_42_DH1_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_X9_42_DH_KDF_TYPE"
        },
        {
          "name": "ulOtherInfoLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOtherInfo",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_X9_42_DH2_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_X9_42_DH_KDF_TYPE"
        },
        {
          "name": "ulOtherInfoLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOtherInfo",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPrivateDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "hPrivateData",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "ulPublicDataLen2",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData2",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_X9_42_MQV_DERIVE_PARAMS",
      "members": [
        {
          "name": "kdf",
          "type": "CK_X9_42_DH_KDF_TYPE"
        },
        {
          "name": "ulOtherInfoLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOtherInfo",
          "type": "unsigned char *"
        },
        {
          "name": "ulPublicDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData",
          "type": "unsigned char *"
        },
        {
          "name": "ulPrivateDataLen",
          "type": "long unsigned int"
        },
        {
          "name": "hPrivateData",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "ulPublicDataLen2",
          "type": "long unsigned int"
        },
        {
          "name": "pPublicData2",
          "type": "unsigned char *"
        },
        {
          "name": "publicKey",
          "type": "CK_OBJECT_HANDLE"
        }
      ]
    },
    {
      "name": "CK_XEDDSA_PARAMS",
      "members": [
        {
          "name": "hash",
          "type": "CK_XEDDSA_HASH_TYPE"
        }
      ]
    },
    {
      "name": "CK_IKE_PRF_DERIVE_PARAMS",
      "members": [
        {
          "name": "prfMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "bDataAsKey",
          "type": "unsigned char"
        },
        {
          "name": "bRekey",
          "type": "unsigned char"
        },
        {
          "name": "pNi",
          "type": "unsigned char *"
        },
        {
          "name": "ulNiLen",
          "type": "long unsigned int"
        },
        {
          "name": "pNr",
          "type": "unsigned char *"
        },
        {
          "name": "ulNrLen",
          "type": "long unsigned int"
        },
        {
          "name": "hNewKey",
          "type": "CK_OBJECT_HANDLE"
        }
      ]
    },
    {
      "name": "CK_IKE1_EXTENDED_DERIVE_PARAMS",
      "members": [
        {
          "name": "prfMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "bHasKeygxy",
          "type": "unsigned char"
        },
        {
          "name": "hKeygxy",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pExtraData",
          "type": "unsigned char *"
        },
        {
          "name": "ulExtraDataLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_IKE1_PRF_DERIVE_PARAMS",
      "members": [
        {
          "name": "prfMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "bHasPrevKey",
          "type": "unsigned char"
        },
        {
          "name": "hKeygxy",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "hPrevKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pCKYi",
          "type": "unsigned char *"
        },
        {
          "name": "ulCKYiLen",
          "type": "long unsigned int"
        },
        {
          "name": "pCKYr",
          "type": "unsigned char *"
        },
        {
          "name": "ulCKYrLen",
          "type": "long unsigned int"
        },
        {
          "name": "keyNumber",
          "type": "unsigned char"
        }
      ]
    },
    {
      "name": "CK_IKE2_PRF_PLUS_DERIVE_PARAMS",
      "members": [
        {
          "name": "prfMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "bHasSeedKey",
          "type": "unsigned char"
        },
        {
          "name": "hSeedKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pSeedData",
          "type": "unsigned char *"
        },
        {
          "name": "ulSeedDataLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SSL3_KEY_MAT_OUT",
      "members": [
        {
          "name": "hClientMacSecret",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "hServerMacSecret",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "hClientKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "hServerKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pIVClient",
          "type": "unsigned char *"
        },
        {
          "name": "pIVServer",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_SSL3_RANDOM_DATA",
      "members": [
        {
          "name": "pClientRandom",
          "type": "unsigned char *"
        },
        {
          "name": "ulClientRandomLen",
          "type": "long unsigned int"
        },
        {
          "name": "pServerRandom",
          "type": "unsigned char *"
        },
        {
          "name": "ulServerRandomLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_SSL3_KEY_MAT_PARAMS",
      "members": [
        {
          "name": "ulMacSizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulKeySizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulIVSizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "bIsExport",
          "type": "unsigned char"
        },
        {
          "name": "RandomInfo",
          "type": "CK_SSL3_RANDOM_DATA"
        },
        {
          "name": "pReturnedKeyMaterial",
          "type": "CK_SSL3_KEY_MAT_OUT_PTR"
        }
      ]
    },
    {
      "name": "CK_SSL3_MASTER_KEY_DERIVE_PARAMS",
      "members": [
        {
          "name": "RandomInfo",
          "type": "CK_SSL3_RANDOM_DATA"
        },
        {
          "name": "pVersion",
          "type": "CK_VERSION_PTR"
        }
      ]
    },
    {
      "name": "CK_TLS_KDF_PARAMS",
      "members": [
        {
          "name": "prfMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "pLabel",
          "type": "unsigned char *"
        },
        {
          "name": "ulLabelLength",
          "type": "long unsigned int"
        },
        {
          "name": "RandomInfo",
          "type": "CK_SSL3_RANDOM_DATA"
        },
        {
          "name": "pContextData",
          "type": "unsigned char *"
        },
        {
          "name": "ulContextDataLength",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_TLS_MAC_PARAMS",
      "members": [
        {
          "name": "prfHashMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "ulMacLength",
          "type": "long unsigned int"
        },
        {
          "name": "ulServerOrClient",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_TLS_PRF_PARAMS",
      "members": [
        {
          "name": "pSeed",
          "type": "unsigned char *"
        },
        {
          "name": "ulSeedLen",
          "type": "long unsigned int"
        },
        {
          "name": "pLabel",
          "type": "unsigned char *"
        },
        {
          "name": "ulLabelLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOutput",
          "type": "unsigned char *"
        },
        {
          "name": "pulOutputLen",
          "type": "long unsigned int *"
        }
      ]
    },
    {
      "name": "CK_TLS12_KEY_MAT_PARAMS",
      "members": [
        {
          "name": "ulMacSizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulKeySizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulIVSizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "bIsExport",
          "type": "unsigned char"
        },
        {
          "name": "RandomInfo",
          "type": "CK_SSL3_RANDOM_DATA"
        },
        {
          "name": "pReturnedKeyMaterial",
          "type": "CK_SSL3_KEY_MAT_OUT_PTR"
        },
        {
          "name": "prfHashMechanism",
          "type": "CK_MECHANISM_TYPE"
        }
      ]
    },
    {
      "name": "CK_TLS12_MASTER_KEY_DERIVE_PARAMS",
      "members": [
        {
          "name": "RandomInfo",
          "type": "CK_SSL3_RANDOM_DATA"
        },
        {
          "name": "pVersion",
          "type": "CK_VERSION_PTR"
        },
        {
          "name": "prfHashMechanism",
          "type": "CK_MECHANISM_TYPE"
        }
      ]
    },
    {
      "name": "CK_WTLS_KEY_MAT_OUT",
      "members": [
        {
          "name": "hMacSecret",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "hKey",
          "type": "CK_OBJECT_HANDLE"
        },
        {
          "name": "pIV",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_WTLS_RANDOM_DATA",
      "members": [
        {
          "name": "pClientRandom",
          "type": "unsigned char *"
        },
        {
          "name": "ulClientRandomLen",
          "type": "long unsigned int"
        },
        {
          "name": "pServerRandom",
          "type": "unsigned char *"
        },
        {
          "name": "ulServerRandomLen",
          "type": "long unsigned int"
        }
      ]
    },
    {
      "name": "CK_WTLS_KEY_MAT_PARAMS",
      "members": [
        {
          "name": "DigestMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "ulMacSizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulKeySizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulIVSizeInBits",
          "type": "long unsigned int"
        },
        {
          "name": "ulSequenceNumber",
          "type": "long unsigned int"
        },
        {
          "name": "bIsExport",
          "type": "unsigned char"
        },
        {
          "name": "RandomInfo",
          "type": "CK_WTLS_RANDOM_DATA"
        },
        {
          "name": "pReturnedKeyMaterial",
          "type": "CK_WTLS_KEY_MAT_OUT_PTR"
        }
      ]
    },
    {
      "name": "CK_WTLS_MASTER_KEY_DERIVE_PARAMS",
      "members": [
        {
          "name": "DigestMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "RandomInfo",
          "type": "CK_WTLS_RANDOM_DATA"
        },
        {
          "name": "pVersion",
          "type": "unsigned char *"
        }
      ]
    },
    {
      "name": "CK_WTLS_PRF_PARAMS",
      "members": [
        {
          "name": "DigestMechanism",
          "type": "CK_MECHANISM_TYPE"
        },
        {
          "name": "pSeed",
          "type": "unsigned char *"
        },
        {
          "name": "ulSeedLen",
          "type": "long unsigned int"
        },
        {
          "name": "pLabel",
          "type": "unsigned char *"
        },
        {
          "name": "ulLabelLen",
          "type": "long unsigned int"
        },
        {
          "name": "pOutput",
          "type": "unsigned char *"
        },
        {
          "name": "pulOutputLen",
          "type": "long unsigned int *"
        }
      ]
    },
    {
      "name": "CK_FUNCTION_LIST",
      "members": [
        {
          "name": "version",
          "type": "CK_VERSION"
        },
        {
          "name": "C_Initialize",
          "type": "CK_C_Initialize"
        },
        {
          "name": "C_Finalize",
          "type": "CK_C_Finalize"
        },
        {
          "name": "C_GetInfo",
          "type": "CK_C_GetInfo"
        },
        {
          "name": "C_GetFunctionList",
          "type": "CK_C_GetFunctionList"
        },
        {
          "name": "C_GetSlotList",
          "type": "CK_C_GetSlotList"
        },
        {
          "name": "C_GetSlotInfo",
          "type": "CK_C_GetSlotInfo"
        },
        {
          "name": "C_GetTokenInfo",
          "type": "CK_C_GetTokenInfo"
        },
        {
          "name": "C_GetMechanismList",
          "type": "CK_C_GetMechanismList"
        },
        {
          "name": "C_GetMechanismInfo",
          "type": "CK_C_GetMechanismInfo"
        },
        {
          "name": "C_InitToken",
          "type": "CK_C_InitToken"
        },
        {
          "name": "C_InitPIN",
          "type": "CK_C_InitPIN"
        },
        {
          "name": "C_SetPIN",
          "type": "CK_C_SetPIN"
        },
        {
          "name": "C_OpenSession",
          "type": "CK_C_OpenSession"
        },
        {
          "name": "C_CloseSession",
          "type": "CK_C_CloseSession"
        },
        {
          "name": "C_CloseAllSessions",
          "type": "CK_C_CloseAllSessions"
        },
        {
          "name": "C_GetSessionInfo",
          "type": "CK_C_GetSessionInfo"
        },
        {
          "name": "C_GetOperationState",
          "type": "CK_C_GetOperationState"
        },
        {
          "name": "C_SetOperationState",
          "type": "CK_C_SetOperationState"
        },
        {
          "name": "C_Login",
          "type": "CK_C_Login"
        },
        {
          "name": "C_Logout",
          "type": "CK_C_Logout"
        },
        {
          "name": "C_CreateObject",
          "type": "CK_C_CreateObject"
        },
        {
          "name": "C_CopyObject",
          "type": "CK_C_CopyObject"
        },
        {
          "name": "C_DestroyObject",
          "type": "CK_C_DestroyObject"
        },
        {
          "name": "C_GetObjectSize",
          "type": "CK_C_GetObjectSize"
        },
        {
          "name": "C_GetAttributeValue",
          "type": "CK_C_GetAttributeValue"
        },
        {
          "name": "C_SetAttributeValue",
          "type": "CK_C_SetAttributeValue"
        },
        {
          "name": "C_FindObjectsInit",
          "type": "CK_C_FindObjectsInit"
        },
        {
          "name": "C_FindObjects",
          "type": "CK_C_FindObjects"
        },
        {
          "name": "C_FindObjectsFinal",
          "type": "CK_C_FindObjectsFinal"
        },
        {
          "name": "C_EncryptInit",
          "type": "CK_C_EncryptInit"
        },
        {
          "name": "C_Encrypt",
          "type": "CK_C_Encrypt"
        },
        {
          "name": "C_EncryptUpdate",
          "type": "CK_C_EncryptUpdate"
        },
        {
          "name": "C_EncryptFinal",
          "type": "CK_C_EncryptFinal"
        },
        {
          "name": "C_DecryptInit",
          "type": "CK_C_DecryptInit"
        },
        {
          "name": "C_Decrypt",
          "type": "CK_C_Decrypt"
        },
        {
          "name": "C_DecryptUpdate",
          "type": "CK_C_DecryptUpdate"
        },
        {
          "name": "C_DecryptFinal",
          "type": "CK_C_DecryptFinal"
        },
        {
          "name": "C_DigestInit",
          "type": "CK_C_DigestInit"
        },
        {
          "name": "C_Digest",
          "type": "CK_C_Digest"
        },
        {
          "name": "C_DigestUpdate",
          "type": "CK_C_DigestUpdate"
        },
        {
          "name": "C_DigestKey",
          "type": "CK_C_DigestKey"
        },
        {
          "name": "C_DigestFinal",
          "type": "CK_C_DigestFinal"
        },
        {
          "name": "C_SignInit",
          "type": "CK_C_SignInit"
        },
        {
          "name": "C_Sign",
          "type": "CK_C_Sign"
        },
        {
          "name": "C_SignUpdate",
          "type": "CK_C_SignUpdate"
        },
        {
          "name": "C_SignFinal",
          "type": "CK_C_SignFinal"
        },
        {
          "name": "C_SignRecoverInit",
          "type": "CK_C_SignRecoverInit"
        },
        {
          "name": "C_SignRecover",
          "type": "CK_C_SignRecover"
        },
        {
          "name": "C_VerifyInit",
          "type": "CK_C_VerifyInit"
        },
        {
          "name": "C_Verify",
          "type": "CK_C_Verify"
        },
        {
          "name": "C_VerifyUpdate",
          "type": "CK_C_VerifyUpdate"
        },
        {
          "name": "C_VerifyFinal",
          "type": "CK_C_VerifyFinal"
        },
        {
          "name": "C_VerifyRecoverInit",
          "type": "CK_C_VerifyRecoverInit"
        },
        {
          "name": "C_VerifyRecover",
          "type": "CK_C_VerifyRecover"
        },
        {
          "name": "C_DigestEncryptUpdate",
          "type": "CK_C_DigestEncryptUpdate"
        },
        {
          "name": "C_DecryptDigestUpdate",
          "type": "CK_C_DecryptDigestUpdate"
        },
        {
          "name": "C_SignEncryptUpdate",
          "type": "CK_C_SignEncryptUpdate"
        },
        {
          "name": "C_DecryptVerifyUpdate",
          "type": "CK_C_DecryptVerifyUpdate"
        },
        {
          "name": "C_GenerateKey",
          "type": "CK_C_GenerateKey"
        },
        {
          "name": "C_GenerateKeyPair",
          "type": "CK_C_GenerateKeyPair"
        },
        {
          "name": "C_WrapKey",
          "type": "CK_C_WrapKey"
        },
        {
          "name": "C_UnwrapKey",
          "type": "CK_C_UnwrapKey"
        },
        {
          "name": "C_DeriveKey",
          "type": "CK_C_DeriveKey"
        },
        {
          "name": "C_SeedRandom",
          "type": "CK_C_SeedRandom"
        },
        {
          "name": "C_GenerateRandom",
          "type": "CK_C_GenerateRandom"
        },
        {
          "name": "C_GetFunctionStatus",
          "type": "CK_C_GetFunctionStatus"
        },
        {
          "name": "C_CancelFunction",
          "type": "CK_C_CancelFunction"
        },
        {
          "name": "C_WaitForSlotEvent",
          "type": "CK_C_WaitForSlotEvent"
        }
      ]
    },
    {
      "name": "CK_FUNCTION_LIST_3_0",
      "members": [
        {
          "name": "version",
          "type": "CK_VERSION"
        },
        {
          "name": "C_Initialize",
          "type": "CK_C_Initialize"
        },
        {
          "name": "C_Finalize",
          "type": "CK_C_Finalize"
        },
        {
          "name": "C_GetInfo",
          "type": "CK_C_GetInfo"
        },
        {
          "name": "C_GetFunctionList",
          "type": "CK_C_GetFunctionList"
        },
        {
          "name": "C_GetSlotList",
          "type": "CK_C_GetSlotList"
        },
        {
          "name": "C_GetSlotInfo",
          "type": "CK_C_GetSlotInfo"
        },
        {
          "name": "C_GetTokenInfo",
          "type": "CK_C_GetTokenInfo"
        },
        {
          "name": "C_GetMechanismList",
          "type": "CK_C_GetMechanismList"
        },
        {
          "name": "C_GetMechanismInfo",
          "type": "CK_C_GetMechanismInfo"
        },
        {
          "name": "C_InitToken",
          "type": "CK_C_InitToken"
        },
        {
          "name": "C_InitPIN",
          "type": "CK_C_InitPIN"
        },
        {
          "name": "C_SetPIN",
          "type": "CK_C_SetPIN"
        },
        {
          "name": "C_OpenSession",
          "type": "CK_C_OpenSession"
        },
        {
          "name": "C_CloseSession",
          "type": "CK_C_CloseSession"
        },
        {
          "name": "C_CloseAllSessions",
          "type": "CK_C_CloseAllSessions"
        },
        {
          "name": "C_GetSessionInfo",
          "type": "CK_C_GetSessionInfo"
        },
        {
          "name": "C_GetOperationState",
          "type": "CK_C_GetOperationState"
        },
        {
          "name": "C_SetOperationState",
          "type": "CK_C_SetOperationState"
        },
        {
          "name": "C_Login",
          "type": "CK_C_Login"
        },
        {
          "name": "C_Logout",
          "type": "CK_C_Logout"
        },
        {
          "name": "C_CreateObject",
          "type": "CK_C_CreateObject"
        },
        {
          "name": "C_CopyObject",
          "type": "CK_C_CopyObject"
        },
        {
          "name": "C_DestroyObject",
          "type": "CK_C_DestroyObject"
        },
        {
          "name": "C_GetObjectSize",
          "type": "CK_C_GetObjectSize"
        },
        {
          "name": "C_GetAttributeValue",
          "type": "CK_C_GetAttributeValue"
        },
        {
          "name": "C_SetAttributeValue",
          "type": "CK_C_SetAttributeValue"
        },
        {
          "name": "C_FindObjectsInit",
          "type": "CK_C_FindObjectsInit"
        },
        {
          "name": "C_FindObjects",
          "type": "CK_C_FindObjects"
        },
        {
          "name": "C_FindObjectsFinal",
          "type": "CK_C_FindObjectsFinal"
        },
        {
          "name": "C_EncryptInit",
          "type": "CK_C_EncryptInit"
        },
        {
          "name": "C_Encrypt",
          "type": "CK_C_Encrypt"
        },
        {
          "name": "C_EncryptUpdate",
          "type": "CK_C_EncryptUpdate"
        },
        {
          "name": "C_EncryptFinal",
          "type": "CK_C_EncryptFinal"
        },
        {
          "name": "C_DecryptInit",
          "type": "CK_C_DecryptInit"
        },
        {
          "name": "C_Decrypt",
          "type": "CK_C_Decrypt"
        },
        {
          "name": "C_DecryptUpdate",
          "type": "CK_C_DecryptUpdate"
        },
        {
          "name": "C_DecryptFinal",
          "type": "CK_C_DecryptFinal"
        },
        {
          "name": "C_DigestInit",
          "type": "CK_C_DigestInit"
        },
        {
          "name": "C_Digest",
          "type": "CK_C_Digest"
        },
        {
          "name": "C_DigestUpdate",
          "type": "CK_C_DigestUpdate"
        },
        {
          "name": "C_DigestKey",
          "type": "CK_C_DigestKey"
        },
        {
          "name": "C_DigestFinal",
          "type": "CK_C_DigestFinal"
        },
        {
          "name": "C_SignInit",
          "type": "CK_C_SignInit"
        },
        {
          "name": "C_Sign",
          "type": "CK_C_Sign"
        },
        {
          "name": "C_SignUpdate",
          "type": "CK_C_SignUpdate"
        },
        {
          "name": "C_SignFinal",
          "type": "CK_C_SignFinal"
        },
        {
          "name": "C_SignRecoverInit",
          "type": "CK_C_SignRecoverInit"
        },
        {
          "name": "C_SignRecover",
          "type": "CK_C_SignRecover"
        },
        {
          "name": "C_VerifyInit",
          "type": "CK_C_VerifyInit"
        },
        {
          "name": "C_Verify",
          "type": "CK_C_Verify"
        },
        {
          "name": "C_VerifyUpdate",
          "type": "CK_C_VerifyUpdate"
        },
        {
          "name": "C_VerifyFinal",
          "type": "CK_C_VerifyFinal"
        },
        {
          "name": "C_VerifyRecoverInit",
          "type": "CK_C_VerifyRecoverInit"
        },
        {
          "name": "C_VerifyRecover",
          "type": "CK_C_VerifyRecover"
        },
        {
          "name": "C_DigestEncryptUpdate",
          "type": "CK_C_DigestEncryptUpdate"
        },
        {
          "name": "C_DecryptDigestUpdate",
          "type": "CK_C_DecryptDigestUpdate"
        },
        {
          "name": "C_SignEncryptUpdate",
          "type": "CK_C_SignEncryptUpdate"
        },
        {
          "name": "C_DecryptVerifyUpdate",
          "type": "CK_C_DecryptVerifyUpdate"
        },
        {
          "name": "C_GenerateKey",
          "type": "CK_C_GenerateKey"
        },
        {
          "name": "C_GenerateKeyPair",
          "type": "CK_C_GenerateKeyPair"
        },
        {
          "name": "C_WrapKey",
          "type": "CK_C_WrapKey"
        },
        {
          "name": "C_UnwrapKey",
          "type": "CK_C_UnwrapKey"
        },
        {
          "name": "C_DeriveKey",
          "type": "CK_C_DeriveKey"
        },
        {
          "name": "C_SeedRandom",
          "type": "CK_C_SeedRandom"
        },
        {
          "name": "C_GenerateRandom",
          "type": "CK_C_GenerateRandom"
        },
        {
          "name": "C_GetFunctionStatus",
          "type": "CK_C_GetFunctionStatus"
        },
        {
          "name": "C_CancelFunction",
          "type": "CK_C_CancelFunction"
        },
        {
          "name": "C_WaitForSlotEvent",
          "type": "CK_C_WaitForSlotEvent"
        },
        {
          "name": "C_GetInterfaceList",
          "type": "CK_C_GetInterfaceList"
        },
        {
          "name": "C_GetInterface",
          "type": "CK_C_GetInterface"
        },
        {
          "name": "C_LoginUser",
          "type": "CK_C_LoginUser"
        },
        {
          "name": "C_SessionCancel",
          "type": "CK_C_SessionCancel"
        },
        {
          "name": "C_MessageEncryptInit",
          "type": "CK_C_MessageEncryptInit"
        },
        {
          "name": "C_EncryptMessage",
          "type": "CK_C_EncryptMessage"
        },
        {
          "name": "C_EncryptMessageBegin",
          "type": "CK_C_EncryptMessageBegin"
        },
        {
          "name": "C_EncryptMessageNext",
          "type": "CK_C_EncryptMessageNext"
        },
        {
          "name": "C_MessageEncryptFinal",
          "type": "CK_C_MessageEncryptFinal"
        },
        {
          "name": "C_MessageDecryptInit",
          "type": "CK_C_MessageDecryptInit"
        },
        {
          "name": "C_DecryptMessage",
          "type": "CK_C_DecryptMessage"
        },
        {
          "name": "C_DecryptMessageBegin",
          "type": "CK_C_DecryptMessageBegin"
        },
        {
          "name": "C_DecryptMessageNext",
          "type": "CK_C_DecryptMessageNext"
        },
        {
          "name": "C_MessageDecryptFinal",
          "type": "CK_C_MessageDecryptFinal"
        },
        {
          "name": "C_MessageSignInit",
          "type": "CK_C_MessageSignInit"
        },
        {
          "name": "C_SignMessage",
          "type": "CK_C_SignMessage"
        },
        {
          "name": "C_SignMessageBegin",
          "type": "CK_C_SignMessageBegin"
        },
        {
          "name": "C_SignMessageNext",
          "type": "CK_C_SignMessageNext"
        },
        {
          "name": "C_MessageSignFinal",
          "type": "CK_C_MessageSignFinal"
        },
        {
          "name": "C_MessageVerifyInit",
          "type": "CK_C_MessageVerifyInit"
        },
        {
          "name": "C_VerifyMessage",
          "type": "CK_C_VerifyMessage"
        },
        {
          "name": "C_VerifyMessageBegin",
          "type": "CK_C_VerifyMessageBegin"
        },
        {
          "name": "C_VerifyMessageNext",
          "type": "CK_C_VerifyMessageNext"
        },
        {
          "name": "C_MessageVerifyFinal",
          "type": "CK_C_MessageVerifyFinal"
        }
      ]
    },
    {
      "name": "CK_FUNCTION_LIST_3_2",
      "members": [
        {
          "name": "version",
          "type": "CK_VERSION"
        },
        {
          "name": "C_Initialize",
          "type": "CK_C_Initialize"
        },
        {
          "name": "C_Finalize",
          "type": "CK_C_Finalize"
        },
        {
          "name": "C_GetInfo",
          "type": "CK_C_GetInfo"
        },
        {
          "name": "C_GetFunctionList",
          "type": "CK_C_GetFunctionList"
        },
        {
          "name": "C_GetSlotList",
          "type": "CK_C_GetSlotList"
        },
        {
          "name": "C_GetSlotInfo",
          "type": "CK_C_GetSlotInfo"
        },
        {
          "name": "C_GetTokenInfo",
          "type": "CK_C_GetTokenInfo"
        },
        {
          "name": "C_GetMechanismList",
          "type": "CK_C_GetMechanismList"
        },
        {
          "name": "C_GetMechanismInfo",
          "type": "CK_C_GetMechanismInfo"
        },
        {
          "name": "C_InitToken",
          "type": "CK_C_InitToken"
        },
        {
          "name": "C_InitPIN",
          "type": "CK_C_InitPIN"
        },
        {
          "name": "C_SetPIN",
          "type": "CK_C_SetPIN"
        },
        {
          "name": "C_OpenSession",
          "type": "CK_C_OpenSession"
        },
        {
          "name": "C_CloseSession",
          "type": "CK_C_CloseSession"
        },
        {
          "name": "C_CloseAllSessions",
          "type": "CK_C_CloseAllSessions"
        },
        {
          "name": "C_GetSessionInfo",
          "type": "CK_C_GetSessionInfo"
        },
        {
          "name": "C_GetOperationState",
          "type": "CK_C_GetOperationState"
        },
        {
          "name": "C_SetOperationState",
          "type": "CK_C_SetOperationState"
        },
        {
          "name": "C_Login",
          "type": "CK_C_Login"
        },
        {
          "name": "C_Logout",
          "type": "CK_C_Logout"
        },
        {
          "name": "C_CreateObject",
          "type": "CK_C_CreateObject"
        },
        {
          "name": "C_CopyObject",
          "type": "CK_C_CopyObject"
        },
        {
          "name": "C_DestroyObject",
          "type": "CK_C_DestroyObject"
        },
        {
          "name": "C_GetObjectSize",
          "type": "CK_C_GetObjectSize"
        },
        {
          "name": "C_GetAttributeValue",
          "type": "CK_C_GetAttributeValue"
        },
        {
          "name": "C_SetAttributeValue",
          "type": "CK_C_SetAttributeValue"
        },
        {
          "name": "C_FindObjectsInit",
          "type": "CK_C_FindObjectsInit"
        },
        {
          "name": "C_FindObjects",
          "type": "CK_C_FindObjects"
        },
        {
          "name": "C_FindObjectsFinal",
          "type": "CK_C_FindObjectsFinal"
        },
        {
          "name": "C_EncryptInit",
          "type": "CK_C_EncryptInit"
        },
        {
          "name": "C_Encrypt",
          "type": "CK_C_Encrypt"
        },
        {
          "name": "C_EncryptUpdate",
          "type": "CK_C_EncryptUpdate"
        },
        {
          "name": "C_EncryptFinal",
          "type": "CK_C_EncryptFinal"
        },
        {
          "name": "C_DecryptInit",
          "type": "CK_C_DecryptInit"
        },
        {
          "name": "C_Decrypt",
          "type": "CK_C_Decrypt"
        },
        {
          "name": "C_DecryptUpdate",
          "type": "CK_C_DecryptUpdate"
        },
        {
          "name": "C_DecryptFinal",
          "type": "CK_C_DecryptFinal"
        },
        {
          "name": "C_DigestInit",
          "type": "CK_C_DigestInit"
        },
        {
          "name": "C_Digest",
          "type": "CK_C_Digest"
        },
        {
          "name": "C_DigestUpdate",
          "type": "CK_C_DigestUpdate"
        },
        {
          "name": "C_DigestKey",
          "type": "CK_C_DigestKey"
        },
        {
          "name": "C_DigestFinal",
          "type": "CK_C_DigestFinal"
        },
        {
          "name": "C_SignInit",
          "type": "CK_C_SignInit"
        },
        {
          "name": "C_Sign",
          "type": "CK_C_Sign"
        },
        {
          "name": "C_SignUpdate",
          "type": "CK_C_SignUpdate"
        },
        {
          "name": "C_SignFinal",
          "type": "CK_C_SignFinal"
        },
        {
          "name": "C_SignRecoverInit",
          "type": "CK_C_SignRecoverInit"
        },
        {
          "name": "C_SignRecover",
          "type": "CK_C_SignRecover"
        },
        {
          "name": "C_VerifyInit",
          "type": "CK_C_VerifyInit"
        },
        {
          "name": "C_Verify",
          "type": "CK_C_Verify"
        },
        {
          "name": "C_VerifyUpdate",
          "type": "CK_C_VerifyUpdate"
        },
        {
          "name": "C_VerifyFinal",
          "type": "CK_C_VerifyFinal"
        },
        {
          "name": "C_VerifyRecoverInit",
          "type": "CK_C_VerifyRecoverInit"
        },
        {
          "name": "C_VerifyRecover",
          "type": "CK_C_VerifyRecover"
        },
        {
          "name": "C_DigestEncryptUpdate",
          "type": "CK_C_DigestEncryptUpdate"
        },
        {
          "name": "C_DecryptDigestUpdate",
          "type": "CK_C_DecryptDigestUpdate"
        },
        {
          "name": "C_SignEncryptUpdate",
          "type": "CK_C_SignEncryptUpdate"
        },
        {
          "name": "C_DecryptVerifyUpdate",
          "type": "CK_C_DecryptVerifyUpdate"
        },
        {
          "name": "C_GenerateKey",
          "type": "CK_C_GenerateKey"
        },
        {
          "name": "C_GenerateKeyPair",
          "type": "CK_C_GenerateKeyPair"
        },
        {
          "name": "C_WrapKey",
          "type": "CK_C_WrapKey"
        },
        {
          "name": "C_UnwrapKey",
          "type": "CK_C_UnwrapKey"
        },
        {
          "name": "C_DeriveKey",
          "type": "CK_C_DeriveKey"
        },
        {
          "name": "C_SeedRandom",
          "type": "CK_C_SeedRandom"
        },
        {
          "name": "C_GenerateRandom",
          "type": "CK_C_GenerateRandom"
        },
        {
          "name": "C_GetFunctionStatus",
          "type": "CK_C_GetFunctionStatus"
        },
        {
          "name": "C_CancelFunction",
          "type": "CK_C_CancelFunction"
        },
        {
          "name": "C_WaitForSlotEvent",
          "type": "CK_C_WaitForSlotEvent"
        },
        {
          "name": "C_GetInterfaceList",
          "type": "CK_C_GetInterfaceList"
        },
        {
          "name": "C_GetInterface",
          "type": "CK_C_GetInterface"
        },
        {
          "name": "C_LoginUser",
          "type": "CK_C_LoginUser"
        },
        {
          "name": "C_SessionCancel",
          "type": "CK_C_SessionCancel"
        },
        {
          "name": "C_MessageEncryptInit",
          "type": "CK_C_MessageEncryptInit"
        },
        {
          "name": "C_EncryptMessage",
          "type": "CK_C_EncryptMessage"
        },
        {
          "name": "C_EncryptMessageBegin",
          "type": "CK_C_EncryptMessageBegin"
        },
        {
          "name": "C_EncryptMessageNext",
          "type": "CK_C_EncryptMessageNext"
        },
        {
          "name": "C_MessageEncryptFinal",
          "type": "CK_C_MessageEncryptFinal"
        },
        {
          "name": "C_MessageDecryptInit",
          "type": "CK_C_MessageDecryptInit"
        },
        {
          "name": "C_DecryptMessage",
          "type": "CK_C_DecryptMessage"
        },
        {
          "name": "C_DecryptMessageBegin",
          "type": "CK_C_DecryptMessageBegin"
        },
        {
          "name": "C_DecryptMessageNext",
          "type": "CK_C_DecryptMessageNext"
        },
        {
          "name": "C_MessageDecryptFinal",
          "type": "CK_C_MessageDecryptFinal"
        },
        {
          "name": "C_MessageSignInit",
          "type": "CK_C_MessageSignInit"
        },
        {
          "name": "C_SignMessage",
          "type": "CK_C_SignMessage"
        },
        {
          "name": "C_SignMessageBegin",
          "type": "CK_C_SignMessageBegin"
        },
        {
          "name": "C_SignMessageNext",
          "type": "CK_C_SignMessageNext"
        },
        {
          "name": "C_MessageSignFinal",
          "type": "CK_C_MessageSignFinal"
        },
        {
          "name": "C_MessageVerifyInit",
          "type": "CK_C_MessageVerifyInit"
        },
        {
          "name": "C_VerifyMessage",
          "type": "CK_C_VerifyMessage"
        },
        {
          "name": "C_VerifyMessageBegin",
          "type": "CK_C_VerifyMessageBegin"
        },
        {
          "name": "C_VerifyMessageNext",
          "type": "CK_C_VerifyMessageNext"
        },
        {
          "name": "C_MessageVerifyFinal",
          "type": "CK_C_MessageVerifyFinal"
        },
        {
          "name": "C_EncapsulateKey",
          "type": "CK_C_EncapsulateKey"
        },
        {
          "name": "C_DecapsulateKey",
          "type": "CK_C_DecapsulateKey"
        },
        {
          "name": "C_VerifySignatureInit",
          "type": "CK_C_VerifySignatureInit"
        },
        {
          "name": "C_VerifySignature",
          "type": "CK_C_VerifySignature"
        },
        {
          "name": "C_VerifySignatureUpdate",
          "type": "CK_C_VerifySignatureUpdate"
        },
        {
          "name": "C_VerifySignatureFinal",
          "type": "CK_C_VerifySignatureFinal"
        },
        {
          "name": "C_GetSessionValidationFlags",
          "type": "CK_C_GetSessionValidationFlags"
        },
        {
          "name": "C_AsyncComplete",
          "type": "CK_C_AsyncComplete"
        },
        {
          "name": "C_AsyncGetID",
          "type": "CK_C_AsyncGetID"
        },
        {
          "name": "C_AsyncJoin",
          "type": "CK_C_AsyncJoin"
        },
        {
          "name": "C_WrapKeyAuthenticated",
          "type": "CK_C_WrapKeyAuthenticated"
        },
        {
          "name": "C_UnwrapKeyAuthenticated",
          "type": "CK_C_UnwrapKeyAuthenticated"
        }
      ]
    }
  ]
}
