1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1996.
//
// 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__
#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
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 );
//
// 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
|