99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
9a7670889e9c36ec355371e6b02f2d9084f040dchaimay * Copyright (c) 1995-2000 Intel Corporation. All rights reserved.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#ifndef _KMFTYPES_H
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define _KMFTYPES_H
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#include <sys/types.h>
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#include <stdlib.h>
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#include <strings.h>
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#include <pthread.h>
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#include <security/cryptoki.h>
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#ifdef __cplusplus
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysextern "C" {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#endif
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef uint32_t KMF_BOOL;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_FALSE (0)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_TRUE (1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* KMF_HANDLE_T is a pointer to an incomplete C struct for type safety. */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct _kmf_handle *KMF_HANDLE_T;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_DATA
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * The KMF_DATA structure is used to associate a length, in bytes, with
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * an arbitrary block of contiguous memory.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct kmf_data
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys size_t Length; /* in bytes */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uchar_t *Data;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_DATA;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uchar_t *val;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys size_t len;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_BIGINT;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_OID
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * The object identifier (OID) structure is used to hold a unique identifier for
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * the atomic data fields and the compound substructure that comprise the fields
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * of a certificate or CRL.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef KMF_DATA KMF_OID;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct kmf_x509_private {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys int keystore_type;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys int flags; /* see below */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys char *label;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_FLAG_CERT_VALID 1 /* contains valid certificate */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_FLAG_CERT_SIGNED 2 /* this is a signed certificate */
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys} KMF_X509_PRIVATE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_DER_CERT
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure associates packed DER certificate data.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * Also, it contains the private information internal used
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * by KMF layer.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA certificate;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_PRIVATE kmf_private;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_DER_CERT;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
431deaa01ac039d796fdfaf86b909a75e7d9ac48hyleetypedef int KMF_KEYSTORE_TYPE;
431deaa01ac039d796fdfaf86b909a75e7d9ac48hylee#define KMF_KEYSTORE_NSS 1
431deaa01ac039d796fdfaf86b909a75e7d9ac48hylee#define KMF_KEYSTORE_OPENSSL 2
431deaa01ac039d796fdfaf86b909a75e7d9ac48hylee#define KMF_KEYSTORE_PK11TOKEN 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
431deaa01ac039d796fdfaf86b909a75e7d9ac48hylee#define VALID_DEFAULT_KEYSTORE_TYPE(t) ((t >= KMF_KEYSTORE_NSS) &&\
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys (t <= KMF_KEYSTORE_PK11TOKEN))
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_FORMAT_UNDEF = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_FORMAT_ASN1 = 1, /* DER */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_FORMAT_PEM = 2,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_FORMAT_PKCS12 = 3,
71593db26bb6ef7b739cffe06d53bf990cac112cwyllys KMF_FORMAT_RAWKEY = 4, /* For FindKey operation */
71593db26bb6ef7b739cffe06d53bf990cac112cwyllys KMF_FORMAT_PEM_KEYPAIR = 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_ENCODE_FORMAT;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys
71593db26bb6ef7b739cffe06d53bf990cac112cwyllys#define KMF_FORMAT_NATIVE KMF_FORMAT_UNDEF
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ALL_CERTS = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_NONEXPIRED_CERTS = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_EXPIRED_CERTS = 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_CERT_VALIDITY;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllystypedef enum {
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ALL_EXTNS = 0,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRITICAL_EXTNS = 1,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_NONCRITICAL_EXTNS = 2
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys} KMF_FLAG_CERT_EXTN;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KU_SIGN_CERT = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KU_SIGN_DATA = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KU_ENCRYPT_DATA = 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_KU_PURPOSE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
02744e811b15322c5f109827a116c33bfe3438b5wyllys/*
02744e811b15322c5f109827a116c33bfe3438b5wyllys * Algorithms
02744e811b15322c5f109827a116c33bfe3438b5wyllys * This type defines a set of constants used to identify cryptographic
02744e811b15322c5f109827a116c33bfe3438b5wyllys * algorithms.
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll *
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll * When adding new ALGID, be careful not to rearrange existing
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll * values, doing so can cause problem in the STC test suite.
02744e811b15322c5f109827a116c33bfe3438b5wyllys */
02744e811b15322c5f109827a116c33bfe3438b5wyllystypedef enum {
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_NONE = 0,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_CUSTOM,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_SHA1,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_RSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_DSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_MD5WithRSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_MD2WithRSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllys KMF_ALGID_SHA1WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA1WithDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_ECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA256WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA384WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA512WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA256WithDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA1WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA256WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA384WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ALGID_SHA512WithECDSA
02744e811b15322c5f109827a116c33bfe3438b5wyllys} KMF_ALGORITHM_INDEX;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * Generic credential structure used by other structures below
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * to convey authentication information to the underlying
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * mechanisms.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys char *cred;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t credlen;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_CREDENTIAL;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KEYALG_NONE = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_RSA = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DSA = 2,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_AES = 3,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_RC4 = 4,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DES = 5,
c197cb9db36685d2808c057fdbe5700734483ab2hylee KMF_DES3 = 6,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_GENERIC_SECRET = 7,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_ECDSA = 8
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys}KMF_KEY_ALG;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KEYCLASS_NONE = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ASYM_PUB = 1, /* public key of an asymmetric keypair */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ASYM_PRI = 2, /* private key of an asymmetric keypair */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_SYMMETRIC = 3 /* symmetric key */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys}KMF_KEY_CLASS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CSR = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CRL = 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys}KMF_OBJECT_TYPE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT mod;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT pubexp;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT priexp;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT prime1;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT prime2;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT exp1;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT exp2;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT coef;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_RAW_RSA_KEY;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT prime;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT subprime;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT base;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT value;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_BIGINT pubvalue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_RAW_DSA_KEY;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT keydata;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_RAW_SYM_KEY;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersolltypedef struct {
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_BIGINT value;
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_OID params;
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll} KMF_RAW_EC_KEY;
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEY_ALG keytype;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys boolean_t sensitive;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys boolean_t not_extractable;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys union {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_RAW_RSA_KEY rsa;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_RAW_DSA_KEY dsa;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_RAW_SYM_KEY sym;
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_RAW_EC_KEY ec;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys }rawdata;
5b3e1433c6213363bcb6387e66fc84ee9ff21a5dwyllys char *label;
5b3e1433c6213363bcb6387e66fc84ee9ff21a5dwyllys KMF_DATA id;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_RAW_KEY_DATA;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KEYSTORE_TYPE kstype;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KEY_ALG keyalg;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KEY_CLASS keyclass;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys boolean_t israw;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys char *keylabel;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys void *keyp;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_KEY_HANDLE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_KEYSTORE_TYPE kstype;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t errcode;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_ERROR;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * Typenames to use with subjectAltName
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_OTHERNAME = 0x00,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_RFC822NAME,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_DNSNAME,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_X400ADDRESS,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_DIRECTORYNAME,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_EDIPARTYNAME,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_URI,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys GENNAME_IPADDRESS,
d00756ccb34596a328f8a15d1965da5412d366d0wyllys GENNAME_REGISTEREDID,
d00756ccb34596a328f8a15d1965da5412d366d0wyllys GENNAME_KRB5PRINC,
d00756ccb34596a328f8a15d1965da5412d366d0wyllys GENNAME_SCLOGON_UPN
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_GENERALNAMECHOICES;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_FIELD
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains the OID/value pair for any item that can be
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * identified by an OID.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID FieldOid;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA FieldValue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_FIELD;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OK = 0x00,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_PARAMETER = 0x01,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_KEY_FORMAT = 0x02,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_ALGORITHM = 0x03,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_MEMORY = 0x04,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_ENCODING = 0x05,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_PLUGIN_INIT = 0x06,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_PLUGIN_NOTFOUND = 0x07,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_INTERNAL = 0x0b,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_CERT_FORMAT = 0x0c,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_KEYGEN_FAILED = 0x0d,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_UNINITIALIZED = 0x10,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_ISSUER = 0x11,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_NOT_REVOKED = 0x12,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_CERT_NOT_FOUND = 0x13,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_CRL_NOT_FOUND = 0x14,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_RDN_PARSER = 0x15,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_RDN_ATTR = 0x16,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_SLOTNAME = 0x17,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_EMPTY_CRL = 0x18,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BUFFER_SIZE = 0x19,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_AUTH_FAILED = 0x1a,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_TOKEN_SELECTED = 0x1b,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_NO_TOKEN_SELECTED = 0x1c,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_TOKEN_NOT_PRESENT = 0x1d,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_EXTENSION_NOT_FOUND = 0x1e,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_POLICY_ENGINE = 0x1f,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_POLICY_DB_FORMAT = 0x20,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_POLICY_NOT_FOUND = 0x21,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_POLICY_DB_FILE = 0x22,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_POLICY_NAME = 0x23,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_POLICY = 0x24,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_TA_POLICY = 0x25,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_KEY_NOT_FOUND = 0x26,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OPEN_FILE = 0x27,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_BAD_ISSUER = 0x28,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_BAD_CERT = 0x29,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_CREATE_REQUEST = 0x2a,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_CONNECT_SERVER = 0x2b,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_SEND_REQUEST = 0x2c,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_CERTID = 0x2d,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_MALFORMED_RESPONSE = 0x2e,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_RESPONSE_STATUS = 0x2f,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_NO_BASIC_RESPONSE = 0x30,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_BAD_SIGNER = 0x31,
431deaa01ac039d796fdfaf86b909a75e7d9ac48hylee
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_RESPONSE_SIGNATURE = 0x32,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_UNKNOWN_CERT = 0x33,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_STATUS_TIME_INVALID = 0x34,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_HTTP_RESPONSE = 0x35,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_RECV_RESPONSE = 0x36,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_RECV_TIMEOUT = 0x37,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_DUPLICATE_KEYFILE = 0x38,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_AMBIGUOUS_PATHNAME = 0x39,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_FUNCTION_NOT_FOUND = 0x3a,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_PKCS12_FORMAT = 0x3b,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_KEY_TYPE = 0x3c,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_KEY_CLASS = 0x3d,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_KEY_SIZE = 0x3e,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_HEX_STRING = 0x3f,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_KEYUSAGE = 0x40,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_VALIDITY_PERIOD = 0x41,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_REVOKED = 0x42,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_CERT_MULTIPLE_FOUND = 0x43,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_WRITE_FILE = 0x44,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_URI = 0x45,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_CRLFILE = 0x46,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_CERTFILE = 0x47,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_GETKEYVALUE_FAILED = 0x48,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_KEYHANDLE = 0x49,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_BAD_OBJECT_TYPE = 0x4a,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_OCSP_RESPONSE_LIFETIME = 0x4b,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_UNKNOWN_CSR_ATTRIBUTE = 0x4c,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_UNINITIALIZED_TOKEN = 0x4d,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_INCOMPLETE_TBS_CERT = 0x4e,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_ERR_MISSING_ERRCODE = 0x4f,
71593db26bb6ef7b739cffe06d53bf990cac112cwyllys KMF_KEYSTORE_ALREADY_INITIALIZED = 0x50,
71593db26bb6ef7b739cffe06d53bf990cac112cwyllys KMF_ERR_SENSITIVE_KEY = 0x51,
71593db26bb6ef7b739cffe06d53bf990cac112cwyllys KMF_ERR_UNEXTRACTABLE_KEY = 0x52,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ERR_KEY_MISMATCH = 0x53,
431deaa01ac039d796fdfaf86b909a75e7d9ac48hylee KMF_ERR_ATTR_NOT_FOUND = 0x54,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_ERR_KMF_CONF = 0x55,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_ERR_NAME_NOT_MATCHED = 0x56,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_ERR_MAPPER_OPEN = 0x57,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_ERR_MAPPER_NOT_FOUND = 0x58,
fc2613b0a10c787c0f90e9b36f170183746c63f8Wyllys Ingersoll KMF_ERR_MAPPING_FAILED = 0x59,
fc2613b0a10c787c0f90e9b36f170183746c63f8Wyllys Ingersoll KMF_ERR_CERT_VALIDATION = 0x60
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_RETURN;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys/* Data structures for OCSP support */
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllystypedef enum {
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys OCSP_GOOD = 0,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys OCSP_REVOKED = 1,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys OCSP_UNKNOWN = 2
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys} KMF_OCSP_CERT_STATUS;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_SUCCESS = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_MALFORMED_REQUEST = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_INTERNAL_ERROR = 2,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_TRYLATER = 3,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_SIGREQUIRED = 4,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_UNAUTHORIZED = 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_OCSP_RESPONSE_STATUS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_NOSTATUS = -1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_UNSPECIFIED = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_KEYCOMPROMISE = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_CACOMPROMISE = 2,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_AFFILIATIONCHANGE = 3,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_SUPERCEDED = 4,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_CESSATIONOFOPERATION = 5,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_CERTIFICATEHOLD = 6,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys OCSP_REMOVEFROMCRL = 7
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_OCSP_REVOKED_STATUS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_ISSUER = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_SUBJECT,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_VERSION,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_SERIALNUM,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_NOTBEFORE,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_NOTAFTER,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_PUBKEY_ALG,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_SIGNATURE_ALG,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_EMAIL,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CERT_PUBKEY_DATA,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_PRIV_KEY_USAGE_PERIOD,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_CERT_POLICIES,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_SUBJ_ALTNAME,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_ISSUER_ALTNAME,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_BASIC_CONSTRAINTS,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_NAME_CONSTRAINTS,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_POLICY_CONSTRAINTS,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_EXT_KEY_USAGE,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_INHIBIT_ANY_POLICY,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_AUTH_KEY_ID,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_SUBJ_KEY_ID,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_POLICY_MAPPINGS,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_CRL_DIST_POINTS,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_FRESHEST_CRL,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXT_KEY_USAGE
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_PRINTABLE_ITEM;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_ALGORITHM_IDENTIFIER
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure holds an object identifier naming a
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * cryptographic algorithm and an optional set of
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * parameters to be used as input to that algorithm.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID algorithm;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA parameters;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_ALGORITHM_IDENTIFIER;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_TYPE_VALUE_PAIR
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contain an type-value pair.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID type;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint8_t valueType; /* The Tag to use when BER encoded */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA value;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_TYPE_VALUE_PAIR;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_RDN
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a Relative Distinguished Name
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * composed of an ordered set of type-value pairs.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t numberOfPairs;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_TYPE_VALUE_PAIR *AttributeTypeAndValue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_RDN;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_NAME
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a set of Relative Distinguished Names.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t numberOfRDNs;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_RDN *RelativeDistinguishedName;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_NAME;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_SPKI
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains the public key and the
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * description of the verification algorithm
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * appropriate for use with this key.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_ALGORITHM_IDENTIFIER algorithm;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA subjectPublicKey;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_SPKI;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_TIME
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * Time is represented as a string according to the
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * definitions of GeneralizedTime and UTCTime
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * defined in RFC 2459.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint8_t timeType;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA time;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_TIME;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_VALIDITY
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_TIME notBefore;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_TIME notAfter;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_VALIDITY;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_BASICCONSTRAINTS
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BOOL cA;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BOOL pathLenConstraintPresent;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t pathLenConstraint;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_BASICCONSTRAINTS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_DATA_FORMAT
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This list defines the valid formats for a certificate extension.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_DATAFORMAT_ENCODED = 0,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_DATAFORMAT_PARSED,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_DATAFORMAT_PAIR
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_DATA_FORMAT;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_TAGandVALUE
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a BER/DER encoded
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * extension value and the type of that value.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint8_t type;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA value;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_TAGandVALUE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_PAIR
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure aggregates two extension representations:
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * a tag and value, and a parsed X509 extension representation.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_TAGandVALUE tagAndValue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys void *parsedValue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_PAIR;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_EXTENSION
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a complete certificate extension.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID extnId;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BOOL critical;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_DATA_FORMAT format;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys union
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_TAGandVALUE *tagAndValue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys void *parsedValue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_PAIR *valuePair;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys } value;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA BERvalue;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_EXTENSION;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_EXTENSIONS
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains the set of all certificate
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * extensions contained in a certificate.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t numberOfExtensions;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXTENSION *extensions;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_EXTENSIONS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_TBS_CERT
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a complete X.509 certificate.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA version;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_BIGINT serialNumber;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_ALGORITHM_IDENTIFIER signature;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_NAME issuer;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_VALIDITY validity;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_NAME subject;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_SPKI subjectPublicKeyInfo;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA issuerUniqueIdentifier;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA subjectUniqueIdentifier;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXTENSIONS extensions;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_TBS_CERT;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_SIGNATURE
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a cryptographic digital signature.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_ALGORITHM_IDENTIFIER algorithmIdentifier;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA encrypted;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_SIGNATURE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509_CERTIFICATE
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure associates a set of decoded certificate
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * values with the signature covering those values.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_TBS_CERT certificate;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_SIGNATURE signature;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509_CERTIFICATE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define CERT_ALG_OID(c) &c->certificate.signature.algorithm
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define CERT_SIG_OID(c) &c->signature.algorithmIdentifier.algorithm
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_TBS_CSR
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a complete PKCS#10 certificate request
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA version;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_NAME subject;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_SPKI subjectPublicKeyInfo;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_EXTENSIONS extensions;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_TBS_CSR;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_CSR_DATA
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * This structure contains a complete PKCS#10 certificate signed request
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_TBS_CSR csr;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509_SIGNATURE signature;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_CSR_DATA;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_POLICYQUALIFIERINFO
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID policyQualifierId;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA value;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_POLICYQUALIFIERINFO;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_POLICYQUALIFIERS
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t numberOfPolicyQualifiers;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_POLICYQUALIFIERINFO *policyQualifier;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_POLICYQUALIFIERS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF_X509EXT_POLICYINFO
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID policyIdentifier;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_POLICYQUALIFIERS policyQualifiers;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_POLICYINFO;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t numberOfPolicyInfo;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_POLICYINFO *policyInfo;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_CERT_POLICIES;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uchar_t critical;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint16_t KeyUsageBits;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_KEY_USAGE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uchar_t critical;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint16_t nEKUs;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID *keyPurposeIdList;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_EKU;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * X509 AuthorityInfoAccess extension
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_OID AccessMethod;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA AccessLocation;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_ACCESSDESC;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys{
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t numberOfAccessDescription;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_X509EXT_ACCESSDESC *AccessDesc;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_AUTHINFOACCESS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * X509 Crl Distribution Point extension
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_GENERALNAMECHOICES choice;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA name;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_GENERALNAME;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t number;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_GENERALNAME *namelist;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_GENERALNAMES;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef enum {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys DP_GENERAL_NAME = 1,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys DP_RELATIVE_NAME = 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_CRL_DIST_POINT_TYPE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CRL_DIST_POINT_TYPE type;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys union {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_GENERALNAMES full_name;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA relative_name;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys } name;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_DATA reasons;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_GENERALNAMES crl_issuer;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_CRL_DIST_POINT;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllystypedef struct {
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys uint32_t number;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys KMF_CRL_DIST_POINT *dplist;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys} KMF_X509EXT_CRLDISTPOINTS;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllystypedef enum {
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OID_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_BIGINT_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_X509_DER_CERT_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEYSTORE_TYPE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ENCODE_FORMAT_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CERT_VALIDITY_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KU_PURPOSE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ALGORITHM_INDEX_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_TOKEN_LABEL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_READONLY_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_DIRPATH_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CERTPREFIX_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEYPREFIX_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_SECMODNAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CREDENTIAL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_TRUSTFLAG_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_FILENAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_CHECK_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_SUBJECT_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_ISSUER_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_NAMELIST_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_COUNT_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CRL_OUTFILE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CERT_LABEL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_SUBJECT_NAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ISSUER_NAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CERT_FILENAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEY_FILENAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OUTPUT_FILENAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_IDSTR_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CERT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OCSP_RESPONSE_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OCSP_RESPONSE_STATUS_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OCSP_RESPONSE_REASON_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OCSP_RESPONSE_CERT_STATUS_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OCSP_REQUEST_FILENAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEYALG_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEYCLASS_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEYLABEL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEYLENGTH_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_RSAEXP_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_TACERT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_SLOT_ID_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_PK12CRED_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ISSUER_CERT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_USER_CERT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_SIGNER_CERT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_IGNORE_RESPONSE_SIGN_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_RESPONSE_LIFETIME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_KEY_HANDLE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_PRIVKEY_HANDLE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_PUBKEY_HANDLE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ERROR_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_X509_NAME_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_X509_SPKI_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_X509_CERTIFICATE_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_RAW_KEY_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CSR_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_GENERALNAMECHOICES_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_STOREKEY_BOOL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_SENSITIVE_BOOL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_NON_EXTRACTABLE_BOOL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_TOKEN_BOOL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_PRIVATE_BOOL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_NEWPIN_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_IN_SIGN_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_OUT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_COUNT_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_DESTROY_BOOL_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_TBS_CERT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_PLAINTEXT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_CIPHERTEXT_DATA_ATTR,
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_VALIDATE_RESULT_ATTR,
47e946e784719ae402ace34695f67b0e6e76ae5cWyllys Ingersoll KMF_KEY_DATA_ATTR,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll KMF_PK11_USER_TYPE_ATTR,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_ECC_CURVE_OID_ATTR,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_MAPPER_NAME_ATTR,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_MAPPER_PATH_ATTR,
269e59f9a28bf47e0f463e64fc5af4a408b73b21Jan Pechanec KMF_MAPPER_OPTIONS_ATTR
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys} KMF_ATTR_TYPE;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllystypedef struct {
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys KMF_ATTR_TYPE type;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys void *pValue;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys uint32_t valueLen;
30a5e8fa1253cb33980ee4514743cf683f584b4ewyllys} KMF_ATTRIBUTE;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * Definitions for common X.509v3 certificate attribute OIDs
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ISO_MEMBER 42 /* Also in PKCS */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_US OID_ISO_MEMBER, 134, 72 /* Also in PKCS */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_CA OID_ISO_MEMBER, 124
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ISO_IDENTIFIED_ORG 43
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OSINET OID_ISO_IDENTIFIED_ORG, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_GOSIP OID_ISO_IDENTIFIED_ORG, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DOD OID_ISO_IDENTIFIED_ORG, 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIW OID_ISO_IDENTIFIED_ORG, 14 /* Also in x9.57 */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ISO_CCITT_DIR_SERVICE 85
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ISO_CCITT_COUNTRY 96
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_COUNTRY_US OID_ISO_CCITT_COUNTRY, 134, 72
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_COUNTRY_CA OID_ISO_CCITT_COUNTRY, 124
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_COUNTRY_US_ORG OID_COUNTRY_US, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_COUNTRY_US_MHS_MD OID_COUNTRY_US, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_COUNTRY_US_STATE OID_COUNTRY_US, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* From the PKCS Standards */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ISO_MEMBER_LENGTH 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_US_LENGTH (OID_ISO_MEMBER_LENGTH + 2)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_RSA OID_US, 134, 247, 13
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_RSA_LENGTH (OID_US_LENGTH + 3)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_RSA_HASH OID_RSA, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_RSA_HASH_LENGTH (OID_RSA_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_RSA_ENCRYPT OID_RSA, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_RSA_ENCRYPT_LENGTH (OID_RSA_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS OID_RSA, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_LENGTH (OID_RSA_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_1 OID_PKCS, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_1_LENGTH (OID_PKCS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_2 OID_PKCS, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_3 OID_PKCS, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_3_LENGTH (OID_PKCS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_4 OID_PKCS, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_5 OID_PKCS, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_5_LENGTH (OID_PKCS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_6 OID_PKCS, 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7 OID_PKCS, 7
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_LENGTH (OID_PKCS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_Data OID_PKCS_7, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_SignedData OID_PKCS_7, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_EnvelopedData OID_PKCS_7, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_SignedAndEnvelopedData OID_PKCS_7, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_DigestedData OID_PKCS_7, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_7_EncryptedData OID_PKCS_7, 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_8 OID_PKCS, 8
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9 OID_PKCS, 9
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9_LENGTH (OID_PKCS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9_CONTENT_TYPE OID_PKCS_9, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9_MESSAGE_DIGEST OID_PKCS_9, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9_SIGNING_TIME OID_PKCS_9, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9_COUNTER_SIGNATURE OID_PKCS_9, 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_9_EXTENSION_REQUEST OID_PKCS_9, 14
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_10 OID_PKCS, 10
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_12 OID_PKCS, 12
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS_12_LENGTH (OID_PKCS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define PBEWithSHAAnd128BitRC4 OID_PKCS_12, 1, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define PBEWithSHAAnd40BitRC4 OID_PKCS_12, 1, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define PBEWithSHAAnd3KeyTripleDES_CBC OID_PKCS_12, 1, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define PBEWithSHAAnd2KeyTripleDES_CBC OID_PKCS_12, 1, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define PBEWithSHAAnd128BitRC2_CBC OID_PKCS_12, 1, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define PBEWithSHAAnd40BitRC2_CBC OID_PKCS_12, 1, 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_BAG_TYPES OID_PKCS_12, 10, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_KeyBag OID_BAG_TYPES, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKCS8ShroudedKeyBag OID_BAG_TYPES, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_CertBag OID_BAG_TYPES, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_CrlBag OID_BAG_TYPES, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_SecretBag OID_BAG_TYPES, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_SafeContentsBag OID_BAG_TYPES, 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ContentInfo OID_PKCS_7, 0, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_CERT_TYPES OID_PKCS_9, 22
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_x509Certificate OID_CERT_TYPES, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_sdsiCertificate OID_CERT_TYPES, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_CRL_TYPES OID_PKCS_9, 23
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_x509Crl OID_CRL_TYPES, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DS OID_ISO_CCITT_DIR_SERVICE /* Also in X.501 */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DS_LENGTH 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ATTR_TYPE OID_DS, 4 /* Also in X.501 */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_ATTR_TYPE_LENGTH (OID_DS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DSALG OID_DS, 8 /* Also in X.501 */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DSALG_LENGTH (OID_DS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_EXTENSION OID_DS, 29 /* Also in X.501 */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_EXTENSION_LENGTH (OID_DS_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * From RFC 1274:
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * {itu-t(0) data(9) pss(2342) ucl(19200300) pilot(100) pilotAttributeType(1) }
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PILOT 0x09, 0x92, 0x26, 0x89, 0x93, 0xf2, 0x2c, 0x64, 0x1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PILOT_LENGTH 9
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_USERID OID_PILOT 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_USERID_LENGTH (OID_PILOT_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * From PKIX part1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * { iso(1) identified-organization(3) dod(6) internet(1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * security(5) mechanisms(5) pkix(7) }
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX 43, 6, 1, 5, 5, 7
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_LENGTH 6
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* private certificate extensions, { id-pkix 1 } */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_PE OID_PKIX, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_PE_LENGTH (OID_PKIX_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* policy qualifier types {id-pkix 2 } */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_QT OID_PKIX, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_QT_LENGTH (OID_PKIX_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* CPS qualifier, { id-qt 1 } */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_QT_CPS OID_PKIX_QT, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_QT_CPS_LENGTH (OID_PKIX_QT_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* user notice qualifier, { id-qt 2 } */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_QT_UNOTICE OID_PKIX_QT, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_QT_UNOTICE_LENGTH (OID_PKIX_QT_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* extended key purpose OIDs {id-pkix 3 } */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_KP OID_PKIX, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_KP_LENGTH (OID_PKIX_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* access descriptors {id-pkix 4 } */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_AD OID_PKIX, 48
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_AD_LENGTH (OID_PKIX_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* access descriptors */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* OCSP */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_AD_OCSP OID_PKIX_AD, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_AD_OCSP_LENGTH (OID_PKIX_AD_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* cAIssuers */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_AD_CAISSUERS OID_PKIX_AD, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_PKIX_AD_CAISSUERS_LENGTH (OID_PKIX_AD_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* end PKIX part1 */
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys/*
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * From RFC4556 (PKINIT)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys *
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * pkinit = { iso(1) identified-organization(3) dod(6) internet(1)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * security(5) kerberosv5(2) pkinit(3) }
d00756ccb34596a328f8a15d1965da5412d366d0wyllys */
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_PKINIT 43, 6, 1, 5, 2, 3
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_PKINIT_LENGTH 6
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_PKINIT_KPCLIENTAUTH OID_KRB5_PKINIT, 4
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_PKINIT_KPCLIENTAUTH_LENGTH (OID_KRB5_PKINIT_LENGTH + 1)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_PKINIT_KPKDC OID_KRB5_PKINIT, 5
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_PKINIT_KPKDC_LENGTH (OID_KRB5_PKINIT_LENGTH + 1)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_SAN 43, 6, 1, 5, 2, 2
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_KRB5_SAN_LENGTH 6
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys/*
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * Microsoft OIDs:
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * id-ms-san-sc-logon-upn =
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * {iso(1) identified-organization(3) dod(6) internet(1) private(4)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * enterprise(1) microsoft(311) 20 2 3}
d00756ccb34596a328f8a15d1965da5412d366d0wyllys *
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * id-ms-kp-sc-logon =
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * {iso(1) identified-organization(3) dod(6) internet(1) private(4)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys * enterprise(1) microsoft(311) 20 2 2}
d00756ccb34596a328f8a15d1965da5412d366d0wyllys */
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_MS 43, 6, 1, 4, 1, 130, 55
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_MS_LENGTH 7
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_MS_KP_SC_LOGON OID_MS, 20, 2, 2
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_MS_KP_SC_LOGON_LENGTH (OID_MS_LENGTH + 3)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_MS_KP_SC_LOGON_UPN OID_MS, 20, 2, 3
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_MS_KP_SC_LOGON_UPN_LENGTH (OID_MS_LENGTH + 3)
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_APPL_TCP_PROTO 43, 6, 1, 2, 1, 27, 4
d00756ccb34596a328f8a15d1965da5412d366d0wyllys#define OID_APPL_TCP_PROTO_LENGTH 8
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DAP OID_DS, 3, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_DAP_LENGTH (OID_DS_LENGTH + 2)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/* From x9.57 */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIW_LENGTH 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIW_SECSIG OID_OIW, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIW_SECSIG_LENGTH (OID_OIW_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIW_ALGORITHM OID_OIW_SECSIG, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIW_ALGORITHM_LENGTH (OID_OIW_SECSIG_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR OID_OIW, 7, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR_LENGTH (OID_OIW_LENGTH + 2)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR_CRPT OID_OIWDIR, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR_HASH OID_OIWDIR, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR_HASH_LENGTH (OID_OIWDIR_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR_SIGN OID_OIWDIR, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_OIWDIR_SIGN_LENGTH (OID_OIWDIR_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_X9CM OID_US, 206, 56
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_X9CM_MODULE OID_X9CM, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_X9CM_INSTRUCTION OID_X9CM, 2
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_X9CM_ATTR OID_X9CM, 3
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_X9CM_X9ALGORITHM OID_X9CM, 4
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define OID_X9CM_X9ALGORITHM_LENGTH ((OID_US_LENGTH) + 2 + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define INTEL 96, 134, 72, 1, 134, 248, 77
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define INTEL_LENGTH 7
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define INTEL_SEC_FORMATS INTEL_CDSASECURITY, 1
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define INTEL_SEC_FORMATS_LENGTH (INTEL_CDSASECURITY_LENGTH + 1)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define INTEL_SEC_ALGS INTEL_CDSASECURITY, 2, 5
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define INTEL_SEC_ALGS_LENGTH (INTEL_CDSASECURITY_LENGTH + 2)
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysextern const KMF_OID
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_AliasedEntryName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_AuthorityRevocationList,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_BusinessCategory,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CACertificate,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CertificateRevocationList,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ChallengePassword,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveFacsimileTelephoneNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveInternationalISDNNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveOrganizationName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveOrganizationalUnitName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectivePhysicalDeliveryOfficeName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectivePostOfficeBox,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectivePostalAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectivePostalCode,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveStateProvinceName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveStreetAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveTelephoneNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveTelexNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CollectiveTelexTerminalIdentifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CommonName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ContentType,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CounterSignature,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CountryName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CrossCertificatePair,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_DNQualifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Description,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_DestinationIndicator,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_DistinguishedName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_EmailAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_EnhancedSearchGuide,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ExtendedCertificateAttributes,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ExtensionRequest,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_FacsimileTelephoneNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_GenerationQualifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_GivenName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_HouseIdentifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Initials,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_InternationalISDNNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_KnowledgeInformation,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_LocalityName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Member,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_MessageDigest,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Name,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ObjectClass,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_OrganizationName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_OrganizationalUnitName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Owner,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PhysicalDeliveryOfficeName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PostOfficeBox,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PostalAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PostalCode,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PreferredDeliveryMethod,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PresentationAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ProtocolInformation,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_RFC822mailbox,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_RegisteredAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_RoleOccupant,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SearchGuide,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SeeAlso,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SerialNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SigningTime,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_StateProvinceName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_StreetAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SupportedApplicationContext,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Surname,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_TelephoneNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_TelexNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_TelexTerminalIdentifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_Title,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_UniqueIdentifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_UniqueMember,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_UnstructuredAddress,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_UnstructuredName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_UserCertificate,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_UserPassword,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_X_121Address,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_domainComponent,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_userid;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysextern const KMF_OID
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_AuthorityKeyID,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_AuthorityInfoAccess,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_VerisignCertificatePolicy,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_KeyUsageRestriction,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SubjectDirectoryAttributes,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SubjectKeyIdentifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_KeyUsage,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PrivateKeyUsagePeriod,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_SubjectAltName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_IssuerAltName,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_BasicConstraints,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CrlNumber,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CrlReason,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_HoldInstructionCode,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_InvalidityDate,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_DeltaCrlIndicator,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_IssuingDistributionPoints,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_NameConstraints,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CrlDistributionPoints,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_CertificatePolicies,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PolicyMappings,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PolicyConstraints,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_AuthorityKeyIdentifier,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_ExtendedKeyUsage,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PkixAdOcsp,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PkixAdCaIssuers,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_PQ_CPSuri,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_PQ_Unotice,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_ServerAuth,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_ClientAuth,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_CodeSigning,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_EmailProtection,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_IPSecEndSystem,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_IPSecTunnel,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_IPSecUser,
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllysKMFOID_PKIX_KP_TimeStamping,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_PKIX_KP_OCSPSigning,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_SHA1,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_RSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_DSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_MD5,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_MD5WithRSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_MD2WithRSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_SHA1WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA256WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA384WithRSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA512WithRSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_SHA1WithDSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_X9CM_DSA,
02744e811b15322c5f109827a116c33bfe3438b5wyllysKMFOID_X9CM_DSAWithSHA1;
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
d00756ccb34596a328f8a15d1965da5412d366d0wyllys/* For PKINIT support */
d00756ccb34596a328f8a15d1965da5412d366d0wyllysextern const KMF_OID
d00756ccb34596a328f8a15d1965da5412d366d0wyllysKMFOID_PKINIT_san,
d00756ccb34596a328f8a15d1965da5412d366d0wyllysKMFOID_PKINIT_ClientAuth,
d00756ccb34596a328f8a15d1965da5412d366d0wyllysKMFOID_PKINIT_Kdc,
d00756ccb34596a328f8a15d1965da5412d366d0wyllysKMFOID_MS_KP_SCLogon,
d00756ccb34596a328f8a15d1965da5412d366d0wyllysKMFOID_MS_KP_SCLogon_UPN;
d00756ccb34596a328f8a15d1965da5412d366d0wyllys
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll/* For ECC support */
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersollextern const KMF_OID
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_EC_PUBLIC_KEY,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA1WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA224WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA256WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA384WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA512WithECDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA224WithDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA256WithDSA,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA224,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA256,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA384,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_SHA512,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp112r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp112r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp128r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp128r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp160k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp160r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp160r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp192k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp224k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp224r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp256k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp384r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp521r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect113r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect113r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect131r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect131r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect163k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect163r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect163r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect193r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect193r2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect233k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect233r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect239k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect283k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect283r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect409k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect409r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect571k1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_sect571r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb163v1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb163v2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb163v3,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb176v1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb191v1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb191v2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb191v3,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb208w1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb239v1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb239v2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb239v3,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb272w1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb304w1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb359v1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2pnb368w1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_c2tnb431r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_prime192v2,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_prime192v3,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp192r1,
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys IngersollKMFOID_ECC_secp256r1;
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll/*
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll * ANSI X9-62 prime192v1 is same as secp192r1 and
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll * ANSI X9-62 prime256v1 is same as secp256r1
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll */
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll#define KMFOID_ANSIX962_prime192v1 KMFOID_ECC_secp192r1
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll#define KMFOID_ANSIX962_prime256v1 KMFOID_ECC_secp256r1
e65e5c2d2f32a99e8c5f740cabae9075dab03ce7Wyllys Ingersoll
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF Certificate validation codes. These may be masked together.
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_OK 0x00
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_TA 0x01
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_USER 0x02
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_SIGNATURE 0x04
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_KEYUSAGE 0x08
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_EXT_KEYUSAGE 0x10
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_TIME 0x20
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_CRL 0x40
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_OCSP 0x80
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_CERT_VALIDATE_ERR_ISSUER 0x100
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF Key Usage bitmasks
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_digitalSignature 0x8000
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_nonRepudiation 0x4000
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_keyEncipherment 0x2000
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_dataEncipherment 0x1000
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_keyAgreement 0x0800
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_keyCertSign 0x0400
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_cRLSign 0x0200
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_encipherOnly 0x0100
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_decipherOnly 0x0080
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_KUBITMASK 0xFF80
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys/*
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys * KMF Extended KeyUsage OID definitions
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys */
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_EKU_SERVERAUTH 0x01
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_EKU_CLIENTAUTH 0x02
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_EKU_CODESIGNING 0x04
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_EKU_EMAIL 0x08
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_EKU_TIMESTAMP 0x10
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#define KMF_EKU_OCSPSIGNING 0x20
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#ifdef __cplusplus
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys}
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#endif
99ebb4ca412cb0a19d77a3899a87c055b9c30fa8wyllys#endif /* _KMFTYPES_H */