#ifndef _CERT_BUILDER_APP_H_
#define _CERT_BUILDER_APP_H_
#include <Security/cssm.h>
#include <Security/x509defs.h>
#include <time.h>
#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
const char *string;
const CSSM_OID *oid;
} CB_NameOid;
CSSM_X509_NAME *CB_BuildX509Name(
const CB_NameOid *nameArray,
unsigned numNames);
void CB_FreeX509Name(
CSSM_X509_NAME *top);
CSSM_X509_TIME *CB_BuildX509Time(
unsigned secondsFromNow,
const char *timeStr=NULL);
void CB_FreeX509Time(
CSSM_X509_TIME *xtime);
CSSM_DATA_PTR CB_MakeCertTemplate(
CSSM_CL_HANDLE clHand,
uint32 serialNumber,
const CSSM_X509_NAME *issuerName,
const CSSM_X509_NAME *subjectName,
const CSSM_X509_TIME *notBefore,
const CSSM_X509_TIME *notAfter,
const CSSM_KEY_PTR subjectPubKey,
CSSM_ALGORITHMS sigAlg,
const CSSM_DATA *subjectUniqueId,
const CSSM_DATA *issuerUniqueId,
CSSM_X509_EXTENSION *extensions,
unsigned numExtensions);
#ifdef __cplusplus
}
#endif
#endif