windows-nt/Source/XPSP1/NT/ds/security/protocols/schannel/inc/spdefs.h

111 lines
3.3 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: spdefs.h
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 10-23-97 jbanes Added hash lengths.
//
//----------------------------------------------------------------------------
#define CALG_NULLCIPHER (ALG_CLASS_DATA_ENCRYPT | ALG_TYPE_ANY | 0)
/* keyexchange algs */
#define SP_EXCH_RSA_PKCS1 0x0001
#define SP_EXCH_RSA_PKCS1_TOKEN_DES 0x0002
#define SP_EXCH_RSA_PKCS1_TOKEN_DES3 0x0003
#define SP_EXCH_RSA_PKCS1_TOKEN_RC2 0x0004
#define SP_EXCH_RSA_PKCS1_TOKEN_RC4 0x0005
#define SP_EXCH_DH_PKCS3 0x0006
#define SP_EXCH_DH_PKCS3_TOKEN_DES 0x0007
#define SP_EXCH_DH_PKCS3_TOKEN_DES3 0x0008
#define SP_EXCH_FORTEZZA_TOKEN 0x0009
#define SP_EXCH_UNKNOWN 0xffff
/* certificate types */
#define PCT1_CERT_NONE 0x0000
#define PCT1_CERT_X509 0x0001
#define PCT1_CERT_PKCS7 0x0002
/* signature algorithms */
#define SP_SIG_NONE 0x0000
#define SP_SIG_RSA_MD5 0x0001
#define SP_SIG_RSA_SHA 0x0002
#define SP_SIG_DSA_SHA 0x0003
/* these are for internal use only */
#define SP_SIG_RSA_MD2 0x0004
#define SP_SIG_RSA 0x0005
#define SP_SIG_RSA_SHAMD5 0x0006
#define SP_SIG_FORTEZZA_TOKEN 0x0007
/* sizing of local structures */
#define SP_MAX_SESSION_ID 32
#define SP_MAX_MASTER_KEY 48
#define SP_MAX_MAC_KEY 48
#define SP_MAX_CACHE_ID 64
#define SP_MAX_CHALLENGE 32
#define SP_MAX_CONNECTION_ID 32
#define SP_MAX_KEY_ARGS 32
#define SP_MAX_BLOCKCIPHER_SIZE 16 // 16 bytes required for SSL3/Fortezza.
#define SP_MAX_DIGEST_LEN 32
#define SP_MAX_CREDS 20
#define SP_OFFSET_OF(t, v) (DWORD)&(((t)NULL)->v)
/* tuning constants */
#define SP_DEF_SERVER_CACHE_SIZE 100
#define SP_DEF_CLIENT_CACHE_SIZE 10
#define SP_MIN_PRIVATE_KEY_FILE_SIZE 80
typedef DWORD SP_STATUS;
#define CB_MD5_DIGEST_LEN 16
#define CB_SHA_DIGEST_LEN 20
#define SP_MAX_CAPI_ALGS 40
/* internal representations of algorithm specs */
typedef DWORD CipherSpec, *PCipherSpec;
typedef DWORD KeyExchangeSpec, *PKeyExchangeSpec;
typedef DWORD HashSpec, *PHashSpec;
typedef DWORD CertSpec, *PCertSpec;
typedef DWORD ExchSpec, *PExchSpec;
typedef DWORD SigSpec, *PSigSpec;
typedef struct _KeyTypeMap
{
ALG_ID aiKeyAlg; // CAPI2 Key type
DWORD Spec; // Protocol Specific Type
} KeyTypeMap, *PKeyTypeMap;
typedef struct _CertTypeMap
{
DWORD dwCertEncodingType; // CAPI2 Cert Encoding Type
DWORD Spec; // Protocol Specific Type
} CertTypeMap, *PCertTypeMap;
typedef struct _SPBuffer {
unsigned long cbBuffer; /* Size of the buffer, in bytes */
unsigned long cbData; /* size of the actual data in the
* buffer, in bytes */
void * pvBuffer; /* Pointer to the buffer */
} SPBuffer, * PSPBuffer;
#define SGC_KEY_SALT "SGCKEYSALT"