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