ReactOS  0.4.13-dev-259-g5ca9c9c
chain.c File Reference
#include <stdio.h>
#include <stdarg.h>
#include <windef.h>
#include <winbase.h>
#include <winerror.h>
#include <wincrypt.h>
#include <wininet.h>
#include "wine/test.h"
Include dependency graph for chain.c:

Go to the source code of this file.

Classes

struct  _CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT
 
struct  _CONST_DATA_BLOB
 
struct  _CONST_BLOB_ARRAY
 
struct  _SimpleChainStatusCheck
 
struct  _ChainStatusCheck
 
struct  _ChainCheck
 
struct  _ChainPolicyCheck
 

Macros

#define IS_INTOID(x)   (((ULONG_PTR)(x) >> 16) == 0)
 
#define TODO_CHAIN   1
 
#define TODO_ERROR   2
 
#define TODO_INFO   4
 
#define TODO_ELEMENTS   8
 
#define TODO_CHAINS   16
 
#define TODO_POLICY   32
 
#define test_name_blob(a, b)   _test_name_blob(__LINE__,a,b)
 
#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para)
 
#define CHECK_CHAIN_POLICY_STATUS(policy, engine, policyCheck, date, para)
 

Typedefs

typedef struct _CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT
 
typedef struct _CONST_DATA_BLOB CONST_DATA_BLOB
 
typedef struct _CONST_BLOB_ARRAY CONST_BLOB_ARRAY
 
typedef struct _SimpleChainStatusCheck SimpleChainStatusCheck
 
typedef struct _ChainStatusCheck ChainStatusCheck
 
typedef struct _ChainCheck ChainCheck
 
typedef struct _ChainPolicyCheck ChainPolicyCheck
 

Functions

static BOOL (WINAPI *pCertCreateCertificateChainEngine)(PCERT_CHAIN_ENGINE_CONFIG
 
static HCERTCHAINENGINE *static PCCERT_CHAIN_CONTEXT *static VOID (WINAPI *pCertFreeCertificateChain)(PCCERT_CHAIN_CONTEXT)
 
static void testCreateCertChainEngine (void)
 
static PCCERT_CHAIN_CONTEXT getChain (HCERTCHAINENGINE engine, const CONST_BLOB_ARRAY *certArray, DWORD flags, BOOL includeStore, LPSYSTEMTIME checkTime, DWORD todo, DWORD testIndex)
 
static void checkElementStatus (const CERT_TRUST_STATUS *expected, const CERT_TRUST_STATUS *got, const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex, DWORD elementIndex)
 
static void checkSimpleChainStatus (const CERT_SIMPLE_CHAIN *simpleChain, const SimpleChainStatusCheck *simpleChainStatus, const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex)
 
static void checkChainStatus (PCCERT_CHAIN_CONTEXT chain, const ChainStatusCheck *chainStatus, DWORD todo, LPCSTR testName, DWORD testIndex)
 
static void _test_name_blob (unsigned line, CERT_NAME_BLOB *blob, const char *exdata)
 
static void testGetCertChain (void)
 
static void test_CERT_CHAIN_PARA_cbSize (void)
 
static const charnum_to_str (WORD num)
 
static void checkChainPolicyStatus (LPCSTR policy, HCERTCHAINENGINE engine, const ChainPolicyCheck *check, LPCSTR testName, DWORD testIndex, SYSTEMTIME *sysTime, PCERT_CHAIN_POLICY_PARA para)
 
static void check_base_policy (void)
 
static void check_authenticode_policy (void)
 
static void check_ssl_policy (void)
 
static void testVerifyCertChainPolicy (void)
 
 START_TEST (chain)
 

Variables

static const BYTE selfSignedCert []
 
static HCERTCHAINENGINE *static PCCERT_CONTEXT
 
static HCERTCHAINENGINE *static LPFILETIME
 
static HCERTCHAINENGINE *static HCERTSTORE
 
static HCERTCHAINENGINE *static PCERT_CHAIN_PARA
 
static HCERTCHAINENGINE *static DWORD
 
static HCERTCHAINENGINE *static LPVOID
 
static PCCERT_CHAIN_CONTEXT
 
static PCERT_CHAIN_POLICY_PARA
 
static PCERT_CHAIN_POLICY_STATUS
 
static const BYTE bigCert []
 
static const BYTE geotrust_global_ca []
 
static const BYTE google_internet_authority []
 
static const BYTE google_com []
 
static const BYTE winehq_org []
 
static const BYTE battlenet []
 
static const BYTE thawte_primary_ca []
 
static const BYTE thawte_ssl_ca []
 
static const BYTE global_sign_root []
 
static const BYTE global_sign_ca []
 
static const BYTE openssl_org []
 
static const BYTE usertrust_ca []
 
static const BYTE incommon_rsa_ca []
 
static const BYTE cs_stanford_edu []
 
static const BYTE chain0_0 []
 
static const BYTE chain0_1 []
 
static const BYTE chain1_1 []
 
static const BYTE chain2_0 []
 
static const BYTE chain3_0 []
 
static const BYTE chain4_0 []
 
static const BYTE chain4_1 []
 
static const BYTE chain4_2 []
 
static const BYTE chain5_0 []
 
static const BYTE chain5_1 []
 
static const BYTE chain7_1 []
 
static const BYTE chain8_0 []
 
static const BYTE chain8_1 []
 
static const BYTE chain8_2 []
 
static const BYTE chain9_0 []
 
static const BYTE chain10_1 []
 
static const BYTE chain11_1 []
 
static const BYTE chain12_0 []
 
static const BYTE chain13_1 []
 
static const BYTE chain14_0 []
 
static const BYTE chain14_1 []
 
static const BYTE chain15_0 []
 
static const BYTE chain16_1 []
 
static const BYTE chain17_1 []
 
static const BYTE chain17_2 []
 
static const BYTE chain18_1 []
 
static const BYTE chain18_2 []
 
static const BYTE chain19_0 []
 
static const BYTE chain19_1 []
 
static const BYTE chain20_0 []
 
static const BYTE chain20_1 []
 
static const BYTE chain21_0 []
 
static const BYTE chain21_1 []
 
static const BYTE chain22_0 []
 
static const BYTE chain22_1 []
 
static const BYTE chain23_0 []
 
static const BYTE chain23_1 []
 
static const BYTE chain24_0 []
 
static const BYTE chain24_1 []
 
static const BYTE chain25_0 []
 
static const BYTE chain25_1 []
 
static const BYTE chain26_0 []
 
static const BYTE chain26_1 []
 
static const BYTE chain27_0 []
 
static const BYTE chain27_1 []
 
static const BYTE chain28_0 []
 
static const BYTE chain28_1 []
 
static const BYTE chain29_1 []
 
static const BYTE chain30_1 []
 
static const BYTE chain30_2 []
 
static const BYTE chain31_1 []
 
static SYSTEMTIME oct2007 = { 2007, 10, 1, 1, 0, 0, 0, 0 }
 
static SYSTEMTIME oct2009 = { 2009, 10, 3, 28, 0, 0, 0, 0 }
 
static SYSTEMTIME oct2010 = { 2010, 10, 3, 28, 0, 0, 0, 0 }
 
static SYSTEMTIME jun2013 = { 2013, 6, 5, 6, 0, 0, 0, 0 }
 
static SYSTEMTIME oct2016 = { 2016, 10, 6, 1, 0, 0, 0, 0 }
 
static SYSTEMTIME nov2016 = { 2016, 11, 3, 17, 0, 0, 0, 0 }
 
static CONST_DATA_BLOB chain0 []
 
static const CERT_TRUST_STATUS elementStatus0 []
 
static const SimpleChainStatusCheck simpleStatus0 []
 
static CONST_DATA_BLOB chain1 []
 
static const CERT_TRUST_STATUS elementStatus1 []
 
static const SimpleChainStatusCheck simpleStatus1 []
 
static CONST_DATA_BLOB chain2 []
 
static const CERT_TRUST_STATUS elementStatus2 []
 
static const SimpleChainStatusCheck simpleStatus2 []
 
static CONST_DATA_BLOB chain3 []
 
static const CERT_TRUST_STATUS elementStatus3 []
 
static const SimpleChainStatusCheck simpleStatus3 []
 
static CONST_DATA_BLOB chain4 []
 
static const CERT_TRUST_STATUS elementStatus4 []
 
static const SimpleChainStatusCheck simpleStatus4 []
 
static CONST_DATA_BLOB chain5 []
 
static const CERT_TRUST_STATUS elementStatus5 []
 
static const SimpleChainStatusCheck simpleStatus5 []
 
static CONST_DATA_BLOB chain6 []
 
static const CERT_TRUST_STATUS elementStatus6 []
 
static const SimpleChainStatusCheck simpleStatus6 []
 
static CONST_DATA_BLOB chain7 []
 
static const CERT_TRUST_STATUS elementStatus7 []
 
static const SimpleChainStatusCheck simpleStatus7 []
 
static CONST_DATA_BLOB chain8 []
 
static const CERT_TRUST_STATUS elementStatus8 []
 
static const SimpleChainStatusCheck simpleStatus8 []
 
static CONST_DATA_BLOB chain9 []
 
static const CERT_TRUST_STATUS elementStatus9 []
 
static const SimpleChainStatusCheck simpleStatus9 []
 
static CONST_DATA_BLOB chain10 []
 
static const CERT_TRUST_STATUS elementStatus10 []
 
static const SimpleChainStatusCheck simpleStatus10 []
 
static CONST_DATA_BLOB chain11 []
 
static CONST_DATA_BLOB chain12 []
 
static const CERT_TRUST_STATUS elementStatus12 []
 
static const SimpleChainStatusCheck simpleStatus12 []
 
static CONST_DATA_BLOB chain13 []
 
static const CERT_TRUST_STATUS elementStatus13 []
 
static const SimpleChainStatusCheck simpleStatus13 []
 
static CONST_DATA_BLOB chain14 []
 
static const CERT_TRUST_STATUS elementStatus14 []
 
static const SimpleChainStatusCheck simpleStatus14 []
 
static CONST_DATA_BLOB chain15 []
 
static const CERT_TRUST_STATUS elementStatus15 []
 
static const SimpleChainStatusCheck simpleStatus15 []
 
static CONST_DATA_BLOB chain16 []
 
static const CERT_TRUST_STATUS elementStatus16 []
 
static const SimpleChainStatusCheck simpleStatus16 []
 
static CONST_DATA_BLOB chain17 []
 
static const CERT_TRUST_STATUS elementStatus17 []
 
static const SimpleChainStatusCheck simpleStatus17 []
 
static CONST_DATA_BLOB chain18 []
 
static const CERT_TRUST_STATUS elementStatus18 []
 
static const SimpleChainStatusCheck simpleStatus18 []
 
static CONST_DATA_BLOB chain19 []
 
static const CERT_TRUST_STATUS elementStatus19 []
 
static const SimpleChainStatusCheck simpleStatus19 []
 
static CONST_DATA_BLOB chain20 []
 
static const CERT_TRUST_STATUS elementStatus20 []
 
static const SimpleChainStatusCheck simpleStatus20 []
 
static CONST_DATA_BLOB chain21 []
 
static const CERT_TRUST_STATUS elementStatus21 []
 
static const SimpleChainStatusCheck simpleStatus21 []
 
static CONST_DATA_BLOB chain22 []
 
static const CERT_TRUST_STATUS elementStatus22 []
 
static const SimpleChainStatusCheck simpleStatus22 []
 
static CONST_DATA_BLOB chain23 []
 
static const CERT_TRUST_STATUS elementStatus23 []
 
static const SimpleChainStatusCheck simpleStatus23 []
 
static CONST_DATA_BLOB chain24 []
 
static const CERT_TRUST_STATUS elementStatus24 []
 
static const SimpleChainStatusCheck simpleStatus24 []
 
static CONST_DATA_BLOB chain25 []
 
static const CERT_TRUST_STATUS elementStatus25 []
 
static const SimpleChainStatusCheck simpleStatus25 []
 
static CONST_DATA_BLOB chain26 []
 
static const CERT_TRUST_STATUS elementStatus26 []
 
static const SimpleChainStatusCheck simpleStatus26 []
 
static CONST_DATA_BLOB chain27 []
 
static const CERT_TRUST_STATUS elementStatus27 []
 
static const SimpleChainStatusCheck simpleStatus27 []
 
static const CERT_TRUST_STATUS elementStatus27Broken []
 
static const SimpleChainStatusCheck simpleStatus27Broken []
 
static CONST_DATA_BLOB chain28 []
 
static const CERT_TRUST_STATUS elementStatus28 []
 
static const SimpleChainStatusCheck simpleStatus28 []
 
static CONST_DATA_BLOB chain29 []
 
static CONST_DATA_BLOB chain30 []
 
static const CERT_TRUST_STATUS elementStatus30 []
 
static const SimpleChainStatusCheck simpleStatus30 []
 
static CONST_DATA_BLOB chain31 []
 
static CONST_DATA_BLOB selfSignedChain []
 
static const CERT_TRUST_STATUS selfSignedElementStatus []
 
static const SimpleChainStatusCheck selfSignedSimpleStatus []
 
static CONST_DATA_BLOB googleChain []
 
static const CERT_TRUST_STATUS googleElementStatus []
 
static const SimpleChainStatusCheck googleSimpleStatus []
 
static CONST_DATA_BLOB battlenetChain []
 
static CONST_DATA_BLOB opensslChain []
 
static const CERT_TRUST_STATUS opensslElementStatus []
 
static const SimpleChainStatusCheck opensslSimpleStatus []
 
static CONST_DATA_BLOB incompleteOpensslChain []
 
static const CERT_TRUST_STATUS incompleteOpensslElementStatus []
 
static const SimpleChainStatusCheck incompleteOpensslSimpleStatus []
 
static CONST_DATA_BLOB stanfordChain []
 
static const CERT_TRUST_STATUS stanfordElementStatus []
 
static const SimpleChainStatusCheck stanfordSimpleStatus []
 
static ChainCheck chainCheck []
 
static const CERT_TRUST_STATUS elementStatus8NoStore []
 
static const SimpleChainStatusCheck simpleStatus8NoStore []
 
static ChainCheck chainCheckNoStore []
 
static ChainCheck opensslChainCheck
 
static ChainCheck incompleteOpensslChainCheck
 
static ChainCheck chainCheckEmbeddedNull
 
static ChainCheck chainCheckEmbeddedNullBroken
 
static const ChainPolicyCheck basePolicyCheck []
 
static const CERT_CHAIN_POLICY_STATUS badDateNestingStatus
 
static const ChainPolicyCheck ignoredBadDateNestingBasePolicyCheck
 
static const ChainPolicyCheck ignoredInvalidDateBasePolicyCheck
 
static const ChainPolicyCheck ignoredInvalidUsageBasePolicyCheck
 
static const ChainPolicyCheck invalidUsageBasePolicyCheck
 
static const ChainPolicyCheck sslPolicyCheck []
 
static const ChainPolicyCheck ignoredUnknownCAPolicyCheck
 
static const ChainPolicyCheck googlePolicyCheckWithMatchingNameExpired
 
static const CERT_CHAIN_POLICY_STATUS expiredStatus
 
static const ChainPolicyCheck googlePolicyCheckWithMatchingName
 
static const CERT_CHAIN_POLICY_STATUS untrustedRootStatus
 
static const ChainPolicyCheck opensslPolicyCheckWithMatchingName
 
static const ChainPolicyCheck opensslPolicyCheckWithoutMatchingName
 
static const ChainPolicyCheck winehqPolicyCheckWithMatchingName
 
static const ChainPolicyCheck winehqPolicyCheckWithoutMatchingName
 
static const ChainPolicyCheck stanfordPolicyCheckWithMatchingName
 
static const ChainPolicyCheck stanfordPolicyCheckWithoutMatchingName
 
static const ChainPolicyCheck nullTerminatedDomainComponentPolicyCheck
 
static const ChainPolicyCheck invalidExtensionPolicyCheck
 
static const ChainPolicyCheck fooPolicyCheckWithMatchingName
 
static const ChainPolicyCheck fooPolicyCheckWithoutMatchingName
 
static const ChainPolicyCheck authenticodePolicyCheck []
 
static const CERT_CHAIN_POLICY_STATUS chain4BrokenStatus
 
static const ChainPolicyCheck basicConstraintsPolicyCheck []
 

Macro Definition Documentation

◆ CHECK_CHAIN_POLICY_STATUS

#define CHECK_CHAIN_POLICY_STATUS (   policy,
  engine,
  policyCheck,
  date,
  para 
)
Value:
checkChainPolicyStatus((policy), (engine), &(policyCheck), \
#policyCheck, 0, (date), (para))
static void checkChainPolicyStatus(LPCSTR policy, HCERTCHAINENGINE engine, const ChainPolicyCheck *check, LPCSTR testName, DWORD testIndex, SYSTEMTIME *sysTime, PCERT_CHAIN_POLICY_PARA para)
Definition: chain.c:4512
__u16 date
Definition: mkdosfs.c:366

Definition at line 4595 of file chain.c.

◆ CHECK_CHAIN_POLICY_STATUS_ARRAY

#define CHECK_CHAIN_POLICY_STATUS_ARRAY (   policy,
  engine,
  array,
  date,
  para 
)
Value:
do { \
DWORD i; \
for (i = 0; i < ARRAY_SIZE(array); i++) \
checkChainPolicyStatus((policy), (engine), &(array)[i], \
#array, i, (date), (para)); \
} while(0)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static void checkChainPolicyStatus(LPCSTR policy, HCERTCHAINENGINE engine, const ChainPolicyCheck *check, LPCSTR testName, DWORD testIndex, SYSTEMTIME *sysTime, PCERT_CHAIN_POLICY_PARA para)
Definition: chain.c:4512
#define ARRAY_SIZE(a)
Definition: main.h:24

Definition at line 4587 of file chain.c.

◆ IS_INTOID

#define IS_INTOID (   x)    (((ULONG_PTR)(x) >> 16) == 0)

Definition at line 63 of file chain.c.

◆ test_name_blob

#define test_name_blob (   a,
  b 
)    _test_name_blob(__LINE__,a,b)

Definition at line 3877 of file chain.c.

◆ TODO_CHAIN

#define TODO_CHAIN   1

Definition at line 2905 of file chain.c.

◆ TODO_CHAINS

#define TODO_CHAINS   16

Definition at line 2909 of file chain.c.

◆ TODO_ELEMENTS

#define TODO_ELEMENTS   8

Definition at line 2908 of file chain.c.

◆ TODO_ERROR

#define TODO_ERROR   2

Definition at line 2906 of file chain.c.

◆ TODO_INFO

#define TODO_INFO   4

Definition at line 2907 of file chain.c.

◆ TODO_POLICY

#define TODO_POLICY   32

Definition at line 2910 of file chain.c.

Typedef Documentation

◆ CERT_CHAIN_ENGINE_CONFIG_NO_EXCLUSIVE_ROOT

◆ ChainCheck

◆ ChainPolicyCheck

◆ ChainStatusCheck

◆ CONST_BLOB_ARRAY

◆ CONST_DATA_BLOB

◆ SimpleChainStatusCheck

Function Documentation

◆ _test_name_blob()

static void _test_name_blob ( unsigned  line,
CERT_NAME_BLOB blob,
const char exdata 
)
static

Definition at line 3878 of file chain.c.

3879 {
3880  char buf[1024];
3881 
3883  ok_(__FILE__,line)(!strcmp(buf, exdata), "got string %s, expected %s\n", buf, exdata);
3884 }
Definition: image.c:133
#define ok_(x1, x2)
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
DWORD WINAPI CertNameToStrA(DWORD dwCertEncodingType, PCERT_NAME_BLOB pName, DWORD dwStrType, LPSTR psz, DWORD csz)
Definition: str.c:414
Definition: parser.c:48
#define CRYPT_ASN_ENCODING
Definition: wincrypt.h:2295
#define CERT_SIMPLE_NAME_STR
Definition: wincrypt.h:3484
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469

