windows-nt/Source/XPSP1/NT/ds/security/protocols/schannel/inc/cert.h
2020-09-26 16:20:57 +08:00

102 lines
2.2 KiB
C

//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1995.
//
// File: cert.h
//
// Contents:
//
// Classes:
//
// Functions:
//
// History: 09-23-97 jbanes Ported over SGC stuff from NT 4 tree.
// 01-05-98 jbanes Use WinVerifyTrust to validate certs.
//
//----------------------------------------------------------------------------
#define SERIALNUMBER_LENGTH 16
DWORD
MapOidToKeyExch(LPSTR szOid);
DWORD
MapOidToCertType(LPSTR szOid);
SP_STATUS
SPLoadCertificate(
DWORD fProtocol,
DWORD dwCertEncodingType,
PUCHAR pCertificate,
DWORD cbCertificate,
PCCERT_CONTEXT *ppCertContext);
SP_STATUS
MapWinTrustError(
DWORD Status,
DWORD DefaultError,
DWORD dwIgnoreErrors);
NTSTATUS
VerifyClientCertificate(
PCCERT_CONTEXT pCertContext,
DWORD dwCertFlags,
DWORD dwIgnoreErrors,
LPCSTR pszPolicyOID,
PCCERT_CHAIN_CONTEXT *ppChainContext); // optional
NTSTATUS
AutoVerifyServerCertificate(
PSPContext pContext);
NTSTATUS
VerifyServerCertificate(
PSPContext pContext,
DWORD dwCertFlags,
DWORD dwIgnoreErrors);
SECURITY_STATUS
SPCheckKeyUsage(
PCCERT_CONTEXT pCertContext,
PSTR pszUsage,
BOOL fOnCertOnly,
PBOOL pfIsAllowed);
SP_STATUS
SPPublicKeyFromCert(
PCCERT_CONTEXT pCert,
PUBLICKEY ** ppKey,
ExchSpec * pdwExchSpec);
SP_STATUS
RsaPublicKeyFromCert(
PCERT_PUBLIC_KEY_INFO pPublicKeyInfo,
BLOBHEADER *pBlob,
PDWORD pcbBlob);
SP_STATUS
DssPublicKeyFromCert(
PCERT_PUBLIC_KEY_INFO pPublicKeyInfo,
BLOBHEADER *pBlob,
PDWORD pcbBlob);
SP_STATUS
SPSerializeCertificate(
DWORD dwProtocol, // in
BOOL fBuildChain, // in
PBYTE * ppCertChain, // out
DWORD * pcbCertChain, // out
PCCERT_CONTEXT pCertContext, // in
DWORD dwChainingFlags); // in
SP_STATUS
ExtractIssuerNamesFromStore(
HCERTSTORE hStore,
PBYTE pbIssuers,
DWORD *pcbIssuers);