cssmtype.h
来自「Next BIOS Source code : Extensible Firmw」· C头文件 代码 · 共 1,558 行 · 第 1/5 页
H
1,558 行
/* SCCSID: inc/cssmtype.h, dss_cdsa_fwk, fwk_rel1a, dss_cdsa_970916 1.28 9/16/97 16:30:38 */
/*-----------------------------------------------------------------------
* File: CSSMTYPE.H
*
*
* (C) COPYRIGHT International Business Machines Corp. 1996, 1997
* All Rights Reserved
* Licensed Materials - Property of IBM
*
Copyright (c) 1999 - 2002 Intel Corporation. All rights reserved
This software and associated documentation (if any) is furnished
under a license and may only be used or copied in accordance
with the terms of the license. Except as permitted by such
license, no part of this software or documentation may be
reproduced, stored in a retrieval system, or transmitted in any
form or by any means without the express written consent of
Intel Corporation.
*
* US Government Users Restricted Rights - Use, duplication or
* disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
*
*-----------------------------------------------------------------------
*/
/*
* WARNING: EXPORT RESTRICTED.
* This software is subject to the U.S. Export Administration Regulations
* and other U.S. law, and may not be exported or re-exported to certain
* countries (currently Afghanistan (Taliban-controlled areas), Cuba, Iran,
* Iraq, Libya, North Korea, Serbia (except Kosovo), Sudan and Syria) or to
* persons or entities prohibited from receiving U.S. exports (including Denied
* Parties, Specially Designated Nationals, and entities on the Bureau of
* Export Administration Entity List or involved with missile technology or
* nuclear, chemical or biological weapons).
*/
#ifndef _CSSMTYPE_H
#define _CSSMTYPE_H
#include "cssmdefs.h"
/* Operating System Dependent Primitive Declarations */
#ifndef CSSMAPI
#if defined (WIN32)
#define CSSMAPI __stdcall
#elif defined (WIN31)
#ifndef PASCAL
#define PASCAL __stdcall
#endif
#define CSSMAPI PASCAL
#elif defined (UNIX)
#define CSSMAPI
#elif defined (OASIS)
#define CSSMAPI
#endif
#endif
#if defined (UNIX)
#define CALLBACK
#endif
#ifdef EFI64
typedef unsigned __int8 uint8;
typedef unsigned __int16 uint16;
typedef __int16 sint16;
typedef unsigned __int32 uint32;
typedef __int32 sint32;
#else
/* Basic Types */
typedef unsigned char uint8;
typedef unsigned short uint16;
typedef short sint16;
typedef unsigned int uint32;
typedef int sint32;
#endif
#ifndef NULL
#define NULL ((void *)0)
#endif
#if defined (WIN32)
#pragma warning (disable:4201 4514 4214 4115)
#include <windows.h>
#pragma warning (default:4201 4214 4115)
/* Thread types */
#define CSSM_THREAD __declspec(thread);
#endif /* defined(WIN32) */
#if defined (OASIS)
#define CSSM_MAX_PATH 260
#else
#define CSSM_MAX_PATH _MAX_PATH
#endif
typedef void * CSSM_HANDLE;
typedef CSSM_HANDLE * CSSM_HANDLE_PTR;
typedef void * CSSM_VL_HANDLE; /* Verification Library Handle */
typedef void * CSSM_VO_HANDLE; /* Verifiable Object Handle */
typedef void * CSSM_TP_HANDLE; /* Trust Policy Handle */
typedef void * CSSM_CL_HANDLE; /* Certificate Library Handle */
typedef void * CSSM_DL_HANDLE; /* Database Library Handle */
typedef void * CSSM_DB_HANDLE; /* Database Handle */
typedef void * CSSM_CC_HANDLE; /* Cryptographic Context Handle */
typedef void * CSSM_CSP_HANDLE; /* Cryptographic Service Provider Handle */
typedef void * CSSM_MODULE_HANDLE; /* Service provider
Handle*/
typedef CSSM_MODULE_HANDLE * CSSM_MODULE_HANDLE_PTR;
#define CSSM_INVALID_HANDLE (0)
typedef uint32 CSSM_TP_ACTION;
typedef enum cssm_tp_stop_on {
CSSM_TP_STOP_ON_POLICY = 0,
CSSM_TP_STOP_ON_NONE = 1,
CSSM_TP_STOP_ON_FIRST_PASS = 2,
CSSM_TP_STOP_ON_FIRST_FAIL = 3
} CSSM_TP_STOP_ON;
typedef uint32 CSSM_EVENT_TYPE, *CSSM_EVENT_TYPE_PTR;
#define CSSM_EVENT_ATTACH (0)
#define CSSM_EVENT_DETACH (1)
#define CSSM_EVENT_INFOATTACH (2)
#define CSSM_EVENT_INFODETACH (3)
#define CSSM_EVENT_CREATE_CONTEXT (4)
#define CSSM_EVENT_DELETE_CONTEXT (5)
typedef uint32 CSSM_KEY_TYPE, *CSSM_KEY_TYPE_PTR;
typedef uint32 CSSM_BOOL;
#define CSSM_TRUE 1
#define CSSM_FALSE 0
typedef enum cssm_return {
CSSM_OK = 0,
CSSM_FAIL = -1
} CSSM_RETURN;
typedef struct cssm_guid {
uint32 Data1;
uint16 Data2;
uint16 Data3;
uint8 Data4[8];
} CSSM_GUID, *CSSM_GUID_PTR;
typedef struct cssm_error {
uint32 error;
CSSM_GUID guid;
} CSSM_ERROR, *CSSM_ERROR_PTR;
/*
CSSM_VERSION
*/
typedef struct cssm_version {
uint32 Major;
uint32 Minor;
} CSSM_VERSION, *CSSM_VERSION_PTR;
/*
* This structure uniquely identifies a set of behaviors within a subservice
* within a CSSM add-in module.
*/
typedef struct cssm_subservice_uid {
CSSM_GUID Guid;
CSSM_VERSION Version;
uint32 SubserviceId;
uint32 SubserviceFlags;
} CSSM_SUBSERVICE_UID, *CSSM_SUBSERVICE_UID_PTR;
typedef CSSM_RETURN (CSSMAPI *CSSM_NOTIFY_CALLBACK) (
CSSM_MODULE_HANDLE ModuleHandle,
uint32 Application,
uint32 Reason,
void * Param);
typedef enum cssm_revoke_reason {
CSSM_REVOKE_CUSTOM = 0,
CSSM_REVOKE_UNSPECIFIC = 1,
CSSM_REVOKE_KEYCOMPROMISE = 2,
CSSM_REVOKE_CACOMPROMISE = 3,
CSSM_REVOKE_AFFILIATIONCHANGED = 4,
CSSM_REVOKE_SUPERSEDED = 5,
CSSM_REVOKE_CESSATIONOFOPERATION = 6,
CSSM_REVOKE_CERTIFICATEHOLD = 7,
CSSM_REVOKE_CERTIFICATEHOLDRELEASE = 8,
CSSM_REVOKE_REMOVEFROMCRL = 9
} CSSM_REVOKE_REASON;
typedef struct cssm_data {
uint32 Length; /* in bytes */
uint8 *Data;
} CSSM_DATA, *CSSM_DATA_PTR;
#define CSSM_MODULE_STRING_SIZE 64
typedef char CSSM_STRING [CSSM_MODULE_STRING_SIZE + 4];
/* Multi service modules */
typedef uint32 CSSM_SERVICE_MASK;
typedef CSSM_SERVICE_MASK CSSM_SERVICE_TYPE;
#define CSSM_SERVICE_CSSM 0x1
#define CSSM_SERVICE_CSP 0x2
#define CSSM_SERVICE_DL 0x4
#define CSSM_SERVICE_CL 0x8
#define CSSM_SERVICE_TP 0x10
#define CSSM_SERVICE_VL 0x40
#define CSSM_SERVICE_LAST CSSM_SERVICE_VL
#define CSSM_DB_DATASTORES_UNKNOWN (0xFFFFFFFF)
#define CSSM_ALL_SUBSERVICES (0xFFFFFFFF)
/* indicates level of information disclosure by GetModuleInfo func */
typedef enum cssm_info_level {
CSSM_INFO_LEVEL_MIN = -1,
CSSM_INFO_LEVEL_MODULE = 0,
/* values from XXinfo struct */
CSSM_INFO_LEVEL_SUBSERVICE = 1,
/* values from XXinfo and XXsubservice struct */
CSSM_INFO_LEVEL_STATIC_ATTR = 2,
/* values from XXinfo and XXsubservice and
all static-valued attributes of a subservice */
CSSM_INFO_LEVEL_ALL_ATTR = 3,
/* values from XXinfo and XXsubservice and
all attributes, static and dynamic,
of a subservice */
CSSM_INFO_LEVEL_MAX
} CSSM_INFO_LEVEL;
/*
* This bitmask represents the exemptions requested by the calling application
* process or thread. Exemptions are defined corresponding to built-in checks
* performed by CSSM and the CSSM Module Managers.
*/
typedef uint32 CSSM_EXEMPTION_MASK;
#define CSSM_EXEMPT_NONE 0x00000001
#define CSSM_EXEMPT_MULTI_ENCRYPT_CHECK 0x00000002
#define CSSM_EXEMPT_ALL 0xFFFFFFFF
/* CSSM_USER_AUTHENTICATION_MECHANISM */
typedef enum cssm_user_authentication_mechanism {
CSSM_AUTHENTICATION_NONE = 0,
CSSM_AUTHENTICATION_CUSTOM = 1,
CSSM_AUTHENTICATION_PASSWORD = 2,
CSSM_AUTHENTICATION_USERID_AND_PASSWORD = 3,
CSSM_AUTHENTICATION_CERTIFICATE_AND_PASSPHRASE = 4,
CSSM_AUTHENTICATION_LOGIN_AND_WRAP = 5
} CSSM_USER_AUTHENTICATION_MECHANISM;
typedef CSSM_DATA_PTR (CSSMAPI *CSSM_CALLBACK) (void *allocRef, uint32 ID);
typedef struct cssm_crypto_data {
CSSM_DATA_PTR Param;
CSSM_CALLBACK Callback;
uint32 CallbackID;
} CSSM_CRYPTO_DATA, *CSSM_CRYPTO_DATA_PTR;
/* CSSM_USER_AUTHENTICATION */
typedef struct cssm_user_authentication {
CSSM_DATA_PTR Credential; /* a cert, a shared secret, other */
CSSM_CRYPTO_DATA_PTR MoreAuthenticationData;
} CSSM_USER_AUTHENTICATION, *CSSM_USER_AUTHENTICATION_PTR;
typedef CSSM_DATA CSSM_OID, *CSSM_OID_PTR;
/*
* Structure to encapsulate the name and GUID of an add-in module.
*/
typedef struct cssm_list_item {
CSSM_SUBSERVICE_UID SubserviceUid;
char *Name;
} CSSM_LIST_ITEM, *CSSM_LIST_ITEM_PTR;
typedef struct cssm_list {
uint32 NumberItems;
CSSM_LIST_ITEM_PTR Items;
} CSSM_LIST, *CSSM_LIST_PTR;
typedef struct cssm_name_list {
uint32 NumStrings;
char** String;
} CSSM_NAME_LIST, *CSSM_NAME_LIST_PTR;
typedef enum cssm_cert_type {
CSSM_CERT_UNKNOWN = 0x00,
CSSM_CERT_X_509v1 = 0x01,
CSSM_CERT_X_509v2 = 0x02,
CSSM_CERT_X_509v3 = 0x03,
CSSM_CERT_PGP = 0x04,
CSSM_CERT_SPKI = 0x05,
CSSM_CERT_SDSIv1 = 0x06,
CSSM_CERT_Intel = 0x08,
CSSM_CERT_X509_ATTRIBUTE = 0x09, /* X.509 attribute cert */
CSSM_CERT_X9_ATTRIBUTE = 0x0A, /* X9 attribute cert */
CSSM_CERT_LAST = 0x7FFF
} CSSM_CERT_TYPE, *CSSM_CERT_TYPE_PTR;
/* Applications wishing to define their own custom certificate
* type should create a random uint32 whose value is greater than
* the CSSM_CL_CUSTOM_CERT_TYPE */
#define CSSM_CL_CUSTOM_CERT_TYPE 0x08000
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?