1*3089Swyllys /* 2*3089Swyllys * CDDL HEADER START 3*3089Swyllys * 4*3089Swyllys * The contents of this file are subject to the terms of the 5*3089Swyllys * Common Development and Distribution License (the "License"). 6*3089Swyllys * You may not use this file except in compliance with the License. 7*3089Swyllys * 8*3089Swyllys * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9*3089Swyllys * or http://www.opensolaris.org/os/licensing. 10*3089Swyllys * See the License for the specific language governing permissions 11*3089Swyllys * and limitations under the License. 12*3089Swyllys * 13*3089Swyllys * When distributing Covered Code, include this CDDL HEADER in each 14*3089Swyllys * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15*3089Swyllys * If applicable, add the following below this CDDL HEADER, with the 16*3089Swyllys * fields enclosed by brackets "[]" replaced with your own identifying 17*3089Swyllys * information: Portions Copyright [yyyy] [name of copyright owner] 18*3089Swyllys * 19*3089Swyllys * CDDL HEADER END 20*3089Swyllys */ 21*3089Swyllys /* 22*3089Swyllys * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 23*3089Swyllys * Use is subject to license terms. 24*3089Swyllys * 25*3089Swyllys * 26*3089Swyllys * Constant definitions and function prototypes for the KMF library. 27*3089Swyllys * Commonly used data types are defined in "kmftypes.h". 28*3089Swyllys */ 29*3089Swyllys 30*3089Swyllys #ifndef _KMFAPI_H 31*3089Swyllys #define _KMFAPI_H 32*3089Swyllys 33*3089Swyllys #pragma ident "%Z%%M% %I% %E% SMI" 34*3089Swyllys 35*3089Swyllys #include <kmftypes.h> 36*3089Swyllys #include <security/cryptoki.h> 37*3089Swyllys 38*3089Swyllys #ifdef __cplusplus 39*3089Swyllys extern "C" { 40*3089Swyllys #endif 41*3089Swyllys 42*3089Swyllys /* 43*3089Swyllys * Setup operations. 44*3089Swyllys */ 45*3089Swyllys extern KMF_RETURN KMF_Initialize(KMF_HANDLE_T *, char *, char *); 46*3089Swyllys extern KMF_RETURN KMF_ConfigureKeystore(KMF_HANDLE_T, KMF_CONFIG_PARAMS *); 47*3089Swyllys extern KMF_RETURN KMF_Finalize(KMF_HANDLE_T); 48*3089Swyllys 49*3089Swyllys /* 50*3089Swyllys * Key operations. 51*3089Swyllys */ 52*3089Swyllys extern KMF_RETURN KMF_SignDataWithKey(KMF_HANDLE_T, 53*3089Swyllys KMF_KEY_HANDLE *, KMF_OID *, 54*3089Swyllys KMF_DATA *, KMF_DATA *); 55*3089Swyllys 56*3089Swyllys extern KMF_RETURN KMF_VerifyDataWithKey(KMF_HANDLE_T, 57*3089Swyllys KMF_KEY_HANDLE *, KMF_ALGORITHM_INDEX, KMF_DATA *, KMF_DATA *); 58*3089Swyllys 59*3089Swyllys extern KMF_RETURN KMF_CreateKeypair(KMF_HANDLE_T, 60*3089Swyllys KMF_CREATEKEYPAIR_PARAMS *, KMF_KEY_HANDLE *, KMF_KEY_HANDLE *); 61*3089Swyllys 62*3089Swyllys extern KMF_RETURN KMF_DeleteKeyFromKeystore(KMF_HANDLE_T, 63*3089Swyllys KMF_DELETEKEY_PARAMS *, KMF_KEY_HANDLE *); 64*3089Swyllys 65*3089Swyllys extern KMF_RETURN KMF_SignCertRecord(KMF_HANDLE_T, KMF_KEY_HANDLE *, 66*3089Swyllys KMF_X509_CERTIFICATE *, KMF_DATA *); 67*3089Swyllys 68*3089Swyllys extern KMF_RETURN KMF_FindKey(KMF_HANDLE_T, KMF_FINDKEY_PARAMS *, 69*3089Swyllys KMF_KEY_HANDLE *, uint32_t *); 70*3089Swyllys 71*3089Swyllys extern KMF_RETURN KMF_StorePrivateKey(KMF_HANDLE_T, KMF_STOREKEY_PARAMS *, 72*3089Swyllys KMF_RAW_KEY_DATA *); 73*3089Swyllys 74*3089Swyllys extern KMF_RETURN KMF_CreateSymKey(KMF_HANDLE_T, KMF_CREATESYMKEY_PARAMS *, 75*3089Swyllys KMF_KEY_HANDLE *); 76*3089Swyllys 77*3089Swyllys extern KMF_RETURN KMF_GetSymKeyValue(KMF_HANDLE_T, KMF_KEY_HANDLE *, 78*3089Swyllys KMF_RAW_SYM_KEY *); 79*3089Swyllys 80*3089Swyllys /* 81*3089Swyllys * Certificate operations. 82*3089Swyllys */ 83*3089Swyllys extern KMF_RETURN KMF_FindCert(KMF_HANDLE_T, KMF_FINDCERT_PARAMS *, 84*3089Swyllys KMF_X509_DER_CERT *, uint32_t *); 85*3089Swyllys 86*3089Swyllys extern KMF_RETURN KMF_EncodeCertRecord(KMF_X509_CERTIFICATE *, 87*3089Swyllys KMF_DATA *); 88*3089Swyllys extern KMF_RETURN KMF_SignCertWithKey(KMF_HANDLE_T, const KMF_DATA *, 89*3089Swyllys KMF_KEY_HANDLE *, KMF_DATA *); 90*3089Swyllys extern KMF_RETURN KMF_SignCertWithCert(KMF_HANDLE_T, 91*3089Swyllys KMF_CRYPTOWITHCERT_PARAMS *, 92*3089Swyllys const KMF_DATA *, KMF_DATA *, KMF_DATA *); 93*3089Swyllys 94*3089Swyllys extern KMF_RETURN KMF_SignDataWithCert(KMF_HANDLE_T, 95*3089Swyllys KMF_CRYPTOWITHCERT_PARAMS *, KMF_DATA *, KMF_DATA *, KMF_DATA *); 96*3089Swyllys 97*3089Swyllys extern KMF_RETURN KMF_VerifyCertWithKey(KMF_HANDLE_T, KMF_KEY_HANDLE *, 98*3089Swyllys const KMF_DATA *); 99*3089Swyllys extern KMF_RETURN KMF_VerifyCertWithCert(KMF_HANDLE_T, const KMF_DATA *, 100*3089Swyllys const KMF_DATA *); 101*3089Swyllys extern KMF_RETURN KMF_VerifyDataWithCert(KMF_HANDLE_T, KMF_DATA *, KMF_DATA *, 102*3089Swyllys const KMF_DATA *); 103*3089Swyllys 104*3089Swyllys extern KMF_RETURN KMF_EncryptWithCert(KMF_HANDLE_T, KMF_DATA *, 105*3089Swyllys KMF_DATA *, KMF_DATA *); 106*3089Swyllys 107*3089Swyllys extern KMF_RETURN KMF_DecryptWithCert(KMF_HANDLE_T, 108*3089Swyllys KMF_CRYPTOWITHCERT_PARAMS *, KMF_DATA *, KMF_DATA *, KMF_DATA *); 109*3089Swyllys 110*3089Swyllys extern KMF_RETURN KMF_StoreCert(KMF_HANDLE_T, 111*3089Swyllys KMF_STORECERT_PARAMS *, KMF_DATA *); 112*3089Swyllys extern KMF_RETURN KMF_ImportCert(KMF_HANDLE_T, KMF_IMPORTCERT_PARAMS *); 113*3089Swyllys extern KMF_RETURN KMF_DeleteCertFromKeystore(KMF_HANDLE_T, 114*3089Swyllys KMF_DELETECERT_PARAMS *); 115*3089Swyllys 116*3089Swyllys extern KMF_RETURN KMF_ValidateCert(KMF_HANDLE_T, 117*3089Swyllys KMF_VALIDATECERT_PARAMS *, int *); 118*3089Swyllys 119*3089Swyllys extern KMF_RETURN KMF_CreateCertFile(KMF_DATA *, KMF_ENCODE_FORMAT, char *); 120*3089Swyllys 121*3089Swyllys extern KMF_RETURN KMF_DownloadCert(KMF_HANDLE_T, char *, char *, int, 122*3089Swyllys unsigned int, char *, KMF_ENCODE_FORMAT *); 123*3089Swyllys extern KMF_RETURN KMF_IsCertFile(KMF_HANDLE_T, char *, KMF_ENCODE_FORMAT *); 124*3089Swyllys 125*3089Swyllys extern KMF_RETURN KMF_CheckCertDate(KMF_HANDLE_T, KMF_DATA *); 126*3089Swyllys 127*3089Swyllys /* 128*3089Swyllys * CRL operations. 129*3089Swyllys */ 130*3089Swyllys extern KMF_RETURN KMF_ImportCRL(KMF_HANDLE_T, KMF_IMPORTCRL_PARAMS *); 131*3089Swyllys extern KMF_RETURN KMF_DeleteCRL(KMF_HANDLE_T, KMF_DELETECRL_PARAMS *); 132*3089Swyllys extern KMF_RETURN KMF_ListCRL(KMF_HANDLE_T, KMF_LISTCRL_PARAMS *, char **); 133*3089Swyllys extern KMF_RETURN KMF_FindCRL(KMF_HANDLE_T, KMF_FINDCRL_PARAMS *, 134*3089Swyllys char **, int *); 135*3089Swyllys 136*3089Swyllys extern KMF_RETURN KMF_FindCertInCRL(KMF_HANDLE_T, 137*3089Swyllys KMF_FINDCERTINCRL_PARAMS *); 138*3089Swyllys extern KMF_RETURN KMF_VerifyCRLFile(KMF_HANDLE_T, 139*3089Swyllys KMF_VERIFYCRL_PARAMS *); 140*3089Swyllys 141*3089Swyllys extern KMF_RETURN KMF_CheckCRLDate(KMF_HANDLE_T, 142*3089Swyllys KMF_CHECKCRLDATE_PARAMS *); 143*3089Swyllys extern KMF_RETURN KMF_DownloadCRL(KMF_HANDLE_T, char *, char *, 144*3089Swyllys int, unsigned int, char *, KMF_ENCODE_FORMAT *); 145*3089Swyllys extern KMF_RETURN KMF_IsCRLFile(KMF_HANDLE_T, char *, KMF_ENCODE_FORMAT *); 146*3089Swyllys 147*3089Swyllys /* 148*3089Swyllys * CSR operations. 149*3089Swyllys */ 150*3089Swyllys extern KMF_RETURN KMF_SetCSRPubKey(KMF_HANDLE_T, 151*3089Swyllys KMF_KEY_HANDLE *, KMF_CSR_DATA *); 152*3089Swyllys extern KMF_RETURN KMF_SetCSRVersion(KMF_CSR_DATA *, uint32_t); 153*3089Swyllys extern KMF_RETURN KMF_SetCSRSubjectName(KMF_CSR_DATA *, KMF_X509_NAME *); 154*3089Swyllys extern KMF_RETURN KMF_CreateCSRFile(KMF_DATA *, KMF_ENCODE_FORMAT, char *); 155*3089Swyllys extern KMF_RETURN KMF_SetCSRExtension(KMF_CSR_DATA *, KMF_X509_EXTENSION *); 156*3089Swyllys extern KMF_RETURN KMF_SetCSRSignatureAlgorithm(KMF_CSR_DATA *, 157*3089Swyllys KMF_ALGORITHM_INDEX); 158*3089Swyllys extern KMF_RETURN KMF_SetCSRSubjectAltName(KMF_CSR_DATA *, char *, 159*3089Swyllys int, KMF_GENERALNAMECHOICES); 160*3089Swyllys extern KMF_RETURN KMF_SetCSRKeyUsage(KMF_CSR_DATA *, int, uint16_t); 161*3089Swyllys extern KMF_RETURN KMF_SignCSR(KMF_HANDLE_T, const KMF_CSR_DATA *, 162*3089Swyllys KMF_KEY_HANDLE *, KMF_DATA *); 163*3089Swyllys 164*3089Swyllys /* 165*3089Swyllys * GetCert operations. 166*3089Swyllys */ 167*3089Swyllys extern KMF_RETURN KMF_GetCertExtensionData(const KMF_DATA *, KMF_OID *, 168*3089Swyllys KMF_X509_EXTENSION *); 169*3089Swyllys 170*3089Swyllys extern KMF_RETURN KMF_GetCertCriticalExtensions(const KMF_DATA *, 171*3089Swyllys KMF_X509_EXTENSION **, int *); 172*3089Swyllys 173*3089Swyllys extern KMF_RETURN KMF_GetCertNonCriticalExtensions(const KMF_DATA *, 174*3089Swyllys KMF_X509_EXTENSION **, int *); 175*3089Swyllys 176*3089Swyllys extern KMF_RETURN KMF_GetCertKeyUsageExt(const KMF_DATA *, 177*3089Swyllys KMF_X509EXT_KEY_USAGE *); 178*3089Swyllys 179*3089Swyllys extern KMF_RETURN KMF_GetCertEKU(const KMF_DATA *, KMF_X509EXT_EKU *); 180*3089Swyllys 181*3089Swyllys extern KMF_RETURN KMF_GetCertBasicConstraintExt(const KMF_DATA *, 182*3089Swyllys KMF_BOOL *, KMF_X509EXT_BASICCONSTRAINTS *); 183*3089Swyllys 184*3089Swyllys extern KMF_RETURN KMF_GetCertPoliciesExt(const KMF_DATA *, 185*3089Swyllys KMF_BOOL *, KMF_X509EXT_CERT_POLICIES *); 186*3089Swyllys 187*3089Swyllys extern KMF_RETURN KMF_GetCertAuthInfoAccessExt(const KMF_DATA *, 188*3089Swyllys KMF_X509EXT_AUTHINFOACCESS *); 189*3089Swyllys 190*3089Swyllys extern KMF_RETURN KMF_GetCertCRLDistributionPointsExt(const KMF_DATA *, 191*3089Swyllys KMF_X509EXT_CRLDISTPOINTS *); 192*3089Swyllys 193*3089Swyllys extern KMF_RETURN KMF_GetCertVersionString(KMF_HANDLE_T, 194*3089Swyllys const KMF_DATA *, char **); 195*3089Swyllys 196*3089Swyllys extern KMF_RETURN KMF_GetCertSubjectNameString(KMF_HANDLE_T, const KMF_DATA *, 197*3089Swyllys char **); 198*3089Swyllys 199*3089Swyllys extern KMF_RETURN KMF_GetCertIssuerNameString(KMF_HANDLE_T, 200*3089Swyllys const KMF_DATA *, char **); 201*3089Swyllys 202*3089Swyllys extern KMF_RETURN KMF_GetCertSerialNumberString(KMF_HANDLE_T, const KMF_DATA *, 203*3089Swyllys char **); 204*3089Swyllys 205*3089Swyllys extern KMF_RETURN KMF_GetCertStartDateString(KMF_HANDLE_T, 206*3089Swyllys const KMF_DATA *, char **); 207*3089Swyllys 208*3089Swyllys extern KMF_RETURN KMF_GetCertEndDateString(KMF_HANDLE_T, 209*3089Swyllys const KMF_DATA *, char **); 210*3089Swyllys 211*3089Swyllys extern KMF_RETURN KMF_GetCertPubKeyAlgString(KMF_HANDLE_T, 212*3089Swyllys const KMF_DATA *, char **); 213*3089Swyllys 214*3089Swyllys extern KMF_RETURN KMF_GetCertSignatureAlgString(KMF_HANDLE_T, 215*3089Swyllys const KMF_DATA *, char **); 216*3089Swyllys 217*3089Swyllys extern KMF_RETURN KMF_GetCertPubKeyDataString(KMF_HANDLE_T, 218*3089Swyllys const KMF_DATA *, char **); 219*3089Swyllys 220*3089Swyllys extern KMF_RETURN KMF_GetCertEmailString(KMF_HANDLE_T, 221*3089Swyllys const KMF_DATA *, char **); 222*3089Swyllys 223*3089Swyllys extern KMF_RETURN KMF_GetCertExtensionString(KMF_HANDLE_T, const KMF_DATA *, 224*3089Swyllys KMF_PRINTABLE_ITEM, char **); 225*3089Swyllys 226*3089Swyllys extern KMF_RETURN KMF_GetCertIDData(const KMF_DATA *, KMF_DATA *); 227*3089Swyllys extern KMF_RETURN KMF_GetCertIDString(const KMF_DATA *, char **); 228*3089Swyllys extern KMF_RETURN KMF_GetCertValidity(const KMF_DATA *, time_t *, time_t *); 229*3089Swyllys 230*3089Swyllys /* 231*3089Swyllys * SetCert operations 232*3089Swyllys */ 233*3089Swyllys extern KMF_RETURN KMF_SetCertPubKey(KMF_HANDLE_T, KMF_KEY_HANDLE *, 234*3089Swyllys KMF_X509_CERTIFICATE *); 235*3089Swyllys 236*3089Swyllys extern KMF_RETURN KMF_SetCertSubjectName(KMF_X509_CERTIFICATE *, 237*3089Swyllys KMF_X509_NAME *); 238*3089Swyllys 239*3089Swyllys extern KMF_RETURN KMF_SetCertKeyUsage(KMF_X509_CERTIFICATE *, int, uint16_t); 240*3089Swyllys 241*3089Swyllys extern KMF_RETURN KMF_SetCertIssuerName(KMF_X509_CERTIFICATE *, 242*3089Swyllys KMF_X509_NAME *); 243*3089Swyllys 244*3089Swyllys extern KMF_RETURN KMF_SetCertSignatureAlgorithm(KMF_X509_CERTIFICATE *, 245*3089Swyllys KMF_ALGORITHM_INDEX); 246*3089Swyllys 247*3089Swyllys extern KMF_RETURN KMF_SetCertValidityTimes(KMF_X509_CERTIFICATE *, 248*3089Swyllys time_t, uint32_t); 249*3089Swyllys 250*3089Swyllys extern KMF_RETURN KMF_SetCertSerialNumber(KMF_X509_CERTIFICATE *, 251*3089Swyllys KMF_BIGINT *); 252*3089Swyllys 253*3089Swyllys extern KMF_RETURN KMF_SetCertVersion(KMF_X509_CERTIFICATE *, uint32_t); 254*3089Swyllys 255*3089Swyllys extern KMF_RETURN KMF_SetCertIssuerAltName(KMF_X509_CERTIFICATE *, 256*3089Swyllys int, KMF_GENERALNAMECHOICES, char *); 257*3089Swyllys 258*3089Swyllys extern KMF_RETURN KMF_SetCertSubjectAltName(KMF_X509_CERTIFICATE *, 259*3089Swyllys int, KMF_GENERALNAMECHOICES, char *); 260*3089Swyllys 261*3089Swyllys extern KMF_RETURN KMF_AddCertEKU(KMF_X509_CERTIFICATE *, KMF_OID *, int); 262*3089Swyllys 263*3089Swyllys extern KMF_RETURN KMF_SetCertExtension(KMF_X509_CERTIFICATE *, 264*3089Swyllys KMF_X509_EXTENSION *); 265*3089Swyllys 266*3089Swyllys extern KMF_RETURN KMF_SetCertBasicConstraintExt(KMF_X509_CERTIFICATE *, 267*3089Swyllys KMF_BOOL, KMF_X509EXT_BASICCONSTRAINTS *); 268*3089Swyllys 269*3089Swyllys extern KMF_RETURN KMF_ExportPK12(KMF_HANDLE_T, KMF_EXPORTP12_PARAMS *, char *); 270*3089Swyllys extern KMF_RETURN KMF_ImportPK12(KMF_HANDLE_T, char *, KMF_CREDENTIAL *, 271*3089Swyllys KMF_DATA **, int *, KMF_RAW_KEY_DATA **, int *); 272*3089Swyllys 273*3089Swyllys /* 274*3089Swyllys * Get OCSP response operation. 275*3089Swyllys */ 276*3089Swyllys extern KMF_RETURN KMF_GetOCSPForCert(KMF_HANDLE_T, KMF_DATA *, KMF_DATA *, 277*3089Swyllys KMF_DATA *); 278*3089Swyllys 279*3089Swyllys extern KMF_RETURN KMF_CreateOCSPRequest(KMF_HANDLE_T, KMF_OCSPREQUEST_PARAMS *, 280*3089Swyllys char *); 281*3089Swyllys 282*3089Swyllys extern KMF_RETURN KMF_GetEncodedOCSPResponse(KMF_HANDLE_T, char *, char *, int, 283*3089Swyllys char *, int, char *, unsigned int); 284*3089Swyllys 285*3089Swyllys extern KMF_RETURN KMF_GetOCSPStatusForCert(KMF_HANDLE_T, 286*3089Swyllys KMF_OCSPRESPONSE_PARAMS_INPUT *, 287*3089Swyllys KMF_OCSPRESPONSE_PARAMS_OUTPUT *); 288*3089Swyllys 289*3089Swyllys /* 290*3089Swyllys * Policy Operations 291*3089Swyllys */ 292*3089Swyllys extern KMF_RETURN KMF_SetPolicy(KMF_HANDLE_T, char *, char *); 293*3089Swyllys 294*3089Swyllys /* 295*3089Swyllys * Error handling. 296*3089Swyllys */ 297*3089Swyllys extern KMF_RETURN KMF_GetPluginErrorString(KMF_HANDLE_T, char **); 298*3089Swyllys extern KMF_RETURN KMF_GetKMFErrorString(KMF_RETURN, char **); 299*3089Swyllys 300*3089Swyllys /* 301*3089Swyllys * Miscellaneous 302*3089Swyllys */ 303*3089Swyllys extern KMF_RETURN KMF_DNParser(char *, KMF_X509_NAME *); 304*3089Swyllys extern KMF_RETURN KMF_DN2Der(KMF_X509_NAME *, KMF_DATA *); 305*3089Swyllys extern KMF_RETURN KMF_ReadInputFile(KMF_HANDLE_T, char *, KMF_DATA *); 306*3089Swyllys extern KMF_RETURN KMF_Der2Pem(KMF_OBJECT_TYPE, unsigned char *, 307*3089Swyllys int, unsigned char **, int *); 308*3089Swyllys extern KMF_RETURN KMF_Pem2Der(unsigned char *, int, unsigned char **, int *); 309*3089Swyllys extern char *KMF_OID2String(KMF_OID *); 310*3089Swyllys extern KMF_RETURN KMF_String2OID(char *, KMF_OID *); 311*3089Swyllys extern int KMF_CompareRDNs(KMF_X509_NAME *, KMF_X509_NAME *); 312*3089Swyllys extern KMF_RETURN KMF_GetFileFormat(char *, KMF_ENCODE_FORMAT *); 313*3089Swyllys extern uint16_t KMF_StringToKeyUsage(char *); 314*3089Swyllys extern KMF_RETURN KMF_SetTokenPin(KMF_HANDLE_T, KMF_SETPIN_PARAMS *, 315*3089Swyllys KMF_CREDENTIAL *); 316*3089Swyllys extern KMF_RETURN KMF_HexString2Bytes(unsigned char *, unsigned char **, 317*3089Swyllys size_t *); 318*3089Swyllys 319*3089Swyllys /* 320*3089Swyllys * Memory cleanup operations 321*3089Swyllys */ 322*3089Swyllys extern void KMF_FreeDN(KMF_X509_NAME *); 323*3089Swyllys extern void KMF_FreeKMFCert(KMF_HANDLE_T, KMF_X509_DER_CERT *); 324*3089Swyllys extern void KMF_FreeData(KMF_DATA *); 325*3089Swyllys extern void KMF_FreeAlgOID(KMF_X509_ALGORITHM_IDENTIFIER *); 326*3089Swyllys extern void KMF_FreeExtension(KMF_X509_EXTENSION *); 327*3089Swyllys extern void KMF_FreeTBSCSR(KMF_TBS_CSR *); 328*3089Swyllys extern void KMF_FreeSignedCSR(KMF_CSR_DATA *); 329*3089Swyllys extern void KMF_FreeTBSCert(KMF_X509_TBS_CERT *); 330*3089Swyllys extern void KMF_FreeSignedCert(KMF_X509_CERTIFICATE *); 331*3089Swyllys extern void KMF_FreeString(char *); 332*3089Swyllys extern void KMF_FreeEKU(KMF_X509EXT_EKU *); 333*3089Swyllys extern void KMF_FreeSPKI(KMF_X509_SPKI *); 334*3089Swyllys extern void KMF_FreeKMFKey(KMF_HANDLE_T, KMF_KEY_HANDLE *); 335*3089Swyllys extern void KMF_FreeBigint(KMF_BIGINT *); 336*3089Swyllys extern void KMF_FreeRawKey(KMF_RAW_KEY_DATA *); 337*3089Swyllys extern void KMF_FreeRawSymKey(KMF_RAW_SYM_KEY *); 338*3089Swyllys extern void KMF_FreeCRLDistributionPoints(KMF_X509EXT_CRLDISTPOINTS *); 339*3089Swyllys 340*3089Swyllys /* APIs for PKCS#11 token */ 341*3089Swyllys extern KMF_RETURN KMF_PK11TokenLookup(KMF_HANDLE_T, char *, CK_SLOT_ID *); 342*3089Swyllys 343*3089Swyllys #ifdef __cplusplus 344*3089Swyllys } 345*3089Swyllys #endif 346*3089Swyllys #endif /* _KMFAPI_H */ 347