ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

chain.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "wincrypt.h"
#include "wininet.h"
#include "wine/debug.h"
#include "wine/unicode.h"
#include "crypt32_private.h"

Go to the source code of this file.

Data Structures

struct  PCertificateChainEngine
struct  CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT
struct  PCertificateChain
struct  PCERT_CHAIN_PARA_NO_EXTRA_FIELDS

Defines

#define NONAMELESSUNION
#define CERT_CHAIN_PARA_HAS_EXTRA_FIELDS
#define CERT_REVOCATION_PARA_HAS_EXTRA_FIELDS
#define DEFAULT_CYCLE_MODULUS   7
#define trace_usage_bit(bits, bit)   if ((bits) & (bit)) TRACE_(chain)("%s\n", #bit)
#define trace_cert_type_bit(bits, bit)   if ((bits) & (bit)) TRACE_(chain)("%s\n", #bit)
#define CHAIN_QUALITY_SIGNATURE_VALID   0x16
#define CHAIN_QUALITY_TIME_VALID   8
#define CHAIN_QUALITY_COMPLETE_CHAIN   4
#define CHAIN_QUALITY_BASIC_CONSTRAINTS   2
#define CHAIN_QUALITY_TRUSTED_ROOT   1
#define CHAIN_QUALITY_HIGHEST
#define IS_TRUST_ERROR_SET(TrustStatus, bits)   (TrustStatus)->dwErrorStatus & (bits)

Typedefs