◆ BOOL()

static BOOL ( WINAPI pCertCreateCertificateChainEngine)
static

◆ check_authenticode_policy()

static void check_authenticode_policy ( void  )
static

Definition at line 4637 of file chain.c.

4638 {
4639  CERT_CHAIN_POLICY_PARA policyPara = { 0 };
4640  SYSTEMTIME epochStart = { 0 };
4641 
4642  /* The authenticode policy doesn't seem to check anything beyond the base
4643  * policy. It might check for chains signed by the MS test cert, but none
4644  * of these chains is.
4645  */
4648  policyPara.cbSize = sizeof(policyPara);
4651  ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
4652  epochStart.wDay = epochStart.wMonth = 1;
4653  epochStart.wYear = 1601;
4655  ignoredUnknownCAPolicyCheck, &epochStart, &policyPara);
4659 }
static const ChainPolicyCheck ignoredUnknownCAPolicyCheck
Definition: chain.c:4338
WORD wMonth
Definition: winbase.h:871
static const ChainPolicyCheck ignoredInvalidDateBasePolicyCheck
Definition: chain.c:4280
WORD wYear
Definition: winbase.h:870
static const ChainPolicyCheck authenticodePolicyCheck[]
Definition: chain.c:4411
smooth NULL
Definition: ftsmooth.c:416
#define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG
Definition: wincrypt.h:980
#define CERT_CHAIN_POLICY_AUTHENTICODE
Definition: wincrypt.h:963
static SYSTEMTIME oct2007
Definition: chain.c:3078
#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para)
Definition: chain.c:4587
WORD wDay
Definition: winbase.h:873
#define CHECK_CHAIN_POLICY_STATUS(policy, engine, policyCheck, date, para)
Definition: chain.c:4595
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG
Definition: wincrypt.h:970

Referenced by testVerifyCertChainPolicy().

◆ check_base_policy()

static void check_base_policy ( void  )
static

Definition at line 4599 of file chain.c.

4600 {
4601  CERT_CHAIN_POLICY_PARA policyPara = { 0 };
4602 
4605  policyPara.cbSize = sizeof(policyPara);
4608  ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
4628  invalidUsageBasePolicyCheck, &oct2007, &policyPara);
4629  /* Test chain30, which has an invalid critical extension in an intermediate
4630  * cert, against the base policy.
4631  */
4634  invalidExtensionPolicyCheck, &oct2007, &policyPara);
4635 }
static const ChainPolicyCheck ignoredUnknownCAPolicyCheck
Definition: chain.c:4338
static const ChainPolicyCheck ignoredInvalidDateBasePolicyCheck
Definition: chain.c:4280
static const ChainPolicyCheck ignoredBadDateNestingBasePolicyCheck
Definition: chain.c:4275
static const ChainPolicyCheck invalidExtensionPolicyCheck
Definition: chain.c:4396
#define CERT_CHAIN_POLICY_BASE
Definition: wincrypt.h:962
smooth NULL
Definition: ftsmooth.c:416
static const ChainPolicyCheck basePolicyCheck[]
Definition: chain.c:4225
#define CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG
Definition: wincrypt.h:980
static const ChainPolicyCheck ignoredInvalidUsageBasePolicyCheck
Definition: chain.c:4285
static SYSTEMTIME oct2007
Definition: chain.c:3078
#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para)
Definition: chain.c:4587
#define CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG
Definition: wincrypt.h:981
#define CHECK_CHAIN_POLICY_STATUS(policy, engine, policyCheck, date, para)
Definition: chain.c:4595
static const ChainPolicyCheck invalidUsageBasePolicyCheck
Definition: chain.c:4290
#define CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG
Definition: wincrypt.h:970

Referenced by testVerifyCertChainPolicy().

◆ check_ssl_policy()

static void check_ssl_policy ( void  )
static

Definition at line 4661 of file chain.c.

4662 {
4663  CERT_CHAIN_POLICY_PARA policyPara = { 0 };
4664  SSL_EXTRA_CERT_CHAIN_POLICY_PARA sslPolicyPara = { { 0 } };
4665  WCHAR winehq[] = { 'w','i','n','e','h','q','.','o','r','g',0 };
4666  WCHAR google_dot_com[] = { 'w','w','w','.','g','o','o','g','l','e','.',
4667  'c','o','m',0 };
4668  WCHAR battle_dot_net[] = { 'w','w','w','.','b','a','t','t','l','e','.',
4669  'n','e','t',0 };
4670  WCHAR a_dot_openssl_dot_org[] = { 'a','.','o','p','e','n','s','s','l','.',
4671  'o','r','g',0 };
4672  WCHAR openssl_dot_org[] = { 'o','p','e','n','s','s','l','.','o','r','g',0 };
4673  WCHAR fopenssl_dot_org[] = { 'f','o','p','e','n','s','s','l','.',
4674  'o','r','g',0 };
4675  WCHAR a_dot_b_dot_openssl_dot_org[] = { 'a','.','b','.',
4676  'o','p','e','n','s','s','l','.','o','r','g',0 };
4677  WCHAR cs_dot_stanford_dot_edu[] = { 'c','s','.',
4678  's','t','a','n','f','o','r','d','.','e','d','u',0 };
4679  WCHAR www_dot_cs_dot_stanford_dot_edu[] = { 'w','w','w','.','c','s','.',
4680  's','t','a','n','f','o','r','d','.','e','d','u',0 };
4681  WCHAR a_dot_cs_dot_stanford_dot_edu[] = { 'a','.','c','s','.',
4682  's','t','a','n','f','o','r','d','.','e','d','u',0 };
4683  WCHAR test_dot_winehq_dot_org[] = { 't','e','s','t','.',
4684  'w','i','n','e','h','q','.','o','r','g',0 };
4685  WCHAR a_dot_b_dot_winehq_dot_org[] = { 'a','.','b','.',
4686  'w','i','n','e','h','q','.','o','r','g',0 };
4687  WCHAR foo_dot_com[] = { 'f','o','o','.','c','o','m',0 };
4688  WCHAR afoo_dot_com[] = { 'a','f','o','o','.','c','o','m',0 };
4689  WCHAR a_dot_foo_dot_com[] = { 'a','.','f','o','o','.','c','o','m',0 };
4690  HCERTSTORE testRoot;
4691  CERT_CHAIN_ENGINE_CONFIG engineConfig = { sizeof(engineConfig), 0 };
4692  HCERTCHAINENGINE engine;
4693 
4694  /* Check ssl policy with no parameter */
4696  &oct2007, NULL);
4697  /* Check again with a policy parameter that specifies nothing */
4699  &oct2007, &policyPara);
4700  /* Check yet again, but specify an empty SSL_EXTRA_CERT_CHAIN_POLICY_PARA
4701  * argument.
4702  */
4703  policyPara.pvExtraPolicyPara = &sslPolicyPara;
4705  &oct2007, &policyPara);
4706  /* And again, but specify the auth type as a client */
4707  sslPolicyPara.dwAuthType = AUTHTYPE_CLIENT;
4709  &oct2007, &policyPara);
4710  /* And again, but specify the auth type as a server */
4711  sslPolicyPara.dwAuthType = AUTHTYPE_SERVER;
4713  &oct2007, &policyPara);
4714  /* And again authenticating a client, but specify the size of the policy
4715  * parameter.
4716  */
4717  U(sslPolicyPara).cbSize = sizeof(sslPolicyCheck);
4718  sslPolicyPara.dwAuthType = AUTHTYPE_CLIENT;
4720  &oct2007, &policyPara);
4721  /* One more time authenticating a client, but specify winehq.org as the
4722  * server name.
4723  */
4724  sslPolicyPara.pwszServerName = winehq;
4726  &oct2007, &policyPara);
4727  /* And again authenticating a server, still specifying winehq.org as the
4728  * server name.
4729  */
4730  sslPolicyPara.dwAuthType = AUTHTYPE_SERVER;
4732  &oct2007, &policyPara);
4733  /* And again authenticating a server, this time specifying the size of the
4734  * policy param.
4735  */
4736  policyPara.cbSize = sizeof(policyPara);
4738  &oct2007, &policyPara);
4739  /* And again, specifying a chain with an untrusted root, but ignoring
4740  * unknown CAs.
4741  */
4744  ignoredUnknownCAPolicyCheck, &oct2007, &policyPara);
4745  sslPolicyPara.fdwChecks = 0;
4746  /* And again, but checking the Google chain at a bad date */
4747  sslPolicyPara.pwszServerName = google_dot_com;
4750  /* Again checking the Google chain at a bad date, but ignoring date
4751  * errors.
4752  */
4756  sslPolicyPara.fdwChecks = 0;
4757  /* And again, but checking the Google chain at a good date */
4758  sslPolicyPara.pwszServerName = google_dot_com;
4761 
4762  /* Check again with the openssl cert, which has a wildcard in its name,
4763  * with various combinations of matching and non-matching names.
4764  * With "a.openssl.org": match
4765  */
4766  sslPolicyPara.pwszServerName = a_dot_openssl_dot_org;
4769  /* With "openssl.org": no match */
4770  sslPolicyPara.pwszServerName = openssl_dot_org;
4773  /* With "fopenssl.org": no match */
4774  sslPolicyPara.pwszServerName = fopenssl_dot_org;
4777  /* with "a.b.openssl.org": no match */
4778  sslPolicyPara.pwszServerName = a_dot_b_dot_openssl_dot_org;
4781  /* Check again with the cs.stanford.edu, which has both cs.stanford.edu
4782  * and www.cs.stanford.edu in its subject alternative name.
4783  * With "cs.stanford.edu": match
4784  */
4785  sslPolicyPara.pwszServerName = cs_dot_stanford_dot_edu;
4788  /* With "www.cs.stanford.edu": match */
4789  sslPolicyPara.pwszServerName = www_dot_cs_dot_stanford_dot_edu;
4792  /* With "a.cs.stanford.edu": no match */
4793  sslPolicyPara.pwszServerName = a_dot_cs_dot_stanford_dot_edu;
4796  /* Check chain29, which has a wildcard in its subject alternative name,
4797  * but not in its distinguished name.
4798  * Step 1: create a chain engine that trusts chain29's root.
4799  */
4800  testRoot = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
4803  sizeof(chain0_0), CERT_STORE_ADD_ALWAYS, NULL);
4804  engineConfig.hExclusiveRoot = testRoot;
4805  if (!pCertCreateCertificateChainEngine(&engineConfig, &engine))
4806  {
4807  skip("Couldn't create chain engine\n");
4808  return;
4809  }
4810  /* With "winehq.org": no match */
4811  sslPolicyPara.pwszServerName = winehq;
4814  /* With "test.winehq.org": match */
4815  sslPolicyPara.pwszServerName = test_dot_winehq_dot_org;
4818  /* With "a.b.winehq.org": no match */
4819  sslPolicyPara.pwszServerName = a_dot_b_dot_winehq_dot_org;
4822  /* When specifying to ignore name mismatch: match */
4826  pCertFreeCertificateChainEngine(engine);
4827  CertCloseStore(testRoot, 0);
4828  /* Test chain30, which has an invalid critical extension in an intermediate
4829  * cert, against the SSL policy.
4830  */
4832  sslPolicyPara.pwszServerName = NULL;
4834  invalidExtensionPolicyCheck, &oct2007, &policyPara);
4835  /* Test chain31, which has two CNs, "*.foo.com" and "foo.com", against
4836  * some names that match one of the CNs:
4837  */
4838  sslPolicyPara.pwszServerName = foo_dot_com;
4840  fooPolicyCheckWithMatchingName, &oct2007, &policyPara);
4841  sslPolicyPara.pwszServerName = a_dot_foo_dot_com;
4843  fooPolicyCheckWithMatchingName, &oct2007, &policyPara);
4844  /* and against a name that doesn't match either CN: */
4845  sslPolicyPara.pwszServerName = afoo_dot_com;
4848  /* The Battle.Net chain checks a certificate with a domain component
4849  * containing a terminating NULL.
4850  */
4851  sslPolicyPara.pwszServerName = battle_dot_net;
4854 }
static const ChainPolicyCheck stanfordPolicyCheckWithoutMatchingName
Definition: chain.c:4386
#define SECURITY_FLAG_IGNORE_UNKNOWN_CA
Definition: winhttp.h:281
static const ChainPolicyCheck ignoredUnknownCAPolicyCheck
Definition: chain.c:4338
static const ChainPolicyCheck fooPolicyCheckWithoutMatchingName
Definition: chain.c:4406
#define U(x)
Definition: wordpad.c:44
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
static const ChainPolicyCheck winehqPolicyCheckWithMatchingName
Definition: chain.c:4371
static const ChainPolicyCheck sslPolicyCheck[]
Definition: chain.c:4295
#define SECURITY_FLAG_IGNORE_CERT_CN_INVALID
Definition: winhttp.h:283
static const ChainPolicyCheck invalidExtensionPolicyCheck
Definition: chain.c:4396
static const ChainPolicyCheck stanfordPolicyCheckWithMatchingName
Definition: chain.c:4381
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
#define CERT_CHAIN_POLICY_SSL
Definition: wincrypt.h:965
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2464
static const ChainPolicyCheck winehqPolicyCheckWithoutMatchingName
Definition: chain.c:4376
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2251
smooth NULL
Definition: ftsmooth.c:416
static const ChainPolicyCheck googlePolicyCheckWithMatchingName
Definition: chain.c:4352
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
#define AUTHTYPE_CLIENT
Definition: wincrypt.h:1034
__wchar_t WCHAR
Definition: xmlstorage.h:180
static const ChainPolicyCheck fooPolicyCheckWithMatchingName
Definition: chain.c:4401
static SYSTEMTIME oct2009
Definition: chain.c:3080
static SYSTEMTIME oct2007
Definition: chain.c:3078
#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para)
Definition: chain.c:4587
static const BYTE chain0_0[]
Definition: chain.c:1237
#define SECURITY_FLAG_IGNORE_CERT_DATE_INVALID
Definition: winhttp.h:282
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
#define skip(...)
static WCHAR winehq[]
Definition: url.c:31
static const ChainPolicyCheck opensslPolicyCheckWithMatchingName
Definition: chain.c:4361
static const ChainPolicyCheck googlePolicyCheckWithMatchingNameExpired
Definition: chain.c:4343
static SYSTEMTIME oct2010
Definition: chain.c:3082
#define AUTHTYPE_SERVER
Definition: wincrypt.h:1035
static const ChainPolicyCheck opensslPolicyCheckWithoutMatchingName
Definition: chain.c:4366
static SYSTEMTIME nov2016
Definition: chain.c:3088
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2485
#define CHECK_CHAIN_POLICY_STATUS(policy, engine, policyCheck, date, para)
Definition: chain.c:4595
static const ChainPolicyCheck nullTerminatedDomainComponentPolicyCheck
Definition: chain.c:4391

Referenced by testVerifyCertChainPolicy().

◆ checkChainPolicyStatus()

static void checkChainPolicyStatus ( LPCSTR  policy,
HCERTCHAINENGINE  engine,
const ChainPolicyCheck check,
LPCSTR  testName,
DWORD  testIndex,
SYSTEMTIME sysTime,
PCERT_CHAIN_POLICY_PARA  para 
)
static

Definition at line 4512 of file chain.c.

4515 {
4516  PCCERT_CHAIN_CONTEXT chain = getChain(engine, &check->certs, 0, TRUE,
4517  sysTime, check->todo, testIndex);
4518 
4519  if (chain)
4520  {
4521  CERT_CHAIN_POLICY_STATUS policyStatus = { 0 };
4522  BOOL ret = pCertVerifyCertificateChainPolicy(policy, chain, para,
4523  &policyStatus);
4524 
4525  if (check->todo & TODO_POLICY)
4526  todo_wine ok(ret,
4527  "%s[%d](%s): CertVerifyCertificateChainPolicy failed: %08x\n",
4528  testName, testIndex,
4529  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy,
4530  GetLastError());
4531  else
4532  {
4533  if (!ret && GetLastError() == ERROR_FILE_NOT_FOUND)
4534  {
4535  skip("%s[%d]: missing policy %s, skipping test\n",
4536  testName, testIndex,
4537  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy);
4538  pCertFreeCertificateChain(chain);
4539  return;
4540  }
4541  ok(ret, "%s[%d](%s): CertVerifyCertificateChainPolicy failed: %08x\n",
4542  testName, testIndex,
4543  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy,
4544  GetLastError());
4545  }
4546  if (ret)
4547  {
4548  todo_wine_if (check->todo & TODO_ERROR)
4549  ok(policyStatus.dwError == check->status.dwError ||
4550  broken(policyStatus.dwError == CERT_TRUST_NO_ERROR) ||
4551  (check->brokenStatus && broken(policyStatus.dwError ==
4552  check->brokenStatus->dwError)),
4553  "%s[%d](%s): expected %08x, got %08x\n",
4554  testName, testIndex,
4555  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy,
4556  check->status.dwError, policyStatus.dwError);
4557  if (policyStatus.dwError != check->status.dwError)
4558  {
4559  skip("%s[%d](%s): error %08x doesn't match expected %08x, not checking indexes\n",
4560  testName, testIndex,
4561  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy,
4562  policyStatus.dwError, check->status.dwError);
4563  pCertFreeCertificateChain(chain);
4564  return;
4565  }
4566  todo_wine_if (check->todo & TODO_CHAINS)
4567  ok(policyStatus.lChainIndex == check->status.lChainIndex ||
4568  (check->brokenStatus && broken(policyStatus.lChainIndex ==
4569  check->brokenStatus->lChainIndex)),
4570  "%s[%d](%s): expected %d, got %d\n",
4571  testName, testIndex,
4572  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy,
4573  check->status.lChainIndex, policyStatus.lChainIndex);
4574  todo_wine_if (check->todo & TODO_ELEMENTS)
4575  ok(policyStatus.lElementIndex == check->status.lElementIndex ||
4576  (check->brokenStatus && broken(policyStatus.lElementIndex ==
4577  check->brokenStatus->lElementIndex)),
4578  "%s[%d](%s): expected %d, got %d\n",
4579  testName, testIndex,
4580  IS_INTOID(policy) ? num_to_str(LOWORD(policy)) : policy,
4581  check->status.lElementIndex, policyStatus.lElementIndex);
4582  }
4583  pCertFreeCertificateChain(chain);
4584  }
4585 }
#define TRUE
Definition: types.h:120
static PCCERT_CHAIN_CONTEXT getChain(HCERTCHAINENGINE engine, const CONST_BLOB_ARRAY *certArray, DWORD flags, BOOL includeStore, LPSYSTEMTIME checkTime, DWORD todo, DWORD testIndex)
Definition: chain.c:2916
#define TODO_POLICY
Definition: chain.c:2910
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static const char * num_to_str(WORD num)
Definition: chain.c:4504
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ok(value,...)
#define IS_INTOID(x)
Definition: chain.c:63
struct sock * chain
Definition: tcpcore.h:1164
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define TODO_ERROR
Definition: chain.c:2906
#define todo_wine_if(is_todo)
Definition: test.h:155
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define TODO_ELEMENTS
Definition: chain.c:2908
#define TODO_CHAINS
Definition: chain.c:2909
void check(CONTEXT *pContext)
Definition: NtContinue.c:61
int ret
#define todo_wine
Definition: test.h:154
#define broken(x)
Definition: _sntprintf.h:21
#define skip(...)
#define LOWORD(l)
Definition: pedump.c:82

◆ checkChainStatus()

static void checkChainStatus ( PCCERT_CHAIN_CONTEXT  chain,
const ChainStatusCheck chainStatus,
DWORD  todo,
LPCSTR  testName,
DWORD  testIndex 
)
static

Definition at line 3036 of file chain.c.

