summaryrefslogtreecommitdiffstats
path: root/usr.sbin/bind/lib/isc/unix
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/bind/lib/isc/unix')
-rw-r--r--usr.sbin/bind/lib/isc/unix/include/Makefile.in4
-rw-r--r--usr.sbin/bind/lib/isc/unix/include/pkcs11/Makefile.in38
-rw-r--r--usr.sbin/bind/lib/isc/unix/include/pkcs11/cryptoki.h66
-rw-r--r--usr.sbin/bind/lib/isc/unix/pk11_api.c687
4 files changed, 2 insertions, 793 deletions
diff --git a/usr.sbin/bind/lib/isc/unix/include/Makefile.in b/usr.sbin/bind/lib/isc/unix/include/Makefile.in
index 3f172ed64d8..b1cb0c0fdf2 100644
--- a/usr.sbin/bind/lib/isc/unix/include/Makefile.in
+++ b/usr.sbin/bind/lib/isc/unix/include/Makefile.in
@@ -12,13 +12,13 @@
# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
-# $Id: Makefile.in,v 1.3 2019/12/17 01:46:37 sthen Exp $
+# $Id: Makefile.in,v 1.4 2020/01/09 13:52:23 florian Exp $
srcdir = @srcdir@
VPATH = @srcdir@
top_srcdir = @top_srcdir@
-SUBDIRS = isc pkcs11
+SUBDIRS = isc
TARGETS =
@BIND9_MAKE_RULES@
diff --git a/usr.sbin/bind/lib/isc/unix/include/pkcs11/Makefile.in b/usr.sbin/bind/lib/isc/unix/include/pkcs11/Makefile.in
deleted file mode 100644
index df1b94e7efa..00000000000
--- a/usr.sbin/bind/lib/isc/unix/include/pkcs11/Makefile.in
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted, provided that the above
-# copyright notice and this permission notice appear in all copies.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
-# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
-# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
-# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-# PERFORMANCE OF THIS SOFTWARE.
-
-# $Id: Makefile.in,v 1.2 2019/12/17 01:46:37 sthen Exp $
-
-srcdir = @srcdir@
-VPATH = @srcdir@
-top_srcdir = @top_srcdir@
-
-HEADERS = cryptoki.h
-SUBDIRS =
-TARGETS =
-
-@BIND9_MAKE_RULES@
-
-installdirs:
- $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/pkcs11
-
-install:: installdirs
- for i in ${HEADERS}; do \
- ${INSTALL_DATA} $(srcdir)/$$i ${DESTDIR}${includedir}/pkcs11 ; \
- done
-
-uninstall::
- for i in ${HEADERS}; do \
- rm -f ${DESTDIR}${includedir}/pkcs11/$$i ; \
- done
diff --git a/usr.sbin/bind/lib/isc/unix/include/pkcs11/cryptoki.h b/usr.sbin/bind/lib/isc/unix/include/pkcs11/cryptoki.h
deleted file mode 100644
index 5f66a2fd997..00000000000
--- a/usr.sbin/bind/lib/isc/unix/include/pkcs11/cryptoki.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/* cryptoki.h include file for PKCS #11. */
-/*
- * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC")
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC AND NETWORK ASSOCIATES DISCLAIMS
- * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE
- * FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
- * IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-/* $Revision: 1.1 $ */
-
-/*
- * Portions Copyright RSA Security Inc.
- *
- * License to copy and use this software is granted provided that it is
- * identified as "RSA Security Inc. PKCS #11 Cryptographic Token Interface
- * (Cryptoki)" in all material mentioning or referencing this software.
-
- * License is also granted to make and use derivative works provided that
- * such works are identified as "derived from the RSA Security Inc. PKCS #11
- * Cryptographic Token Interface (Cryptoki)" in all material mentioning or
- * referencing the derived work.
-
- * RSA Security Inc. makes no representations concerning either the
- * merchantability of this software or the suitability of this software for
- * any particular purpose. It is provided "as is" without express or implied
- * warranty of any kind.
- */
-
-/* This is a sample file containing the top level include directives
- * for building Unix Cryptoki libraries and applications.
- */
-
-#ifndef ___CRYPTOKI_H_INC___
-#define ___CRYPTOKI_H_INC___
-
-#define CK_PTR *
-
-#define CK_DEFINE_FUNCTION(returnType, name) \
- returnType name
-
-#define CK_DECLARE_FUNCTION(returnType, name) \
- returnType name
-
-#define CK_DECLARE_FUNCTION_POINTER(returnType, name) \
- returnType (* name)
-
-#define CK_CALLBACK_FUNCTION(returnType, name) \
- returnType (* name)
-
-/* NULL is in unistd.h */
-#include <unistd.h>
-#define NULL_PTR NULL
-
-#undef CK_PKCS11_FUNCTION_INFO
-
-#include <pkcs11/pkcs11.h>
-
-#endif /* ___CRYPTOKI_H_INC___ */
diff --git a/usr.sbin/bind/lib/isc/unix/pk11_api.c b/usr.sbin/bind/lib/isc/unix/pk11_api.c
deleted file mode 100644
index 66334fd33b0..00000000000
--- a/usr.sbin/bind/lib/isc/unix/pk11_api.c
+++ /dev/null
@@ -1,687 +0,0 @@
-/*
- * Copyright (C) Internet Systems Consortium, Inc. ("ISC")
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/* $Id: pk11_api.c,v 1.3 2020/01/09 13:47:14 florian Exp $ */
-
-/*! \file */
-
-#include <config.h>
-
-#include <string.h>
-#include <dlfcn.h>
-
-#include <isc/log.h>
-#include <isc/mem.h>
-#include <isc/once.h>
-
-#include <isc/stdio.h>
-#include <isc/thread.h>
-#include <isc/util.h>
-
-#include <pkcs11/cryptoki.h>
-#include <pkcs11/pkcs11.h>
-
-#define KEEP_PKCS11_NAMES
-#include <pk11/pk11.h>
-#include <pk11/internal.h>
-
-static void *hPK11 = NULL;
-static char loaderrmsg[1024];
-
-CK_RV
-pkcs_C_Initialize(CK_VOID_PTR pReserved) {
- CK_C_Initialize sym;
-
- if (hPK11 != NULL)
- return (CKR_LIBRARY_ALREADY_INITIALIZED);
-
- hPK11 = dlopen(pk11_get_lib_name(), RTLD_NOW);
-
- if (hPK11 == NULL) {
- snprintf(loaderrmsg, sizeof(loaderrmsg),
- "dlopen(\"%s\") failed: %s\n",
- pk11_get_lib_name(), dlerror());
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- }
- sym = (CK_C_Initialize)dlsym(hPK11, "C_Initialize");
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(pReserved);
-}
-
-char *pk11_get_load_error_message(void) {
- return (loaderrmsg);
-}
-
-CK_RV
-pkcs_C_Finalize(CK_VOID_PTR pReserved) {
- CK_C_Finalize sym;
- CK_RV rv;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- sym = (CK_C_Finalize)dlsym(hPK11, "C_Finalize");
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- rv = (*sym)(pReserved);
- if ((rv == CKR_OK) && (dlclose(hPK11) != 0))
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- hPK11 = NULL;
- return (rv);
-}
-
-CK_RV
-pkcs_C_GetSlotList(CK_BBOOL tokenPresent, CK_SLOT_ID_PTR pSlotList,
- CK_ULONG_PTR pulCount)
-{
- static CK_C_GetSlotList sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GetSlotList)dlsym(hPK11, "C_GetSlotList");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(tokenPresent, pSlotList, pulCount);
-}
-
-CK_RV
-pkcs_C_GetTokenInfo(CK_SLOT_ID slotID, CK_TOKEN_INFO_PTR pInfo) {
- static CK_C_GetTokenInfo sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GetTokenInfo)dlsym(hPK11, "C_GetTokenInfo");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(slotID, pInfo);
-}
-
-CK_RV
-pkcs_C_GetMechanismInfo(CK_SLOT_ID slotID, CK_MECHANISM_TYPE type,
- CK_MECHANISM_INFO_PTR pInfo)
-{
- static CK_C_GetMechanismInfo sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GetMechanismInfo)dlsym(hPK11,
- "C_GetMechanismInfo");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(slotID, type, pInfo);
-}
-
-CK_RV
-pkcs_C_OpenSession(CK_SLOT_ID slotID, CK_FLAGS flags,
- CK_VOID_PTR pApplication,
- CK_RV (*Notify) (CK_SESSION_HANDLE hSession,
- CK_NOTIFICATION event,
- CK_VOID_PTR pApplication),
- CK_SESSION_HANDLE_PTR phSession)
-{
- static CK_C_OpenSession sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- hPK11 = dlopen(pk11_get_lib_name(), RTLD_NOW);
- if (hPK11 == NULL) {
- snprintf(loaderrmsg, sizeof(loaderrmsg),
- "dlopen(\"%s\") failed: %s\n",
- pk11_get_lib_name(), dlerror());
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- }
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_OpenSession)dlsym(hPK11, "C_OpenSession");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(slotID, flags, pApplication, Notify, phSession);
-}
-
-CK_RV
-pkcs_C_CloseSession(CK_SESSION_HANDLE hSession) {
- static CK_C_CloseSession sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_CloseSession)dlsym(hPK11, "C_CloseSession");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession);
-}
-
-CK_RV
-pkcs_C_Login(CK_SESSION_HANDLE hSession, CK_USER_TYPE userType,
- CK_CHAR_PTR pPin, CK_ULONG usPinLen)
-{
- static CK_C_Login sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_Login)dlsym(hPK11, "C_Login");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, userType, pPin, usPinLen);
-}
-
-CK_RV
-pkcs_C_Logout(CK_SESSION_HANDLE hSession) {
- static CK_C_Logout sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_Logout)dlsym(hPK11, "C_Logout");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession);
-}
-
-CK_RV
-pkcs_C_CreateObject(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG usCount, CK_OBJECT_HANDLE_PTR phObject)
-{
- static CK_C_CreateObject sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_CreateObject)dlsym(hPK11, "C_CreateObject");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pTemplate, usCount, phObject);
-}
-
-CK_RV
-pkcs_C_DestroyObject(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject) {
- static CK_C_DestroyObject sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_DestroyObject)dlsym(hPK11, "C_DestroyObject");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, hObject);
-}
-
-CK_RV
-pkcs_C_GetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount)
-{
- static CK_C_GetAttributeValue sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GetAttributeValue)dlsym(hPK11,
- "C_GetAttributeValue");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, hObject, pTemplate, usCount);
-}
-
-CK_RV
-pkcs_C_SetAttributeValue(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE hObject,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG usCount)
-{
- static CK_C_SetAttributeValue sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_SetAttributeValue)dlsym(hPK11,
- "C_SetAttributeValue");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, hObject, pTemplate, usCount);
-}
-
-CK_RV
-pkcs_C_FindObjectsInit(CK_SESSION_HANDLE hSession, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG usCount)
-{
- static CK_C_FindObjectsInit sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_FindObjectsInit)dlsym(hPK11, "C_FindObjectsInit");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pTemplate, usCount);
-}
-
-CK_RV
-pkcs_C_FindObjects(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject,
- CK_ULONG usMaxObjectCount, CK_ULONG_PTR pusObjectCount)
-{
- static CK_C_FindObjects sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_FindObjects)dlsym(hPK11, "C_FindObjects");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, phObject, usMaxObjectCount, pusObjectCount);
-}
-
-CK_RV
-pkcs_C_FindObjectsFinal(CK_SESSION_HANDLE hSession)
-{
- static CK_C_FindObjectsFinal sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_FindObjectsFinal)dlsym(hPK11,
- "C_FindObjectsFinal");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession);
-}
-
-CK_RV
-pkcs_C_EncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- static CK_C_EncryptInit sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_EncryptInit)dlsym(hPK11, "C_EncryptInit");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pMechanism, hKey);
-}
-
-CK_RV
-pkcs_C_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
- CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData,
- CK_ULONG_PTR pulEncryptedDataLen)
-{
- static CK_C_Encrypt sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_Encrypt)dlsym(hPK11, "C_Encrypt");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pData, ulDataLen,
- pEncryptedData, pulEncryptedDataLen);
-}
-
-CK_RV
-pkcs_C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism) {
- static CK_C_DigestInit sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_DigestInit)dlsym(hPK11, "C_DigestInit");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pMechanism);
-}
-
-CK_RV
-pkcs_C_DigestUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen)
-{
- static CK_C_DigestUpdate sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_DigestUpdate)dlsym(hPK11, "C_DigestUpdate");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pPart, ulPartLen);
-}
-
-CK_RV
-pkcs_C_DigestFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pDigest,
- CK_ULONG_PTR pulDigestLen)
-{
- static CK_C_DigestFinal sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_DigestFinal)dlsym(hPK11, "C_DigestFinal");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pDigest, pulDigestLen);
-}
-
-CK_RV
-pkcs_C_SignInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- static CK_C_SignInit sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_SignInit)dlsym(hPK11, "C_SignInit");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pMechanism, hKey);
-}
-
-CK_RV
-pkcs_C_Sign(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
- CK_ULONG ulDataLen, CK_BYTE_PTR pSignature,
- CK_ULONG_PTR pulSignatureLen)
-{
- static CK_C_Sign sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_Sign)dlsym(hPK11, "C_Sign");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pData, ulDataLen, pSignature, pulSignatureLen);
-}
-
-CK_RV
-pkcs_C_SignUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen)
-{
- static CK_C_SignUpdate sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_SignUpdate)dlsym(hPK11, "C_SignUpdate");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pPart, ulPartLen);
-}
-
-CK_RV
-pkcs_C_SignFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,
- CK_ULONG_PTR pulSignatureLen)
-{
- static CK_C_SignFinal sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_SignFinal)dlsym(hPK11, "C_SignFinal");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pSignature, pulSignatureLen);
-}
-
-CK_RV
-pkcs_C_VerifyInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hKey)
-{
- static CK_C_VerifyInit sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_VerifyInit)dlsym(hPK11, "C_VerifyInit");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pMechanism, hKey);
-}
-
-CK_RV
-pkcs_C_Verify(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
- CK_ULONG ulDataLen, CK_BYTE_PTR pSignature,
- CK_ULONG ulSignatureLen)
-{
- static CK_C_Verify sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_Verify)dlsym(hPK11, "C_Verify");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pData, ulDataLen, pSignature, ulSignatureLen);
-}
-
-CK_RV
-pkcs_C_VerifyUpdate(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pPart,
- CK_ULONG ulPartLen)
-{
- static CK_C_VerifyUpdate sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_VerifyUpdate)dlsym(hPK11, "C_VerifyUpdate");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pPart, ulPartLen);
-}
-
-CK_RV
-pkcs_C_VerifyFinal(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSignature,
- CK_ULONG ulSignatureLen)
-{
- static CK_C_VerifyFinal sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_VerifyFinal)dlsym(hPK11, "C_VerifyFinal");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pSignature, ulSignatureLen);
-}
-
-CK_RV
-pkcs_C_GenerateKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_ATTRIBUTE_PTR pTemplate, CK_ULONG ulCount,
- CK_OBJECT_HANDLE_PTR phKey)
-{
- static CK_C_GenerateKey sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GenerateKey)dlsym(hPK11, "C_GenerateKey");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pMechanism, pTemplate, ulCount, phKey);
-}
-
-CK_RV
-pkcs_C_GenerateKeyPair(CK_SESSION_HANDLE hSession,
- CK_MECHANISM_PTR pMechanism,
- CK_ATTRIBUTE_PTR pPublicKeyTemplate,
- CK_ULONG usPublicKeyAttributeCount,
- CK_ATTRIBUTE_PTR pPrivateKeyTemplate,
- CK_ULONG usPrivateKeyAttributeCount,
- CK_OBJECT_HANDLE_PTR phPrivateKey,
- CK_OBJECT_HANDLE_PTR phPublicKey)
-{
- static CK_C_GenerateKeyPair sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GenerateKeyPair)dlsym(hPK11, "C_GenerateKeyPair");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession,
- pMechanism,
- pPublicKeyTemplate,
- usPublicKeyAttributeCount,
- pPrivateKeyTemplate,
- usPrivateKeyAttributeCount,
- phPrivateKey,
- phPublicKey);
-}
-
-CK_RV
-pkcs_C_DeriveKey(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
- CK_OBJECT_HANDLE hBaseKey, CK_ATTRIBUTE_PTR pTemplate,
- CK_ULONG ulAttributeCount, CK_OBJECT_HANDLE_PTR phKey)
-{
- static CK_C_DeriveKey sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_DeriveKey)dlsym(hPK11, "C_DeriveKey");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession,
- pMechanism,
- hBaseKey,
- pTemplate,
- ulAttributeCount,
- phKey);
-}
-
-CK_RV
-pkcs_C_SeedRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pSeed,
- CK_ULONG ulSeedLen)
-{
- static CK_C_SeedRandom sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_SeedRandom)dlsym(hPK11, "C_SeedRandom");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, pSeed, ulSeedLen);
-}
-
-CK_RV
-pkcs_C_GenerateRandom(CK_SESSION_HANDLE hSession, CK_BYTE_PTR RandomData,
- CK_ULONG ulRandomLen)
-{
- static CK_C_GenerateRandom sym = NULL;
- static void *pPK11 = NULL;
-
- if (hPK11 == NULL)
- return (CKR_LIBRARY_FAILED_TO_LOAD);
- if ((sym == NULL) || (hPK11 != pPK11)) {
- pPK11 = hPK11;
- sym = (CK_C_GenerateRandom)dlsym(hPK11, "C_GenerateRandom");
- }
- if (sym == NULL)
- return (CKR_SYMBOL_RESOLUTION_FAILED);
- return (*sym)(hSession, RandomData, ulRandomLen);
-}