typedef BOOL(WINAPICertVerifyCertificateChainPolicyFunc )(LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (crypt)
 WINE_DECLARE_DEBUG_CHANNEL (chain)
static void CRYPT_AddStoresToCollection (HCERTSTORE collection, DWORD cStores, HCERTSTORE *stores)
static void CRYPT_CloseStores (DWORD cStores, HCERTSTORE *stores)
static PCCERT_CONTEXT CRYPT_FindCertInStore (HCERTSTORE store, PCCERT_CONTEXT cert)
static BOOL CRYPT_CheckRestrictedRoot (HCERTSTORE store)
HCERTCHAINENGINE CRYPT_CreateChainEngine (HCERTSTORE root, PCERT_CHAIN_ENGINE_CONFIG pConfig)
BOOL WINAPI CertCreateCertificateChainEngine (PCERT_CHAIN_ENGINE_CONFIG pConfig, HCERTCHAINENGINE *phChainEngine)
VOID WINAPI CertFreeCertificateChainEngine (HCERTCHAINENGINE hChainEngine)
static HCERTCHAINENGINE CRYPT_GetDefaultChainEngine (void)
void default_chain_engine_free (void)
static BOOL CRYPT_IsCertificateSelfSigned (PCCERT_CONTEXT cert)
static void CRYPT_FreeChainElement (PCERT_CHAIN_ELEMENT element)
static void CRYPT_CheckSimpleChainForCycles (PCERT_SIMPLE_CHAIN chain)
static BOOL CRYPT_IsSimpleChainCyclic (const CERT_SIMPLE_CHAIN *chain)
static void CRYPT_CombineTrustStatus (CERT_TRUST_STATUS *chainStatus, const CERT_TRUST_STATUS *elementStatus)
static BOOL CRYPT_AddCertToSimpleChain (const CertificateChainEngine *engine, PCERT_SIMPLE_CHAIN chain, PCCERT_CONTEXT cert, DWORD subjectInfoStatus)
static void CRYPT_FreeSimpleChain (PCERT_SIMPLE_CHAIN chain)
static void CRYPT_CheckTrustedStatus (HCERTSTORE hRoot, PCERT_CHAIN_ELEMENT rootElement)
static void CRYPT_CheckRootCert (HCERTCHAINENGINE hRoot, PCERT_CHAIN_ELEMENT rootElement)
static BOOL CRYPT_DecodeBasicConstraints (PCCERT_CONTEXT cert, CERT_BASIC_CONSTRAINTS2_INFO *constraints, BOOL defaultIfNotSpecified)
static BOOL CRYPT_CheckBasicConstraintsForCA (PCertificateChainEngine engine, PCCERT_CONTEXT cert, CERT_BASIC_CONSTRAINTS2_INFO *chainConstraints, DWORD remainingCAs, BOOL isRoot, BOOL *pathLengthConstraintViolated)
static BOOL domain_name_matches (LPCWSTR constraint, LPCWSTR name)
static BOOL url_matches (LPCWSTR constraint, LPCWSTR name, DWORD *trustErrorStatus)
static BOOL rfc822_name_matches (LPCWSTR constraint, LPCWSTR name, DWORD *trustErrorStatus)
static BOOL dns_name_matches (LPCWSTR constraint, LPCWSTR name, DWORD *trustErrorStatus)
static BOOL ip_address_matches (const CRYPT_DATA_BLOB *constraint, const CRYPT_DATA_BLOB *name, DWORD *trustErrorStatus)
static BOOL directory_name_matches (const CERT_NAME_BLOB *constraint, const CERT_NAME_BLOB *name)
static BOOL alt_name_matches (const CERT_ALT_NAME_ENTRY *name, const CERT_ALT_NAME_ENTRY *constraint, DWORD *trustErrorStatus, BOOL *present)
static BOOL alt_name_matches_excluded_name (const CERT_ALT_NAME_ENTRY *name, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus)
static BOOL alt_name_matches_permitted_name (const CERT_ALT_NAME_ENTRY *name, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus, BOOL *present)
static PCERT_EXTENSION get_subject_alt_name_ext (const CERT_INFO *cert)
static void compare_alt_name_with_constraints (const CERT_EXTENSION *altNameExt, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus)
static BOOL rfc822_attr_matches_excluded_name (const CERT_RDN_ATTR *attr, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus)
static BOOL rfc822_attr_matches_permitted_name (const CERT_RDN_ATTR *attr, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus, BOOL *present)
static void compare_subject_with_email_constraints (const CERT_NAME_BLOB *subjectName, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus)
static BOOL CRYPT_IsEmptyName (const CERT_NAME_BLOB *name)
static void compare_subject_with_constraints (const CERT_NAME_BLOB *subjectName, const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, DWORD *trustErrorStatus)
static void CRYPT_CheckNameConstraints (const CERT_NAME_CONSTRAINTS_INFO *nameConstraints, const CERT_INFO *cert, DWORD *trustErrorStatus)
static CERT_NAME_CONSTRAINTS_INFOCRYPT_GetNameConstraints (CERT_INFO *cert)
static BOOL CRYPT_IsValidNameConstraint (const CERT_NAME_CONSTRAINTS_INFO *info)
static void CRYPT_CheckChainNameConstraints (PCERT_SIMPLE_CHAIN chain)
static CERT_POLICIES_INFOCRYPT_GetPolicies (PCCERT_CONTEXT cert)
static void CRYPT_CheckPolicies (const CERT_POLICIES_INFO *policies, CERT_INFO *cert, DWORD *errorStatus)
static void CRYPT_CheckChainPolicies (PCERT_SIMPLE_CHAIN chain)
static LPWSTR name_value_to_str (const CERT_NAME_BLOB *name)
static void dump_alt_name_entry (const CERT_ALT_NAME_ENTRY *entry)
static void dump_alt_name (LPCSTR type, const CERT_EXTENSION *ext)
static void dump_basic_constraints (const CERT_EXTENSION *ext)
static void dump_basic_constraints2 (const CERT_EXTENSION *ext)
static void dump_key_usage (const CERT_EXTENSION *ext)
static void dump_general_subtree (const CERT_GENERAL_SUBTREE *subtree)
static void dump_name_constraints (const CERT_EXTENSION *ext)
static void dump_cert_policies (const CERT_EXTENSION *ext)
static void dump_enhanced_key_usage (const CERT_EXTENSION *ext)
static void dump_netscape_cert_type (const CERT_EXTENSION *ext)
static void dump_extension (const CERT_EXTENSION *ext)
static LPCSTR filetime_to_str (const FILETIME *time)
static void dump_element (PCCERT_CONTEXT cert)
static BOOL CRYPT_KeyUsageValid (PCertificateChainEngine engine, PCCERT_CONTEXT cert, BOOL isRoot, BOOL isCA, DWORD index)
static BOOL CRYPT_CriticalExtensionsSupported (PCCERT_CONTEXT cert)
static BOOL CRYPT_IsCertVersionValid (PCCERT_CONTEXT cert)
static void CRYPT_CheckSimpleChain (PCertificateChainEngine engine, PCERT_SIMPLE_CHAIN chain, LPFILETIME time)
static PCCERT_CONTEXT CRYPT_GetIssuer (HCERTSTORE store, PCCERT_CONTEXT subject, PCCERT_CONTEXT prevIssuer, DWORD *infoStatus)
static BOOL CRYPT_BuildSimpleChain (const CertificateChainEngine *engine, HCERTSTORE world, PCERT_SIMPLE_CHAIN chain)
static LPCSTR debugstr_filetime (LPFILETIME pTime)
static BOOL CRYPT_GetSimpleChainForCert (PCertificateChainEngine engine, HCERTSTORE world, PCCERT_CONTEXT cert, LPFILETIME pTime, PCERT_SIMPLE_CHAIN *ppChain)
static BOOL CRYPT_BuildCandidateChainFromCert (HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT cert, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCertificateChain *ppChain)
static PCERT_SIMPLE_CHAIN CRYPT_CopySimpleChainToElement (const CERT_SIMPLE_CHAIN *chain, DWORD iElement)
static void CRYPT_FreeLowerQualityChains (PCertificateChain chain)
static void CRYPT_FreeChainContext (PCertificateChain chain)
static PCertificateChain CRYPT_CopyChainToElement (PCertificateChain chain, DWORD iChain, DWORD iElement)
static PCertificateChain CRYPT_BuildAlternateContextFromChain (HCERTCHAINENGINE hChainEngine, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCertificateChain chain)
static DWORD CRYPT_ChainQuality (const CertificateChain *chain)
static PCertificateChain CRYPT_ChooseHighestQualityChain (PCertificateChain chain)
static BOOL CRYPT_AddAlternateChainToChain (PCertificateChain chain, const CertificateChain *alternate)
static PCERT_CHAIN_ELEMENT CRYPT_FindIthElementInChain (const CERT_CHAIN_CONTEXT *chain, DWORD i)
static void CRYPT_VerifyChainRevocation (PCERT_CHAIN_CONTEXT chain, LPFILETIME pTime, HCERTSTORE hAdditionalStore, const CERT_CHAIN_PARA *pChainPara, DWORD chainFlags)
static void CRYPT_CheckUsages (PCERT_CHAIN_CONTEXT chain, const CERT_CHAIN_PARA *pChainPara)
static void dump_usage_match (LPCSTR name, const CERT_USAGE_MATCH *usageMatch)
static void dump_chain_para (const CERT_CHAIN_PARA *pChainPara)
BOOL WINAPI CertGetCertificateChain (HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
PCCERT_CHAIN_CONTEXT WINAPI CertDuplicateCertificateChain (PCCERT_CHAIN_CONTEXT pChainContext)
VOID WINAPI CertFreeCertificateChain (PCCERT_CHAIN_CONTEXT pChainContext)
PCCERT_CHAIN_CONTEXT WINAPI CertFindChainInStore (HCERTSTORE store, DWORD certEncodingType, DWORD findFlags, DWORD findType, const void *findPara, PCCERT_CHAIN_CONTEXT prevChainContext)
static void find_element_with_error (PCCERT_CHAIN_CONTEXT chain, DWORD error, LONG *iChain, LONG *iElement)
static BOOL WINAPI verify_base_policy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
static void dump_authenticode_extra_chain_policy_para (AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_PARA *extraPara)
static BOOL WINAPI verify_authenticode_policy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
static BOOL WINAPI verify_basic_constraints_policy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
static BOOL match_dns_to_subject_alt_name (const CERT_EXTENSION *ext, LPCWSTR server_name)
static BOOL find_matching_domain_component (const CERT_NAME_INFO *name, LPCWSTR component)
static BOOL match_domain_component (LPCWSTR allowed_component, DWORD allowed_len, LPCWSTR server_component, DWORD server_len, BOOL allow_wildcards, BOOL *see_wildcard)
static BOOL match_common_name (LPCWSTR server_name, const CERT_RDN_ATTR *nameAttr)
static BOOL match_dns_to_subject_dn (PCCERT_CONTEXT cert, LPCWSTR server_name)
static void dump_ssl_extra_chain_policy_para (HTTPSPolicyCallbackData *sslPara)
static BOOL WINAPI verify_ssl_policy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
static BOOL WINAPI verify_ms_root_policy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)
static void dump_policy_para (PCERT_CHAIN_POLICY_PARA para)
BOOL WINAPI CertVerifyCertificateChainPolicy (LPCSTR szPolicyOID, PCCERT_CHAIN_CONTEXT pChainContext, PCERT_CHAIN_POLICY_PARA pPolicyPara, PCERT_CHAIN_POLICY_STATUS pPolicyStatus)

Variables

static HCERTCHAINENGINE CRYPT_defaultChainEngine
static const WCHAR rootW [] = { 'R','o','o','t',0 }
static BYTE msTestPubKey1 []
static BYTE msTestPubKey2 []
static BYTE msPubKey1 []
static BYTE msPubKey2 []
static BYTE msPubKey3 []

Generated on Sat May 26 2012 05:06:28 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.