159 lines
3.0 KiB
C
159 lines
3.0 KiB
C
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1992-1999.
|
|
//
|
|
// File: sslsp.h
|
|
//
|
|
// Contents: Public Definitions for SCHANNEL Security Provider
|
|
//
|
|
// Classes:
|
|
//
|
|
// Functions:
|
|
//
|
|
// History
|
|
//
|
|
// 11 Jun 96 Merged SSL and PCT headers
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#ifndef __SSLSP_H__
|
|
#define __SSLSP_H__
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif
|
|
|
|
#define SSLSP_NAME_A "Microsoft SSL"
|
|
#define SSLSP_NAME_W L"Microsoft SSL"
|
|
|
|
#ifdef UNICODE
|
|
#define SSLSP_NAME SSLSP_NAME_W
|
|
#else
|
|
#define SSLSP_NAME SSLSP_NAME_A
|
|
#endif
|
|
|
|
#define SSLSP_RPC_ID 12
|
|
|
|
|
|
typedef struct _SSL_CREDENTIAL_CERTIFICATE {
|
|
DWORD cbPrivateKey;
|
|
PBYTE pPrivateKey;
|
|
DWORD cbCertificate;
|
|
PBYTE pCertificate;
|
|
PSTR pszPassword;
|
|
} SSL_CREDENTIAL_CERTIFICATE, * PSSL_CREDENTIAL_CERTIFICATE;
|
|
|
|
#define NETWORK_DREP 0x00000000
|
|
|
|
|
|
|
|
#ifndef __SCHN_CERTIFICATE_DEFINED
|
|
#define __SCHN_CERTIFICATE_DEFINED
|
|
|
|
typedef struct _X509Certificate {
|
|
DWORD Version;
|
|
DWORD SerialNumber[4];
|
|
ALG_ID SignatureAlgorithm;
|
|
FILETIME ValidFrom;
|
|
FILETIME ValidUntil;
|
|
PSTR pszIssuer;
|
|
PSTR pszSubject;
|
|
PVOID pPublicKey;
|
|
} X509Certificate, * PX509Certificate;
|
|
|
|
|
|
#endif
|
|
|
|
typedef struct _CtPublicPublicKey {
|
|
DWORD Type;
|
|
DWORD cbKey;
|
|
DWORD magic;
|
|
DWORD keylen;
|
|
DWORD bitlen;
|
|
} CtPublicPublicKey, * LPPUBLIC_KEY;
|
|
|
|
#define SERIALNUMBER_LENGTH 16
|
|
|
|
#define CF_VERIFY_SIG 1
|
|
#define CF_CERT_FROM_FILE 2
|
|
|
|
#define CERT_HEADER_LEN 17
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
BOOL
|
|
WINAPI
|
|
SslGenerateKeyPair(
|
|
PSSL_CREDENTIAL_CERTIFICATE pCerts,
|
|
PSTR pszDN,
|
|
PSTR pszPassword,
|
|
DWORD Bits );
|
|
|
|
|
|
VOID
|
|
WINAPI
|
|
SslGenerateRandomBits(
|
|
PUCHAR pRandomData,
|
|
LONG cRandomData
|
|
);
|
|
|
|
|
|
BOOL
|
|
WINAPI
|
|
SslLoadCertificate(
|
|
PUCHAR pbCertificate,
|
|
DWORD cbCertificate,
|
|
BOOL AddToWellKnownKeys);
|
|
|
|
BOOL
|
|
WINAPI
|
|
SslCrackCertificate(
|
|
PUCHAR pbCertificate,
|
|
DWORD cbCertificate,
|
|
DWORD dwFlags,
|
|
PX509Certificate * ppCertificate);
|
|
|
|
VOID
|
|
WINAPI
|
|
SslFreeCertificate(
|
|
PX509Certificate pCertificate);
|
|
|
|
DWORD
|
|
WINAPI
|
|
SslGetMaximumKeySize(
|
|
DWORD Reserved );
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
//
|
|
// PCT Provider Information
|
|
//
|
|
|
|
#define PCTSP_NAME_A "Microsoft PCT"
|
|
#define PCTSP_NAME_W L"Microsoft PCT"
|
|
|
|
#ifdef UNICODE
|
|
#define PCTSP_NAME PCTSP_NAME_W
|
|
#else
|
|
#define PCTSP_NAME PCTSP_NAME_A
|
|
#endif
|
|
|
|
#define PCTSP_RPC_ID 13
|
|
|
|
|
|
typedef struct _PCT_CREDENTIAL_CERTIFICATE {
|
|
DWORD cbPrivateKey;
|
|
PBYTE pPrivateKey;
|
|
DWORD cbCertificate;
|
|
PBYTE pCertificate;
|
|
PCHAR pszPassword;
|
|
} PCT_CREDENTIAL_CERTIFICATE, * PPCT_CREDENTIAL_CERTIFICATE;
|
|
|
|
#endif
|