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