kmfapi.h revision 02744e811b15322c5f109827a116c33bfe3438b5
/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License (the "License").
* You may not use this file except in compliance with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*
*
* Constant definitions and function prototypes for the KMF library.
* Commonly used data types are defined in "kmftypes.h".
*/
#ifndef _KMFAPI_H
#define _KMFAPI_H
#pragma ident "%Z%%M% %I% %E% SMI"
#include <kmftypes.h>
#include <security/cryptoki.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* Setup operations.
*/
/*
* Key operations.
*/
KMF_KEY_HANDLE *, KMF_OID *,
KMF_X509_CERTIFICATE *, KMF_DATA *);
KMF_KEY_HANDLE *, uint32_t *);
KMF_RAW_KEY_DATA *);
KMF_KEY_HANDLE *);
KMF_RAW_SYM_KEY *);
/*
* Certificate operations.
*/
KMF_X509_DER_CERT *, uint32_t *);
KMF_DATA *);
KMF_KEY_HANDLE *, KMF_DATA *);
const KMF_DATA *);
const KMF_DATA *);
const KMF_DATA *);
KMF_STORECERT_PARAMS *, KMF_DATA *);
KMF_VALIDATECERT_PARAMS *, int *);
unsigned int, char *, KMF_ENCODE_FORMAT *);
/*
* CRL operations.
*/
char **, int *);
int, unsigned int, char *, KMF_ENCODE_FORMAT *);
/*
* CSR operations.
*/
KMF_KEY_HANDLE *, KMF_CSR_DATA *);
int, KMF_GENERALNAMECHOICES);
KMF_KEY_HANDLE *, KMF_DATA *);
/*
* GetCert operations.
*/
KMF_X509_EXTENSION **, int *);
KMF_X509_EXTENSION **, int *);
const KMF_DATA *, char **);
char **);
const KMF_DATA *, char **);
char **);
const KMF_DATA *, char **);
const KMF_DATA *, char **);
const KMF_DATA *, char **);
const KMF_DATA *, char **);
const KMF_DATA *, char **);
const KMF_DATA *, char **);
KMF_PRINTABLE_ITEM, char **);
/*
* SetCert operations
*/
KMF_X509_NAME *);
KMF_X509_NAME *);
KMF_BIGINT *);
int, KMF_GENERALNAMECHOICES, char *);
int, KMF_GENERALNAMECHOICES, char *);
KMF_DATA **, int *, KMF_RAW_KEY_DATA **, int *);
KMF_DATA **, int *, KMF_RAW_KEY_DATA **, int *);
/*
* Get OCSP response operation.
*/
KMF_DATA *);
char *);
char *, int, char *, unsigned int);
/*
* Policy Operations
*/
/*
* Error handling.
*/
/*
* Miscellaneous
*/
int, unsigned char **, int *);
extern KMF_RETURN KMF_Pem2Der(unsigned char *, int, unsigned char **, int *);
extern char *KMF_OID2String(KMF_OID *);
extern uint16_t KMF_StringToKeyUsage(char *);
KMF_CREDENTIAL *);
extern KMF_RETURN KMF_HexString2Bytes(unsigned char *, unsigned char **,
size_t *);
/*
* Memory cleanup operations
*/
extern void KMF_FreeDN(KMF_X509_NAME *);
extern void KMF_FreeData(KMF_DATA *);
extern void KMF_FreeAlgOID(KMF_X509_ALGORITHM_IDENTIFIER *);
extern void KMF_FreeExtension(KMF_X509_EXTENSION *);
extern void KMF_FreeTBSCSR(KMF_TBS_CSR *);
extern void KMF_FreeSignedCSR(KMF_CSR_DATA *);
extern void KMF_FreeTBSCert(KMF_X509_TBS_CERT *);
extern void KMF_FreeSignedCert(KMF_X509_CERTIFICATE *);
extern void KMF_FreeString(char *);
extern void KMF_FreeEKU(KMF_X509EXT_EKU *);
extern void KMF_FreeSPKI(KMF_X509_SPKI *);
extern void KMF_FreeBigint(KMF_BIGINT *);
extern void KMF_FreeRawKey(KMF_RAW_KEY_DATA *);
extern void KMF_FreeRawSymKey(KMF_RAW_SYM_KEY *);
extern void KMF_FreeCRLDistributionPoints(KMF_X509EXT_CRLDISTPOINTS *);
/* APIs for PKCS#11 token */
#ifdef __cplusplus
}
#endif
#endif /* _KMFAPI_H */