NVIDIA DriveOS Linux NSR SDK API Reference

7.0.3.0 Release
nvpkcs11.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020-2024, NVIDIA CORPORATION. All rights reserved.
3  *
4  * NVIDIA CORPORATION and its licensors retain all intellectual property
5  * and proprietary rights in and to this software, related documentation
6  * and any modifications thereto. Any use, reproduction, disclosure or
7  * distribution of this software and related documentation without an express
8  * license agreement from NVIDIA CORPORATION is strictly prohibited.
9  */
10 
19 #ifndef NVPKCS11_H_
20 #include <stddef.h>
21 #include <stdint.h>
22 #define NVPKCS11_H_
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
38 #define CK_PTR *
39 
40 #define CK_DECLARE_FUNCTION(returnType, name) \
41  returnType name
42 
43 #define CK_DECLARE_FUNCTION_POINTER(returnType, name) \
44  returnType (* name)
45 
46 #define CK_CALLBACK_FUNCTION(returnType, name) \
47  returnType (* name)
48 
49 #ifndef NULL_PTR
50 #define NULL_PTR NULL
51 #endif
52 
53 
55 /* Defines PKCS11 standard interface constants, data structures and function
56  * prototype definitions for HPSE NVIDIA Tegra products.
57  */
58 #include "pkcs11.h"
59 #include "nvpkcs11_future.h"
60 
61 
75 
80 
87 
88 
91 #define CKF_NVIDIA_ZERO_COPY (0x00000001UL)
92 #define CKF_NVIDIA_GCM_DECRYPT_UNAVAILABLE (0x00000002UL)
95 #define CKF_NVIDIA_HMAC_SIGN (0x0100000000UL)
96 #define CKF_NVIDIA_HMAC_VERIFY (0x0200000000UL)
97 #define CKF_NVIDIA_HMAC_MESSAGE_SIGN (0x0400000000UL)
98 #define CKF_NVIDIA_HMAC_MESSAGE_VERIFY (0x0800000000UL)
101 #define CKF_NVIDIA_TOKEN_OK (0x02000000UL)
102 #define CKF_NVIDIA_SECURE_STORAGE_FAILED (0x04000000UL)
103 #define CKF_NVIDIA_SECURE_STORAGE_TAMPERED (0x08000000UL)
104 #define CKF_NVIDIA_KEYLOAD_TIMEOUT (0x10000000UL)
105 #define CKF_NVIDIA_KEYLOAD_FAILED (0x20000000UL)
106 #define CKF_NVIDIA_TOKEN_ERROR (0x40000000UL)
107 #define CKF_NVIDIA_SECURE_STORAGE_NOT_PROVISIONED (0x80000000UL)
108 #define CKF_NVIDIA_SECURE_STORAGE_NOT_PRESENT (0x100000000UL)
111 #define CKF_NVIDIA_KAT_TEST_NONE (0x00000001UL)
112 #define CKF_NVIDIA_KAT_TEST_START (0x00000002UL)
113 #define CKF_NVIDIA_KAT_TEST_PASS (0x00000004UL)
114 #define CKF_NVIDIA_KAT_TEST_FAIL (0x00000008UL)
115 #define CKF_NVIDIA_KAT_TEST_BYPASS (0x00000010UL)
116 #define CKF_NVIDIA_KAT_TEST_LIMIT_INIT (0x00000020UL)
120 #define CKR_NVIDIA_CHANNEL_NOT_FOUND (CKR_VENDOR_DEFINED | 0x000000007UL)
121 #define CKR_NVIDIA_CHANNEL_CANNOT_OPEN (CKR_VENDOR_DEFINED | 0x000000008UL)
122 #define CKR_NVIDIA_SECURE_STORAGE_FAILED (CKR_VENDOR_DEFINED | 0x000000009UL)
123 #define CKR_NVIDIA_SECURE_STORAGE_TAMPERED (CKR_VENDOR_DEFINED | 0x000000010UL)
124 #define CKR_NVIDIA_OBJECTS_CHANGED (CKR_VENDOR_DEFINED | 0x000000011UL)
125 #define CKR_NVIDIA_FUNCTION_NOT_ALLOWED_IN_SYSTEM_STATE (CKR_VENDOR_DEFINED | 0x000000012UL)
126 #define CKR_NVIDIA_CRYPTOKI_UNAVAILABLE (CKR_VENDOR_DEFINED | 0x000000013UL)
130 #define CKA_NVIDIA_CALLER_NONCE (CKA_VENDOR_DEFINED | 0x00000001UL)
187 extern CK_RV C_NVIDIA_EncryptGetIV
188 (
189  CK_SESSION_HANDLE hSession,
190  CK_BYTE_PTR pIV,
191  CK_BYTE_PTR pIVLen
192 );
193 
195 #define C_EncryptGetIV C_NVIDIA_EncryptGetIV
196 
199 (
200  CK_SESSION_HANDLE hSession,
201  CK_BYTE_PTR pIV,
202  CK_BYTE_PTR pIVLen
203 );
204 
258 (
259  CK_SESSION_HANDLE hSession,
260  CK_FLAGS flags
261 );
262 
265 (
266  CK_SESSION_HANDLE hSession,
267  CK_FLAGS flags
268 );
269 
270 
314 (
315  CK_ULONG ulChannelId,
317  CK_NVIDIA_FLAGS_PTR pFlags
318 );
319 
322 (
323  CK_ULONG ulChannelId,
325  CK_NVIDIA_FLAGS_PTR pFlags
326 );
327 
328 
337 
405 (
406  CK_SLOT_ID slotID,
407  CK_FLAGS flags,
409  CK_NOTIFY Notify,
410  CK_SESSION_HANDLE_PTR phSession,
411  CK_NVIDIA_CHANNEL_ATTRIBUTE_PTR pChannelSettings,
412  CK_ULONG ulChannelSettingsCount,
413  CK_NVIDIA_FLAGS additionalFlags
414 );
415 
417 typedef CK_RV (* CK_C_NVIDIA_OpenSession)
418 (
419  CK_SLOT_ID slotID,
420  CK_FLAGS flags,
422  CK_NOTIFY Notify,
423  CK_SESSION_HANDLE_PTR phSession,
424  CK_NVIDIA_CHANNEL_ATTRIBUTE_PTR pChannelSettings,
425  CK_ULONG ulChannelSettingsCount,
426  CK_NVIDIA_FLAGS additionalFlags
427 );
428 
429 
466 (
467  CK_NVIDIA_CHANNEL_HANDLE hChannel
468 );
469 
472 (
473  CK_NVIDIA_CHANNEL_HANDLE hChannel
474 );
475 
501 (
502  CK_FLAGS flags
503 );
504 
507 (
508  CK_FLAGS flags
509 );
510 
563  CK_MECHANISM_PTR pMechanism,
564  CK_OBJECT_HANDLE_PTR phKeys,
565  CK_ULONG ulKeysCount);
566 
569 (
570  CK_SESSION_HANDLE hSession,
571  CK_MECHANISM_PTR pMechanism,
572  CK_OBJECT_HANDLE_PTR phKeys,
573  CK_ULONG ulKeysCount
574 );
575 
590 
593 
642  CK_NVIDIA_BATCH_SIGN_ENTRY_PTR pBatchEntry,
643  CK_ULONG ulBatchEntryCount);
644 
647 (
648  CK_SESSION_HANDLE hSession,
649  CK_NVIDIA_BATCH_SIGN_ENTRY_PTR pBatchEntry,
650  CK_ULONG ulBatchEntryCount
651 );
652 
696 
699 (
700  CK_SESSION_HANDLE hSession
701 );
702 
755  CK_MECHANISM_PTR pMechanism,
756  CK_OBJECT_HANDLE_PTR phKeys,
757  CK_ULONG ulKeysCount);
758 
761 (
762  CK_SESSION_HANDLE hSession,
763  CK_MECHANISM_PTR pMechanism,
764  CK_OBJECT_HANDLE_PTR phKeys,
765  CK_ULONG ulKeysCount
766 );
767 
782 
785 
835  CK_ULONG ulBatchEntryCount);
836 
839 (
840  CK_SESSION_HANDLE hSession,
842  CK_ULONG ulBatchEntryCount
843 );
844 
887 
890 (
891  CK_SESSION_HANDLE hSession
892 );
893 
909 };
910 
938 #define CKM_NVIDIA_AES_CBC_KEY_DATA_WRAP (CKM_VENDOR_DEFINED | 0x00000001UL)
939 
948  CK_BYTE iv[16];
950 
953 
967 #define CKM_NVIDIA_SP800_56C_TWO_STEPS_KDF (CKM_VENDOR_DEFINED | 0x00000002UL)
968 
981 
984 
995 #define CKM_NVIDIA_MACSEC_AES_KEY_WRAP (CKM_VENDOR_DEFINED | 0x00000003UL)
996 
1007 
1010 
1015  uint64_t iova;
1020 
1023 
1028 {
1032 
1035 
1044 #define CKM_NVIDIA_PSC_AES_CMAC (CKM_VENDOR_DEFINED | 0x00000004UL)
1045 
1057 #define CKM_NVIDIA_AES_GCM_KEY_UNWRAP (CKM_VENDOR_DEFINED | 0x00000005UL)
1058 
1068 #define CKM_NVIDIA_OX5B_SHA256_KEY_DERIVATION (CKM_VENDOR_DEFINED | 0x00000006UL)
1069 
1081 
1084 
1104 #define CKM_NVIDIA_SP800_56A_ONE_STEP_KDF (CKM_VENDOR_DEFINED | 0x00000007UL)
1105 
1117 
1120 
1130 #define CKM_NVIDIA_TSECRADAR_AES_CMAC (CKM_VENDOR_DEFINED | 0x00000008UL)
1131 
1133 #ifdef __cplusplus
1134 }
1135 #endif
1136 
1137 #endif /* NVPKCS11_H_ */
1138 
C_NVIDIA_BatchMessageSignFinal
CK_RV C_NVIDIA_BatchMessageSignFinal(CK_SESSION_HANDLE hSession)
C_NVIDIA_BatchMessageSignFinal finishes a batch message-based signature process.
CK_NVIDIA_ZERO_COPY_LIST::pZeroCopyData
CK_NVIDIA_ZERO_COPY_ENTRY_PTR pZeroCopyData
Pointer to zero copy data.
Definition: nvpkcs11.h:1030
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS
struct CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS provides the parameters to the CKM_NVIDIA_SP800_56A_ONE_STEP_...
C_NVIDIA_BatchVerifyMessage
CK_RV C_NVIDIA_BatchVerifyMessage(CK_SESSION_HANDLE hSession, CK_NVIDIA_BATCH_VERIFY_ENTRY_PTR pBatchEntry, CK_ULONG ulBatchEntryCount)
C_NVIDIA_BatchVerifyMessage verifies the signatures of a batch of messages in a single part.
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS_PTR
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS CK_PTR CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS_PTR
Declaration of CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS_PTR as a type.
Definition: nvpkcs11.h:1009
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS::pInfo
CK_BYTE_PTR pInfo
Info string for the expand stage of the KDF.
Definition: nvpkcs11.h:977
CK_NVIDIA_FLAGS
CK_FLAGS CK_NVIDIA_FLAGS
Declaration of CK_NVIDIA_FLAGS as a type.
Definition: nvpkcs11.h:77
C_NVIDIA_BatchMessageVerifyInit
CK_RV C_NVIDIA_BatchMessageVerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE_PTR phKeys, CK_ULONG ulKeysCount)
C_NVIDIA_BatchMessageVerifyInit initializes a batch message-based signature verification process.
CK_NVIDIA_BATCH_VERIFY_ENTRY::rv
CK_RV rv
Return value from verifying this batch entry.
Definition: nvpkcs11.h:780
CK_BYTE_PTR
CK_BYTE CK_PTR CK_BYTE_PTR
Definition: pkcs11t.h:63
CK_C_NVIDIA_InitializeChannel
CK_RV(* CK_C_NVIDIA_InitializeChannel)(CK_ULONG ulChannelId, CK_NVIDIA_CHANNEL_HANDLE_PTR phChannel, CK_NVIDIA_FLAGS_PTR pFlags)
pointer to C_NVIDIA_InitializeChannel
Definition: nvpkcs11.h:322
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS::prfType
CK_MECHANISM_TYPE prfType
Base PRF used in the underlying KDF operation.
Definition: nvpkcs11.h:1112
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS::pUid
CK_BYTE_PTR pUid
A pointer to the uid for this key derivation.
Definition: nvpkcs11.h:1075
C_NVIDIA_OpenSession
CK_RV C_NVIDIA_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession, CK_NVIDIA_CHANNEL_ATTRIBUTE_PTR pChannelSettings, CK_ULONG ulChannelSettingsCount, CK_NVIDIA_FLAGS additionalFlags)
C_NVIDIA_OpenSession opens a PKCS#11 session that can be configured to use different channels.
CK_MECHANISM_TYPE
CK_ULONG CK_MECHANISM_TYPE
Definition: pkcs11t.h:633
C_NVIDIA_SetKATParameters
CK_RV C_NVIDIA_SetKATParameters(CK_FLAGS flags)
C_NVIDIA_SetKATParameters is used exclusively by the NVIDIA KAT utility
CK_C_NVIDIA_BatchSignMessage
CK_RV(* CK_C_NVIDIA_BatchSignMessage)(CK_SESSION_HANDLE hSession, CK_NVIDIA_BATCH_SIGN_ENTRY_PTR pBatchEntry, CK_ULONG ulBatchEntryCount)
pointer to C_NVIDIA_BatchSignMessage
Definition: nvpkcs11.h:647
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS::ulUidLen
CK_ULONG ulUidLen
Length of the uid in bytes.
Definition: nvpkcs11.h:1076
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS::ulSaltLen
CK_ULONG ulSaltLen
Length of the salt pointed to in pSalt.
Definition: nvpkcs11.h:976
pApplication
CK_NOTIFICATION CK_VOID_PTR pApplication
Definition: pkcs11t.h:1334
CK_NVIDIA_BATCH_VERIFY_ENTRY::pParameter
CK_VOID_PTR pParameter
Pointer to the parameter if required by the mechanism.
Definition: nvpkcs11.h:773
CK_NVIDIA_ZERO_COPY_ENTRY::ulDataLen
CK_ULONG ulDataLen
The size of the allocated buffer.
Definition: nvpkcs11.h:1017
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS::ulIvLen
CK_ULONG ulIvLen
Length of the IV in bytes.
Definition: nvpkcs11.h:1003
C_NVIDIA_FinalizeChannel
CK_RV C_NVIDIA_FinalizeChannel(CK_NVIDIA_CHANNEL_HANDLE hChannel)
C_NVIDIA_FinalizeChannel closes a channel handle if it is not in use.
CK_NVIDIA_BATCH_SIGN_ENTRY::ulDataLen
CK_ULONG ulDataLen
Length in bytes of the data to be signed.
Definition: nvpkcs11.h:584
CK_NVIDIA_BATCH_SIGN_ENTRY::pParameter
CK_VOID_PTR pParameter
Pointer to the parameter if required by the mechanism.
Definition: nvpkcs11.h:581
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS::hTrailingKey
CK_OBJECT_HANDLE hTrailingKey
Handle to the second key to be wrapped.
Definition: nvpkcs11.h:947
CK_SLOT_ID
CK_ULONG CK_SLOT_ID
Definition: pkcs11t.h:105
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS::hExtraKey
CK_OBJECT_HANDLE hExtraKey
Extra key handle to be appended to the base key before the KDF expansion stage.
Definition: nvpkcs11.h:1111
CK_NVIDIA_ZERO_COPY_LIST
struct CK_NVIDIA_ZERO_COPY_LIST CK_NVIDIA_ZERO_COPY_LIST
CK_NVIDIA_ZERO_COPY_LIST provides multiple zero copy data addresses
CK_NVIDIA_BATCH_SIGN_ENTRY::pData
CK_BYTE_PTR pData
Pointer to the data to be signed.
Definition: nvpkcs11.h:583
CK_NVIDIA_ZERO_COPY_ENTRY::iova
uint64_t iova
The IOVA address of the allocated buffer, for lib use only.
Definition: nvpkcs11.h:1015
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS::pNonce
CK_BYTE_PTR pNonce
A pointer to the nonce for this key derivation.
Definition: nvpkcs11.h:1077
NV_CK_FUNCTION_LIST::C_NVIDIA_BatchMessageVerifyInit
CK_C_NVIDIA_BatchMessageVerifyInit C_NVIDIA_BatchMessageVerifyInit
Function initializes a batch message-based signature verification process.
Definition: nvpkcs11.h:906
CK_OBJECT_HANDLE
CK_ULONG CK_OBJECT_HANDLE
Definition: pkcs11t.h:299
CK_NVIDIA_CHANNEL_ATTRIBUTE
struct CK_NVIDIA_CHANNEL_ATTRIBUTE CK_NVIDIA_CHANNEL_ATTRIBUTE
CK_NVIDIA_CHANNEL_ATTRIBUTE provides the parameters to use a channel for a set of operations.
NV_CK_FUNCTION_LIST_PTR_PTR
NV_CK_FUNCTION_LIST_PTR CK_PTR NV_CK_FUNCTION_LIST_PTR_PTR
Declaration of NV_CK_FUNCTION_LIST_PTR_PTR as a type.
Definition: nvpkcs11.h:86
CK_ULONG_PTR
CK_ULONG CK_PTR CK_ULONG_PTR
Definition: pkcs11t.h:66
CK_NVIDIA_BATCH_VERIFY_ENTRY::ulParameterLen
CK_ULONG ulParameterLen
Length in bytes of the parameter.
Definition: nvpkcs11.h:774
NV_CK_FUNCTION_LIST::C_NVIDIA_EncryptGetIV
CK_C_NVIDIA_EncryptGetIV C_NVIDIA_EncryptGetIV
Function to retrieve Initialization Vector (IV) after an encrypt operation.
Definition: nvpkcs11.h:897
CK_NVIDIA_BATCH_VERIFY_ENTRY_PTR
CK_NVIDIA_BATCH_VERIFY_ENTRY CK_PTR CK_NVIDIA_BATCH_VERIFY_ENTRY_PTR
Declaration of CK_NVIDIA_BATCH_VERIFY_ENTRY_PTR as a type.
Definition: nvpkcs11.h:784
CK_SESSION_HANDLE
CK_ULONG CK_SESSION_HANDLE
Definition: pkcs11t.h:257
CK_C_NVIDIA_FinalizeChannel
CK_RV(* CK_C_NVIDIA_FinalizeChannel)(CK_NVIDIA_CHANNEL_HANDLE hChannel)
pointer to CK_C_NVIDIA_FinalizeChannel
Definition: nvpkcs11.h:472
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS provides the parameters to the CKM_NVIDIA_AES_CBC_KEY_DATA_WRA...
Definition: nvpkcs11.h:944
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS provides the parameters to the CKM_NVIDIA_SP800_56A_ONE_STEP_...
Definition: nvpkcs11.h:1110
CK_MECHANISM_PTR
CK_MECHANISM CK_PTR CK_MECHANISM_PTR
Definition: pkcs11t.h:1144
CK_BYTE
unsigned char CK_BYTE
Definition: pkcs11t.h:37
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS::ulNonceLen
CK_ULONG ulNonceLen
Length of the nonce in bytes.
Definition: nvpkcs11.h:1078
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS::pSalt
CK_BYTE_PTR pSalt
Pointer to the salt used for the extract portion of the KDF.
Definition: nvpkcs11.h:975
CK_NVIDIA_BATCH_SIGN_ENTRY
CK_NVIDIA_BATCH_SIGN_ENTRY provides the parameters, the input, and the output for a single batch entr...
Definition: nvpkcs11.h:580
CK_NVIDIA_BATCH_SIGN_ENTRY
struct CK_NVIDIA_BATCH_SIGN_ENTRY CK_NVIDIA_BATCH_SIGN_ENTRY
CK_NVIDIA_BATCH_SIGN_ENTRY provides the parameters, the input, and the output for a single batch entr...
CK_C_NVIDIA_BatchMessageVerifyFinal
CK_RV(* CK_C_NVIDIA_BatchMessageVerifyFinal)(CK_SESSION_HANDLE hSession)
pointer to C_NVIDIA_BatchMessageVerifyFinal
Definition: nvpkcs11.h:890
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS::ulMACsecMetadataLen
CK_ULONG ulMACsecMetadataLen
Custom data length in bytes.
Definition: nvpkcs11.h:1005
CK_NVIDIA_BATCH_SIGN_ENTRY::additionalFlags
CK_NVIDIA_FLAGS additionalFlags
Bit flags to change the signing API behavior for this particular batch entry.
Definition: nvpkcs11.h:587
CK_C_NVIDIA_BatchMessageSignFinal
CK_RV(* CK_C_NVIDIA_BatchMessageSignFinal)(CK_SESSION_HANDLE hSession)
pointer to C_NVIDIA_BatchMessageSignFinal
Definition: nvpkcs11.h:699
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS::ulInfoLen
CK_ULONG ulInfoLen
Length of the info string pointed to by pInfo.
Definition: nvpkcs11.h:978
NV_CK_FUNCTION_LIST::C_NVIDIA_BatchMessageSignFinal
CK_C_NVIDIA_BatchMessageSignFinal C_NVIDIA_BatchMessageSignFinal
Function finishes a batch message-based signature process.
Definition: nvpkcs11.h:905
C_NVIDIA_BatchMessageSignInit
CK_RV C_NVIDIA_BatchMessageSignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE_PTR phKeys, CK_ULONG ulKeysCount)
C_NVIDIA_BatchMessageSignInit initializes a batch message-based signature process.
CK_NVIDIA_BATCH_SIGN_ENTRY::rv
CK_RV rv
Return value from signing this batch entry.
Definition: nvpkcs11.h:588
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS
struct CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS
CK_CKM_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS provides the parameters to the CKM_NVIDIA_MACSEC_AES_KEY_WRA...
CK_NVIDIA_BATCH_SIGN_ENTRY::pSignature
CK_BYTE_PTR pSignature
Pointer to the location that receives the signature.
Definition: nvpkcs11.h:585
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS::prfType
CK_MECHANISM_TYPE prfType
Base MAC used in the underlying KDF operation.
Definition: nvpkcs11.h:974
CK_NVIDIA_CHANNEL_HANDLE
CK_ULONG CK_NVIDIA_CHANNEL_HANDLE
Declaration of CK_NVIDIA_CHANNEL_HANDLE as a type.
Definition: nvpkcs11.h:72
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS::pMACsecMetadata
CK_BYTE_PTR pMACsecMetadata
Custom data pointer.
Definition: nvpkcs11.h:1004
CK_NVIDIA_BATCH_VERIFY_ENTRY::ulDataLen
CK_ULONG ulDataLen
Length in bytes of the data to be verified.
Definition: nvpkcs11.h:776
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS::pIv
CK_BYTE_PTR pIv
Pointer to the IV.
Definition: nvpkcs11.h:1002
CK_NVIDIA_ZERO_COPY_LIST::ulDataArrayCount
CK_ULONG ulDataArrayCount
The number of zero copy data addresses.
Definition: nvpkcs11.h:1029
CK_ULONG
unsigned long int CK_ULONG
Definition: pkcs11t.h:49
CK_NVIDIA_ZERO_COPY_ENTRY_PTR
CK_NVIDIA_ZERO_COPY_ENTRY CK_PTR CK_NVIDIA_ZERO_COPY_ENTRY_PTR
Declaration of CK_NVIDIA_ZERO_COPY_ENTRY_PTR as a type.
Definition: nvpkcs11.h:1022
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS provides the parameters to the CKM_NVIDIA_SP800_56C_TWO_STEP...
Definition: nvpkcs11.h:973
NV_CK_FUNCTION_LIST::C_NVIDIA_BatchVerifyMessage
CK_C_NVIDIA_BatchVerifyMessage C_NVIDIA_BatchVerifyMessage
Function verifies the signatures of a batch of messages in a single part.
Definition: nvpkcs11.h:907
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS::ulLen
CK_ULONG ulLen
Custom data length in bytes.
Definition: nvpkcs11.h:946
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS::signature
CK_BYTE signature[32]
Buffer to be overwritten with the computed signature i.e.
Definition: nvpkcs11.h:1079
CK_NVIDIA_ZERO_COPY_LIST
CK_NVIDIA_ZERO_COPY_LIST provides multiple zero copy data addresses
Definition: nvpkcs11.h:1027
CK_NVIDIA_FLAGS_PTR
CK_NVIDIA_FLAGS CK_PTR CK_NVIDIA_FLAGS_PTR
Declaration of CK_NVIDIA_FLAGS_PTR as a type.
Definition: nvpkcs11.h:79
C_NVIDIA_BatchMessageVerifyFinal
CK_RV C_NVIDIA_BatchMessageVerifyFinal(CK_SESSION_HANDLE hSession)
C_NVIDIA_BatchMessageVerifyFinal finishes a batch message-based signature process.
CK_C_NVIDIA_BatchVerifyMessage
CK_RV(* CK_C_NVIDIA_BatchVerifyMessage)(CK_SESSION_HANDLE hSession, CK_NVIDIA_BATCH_VERIFY_ENTRY_PTR pBatchEntry, CK_ULONG ulBatchEntryCount)
pointer to C_NVIDIA_BatchVerifyMessage
Definition: nvpkcs11.h:839
CK_NVIDIA_BATCH_VERIFY_ENTRY::ulSignatureLen
CK_ULONG ulSignatureLen
Length of the signature.
Definition: nvpkcs11.h:778
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS
struct CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS
CKM_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS provides the parameters to the CKM_NVIDIA_OX5B_SHA256_KE...
CK_OBJECT_HANDLE_PTR
CK_OBJECT_HANDLE CK_PTR CK_OBJECT_HANDLE_PTR
Definition: pkcs11t.h:301
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS_PTR
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS CK_PTR CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS_PTR
Declaration of CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS_PTR as a type.
Definition: nvpkcs11.h:983
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS_PTR
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS CK_PTR CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS_PTR
Declaration of CK_AES_CBC_CUSTOM_DATA_WRAP_PARAMS_PTR as a type.
Definition: nvpkcs11.h:952
CK_NVIDIA_CHANNEL_HANDLE_PTR
CK_NVIDIA_CHANNEL_HANDLE CK_PTR CK_NVIDIA_CHANNEL_HANDLE_PTR
Declaration of CK_NVIDIA_CHANNEL_HANDLE_PTR as a type.
Definition: nvpkcs11.h:74
CK_FLAGS
CK_ULONG CK_FLAGS
Definition: pkcs11t.h:55
CK_C_NVIDIA_CommitTokenObjects
CK_RV(* CK_C_NVIDIA_CommitTokenObjects)(CK_SESSION_HANDLE hSession, CK_FLAGS flags)
pointer to C_NVIDIA_CommitTokenObjects
Definition: nvpkcs11.h:265
NV_CK_FUNCTION_LIST::C_NVIDIA_SetKATParameters
CK_C_NVIDIA_SetKATParameters C_NVIDIA_SetKATParameters
Function is used exclusively by the NVIDIA KAT utility.
Definition: nvpkcs11.h:902
CK_NVIDIA_CHANNEL_ATTRIBUTE::operations
CK_FLAGS operations
Operations to use with this channel.
Definition: nvpkcs11.h:334
CK_VERSION
Definition: pkcs11t.h:79
CK_C_NVIDIA_OpenSession
CK_RV(* CK_C_NVIDIA_OpenSession)(CK_SLOT_ID slotID, CK_FLAGS flags, CK_VOID_PTR pApplication, CK_NOTIFY Notify, CK_SESSION_HANDLE_PTR phSession, CK_NVIDIA_CHANNEL_ATTRIBUTE_PTR pChannelSettings, CK_ULONG ulChannelSettingsCount, CK_NVIDIA_FLAGS additionalFlags)
pointer to C_NVIDIA_OpenSession
Definition: nvpkcs11.h:418
CK_NVIDIA_ZERO_COPY_ENTRY::pFlags
CK_NVIDIA_FLAGS pFlags
Reserved for future use.
Definition: nvpkcs11.h:1018
CK_SESSION_HANDLE_PTR
CK_SESSION_HANDLE CK_PTR CK_SESSION_HANDLE_PTR
Definition: pkcs11t.h:259
CK_NVIDIA_CHANNEL_ATTRIBUTE_PTR
CK_NVIDIA_CHANNEL_ATTRIBUTE CK_PTR CK_NVIDIA_CHANNEL_ATTRIBUTE_PTR
pointer to a CK_NVIDIA_CHANNEL_ATTRIBUTE structure
Definition: nvpkcs11.h:338
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS::iv
CK_BYTE iv[16]
Buffer to be overwritten with the IV generated for CBC mode.
Definition: nvpkcs11.h:948
CK_NVIDIA_BATCH_SIGN_ENTRY::ulParameterLen
CK_ULONG ulParameterLen
Length in bytes of the parameter.
Definition: nvpkcs11.h:582
NV_CK_FUNCTION_LIST::C_NVIDIA_BatchMessageSignInit
CK_C_NVIDIA_BatchMessageSignInit C_NVIDIA_BatchMessageSignInit
Function initializes a batch message-based signature process.
Definition: nvpkcs11.h:903
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS
struct CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS provides the parameters to the CKM_NVIDIA_SP800_56C_TWO_STEP...
CK_C_NVIDIA_BatchMessageSignInit
CK_RV(* CK_C_NVIDIA_BatchMessageSignInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE_PTR phKeys, CK_ULONG ulKeysCount)
pointer to C_NVIDIA_BatchMessageSignInit
Definition: nvpkcs11.h:569
pkcs11.h
CK_NVIDIA_BATCH_VERIFY_ENTRY
CK_NVIDIA_BATCH_VERIFY_ENTRY provides the parameters, the input, and the output for a single batch en...
Definition: nvpkcs11.h:772
CK_C_NVIDIA_BatchMessageVerifyInit
CK_RV(* CK_C_NVIDIA_BatchMessageVerifyInit)(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism, CK_OBJECT_HANDLE_PTR phKeys, CK_ULONG ulKeysCount)
pointer to C_NVIDIA_BatchMessageVerifyInit
Definition: nvpkcs11.h:761
CK_NVIDIA_CHANNEL_ATTRIBUTE::hChannel
CK_NVIDIA_CHANNEL_HANDLE hChannel
Channel handle.
Definition: nvpkcs11.h:335
CK_RV
CK_ULONG CK_RV
Definition: pkcs11t.h:1201
C_NVIDIA_CommitTokenObjects
CK_RV C_NVIDIA_CommitTokenObjects(CK_SESSION_HANDLE hSession, CK_FLAGS flags)
C_NVIDIA_CommitTokenObjects writes the current state of all token objects on a dynamic token to secur...
CK_NVIDIA_BATCH_VERIFY_ENTRY::additionalFlags
CK_NVIDIA_FLAGS additionalFlags
Bit flags to change the verifying API behavior for this particular batch entry.
Definition: nvpkcs11.h:779
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS
struct CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS provides the parameters to the CKM_NVIDIA_AES_CBC_KEY_DATA_WRA...
CK_NVIDIA_ZERO_COPY_ENTRY::pVa
CK_BYTE_PTR pVa
The pointer to the allocated data buffer, this is used in user space.
Definition: nvpkcs11.h:1016
NV_CK_FUNCTION_LIST::NV_version
CK_VERSION NV_version
Cryptoki version.
Definition: nvpkcs11.h:896
NV_CK_FUNCTION_LIST::C_NVIDIA_CommitTokenObjects
CK_C_NVIDIA_CommitTokenObjects C_NVIDIA_CommitTokenObjects
Function to write the current dynamic state of all token objects.
Definition: nvpkcs11.h:898
CK_NVIDIA_BATCH_SIGN_ENTRY::pulSignatureLen
CK_ULONG_PTR pulSignatureLen
Pointer to the location that holds the length of the signature.
Definition: nvpkcs11.h:586
NV_CK_FUNCTION_LIST
NVIDIA functions list.
Definition: nvpkcs11.h:895
NV_CK_FUNCTION_LIST::C_NVIDIA_BatchMessageVerifyFinal
CK_C_NVIDIA_BatchMessageVerifyFinal C_NVIDIA_BatchMessageVerifyFinal
Function finishes a batch message-based signature verification process.
Definition: nvpkcs11.h:908
CK_NVIDIA_BATCH_VERIFY_ENTRY
struct CK_NVIDIA_BATCH_VERIFY_ENTRY CK_NVIDIA_BATCH_VERIFY_ENTRY
CK_NVIDIA_BATCH_VERIFY_ENTRY provides the parameters, the input, and the output for a single batch en...
NV_CK_FUNCTION_LIST::C_NVIDIA_InitializeChannel
CK_C_NVIDIA_InitializeChannel C_NVIDIA_InitializeChannel
Function to open up a connection between the PKCS11 library and the HSM.
Definition: nvpkcs11.h:899
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS::pInfo
CK_BYTE_PTR pInfo
Info string for the expand stage of the KDF.
Definition: nvpkcs11.h:1113
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS_PTR
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS CK_PTR CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS_PTR
Declaration of CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS_PTR as a type.
Definition: nvpkcs11.h:1083
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS_PTR
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS CK_PTR CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS_PTR
Declaration of CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS_PTR as a type.
Definition: nvpkcs11.h:1119
CK_C_NVIDIA_SetKATParameters
CK_RV(* CK_C_NVIDIA_SetKATParameters)(CK_FLAGS flags)
pointer to C_NVIDIA_SetKATParameters
Definition: nvpkcs11.h:507
CK_NVIDIA_CHANNEL_ATTRIBUTE
CK_NVIDIA_CHANNEL_ATTRIBUTE provides the parameters to use a channel for a set of operations.
Definition: nvpkcs11.h:333
CK_VOID_PTR
void CK_PTR CK_VOID_PTR
Definition: pkcs11t.h:67
NV_CK_FUNCTION_LIST::C_NVIDIA_BatchSignMessage
CK_C_NVIDIA_BatchSignMessage C_NVIDIA_BatchSignMessage
Function signs a batch of messages in a single part.
Definition: nvpkcs11.h:904
CK_NVIDIA_BATCH_VERIFY_ENTRY::pData
CK_BYTE_PTR pData
Pointer to the data to be verified.
Definition: nvpkcs11.h:775
CK_NVIDIA_SP800_56C_TWO_STEPS_KDF_PARAMS::ctr
CK_BYTE ctr
Value of the counter for the expand stage of the KDF.
Definition: nvpkcs11.h:979
CK_NVIDIA_AES_CBC_KEY_DATA_WRAP_PARAMS::pData
CK_BYTE_PTR pData
Custom data pointer.
Definition: nvpkcs11.h:945
NV_CK_FUNCTION_LIST::C_NVIDIA_FinalizeChannel
CK_C_NVIDIA_FinalizeChannel C_NVIDIA_FinalizeChannel
Function closes the channel.
Definition: nvpkcs11.h:901
CK_NVIDIA_ZERO_COPY_ENTRY
CK_NVIDIA_ZERO_COPY_ENTRY provides single zero copy data address
Definition: nvpkcs11.h:1014
CK_NVIDIA_ZERO_COPY_LIST_PTR
CK_NVIDIA_ZERO_COPY_LIST CK_PTR CK_NVIDIA_ZERO_COPY_LIST_PTR
Declaration of CK_NVIDIA_ZERO_COPY_LIST_PTR as a type.
Definition: nvpkcs11.h:1034
NV_CK_FUNCTION_LIST::C_NVIDIA_OpenSession
CK_C_NVIDIA_OpenSession C_NVIDIA_OpenSession
Function is an enhanced version of C_OpenSession with extra parameters.
Definition: nvpkcs11.h:900
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS::ulInfoLen
CK_ULONG ulInfoLen
Length of the info string pointed to by pInfo.
Definition: nvpkcs11.h:1114
CK_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS
CK_CKM_NVIDIA_MACSEC_AES_KEY_WRAP_PARAMS provides the parameters to the CKM_NVIDIA_MACSEC_AES_KEY_WRA...
Definition: nvpkcs11.h:1001
CK_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS
CKM_NVIDIA_OX5B_SHA256_KEY_DERIVATION_PARAMS provides the parameters to the CKM_NVIDIA_OX5B_SHA256_KE...
Definition: nvpkcs11.h:1074
CK_NVIDIA_BATCH_SIGN_ENTRY_PTR
CK_NVIDIA_BATCH_SIGN_ENTRY CK_PTR CK_NVIDIA_BATCH_SIGN_ENTRY_PTR
Declaration of CK_NVIDIA_BATCH_SIGN_ENTRY_PTR as a type.
Definition: nvpkcs11.h:592
CK_NVIDIA_ZERO_COPY_ENTRY
struct CK_NVIDIA_ZERO_COPY_ENTRY CK_NVIDIA_ZERO_COPY_ENTRY
CK_NVIDIA_ZERO_COPY_ENTRY provides single zero copy data address
NV_CK_FUNCTION_LIST_PTR
NV_CK_FUNCTION_LIST CK_PTR NV_CK_FUNCTION_LIST_PTR
Declaration of NV_CK_FUNCTION_LIST_PTR as a type.
Definition: nvpkcs11.h:84
CK_NVIDIA_BATCH_VERIFY_ENTRY::pSignature
CK_BYTE_PTR pSignature
Pointer to the signature.
Definition: nvpkcs11.h:777
C_NVIDIA_InitializeChannel
CK_RV C_NVIDIA_InitializeChannel(CK_ULONG ulChannelId, CK_NVIDIA_CHANNEL_HANDLE_PTR phChannel, CK_NVIDIA_FLAGS_PTR pFlags)
C_NVIDIA_InitializeChannel opens a channel to a hardware engine.
CK_NVIDIA_SP800_56A_ONE_STEP_KDF_PARAMS::ulKeyOffset
CK_ULONG ulKeyOffset
Starting index in the key stream for the derived key.
Definition: nvpkcs11.h:1115
C_NVIDIA_BatchSignMessage
CK_RV C_NVIDIA_BatchSignMessage(CK_SESSION_HANDLE hSession, CK_NVIDIA_BATCH_SIGN_ENTRY_PTR pBatchEntry, CK_ULONG ulBatchEntryCount)
C_NVIDIA_BatchSignMessage signs a batch of messages in a single part.
nvpkcs11_future.h
CK_C_NVIDIA_EncryptGetIV
CK_RV(* CK_C_NVIDIA_EncryptGetIV)(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pIV, CK_BYTE_PTR pIVLen)
pointer to C_NVIDIA_EncryptGetIV
Definition: nvpkcs11.h:199