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 * Notice: By downloading and using this artifact, you accept PDF Tools AG's
13 * [license agreement](https://www.pdf-tools.com/license-agreement/),
14 * [privacy policy](https://www.pdf-tools.com/privacy-policy/),
15 * and allow PDF Tools AG to track your usage data.
16 *
17 *****************************************************************************/
18
19#ifndef PDFTOOLS_PDFTOOLSCRYPTOPROVIDERSPKCS11_H__
20#define PDFTOOLS_PDFTOOLSCRYPTOPROVIDERSPKCS11_H__
21
22#ifndef PDFTOOLS_CALL
23#if defined(WIN32)
24#define PDFTOOLS_CALL __stdcall
25#else
26#define PDFTOOLS_CALL
27#endif
28#endif
29
30#include "PdfTools_Types.h"
32
33#ifdef __cplusplus
34extern "C"
35{
36#endif
37
38#ifdef _UNICODE
39#define PdfToolsCryptoProvidersPkcs11_Module_Load PdfToolsCryptoProvidersPkcs11_Module_LoadW
40
41#define PdfToolsCryptoProvidersPkcs11_Device_CreateSession PdfToolsCryptoProvidersPkcs11_Device_CreateSessionW
42
43#define PdfToolsCryptoProvidersPkcs11_Device_GetDescription PdfToolsCryptoProvidersPkcs11_Device_GetDescriptionW
44
45#define PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerID PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerIDW
46
47#define PdfToolsCryptoProvidersPkcs11_Session_Login PdfToolsCryptoProvidersPkcs11_Session_LoginW
48#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromName \
49 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromNameW
50#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabel \
51 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabelW
52
53#define PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrlW
54#define PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrlW
55
56#else
57#define PdfToolsCryptoProvidersPkcs11_Module_Load PdfToolsCryptoProvidersPkcs11_Module_LoadA
58
59#define PdfToolsCryptoProvidersPkcs11_Device_CreateSession PdfToolsCryptoProvidersPkcs11_Device_CreateSessionA
60
61#define PdfToolsCryptoProvidersPkcs11_Device_GetDescription PdfToolsCryptoProvidersPkcs11_Device_GetDescriptionA
62
63#define PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerID PdfToolsCryptoProvidersPkcs11_Device_GetManufacturerIDA
64
65#define PdfToolsCryptoProvidersPkcs11_Session_Login PdfToolsCryptoProvidersPkcs11_Session_LoginA
66#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromName \
67 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromNameA
68#define PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabel \
69 PdfToolsCryptoProvidersPkcs11_Session_CreateSignatureFromKeyLabelA
70
71#define PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_GetTimestampUrlA
72#define PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrl PdfToolsCryptoProvidersPkcs11_Session_SetTimestampUrlA
73
74#endif
75
76/******************************************************************************
77 * SignatureConfiguration
78 *****************************************************************************/
104 const TPdfToolsSys_StreamDescriptor* pCertificate);
105
154 TPdfToolsCrypto_HashAlgorithm iHashAlgorithm);
199 TPdfToolsCrypto_SignaturePaddingType iSignaturePaddingType);
236 TPdfToolsCrypto_SignatureFormat iSignatureFormat);
278 TPdfToolsCryptoProvidersPkcs11_SignatureConfiguration* pSignatureConfiguration, BOOL bAddTimestamp);
333 TPdfToolsCrypto_ValidationInformation iValidationInformation);
334
335/******************************************************************************
336 * TimestampConfiguration
337 *****************************************************************************/
390 TPdfToolsCrypto_HashAlgorithm iHashAlgorithm);
391
392/******************************************************************************
393 * Module
394 *****************************************************************************/
453
501 TPdfToolsCryptoProvidersPkcs11_Module* pModule, BOOL bEnableFullParallelization);
519
532/******************************************************************************
533 * Device
534 *****************************************************************************/
550 const char* szPassword);
566 const WCHAR* szPassword);
567
588 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, char* pBuffer, size_t nBufferSize);
609 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, WCHAR* pBuffer, size_t nBufferSize);
630 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, char* pBuffer, size_t nBufferSize);
651 TPdfToolsCryptoProvidersPkcs11_Device* pDevice, WCHAR* pBuffer, size_t nBufferSize);
652
653/******************************************************************************
654 * Session
655 *****************************************************************************/
754 const char* szName);
775 const WCHAR* szName);
812 const unsigned char* pId, size_t nIds,
813 const TPdfToolsSys_StreamDescriptor* pCertificate);
848 const char* szLabel,
849 const TPdfToolsSys_StreamDescriptor* pCertificate);
884 const WCHAR* szLabel,
885 const TPdfToolsSys_StreamDescriptor* pCertificate);
900
940 TPdfToolsCryptoProvidersPkcs11_Session* pSession, char* pBuffer, size_t nBufferSize);
980 TPdfToolsCryptoProvidersPkcs11_Session* pSession, WCHAR* pBuffer, size_t nBufferSize);
1014 TPdfToolsCryptoProvidersPkcs11_Session* pSession, const char* szTimestampUrl);
1048 TPdfToolsCryptoProvidersPkcs11_Session* pSession, const WCHAR* szTimestampUrl);
1067
1068/******************************************************************************
1069 * DeviceList
1070 *****************************************************************************/
1125
1126#ifdef __cplusplus
1127}
1128#endif
1129
1130#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:26
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:143
unsigned short WCHAR
Definition PdfTools_Platform.h:95
TPdfToolsCrypto_ValidationInformation
Whether to embed validation information to enable the long-term validation (LTV) of the signature.
Definition PdfTools_Types.h:1378
TPdfToolsCrypto_SignaturePaddingType
Padding scheme of the cryptographic signature algorithm The signature algorithm is defined by the sig...
Definition PdfTools_Types.h:1306
#define BOOL
Definition PdfTools_Types.h:23
TPdfToolsCrypto_SignatureFormat
Definition PdfTools_Types.h:1333
TPdfToolsCrypto_HashAlgorithm
Definition PdfTools_Types.h:1216
The cryptographic device (HSM, USB token, etc.)
The list of devices managed by a PKCS#11 module.
The PKCS#11 driver module.
A session to a cryptographic device (HSM, USB token, etc.) to perform cryptographic operations.
Structure that groups a set of callbacks that model streams.
Definition PdfTools_PdfToolsSys.h:49