Pdftools SDK
Loading...
Searching...
No Matches
PdfTools_PdfToolsCryptoProvidersPkcs11.h
Go to the documentation of this file.
1/******************************************************************************
2 *
3 * File: PdfTools_PdfToolsCryptoProvidersPkcs11.h
4 *
5 * Description: Sub Header file for Pdftools SDK
6 *
7 * Author: PDF Tools AG
8 *
9 * Copyright: Copyright (C) 2023 - 2024 PDF Tools AG, Switzerland
10 * All rights reserved.
11 *
12 *****************************************************************************/
13
14#ifndef PDFTOOLS_PDFTOOLSCRYPTOPROVIDERSPKCS11_H__
15#define PDFTOOLS_PDFTOOLSCRYPTOPROVIDERSPKCS11_H__
16
17#ifndef PDFTOOLS_CALL
18#if defined(WIN32)
19#define PDFTOOLS_CALL __stdcall
20#else
21#define PDFTOOLS_CALL
22#endif
23#endif
24
25#include "PdfTools_Types.h"
27
28#ifdef __cplusplus
29extern "C"
30{
31#endif
32
33#ifdef _UNICODE
34#define PdfToolsCryptoProvidersPkcs11_Module_Load PdfToolsCryptoProvidersPkcs11_Module_LoadW
35
36#define PdfToolsCryptoProvidersPkcs11_Device_CreateSession PdfToolsCryptoProvidersPkcs11_Device_CreateSessionW
37
38#define PdfToolsCryptoProvidersPkcs11_Device_GetDescription PdfToolsCryptoProvidersPkcs11_Device_GetDescriptionW
39
40#define PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerID PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerIDW
41
42#define PdfToolsCryptoProvidersPkcs11_Session_Login PdfToolsCryptoProvidersPkcs11_Session_LoginW
43#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromName \
44 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromNameW
45#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabel \
46 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabelW
47
48#define PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrlW
49#define PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrlW
50
51#else
52#define PdfToolsCryptoProvidersPkcs11_Module_Load PdfToolsCryptoProvidersPkcs11_Module_LoadA
53
54#define PdfToolsCryptoProvidersPkcs11_Device_CreateSession PdfToolsCryptoProvidersPkcs11_Device_CreateSessionA
55
56#define PdfToolsCryptoProvidersPkcs11_Device_GetDescription PdfToolsCryptoProvidersPkcs11_Device_GetDescriptionA
57
58#define PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerID PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerIDA
59
60#define PdfToolsCryptoProvidersPkcs11_Session_Login PdfToolsCryptoProvidersPkcs11_Session_LoginA
61#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromName \
62 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromNameA
63#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabel \
64 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabelA
65
66#define PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrlA
67#define PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrlA
68
69#endif
70
71/******************************************************************************
72 * SignatureConfiguration
73 *****************************************************************************/
99 const TPdfToolsSys_StreamDescriptor* pCertificate);
100
150 TPdfToolsCrypto_HashAlgorithm iHashAlgorithm);
196 TPdfToolsCrypto_SignaturePaddingType iSignaturePaddingType);
234 TPdfToolsCrypto_SignatureFormat iSignatureFormat);
276 TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration* pSignatureConfiguration, BOOL bAddTimestamp);
332 TPdfToolsCrypto_ValidationInformation iValidationInformation);
333
334/******************************************************************************
335 * TimestampConfiguration
336 *****************************************************************************/
390 TPdfToolsCrypto_HashAlgorithm iHashAlgorithm);
391
392/******************************************************************************
393 * Module
394 *****************************************************************************/
455
503 TPdfToolsCryptoProvidersPkcs11_Module* pModule, BOOL bEnableFullParallelization);
522
535/******************************************************************************
536 * Device
537 *****************************************************************************/
554 const char* szPassword);
571 const WCHAR* szPassword);
572
593 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, char* pBuffer, size_t nBufferSize);
614 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, WCHAR* pBuffer, size_t nBufferSize);
635 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, char* pBuffer, size_t nBufferSize);
656 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, WCHAR* pBuffer, size_t nBufferSize);
657
658/******************************************************************************
659 * Session
660 *****************************************************************************/
761 const char* szName);
783 const WCHAR* szName);
821 const unsigned char* pId, size_t nIds,
822 const TPdfToolsSys_StreamDescriptor* pCertificate);
858 const char* szLabel,
859 const TPdfToolsSys_StreamDescriptor* pCertificate);
895 const WCHAR* szLabel,
896 const TPdfToolsSys_StreamDescriptor* pCertificate);
912
952 TPdfToolsCryptoProvidersPkcs11_Session* pSession, char* pBuffer, size_t nBufferSize);
992 TPdfToolsCryptoProvidersPkcs11_Session* pSession, WCHAR* pBuffer, size_t nBufferSize);
1026 TPdfToolsCryptoProvidersPkcs11_Session* pSession, const char* szTimestampUrl);
1060 TPdfToolsCryptoProvidersPkcs11_Session* pSession, const WCHAR* szTimestampUrl);
1080
1081/******************************************************************************
1082 * DeviceList
1083 *****************************************************************************/
1141
1142#ifdef __cplusplus
1143}
1144#endif
1145
1146#endif /* PDFTOOLS_PDFTOOLSCRYPTOPROVIDERSPKCS11_H__ */
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_SetSignaturePaddingType(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration, TPdfToolsCrypto_SignaturePaddingType iSignaturePaddingType)
The padding type of the cryptographic signature Default: ePdfToolsCrypto_SignaturePaddingType_RsaSsaP...
PDFTOOLS_EXPORT TPdfToolsCrypto_SignatureFormat PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_GetSignatureFormat(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration)
The format (encoding) of the cryptographic signature Default: ePdfToolsCrypto_SignatureFormat_EtsiCad...
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_SetAddTimestamp(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration, BOOL bAddTimestamp)
Whether to add a trusted time-stamp to the signature.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_DeviceList *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Module_GetDevices(TPdfToolsCryptoProvidersPkcs11_Module *pModule)
The list of devices managed by this module Most often there is only a single device,...
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrlA(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const char *szTimestampUrl)
The URL of the trusted time-stamp authority (TSA) from which time-stamps shall be acquired.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_LoginA(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const char *szPassword)
Log in user into the cryptographic device.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_Module *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Module_LoadA(const char *szLibrary)
Load a PKCS#11 driver module.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabelA(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const char *szLabel, const TPdfToolsSys_StreamDescriptor *pCertificate)
Create a signature configuration based on the private key's label (name) and an external certificate.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_SetValidationInformation(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration, TPdfToolsCrypto_ValidationInformation iValidationInformation)
Whether to add validation information (LTV)
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_Session *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Device_CreateSessionA(TPdfToolsCryptoProvidersPkcs11_Device *pDevice, const char *szPassword)
Create a session.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromNameA(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const char *szName)
Create a signature configuration based on certificate name.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Module_SetEnableFullParallelization(TPdfToolsCryptoProvidersPkcs11_Module *pModule, BOOL bEnableFullParallelization)
Enable full parallelization.
PDFTOOLS_EXPORT size_t PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerIDA(TPdfToolsCryptoProvidersPkcs11_Device *pDevice, char *pBuffer, size_t nBufferSize)
ID of the device's manufacturer.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromNameW(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const WCHAR *szName)
Create a signature configuration based on certificate name.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_TimestampConfiguration_SetHashAlgorithm(TPdfToolsCryptoProvidersPkcs11_TimestampConfiguration *pTimestampConfiguration, TPdfToolsCrypto_HashAlgorithm iHashAlgorithm)
The message digest algorithm.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabelW(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const WCHAR *szLabel, const TPdfToolsSys_StreamDescriptor *pCertificate)
Create a signature configuration based on the private key's label (name) and an external certificate.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_LoginW(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const WCHAR *szPassword)
Log in user into the cryptographic device.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_Device *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_DeviceList_GetSingle(TPdfToolsCryptoProvidersPkcs11_DeviceList *pDeviceList)
Get the single device.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_Device *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_DeviceList_Get(TPdfToolsCryptoProvidersPkcs11_DeviceList *pDeviceList, int iIndex)
Returns the element at the specified position in the given list.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Module_Close(TPdfToolsCryptoProvidersPkcs11_Module *pObject)
Close object.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyId(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const unsigned char *pId, size_t nIds, const TPdfToolsSys_StreamDescriptor *pCertificate)
Create a signature configuration based on the private key's ID and an external certificate.
PDFTOOLS_EXPORT TPdfToolsCrypto_SignaturePaddingType PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_GetSignaturePaddingType(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration)
The padding type of the cryptographic signature Default: ePdfToolsCrypto_SignaturePaddingType_RsaSsaP...
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_GetAddTimestamp(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration)
Whether to add a trusted time-stamp to the signature.
PDFTOOLS_EXPORT int PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_DeviceList_GetCount(TPdfToolsCryptoProvidersPkcs11_DeviceList *pDeviceList)
Get the number of elements in the list.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_SetHashAlgorithm(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration, TPdfToolsCrypto_HashAlgorithm iHashAlgorithm)
The message digest algorithm.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateSignature(TPdfToolsCryptoProvidersPkcs11_Session *pSession, TPdfToolsCryptoProviders_Certificate *pCertificate)
Create a signature configuration based on signing certificate.
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_Module *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Module_LoadW(const WCHAR *szLibrary)
Load a PKCS#11 driver module.
PDFTOOLS_EXPORT size_t PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerIDW(TPdfToolsCryptoProvidersPkcs11_Device *pDevice, WCHAR *pBuffer, size_t nBufferSize)
ID of the device's manufacturer.
PDFTOOLS_EXPORT TPdfToolsCrypto_ValidationInformation PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_GetValidationInformation(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration)
Whether to add validation information (LTV)
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_Session *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Device_CreateSessionW(TPdfToolsCryptoProvidersPkcs11_Device *pDevice, const WCHAR *szPassword)
Create a session.
PDFTOOLS_EXPORT size_t PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrlW(TPdfToolsCryptoProvidersPkcs11_Session *pSession, WCHAR *pBuffer, size_t nBufferSize)
The URL of the trusted time-stamp authority (TSA) from which time-stamps shall be acquired.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_AddCertificate(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration, const TPdfToolsSys_StreamDescriptor *pCertificate)
Add a certificate Add a certificate to the signature configuration. Adding certificates of the trust ...
PDFTOOLS_EXPORT TPdfToolsCryptoProvidersPkcs11_TimestampConfiguration *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_CreateTimestamp(TPdfToolsCryptoProvidersPkcs11_Session *pSession)
Create a time-stamp configuration Note that to create time-stamps, the PdfToolsCryptoProvidersPkcs11_...
PDFTOOLS_EXPORT TPdfToolsCrypto_HashAlgorithm PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_GetHashAlgorithm(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration)
The message digest algorithm.
PDFTOOLS_EXPORT size_t PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Device_GetDescriptionW(TPdfToolsCryptoProvidersPkcs11_Device *pDevice, WCHAR *pBuffer, size_t nBufferSize)
Description of the device.
PDFTOOLS_EXPORT size_t PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrlA(TPdfToolsCryptoProvidersPkcs11_Session *pSession, char *pBuffer, size_t nBufferSize)
The URL of the trusted time-stamp authority (TSA) from which time-stamps shall be acquired.
#define PDFTOOLS_CALL
Definition PdfTools_PdfToolsCryptoProvidersPkcs11.h:21
PDFTOOLS_EXPORT TPdfToolsCryptoProviders_CertificateList *PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_GetCertificates(TPdfToolsCryptoProvidersPkcs11_Session *pSession)
The cerfificates of the device The certificates available in this device. Note that some certificates...
PDFTOOLS_EXPORT size_t PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Device_GetDescriptionA(TPdfToolsCryptoProvidersPkcs11_Device *pDevice, char *pBuffer, size_t nBufferSize)
Description of the device.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrlW(TPdfToolsCryptoProvidersPkcs11_Session *pSession, const WCHAR *szTimestampUrl)
The URL of the trusted time-stamp authority (TSA) from which time-stamps shall be acquired.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_SignatureConfiguration_SetSignatureFormat(TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration *pSignatureConfiguration, TPdfToolsCrypto_SignatureFormat iSignatureFormat)
The format (encoding) of the cryptographic signature Default: ePdfToolsCrypto_SignatureFormat_EtsiCad...
PDFTOOLS_EXPORT TPdfToolsCrypto_HashAlgorithm PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_TimestampConfiguration_GetHashAlgorithm(TPdfToolsCryptoProvidersPkcs11_TimestampConfiguration *pTimestampConfiguration)
The message digest algorithm.
PDFTOOLS_EXPORT BOOL PDFTOOLS_CALL PdfToolsCryptoProvidersPkcs11_Module_GetEnableFullParallelization(TPdfToolsCryptoProvidersPkcs11_Module *pModule)
Enable full parallelization.
#define PDFTOOLS_EXPORT
Definition PdfTools_Platform.h:138
unsigned short WCHAR
Definition PdfTools_Platform.h:90
struct TPdfToolsCryptoProvidersPkcs11_DeviceList TPdfToolsCryptoProvidersPkcs11_DeviceList
The list of devices managed by a PKCS#11 module.
Definition PdfTools_Types.h:2978
TPdfToolsCrypto_ValidationInformation
Whether to embed validation information to enable the long-term validation (LTV) of the signature.
Definition PdfTools_Types.h:1373
struct TPdfToolsCryptoProvidersPkcs11_TimestampConfiguration TPdfToolsCryptoProvidersPkcs11_TimestampConfiguration
The time-stamp configuration.
Definition PdfTools_Types.h:2942
struct TPdfToolsCryptoProviders_Certificate TPdfToolsCryptoProviders_Certificate
A X.509 certificate.
Definition PdfTools_Types.h:2870
struct TPdfToolsCryptoProviders_CertificateList TPdfToolsCryptoProviders_CertificateList
Definition PdfTools_Types.h:2873
TPdfToolsCrypto_SignaturePaddingType
Padding scheme of the cryptographic signature algorithm The signature algorithm is defined by the sig...
Definition PdfTools_Types.h:1301
struct TPdfToolsCryptoProvidersPkcs11_Session TPdfToolsCryptoProvidersPkcs11_Session
A session to a cryptographic device (HSM, USB token, etc.) to perform cryptographic operations.
Definition PdfTools_Types.h:2974
struct TPdfToolsCryptoProvidersPkcs11_Device TPdfToolsCryptoProvidersPkcs11_Device
The cryptographic device (HSM, USB token, etc.)
Definition PdfTools_Types.h:2960
struct TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration
The signature configuration.
Definition PdfTools_Types.h:2937
struct TPdfToolsCryptoProvidersPkcs11_Module TPdfToolsCryptoProvidersPkcs11_Module
The PKCS#11 driver module.
Definition PdfTools_Types.h:2956
#define BOOL
Definition PdfTools_Types.h:18
TPdfToolsCrypto_SignatureFormat
Definition PdfTools_Types.h:1328
TPdfToolsCrypto_HashAlgorithm
Definition PdfTools_Types.h:1211
Structure that groups a set of callbacks that model streams.
Definition PdfTools_PdfToolsSys.h:44