ck.api (22203B)
1 # 2 # This Source Code Form is subject to the terms of the Mozilla Public 3 # License, v. 2.0. If a copy of the MPL was not distributed with this 4 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 6 # This file is in part derived from a file "pkcs11f.h" made available 7 # by RSA Security at ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/pkcs11f.h 8 9 # Fields 10 # FUNCTION introduces a Cryptoki function 11 # CK_type specifies and introduces an argument 12 # 13 14 # General-purpose 15 16 # C_Initialize initializes the Cryptoki library. 17 FUNCTION C_Initialize 18 CK_VOID_PTR pInitArgs # if this is not NULL_PTR, it gets 19 # cast to CK_C_INITIALIZE_ARGS_PTR 20 # and dereferenced 21 22 # C_Finalize indicates that an application is done with the 23 # Cryptoki library. 24 FUNCTION C_Finalize 25 CK_VOID_PTR pReserved # reserved. Should be NULL_PTR 26 27 # C_GetInfo returns general information about Cryptoki. 28 FUNCTION C_GetInfo 29 CK_INFO_PTR pInfo # location that receives information 30 31 # C_GetFunctionList returns the function list. 32 FUNCTION C_GetFunctionList 33 CK_FUNCTION_LIST_PTR_PTR ppFunctionList # receives pointer to function 34 # list 35 36 37 # Slot and token management 38 39 # C_GetSlotList obtains a list of slots in the system. 40 FUNCTION C_GetSlotList 41 CK_BBOOL tokenPresent # only slots with tokens? 42 CK_SLOT_ID_PTR pSlotList # receives array of slot IDs 43 CK_ULONG_PTR pulCount # receives number of slots 44 45 # C_GetSlotInfo obtains information about a particular slot in the 46 # system. 47 FUNCTION C_GetSlotInfo 48 CK_SLOT_ID slotID # the ID of the slot 49 CK_SLOT_INFO_PTR pInfo # receives the slot information 50 51 # C_GetTokenInfo obtains information about a particular token in the 52 # system. 53 FUNCTION C_GetTokenInfo 54 CK_SLOT_ID slotID # ID of the token's slot 55 CK_TOKEN_INFO_PTR pInfo # receives the token information 56 57 # C_GetMechanismList obtains a list of mechanism types supported by a 58 # token. 59 FUNCTION C_GetMechanismList 60 CK_SLOT_ID slotID # ID of token's slot 61 CK_MECHANISM_TYPE_PTR pMechanismList # gets mech. array 62 CK_ULONG_PTR pulCount # gets # of mechs. 63 64 # C_GetMechanismInfo obtains information about a particular mechanism 65 # possibly supported by a token. 66 FUNCTION C_GetMechanismInfo 67 CK_SLOT_ID slotID # ID of the token's slot 68 CK_MECHANISM_TYPE type # type of mechanism 69 CK_MECHANISM_INFO_PTR pInfo # receives mechanism info 70 71 # C_InitToken initializes a token. 72 FUNCTION C_InitToken 73 CK_SLOT_ID slotID # ID of the token's slot 74 CK_CHAR_PTR pPin # the SO's initial PIN 75 CK_ULONG ulPinLen # length in bytes of the PIN 76 CK_CHAR_PTR pLabel # 32-byte token label (blank padded) 77 78 # C_InitPIN initializes the normal user's PIN. 79 FUNCTION C_InitPIN 80 CK_SESSION_HANDLE hSession # the session's handle 81 CK_CHAR_PTR pPin # the normal user's PIN 82 CK_ULONG ulPinLen # length in bytes of the PIN 83 84 # C_SetPIN modifies the PIN of the user who is logged in. 85 FUNCTION C_SetPIN 86 CK_SESSION_HANDLE hSession # the session's handle 87 CK_CHAR_PTR pOldPin # the old PIN 88 CK_ULONG ulOldLen # length of the old PIN 89 CK_CHAR_PTR pNewPin # the new PIN 90 CK_ULONG ulNewLen # length of the new PIN 91 92 93 # Session management 94 95 # C_OpenSession opens a session between an application and a token. 96 FUNCTION C_OpenSession 97 CK_SLOT_ID slotID # the slot's ID 98 CK_FLAGS flags # from CK_SESSION_INFO 99 CK_VOID_PTR pApplication # passed to callback 100 CK_NOTIFY Notify # callback function 101 CK_SESSION_HANDLE_PTR phSession # gets session handle 102 103 # C_CloseSession closes a session between an application and a token. 104 FUNCTION C_CloseSession 105 CK_SESSION_HANDLE hSession # the session's handle 106 107 # C_CloseAllSessions closes all sessions with a token. 108 FUNCTION C_CloseAllSessions 109 CK_SLOT_ID slotID # the token's slot 110 111 # C_GetSessionInfo obtains information about the session. 112 FUNCTION C_GetSessionInfo 113 CK_SESSION_HANDLE hSession # the session's handle 114 CK_SESSION_INFO_PTR pInfo # receives session info 115 116 # C_GetOperationState obtains the state of the cryptographic 117 # operation in a session. 118 FUNCTION C_GetOperationState 119 CK_SESSION_HANDLE hSession # session's handle 120 CK_BYTE_PTR pOperationState # gets state 121 CK_ULONG_PTR pulOperationStateLen # gets state length 122 123 # C_SetOperationState restores the state of the cryptographic 124 # operation in a session. 125 FUNCTION C_SetOperationState 126 CK_SESSION_HANDLE hSession # session's handle 127 CK_BYTE_PTR pOperationState # holds state 128 CK_ULONG ulOperationStateLen # holds state length 129 CK_OBJECT_HANDLE hEncryptionKey # en/decryption key 130 CK_OBJECT_HANDLE hAuthenticationKey # sign/verify key 131 132 # C_Login logs a user into a token. 133 FUNCTION C_Login 134 CK_SESSION_HANDLE hSession # the session's handle 135 CK_USER_TYPE userType # the user type 136 CK_CHAR_PTR pPin # the user's PIN 137 CK_ULONG ulPinLen # the length of the PIN 138 139 # C_Logout logs a user out from a token. 140 FUNCTION C_Logout 141 CK_SESSION_HANDLE hSession # the session's handle 142 143 144 # Object management 145 146 # C_CreateObject creates a new object. 147 FUNCTION C_CreateObject 148 CK_SESSION_HANDLE hSession # the session's handle 149 CK_ATTRIBUTE_PTR pTemplate # the object's template 150 CK_ULONG ulCount # attributes in template 151 CK_OBJECT_HANDLE_PTR phObject # gets new object's handle. 152 153 # C_CopyObject copies an object, creating a new object for the copy. 154 FUNCTION C_CopyObject 155 CK_SESSION_HANDLE hSession # the session's handle 156 CK_OBJECT_HANDLE hObject # the object's handle 157 CK_ATTRIBUTE_PTR pTemplate # template for new object 158 CK_ULONG ulCount # attributes in template 159 CK_OBJECT_HANDLE_PTR phNewObject # receives handle of copy 160 161 # C_DestroyObject destroys an object. 162 FUNCTION C_DestroyObject 163 CK_SESSION_HANDLE hSession # the session's handle 164 CK_OBJECT_HANDLE hObject # the object's handle 165 166 # C_GetObjectSize gets the size of an object in bytes. 167 FUNCTION C_GetObjectSize 168 CK_SESSION_HANDLE hSession # the session's handle 169 CK_OBJECT_HANDLE hObject # the object's handle 170 CK_ULONG_PTR pulSize # receives size of object 171 172 # C_GetAttributeValue obtains the value of one or more object 173 # attributes. 174 FUNCTION C_GetAttributeValue 175 CK_SESSION_HANDLE hSession # the session's handle 176 CK_OBJECT_HANDLE hObject # the object's handle 177 CK_ATTRIBUTE_PTR pTemplate # specifies attrs; gets vals 178 CK_ULONG ulCount # attributes in template 179 180 # C_SetAttributeValue modifies the value of one or more object 181 # attributes 182 FUNCTION C_SetAttributeValue 183 CK_SESSION_HANDLE hSession # the session's handle 184 CK_OBJECT_HANDLE hObject # the object's handle 185 CK_ATTRIBUTE_PTR pTemplate # specifies attrs and values 186 CK_ULONG ulCount # attributes in template 187 188 # C_FindObjectsInit initializes a search for token and session 189 # objects that match a template. 190 FUNCTION C_FindObjectsInit 191 CK_SESSION_HANDLE hSession # the session's handle 192 CK_ATTRIBUTE_PTR pTemplate # attribute values to match 193 CK_ULONG ulCount # attrs in search template 194 195 # C_FindObjects continues a search for token and session objects that 196 # match a template, obtaining additional object handles. 197 FUNCTION C_FindObjects 198 CK_SESSION_HANDLE hSession # session's handle 199 CK_OBJECT_HANDLE_PTR phObject # gets obj. handles 200 CK_ULONG ulMaxObjectCount # max handles to get 201 CK_ULONG_PTR pulObjectCount # actual # returned 202 203 # C_FindObjectsFinal finishes a search for token and session objects. 204 FUNCTION C_FindObjectsFinal 205 CK_SESSION_HANDLE hSession # the session's handle 206 207 208 # Encryption and decryption 209 210 # C_EncryptInit initializes an encryption operation. 211 FUNCTION C_EncryptInit 212 CK_SESSION_HANDLE hSession # the session's handle 213 CK_MECHANISM_PTR pMechanism # the encryption mechanism 214 CK_OBJECT_HANDLE hKey # handle of encryption key 215 216 # C_Encrypt encrypts single-part data. 217 FUNCTION C_Encrypt 218 CK_SESSION_HANDLE hSession # session's handle 219 CK_BYTE_PTR pData # the plaintext data 220 CK_ULONG ulDataLen # bytes of plaintext 221 CK_BYTE_PTR pEncryptedData # gets ciphertext 222 CK_ULONG_PTR pulEncryptedDataLen # gets c-text size 223 224 # C_EncryptUpdate continues a multiple-part encryption operation. 225 FUNCTION C_EncryptUpdate 226 CK_SESSION_HANDLE hSession # session's handle 227 CK_BYTE_PTR pPart # the plaintext data 228 CK_ULONG ulPartLen # plaintext data len 229 CK_BYTE_PTR pEncryptedPart # gets ciphertext 230 CK_ULONG_PTR pulEncryptedPartLen # gets c-text size 231 232 # C_EncryptFinal finishes a multiple-part encryption operation. 233 FUNCTION C_EncryptFinal 234 CK_SESSION_HANDLE hSession # session handle 235 CK_BYTE_PTR pLastEncryptedPart # last c-text 236 CK_ULONG_PTR pulLastEncryptedPartLen # gets last size 237 238 # C_DecryptInit initializes a decryption operation. 239 FUNCTION C_DecryptInit 240 CK_SESSION_HANDLE hSession # the session's handle 241 CK_MECHANISM_PTR pMechanism # the decryption mechanism 242 CK_OBJECT_HANDLE hKey # handle of decryption key 243 244 # C_Decrypt decrypts encrypted data in a single part. 245 FUNCTION C_Decrypt 246 CK_SESSION_HANDLE hSession # session's handle 247 CK_BYTE_PTR pEncryptedData # ciphertext 248 CK_ULONG ulEncryptedDataLen # ciphertext length 249 CK_BYTE_PTR pData # gets plaintext 250 CK_ULONG_PTR pulDataLen # gets p-text size 251 252 # C_DecryptUpdate continues a multiple-part decryption operation. 253 FUNCTION C_DecryptUpdate 254 CK_SESSION_HANDLE hSession # session's handle 255 CK_BYTE_PTR pEncryptedPart # encrypted data 256 CK_ULONG ulEncryptedPartLen # input length 257 CK_BYTE_PTR pPart # gets plaintext 258 CK_ULONG_PTR pulPartLen # p-text size 259 260 # C_DecryptFinal finishes a multiple-part decryption operation. 261 FUNCTION C_DecryptFinal 262 CK_SESSION_HANDLE hSession # the session's handle 263 CK_BYTE_PTR pLastPart # gets plaintext 264 CK_ULONG_PTR pulLastPartLen # p-text size 265 266 267 # Message digesting 268 269 # C_DigestInit initializes a message-digesting operation. 270 FUNCTION C_DigestInit 271 CK_SESSION_HANDLE hSession # the session's handle 272 CK_MECHANISM_PTR pMechanism # the digesting mechanism 273 274 # C_Digest digests data in a single part. 275 FUNCTION C_Digest 276 CK_SESSION_HANDLE hSession # the session's handle 277 CK_BYTE_PTR pData # data to be digested 278 CK_ULONG ulDataLen # bytes of data to digest 279 CK_BYTE_PTR pDigest # gets the message digest 280 CK_ULONG_PTR pulDigestLen # gets digest length 281 282 # C_DigestUpdate continues a multiple-part message-digesting operation. 283 FUNCTION C_DigestUpdate 284 CK_SESSION_HANDLE hSession # the session's handle 285 CK_BYTE_PTR pPart # data to be digested 286 CK_ULONG ulPartLen # bytes of data to be digested 287 288 # C_DigestKey continues a multi-part message-digesting operation, by 289 # digesting the value of a secret key as part of the data already 290 # digested. 291 FUNCTION C_DigestKey 292 CK_SESSION_HANDLE hSession # the session's handle 293 CK_OBJECT_HANDLE hKey # secret key to digest 294 295 # C_DigestFinal finishes a multiple-part message-digesting operation. 296 FUNCTION C_DigestFinal 297 CK_SESSION_HANDLE hSession # the session's handle 298 CK_BYTE_PTR pDigest # gets the message digest 299 CK_ULONG_PTR pulDigestLen # gets byte count of digest 300 301 302 # Signing and MACing 303 304 # C_SignInit initializes a signature (private key encryption) 305 # operation, where the signature is (will be) an appendix to the 306 # data, and plaintext cannot be recovered from the signature. 307 FUNCTION C_SignInit 308 CK_SESSION_HANDLE hSession # the session's handle 309 CK_MECHANISM_PTR pMechanism # the signature mechanism 310 CK_OBJECT_HANDLE hKey # handle of signature key 311 312 # C_Sign signs (encrypts with private key) data in a single part, 313 # where the signature is (will be) an appendix to the data, and 314 # plaintext cannot be recovered from the signature. 315 FUNCTION C_Sign 316 CK_SESSION_HANDLE hSession # the session's handle 317 CK_BYTE_PTR pData # the data to sign 318 CK_ULONG ulDataLen # count of bytes to sign 319 CK_BYTE_PTR pSignature # gets the signature 320 CK_ULONG_PTR pulSignatureLen # gets signature length 321 322 # C_SignUpdate continues a multiple-part signature operation, where 323 # the signature is (will be) an appendix to the data, and plaintext 324 # cannot be recovered from the signature. 325 FUNCTION C_SignUpdate 326 CK_SESSION_HANDLE hSession # the session's handle 327 CK_BYTE_PTR pPart # the data to sign 328 CK_ULONG ulPartLen # count of bytes to sign 329 330 # C_SignFinal finishes a multiple-part signature operation, returning 331 # the signature. 332 FUNCTION C_SignFinal 333 CK_SESSION_HANDLE hSession # the session's handle 334 CK_BYTE_PTR pSignature # gets the signature 335 CK_ULONG_PTR pulSignatureLen # gets signature length 336 337 # C_SignRecoverInit initializes a signature operation, where the data 338 # can be recovered from the signature. 339 FUNCTION C_SignRecoverInit 340 CK_SESSION_HANDLE hSession # the session's handle 341 CK_MECHANISM_PTR pMechanism # the signature mechanism 342 CK_OBJECT_HANDLE hKey # handle of the signature key 343 344 # C_SignRecover signs data in a single operation, where the data can 345 # be recovered from the signature. 346 FUNCTION C_SignRecover 347 CK_SESSION_HANDLE hSession # the session's handle 348 CK_BYTE_PTR pData # the data to sign 349 CK_ULONG ulDataLen # count of bytes to sign 350 CK_BYTE_PTR pSignature # gets the signature 351 CK_ULONG_PTR pulSignatureLen # gets signature length 352 353 354 # Verifying signatures and MACs 355 356 # C_VerifyInit initializes a verification operation, where the 357 # signature is an appendix to the data, and plaintext cannot cannot 358 # be recovered from the signature (e.g. DSA). 359 FUNCTION C_VerifyInit 360 CK_SESSION_HANDLE hSession # the session's handle 361 CK_MECHANISM_PTR pMechanism # the verification mechanism 362 CK_OBJECT_HANDLE hKey # verification key 363 364 # C_Verify verifies a signature in a single-part operation, where the 365 # signature is an appendix to the data, and plaintext cannot be 366 # recovered from the signature. 367 FUNCTION C_Verify 368 CK_SESSION_HANDLE hSession # the session's handle 369 CK_BYTE_PTR pData # signed data 370 CK_ULONG ulDataLen # length of signed data 371 CK_BYTE_PTR pSignature # signature 372 CK_ULONG ulSignatureLen # signature length 373 374 # C_VerifyUpdate continues a multiple-part verification operation, 375 # where the signature is an appendix to the data, and plaintext cannot be 376 # recovered from the signature. 377 FUNCTION C_VerifyUpdate 378 CK_SESSION_HANDLE hSession # the session's handle 379 CK_BYTE_PTR pPart # signed data 380 CK_ULONG ulPartLen # length of signed data 381 382 # C_VerifyFinal finishes a multiple-part verification operation, 383 # checking the signature. 384 FUNCTION C_VerifyFinal 385 CK_SESSION_HANDLE hSession # the session's handle 386 CK_BYTE_PTR pSignature # signature to verify 387 CK_ULONG ulSignatureLen # signature length 388 389 # C_VerifyRecoverInit initializes a signature verification operation, 390 # where the data is recovered from the signature. 391 FUNCTION C_VerifyRecoverInit 392 CK_SESSION_HANDLE hSession # the session's handle 393 CK_MECHANISM_PTR pMechanism # the verification mechanism 394 CK_OBJECT_HANDLE hKey # verification key 395 396 # C_VerifyRecover verifies a signature in a single-part operation, 397 # where the data is recovered from the signature. 398 FUNCTION C_VerifyRecover 399 CK_SESSION_HANDLE hSession # the session's handle 400 CK_BYTE_PTR pSignature # signature to verify 401 CK_ULONG ulSignatureLen # signature length 402 CK_BYTE_PTR pData # gets signed data 403 CK_ULONG_PTR pulDataLen # gets signed data len 404 405 406 # Dual-function cryptographic operations 407 408 # C_DigestEncryptUpdate continues a multiple-part digesting and 409 # encryption operation. 410 FUNCTION C_DigestEncryptUpdate 411 CK_SESSION_HANDLE hSession # session's handle 412 CK_BYTE_PTR pPart # the plaintext data 413 CK_ULONG ulPartLen # plaintext length 414 CK_BYTE_PTR pEncryptedPart # gets ciphertext 415 CK_ULONG_PTR pulEncryptedPartLen # gets c-text length 416 417 # C_DecryptDigestUpdate continues a multiple-part decryption and 418 # digesting operation. 419 FUNCTION C_DecryptDigestUpdate 420 CK_SESSION_HANDLE hSession # session's handle 421 CK_BYTE_PTR pEncryptedPart # ciphertext 422 CK_ULONG ulEncryptedPartLen # ciphertext length 423 CK_BYTE_PTR pPart # gets plaintext 424 CK_ULONG_PTR pulPartLen # gets plaintext len 425 426 # C_SignEncryptUpdate continues a multiple-part signing and 427 # encryption operation. 428 FUNCTION C_SignEncryptUpdate 429 CK_SESSION_HANDLE hSession # session's handle 430 CK_BYTE_PTR pPart # the plaintext data 431 CK_ULONG ulPartLen # plaintext length 432 CK_BYTE_PTR pEncryptedPart # gets ciphertext 433 CK_ULONG_PTR pulEncryptedPartLen # gets c-text length 434 435 # C_DecryptVerifyUpdate continues a multiple-part decryption and 436 # verify operation. 437 FUNCTION C_DecryptVerifyUpdate 438 CK_SESSION_HANDLE hSession # session's handle 439 CK_BYTE_PTR pEncryptedPart # ciphertext 440 CK_ULONG ulEncryptedPartLen # ciphertext length 441 CK_BYTE_PTR pPart # gets plaintext 442 CK_ULONG_PTR pulPartLen # gets p-text length 443 444 445 # Key management 446 447 # C_GenerateKey generates a secret key, creating a new key object. 448 FUNCTION C_GenerateKey 449 CK_SESSION_HANDLE hSession # the session's handle 450 CK_MECHANISM_PTR pMechanism # key generation mech. 451 CK_ATTRIBUTE_PTR pTemplate # template for new key 452 CK_ULONG ulCount # # of attrs in template 453 CK_OBJECT_HANDLE_PTR phKey # gets handle of new key 454 455 # C_GenerateKeyPair generates a public-key/private-key pair, creating 456 # new key objects. 457 FUNCTION C_GenerateKeyPair 458 CK_SESSION_HANDLE hSession # session handle 459 CK_MECHANISM_PTR pMechanism # key-gen mech. 460 CK_ATTRIBUTE_PTR pPublicKeyTemplate # template for pub. key 461 CK_ULONG ulPublicKeyAttributeCount # # pub. attrs. 462 CK_ATTRIBUTE_PTR pPrivateKeyTemplate # template for priv. key 463 CK_ULONG ulPrivateKeyAttributeCount # # priv. attrs. 464 CK_OBJECT_HANDLE_PTR phPublicKey # gets pub. key handle 465 CK_OBJECT_HANDLE_PTR phPrivateKey # gets priv. key handle 466 467 # C_WrapKey wraps (i.e., encrypts) a key. 468 FUNCTION C_WrapKey 469 CK_SESSION_HANDLE hSession # the session's handle 470 CK_MECHANISM_PTR pMechanism # the wrapping mechanism 471 CK_OBJECT_HANDLE hWrappingKey # wrapping key 472 CK_OBJECT_HANDLE hKey # key to be wrapped 473 CK_BYTE_PTR pWrappedKey # gets wrapped key 474 CK_ULONG_PTR pulWrappedKeyLen # gets wrapped key size 475 476 # C_UnwrapKey unwraps (decrypts) a wrapped key, creating a new key 477 # object. 478 FUNCTION C_UnwrapKey 479 CK_SESSION_HANDLE hSession # session's handle 480 CK_MECHANISM_PTR pMechanism # unwrapping mech. 481 CK_OBJECT_HANDLE hUnwrappingKey # unwrapping key 482 CK_BYTE_PTR pWrappedKey # the wrapped key 483 CK_ULONG ulWrappedKeyLen # wrapped key len 484 CK_ATTRIBUTE_PTR pTemplate # new key template 485 CK_ULONG ulAttributeCount # template length 486 CK_OBJECT_HANDLE_PTR phKey # gets new handle 487 488 # C_DeriveKey derives a key from a base key, creating a new key object. 489 FUNCTION C_DeriveKey 490 CK_SESSION_HANDLE hSession # session's handle 491 CK_MECHANISM_PTR pMechanism # key deriv. mech. 492 CK_OBJECT_HANDLE hBaseKey # base key 493 CK_ATTRIBUTE_PTR pTemplate # new key template 494 CK_ULONG ulAttributeCount # template length 495 CK_OBJECT_HANDLE_PTR phKey # gets new handle 496 497 498 # Random number generation 499 500 # C_SeedRandom mixes additional seed material into the token's random 501 # number generator. 502 FUNCTION C_SeedRandom 503 CK_SESSION_HANDLE hSession # the session's handle 504 CK_BYTE_PTR pSeed # the seed material 505 CK_ULONG ulSeedLen # length of seed material 506 507 # C_GenerateRandom generates random data. 508 FUNCTION C_GenerateRandom 509 CK_SESSION_HANDLE hSession # the session's handle 510 CK_BYTE_PTR RandomData # receives the random data 511 CK_ULONG ulRandomLen # # of bytes to generate 512 513 514 # Parallel function management 515 516 # C_GetFunctionStatus is a legacy function; it obtains an updated 517 # status of a function running in parallel with an application. 518 FUNCTION C_GetFunctionStatus 519 CK_SESSION_HANDLE hSession # the session's handle 520 521 # C_CancelFunction is a legacy function; it cancels a function running 522 # in parallel. 523 FUNCTION C_CancelFunction 524 CK_SESSION_HANDLE hSession # the session's handle 525 526 527 # Functions added in for Cryptoki Version 2.01 or later 528 529 # C_WaitForSlotEvent waits for a slot event (token insertion, removal, 530 # etc.) to occur. 531 FUNCTION C_WaitForSlotEvent 532 CK_FLAGS flags # blocking/nonblocking flag 533 CK_SLOT_ID_PTR pSlot # location that receives the slot ID 534 CK_VOID_PTR pRserved # reserved. Should be NULL_PTR 535 536 ## C_ConfigureSlot passes an installation-specified bytestring to a 537 ## slot. 538 #FUNCTION C_ConfigureSlot 539 #CK_SLOT_ID slotID # the slot to configure 540 #CK_BYTE_PTR pConfig # the configuration string 541 #CK_ULONG ulConfigLen # length of the config string