3039 {
3040  ok(chain->cChain == chainStatus->cChain,
3041  "%s[%d]: expected %d simple chains, got %d\n", testName, testIndex,
3042  chainStatus->cChain, chain->cChain);
3044  chain->TrustStatus.dwErrorStatus != chainStatus->status.dwErrorStatus)
3045  ok(chain->TrustStatus.dwErrorStatus ==
3046  chainStatus->status.dwErrorStatus ||
3047  broken((chain->TrustStatus.dwErrorStatus &
3048  ~chainStatus->statusToIgnore.dwErrorStatus) ==
3049  (chainStatus->status.dwErrorStatus &
3050  ~chainStatus->statusToIgnore.dwErrorStatus)),
3051  "%s[%d]: expected error %08x, got %08x. %08x is expected if no valid "
3052  "root certificate is available.\n",
3053  testName, testIndex, chainStatus->status.dwErrorStatus,
3054  chain->TrustStatus.dwErrorStatus, CERT_TRUST_IS_UNTRUSTED_ROOT);
3056  chain->TrustStatus.dwInfoStatus != chainStatus->status.dwInfoStatus)
3057  ok(chain->TrustStatus.dwInfoStatus ==
3058  chainStatus->status.dwInfoStatus ||
3059  broken((chain->TrustStatus.dwInfoStatus &
3060  ~chainStatus->statusToIgnore.dwInfoStatus) ==
3061  (chainStatus->status.dwInfoStatus &
3062  ~chainStatus->statusToIgnore.dwInfoStatus)),
3063  "%s[%d]: expected info %08x, got %08x\n",
3064  testName, testIndex, chainStatus->status.dwInfoStatus,
3065  chain->TrustStatus.dwInfoStatus);
3066  if (chain->cChain == chainStatus->cChain)
3067  {
3068  DWORD i;
3069 
3070  for (i = 0; i < chain->cChain; i++)
3071  checkSimpleChainStatus(chain->rgpChain[i],
3072  &chainStatus->rgChainStatus[i], &chainStatus->statusToIgnore,
3073  todo, testName, testIndex, i);
3074  }
3075 }
#define error(str)
Definition: mkdosfs.c:1605
CERT_TRUST_STATUS status
Definition: chain.c:3031
BOOL todo
Definition: filedlg.c:313
GLdouble n
Definition: glext.h:7729
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
#define ok(value,...)
static WCHAR available[MAX_STRING_RESOURCE_LEN]
Definition: object.c:2336
struct sock * chain
Definition: tcpcore.h:1164
#define TODO_ERROR
Definition: chain.c:2906
#define todo_wine_if(is_todo)
Definition: test.h:155
static WCHAR no[MAX_STRING_RESOURCE_LEN]
Definition: object.c:2340
#define d
Definition: ke_i.h:81
if(!(yy_init))
Definition: macro.lex.yy.c:714
unsigned long DWORD
Definition: ntddk_ex.h:95
GLdouble s
Definition: gl.h:2039
#define broken(x)
Definition: _sntprintf.h:21
static void checkSimpleChainStatus(const CERT_SIMPLE_CHAIN *simpleChain, const SimpleChainStatusCheck *simpleChainStatus, const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex)
Definition: chain.c:3008
#define TODO_INFO
Definition: chain.c:2907
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875
const SimpleChainStatusCheck * rgChainStatus
Definition: chain.c:3033
BOOL expected
Definition: store.c:2063
CERT_TRUST_STATUS statusToIgnore
Definition: chain.c:3030
Definition: ps.c:97

Referenced by testGetCertChain().

◆ checkElementStatus()

static void checkElementStatus ( const CERT_TRUST_STATUS expected,
const CERT_TRUST_STATUS got,
const CERT_TRUST_STATUS ignore,
DWORD  todo,
LPCSTR  testName,
DWORD  testIndex,
DWORD  chainIndex,
DWORD  elementIndex 
)
static

Definition at line 2976 of file chain.c.

2980 {
2981  if (got->dwErrorStatus == expected->dwErrorStatus)
2982  ok(got->dwErrorStatus == expected->dwErrorStatus,
2983  "%s[%d], element [%d,%d]: expected error %08x, got %08x\n",
2984  testName, testIndex, chainIndex, elementIndex, expected->dwErrorStatus,
2985  got->dwErrorStatus);
2986  else todo_wine_if (todo & TODO_ERROR)
2987  ok(got->dwErrorStatus == expected->dwErrorStatus ||
2988  broken((got->dwErrorStatus & ~ignore->dwErrorStatus) ==
2989  (expected->dwErrorStatus & ~ignore->dwErrorStatus)),
2990  "%s[%d], element [%d,%d]: expected error %08x, got %08x. %08x is "
2991  "expected if no valid root certificate is available.\n",
2992  testName, testIndex, chainIndex, elementIndex, expected->dwErrorStatus,
2994  if (got->dwInfoStatus == expected->dwInfoStatus)
2995  ok(got->dwInfoStatus == expected->dwInfoStatus,
2996  "%s[%d], element [%d,%d]: expected info %08x, got %08x\n",
2997  testName, testIndex, chainIndex, elementIndex, expected->dwInfoStatus,
2998  got->dwInfoStatus);
2999  else todo_wine_if (todo & TODO_INFO)
3000  ok(got->dwInfoStatus == expected->dwInfoStatus ||
3001  broken((got->dwInfoStatus & ~ignore->dwInfoStatus) ==
3002  (expected->dwInfoStatus & ~ignore->dwInfoStatus)),
3003  "%s[%d], element [%d,%d]: expected info %08x, got %08x\n",
3004  testName, testIndex, chainIndex, elementIndex, expected->dwInfoStatus,
3005  got->dwInfoStatus);
3006 }
int ignore(int trapCode, ppc_trap_frame_t *trap)
Definition: mmuobject.c:296
BOOL todo
Definition: filedlg.c:313
#define ok(value,...)
#define TODO_ERROR
Definition: chain.c:2906
#define todo_wine_if(is_todo)
Definition: test.h:155
#define broken(x)
Definition: _sntprintf.h:21
#define TODO_INFO
Definition: chain.c:2907
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875
BOOL expected
Definition: store.c:2063

Referenced by checkSimpleChainStatus().

◆ checkSimpleChainStatus()

static void checkSimpleChainStatus ( const CERT_SIMPLE_CHAIN simpleChain,
const SimpleChainStatusCheck simpleChainStatus,
const CERT_TRUST_STATUS ignore,
DWORD  todo,
LPCSTR  testName,
DWORD  testIndex,
DWORD  chainIndex 
)
static

Definition at line 3008 of file chain.c.

3012 {
3014  ok(simpleChain->cElement == simpleChainStatus->cElement,
3015  "%s[%d]: expected %d elements, got %d\n", testName, testIndex,
3016  simpleChainStatus->cElement, simpleChain->cElement);
3017  if (simpleChain->cElement == simpleChainStatus->cElement)
3018  {
3019  DWORD i;
3020 
3021  for (i = 0; i < simpleChain->cElement; i++)
3022  checkElementStatus(&simpleChainStatus->rgElementStatus[i],
3023  &simpleChain->rgpElement[i]->TrustStatus, ignore, todo, testName,
3024  testIndex, chainIndex, i);
3025  }
3026 }
int ignore(int trapCode, ppc_trap_frame_t *trap)
Definition: mmuobject.c:296
BOOL todo
Definition: filedlg.c:313
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
const CERT_TRUST_STATUS * rgElementStatus
Definition: chain.c:2973
#define ok(value,...)
#define todo_wine_if(is_todo)
Definition: test.h:155
#define TODO_ELEMENTS
Definition: chain.c:2908
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:917
unsigned long DWORD
Definition: ntddk_ex.h:95
static void checkElementStatus(const CERT_TRUST_STATUS *expected, const CERT_TRUST_STATUS *got, const CERT_TRUST_STATUS *ignore, DWORD todo, LPCSTR testName, DWORD testIndex, DWORD chainIndex, DWORD elementIndex)
Definition: chain.c:2976
PCERT_CHAIN_ELEMENT * rgpElement
Definition: wincrypt.h:928

Referenced by checkChainStatus().

◆ getChain()

static PCCERT_CHAIN_CONTEXT getChain ( HCERTCHAINENGINE  engine,
const CONST_BLOB_ARRAY certArray,
DWORD  flags,
BOOL  includeStore,
LPSYSTEMTIME  checkTime,
DWORD  todo,
DWORD  testIndex 
)
static

Definition at line 2916 of file chain.c.

2919 {
2920  HCERTSTORE store;
2922 
2923  store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
2925  if (store)
2926  {
2927  BOOL ret;
2928  PCCERT_CONTEXT endCert;
2929 
2930  if (certArray->cBlob > 1)
2931  {
2932  DWORD i;
2933 
2934  for (i = 0, ret = TRUE; ret && i < certArray->cBlob - 1; i++)
2935  {
2937  X509_ASN_ENCODING, certArray->rgBlob[i].pbData,
2938  certArray->rgBlob[i].cbData, CERT_STORE_ADD_ALWAYS, NULL);
2939  ok(ret, "Chain %d: adding cert %d failed: %08x\n",
2940  testIndex, i, GetLastError());
2941  }
2942  }
2944  X509_ASN_ENCODING, certArray->rgBlob[certArray->cBlob - 1].pbData,
2945  certArray->rgBlob[certArray->cBlob - 1].cbData, CERT_STORE_ADD_ALWAYS,
2946  &endCert);
2947  ok(ret, "Chain %d: adding end cert failed: %08x\n",
2948  testIndex, GetLastError());
2949  if (ret)
2950  {
2951  /* FIXME: allow caller to specify usage matches? */
2952  CERT_CHAIN_PARA chainPara = { sizeof(chainPara), { 0 } };
2954 
2955  ok(SystemTimeToFileTime(checkTime, &fileTime),
2956  "SystemTimeToFileTime failed for day %d, month %d, year %d\n",
2957  checkTime->wDay, checkTime->wMonth, checkTime->wYear);
2958  ret = pCertGetCertificateChain(engine, endCert, &fileTime,
2959  includeStore ? store : NULL, &chainPara, flags, NULL, &chain);
2961  ok(ret, "Chain %d: CertGetCertificateChain failed: %08x\n",
2962  testIndex, GetLastError());
2963  CertFreeCertificateContext(endCert);
2964  }
2965  CertCloseStore(store, 0);
2966  }
2967  return chain;
2968 }
#define TRUE
Definition: types.h:120
#define TODO_CHAIN
Definition: chain.c:2905
WORD wMonth
Definition: winbase.h:871
const BYTE * pbData
Definition: chain.c:2896
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
BOOL todo
Definition: filedlg.c:313
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
WORD wYear
Definition: winbase.h:870
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
SYSTEMTIME fileTime
Definition: main.cpp:57
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2464
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ok(value,...)
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2251
smooth NULL
Definition: ftsmooth.c:416
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
struct sock * chain
Definition: tcpcore.h:1164
DWORD cbData
Definition: chain.c:2895
#define todo_wine_if(is_todo)
Definition: test.h:155
CONST_DATA_BLOB * rgBlob
Definition: chain.c:2902
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
int ret
WORD wDay
Definition: winbase.h:873
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
Definition: time.c:148
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2485

Referenced by checkChainPolicyStatus(), and testGetCertChain().

◆ num_to_str()

static const char* num_to_str ( WORD  num)
static

Definition at line 4504 of file chain.c.

4505 {
4506  static char buf[6];
4507 
4508  sprintf(buf, "#%04X", num);
4509  return buf;
4510 }
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define sprintf(buf, format,...)
Definition: sprintf.c:55
GLuint GLuint num
Definition: glext.h:9618

Referenced by checkChainPolicyStatus().

◆ START_TEST()

START_TEST ( chain  )

Definition at line 4926 of file chain.c.

4927 {
4928  HMODULE hCrypt32 = GetModuleHandleA("crypt32.dll");
4929  pCertCreateCertificateChainEngine = (void*)GetProcAddress(hCrypt32, "CertCreateCertificateChainEngine");
4930  pCertGetCertificateChain = (void*)GetProcAddress(hCrypt32, "CertGetCertificateChain");
4931  pCertFreeCertificateChain = (void*)GetProcAddress(hCrypt32, "CertFreeCertificateChain");
4932  pCertFreeCertificateChainEngine = (void*)GetProcAddress(hCrypt32, "CertFreeCertificateChainEngine");
4933  pCertVerifyCertificateChainPolicy = (void*)GetProcAddress(hCrypt32, "CertVerifyCertificateChainPolicy");
4934 
4936  if (!pCertGetCertificateChain || !pCertFreeCertificateChain)
4937  {
4938  win_skip("Cert*CertificateChain functions not available\n");
4939  }
4940  else
4941  {
4943  testGetCertChain();
4945  }
4946 }
static void test_CERT_CHAIN_PARA_cbSize(void)
Definition: chain.c:4179
static void testVerifyCertChainPolicy(void)
Definition: chain.c:4856
static void testGetCertChain(void)
Definition: chain.c:3886
HMODULE WINAPI DECLSPEC_HOTPATCH GetModuleHandleA(LPCSTR lpModuleName)
Definition: loader.c:819
static void testCreateCertChainEngine(void)
Definition: chain.c:79
#define GetProcAddress(x, y)
Definition: compat.h:410
#define win_skip
Definition: test.h:141

◆ test_CERT_CHAIN_PARA_cbSize()

static void test_CERT_CHAIN_PARA_cbSize ( void  )
static

Definition at line 4179 of file chain.c.

4180 {
4181  BOOL ret;
4183  CERT_CHAIN_PARA para = { 0 };
4185  HCERTSTORE store;
4186  DWORD i;
4187 
4188  store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
4190 
4194  ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", GetLastError());
4198  ok(ret, "CertAddEncodedCertificateToStore failed: %08x\n", GetLastError());
4199 
4200  for (i = 0; i < sizeof(CERT_CHAIN_PARA) + 2; i++)
4201  {
4203 
4205 
4206  para.cbSize = i;
4207  ret = pCertGetCertificateChain(NULL, cert, &fileTime,
4208  NULL, &para, 0, NULL, &chain);
4209  ok(ret, "CertGetCertificateChain failed %u\n", GetLastError());
4210  pCertFreeCertificateChain(chain);
4211  }
4212 
4214  CertCloseStore(store, 0);
4215 }
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
static const BYTE chain0_1[]
Definition: chain.c:1269
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
SYSTEMTIME fileTime
Definition: main.cpp:57
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2464
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ok(value,...)
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2251
smooth NULL
Definition: ftsmooth.c:416
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
struct sock * chain
Definition: tcpcore.h:1164
static BYTE cert[]
Definition: msg.c:1437
unsigned long DWORD
Definition: ntddk_ex.h:95
static SYSTEMTIME oct2007
Definition: chain.c:3078
int ret
static const BYTE chain0_0[]
Definition: chain.c:1237
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
Definition: time.c:148
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2485

Referenced by START_TEST().

◆ testCreateCertChainEngine()

static void testCreateCertChainEngine ( void  )
static

Definition at line 79 of file chain.c.

80 {
81  BOOL ret;
84  HCERTCHAINENGINE engine;
85  HCERTSTORE store;
86 
87  if (!pCertCreateCertificateChainEngine || !pCertFreeCertificateChainEngine)
88  {
89  win_skip("Cert*CertificateChainEngine() functions are not available\n");
90  return;
91  }
92 
93  /* Crash
94  ret = pCertCreateCertificateChainEngine(NULL, NULL);
95  ret = pCertCreateCertificateChainEngine(NULL, &engine);
96  ret = pCertCreateCertificateChainEngine(pConfig, NULL);
97  */
98  ret = pCertCreateCertificateChainEngine(pConfig, &engine);
100  "Expected E_INVALIDARG, got %08x\n", GetLastError());
101  /* Crashes
102  config.cbSize = sizeof(config);
103  ret = pCertCreateCertificateChainEngine(pConfig, NULL);
104  */
105  config.cbSize = sizeof(config);
106  ret = pCertCreateCertificateChainEngine(pConfig, &engine);
107  ok(ret, "CertCreateCertificateChainEngine failed: %08x\n", GetLastError());
108  pCertFreeCertificateChainEngine(engine);
109  config.dwFlags = 0xff000000;
110  ret = pCertCreateCertificateChainEngine(pConfig, &engine);
111  ok(ret, "CertCreateCertificateChainEngine failed: %08x\n", GetLastError());
112  pCertFreeCertificateChainEngine(engine);
113 
114  /* Creating a cert with no root certs at all is allowed.. */
117  config.hRestrictedRoot = store;
118  ret = pCertCreateCertificateChainEngine(pConfig, &engine);
119  ok(ret, "CertCreateCertificateChainEngine failed: %08x\n", GetLastError());
120  pCertFreeCertificateChainEngine(engine);
121 
122  /* but creating one with a restricted root with a cert that isn't a member
123  * of the Root store isn't allowed.
124  */
127  ret = pCertCreateCertificateChainEngine(pConfig, &engine);
128  /* ERROR_FILE_NOT_FOUND used in Windows 10 */
129  ok(!ret && ((GetLastError() == CRYPT_E_NOT_FOUND) ||
131  "Expected CRYPT_E_NOT_FOUND or ERROR_FILE_NOT_FOUND, got %08x\n", GetLastError());
132 
133  CertCloseStore(store, 0);
134 }
struct config_s config
#define CRYPT_E_NOT_FOUND
Definition: winerror.h:3007
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2464
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ok(value,...)
#define E_INVALIDARG
Definition: ddrawi.h:101
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2251
smooth NULL
Definition: ftsmooth.c:416
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
int ret
static const BYTE selfSignedCert[]
Definition: chain.c:32
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
#define win_skip
Definition: test.h:141
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2485

Referenced by START_TEST().

◆ testGetCertChain()

static void testGetCertChain ( void  )
static

Definition at line 3886 of file chain.c.

3887 {
3888  BOOL ret;
3890  CERT_CHAIN_PARA para = { 0 };
3892  const CERT_SIMPLE_CHAIN *simple_chain;
3893  const CERT_CHAIN_ELEMENT *chain_elem;
3895  DWORD i;
3896  HCERTSTORE store;
3897  static char one_two_three[] = "1.2.3";
3898  static char oid_server_auth[] = szOID_PKIX_KP_SERVER_AUTH;
3899  LPSTR oids[2];
3900 
3901  /* Basic parameter checks */
3902  if (0)
3903  {
3904  /* Crash on Vista */
3905  ret = pCertGetCertificateChain(NULL, NULL, NULL, NULL, NULL, 0, NULL, NULL);
3906  ok(!ret && GetLastError() == E_INVALIDARG,
3907  "Expected E_INVALIDARG, got %08x\n", GetLastError());
3908  }
3909  ret = pCertGetCertificateChain(NULL, NULL, NULL, NULL, NULL, 0, NULL,
3910  &chain);
3911  ok(!ret && GetLastError() == E_INVALIDARG,
3912  "Expected E_INVALIDARG, got %08x\n", GetLastError());
3913  /* Crash
3914  ret = pCertGetCertificateChain(NULL, NULL, NULL, NULL, &para, 0, NULL, NULL);
3915  ret = pCertGetCertificateChain(NULL, NULL, NULL, NULL, &para, 0, NULL,
3916  &chain);
3917  */
3919  sizeof(bigCert));
3920  if (0)
3921  {
3922  /* Crash on Vista */
3923  ret = pCertGetCertificateChain(NULL, cert, NULL, NULL, NULL, 0, NULL, NULL);
3924  ok(!ret && GetLastError() == E_INVALIDARG,
3925  "Expected E_INVALIDARG, got %08x\n", GetLastError());
3926  }
3927  /* Crash
3928  ret = pCertGetCertificateChain(NULL, cert, NULL, NULL, &para, 0, NULL, NULL);
3929  */
3930 
3931  /* Tests with an invalid cert (one whose signature is bad) */
3932  SetLastError(0xdeadbeef);
3933  ret = pCertGetCertificateChain(NULL, cert, NULL, NULL, &para, 0, NULL,
3934  &chain);
3935  ok(!ret, "Expected failure\n");
3937  GetLastError() == CRYPT_E_ASN1_BADTAG /* Vista */,
3938  "Expected ERROR_INVALID_DATA or CRYPT_E_ASN1_BADTAG, got %d\n", GetLastError());
3939  para.cbSize = sizeof(para);
3940  SetLastError(0xdeadbeef);
3941  ret = pCertGetCertificateChain(NULL, cert, NULL, NULL, &para, 0, NULL,
3942  &chain);
3943  ok(!ret, "Expected failure\n");
3945  GetLastError() == CRYPT_E_ASN1_BADTAG /* Vista */,
3946  "Expected ERROR_INVALID_DATA or CRYPT_E_ASN1_BADTAG, got %d\n", GetLastError());
3947 
3948  para.cbSize = 0;
3949  SetLastError(0xdeadbeef);
3950  ret = pCertGetCertificateChain(NULL, cert, NULL, NULL, &para, 0, NULL,
3951  &chain);
3952  ok(!ret, "Expected failure\n");
3954  GetLastError() == CRYPT_E_ASN1_BADTAG, /* Vista and higher */
3955  "Expected ERROR_INVALID_DATA or CRYPT_E_ASN1_BADTAG, got %d\n", GetLastError());
3956 
3958 
3959  /* Test usage match with Google's cert */
3960  store = CertOpenStore(CERT_STORE_PROV_MEMORY, 0, 0,
3967  google_com, sizeof(google_com));
3969  memset(&para, 0, sizeof(para));
3970  para.cbSize = sizeof(para);
3971  oids[0] = one_two_three;
3975  ret = pCertGetCertificateChain(NULL, cert, &fileTime, store, &para,
3976  0, NULL, &chain);
3977  ok(ret, "CertGetCertificateChain failed: %08x\n", GetLastError());
3978  if (ret)
3979  {
3980  ok(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE,
3981  "expected CERT_TRUST_IS_NOT_VALID_FOR_USAGE\n");
3982  pCertFreeCertificateChain(chain);
3983  }
3984  oids[0] = oid_server_auth;
3985  ret = pCertGetCertificateChain(NULL, cert, &fileTime, store, &para,
3986  0, NULL, &chain);
3987  ok(ret, "CertGetCertificateChain failed: %08x\n", GetLastError());
3988  if (ret)
3989  {
3990  ok(!(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE),
3991  "didn't expect CERT_TRUST_IS_NOT_VALID_FOR_USAGE, got %x\n", chain->TrustStatus.dwErrorStatus);
3992  pCertFreeCertificateChain(chain);
3993  }
3994  oids[1] = one_two_three;
3997  ret = pCertGetCertificateChain(NULL, cert, &fileTime, store, &para,
3998  0, NULL, &chain);
3999  ok(ret, "CertGetCertificateChain failed: %08x\n", GetLastError());
4000  if (ret)
4001  {
4002  ok(chain->TrustStatus.dwErrorStatus & CERT_TRUST_IS_NOT_VALID_FOR_USAGE,
4003  "expected CERT_TRUST_IS_NOT_VALID_FOR_USAGE\n");
4004  pCertFreeCertificateChain(chain);
4005  }
4007  ret = pCertGetCertificateChain(NULL, cert, &fileTime, store, &para,
4008  0, NULL, &chain);
4009  ok(ret, "CertGetCertificateChain failed: %08x\n", GetLastError());
4010  if (ret)
4011  {
4012  ok(!(chain->TrustStatus.dwErrorStatus &
4014  "didn't expect CERT_TRUST_IS_NOT_VALID_FOR_USAGE\n");
4015  pCertFreeCertificateChain(chain);
4016  }
4017  CertCloseStore(store, 0);
4019 
4020  for (i = 0; i < ARRAY_SIZE(chainCheck); i++)
4021  {
4022  chain = getChain(NULL, &chainCheck[i].certs, 0, TRUE, chainCheck[i].validfor,
4023  chainCheck[i].todo, i);
4024  if (chain)
4025  {
4027  "chainCheck", i);
4028  pCertFreeCertificateChain(chain);
4029  }
4030  }
4032  opensslChainCheck.todo, 0);
4033  if (chain)
4034  {
4035  ok(chain->TrustStatus.dwErrorStatus ==
4037  broken((chain->TrustStatus.dwErrorStatus &
4041  "unexpected chain error status %08x\n",
4042  chain->TrustStatus.dwErrorStatus);
4044  chain->TrustStatus.dwErrorStatus)
4046  opensslChainCheck.todo, "opensslChainCheck", 0);
4047  else
4049  incompleteOpensslChainCheck.todo, "incompleteOpensslChainCheck",
4050  0);
4051  pCertFreeCertificateChain(chain);
4052  }
4053  for (i = 0; i < ARRAY_SIZE(chainCheckNoStore); i++)
4054  {
4055  chain = getChain(NULL, &chainCheckNoStore[i].certs, 0, FALSE, &oct2007,
4057  if (chain)
4058  {
4060  chainCheckNoStore[i].todo, "chainCheckNoStore", i);
4061  pCertFreeCertificateChain(chain);
4062  }
4063  }
4066  if (chain)
4067  {
4068  ok(chain->TrustStatus.dwErrorStatus ==
4070  broken((chain->TrustStatus.dwErrorStatus &
4074  "unexpected chain error status %08x\n",
4075  chain->TrustStatus.dwErrorStatus);
4077  chain->TrustStatus.dwErrorStatus)
4079  chainCheckEmbeddedNull.todo, "chainCheckEmbeddedNull", 0);
4080  else
4082  chainCheckEmbeddedNullBroken.todo, "chainCheckEmbeddedNullBroken",
4083  0);
4084  pCertFreeCertificateChain(chain);
4085  }
4086 
4088  ok(store != NULL, "CertOpenStore failed: %u\n", GetLastError());
4089 
4092  ok(ret, "CertAddEncodedCertificateToStore failed: %u\n", GetLastError());
4093 
4094  oids[0] = oid_server_auth;
4095  memset(&para, 0, sizeof(para));
4096  para.cbSize = sizeof(para);
4100 
4101  /* Pass store that does not contain all certs in chain. */
4102  ret = CertGetCertificateChain(NULL, cert, &fileTime, store, &para, 0, NULL, &chain);
4103  ok(ret, "CertGetCertificateChain failed: %u\n", GetLastError());
4104 
4105  if(chain->TrustStatus.dwErrorStatus == CERT_TRUST_IS_PARTIAL_CHAIN) { /* win2k */
4106  win_skip("winehq cert reported as partial chain, skipping its tests\n");
4107  pCertFreeCertificateChain(chain);
4108  CertCloseStore(store, 0);
4109  return;
4110  }
4111 
4112  ok(!chain->TrustStatus.dwErrorStatus, "chain->TrustStatus.dwErrorStatus = %x\n", chain->TrustStatus.dwErrorStatus);
4113  todo_wine
4114  ok(chain->TrustStatus.dwInfoStatus == CERT_TRUST_HAS_PREFERRED_ISSUER, "chain->TrustStatus.dwInfoStatus = %x\n",
4115  chain->TrustStatus.dwInfoStatus);
4116 
4117  ok(chain->cChain == 1, "chain->cChain = %d\n", chain->cChain);
4118  ok(!chain->cLowerQualityChainContext, "chain->cLowerQualityChainContext = %x\n", chain->cLowerQualityChainContext);
4119  ok(!chain->rgpLowerQualityChainContext, "chain->rgpLowerQualityChainContext = %p\n", chain->rgpLowerQualityChainContext);
4120 
4121  simple_chain = *chain->rgpChain;
4122  ok(simple_chain->cbSize == sizeof(*simple_chain), "simple_chain->cbSize = %u\n", simple_chain->cbSize);
4123  ok(!simple_chain->TrustStatus.dwErrorStatus, "simple_chain->TrustStatus.dwErrorStatus = %x\n",
4124  simple_chain->TrustStatus.dwErrorStatus);
4125  todo_wine
4127  "simple_chain->TrustStatus.dwInfoStatus = %x\n", simple_chain->TrustStatus.dwInfoStatus);
4128  ok(simple_chain->cElement == 3, "simple_chain->cElement = %u\n", simple_chain->cElement);
4129 
4130  for(i=0; i < simple_chain->cElement; i++) {
4131  chain_elem = simple_chain->rgpElement[i];
4132  ok(chain_elem->cbSize == sizeof(*chain_elem), "chain_elem->cbSize = %u\n", chain_elem->cbSize);
4133 
4134  ok(!chain_elem->TrustStatus.dwErrorStatus, "chain_elem->TrustStatus.dwErrorStatus = %x\n",
4135  chain_elem->TrustStatus.dwErrorStatus);
4136  trace("info[%u] = %x\n", i, chain_elem->TrustStatus.dwInfoStatus);
4138  "chain_elem->pCertContext->dwCertEncodingType = %x\n",
4139  chain_elem->pCertContext->dwCertEncodingType);
4140  }
4141 
4142  ok(simple_chain->rgpElement[0]->pCertContext == cert, "simple_chain->rgpElement[0]->pCertContext != cert\n");
4143  test_name_blob(&simple_chain->rgpElement[1]->pCertContext->pCertInfo->Issuer, "US, GeoTrust Inc., GeoTrust Global CA");
4144  test_name_blob(&simple_chain->rgpElement[1]->pCertContext->pCertInfo->Subject, "US, \"GeoTrust, Inc.\", RapidSSL CA");
4145  test_name_blob(&simple_chain->rgpElement[2]->pCertContext->pCertInfo->Issuer, "US, GeoTrust Inc., GeoTrust Global CA");
4146  test_name_blob(&simple_chain->rgpElement[2]->pCertContext->pCertInfo->Subject, "US, GeoTrust Inc., GeoTrust Global CA");
4147 
4148  pCertFreeCertificateChain(chain);
4149 
4150  /* Test revocation flags */
4152  &chain);
4153  ok(ret, "CertGetCertificateChain failed: %u\n", GetLastError());
4154  ok(!chain->TrustStatus.dwErrorStatus, "chain->TrustStatus.dwErrorStatus = %x\n", chain->TrustStatus.dwErrorStatus);
4155  pCertFreeCertificateChain(chain);
4156 
4158  ok(ret, "CertGetCertificateChain failed: %u\n", GetLastError());
4159  ok(!chain->TrustStatus.dwErrorStatus
4160  || broken(chain->TrustStatus.dwErrorStatus == CERT_TRUST_REVOCATION_STATUS_UNKNOWN), /* XP */
4161  "chain->TrustStatus.dwErrorStatus = %x\n", chain->TrustStatus.dwErrorStatus);
4162  pCertFreeCertificateChain(chain);
4163 
4165  NULL, &chain);
4166  ok(ret, "CertGetCertificateChain failed: %u\n", GetLastError());
4167  ok(!chain->TrustStatus.dwErrorStatus, "chain->TrustStatus.dwErrorStatus = %x\n", chain->TrustStatus.dwErrorStatus);
4168  pCertFreeCertificateChain(chain);
4169 
4170  /* Test HCCE_LOCAL_MACHINE */
4172  ok(ret, "CertGetCertificateChain failed: %u\n", GetLastError());
4173  pCertFreeCertificateChain(chain);
4174 
4176  CertCloseStore(store, 0);
4177 }
BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE hChainEngine, PCCERT_CONTEXT pCertContext, LPFILETIME pTime, HCERTSTORE hAdditionalStore, PCERT_CHAIN_PARA pChainPara, DWORD dwFlags, LPVOID pvReserved, PCCERT_CHAIN_CONTEXT *ppChainContext)
Definition: chain.c:2879
#define CRYPT_E_ASN1_BADTAG
Definition: winerror.h:3095
CERT_ENHKEY_USAGE Usage
Definition: wincrypt.h:1048
#define trace(...)
Definition: kmt_test.h:217
static const BYTE geotrust_global_ca[]
Definition: chain.c:146
#define TRUE
Definition: types.h:120
#define CERT_CHAIN_REVOCATION_CHECK_END_CERT
Definition: wincrypt.h:1056
CONST_BLOB_ARRAY certs
Definition: chain.c:3092
static PCCERT_CHAIN_CONTEXT getChain(HCERTCHAINENGINE engine, const CONST_BLOB_ARRAY *certArray, DWORD flags, BOOL includeStore, LPSYSTEMTIME checkTime, DWORD todo, DWORD testIndex)
Definition: chain.c:2916
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT
Definition: wincrypt.h:1058
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
CERT_TRUST_STATUS status
Definition: chain.c:3031
static ChainCheck chainCheckNoStore[]
Definition: chain.c:3826
DWORD dwCertEncodingType
Definition: wincrypt.h:479
BOOL WINAPI CertAddEncodedCertificateToStore(HCERTSTORE hCertStore, DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded, DWORD dwAddDisposition, PCCERT_CONTEXT *ppCertContext)
Definition: cert.c:58
BOOL todo
Definition: filedlg.c:313
CERT_USAGE_MATCH RequestedUsage
Definition: wincrypt.h:1070
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define szOID_PKIX_KP_SERVER_AUTH
Definition: wincrypt.h:3294
static const BYTE winehq_org[]
Definition: chain.c:404
char * LPSTR
Definition: xmlstorage.h:182
#define HCCE_LOCAL_MACHINE
Definition: wincrypt.h:3614
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
SYSTEMTIME fileTime
Definition: main.cpp:57
static void checkChainStatus(PCCERT_CHAIN_CONTEXT chain, const ChainStatusCheck *chainStatus, DWORD todo, LPCSTR testName, DWORD testIndex)
Definition: chain.c:3036
#define CERT_STORE_CREATE_NEW_FLAG
Definition: wincrypt.h:2464
unsigned int BOOL
Definition: ntddk_ex.h:94
static ChainCheck chainCheck[]
Definition: chain.c:3576
CERT_NAME_BLOB Issuer
Definition: wincrypt.h:244
PCCERT_CONTEXT pCertContext
Definition: wincrypt.h:916
#define ok(value,...)
#define E_INVALIDARG
Definition: ddrawi.h:101
#define CERT_STORE_PROV_MEMORY
Definition: wincrypt.h:2251
smooth NULL
Definition: ftsmooth.c:416
#define CERT_TRUST_REVOCATION_STATUS_UNKNOWN
Definition: wincrypt.h:876
BOOL WINAPI CertCloseStore(HCERTSTORE hCertStore, DWORD dwFlags)
Definition: store.c:1127
static const BYTE google_com[]
Definition: chain.c:278
struct sock * chain
Definition: tcpcore.h:1164
static BYTE cert[]
Definition: msg.c:1437
PCERT_INFO pCertInfo
Definition: wincrypt.h:482
static ChainCheck incompleteOpensslChainCheck
Definition: chain.c:3846
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:917
#define CERT_CHAIN_REVOCATION_CHECK_CHAIN
Definition: wincrypt.h:1057
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:409
static ChainCheck chainCheckEmbeddedNullBroken
Definition: chain.c:3867
static SYSTEMTIME oct2009
Definition: chain.c:3080
#define USAGE_MATCH_TYPE_AND
Definition: wincrypt.h:1043
static SYSTEMTIME oct2007
Definition: chain.c:3078
ChainStatusCheck status
Definition: chain.c:3093
int ret
static ChainCheck opensslChainCheck
Definition: chain.c:3841
#define todo_wine
Definition: test.h:154
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
static ChainCheck chainCheckEmbeddedNull
Definition: chain.c:3859
#define test_name_blob(a, b)
Definition: chain.c:3877
#define CRYPT_ASN_ENCODING
Definition: wincrypt.h:2295
#define broken(x)
Definition: _sntprintf.h:21
#define ERROR_INVALID_DATA
Definition: winerror.h:116
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:874
BOOL WINAPI SystemTimeToFileTime(IN CONST SYSTEMTIME *lpSystemTime, OUT LPFILETIME lpFileTime)
Definition: time.c:148
static const BYTE google_internet_authority[]
Definition: chain.c:207
PCERT_CHAIN_ELEMENT * rgpElement
Definition: wincrypt.h:928
DWORD cUsageIdentifier
Definition: wincrypt.h:719
#define ARRAY_SIZE(a)
Definition: main.h:24
#define CERT_TRUST_HAS_PREFERRED_ISSUER
Definition: wincrypt.h:901
HCERTSTORE WINAPI CertOpenStore(LPCSTR lpszStoreProvider, DWORD dwMsgAndCertEncodingType, HCRYPTPROV_LEGACY hCryptProv, DWORD dwFlags, const void *pvPara)
Definition: store.c:815
CERT_NAME_BLOB Subject
Definition: wincrypt.h:247
LPSTR * rgpszUsageIdentifier
Definition: wincrypt.h:720
DWORD todo
Definition: chain.c:3094
CERT_TRUST_STATUS TrustStatus
Definition: wincrypt.h:926
static SYSTEMTIME jun2013
Definition: chain.c:3084
#define memset(x, y, z)
Definition: compat.h:39
#define USAGE_MATCH_TYPE_OR
Definition: wincrypt.h:1044
#define win_skip
Definition: test.h:141
#define CERT_STORE_ADD_ALWAYS
Definition: wincrypt.h:2485
static const BYTE bigCert[]
Definition: chain.c:136
#define CERT_TRUST_IS_PARTIAL_CHAIN
Definition: wincrypt.h:891
CERT_TRUST_STATUS statusToIgnore
Definition: chain.c:3030
Definition: ps.c:97

Referenced by START_TEST().

◆ testVerifyCertChainPolicy()

static void testVerifyCertChainPolicy ( void  )
static

Definition at line 4856 of file chain.c.

4857 {
4858  BOOL ret;
4860  CERT_CHAIN_PARA chainPara = { sizeof(CERT_CHAIN_PARA), { 0 } };
4862  CERT_CHAIN_POLICY_STATUS policyStatus = { 0 };
4863  CERT_CHAIN_POLICY_PARA policyPara = { 0 };
4864 
4865  if (!pCertVerifyCertificateChainPolicy)
4866  {
4867  win_skip("CertVerifyCertificateChainPolicy() is not available\n");
4868  return;
4869  }
4870 
4871  /* Crash
4872  ret = pCertVerifyCertificateChainPolicy(NULL, NULL, NULL, NULL);
4873  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, NULL, NULL,
4874  NULL);
4875  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, NULL,
4876  &chainPara, NULL);
4877  */
4878  SetLastError(0xdeadbeef);
4879  ret = pCertVerifyCertificateChainPolicy(NULL, NULL, NULL, &policyStatus);
4881  "Expected ERROR_FILE_NOT_FOUND, got %08x\n", GetLastError());
4882  /* Crashes
4883  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, NULL, NULL,
4884  &policyStatus);
4885  */
4887  sizeof(selfSignedCert));
4888  pCertGetCertificateChain(NULL, cert, NULL, NULL, &chainPara, 0, NULL,
4889  &chain);
4890  /* Crash
4891  ret = pCertVerifyCertificateChainPolicy(NULL, chain, NULL, NULL);
4892  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, chain, NULL,
4893  NULL);
4894  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, chain,
4895  &chainPara, NULL);
4896  */
4897  /* Size of policy status is apparently ignored, as is pChainPolicyPara */
4898  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, chain, NULL,
4899  &policyStatus);
4900  ok(ret, "CertVerifyCertificateChainPolicy failed: %08x\n", GetLastError());
4901  ok(policyStatus.dwError == CERT_E_UNTRUSTEDROOT ||
4902  policyStatus.dwError == TRUST_E_CERT_SIGNATURE, /* win7 + win8 */
4903  "Expected CERT_E_UNTRUSTEDROOT or TRUST_E_CERT_SIGNATURE, got %08x\n", policyStatus.dwError);
4904  ok(policyStatus.lChainIndex == 0 && policyStatus.lElementIndex == 0,
4905  "Expected both indexes 0, got %d, %d\n", policyStatus.lChainIndex,
4906  policyStatus.lElementIndex);
4907  ret = pCertVerifyCertificateChainPolicy(CERT_CHAIN_POLICY_BASE, chain,
4908  &policyPara, &policyStatus);
4909  ok(ret, "CertVerifyCertificateChainPolicy failed: %08x\n", GetLastError());
4910  ok(policyStatus.dwError == CERT_E_UNTRUSTEDROOT ||
4911  policyStatus.dwError == TRUST_E_CERT_SIGNATURE, /* win7 + win8 */
4912  "Expected CERT_E_UNTRUSTEDROOT or TRUST_E_CERT_SIGNATURE, got %08x\n", policyStatus.dwError);
4913  ok(policyStatus.lChainIndex == 0 && policyStatus.lElementIndex == 0,
4914  "Expected both indexes 0, got %d, %d\n", policyStatus.lChainIndex,
4915  policyStatus.lElementIndex);
4916  pCertFreeCertificateChain(chain);
4918 
4920  check_ssl_policy();
4924 }
#define CERT_E_UNTRUSTEDROOT
Definition: winerror.h:3125
BOOL WINAPI CertFreeCertificateContext(PCCERT_CONTEXT pCertContext)
Definition: cert.c:371
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define X509_ASN_ENCODING
Definition: wincrypt.h:2297
struct _CERT_CHAIN_PARA CERT_CHAIN_PARA
unsigned int BOOL
Definition: ntddk_ex.h:94
#define CERT_CHAIN_POLICY_BASE
Definition: wincrypt.h:962
static void check_ssl_policy(void)
Definition: chain.c:4661
#define ok(value,...)
smooth NULL
Definition: ftsmooth.c:416
struct sock * chain
Definition: tcpcore.h:1164
static BYTE cert[]
Definition: msg.c:1437
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define CERT_CHAIN_POLICY_BASIC_CONSTRAINTS
Definition: wincrypt.h:966
#define SetLastError(x)
Definition: compat.h:409
static SYSTEMTIME oct2007
Definition: chain.c:3078
int ret
PCCERT_CONTEXT WINAPI CertCreateCertificateContext(DWORD dwCertEncodingType, const BYTE *pbCertEncoded, DWORD cbCertEncoded)
Definition: cert.c:316
static const BYTE selfSignedCert[]
Definition: chain.c:32
#define CHECK_CHAIN_POLICY_STATUS_ARRAY(policy, engine, array, date, para)
Definition: chain.c:4587
#define TRUST_E_CERT_SIGNATURE
Definition: winerror.h:3107
static const ChainPolicyCheck basicConstraintsPolicyCheck[]
Definition: chain.c:4461
static void check_authenticode_policy(void)
Definition: chain.c:4637
#define win_skip
Definition: test.h:141
static void check_base_policy(void)
Definition: chain.c:4599

Referenced by START_TEST().

◆ VOID()

static HCERTCHAINENGINE* static PCCERT_CHAIN_CONTEXT* static VOID ( WINAPI pCertFreeCertificateChain)
static

Variable Documentation

◆ authenticodePolicyCheck

const ChainPolicyCheck authenticodePolicyCheck[]
static

Definition at line 4411 of file chain.c.

Referenced by check_authenticode_policy().

◆ badDateNestingStatus

const CERT_CHAIN_POLICY_STATUS badDateNestingStatus
static
Initial value:
=
#define CERT_E_VALIDITYPERIODNESTING
Definition: winerror.h:3118
smooth NULL
Definition: ftsmooth.c:416

Definition at line 4272 of file chain.c.

◆ basePolicyCheck

const ChainPolicyCheck basePolicyCheck[]
static

Definition at line 4225 of file chain.c.

Referenced by check_base_policy().

◆ basicConstraintsPolicyCheck

const ChainPolicyCheck basicConstraintsPolicyCheck[]
static

Definition at line 4461 of file chain.c.

Referenced by testVerifyCertChainPolicy().

◆ battlenet

const BYTE battlenet[]
static

Definition at line 495 of file chain.c.

◆ battlenetChain

CONST_DATA_BLOB battlenetChain[]
static
Initial value:
= {
{ sizeof(battlenet), battlenet },
}
static const BYTE battlenet[]
Definition: chain.c:495
static const BYTE thawte_ssl_ca[]
Definition: chain.c:634
static const BYTE thawte_primary_ca[]
Definition: chain.c:562

Definition at line 3518 of file chain.c.

◆ bigCert

const BYTE bigCert[]
static
Initial value:
= { 0x30, 0x7a, 0x02, 0x01, 0x01, 0x30, 0x02, 0x06,
0x00, 0x30, 0x15, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13,
0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20, 0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x22,
0x18, 0x0f, 0x31, 0x36, 0x30, 0x31, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30,
0x30, 0x30, 0x30, 0x5a, 0x18, 0x0f, 0x31, 0x36, 0x30, 0x31, 0x30, 0x31, 0x30,
0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x30, 0x15, 0x31, 0x13, 0x30,
0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0a, 0x4a, 0x75, 0x61, 0x6e, 0x20,
0x4c, 0x61, 0x6e, 0x67, 0x00, 0x30, 0x07, 0x30, 0x02, 0x06, 0x00, 0x03, 0x01,
0x00, 0xa3, 0x16, 0x30, 0x14, 0x30, 0x12, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01,
0x01, 0xff, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x01 }

Definition at line 136 of file chain.c.

Referenced by testGetCertChain().

◆ chain0

CONST_DATA_BLOB chain0[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain0_1), chain0_1 },
}
static const BYTE chain0_1[]
Definition: chain.c:1269
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3098 of file chain.c.

◆ chain0_0

const BYTE chain0_0[]
static

Definition at line 1237 of file chain.c.

Referenced by check_ssl_policy(), and test_CERT_CHAIN_PARA_cbSize().

◆ chain0_1

const BYTE chain0_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x98,0x30,0x82,0x01,0x01,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x22,0x18,0x0f,0x31,0x36,0x30,0x31,0x31,0x31,0x32,
0x32,0x31,0x38,0x35,0x32,0x30,0x37,0x5a,0x18,0x0f,0x31,0x36,0x32,0x38,0x30,
0x38,0x32,0x36,0x30,0x35,0x32,0x30,0x35,0x37,0x5a,0x30,0x10,0x31,0x0e,0x30,
0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,
0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,
0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,
0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,
0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,
0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,
0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,
0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,
0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,
0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,
0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,
0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x3c,
0x90,0x45,0x5b,0x81,0x25,0x9d,0x7a,0x10,0x9f,0x15,0x25,0x03,0x52,0x78,0x09,
0x6f,0x62,0x66,0x78,0x01,0x69,0x6a,0x7f,0x19,0x02,0x18,0xd8,0xc0,0x89,0x2f,
0x0f,0x47,0xa7,0x17,0xc2,0xd7,0xe2,0x81,0x7e,0xea,0x54,0xd4,0xe6,0xcc,0x8f,
0x88,0x1a,0xee,0x28,0x42,0x6c,0x77,0xf5,0xec,0x8c,0x05,0xa5,0x7f,0xee,0x2e,
0x0b,0xbc,0xde,0xb0,0x71,0x2c,0x83,0x32,0xcb,0x49,0x00,0x46,0x03,0x95,0x58,
0x6c,0x57,0x0c,0x5a,0x69,0x3c,0xfa,0xbf,0x46,0x7a,0x4d,0xd0,0x23,0x77,0x23,
0xac,0x1d,0x33,0xb7,0x87,0xb4,0xc6,0x6b,0x52,0xa1,0xed,0x9a,0xb8,0x8e,0x1a,
0xcb,0xc3,0xd3,0x50,0xe0,0x0d,0x12,0x5d,0x0e,0x84,0x52,0xa5,0x12,0x76,0x6b,
0xbf,0xb8,0xbe,0x51,0xc0,0xa6,0xae }

Definition at line 1269 of file chain.c.

Referenced by test_CERT_CHAIN_PARA_cbSize().

◆ chain1

CONST_DATA_BLOB chain1[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain1_1), chain1_1 },
}
static const BYTE chain1_1[]
Definition: chain.c:1301
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3110 of file chain.c.

◆ chain10

CONST_DATA_BLOB chain10[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain10_1), chain10_1 },
{ sizeof(chain7_1), chain7_1 },
}
static const BYTE chain10_1[]
Definition: chain.c:1727
static const BYTE chain7_1[]
Definition: chain.c:1567
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3225 of file chain.c.

◆ chain10_1

const BYTE chain10_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x9b,0x30,0x82,0x01,0x08,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
0xbf,0x99,0x4f,0x14,0x03,0x77,0x44,0xb8,0x49,0x02,0x70,0xa1,0xb8,0x9c,0xa7,
0x24,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
0x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
0x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
0x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
0x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
0xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
0x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
0x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
0xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
0x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
0x00,0x01,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x03,0x81,
0x81,0x00,0xa8,0xec,0x8c,0x34,0xe7,0x2c,0xdf,0x75,0x87,0xc4,0xf7,0xda,0x71,
0x72,0x29,0xb2,0x48,0xa8,0x2a,0xec,0x7b,0x7d,0x19,0xb9,0x5f,0x1d,0xd9,0x91,
0x2b,0xc4,0x28,0x7e,0xd6,0xb5,0x91,0x69,0xa5,0x8a,0x1a,0x1f,0x97,0x98,0x46,
0x9d,0xdf,0x12,0xf6,0x45,0x62,0xad,0x60,0xb6,0xba,0xb0,0xfd,0xf5,0x9f,0xc6,
0x98,0x05,0x4f,0x4d,0x48,0xdc,0xee,0x69,0xbe,0xb8,0xc4,0xc4,0xd7,0x1b,0xb1,
0x1f,0x64,0xd6,0x45,0xa7,0xdb,0xb3,0x87,0x63,0x0f,0x54,0xe1,0x3a,0x6b,0x57,
0x36,0xd7,0x68,0x65,0xcf,0xda,0x57,0x8d,0xcd,0x84,0x75,0x47,0x26,0x2c,0xef,
0x1e,0x8f,0xc7,0x3b,0xee,0x5d,0x03,0xa6,0xdf,0x3a,0x20,0xb2,0xcc,0xc9,0x09,
0x2c,0xfe,0x2b,0x79,0xb0,0xca,0x2c,0x9a,0x81,0x6b }

Definition at line 1727 of file chain.c.

◆ chain11

CONST_DATA_BLOB chain11[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain11_1), chain11_1 },
{ sizeof(chain7_1), chain7_1 },
}
static const BYTE chain7_1[]
Definition: chain.c:1567
static const BYTE chain0_0[]
Definition: chain.c:1237
static const BYTE chain11_1[]
Definition: chain.c:1762

Definition at line 3238 of file chain.c.

◆ chain11_1

const BYTE chain11_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x9b,0x30,0x82,0x01,0x08,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
0x72,0x41,0xa2,0x53,0xd2,0x33,0x0b,0xac,0x4a,0x30,0xfe,0x0a,0xe0,0x2e,0xd4,
0x03,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
0x02,0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,
0xb1,0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,
0x7e,0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,
0xeb,0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,
0x63,0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,
0xca,0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,
0xcb,0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,
0x87,0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,
0x60,0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,
0x00,0x01,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x03,0x81,
0x81,0x00,0x51,0x17,0xfb,0x2a,0x69,0x31,0x36,0xa7,0x37,0x2c,0x1f,0x38,0xee,
0xe3,0xf1,0xae,0x63,0x61,0xac,0x63,0x13,0xc2,0x3b,0x29,0xca,0xb1,0x8e,0x27,
0x41,0xfa,0xb3,0x7d,0x42,0xbe,0xf0,0x9c,0xe0,0xc7,0x69,0xba,0x80,0xf4,0x87,
0x7c,0x6f,0x77,0x70,0x6b,0x77,0x7d,0x5c,0x58,0x95,0x07,0xbd,0xac,0xe2,0x5d,
0x65,0x12,0xb0,0xae,0xf4,0x01,0x14,0x01,0xba,0xf9,0xa0,0x32,0x10,0xea,0x09,
0x12,0xcf,0xf1,0xbc,0x37,0xc9,0x42,0xc3,0x8c,0x9e,0xa2,0xc3,0x5e,0x2e,0x56,
0xe9,0xa7,0xd8,0x1c,0x1c,0x8c,0x1c,0x2f,0xd8,0xfb,0x67,0x44,0xd4,0xa3,0x79,
0x6d,0x53,0x17,0x56,0x3c,0x3e,0xd0,0x67,0x36,0x0c,0x8b,0x77,0xab,0x40,0xc7,
0x27,0xd9,0x44,0x69,0x13,0xeb,0x09,0xec,0x06,0xe2 }

Definition at line 1762 of file chain.c.

◆ chain12

CONST_DATA_BLOB chain12[]
static
Initial value:
= {
{ sizeof(chain12_0), chain12_0 },
{ sizeof(chain7_1), chain7_1 },
}
static const BYTE chain12_0[]
Definition: chain.c:1794
static const BYTE chain7_1[]
Definition: chain.c:1567

Definition at line 3243 of file chain.c.

◆ chain12_0

const BYTE chain12_0[]
static

Definition at line 1794 of file chain.c.

◆ chain13

CONST_DATA_BLOB chain13[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain13_1), chain13_1 },
}
static const BYTE chain13_1[]
Definition: chain.c:1829
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3255 of file chain.c.

◆ chain13_1

const BYTE chain13_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x36,0x30,0x31,0x30,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
0x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,
0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,
0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,
0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,
0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,
0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,
0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,
0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,
0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,
0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x85,0xc9,0xc5,0x08,0x0b,0xb1,
0xff,0x58,0x8f,0xee,0x66,0x5f,0xa3,0x77,0x63,0x9f,0xd1,0x53,0x03,0xdc,0xf6,
0x59,0x08,0x02,0x1f,0xdc,0x52,0x5a,0x52,0x38,0xa4,0x0b,0x83,0x12,0x19,0xd6,
0xb5,0xb8,0x81,0x17,0xcd,0x10,0x5d,0x96,0x16,0x9d,0x51,0x5b,0xf9,0x31,0x3e,
0x36,0xac,0x30,0xd5,0xd6,0xa0,0x30,0x5c,0x9c,0xcb,0xe1,0x02,0xfd,0x73,0xc3,
0xa1,0x58,0xfe,0x12,0xb0,0xa6,0xbd,0x11,0x86,0xdb,0x20,0x17,0x29,0x1e,0x09,
0x63,0x4d,0x28,0xe4,0x55,0x2d,0xa1,0x78,0xde,0x28,0x0b,0x1b,0x35,0x40,0x4c,
0xf1,0xb0,0x6e,0x82,0x34,0x2b,0x7f,0x3b,0x2e,0x27,0x6b,0xf7,0xde,0x73,0x9a,
0x98,0xac,0x79,0x33,0x1a,0xdd,0x03,0x95,0x60,0x8a,0x08,0xba,0xcb,0x8a,0xbf,
0xea,0xe3 }

Definition at line 1829 of file chain.c.

◆ chain14

CONST_DATA_BLOB chain14[]
static
Initial value:
= {
{ sizeof(chain14_0), chain14_0 },
{ sizeof(chain14_1), chain14_1 },
}
static const BYTE chain14_0[]
Definition: chain.c:1861
static const BYTE chain14_1[]
Definition: chain.c:1893

Definition at line 3267 of file chain.c.

◆ chain14_0

const BYTE chain14_0[]
static

Definition at line 1861 of file chain.c.

◆ chain14_1

const BYTE chain14_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,
0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,0x48,
0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,0x20,
0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,0xb8,
0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,0x3c,
0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,0x8e,
0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,0x28,
0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,0x98,
0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,0x4a,
0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,0x00,
0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
0x81,0x81,0x00,0x63,0x67,0x7f,0x82,0x91,0xe2,0x42,0x45,0x98,0xbc,0xe5,0x03,
0x6c,0x7d,0xc9,0xab,0xdb,0x95,0xc4,0x96,0x86,0xfd,0xcf,0xe6,0x32,0x4a,0x0b,
0x7c,0x5b,0x76,0x39,0x71,0x26,0x54,0x60,0x1d,0xce,0x4f,0x29,0x22,0x9a,0xb7,
0x7d,0x8d,0xfa,0x2c,0x99,0x0d,0xa6,0xa4,0x2e,0xd3,0xf6,0x3e,0xaf,0xea,0x89,
0xa0,0x16,0x40,0x0f,0xf1,0x50,0xaa,0x98,0xdc,0xc2,0x69,0x90,0x6f,0xc6,0x4a,
0xee,0x26,0x9e,0x5e,0x7d,0x4b,0x06,0x65,0x54,0x15,0x67,0x9e,0xe5,0x1d,0x1c,
0x6f,0x0c,0x6e,0x84,0x29,0xf9,0x12,0xe9,0x71,0xdd,0xaf,0x9a,0x3d,0x2a,0xc1,
0x60,0xeb,0x27,0xed,0x7c,0xbf,0xc4,0x84,0x17,0xa5,0xa6,0x41,0x29,0x13,0x8d,
0x6c,0xdd,0x7c,0x3d,0x01,0x03,0xf8,0x70,0x97,0x3c,0x45 }

Definition at line 1893 of file chain.c.

◆ chain15

CONST_DATA_BLOB chain15[]
static
Initial value:
= {
{ sizeof(chain15_0), chain15_0 },
{ sizeof(chain14_1), chain14_1 },
}
static const BYTE chain15_0[]
Definition: chain.c:1924
static const BYTE chain14_1[]
Definition: chain.c:1893

Definition at line 3279 of file chain.c.

◆ chain15_0

const BYTE chain15_0[]
static

Definition at line 1924 of file chain.c.

◆ chain16

CONST_DATA_BLOB chain16[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain16_1), chain16_1 },
}
static const BYTE chain16_1[]
Definition: chain.c:1961
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3291 of file chain.c.

◆ chain16_1

const BYTE chain16_1[]
static

Definition at line 1961 of file chain.c.

◆ chain17

CONST_DATA_BLOB chain17[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain17_1), chain17_1 },
{ sizeof(chain17_2), chain17_2 },
}
static const BYTE chain0_0[]
Definition: chain.c:1237
static const BYTE chain17_1[]
Definition: chain.c:1996
static const BYTE chain17_2[]
Definition: chain.c:2027

Definition at line 3304 of file chain.c.

◆ chain17_1

const BYTE chain17_1[]
static

Definition at line 1996 of file chain.c.

◆ chain17_2

const BYTE chain17_2[]
static
Initial value:
= {
0x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,
0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,
0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,
0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,
0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,
0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,
0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,
0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,
0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,
0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,
0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
0x81,0x81,0x00,0x5c,0xb5,0x55,0xd7,0x2c,0x70,0xc5,0x6e,0xc0,0x8e,0x30,0x1f,
0xf2,0x8e,0x55,0xd6,0xf6,0x95,0xa4,0x51,0xd8,0xf0,0x39,0x98,0x12,0x57,0xa7,
0x6d,0x0c,0xfd,0xcb,0x25,0xf1,0xc4,0x73,0x85,0x78,0x82,0x15,0x12,0x08,0xb6,
0x05,0x85,0x4f,0x5a,0x59,0x1f,0x03,0xdf,0x04,0xef,0xc2,0xb0,0xee,0xd7,0x73,
0x09,0xca,0xbb,0xfb,0xd8,0xec,0x8b,0x39,0x01,0x14,0xc9,0x03,0xc9,0x08,0x4d,
0x97,0xc7,0xf2,0x0b,0x54,0x67,0xf7,0x7c,0xc6,0xee,0x74,0xd5,0xa2,0x10,0x3e,
0xd9,0x3a,0x7a,0x9d,0xeb,0xeb,0xd8,0x8e,0x43,0x74,0xc3,0xa5,0x3b,0x1a,0x4b,
0x8a,0xbc,0x6a,0x2c,0x15,0x4b,0x72,0x0b,0xac,0xa4,0x1a,0x97,0x80,0xf8,0xb1,
0xd3,0xd7,0x1a,0xf3,0xf5,0x9f,0x7c,0x4c,0x7d,0x7c,0xc7 }

Definition at line 2027 of file chain.c.

◆ chain18

CONST_DATA_BLOB chain18[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain18_1), chain18_1 },
{ sizeof(chain18_2), chain18_2 },
}
static const BYTE chain18_1[]
Definition: chain.c:2058
static const BYTE chain18_2[]
Definition: chain.c:2089
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3318 of file chain.c.

◆ chain18_1

const BYTE chain18_1[]
static

Definition at line 2058 of file chain.c.

◆ chain18_2

const BYTE chain18_2[]
static
Initial value:
= {
0x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,
0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,
0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,
0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,
0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,
0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,
0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,
0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,
0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,
0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,
0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
0x81,0x81,0x00,0x5c,0xb5,0x55,0xd7,0x2c,0x70,0xc5,0x6e,0xc0,0x8e,0x30,0x1f,
0xf2,0x8e,0x55,0xd6,0xf6,0x95,0xa4,0x51,0xd8,0xf0,0x39,0x98,0x12,0x57,0xa7,
0x6d,0x0c,0xfd,0xcb,0x25,0xf1,0xc4,0x73,0x85,0x78,0x82,0x15,0x12,0x08,0xb6,
0x05,0x85,0x4f,0x5a,0x59,0x1f,0x03,0xdf,0x04,0xef,0xc2,0xb0,0xee,0xd7,0x73,
0x09,0xca,0xbb,0xfb,0xd8,0xec,0x8b,0x39,0x01,0x14,0xc9,0x03,0xc9,0x08,0x4d,
0x97,0xc7,0xf2,0x0b,0x54,0x67,0xf7,0x7c,0xc6,0xee,0x74,0xd5,0xa2,0x10,0x3e,
0xd9,0x3a,0x7a,0x9d,0xeb,0xeb,0xd8,0x8e,0x43,0x74,0xc3,0xa5,0x3b,0x1a,0x4b,
0x8a,0xbc,0x6a,0x2c,0x15,0x4b,0x72,0x0b,0xac,0xa4,0x1a,0x97,0x80,0xf8,0xb1,
0xd3,0xd7,0x1a,0xf3,0xf5,0x9f,0x7c,0x4c,0x7d,0x7c,0xc7 }

Definition at line 2089 of file chain.c.

◆ chain19

CONST_DATA_BLOB chain19[]
static
Initial value:
= {
{ sizeof(chain19_0), chain19_0 },
{ sizeof(chain19_1), chain19_1 },
}
static const BYTE chain19_1[]
Definition: chain.c:2151
static const BYTE chain19_0[]
Definition: chain.c:2118

Definition at line 3332 of file chain.c.

◆ chain19_0

const BYTE chain19_0[]
static

Definition at line 2118 of file chain.c.

◆ chain19_1

const BYTE chain19_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
0x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x61,0x2e,0x63,0x6f,0x6d,0x30,0x0d,
0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
0x81,0x00,0x8e,0x1d,0xf5,0xac,0x59,0x8e,0x39,0x7a,0x4d,0x79,0x79,0x68,0xa9,
0x13,0x25,0xbf,0x71,0x62,0x73,0x55,0xb0,0x22,0xcb,0x8a,0x22,0xa2,0x4f,0xa3,
0xfc,0x22,0xa3,0x2c,0x4c,0xe3,0x95,0xc6,0x97,0xe1,0x97,0xf1,0xee,0xb0,0xb4,
0xac,0x7a,0x80,0xe3,0xdd,0x02,0x5a,0x42,0x30,0xe7,0x27,0x0e,0x69,0xff,0x6b,
0xb2,0x83,0x7a,0x4f,0xc7,0xaa,0x05,0x95,0xb5,0x18,0x5f,0xa8,0x29,0x97,0x3b,
0xf2,0xb8,0x35,0x06,0x1b,0xfe,0xfa,0xa8,0x91,0xc7,0xb7,0x1b,0x8b,0xaa,0xd5,
0x23,0x88,0x7f,0xd9,0x88,0x45,0xee,0xd4,0xb9,0xcd,0x36,0xd4,0x5a,0x28,0x86,
0x0d,0x92,0x5d,0xcb,0x8c,0xf1,0xd9,0xfb,0xcc,0xa4,0x65,0xda,0x8d,0x6e,0xfd,
0x99,0xed,0xf1,0xc6,0x45,0xdf,0x5b,0x1f,0xf5,0xa0 }

Definition at line 2151 of file chain.c.

◆ chain1_1

const BYTE chain1_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x98,0x30,0x82,0x01,0x01,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x22,0x18,0x0f,0x31,0x36,0x30,0x31,0x31,0x31,0x32,
0x32,0x31,0x38,0x35,0x32,0x30,0x37,0x5a,0x18,0x0f,0x31,0x36,0x32,0x38,0x30,
0x38,0x32,0x36,0x30,0x35,0x32,0x30,0x35,0x37,0x5a,0x30,0x10,0x31,0x0e,0x30,
0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,
0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xad,0x7e,0xca,
0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,0x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,
0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,0x9e,0x07,0x78,0x08,0x11,0x12,0x2d,
0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,0x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,
0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,0xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,
0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,0x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,
0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,0x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,
0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,0xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,
0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,0x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,
0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,
0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0xad,
0x16,0xaa,0x77,0xab,0xd5,0x1a,0x6c,0x90,0x5d,0x4e,0x61,0x49,0x89,0x6e,0x9f,
0x03,0x7b,0x4a,0x49,0xb1,0x46,0x75,0xf3,0x69,0xeb,0x96,0x13,0x3c,0x35,0xb5,
0x37,0x3b,0xc2,0x84,0x5c,0xe5,0x7c,0x46,0xf6,0x6b,0xc7,0x4e,0x72,0x91,0xf4,
0xde,0xc5,0x66,0x0f,0x2d,0x39,0xc6,0x9e,0x8e,0x25,0x4d,0x3f,0x7b,0x45,0xe1,
0xc6,0x1a,0x7e,0x28,0x83,0xf8,0x87,0x30,0x4e,0xa5,0xfd,0x32,0x7a,0xed,0x53,
0x10,0x3b,0x14,0xe5,0xf1,0x32,0x77,0xf1,0x29,0x72,0x98,0x2b,0xa3,0x17,0xd6,
0x8c,0x65,0xaa,0x3b,0x6d,0xab,0xb3,0xbe,0xfa,0x72,0x38,0xf7,0xd0,0xb6,0x0f,
0x5c,0x0d,0xec,0x17,0x43,0x2a,0xfd,0xc1,0x01,0x43,0x98,0xd3,0x1b,0x84,0x3e,
0x32,0xcf,0xda,0x1d,0xc2,0xc9,0x61 }

Definition at line 1301 of file chain.c.

◆ chain2

CONST_DATA_BLOB chain2[]
static
Initial value:
= {
{ sizeof(chain2_0), chain2_0 },
{ sizeof(chain0_1), chain0_1 },
}
static const BYTE chain0_1[]
Definition: chain.c:1269
static const BYTE chain2_0[]
Definition: chain.c:1333

Definition at line 3123 of file chain.c.

◆ chain20

CONST_DATA_BLOB chain20[]
static
Initial value:
= {
{ sizeof(chain20_0), chain20_0 },
{ sizeof(chain20_1), chain20_1 },
}
static const BYTE chain20_0[]
Definition: chain.c:2182
static const BYTE chain20_1[]
Definition: chain.c:2215

Definition at line 3345 of file chain.c.

◆ chain20_0

const BYTE chain20_0[]
static

Definition at line 2182 of file chain.c.

◆ chain20_1

const BYTE chain20_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
0x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x62,0x2e,0x63,0x6f,0x6d,0x30,0x0d,
0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
0x81,0x00,0x17,0xbb,0xec,0x37,0x4c,0xaf,0x0f,0xb0,0x57,0x04,0x01,0x67,0x69,
0x77,0xe4,0x73,0xc4,0x12,0x0a,0xa5,0xfe,0x0c,0x8b,0x89,0x90,0x98,0x0d,0x3b,
0x37,0xbe,0xe7,0x7e,0xba,0x84,0x27,0x5f,0xed,0x40,0xc9,0x57,0x91,0x6b,0x72,
0xe3,0x4c,0xfa,0x9f,0x6d,0xd5,0xe6,0xf8,0x33,0xa1,0x6e,0xbd,0x5f,0x8d,0xfb,
0x8f,0xe6,0xe1,0x6a,0x64,0x51,0x1e,0x3b,0x04,0xe4,0x3b,0xa2,0x49,0x15,0x23,
0x35,0x17,0x61,0x4a,0xa6,0x03,0xee,0xa2,0xa6,0x4f,0x42,0x13,0x75,0x14,0xd3,
0x87,0x3b,0x71,0x6a,0x2f,0x11,0xcd,0xe6,0xd0,0x63,0xce,0x62,0x8c,0xd9,0x64,
0xc0,0xaa,0x53,0x4e,0x5e,0xa2,0x4c,0x6e,0xd0,0x13,0x49,0x2e,0xdf,0x81,0x3a,
0x3c,0x67,0xcf,0x4e,0xde,0x95,0x14,0x74,0xa8,0x31 }

Definition at line 2215 of file chain.c.

◆ chain21

CONST_DATA_BLOB chain21[]
static
Initial value:
= {
{ sizeof(chain21_0), chain21_0 },
{ sizeof(chain21_1), chain21_1 },
}
static const BYTE chain21_0[]
Definition: chain.c:2246
static const BYTE chain21_1[]
Definition: chain.c:2279

Definition at line 3357 of file chain.c.

◆ chain21_0

const BYTE chain21_0[]
static

Definition at line 2246 of file chain.c.

◆ chain21_1

const BYTE chain21_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
0x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x61,0x2e,0x43,0x4f,0x4d,0x30,0x0d,
0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
0x81,0x00,0x65,0xd5,0xaa,0x17,0x1f,0xa8,0xda,0x62,0x04,0x9d,0xf5,0xe0,0x82,
0xe4,0xed,0xc6,0x1b,0x54,0x8f,0xb7,0x46,0xac,0xcd,0xaf,0xaa,0xe3,0xd8,0x4a,
0x8b,0xd9,0xe6,0x87,0x4f,0x8c,0xa6,0x86,0x97,0x75,0x08,0x42,0xf1,0xed,0x3e,
0x70,0x99,0x13,0xf2,0x00,0xf8,0xcc,0xf4,0x55,0x36,0xf5,0x29,0x97,0x47,0x71,
0xb8,0x40,0x8d,0x47,0x03,0xe2,0x66,0x3c,0x00,0x01,0xcc,0xa7,0x39,0xf7,0xf9,
0x76,0xfc,0x14,0x31,0x1f,0x6f,0xf0,0x87,0xe0,0x43,0x8b,0xad,0x98,0xa2,0xe3,
0xfe,0x49,0xa3,0x1e,0x57,0x34,0xe8,0x61,0x97,0x23,0xc8,0x03,0x05,0xa4,0x2f,
0xab,0x49,0x97,0xff,0x3f,0xbf,0x6c,0x08,0x2c,0x6b,0x4d,0x6a,0x54,0x62,0x2e,
0x16,0x83,0xac,0xdd,0x21,0x8f,0xe7,0x71,0x12,0x5f }

Definition at line 2279 of file chain.c.

◆ chain22

CONST_DATA_BLOB chain22[]
static
Initial value:
= {
{ sizeof(chain22_0), chain22_0 },
{ sizeof(chain22_1), chain22_1 },
}
static const BYTE chain22_0[]
Definition: chain.c:2310
static const BYTE chain22_1[]
Definition: chain.c:2343

Definition at line 3370 of file chain.c.

◆ chain22_0

const BYTE chain22_0[]
static

Definition at line 2310 of file chain.c.

◆ chain22_1

const BYTE chain22_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xaa,0x30,0x82,0x01,0x13,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x14,0x30,0x12,0x30,0x10,0x06,0x03,0x55,
0x1d,0x07,0x04,0x09,0x30,0x07,0x82,0x05,0x62,0x2e,0x43,0x4f,0x4d,0x30,0x0d,
0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,
0x81,0x00,0x4b,0x4c,0x2f,0x68,0xd2,0x64,0x82,0x7d,0x95,0x1d,0xd0,0x2b,0xa4,
0xab,0xc3,0x9d,0xd8,0xc1,0x0f,0xaa,0x3e,0xc6,0xa3,0x11,0x9a,0xc6,0x58,0x40,
0x49,0xcc,0x92,0x8e,0xd4,0x0d,0x20,0x81,0x65,0x59,0xca,0x7d,0x54,0xce,0xd4,
0x43,0x95,0xb5,0xc3,0x8c,0x79,0x01,0xc6,0x17,0xf8,0x04,0x13,0xf7,0x7c,0xf7,
0x7f,0xd7,0xc6,0x62,0x2c,0x21,0x0d,0xab,0x79,0x82,0xd7,0x70,0x9f,0x38,0xba,
0x5f,0x2f,0xb4,0xfd,0xe8,0x62,0x40,0xe3,0x69,0xe7,0xc4,0xe5,0x5a,0xc1,0x71,
0xc0,0x9a,0xdc,0xcc,0xa6,0x0e,0x5e,0x84,0x27,0x70,0xc3,0x47,0x98,0x72,0x89,
0xf9,0x7c,0xe4,0x15,0x4b,0x4c,0xec,0x56,0x1b,0xbf,0x6c,0xf1,0xf7,0x5a,0x76,
0x80,0x1f,0x43,0x7c,0xae,0xdb,0xb3,0x49,0xbc,0xcb }

Definition at line 2343 of file chain.c.

◆ chain23

CONST_DATA_BLOB chain23[]
static
Initial value:
= {
{ sizeof(chain23_0), chain23_0 },
{ sizeof(chain23_1), chain23_1 },
}
static const BYTE chain23_0[]
Definition: chain.c:2374
static const BYTE chain23_1[]
Definition: chain.c:2407

Definition at line 3382 of file chain.c.

◆ chain23_0

const BYTE chain23_0[]
static

Definition at line 2374 of file chain.c.

◆ chain23_1

const BYTE chain23_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xac,0x30,0x82,0x01,0x15,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x16,0x30,0x14,0x30,0x12,0x06,0x03,0x55,
0x1d,0x07,0x04,0x0b,0x30,0x09,0x82,0x07,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x03,0x81,0x81,0x00,0xa5,0xc0,0xf6,0xb1,0x63,0x3a,0x23,0xc5,0xb0,0x07,0xb4,
0x83,0xcf,0x36,0xb4,0xfe,0x3c,0xcb,0xa6,0x6b,0xed,0xf7,0x4c,0x25,0x9f,0x2d,
0x88,0xcd,0x8a,0xe4,0x88,0xe3,0x33,0xbb,0x50,0x54,0xee,0xc9,0xad,0xed,0x8b,
0xec,0x1e,0x64,0x36,0xe8,0xb5,0x51,0xca,0xd3,0xa5,0xb9,0x7a,0x2d,0x4b,0xe7,
0xe8,0xc9,0xa5,0x1d,0x49,0xa1,0x31,0x0f,0x50,0x46,0xb0,0x0f,0xd0,0xf6,0xad,
0x51,0x18,0x93,0x25,0x8f,0x4f,0x57,0x12,0x72,0x1e,0xa7,0x44,0x37,0x9f,0xf2,
0xc0,0x28,0xe8,0xbe,0xb8,0x75,0x42,0xef,0x1d,0x7a,0xca,0x87,0x0c,0x11,0x25,
0xeb,0xab,0xcf,0xe0,0xe1,0x12,0x38,0xf6,0x68,0x31,0xfb,0x16,0xcb,0xef,0x67,
0x8c,0x4b,0x6b,0xfd,0x69,0xba,0x0b,0x69,0xee,0x74,0xe0,0x73 }

Definition at line 2407 of file chain.c.

◆ chain24

CONST_DATA_BLOB chain24[]
static
Initial value:
= {
{ sizeof(chain24_0), chain24_0 },
{ sizeof(chain24_1), chain24_1 },
}
static const BYTE chain24_1[]
Definition: chain.c:2471
static const BYTE chain24_0[]
Definition: chain.c:2438

Definition at line 3394 of file chain.c.

◆ chain24_0

const BYTE chain24_0[]
static

Definition at line 2438 of file chain.c.

◆ chain24_1

const BYTE chain24_1[]
static

Definition at line 2471 of file chain.c.

◆ chain25

CONST_DATA_BLOB chain25[]
static
Initial value:
= {
{ sizeof(chain25_0), chain25_0 },
{ sizeof(chain25_1), chain25_1 },
}
static const BYTE chain25_1[]
Definition: chain.c:2536
static const BYTE chain25_0[]
Definition: chain.c:2503

Definition at line 3406 of file chain.c.

◆ chain25_0

const BYTE chain25_0[]
static

Definition at line 2503 of file chain.c.

◆ chain25_1

const BYTE chain25_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xac,0x30,0x82,0x01,0x15,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x16,0x30,0x14,0x30,0x12,0x06,0x03,0x55,
0x1d,0x07,0x04,0x0b,0x30,0x09,0x82,0x07,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x03,0x81,0x81,0x00,0xa5,0xc0,0xf6,0xb1,0x63,0x3a,0x23,0xc5,0xb0,0x07,0xb4,
0x83,0xcf,0x36,0xb4,0xfe,0x3c,0xcb,0xa6,0x6b,0xed,0xf7,0x4c,0x25,0x9f,0x2d,
0x88,0xcd,0x8a,0xe4,0x88,0xe3,0x33,0xbb,0x50,0x54,0xee,0xc9,0xad,0xed,0x8b,
0xec,0x1e,0x64,0x36,0xe8,0xb5,0x51,0xca,0xd3,0xa5,0xb9,0x7a,0x2d,0x4b,0xe7,
0xe8,0xc9,0xa5,0x1d,0x49,0xa1,0x31,0x0f,0x50,0x46,0xb0,0x0f,0xd0,0xf6,0xad,
0x51,0x18,0x93,0x25,0x8f,0x4f,0x57,0x12,0x72,0x1e,0xa7,0x44,0x37,0x9f,0xf2,
0xc0,0x28,0xe8,0xbe,0xb8,0x75,0x42,0xef,0x1d,0x7a,0xca,0x87,0x0c,0x11,0x25,
0xeb,0xab,0xcf,0xe0,0xe1,0x12,0x38,0xf6,0x68,0x31,0xfb,0x16,0xcb,0xef,0x67,
0x8c,0x4b,0x6b,0xfd,0x69,0xba,0x0b,0x69,0xee,0x74,0xe0,0x73 }

Definition at line 2536 of file chain.c.

◆ chain26

CONST_DATA_BLOB chain26[]
static
Initial value:
= {
{ sizeof(chain26_0), chain26_0 },
{ sizeof(chain26_1), chain26_1 },
}
static const BYTE chain26_0[]
Definition: chain.c:2567
static const BYTE chain26_1[]
Definition: chain.c:2600

Definition at line 3418 of file chain.c.

◆ chain26_0

const BYTE chain26_0[]
static

Definition at line 2567 of file chain.c.

◆ chain26_1

const BYTE chain26_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xac,0x30,0x82,0x01,0x15,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,
0x30,0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,
0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,
0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,
0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,
0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,
0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,
0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,
0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,
0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,
0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,
0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,
0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,
0xa3,0x02,0x03,0x01,0x00,0x01,0xa3,0x16,0x30,0x14,0x30,0x12,0x06,0x03,0x55,
0x1d,0x07,0x04,0x0b,0x30,0x09,0x82,0x07,0x62,0x61,0x72,0x2e,0x63,0x6f,0x6d,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x03,0x81,0x81,0x00,0x47,0xa6,0x37,0x73,0x4f,0x19,0xf9,0xaf,0xa9,0xb5,0xa8,
0x41,0x99,0x31,0xa5,0xaa,0x0d,0x6c,0xb8,0x9d,0xe6,0xf6,0x59,0x4d,0xd8,0x12,
0x76,0xcc,0x0b,0xaa,0x2f,0x08,0x1c,0x75,0x54,0x5a,0xae,0x09,0x39,0x25,0xfc,
0x44,0xa1,0x00,0x24,0x5c,0xec,0x20,0x04,0xc7,0xe9,0x14,0xb0,0x71,0x4a,0x33,
0x41,0x7f,0x1d,0x47,0xe5,0x7c,0xe4,0x86,0xb1,0xeb,0xa4,0x9d,0x2a,0x89,0xeb,
0x1d,0x15,0xd6,0x42,0x39,0xe4,0x05,0x26,0xbf,0xc2,0x09,0x6c,0x5c,0xd1,0x56,
0xfd,0x18,0x42,0xd3,0xd5,0x7c,0x52,0xa8,0x4a,0x77,0xe8,0xc0,0x53,0x2b,0xa6,
0x01,0xf9,0x90,0x68,0x60,0x3f,0xcb,0xb8,0x24,0x16,0x0b,0x69,0x4b,0xd9,0xf8,
0x2c,0x92,0xed,0x89,0xa5,0xff,0x71,0xc5,0xed,0xe8,0xbc,0x70 }

Definition at line 2600 of file chain.c.

◆ chain27

CONST_DATA_BLOB chain27[]
static
Initial value:
= {
{ sizeof(chain27_0), chain27_0 },
{ sizeof(chain27_1), chain27_1 },
}
static const BYTE chain27_1[]
Definition: chain.c:2666
static const BYTE chain27_0[]
Definition: chain.c:2633

Definition at line 3430 of file chain.c.

◆ chain27_0

const BYTE chain27_0[]
static

Definition at line 2633 of file chain.c.

◆ chain27_1

const BYTE chain27_1[]
static

Definition at line 2666 of file chain.c.

◆ chain28

CONST_DATA_BLOB chain28[]
static
Initial value:
= {
{ sizeof(chain28_0), chain28_0 },
{ sizeof(chain28_1), chain28_1 },
}
static const BYTE chain28_1[]
Definition: chain.c:2733
static const BYTE chain28_0[]
Definition: chain.c:2699

Definition at line 3453 of file chain.c.

◆ chain28_0

const BYTE chain28_0[]
static

Definition at line 2699 of file chain.c.

◆ chain28_1

const BYTE chain28_1[]
static

Definition at line 2733 of file chain.c.

◆ chain29

CONST_DATA_BLOB chain29[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain29_1), chain29_1 },
}
static const BYTE chain29_1[]
Definition: chain.c:2765
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3465 of file chain.c.

◆ chain29_1

const BYTE chain29_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xab,0x30,0x82,0x01,0x16,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,0x30,
0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,0x30,
0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,
0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,
0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,0x0e,0x67,0x5f,
0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,0xb6,0x17,0x8e,
0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,0x9f,0x6e,0xfe,
0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,0xd1,0x57,0x71,
0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,0x72,0xa7,0x87,
0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,0x80,0x83,0x68,
0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,0xb5,0x46,0x36,
0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,0x51,0x9a,0x22,
0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,0x02,0x03,0x01,
0x00,0x01,0xa3,0x1b,0x30,0x19,0x30,0x17,0x06,0x03,0x55,0x1d,0x07,0x04,0x10,
0x30,0x0e,0x82,0x0c,0x2a,0x2e,0x77,0x69,0x6e,0x65,0x68,0x71,0x2e,0x6f,0x72,
0x67,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
0x81,0x81,0x00,0x65,0xbf,0xfa,0xf7,0xc3,0x09,0x70,0x25,0x8a,0x46,0x69,0xf6,
0xdc,0x07,0x1e,0x30,0xc9,0xe4,0x58,0x89,0x65,0x3a,0xa8,0xda,0xbd,0x17,0xf8,
0x1d,0x0d,0x7d,0x47,0xb1,0xb2,0xda,0x17,0x9f,0xf6,0x47,0xe0,0xe4,0x4a,0xeb,
0x02,0xc9,0x2e,0x69,0x1c,0x57,0x2a,0x80,0xc9,0x01,0x77,0x7b,0x27,0xff,0x2f,
0xaf,0xdf,0xf3,0x65,0x12,0xd8,0x7d,0xc2,0xbf,0x1b,0x1d,0x18,0x96,0x5c,0xf6,
0xba,0x43,0xc5,0x43,0x57,0xc0,0xdd,0x97,0x95,0xfb,0x1c,0xad,0x64,0x0f,0x61,
0x3a,0xe9,0x27,0xa4,0x57,0x27,0x34,0xa7,0x42,0xde,0x78,0x1a,0x71,0x80,0x23,
0xd6,0xd7,0x22,0xf0,0x24,0x0d,0x71,0xf1,0x2b,0xd0,0xd8,0x76,0x3d,0xef,0x4c,
0xce,0x1c,0x3b,0x83,0x1b,0x63,0x10,0x6c,0x63,0xe5,0x69 }

Definition at line 2765 of file chain.c.

◆ chain2_0

const BYTE chain2_0[]
static

Definition at line 1333 of file chain.c.

◆ chain3

CONST_DATA_BLOB chain3[]
static
Initial value:
= {
{ sizeof(chain3_0), chain3_0 },
{ sizeof(chain0_1), chain0_1 },
}
static const BYTE chain3_0[]
Definition: chain.c:1368
static const BYTE chain0_1[]
Definition: chain.c:1269

Definition at line 3135 of file chain.c.

◆ chain30

CONST_DATA_BLOB chain30[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain30_1), chain30_1 },
{ sizeof(chain30_2), chain30_2 },
}
static const BYTE chain30_2[]
Definition: chain.c:2831
static const BYTE chain30_1[]
Definition: chain.c:2799
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3469 of file chain.c.

◆ chain30_1

const BYTE chain30_1[]
static

Definition at line 2799 of file chain.c.

◆ chain30_2

const BYTE chain30_2[]
static
Initial value:
= {
0x30,0x82,0x01,0x8d,0x30,0x81,0xf9,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,0x10,
0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,
0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x39,0x30,0x31,0x30,0x30,0x30,0x30,
0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,
0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,
0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9d,0x30,0x0b,0x06,0x09,0x2a,0x86,
0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,
0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,
0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,
0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,
0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,
0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,
0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,
0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,
0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,
0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,
0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x03,
0x81,0x81,0x00,0x14,0x75,0x85,0xcc,0x68,0xfe,0x98,0x6f,0xf6,0x67,0x00,0x5b,
0x0c,0xfc,0x36,0x18,0xf4,0x56,0x46,0x7c,0xb9,0xfa,0x6c,0xe6,0x37,0xaf,0x69,
0x37,0x93,0x8c,0x35,0x3a,0x1b,0x58,0x2f,0xe2,0x06,0x39,0x85,0x3f,0x73,0xcf,
0xe1,0x3f,0x27,0x19,0x60,0xc3,0x1b,0xf6,0x69,0x3b,0x8e,0x57,0x7b,0xd8,0xb9,
0xc6,0x9f,0x13,0x72,0x22,0x04,0x8f,0x5c,0x54,0x13,0x8c,0x63,0xe3,0x6b,0x70,
0x98,0xec,0xcc,0xe1,0x93,0xb1,0x4b,0x30,0x4c,0xde,0xe8,0x3c,0x68,0x38,0x44,
0x5e,0xe2,0x2b,0xf5,0xa1,0xee,0x02,0x7e,0x09,0x15,0xff,0xc9,0xf6,0xaf,0xf5,
0xcc,0xeb,0xfc,0xe7,0x3c,0x92,0xdb,0x31,0xab,0x1e,0xb8,0x9e,0xf0,0x5e,0xa3,
0x93,0xfe,0xab,0x26,0x7b,0x01,0xa8,0x98,0x88,0xbb,0xee }

Definition at line 2831 of file chain.c.

◆ chain31

CONST_DATA_BLOB chain31[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain31_1), chain31_1 },
}
static const BYTE chain0_0[]
Definition: chain.c:1237
static const BYTE chain31_1[]
Definition: chain.c:2862

Definition at line 3484 of file chain.c.

◆ chain31_1

const BYTE chain31_1[]
static
Initial value:
= {
0x30,0x82,0x01,0xa2,0x30,0x82,0x01,0x0d,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x30,
0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,
0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,0x30,
0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,0x30,
0x30,0x30,0x30,0x5a,0x30,0x24,0x31,0x22,0x30,0x0e,0x06,0x03,0x55,0x04,0x03,
0x13,0x07,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,0x30,0x10,0x06,0x03,0x55,0x04,
0x03,0x13,0x09,0x2a,0x2e,0x66,0x6f,0x6f,0x2e,0x63,0x6f,0x6d,0x30,0x81,0x9d,
0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x03,0x81,
0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,
0xe5,0x33,0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,
0xc6,0xdc,0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,
0xa7,0x48,0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,
0x8b,0x47,0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,
0x6b,0x05,0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,
0xfc,0x6a,0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,
0x85,0x85,0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,
0xb2,0xd3,0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,
0x72,0xa3,0x02,0x03,0x01,0x00,0x01,0x30,0x0b,0x06,0x09,0x2a,0x86,0x48,0x86,
0xf7,0x0d,0x01,0x01,0x05,0x03,0x81,0x81,0x00,0xa0,0x93,0x52,0x87,0x81,0xe2,
0xff,0x2a,0xc7,0xef,0x5f,0x3c,0xbc,0x88,0x99,0xc0,0x47,0x3e,0x13,0xe9,0x87,
0xfa,0x36,0xd7,0xb5,0xe8,0xdf,0x70,0xcc,0x36,0xe4,0x70,0x3c,0xcd,0xa2,0x0b,
0x31,0x6e,0x0a,0xb9,0x00,0xf0,0x4f,0xb6,0xc2,0xce,0xf4,0x33,0x1e,0xc0,0x29,
0xc0,0x73,0x0c,0xcf,0x28,0xa5,0x26,0x9d,0xc2,0xaf,0x85,0x30,0x81,0xbf,0xd1,
0x70,0x3f,0x69,0x15,0xc5,0x41,0x1d,0x8e,0xd4,0xfa,0x02,0xcd,0xba,0xf1,0xf2,
0x67,0xb5,0x45,0x29,0xad,0xe8,0x54,0x9a,0x0f,0x1a,0x8f,0xdf,0x16,0xf4,0xcb,
0x43,0x08,0xe5,0x78,0x2b,0x95,0xf3,0x75,0xb6,0x88,0xf0,0x6b,0x5c,0x5b,0x50,
0x04,0x91,0x3b,0x89,0x5a,0x60,0x1f,0xfc,0x36,0x53,0x32,0x36,0x0a,0x4d,0x03,
0x2c,0xd7 }

Definition at line 2862 of file chain.c.

◆ chain3_0

const BYTE chain3_0[]
static
Initial value:
= {
0x30,0x82,0x01,0xad,0x30,0x82,0x01,0x1a,0xa0,0x03,0x02,0x01,0x02,0x02,0x10,
0x63,0x73,0xee,0x45,0x59,0x76,0x1a,0x9e,0x47,0xf1,0xfb,0xf0,0x42,0x44,0x26,
0xeb,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,0x00,0x30,0x10,0x31,
0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,
0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,0x30,0x30,0x30,
0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,0x35,0x39,0x35,
0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,
0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,
0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,
0x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,0xca,0x50,0x82,
0x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,0xc5,0xc3,0x34,
0x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,0x03,0x7a,0xe7,
0x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,0xc1,0x33,0x91,
0xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,0x1b,0x99,0xc5,
0x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,0x49,0xba,0xcd,
0x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,0x72,0xb6,0x1c,
0xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,0x1f,0x2f,0x35,
0x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,0x02,0x03,0x01,
0x00,0x01,0xa3,0x10,0x30,0x0e,0x30,0x0c,0x06,0x03,0x55,0x1d,0x13,0x01,0x01,
0xff,0x04,0x02,0x30,0x00,0x30,0x09,0x06,0x05,0x2b,0x0e,0x03,0x02,0x1d,0x05,
0x00,0x03,0x81,0x81,0x00,0x53,0xb7,0xa9,0x90,0xe0,0x88,0x36,0xc0,0x2d,0xb1,
0xa3,0x97,0xff,0x16,0x62,0x29,0xa2,0xfd,0x92,0x90,0xb7,0x8d,0xd9,0xdf,0x57,
0x94,0x5a,0xce,0x36,0x5c,0x95,0x24,0xab,0x4f,0x63,0x55,0xa7,0xea,0x8b,0xaf,
0xd9,0x41,0x6a,0x2f,0xd8,0x9e,0x1c,0x2d,0xc0,0x11,0x52,0x09,0x4b,0x31,0x1f,
0x5e,0x8f,0x4b,0xbf,0x20,0x73,0x2d,0x04,0x11,0x56,0x6d,0xb1,0xbe,0xb4,0x5d,
0x70,0x6b,0xb2,0xd0,0xd3,0xf5,0x5d,0x60,0x08,0x65,0x2c,0xe3,0x78,0x5a,0x05,
0x36,0xe1,0xf1,0x67,0x3a,0x25,0xf3,0x47,0x83,0xce,0x4f,0xb0,0x74,0x7a,0x35,
0xa0,0x7f,0x70,0x64,0x8a,0x14,0x66,0x03,0xf6,0xae,0xdf,0x1b,0xf5,0x80,0x87,
0x06,0x39,0x76,0x70,0x7b,0xd2,0x83,0xe9,0xce,0x1f,0xf8,0x66,0xc1 }

Definition at line 1368 of file chain.c.

◆ chain4

CONST_DATA_BLOB chain4[]
static
Initial value:
= {
{ sizeof(chain4_0), chain4_0 },
{ sizeof(chain4_1), chain4_1 },
{ sizeof(chain4_2), chain4_2 },
}
static const BYTE chain4_0[]
Definition: chain.c:1401
static const BYTE chain4_1[]
Definition: chain.c:1433
static const BYTE chain4_2[]
Definition: chain.c:1464

Definition at line 3147 of file chain.c.

◆ chain4_0

const BYTE chain4_0[]
static

Definition at line 1401 of file chain.c.

◆ chain4_1

const BYTE chain4_1[]
static

Definition at line 1433 of file chain.c.

◆ chain4_2

const BYTE chain4_2[]
static
Initial value:
= {
0x30,0x82,0x01,0x98,0x30,0x82,0x01,0x01,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,
0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,
0x00,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,
0x65,0x72,0x74,0x32,0x30,0x22,0x18,0x0f,0x31,0x36,0x30,0x31,0x31,0x31,0x32,
0x32,0x31,0x38,0x35,0x32,0x30,0x37,0x5a,0x18,0x0f,0x31,0x36,0x32,0x38,0x30,
0x38,0x32,0x36,0x30,0x35,0x32,0x30,0x35,0x37,0x5a,0x30,0x10,0x31,0x0e,0x30,
0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,
0x9f,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,
0x00,0x03,0x81,0x8d,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xc3,0x31,0x35,
0xc3,0x9d,0x8a,0x87,0x20,0xc6,0x32,0xe9,0xb1,0xf6,0x8f,0xf9,0x05,0x73,0x1d,
0xa7,0xde,0xab,0x15,0x8a,0x9c,0x7f,0x11,0x7e,0x77,0xa0,0x42,0x80,0xf4,0x79,
0xda,0x98,0x7b,0x00,0xfa,0x8f,0x0c,0xd0,0xeb,0x8a,0x80,0xed,0x07,0xfc,0x64,
0x71,0x03,0xc1,0xd6,0x2f,0x9b,0xde,0x42,0x63,0xd9,0x79,0xea,0xdd,0x10,0xe8,
0x68,0xc8,0x69,0x4f,0x4a,0x39,0x23,0x87,0xca,0xd1,0xc9,0x77,0x14,0x30,0x85,
0x9e,0xf7,0x79,0xf9,0x07,0xb7,0x7c,0x55,0xcb,0xa7,0xd5,0xb8,0x44,0xb5,0x20,
0xb5,0x01,0x5c,0xa2,0xd1,0xd5,0xad,0x0f,0x87,0xaf,0x37,0xd1,0x39,0x0c,0x0d,
0xd5,0xde,0x26,0x7a,0xed,0xf9,0x2a,0xb1,0x60,0x65,0x2d,0x08,0x24,0x51,0x1d,
0xb0,0x0a,0xb5,0x13,0xc7,0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,
0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0xaa,
0x0e,0x17,0x8d,0x5b,0xca,0x11,0xda,0x5a,0xb5,0xd4,0xe8,0x63,0xce,0xa5,0x67,
0x11,0x2f,0xf8,0xb8,0x9f,0x89,0x46,0x7d,0x20,0x94,0x5f,0x0d,0x02,0x7e,0x5e,
0x8c,0x33,0xfc,0x24,0x56,0x08,0xe6,0xf1,0x4d,0x29,0xd5,0xef,0x03,0xe3,0x9a,
0xc6,0xcd,0x6e,0xe3,0xe6,0x45,0xaa,0xce,0x5a,0x2f,0x37,0x6c,0x07,0xd2,0x28,
0x63,0x8e,0x55,0x8a,0xad,0xe3,0x8a,0x58,0x3d,0x24,0x09,0x1e,0x9a,0x7d,0x5f,
0x05,0xc4,0x51,0x18,0x17,0x46,0x33,0x4d,0x72,0x05,0xc2,0x02,0xb6,0x05,0x22,
0x23,0xcc,0xf9,0x1f,0x87,0x6c,0x4a,0x3d,0x6f,0xdb,0x59,0xf6,0x79,0x81,0x02,
0x45,0x9f,0xc8,0xc3,0xf0,0x90,0x82,0xaf,0x58,0x80,0x18,0xea,0x73,0x50,0x29,
0x71,0x8d,0xc1,0x9e,0x53,0x19,0x5a }

Definition at line 1464 of file chain.c.

◆ chain4BrokenStatus

const CERT_CHAIN_POLICY_STATUS chain4BrokenStatus
static
Initial value:
=
smooth NULL
Definition: ftsmooth.c:416
#define TRUST_E_BASIC_CONSTRAINTS
Definition: winerror.h:3110

Definition at line 4458 of file chain.c.

◆ chain5

CONST_DATA_BLOB chain5[]
static
Initial value:
= {
{ sizeof(chain5_0), chain5_0 },
{ sizeof(chain5_1), chain5_1 },
}
static const BYTE chain5_1[]
Definition: chain.c:1530
static const BYTE chain5_0[]
Definition: chain.c:1496

Definition at line 3161 of file chain.c.

◆ chain5_0

const BYTE chain5_0[]
static

Definition at line 1496 of file chain.c.

◆ chain5_1

const BYTE chain5_1[]
static

Definition at line 1530 of file chain.c.

◆ chain6

CONST_DATA_BLOB chain6[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain4_1), chain4_1 },
}
static const BYTE chain0_0[]
Definition: chain.c:1237
static const BYTE chain4_1[]
Definition: chain.c:1433

Definition at line 3174 of file chain.c.

◆ chain7

CONST_DATA_BLOB chain7[]
static
Initial value:
= {
{ sizeof(chain0_0), chain0_0 },
{ sizeof(chain7_1), chain7_1 },
}
static const BYTE chain7_1[]
Definition: chain.c:1567
static const BYTE chain0_0[]
Definition: chain.c:1237

Definition at line 3186 of file chain.c.

◆ chain7_1

const BYTE chain7_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
0x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,
0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,
0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,
0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,
0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,
0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,
0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,
0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,
0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,
0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x9f,0x69,0xfd,0x26,0xd5,0x4b,
0xe0,0xab,0x12,0x21,0xb9,0xfc,0xf7,0xe0,0x0c,0x09,0x94,0xad,0x27,0xd7,0x9d,
0xa3,0xcc,0x46,0x2a,0x25,0x9a,0x24,0xa7,0x31,0x58,0x78,0xf5,0xfc,0x30,0xe1,
0x6d,0xfd,0x59,0xab,0xbe,0x69,0xa0,0xea,0xe3,0x7d,0x7a,0x7b,0xe5,0x85,0xeb,
0x86,0x6a,0x84,0x3c,0x96,0x01,0x1a,0x70,0xa7,0xb8,0xcb,0xf2,0x11,0xe7,0x52,
0x9c,0x58,0x2d,0xac,0x63,0xce,0x72,0x4b,0xad,0x62,0xa8,0x1d,0x75,0x96,0xe2,
0x27,0xf5,0x6f,0xba,0x91,0xf8,0xf1,0xb0,0xbf,0x90,0x24,0x6d,0xba,0x5d,0xd7,
0x39,0x63,0x3b,0x7c,0x04,0x5d,0x89,0x9d,0x1c,0xf2,0xf7,0xcc,0xdf,0x6e,0x8a,
0x43,0xa9,0xdd,0x86,0x05,0xa2,0xf3,0x22,0x2d,0x1e,0x70,0xa1,0x59,0xd7,0xa5,
0x94,0x7d }

Definition at line 1567 of file chain.c.

◆ chain8

CONST_DATA_BLOB chain8[]
static
Initial value:
= {
{ sizeof(chain8_0), chain8_0 },
{ sizeof(chain8_1), chain8_1 },
{ sizeof(chain8_2), chain8_2 },
}
static const BYTE chain8_1[]
Definition: chain.c:1632
static const BYTE chain8_0[]
Definition: chain.c:1600
static const BYTE chain8_2[]
Definition: chain.c:1661

Definition at line 3198 of file chain.c.

◆ chain8_0

const BYTE chain8_0[]
static

Definition at line 1600 of file chain.c.

◆ chain8_1

const BYTE chain8_1[]
static
Initial value:
= {
0x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
0x72,0x74,0x31,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x35,0x30,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x30,0x30,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x32,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xb8,0x52,0xda,0xc5,0x4b,0x3f,0xe5,0x33,
0x0e,0x67,0x5f,0x48,0x21,0xdc,0x7e,0xef,0x37,0x33,0xba,0xff,0xb4,0xc6,0xdc,
0xb6,0x17,0x8e,0x20,0x55,0x07,0x12,0xd2,0x7b,0x3c,0xce,0x30,0xc5,0xa7,0x48,
0x9f,0x6e,0xfe,0xb8,0xbe,0xdb,0x9f,0x9b,0x17,0x60,0x16,0xde,0xc6,0x8b,0x47,
0xd1,0x57,0x71,0x3c,0x93,0xfc,0xbd,0xec,0x44,0x32,0x3b,0xb9,0xcf,0x6b,0x05,
0x72,0xa7,0x87,0x8e,0x7e,0xd4,0x9a,0x87,0x1c,0x2f,0xb7,0x82,0x40,0xfc,0x6a,
0x80,0x83,0x68,0x28,0xce,0x84,0xf4,0x0b,0x2e,0x44,0xcb,0x53,0xac,0x85,0x85,
0xb5,0x46,0x36,0x98,0x3c,0x10,0x02,0xaa,0x02,0xbc,0x8b,0xa2,0x23,0xb2,0xd3,
0x51,0x9a,0x22,0x4a,0xe3,0xaa,0x4e,0x7c,0xda,0x38,0xcf,0x49,0x98,0x72,0xa3,
0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x22,0xf1,0x66,0x00,0x79,0xd2,
0xe6,0xb2,0xb2,0xf7,0x2f,0x98,0x92,0x7d,0x73,0xc3,0x6c,0x5c,0x77,0x20,0xe3,
0xbf,0x3e,0xe0,0xb3,0x5c,0x68,0xb4,0x9b,0x3a,0x41,0xae,0x94,0xa0,0x80,0x3a,
0xfe,0x5d,0x7a,0x56,0x87,0x85,0x44,0x45,0xcf,0xa6,0xd3,0x10,0xe7,0x73,0x41,
0xf2,0x7f,0x88,0x85,0x91,0x8e,0xe6,0xec,0xe2,0xce,0x08,0xbc,0xa5,0x76,0xe5,
0x4d,0x1d,0xb7,0x70,0x31,0xdd,0xc9,0x9a,0x15,0x32,0x11,0x5a,0x4e,0x62,0xc8,
0xd1,0xf8,0xec,0x46,0x39,0x5b,0xe7,0x67,0x1f,0x58,0xe8,0xa1,0xa0,0x5b,0xf7,
0x8a,0x6d,0x5f,0x91,0x18,0xd4,0x90,0x85,0xff,0x30,0xc7,0xca,0x9c,0xc6,0x92,
0xb0,0xca,0x16,0xc4,0xa4,0xc0,0xd6,0xe8,0xff,0x15,0x19,0xd1,0x30,0x61,0xf3,
0xef,0x9f }

Definition at line 1632 of file chain.c.

◆ chain8_2

const BYTE chain8_2[]
static
Initial value:
= {
0x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
0x72,0x74,0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x39,0x30,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
0x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x33,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xc3,0x31,0x35,0xc3,0x9d,0x8a,0x87,0x20,
0xc6,0x32,0xe9,0xb1,0xf6,0x8f,0xf9,0x05,0x73,0x1d,0xa7,0xde,0xab,0x15,0x8a,
0x9c,0x7f,0x11,0x7e,0x77,0xa0,0x42,0x80,0xf4,0x79,0xda,0x98,0x7b,0x00,0xfa,
0x8f,0x0c,0xd0,0xeb,0x8a,0x80,0xed,0x07,0xfc,0x64,0x71,0x03,0xc1,0xd6,0x2f,
0x9b,0xde,0x42,0x63,0xd9,0x79,0xea,0xdd,0x10,0xe8,0x68,0xc8,0x69,0x4f,0x4a,
0x39,0x23,0x87,0xca,0xd1,0xc9,0x77,0x14,0x30,0x85,0x9e,0xf7,0x79,0xf9,0x07,
0xb7,0x7c,0x55,0xcb,0xa7,0xd5,0xb8,0x44,0xb5,0x20,0xb5,0x01,0x5c,0xa2,0xd1,
0xd5,0xad,0x0f,0x87,0xaf,0x37,0xd1,0x39,0x0c,0x0d,0xd5,0xde,0x26,0x7a,0xed,
0xf9,0x2a,0xb1,0x60,0x65,0x2d,0x08,0x24,0x51,0x1d,0xb0,0x0a,0xb5,0x13,0xc7,
0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x33,0x95,0x73,0x7c,0x7c,0xb0,
0xbb,0x2b,0xe0,0xc4,0x12,0xf0,0x26,0x85,0x97,0x0c,0x81,0xde,0xc5,0x52,0x04,
0xcb,0xee,0x11,0x9a,0x2e,0xa2,0xc4,0x76,0xd5,0x57,0xd1,0x2f,0x2d,0x6f,0x42,
0xbf,0x23,0x85,0x59,0x5c,0x96,0x8d,0xef,0xbc,0xb6,0xf5,0xd3,0x66,0x99,0x54,
0x95,0x09,0x28,0x0b,0x4f,0x05,0x5f,0x61,0x20,0xa8,0x0d,0x46,0x9a,0xab,0x29,
0x97,0x6b,0xa3,0xcd,0xd7,0x5a,0xda,0xaa,0x8e,0xad,0x5a,0x66,0x58,0xf6,0x63,
0x76,0x10,0xdc,0xb0,0xee,0x3f,0x82,0x6d,0x29,0xb9,0xcb,0x99,0x15,0xbb,0xb9,
0x74,0x73,0x00,0x14,0x74,0x79,0xad,0x89,0x73,0xaa,0xa2,0x0e,0x52,0xe8,0x28,
0x69,0xe6,0x8c,0x1e,0xce,0x3a,0x6d,0x85,0x33,0x1e,0x21,0xa3,0x42,0x61,0x3a,
0xeb,0x25 }

Definition at line 1661 of file chain.c.

◆ chain9

CONST_DATA_BLOB chain9[]
static
Initial value:
= {
{ sizeof(chain9_0), chain9_0 },
{ sizeof(chain7_1), chain7_1 },
}
static const BYTE chain7_1[]
Definition: chain.c:1567
static const BYTE chain9_0[]
Definition: chain.c:1693

Definition at line 3212 of file chain.c.

◆ chain9_0

const BYTE chain9_0[]
static
Initial value:
= {
0x30,0x82,0x01,0x93,0x30,0x81,0xfd,0xa0,0x03,0x02,0x01,0x02,0x02,0x01,0x01,
0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x05,0x05,0x00,
0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,0x03,0x13,0x05,0x43,0x65,
0x72,0x74,0x32,0x30,0x1e,0x17,0x0d,0x30,0x37,0x30,0x31,0x30,0x31,0x30,0x30,
0x30,0x30,0x30,0x30,0x5a,0x17,0x0d,0x30,0x37,0x31,0x32,0x33,0x31,0x32,0x33,
0x35,0x39,0x35,0x39,0x5a,0x30,0x10,0x31,0x0e,0x30,0x0c,0x06,0x03,0x55,0x04,
0x03,0x13,0x05,0x43,0x65,0x72,0x74,0x31,0x30,0x81,0x9f,0x30,0x0d,0x06,0x09,
0x2a,0x86,0x48,0x86,0xf7,0x0d,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8d,0x00,
0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xad,0x7e,0xca,0xf3,0xe5,0x99,0xc2,0x2a,
0xca,0x50,0x82,0x7c,0x2d,0xa4,0x81,0xcd,0x0d,0x0d,0x86,0xd7,0xd8,0xb2,0xde,
0xc5,0xc3,0x34,0x9e,0x07,0x78,0x08,0x11,0x12,0x2d,0x21,0x0a,0x09,0x07,0x14,
0x03,0x7a,0xe7,0x3b,0x58,0xf1,0xde,0x3e,0x01,0x25,0x93,0xab,0x8f,0xce,0x1f,
0xc1,0x33,0x91,0xfe,0x59,0xb9,0x3b,0x9e,0x95,0x12,0x89,0x8e,0xc3,0x4b,0x98,
0x1b,0x99,0xc5,0x07,0xe2,0xdf,0x15,0x4c,0x39,0x76,0x06,0xad,0xdb,0x16,0x06,
0x49,0xba,0xcd,0x0f,0x07,0xd6,0xea,0x27,0xa6,0xfe,0x3d,0x88,0xe5,0x97,0x45,
0x72,0xb6,0x1c,0xc0,0x1c,0xb1,0xa2,0x89,0xe8,0x37,0x9e,0xf6,0x2a,0xcf,0xd5,
0x1f,0x2f,0x35,0x5e,0x8f,0x3a,0x9c,0x61,0xb1,0xf1,0x6c,0xff,0x8c,0xb2,0x2f,
0x02,0x03,0x01,0x00,0x01,0x30,0x0d,0x06,0x09,0x2a,0x86,0x48,0x86,0xf7,0x0d,
0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x2c,0xf5,0x25,0xaa,0xb4,0x63,
0x5a,0x5d,0xae,0x7b,0x42,0x79,0xbc,0x41,0x2f,0x8a,0x2a,0x70,0x9f,0x8e,0xb2,
0x14,0x1b,0x6f,0xb2,0xf3,0x3e,0xab,0x06,0x9c,0xa8,0x92,0x43,0xc4,0x57,0x63,
0xa4,0xee,0x83,0x04,0xab,0xa5,0x2c,0xd9,0x90,0xed,0xc9,0x4d,0xa8,0x7b,0xca,
0x3b,0x5f,0xdf,0x46,0xe1,0x3b,0x7f,0x72,0xb7,0x92,0x82,0xe6,0x05,0xc3,0x64,
0x38,0xfb,0x86,0x13,0xeb,0x19,0xb6,0x16,0x82,0x63,0x84,0x13,0x04,0x38,0x51,
0x4c,0x89,0x12,0xf1,0x13,0x46,0x75,0x4e,0x99,0x46,0xcb,0xc6,0x76,0x9f,0x97,
0x9c,0xda,0x63,0x01,0x6a,0x71,0x68,0xc4,0x21,0x67,0xa6,0x51,0x19,0x5e,0xc7,
0x8c,0x8d,0x63,0x5c,0xbe,0x04,0x8f,0xad,0xea,0xa5,0xcd,0xc3,0xd6,0x6b,0xc7,
0xb5,0x56 }

Definition at line 1693 of file chain.c.

◆ chainCheck

ChainCheck chainCheck[]
static

Definition at line 3576 of file chain.c.

Referenced by testGetCertChain().

◆ chainCheckEmbeddedNull

ChainCheck chainCheckEmbeddedNull
static
Initial value:
= {
0 }
#define CERT_TRUST_INVALID_NAME_CONSTRAINTS
Definition: wincrypt.h:881
static const SimpleChainStatusCheck simpleStatus27[]
Definition: chain.c:3440
#define CERT_TRUST_INVALID_EXTENSION
Definition: wincrypt.h:878
static CONST_DATA_BLOB chain27[]
Definition: chain.c:3430
#define CERT_TRUST_IS_NOT_TIME_NESTED
Definition: wincrypt.h:871
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:874
#define ARRAY_SIZE(a)
Definition: main.h:24
#define CERT_TRUST_HAS_PREFERRED_ISSUER
Definition: wincrypt.h:901
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3859 of file chain.c.

Referenced by testGetCertChain().

◆ chainCheckEmbeddedNullBroken

ChainCheck chainCheckEmbeddedNullBroken
static
Initial value:
= {
0 }
static CONST_DATA_BLOB chain27[]
Definition: chain.c:3430
#define CERT_TRUST_IS_NOT_TIME_NESTED
Definition: wincrypt.h:871
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:874
#define ARRAY_SIZE(a)
Definition: main.h:24
#define CERT_TRUST_HAS_PREFERRED_ISSUER
Definition: wincrypt.h:901
static const SimpleChainStatusCheck simpleStatus27Broken[]
Definition: chain.c:3449
#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
Definition: wincrypt.h:903
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875
#define CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT
Definition: wincrypt.h:883

Definition at line 3867 of file chain.c.

Referenced by testGetCertChain().

◆ chainCheckNoStore

ChainCheck chainCheckNoStore[]
static
Initial value:
= {
0 },
0 },
}
#define CERT_TRUST_IS_NOT_TIME_VALID
Definition: wincrypt.h:870
static const SimpleChainStatusCheck selfSignedSimpleStatus[]
Definition: chain.c:3495
static CONST_DATA_BLOB selfSignedChain[]
Definition: chain.c:3488
static const SimpleChainStatusCheck simpleStatus8NoStore[]
Definition: chain.c:3822
static CONST_DATA_BLOB chain8[]
Definition: chain.c:3198
#define ARRAY_SIZE(a)
Definition: main.h:24
#define CERT_TRUST_HAS_PREFERRED_ISSUER
Definition: wincrypt.h:901
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875
#define CERT_TRUST_IS_PARTIAL_CHAIN
Definition: wincrypt.h:891

Definition at line 3826 of file chain.c.

Referenced by testGetCertChain().

◆ cs_stanford_edu

const BYTE cs_stanford_edu[]
static

Definition at line 1140 of file chain.c.

◆ DWORD

Definition at line 58 of file chain.c.

◆ elementStatus0

const CERT_TRUST_STATUS elementStatus0[]
static
Initial value:
= {
}
#define CERT_TRUST_IS_NOT_TIME_VALID
Definition: wincrypt.h:870
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3102 of file chain.c.

◆ elementStatus1

const CERT_TRUST_STATUS elementStatus1[]
static
Initial value:
= {
}
#define CERT_TRUST_IS_NOT_TIME_VALID
Definition: wincrypt.h:870
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID
Definition: wincrypt.h:873
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3114 of file chain.c.

◆ elementStatus10

const CERT_TRUST_STATUS elementStatus10[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3230 of file chain.c.

◆ elementStatus12

const CERT_TRUST_STATUS elementStatus12[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_NOT_SIGNATURE_VALID
Definition: wincrypt.h:873
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3247 of file chain.c.

◆ elementStatus13

const CERT_TRUST_STATUS elementStatus13[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3259 of file chain.c.

◆ elementStatus14

const CERT_TRUST_STATUS elementStatus14[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3271 of file chain.c.

◆ elementStatus15

const CERT_TRUST_STATUS elementStatus15[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:874
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3283 of file chain.c.

◆ elementStatus16

const CERT_TRUST_STATUS elementStatus16[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:874
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3295 of file chain.c.

◆ elementStatus17

const CERT_TRUST_STATUS elementStatus17[]
static
Initial value:

Definition at line 3309 of file chain.c.

◆ elementStatus18

const CERT_TRUST_STATUS elementStatus18[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_NOT_VALID_FOR_USAGE
Definition: wincrypt.h:874
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3323 of file chain.c.

◆ elementStatus19

const CERT_TRUST_STATUS elementStatus19[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
Definition: wincrypt.h:903
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3336 of file chain.c.

◆ elementStatus2

const CERT_TRUST_STATUS elementStatus2[]
static
Initial value:

Definition at line 3127 of file chain.c.

◆ elementStatus20

const CERT_TRUST_STATUS elementStatus20[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3349 of file chain.c.

◆ elementStatus21

const CERT_TRUST_STATUS elementStatus21[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
Definition: wincrypt.h:903
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3361 of file chain.c.

◆ elementStatus22

const CERT_TRUST_STATUS elementStatus22[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3374 of file chain.c.

◆ elementStatus23

const CERT_TRUST_STATUS elementStatus23[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3386 of file chain.c.

◆ elementStatus24

const CERT_TRUST_STATUS elementStatus24[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3398 of file chain.c.

◆ elementStatus25

const CERT_TRUST_STATUS elementStatus25[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3410 of file chain.c.

◆ elementStatus26

const CERT_TRUST_STATUS elementStatus26[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3422 of file chain.c.

◆ elementStatus27

const CERT_TRUST_STATUS elementStatus27[]
static
Initial value:
= {
}
#define CERT_TRUST_INVALID_NAME_CONSTRAINTS
Definition: wincrypt.h:881
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_INVALID_EXTENSION
Definition: wincrypt.h:878
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3434 of file chain.c.

◆ elementStatus27Broken

const CERT_TRUST_STATUS elementStatus27Broken[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS
Definition: wincrypt.h:903
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3443 of file chain.c.

◆ elementStatus28

const CERT_TRUST_STATUS elementStatus28[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3457 of file chain.c.

◆ elementStatus3

const CERT_TRUST_STATUS elementStatus3[]
static
Initial value:
= {
}
#define CERT_TRUST_IS_NOT_TIME_VALID
Definition: wincrypt.h:870
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875
#define CERT_TRUST_INVALID_BASIC_CONSTRAINTS
Definition: wincrypt.h:880

Definition at line 3139 of file chain.c.

◆ elementStatus30

const CERT_TRUST_STATUS elementStatus30[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_INVALID_EXTENSION
Definition: wincrypt.h:878
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT
Definition: wincrypt.h:889
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3474 of file chain.c.

◆ elementStatus4

const CERT_TRUST_STATUS elementStatus4[]
static
Initial value:

Definition at line 3152 of file chain.c.

◆ elementStatus5

const CERT_TRUST_STATUS elementStatus5[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT
Definition: wincrypt.h:884
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3165 of file chain.c.

◆ elementStatus6

const CERT_TRUST_STATUS elementStatus6[]
static
Initial value:
= {
}
#define CERT_TRUST_HAS_NAME_MATCH_ISSUER
Definition: wincrypt.h:898
#define CERT_TRUST_IS_SELF_SIGNED
Definition: wincrypt.h:899
#define CERT_TRUST_NO_ERROR
Definition: wincrypt.h:869
#define CERT_TRUST_IS_UNTRUSTED_ROOT
Definition: wincrypt.h:875

Definition at line 3178 of file chain.c.

◆ elementStatus7

const CERT_TRUST_STATUS elementStatus7[]