📄 crypt.h
字号:
/****************************************************************************
* *
* cryptlib Internal General Header File *
* Copyright Peter Gutmann 1992-2005 *
* *
****************************************************************************/
#ifndef _CRYPT_DEFINED
#define _CRYPT_DEFINED
/* Various compilers handle includes in subdirectories differently. Most
will work with paths from a root directory. Non-OS X Macintoshes don't
recognise '/'s as path delimiters, but work around it by scanning all
subdirectories and treating the files as if they were in the same
directory (INC_ALL). Microsoft C, in a braindamaged exception to all
other compilers, treats the subdirectory as the root (INC_CHILD). The
Tandem NSK (Guardian) filesystem doesn't have subdirectories, and the C
compiler zaps '.'s, truncates filenames to 7 characters, and appends a
'h' to the name (so that asn1misc.h becomes asn1mish). This
unfortunately requires a bit of renaming for header files. Tandem OSS
(Unix services) on the other hand is just like Unix, so we explicitly
distinguish between the two.
There are also a few systems that have somewhat special requirements,
these get their own OS-specific include defines */
#if defined( SYMANTEC_C ) && !defined( INC_ALL )
#error You need to predefine INC_ALL in your project file
#elif defined( _MSC_VER ) && !defined( INC_CHILD )
#error You need to predefine INC_CHILD in your project/make file
#endif /* Checks for various compiler/OS-dependant include paths */
/* If we're on a new enough version of VC++ or Metrowerks, set a flag to
only include header files once */
#if ( defined( _MSC_VER ) && ( _MSC_VER >= 1000 ) ) || defined ( __MWERKS__ )
#pragma once
#endif /* VC++ 5.0 or higher, Metrowerks */
/* If we're building under Win32, don't haul in the huge amount of cruft
that windows.h brings with it. We need to define these values before
we include cryptlib.h since this is where windows.h is included */
#if ( defined( _WINDOWS ) || defined( WIN32 ) || defined( _WIN32 ) || \
defined( __WIN32__ ) ) && !defined( _SCCTK )
#define NOATOM /* Atom Manager routines */
#define NOMCX /* Modem Configuration Extensions */
/*#define NOCLIPBOARD // Clipboard routines, needed for randomness polling */
#define NOCOLOR /* Screen colors */
#define NOCOMM /* COMM driver routines */
#define NOCTLMGR /* Control and Dialog routines */
#define NODEFERWINDOWPOS /* DeferWindowPos routines */
#define NODRAWTEXT /* DrawText() and DT_* */
#define NOGDI /* All GDI defines and routines */
#define NOGDICAPMASKS /* CC_*, LC_*, PC_*, CP_*, TC_*, RC_ */
#define NOHELP /* Help engine interface */
#define NOICONS /* IDI_* */
#define NOKANJI /* Kanji support stuff */
#define NOKEYSTATES /* MK_* */
#define NOMB /* MB_* and MessageBox() */
#define NOMCX /* Modem Configuration Extensions */
#define NOMEMMGR /* GMEM_*, LMEM_*, GHND, LHND, etc */
#define NOMENUS /* MF_* */
#define NOMETAFILE /* typedef METAFILEPICT */
#define NOMSG /* typedef MSG and associated routines */
#define NONLS /* NLS routines */
#define NOPROFILER /* Profiler interface */
#define NORASTEROPS /* Binary and Tertiary raster ops */
#define NOSCROLL /* SB_* and scrolling routines */
#define NOSERVICE /* All Service Controller routines, SERVICE_* */
#define NOSHOWWINDOW /* SW_* */
#define NOSOUND /* Sound driver routines */
#define NOSYSCOMMANDS /* SC_* */
#define NOSYSMETRICS /* SM_* */
#define NOTEXTMETRIC /* typedef TEXTMETRIC and associated routines */
#define NOVIRTUALKEYCODES /* VK_* */
#define NOWH /* SetWindowsHook and WH_* */
#define NOWINMESSAGES /* WM_*, EM_*, LB_*, CB_* */
#define NOWINOFFSETS /* GWL_*, GCL_*, associated routines */
#define NOWINSTYLES /* WS_*, CS_*, ES_*, LBS_*, SBS_*, CBS_* */
#define OEMRESOURCE /* OEM Resource values */
#endif /* Win32 */
/* The Palm OS SDK compiler tries to make enums as small as possible (8-bit
unsigned chars if it can, otherwise 16-bit unsigned shorts, otherwise
ints) for backwards-compatibility with the old 68K-based Palm interface,
which causes severe problems for code that assumes that enum == int
(this occurs in a number of places where an integer parameter is used to
pass a generic value to/from a function). CodeWarrior allows this enum
behaviour to be turned off, but pacc doesn't.
Similarly, the MSDOS-derived (!!) Watcom C compiler used with older
versions of QNX 4.x uses 16-bit enums (DOS 16-bit ints) if possible, and
again there's no way to disable this behaviour (there is with newer
versions, the pragma to fix the problem is used further down).
To fix this, we take advantage of the fact that every typedef'd enum has
a _LAST member as the last entry and override it to include an additional
value that forces the enum range into the 32-bit int range */
#if ( defined( __PALMSOURCE__ ) && defined( _PACC_VER ) ) || \
( defined( __QNX__ ) && ( OSVERSION <= 4 ) )
#define NEED_ENUMFIX /* Remember to undo defines later */
/* cryptlib.h */
#define CRYPT_ALGO_LAST CRYPT_ALGO_LAST, CRYPT_ALGO_ENUM = -50000
#define CRYPT_MODE_LAST CRYPT_MODE_LAST, CRYPT_MODE_ENUM = -50000
#define CRYPT_KEYSET_LAST CRYPT_KEYSET_LAST, CRYPT_KEYSET_ENUM = -50000
#define CRYPT_DEVICE_LAST CRYPT_DEVICE_LAST, CRYPT_DEVICE_ENUM = -50000
#define CRYPT_CERTTYPE_LAST CRYPT_CERTTYPE_LAST, CRYPT_CERTTYPE_ENUM = -50000
#define CRYPT_FORMAT_LAST CRYPT_FORMAT_LAST, CRYPT_FORMAT_ENUM = -50000
#define CRYPT_SESSION_LAST CRYPT_SESSION_LAST, CRYPT_SESSION_ENUM = -50000
#define CRYPT_USER_LAST CRYPT_USER_LAST, CRYPT_USER_ENUM = -50000
#define CRYPT_IATTRIBUTE_LAST CRYPT_IATTRIBUTE_LAST, CRYPT_IATTRIBUTE_ENUM = -50000
#define CRYPT_CRLEXTREASON_LAST CRYPT_CRLEXTREASON_LAST, CRYPT_CRLEXTREASON_ENUM = -50000
#define CRYPT_CONTENT_LAST CRYPT_CONTENT_LAST, CRYPT_CONTENT_ENUM = -50000
#define CRYPT_SIGNATURELEVEL_LAST CRYPT_SIGNATURELEVEL_LAST, CRYPT_SIGNATURELEVEL_ENUM = -50000
#define CRYPT_CERTFORMAT_LAST CRYPT_CERTFORMAT_LAST
#define CRYPT_REQUESTTYPE_LAST CRYPT_REQUESTTYPE_LAST, CRYPT_REQUESTTYPE_ENUM = -50000
#define CRYPT_KEYID_LAST CRYPT_KEYID_LAST, CRYPT_KEYID_ENUM = -50000
#define CRYPT_OBJECT_LAST CRYPT_OBJECT_LAST, CRYPT_OBJECT_ENUM = -50000
#define CRYPT_ERRTYPE_LAST CRYPT_ERRTYPE_LAST, CRYPT_ERRTYPE_ENUM = -50000
#define CRYPT_CERTACTION_LAST CRYPT_CERTACTION_LAST, CRYPT_CERTACTION_ENUM = -50000
#define CRYPT_KEYOPT_LAST CRYPT_KEYOPT_LAST, CRYPT_KEYOPT_ENUM = -50000
/* crypt.h */
#define KEYFORMAT_LAST KEYFORMAT_LAST, KEYFORMAT_ENUM = -50000
#define CERTFORMAT_LAST CERTFORMAT_LAST, CERTFORMAT_ENUM = -50000
#define MANAGEMENT_ACTION_LAST MANAGEMENT_ACTION_LAST, MANAGEMENT_ACTION_ENUM = -50000
#define HASH_LAST HASH_LAST, HASH_ENUM = -50000
#define ATTR_LAST ATTR_LAST, ATTR_ENUM = -50000
/* cryptkrn.h */
#define MESSAGE_COMPARE_LAST MESSAGE_COMPARE_LAST, MESSAGE_COMPARE_ENUM = -50000
#define MESSAGE_CHECK_LAST MESSAGE_CHECK_LAST, MESSAGE_CHECK_ENUM = -50000
#define MESSAGE_CHANGENOTIFY_LAST MESSAGE_CHANGENOTIFY_LAST, MESSAGE_CHANGENOTIFY_ENUM = -50000
#define MECHANISM_LAST MECHANISM_LAST, MECHANISM_ENUM = -50000
#define KEYMGMT_ITEM_LAST KEYMGMT_ITEM_LAST, KEYMGMT_ITEM_ENUM = -50000
#define SEMAPHORE_LAST SEMAPHORE_LAST, SEMAPHORE_ENUM = -50000
#define MUTEX_LAST MUTEX_LAST, MUTEX_ENUM = -50000
/* cert/cert.h */
#define RTCSRESPONSE_TYPE_LAST RTCSRESPONSE_TYPE_LAST, RTCSRESPONSE_TYPE_ENUM = -50000
#define ATTRIBUTE_LAST ATTRIBUTE_LAST, ATTRIBUTE_ENUM = -50000
#define POLICY_LAST POLICY_LAST, POLICY_ENUM = -50000
#define SELECTION_OPTION_LAST SELECTION_OPTION_LAST, SELECTION_OPTION_ENUM = -50000
/* context/context.h */
#define CONTEXT_LAST CONTEXT_LAST, CONTEXT_ENUM = -50000
/* device/capabil.h */
#define CAPABILITY_INFO_LAST CAPABILITY_INFO_LAST, CAPABILITY_INFO_ENUM = -50000
/* envelope/envelope.h */
#define ACTION_LAST ACTION_LAST, ACTION_ENUM = -50000
#define ACTION_RESULT_LAST ACTION_RESULT_LAST, ACTION_RESULT_ENUM = -50000
#define STATE_LAST STATE_LAST, STATE_ENUM = -50000
#define ENVSTATE_LAST ENVSTATE_LAST, ENVSTATE_ENUM = -50000
#define DEENVSTATE_LAST DEENVSTATE_LAST, DEENVSTATE_ENUM = -50000
#define PGP_DEENVSTATE_LAST PGP_DEENVSTATE_LAST, PGP_DEENVSTATE_ENUM = -50000
#define SEGHDRSTATE_LAST SEGHDRSTATE_LAST, SEGHDRSTATE_ENUM = -50000
/* envelope/pgp.h */
#define PGP_ALGOCLASS_LAST PGP_ALGOCLASS_LAST, PGP_ALGOCLASS_ENUM = -50000
/* kernel/acl.h */
#define RANGEVAL_LAST RANGEVAL_LAST, RANGEVAL_ENUM = -50000
#define ATTRIBUTE_VALUE_LAST ATTRIBUTE_VALUE_LAST, ATTRIBUTE_VALUE_ENUM = -50000
#define PARAM_VALUE_LAST PARAM_VALUE_LAST, PARAM_VALUE_ENUM = -50000
/* kernel/kernel.h */
#define SEMAPHORE_STATE_LAST SEMAPHORE_STATE_LAST, SEMAPHORE_STATE_ENUM = -50000
/* keyset/dbms.h */
#define CERTADD_LAST CERTADD_LAST, CERTADD_ENUM = -50000
/* keyset/keyset.h */
#define KEYSET_SUBTYPE_LAST KEYSET_SUBTYPE_LAST, KEYSET_SUBTYPE_ENUM = -50000
#define DBMS_QUERY_LAST DBMS_QUERY_LAST, DBMS_QUERY_ENUM = -50000
#define DBMS_UPDATE_LAST DBMS_UPDATE_LAST, DBMS_UPDATE_ENUM = -50000
#define DBMS_CACHEDQUERY_LAST DBMS_CACHEDQUERY_LAST, DBMS_CACHEDQUERY_ENUM = -50000
/* keyset/pkcs15.h */
#define PKCS15_SUBTYPE_LAST PKCS15_SUBTYPE_LAST, PKCS15_SUBTYPE_ENUM = -50000
// #define PKCS15_OBJECT_LAST PKCS15_OBJECT_LAST, PKCS15_OBJECT_ENUM = -50000
#define PKCS15_KEYID_LAST PKCS15_KEYID_LAST, PKCS15_KEYID_ENUM = -50000
/* misc/ber.h */
#define BER_ID_LAST BER_ID_LAST, BER_ID_ENUM = -50000
/* misc/objinfo.h */
#define KEYEX_LAST KEYEX_LAST, KEYEX_ENUM = -50000
#define SIGNATURE_LAST SIGNATURE_LAST, SIGNATURE_ENUM = -50000
/* misc/rpc.h */
#define COMMAND_LAST COMMAND_LAST, COMMAND_ENUM = -50000
#define DBX_COMMAND_LAST DBX_COMMAND_LAST, DBX_COMMAND_ENUM = -50000
/* misc/stream.h */
#define STREAM_TYPE_LAST STREAM_TYPE_LAST, STREAM_TYPE_ENUM = -50000
#define BUILDPATH_LAST BUILDPATH_LAST, BUILDPATH_ENUM = -50000
#define STREAM_IOCTL_LAST STREAM_IOCTL_LAST, STREAM_IOCTL_ENUM = -50000
#define STREAM_PROTOCOL_LAST STREAM_PROTOCOL_LAST, STREAM_PROTOCOL_ENUM = -50000
#define URL_TYPE_LAST URL_TYPE_LAST, URL_TYPE_ENUM = -50000
#define NET_OPTION_LAST NET_OPTION_LAST, NET_OPTION_ENUM = -50000
/* session/cmp.h */
#define CMPBODY_LAST CMPBODY_LAST, CMPBODY_ENUM = -50000
/* session/session.h */
#define READINFO_LAST READINFO_LAST, READINFO_ENUM = -50000
/* session/ssh.h */
#define CHANNEL_LAST CHANNEL_LAST, CHANNEL_ENUM = -50000
#define MAC_LAST MAC_LAST, MAC_ENUM = -50000
#define SSH_ATRIBUTE_LAST SSH_ATRIBUTE_LAST, SSH_ATRIBUTE_ENUM = -50000
/* session/ssl.h */
#define SSL_LAST SSL_LAST, SSL_ENUM = -50000
#define TLS_EXT_LAST TLS_EXT_LAST, TLS_EXT_ENUM = -50000
#endif /* Palm SDK compiler enum fix */
/* If the global cryptlib header hasn't been included yet, include it now */
#ifndef _CRYPTLIB_DEFINED
#include "cryptlib.h"
#endif /* _CRYPTLIB_DEFINED */
/* Since some of the _LAST types are used in the code, we have to undefine
them again if they've been used in the enum-fix kludge */
#ifdef NEED_ENUMFIX
#undef CRYPT_ALGO_LAST
#undef CRYPT_MODE_LAST
#undef CRYPT_KEYSET_LAST
#undef CRYPT_DEVICE_LAST
#undef CRYPT_CERTTYPE_LAST
#undef CRYPT_FORMAT_LAST
#undef CRYPT_SESSION_LAST
#undef CRYPT_USER_LAST
#undef CRYPT_IATTRIBUTE_LAST
#undef CRYPT_CRLEXTREASON_LAST
#undef CRYPT_CONTENT_LAST
#undef CRYPT_SIGNATURELEVEL_LAST
#undef CRYPT_CERTFORMAT_LAST
#undef CRYPT_REQUESTTYPE_LAST
#undef CRYPT_KEYID_LAST
#undef CRYPT_OBJECT_LAST
#undef CRYPT_ERRTYPE_LAST
#undef CRYPT_CERTACTION_LAST
#undef CRYPT_KEYOPT_LAST
#endif /* NEED_ENUMFIX */
/****************************************************************************
* *
* System- and Compiler-Specific Defines *
* *
****************************************************************************/
/* Pull in the system and compiler-specific defines and values */
#if defined( INC_ALL )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -