4 //  Copyright © 2015 Apple Inc. All rights reserved. 
   7 #include <AssertMacros.h> 
   9 #include "SecAppleAnchorPriv.h" 
  10 #include "SecInternalReleasePriv.h" 
  11 #include "SecCFWrappers.h" 
  13 static CFDictionaryRef 
getAnchors(void); 
  16 SecIsAppleTrustAnchorData(CFDataRef cert
, 
  17                           SecAppleTrustAnchorFlags flags
) 
  19     CFDictionaryRef anchors
; 
  20     CFTypeRef value 
= NULL
; 
  23     anchors 
= getAnchors(); 
  24     require(anchors
, fail
); 
  26     value 
= CFDictionaryGetValue(anchors
, cert
); 
  29     require(isBoolean(value
), fail
); 
  31     if (SecIsInternalRelease() && (flags 
& kSecAppleTrustAnchorFlagsIncludeTestAnchors
)) { 
  34         res 
= CFBooleanGetValue(value
); 
  43 SecIsAppleTrustAnchor(SecCertificateRef cert
, 
  44                       SecAppleTrustAnchorFlags flags
) 
  49     data 
= SecCertificateCopyData(cert
); 
  52     res 
= SecIsAppleTrustAnchorData(data
, flags
); 
  59 static const unsigned char AppleRoot
[1215] = { 
  60     0x30, 0x82, 0x04, 0xbb, 0x30, 0x82, 0x03, 0xa3, 0xa0, 0x03, 0x02, 0x01, 
  61     0x02, 0x02, 0x01, 0x02, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 
  62     0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x30, 0x62, 0x31, 0x0b, 0x30, 
  63     0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 
  64     0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0a, 0x41, 0x70, 0x70, 
  65     0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06, 
  66     0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 
  67     0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 
  68     0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 
  69     0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x41, 0x70, 
  70     0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 
  71     0x1e, 0x17, 0x0d, 0x30, 0x36, 0x30, 0x34, 0x32, 0x35, 0x32, 0x31, 0x34, 
  72     0x30, 0x33, 0x36, 0x5a, 0x17, 0x0d, 0x33, 0x35, 0x30, 0x32, 0x30, 0x39, 
  73     0x32, 0x31, 0x34, 0x30, 0x33, 0x36, 0x5a, 0x30, 0x62, 0x31, 0x0b, 0x30, 
  74     0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 
  75     0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x0a, 0x41, 0x70, 0x70, 
  76     0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06, 
  77     0x03, 0x55, 0x04, 0x0b, 0x13, 0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 
  78     0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 
  79     0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 
  80     0x16, 0x30, 0x14, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x0d, 0x41, 0x70, 
  81     0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 
  82     0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 
  83     0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 
  84     0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 0x00, 0xe4, 0x91, 0xa9, 0x09, 
  85     0x1f, 0x91, 0xdb, 0x1e, 0x47, 0x50, 0xeb, 0x05, 0xed, 0x5e, 0x79, 0x84, 
  86     0x2d, 0xeb, 0x36, 0xa2, 0x57, 0x4c, 0x55, 0xec, 0x8b, 0x19, 0x89, 0xde, 
  87     0xf9, 0x4b, 0x6c, 0xf5, 0x07, 0xab, 0x22, 0x30, 0x02, 0xe8, 0x18, 0x3e, 
  88     0xf8, 0x50, 0x09, 0xd3, 0x7f, 0x41, 0xa8, 0x98, 0xf9, 0xd1, 0xca, 0x66, 
  89     0x9c, 0x24, 0x6b, 0x11, 0xd0, 0xa3, 0xbb, 0xe4, 0x1b, 0x2a, 0xc3, 0x1f, 
  90     0x95, 0x9e, 0x7a, 0x0c, 0xa4, 0x47, 0x8b, 0x5b, 0xd4, 0x16, 0x37, 0x33, 
  91     0xcb, 0xc4, 0x0f, 0x4d, 0xce, 0x14, 0x69, 0xd1, 0xc9, 0x19, 0x72, 0xf5, 
  92     0x5d, 0x0e, 0xd5, 0x7f, 0x5f, 0x9b, 0xf2, 0x25, 0x03, 0xba, 0x55, 0x8f, 
  93     0x4d, 0x5d, 0x0d, 0xf1, 0x64, 0x35, 0x23, 0x15, 0x4b, 0x15, 0x59, 0x1d, 
  94     0xb3, 0x94, 0xf7, 0xf6, 0x9c, 0x9e, 0xcf, 0x50, 0xba, 0xc1, 0x58, 0x50, 
  95     0x67, 0x8f, 0x08, 0xb4, 0x20, 0xf7, 0xcb, 0xac, 0x2c, 0x20, 0x6f, 0x70, 
  96     0xb6, 0x3f, 0x01, 0x30, 0x8c, 0xb7, 0x43, 0xcf, 0x0f, 0x9d, 0x3d, 0xf3, 
  97     0x2b, 0x49, 0x28, 0x1a, 0xc8, 0xfe, 0xce, 0xb5, 0xb9, 0x0e, 0xd9, 0x5e, 
  98     0x1c, 0xd6, 0xcb, 0x3d, 0xb5, 0x3a, 0xad, 0xf4, 0x0f, 0x0e, 0x00, 0x92, 
  99     0x0b, 0xb1, 0x21, 0x16, 0x2e, 0x74, 0xd5, 0x3c, 0x0d, 0xdb, 0x62, 0x16, 
 100     0xab, 0xa3, 0x71, 0x92, 0x47, 0x53, 0x55, 0xc1, 0xaf, 0x2f, 0x41, 0xb3, 
 101     0xf8, 0xfb, 0xe3, 0x70, 0xcd, 0xe6, 0xa3, 0x4c, 0x45, 0x7e, 0x1f, 0x4c, 
 102     0x6b, 0x50, 0x96, 0x41, 0x89, 0xc4, 0x74, 0x62, 0x0b, 0x10, 0x83, 0x41, 
 103     0x87, 0x33, 0x8a, 0x81, 0xb1, 0x30, 0x58, 0xec, 0x5a, 0x04, 0x32, 0x8c, 
 104     0x68, 0xb3, 0x8f, 0x1d, 0xde, 0x65, 0x73, 0xff, 0x67, 0x5e, 0x65, 0xbc, 
 105     0x49, 0xd8, 0x76, 0x9f, 0x33, 0x14, 0x65, 0xa1, 0x77, 0x94, 0xc9, 0x2d, 
 106     0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 0x01, 0x7a, 0x30, 0x82, 0x01, 
 107     0x76, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 0xff, 0x04, 
 108     0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 
 109     0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1d, 
 110     0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x2b, 0xd0, 0x69, 
 111     0x47, 0x94, 0x76, 0x09, 0xfe, 0xf4, 0x6b, 0x8d, 0x2e, 0x40, 0xa6, 0xf7, 
 112     0x47, 0x4d, 0x7f, 0x08, 0x5e, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 
 113     0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x2b, 0xd0, 0x69, 0x47, 0x94, 0x76, 
 114     0x09, 0xfe, 0xf4, 0x6b, 0x8d, 0x2e, 0x40, 0xa6, 0xf7, 0x47, 0x4d, 0x7f, 
 115     0x08, 0x5e, 0x30, 0x82, 0x01, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 0x04, 
 116     0x82, 0x01, 0x08, 0x30, 0x82, 0x01, 0x04, 0x30, 0x82, 0x01, 0x00, 0x06, 
 117     0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x63, 0x64, 0x05, 0x01, 0x30, 0x81, 
 118     0xf2, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 
 119     0x01, 0x16, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 
 120     0x77, 0x77, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 
 121     0x2f, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x63, 0x61, 0x2f, 0x30, 0x81, 0xc3, 
 122     0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 0x81, 
 123     0xb6, 0x1a, 0x81, 0xb3, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x6e, 0x63, 0x65, 
 124     0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x65, 0x72, 
 125     0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x62, 0x79, 0x20, 
 126     0x61, 0x6e, 0x79, 0x20, 0x70, 0x61, 0x72, 0x74, 0x79, 0x20, 0x61, 0x73, 
 127     0x73, 0x75, 0x6d, 0x65, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 
 128     0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 
 129     0x74, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 
 130     0x62, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 0x64, 
 131     0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 
 132     0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 0x66, 
 133     0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 
 134     0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 
 135     0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 
 136     0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x61, 0x63, 0x74, 
 137     0x69, 0x63, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 0x6e, 
 138     0x74, 0x73, 0x2e, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 
 139     0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x5c, 
 140     0x36, 0x99, 0x4c, 0x2d, 0x78, 0xb7, 0xed, 0x8c, 0x9b, 0xdc, 0xf3, 0x77, 
 141     0x9b, 0xf2, 0x76, 0xd2, 0x77, 0x30, 0x4f, 0xc1, 0x1f, 0x85, 0x83, 0x85, 
 142     0x1b, 0x99, 0x3d, 0x47, 0x37, 0xf2, 0xa9, 0x9b, 0x40, 0x8e, 0x2c, 0xd4, 
 143     0xb1, 0x90, 0x12, 0xd8, 0xbe, 0xf4, 0x73, 0x9b, 0xee, 0xd2, 0x64, 0x0f, 
 144     0xcb, 0x79, 0x4f, 0x34, 0xd8, 0xa2, 0x3e, 0xf9, 0x78, 0xff, 0x6b, 0xc8, 
 145     0x07, 0xec, 0x7d, 0x39, 0x83, 0x8b, 0x53, 0x20, 0xd3, 0x38, 0xc4, 0xb1, 
 146     0xbf, 0x9a, 0x4f, 0x0a, 0x6b, 0xff, 0x2b, 0xfc, 0x59, 0xa7, 0x05, 0x09, 
 147     0x7c, 0x17, 0x40, 0x56, 0x11, 0x1e, 0x74, 0xd3, 0xb7, 0x8b, 0x23, 0x3b, 
 148     0x47, 0xa3, 0xd5, 0x6f, 0x24, 0xe2, 0xeb, 0xd1, 0xb7, 0x70, 0xdf, 0x0f, 
 149     0x45, 0xe1, 0x27, 0xca, 0xf1, 0x6d, 0x78, 0xed, 0xe7, 0xb5, 0x17, 0x17, 
 150     0xa8, 0xdc, 0x7e, 0x22, 0x35, 0xca, 0x25, 0xd5, 0xd9, 0x0f, 0xd6, 0x6b, 
 151     0xd4, 0xa2, 0x24, 0x23, 0x11, 0xf7, 0xa1, 0xac, 0x8f, 0x73, 0x81, 0x60, 
 152     0xc6, 0x1b, 0x5b, 0x09, 0x2f, 0x92, 0xb2, 0xf8, 0x44, 0x48, 0xf0, 0x60, 
 153     0x38, 0x9e, 0x15, 0xf5, 0x3d, 0x26, 0x67, 0x20, 0x8a, 0x33, 0x6a, 0xf7, 
 154     0x0d, 0x82, 0xcf, 0xde, 0xeb, 0xa3, 0x2f, 0xf9, 0x53, 0x6a, 0x5b, 0x64, 
 155     0xc0, 0x63, 0x33, 0x77, 0xf7, 0x3a, 0x07, 0x2c, 0x56, 0xeb, 0xda, 0x0f, 
 156     0x21, 0x0e, 0xda, 0xba, 0x73, 0x19, 0x4f, 0xb5, 0xd9, 0x36, 0x7f, 0xc1, 
 157     0x87, 0x55, 0xd9, 0xa7, 0x99, 0xb9, 0x32, 0x42, 0xfb, 0xd8, 0xd5, 0x71, 
 158     0x9e, 0x7e, 0xa1, 0x52, 0xb7, 0x1b, 0xbd, 0x93, 0x42, 0x24, 0x12, 0x2a, 
 159     0xc7, 0x0f, 0x1d, 0xb6, 0x4d, 0x9c, 0x5e, 0x63, 0xc8, 0x4b, 0x80, 0x17, 
 160     0x50, 0xaa, 0x8a, 0xd5, 0xda, 0xe4, 0xfc, 0xd0, 0x09, 0x07, 0x37, 0xb0, 
 164 static const unsigned char AppleRootG2
[1430] = { 
 165     0x30, 0x82, 0x05, 0x92, 0x30, 0x82, 0x03, 0x7a, 0xa0, 0x03, 0x02, 0x01, 
 166     0x02, 0x02, 0x08, 0x01, 0xe0, 0xe5, 0xb5, 0x83, 0x67, 0xa3, 0xe0, 0x30, 
 167     0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c, 
 168     0x05, 0x00, 0x30, 0x67, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 
 169     0x03, 0x0c, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 
 170     0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x32, 0x31, 0x26, 0x30, 
 171     0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 0x41, 0x70, 0x70, 0x6c, 
 172     0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 
 173     0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 
 174     0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0a, 
 175     0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x0b, 
 176     0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x30, 
 177     0x1e, 0x17, 0x0d, 0x31, 0x34, 0x30, 0x34, 0x33, 0x30, 0x31, 0x38, 0x31, 
 178     0x30, 0x30, 0x39, 0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x34, 0x33, 0x30, 
 179     0x31, 0x38, 0x31, 0x30, 0x30, 0x39, 0x5a, 0x30, 0x67, 0x31, 0x1b, 0x30, 
 180     0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x12, 0x41, 0x70, 0x70, 0x6c, 
 181     0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 
 182     0x47, 0x32, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 
 183     0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 
 184     0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 
 185     0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 
 186     0x55, 0x04, 0x0a, 0x0c, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 
 187     0x6e, 0x63, 0x2e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 
 188     0x13, 0x02, 0x55, 0x53, 0x30, 0x82, 0x02, 0x22, 0x30, 0x0d, 0x06, 0x09, 
 189     0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 
 190     0x82, 0x02, 0x0f, 0x00, 0x30, 0x82, 0x02, 0x0a, 0x02, 0x82, 0x02, 0x01, 
 191     0x00, 0xd8, 0x11, 0x12, 0x48, 0x48, 0xda, 0x29, 0x8a, 0x49, 0xc5, 0x1c, 
 192     0xc7, 0xec, 0x6e, 0x33, 0x6d, 0xfe, 0x4d, 0xfb, 0xe0, 0x1c, 0xde, 0xac, 
 193     0x5e, 0xe2, 0x36, 0xa7, 0x24, 0xf9, 0x7f, 0x50, 0x6b, 0x4c, 0xce, 0xb9, 
 194     0x30, 0x54, 0x27, 0xe5, 0xb3, 0xd6, 0xed, 0x25, 0xe6, 0x30, 0xb6, 0x05, 
 195     0x37, 0x5e, 0x14, 0x22, 0x11, 0xc5, 0xe8, 0xaa, 0x1b, 0xd2, 0xfb, 0xb2, 
 196     0xd2, 0x09, 0x95, 0x38, 0xa4, 0xef, 0x2a, 0x49, 0x8c, 0x5d, 0x3e, 0x71, 
 197     0x66, 0x03, 0x38, 0xfb, 0x16, 0xf5, 0x85, 0x88, 0xe4, 0x5a, 0x92, 0x0c, 
 198     0x04, 0x32, 0xf2, 0xc8, 0x40, 0xfb, 0x52, 0x5f, 0x9f, 0xf6, 0xc0, 0xf1, 
 199     0xe3, 0xba, 0x45, 0xa0, 0x50, 0xd5, 0x12, 0x8b, 0xf2, 0xdd, 0xde, 0x91, 
 200     0x86, 0x23, 0xf0, 0xf5, 0xb6, 0x72, 0x2e, 0x01, 0xda, 0x0b, 0xf6, 0x2e, 
 201     0x39, 0x08, 0x5f, 0x19, 0xa1, 0x63, 0x41, 0x0b, 0x1c, 0xa7, 0x94, 0xc1, 
 202     0x86, 0xc4, 0x53, 0x2f, 0x76, 0xf6, 0x0a, 0xd7, 0x0c, 0xd1, 0x83, 0x3f, 
 203     0x1a, 0x53, 0x19, 0xf3, 0x57, 0xd5, 0x27, 0x7f, 0xfc, 0x13, 0xb8, 0xf8, 
 204     0x92, 0x8d, 0xfc, 0xd3, 0x28, 0x43, 0x3c, 0xb5, 0x68, 0x00, 0x25, 0x5d, 
 205     0x27, 0x62, 0xd3, 0xdd, 0x55, 0xdd, 0x44, 0x20, 0x90, 0x83, 0x35, 0x93, 
 206     0xc5, 0xbf, 0xb8, 0x19, 0xfb, 0x6b, 0xe3, 0xdc, 0x08, 0x42, 0xe6, 0xaf, 
 207     0x6d, 0xfa, 0x9e, 0x40, 0xca, 0x4e, 0x85, 0x85, 0x78, 0x49, 0xb1, 0xd7, 
 208     0xc3, 0xc1, 0x30, 0x39, 0x32, 0xab, 0x7e, 0x5f, 0xaa, 0xd3, 0x8b, 0x6f, 
 209     0x9f, 0x2d, 0x1a, 0x21, 0x68, 0x70, 0x67, 0xb3, 0xa3, 0xf1, 0x98, 0x41, 
 210     0x6d, 0x91, 0x7c, 0xf8, 0xd7, 0xdb, 0xa8, 0xe7, 0x5f, 0x21, 0x1a, 0x8c, 
 211     0x33, 0xbf, 0x31, 0x74, 0xb7, 0xb8, 0xd1, 0xf4, 0xe0, 0x22, 0xf4, 0xbf, 
 212     0x72, 0x34, 0xdf, 0xf7, 0x81, 0x4d, 0x71, 0x7d, 0x51, 0xa1, 0xe2, 0xb3, 
 213     0xf0, 0xd3, 0x28, 0x16, 0x73, 0x6f, 0xcd, 0xcc, 0xad, 0x37, 0x7d, 0x4e, 
 214     0xeb, 0xad, 0x40, 0xe1, 0x3f, 0x81, 0xfd, 0xf7, 0x3d, 0x0a, 0x3e, 0xa2, 
 215     0xf1, 0xbd, 0x31, 0x96, 0x29, 0x59, 0xdc, 0xc2, 0x19, 0x80, 0x8c, 0x5b, 
 216     0x74, 0xc6, 0x2c, 0xd3, 0x10, 0x53, 0x26, 0x1d, 0x14, 0x4f, 0xc4, 0xd4, 
 217     0x81, 0x66, 0x3c, 0x87, 0x67, 0x33, 0x27, 0x14, 0x08, 0xe9, 0xb4, 0x77, 
 218     0x84, 0x34, 0x52, 0x8f, 0x89, 0xf8, 0x68, 0x98, 0x17, 0xbf, 0xc3, 0xbb, 
 219     0xaa, 0x13, 0x93, 0x1f, 0x5d, 0x54, 0x2f, 0xa8, 0xc7, 0x7c, 0xfb, 0x0d, 
 220     0x14, 0xbe, 0x15, 0x3d, 0x24, 0x34, 0xf2, 0x9a, 0xdc, 0x75, 0x41, 0x66, 
 221     0x22, 0xb4, 0x01, 0xd6, 0x0b, 0xaf, 0x90, 0x9e, 0x0c, 0xea, 0x62, 0xf8, 
 222     0x9b, 0x59, 0x3c, 0x08, 0xe2, 0x96, 0x34, 0xe4, 0x63, 0xde, 0xbc, 0x37, 
 223     0xd4, 0xeb, 0x0c, 0x88, 0x03, 0x43, 0x0b, 0x50, 0xaf, 0xa0, 0x34, 0xdd, 
 224     0x50, 0x4d, 0x15, 0xfb, 0x5a, 0x24, 0xd8, 0x0c, 0xfa, 0x0c, 0x63, 0x9e, 
 225     0x1f, 0x03, 0xb1, 0xe1, 0xee, 0xe1, 0xaa, 0x43, 0xf4, 0x66, 0x65, 0x28, 
 226     0x37, 0x02, 0x31, 0xef, 0x01, 0xc7, 0x1e, 0xd1, 0xcc, 0x9f, 0x6d, 0xca, 
 227     0x54, 0x3a, 0x40, 0xdb, 0xce, 0xcf, 0x4f, 0x46, 0x8b, 0x4a, 0x65, 0x9a, 
 228     0x6a, 0xc6, 0x68, 0x6c, 0xd7, 0xcc, 0x99, 0x1b, 0x47, 0xb0, 0x72, 0xc3, 
 229     0x77, 0x8f, 0xc4, 0xf7, 0x61, 0x9c, 0x74, 0x1f, 0xce, 0xfd, 0x6b, 0xa1, 
 230     0xc2, 0x9c, 0x94, 0x82, 0xab, 0x94, 0xa2, 0xe7, 0xbd, 0x1b, 0xba, 0xb9, 
 231     0x70, 0x39, 0x95, 0x17, 0xc5, 0x29, 0xf3, 0x39, 0x58, 0x34, 0xf5, 0xc4, 
 232     0xa4, 0xc6, 0x7b, 0x60, 0xb9, 0x66, 0x43, 0x50, 0x3f, 0x6e, 0x61, 0xfc, 
 233     0x0e, 0xf9, 0x86, 0xaa, 0x60, 0x0c, 0x43, 0x4b, 0x95, 0x02, 0x03, 0x01, 
 234     0x00, 0x01, 0xa3, 0x42, 0x30, 0x40, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 
 235     0x0e, 0x04, 0x16, 0x04, 0x14, 0xc4, 0x99, 0x13, 0x6c, 0x18, 0x03, 0xc2, 
 236     0x7b, 0xc0, 0xa3, 0xa0, 0x0d, 0x7f, 0x72, 0x80, 0x7a, 0x1c, 0x77, 0x26, 
 237     0x8d, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 
 238     0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 
 239     0x0f, 0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0d, 
 240     0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0c, 0x05, 
 241     0x00, 0x03, 0x82, 0x02, 0x01, 0x00, 0x51, 0xa6, 0xf3, 0xe2, 0xf4, 0xb8, 
 242     0x3d, 0x93, 0xbf, 0x2d, 0xce, 0x0f, 0xbb, 0x5b, 0xe1, 0x55, 0x14, 0x4e, 
 243     0x4e, 0xd1, 0xe5, 0xce, 0x79, 0x5d, 0x81, 0x7f, 0xfe, 0xb6, 0xf0, 0x87, 
 244     0x33, 0xf8, 0xef, 0x94, 0xe5, 0x7e, 0xdc, 0x6a, 0x79, 0xa7, 0x1c, 0xbe, 
 245     0xf0, 0x94, 0xb7, 0xa6, 0xd1, 0x30, 0x9c, 0xc8, 0x0d, 0x0a, 0x75, 0x9e, 
 246     0x7d, 0x92, 0x95, 0x7e, 0x18, 0x9d, 0x7e, 0xc2, 0x71, 0x69, 0x7c, 0x14, 
 247     0xea, 0xcf, 0x83, 0x0e, 0xe4, 0x14, 0x42, 0x9e, 0x74, 0x0e, 0x10, 0xcd, 
 248     0xab, 0x1a, 0xba, 0x11, 0x61, 0x81, 0x78, 0xd8, 0xf1, 0xb5, 0x45, 0x40, 
 249     0x78, 0xab, 0xa8, 0xc0, 0xce, 0xfb, 0x7d, 0x63, 0x37, 0x68, 0xf6, 0xe7, 
 250     0xfb, 0xaf, 0xc6, 0xc3, 0x4b, 0xec, 0x1f, 0x36, 0x26, 0x13, 0x54, 0x86, 
 251     0x94, 0x72, 0xb2, 0xea, 0x02, 0xed, 0x8b, 0x6d, 0xe4, 0x0c, 0xa6, 0x90, 
 252     0xc0, 0x57, 0x75, 0xcf, 0x8c, 0x42, 0x7d, 0x5c, 0xe6, 0x31, 0x7d, 0xf3, 
 253     0xc9, 0xb2, 0x92, 0x69, 0x46, 0x0e, 0x88, 0xf8, 0xe3, 0x2d, 0x42, 0xb2, 
 254     0x38, 0xa8, 0xa6, 0x19, 0x8d, 0xf1, 0x9f, 0xcd, 0xee, 0x6a, 0x65, 0xbc, 
 255     0x1a, 0xb0, 0x25, 0xbd, 0xa7, 0x29, 0xfd, 0xf4, 0x3e, 0xa2, 0x75, 0x49, 
 256     0xbf, 0x9e, 0xdb, 0xc9, 0xf7, 0xa7, 0x1e, 0x63, 0x99, 0xe1, 0x5c, 0x46, 
 257     0xff, 0x92, 0x05, 0x8c, 0xfa, 0x1e, 0x20, 0xf9, 0x86, 0x94, 0x56, 0x25, 
 258     0xe5, 0xb4, 0x57, 0x38, 0x9d, 0xeb, 0x88, 0x64, 0x14, 0x21, 0x49, 0x21, 
 259     0x39, 0xbf, 0x62, 0x66, 0xa9, 0xb1, 0xa2, 0xca, 0x6f, 0x3f, 0x21, 0x60, 
 260     0xc5, 0x89, 0xd4, 0x45, 0x36, 0xc8, 0x98, 0x7c, 0xbd, 0xf6, 0xfe, 0x99, 
 261     0x49, 0x80, 0x3b, 0x2c, 0xd2, 0xa6, 0xa7, 0x88, 0x03, 0x04, 0x31, 0x19, 
 262     0xb7, 0xb6, 0x3a, 0x61, 0x45, 0xfa, 0xc9, 0xf2, 0x23, 0xc8, 0x63, 0x73, 
 263     0xbf, 0x56, 0x89, 0x31, 0xb0, 0xd9, 0x7c, 0x62, 0xa7, 0x7b, 0x15, 0xa8, 
 264     0x88, 0x8a, 0xab, 0x38, 0x40, 0xc2, 0xcc, 0x12, 0xff, 0x15, 0xe3, 0xf0, 
 265     0x37, 0xdf, 0x37, 0x72, 0xcb, 0xcc, 0x98, 0xe6, 0xbf, 0xa2, 0xbc, 0xfa, 
 266     0x26, 0x8a, 0x71, 0x56, 0xd7, 0xe7, 0x24, 0x1b, 0x48, 0x44, 0x3e, 0x9e, 
 267     0xfc, 0x9f, 0xc9, 0xcc, 0x1a, 0xec, 0x43, 0x3c, 0x01, 0xbc, 0x34, 0x78, 
 268     0xc8, 0x69, 0xf5, 0xc6, 0xe6, 0x56, 0xec, 0x06, 0x09, 0x36, 0x90, 0xeb, 
 269     0x14, 0x4a, 0x1b, 0x5e, 0xc9, 0x88, 0x23, 0xda, 0x03, 0x30, 0x91, 0x0b, 
 270     0xb8, 0x36, 0x3e, 0xf9, 0xe7, 0xb5, 0x28, 0x6f, 0xbe, 0x3f, 0xec, 0x3c, 
 271     0x8f, 0x65, 0x1d, 0xe5, 0xc0, 0x1e, 0x87, 0xa4, 0xaa, 0xba, 0x98, 0xfd, 
 272     0x92, 0xe3, 0x6c, 0x26, 0x77, 0xdd, 0x06, 0xb4, 0x64, 0x06, 0x87, 0xf4, 
 273     0x4e, 0xd6, 0xba, 0x4a, 0xaa, 0x16, 0xa8, 0xf4, 0x05, 0x67, 0x66, 0x96, 
 274     0xba, 0xe2, 0x55, 0x79, 0xc3, 0x2c, 0x5d, 0x49, 0x8f, 0x80, 0x49, 0x2b, 
 275     0x8a, 0x12, 0xc7, 0x76, 0x80, 0x51, 0xdf, 0xba, 0xbd, 0x65, 0x5d, 0x3e, 
 276     0x37, 0x47, 0x63, 0x31, 0xe9, 0xe5, 0xf4, 0xc5, 0x3f, 0x4b, 0xad, 0x04, 
 277     0x8a, 0x7a, 0x71, 0x2c, 0xaf, 0x09, 0x43, 0x37, 0x0f, 0xa8, 0xe3, 0x32, 
 278     0x4f, 0xf4, 0x45, 0xb6, 0x6d, 0x97, 0x36, 0xec, 0x84, 0xf5, 0x0a, 0x01, 
 279     0xea, 0x17, 0xbb, 0x85, 0x8d, 0x42, 0x93, 0x70, 0xc3, 0x50, 0xe5, 0x14, 
 280     0x8b, 0xbf, 0x3f, 0xc3, 0x41, 0x0f, 0xdd, 0x22, 0x04, 0x23, 0x08, 0x8a, 
 281     0xba, 0x6d, 0x71, 0x44, 0xab, 0x73, 0x09, 0x3a, 0xc9, 0xf9, 0x52, 0x80, 
 282     0x09, 0xdf, 0xba, 0xe9, 0xe6, 0x16, 0xca, 0x2e, 0x2e, 0x4c, 0xb2, 0xd3, 
 283     0xdc, 0xe5, 0x04, 0x54, 0xb2, 0xd4, 0x34, 0x80, 0x32, 0xb5, 0xbc, 0x0f, 
 287 static const unsigned char AppleRootG3
[583] = { 
 288     0x30, 0x82, 0x02, 0x43, 0x30, 0x82, 0x01, 0xc9, 0xa0, 0x03, 0x02, 0x01, 
 289     0x02, 0x02, 0x08, 0x2d, 0xc5, 0xfc, 0x88, 0xd2, 0xc5, 0x4b, 0x95, 0x30, 
 290     0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x03, 0x30, 
 291     0x67, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x12, 
 292     0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 
 293     0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 
 294     0x55, 0x04, 0x0b, 0x0c, 0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x43, 
 295     0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 
 296     0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x13, 
 297     0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0a, 0x41, 0x70, 0x70, 
 298     0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x0b, 0x30, 0x09, 0x06, 
 299     0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x30, 0x1e, 0x17, 0x0d, 
 300     0x31, 0x34, 0x30, 0x34, 0x33, 0x30, 0x31, 0x38, 0x31, 0x39, 0x30, 0x36, 
 301     0x5a, 0x17, 0x0d, 0x33, 0x39, 0x30, 0x34, 0x33, 0x30, 0x31, 0x38, 0x31, 
 302     0x39, 0x30, 0x36, 0x5a, 0x30, 0x67, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 
 303     0x55, 0x04, 0x03, 0x0c, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x52, 
 304     0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x31, 
 305     0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 0x41, 0x70, 
 306     0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 
 307     0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 
 308     0x69, 0x74, 0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 
 309     0x0c, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 
 310     0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 
 311     0x53, 0x30, 0x76, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 
 312     0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x22, 0x03, 0x62, 0x00, 
 313     0x04, 0x98, 0xe9, 0x2f, 0x3d, 0x40, 0x72, 0xa4, 0xed, 0x93, 0x22, 0x72, 
 314     0x81, 0x13, 0x1c, 0xdd, 0x10, 0x95, 0xf1, 0xc5, 0xa3, 0x4e, 0x71, 0xdc, 
 315     0x14, 0x16, 0xd9, 0x0e, 0xe5, 0xa6, 0x05, 0x2a, 0x77, 0x64, 0x7b, 0x5f, 
 316     0x4e, 0x38, 0xd3, 0xbb, 0x1c, 0x44, 0xb5, 0x7f, 0xf5, 0x1f, 0xb6, 0x32, 
 317     0x62, 0x5d, 0xc9, 0xe9, 0x84, 0x5b, 0x4f, 0x30, 0x4f, 0x11, 0x5a, 0x00, 
 318     0xfd, 0x58, 0x58, 0x0c, 0xa5, 0xf5, 0x0f, 0x2c, 0x4d, 0x07, 0x47, 0x13, 
 319     0x75, 0xda, 0x97, 0x97, 0x97, 0x6f, 0x31, 0x5c, 0xed, 0x2b, 0x9d, 0x7b, 
 320     0x20, 0x3b, 0xd8, 0xb9, 0x54, 0xd9, 0x5e, 0x99, 0xa4, 0x3a, 0x51, 0x0a, 
 321     0x31, 0xa3, 0x42, 0x30, 0x40, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 
 322     0x04, 0x16, 0x04, 0x14, 0xbb, 0xb0, 0xde, 0xa1, 0x58, 0x33, 0x88, 0x9a, 
 323     0xa4, 0x8a, 0x99, 0xde, 0xbe, 0xbd, 0xeb, 0xaf, 0xda, 0xcb, 0x24, 0xab, 
 324     0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 
 325     0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 
 326     0x01, 0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0a, 0x06, 
 327     0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x03, 0x03, 0x68, 0x00, 
 328     0x30, 0x65, 0x02, 0x31, 0x00, 0x83, 0xe9, 0xc1, 0xc4, 0x16, 0x5e, 0x1a, 
 329     0x5d, 0x34, 0x18, 0xd9, 0xed, 0xef, 0xf4, 0x6c, 0x0e, 0x00, 0x46, 0x4b, 
 330     0xb8, 0xdf, 0xb2, 0x46, 0x11, 0xc5, 0x0f, 0xfd, 0xe6, 0x7a, 0x8c, 0xa1, 
 331     0xa6, 0x6b, 0xce, 0xc2, 0x03, 0xd4, 0x9c, 0xf5, 0x93, 0xc6, 0x74, 0xb8, 
 332     0x6a, 0xdf, 0xaa, 0x23, 0x15, 0x02, 0x30, 0x6d, 0x66, 0x8a, 0x10, 0xca, 
 333     0xd4, 0x0d, 0xd4, 0x4f, 0xcd, 0x8d, 0x43, 0x3e, 0xb4, 0x8a, 0x63, 0xa5, 
 334     0x33, 0x6e, 0xe3, 0x6d, 0xda, 0x17, 0xb7, 0x64, 0x1f, 0xc8, 0x53, 0x26, 
 335     0xf9, 0x88, 0x62, 0x74, 0x39, 0x0b, 0x17, 0x5b, 0xcb, 0x51, 0xa8, 0x0c, 
 336     0xe8, 0x18, 0x03, 0xe7, 0xa2, 0xb2, 0x28 
 339 static const unsigned char TestAppleGlobalRootCA
[630] = { 
 340     0x30, 0x82, 0x02, 0x72, 0x30, 0x82, 0x01, 0xf8, 0xa0, 0x03, 0x02, 0x01, 
 341     0x02, 0x02, 0x08, 0x1c, 0xb5, 0x4f, 0x77, 0x41, 0xf3, 0xa9, 0x54, 0x30, 
 342     0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x03, 0x30, 
 343     0x6e, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x19, 
 344     0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x47, 
 345     0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 
 346     0x41, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 
 347     0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 
 348     0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 
 349     0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 
 350     0x04, 0x0a, 0x0c, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 
 351     0x63, 0x2e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 
 352     0x02, 0x55, 0x53, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x34, 0x32, 
 353     0x32, 0x30, 0x32, 0x34, 0x33, 0x35, 0x37, 0x5a, 0x17, 0x0d, 0x34, 0x30, 
 354     0x31, 0x32, 0x32, 0x36, 0x30, 0x33, 0x31, 0x33, 0x33, 0x37, 0x5a, 0x30, 
 355     0x6e, 0x31, 0x22, 0x30, 0x20, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x19, 
 356     0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x47, 
 357     0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 
 358     0x41, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 
 359     0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 
 360     0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 
 361     0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 
 362     0x04, 0x0a, 0x0c, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 
 363     0x63, 0x2e, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 
 364     0x02, 0x55, 0x53, 0x30, 0x76, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 
 365     0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x22, 0x03, 
 366     0x62, 0x00, 0x04, 0xee, 0x83, 0xb8, 0xa8, 0x5a, 0xee, 0x93, 0xfd, 0x07, 
 367     0x5c, 0x6f, 0x28, 0xce, 0x1b, 0x78, 0x8f, 0x13, 0x3a, 0x47, 0x27, 0x96, 
 368     0x95, 0xb1, 0x4b, 0xee, 0x7f, 0x27, 0xe4, 0x69, 0x03, 0x9f, 0x3b, 0xff, 
 369     0x47, 0x92, 0x28, 0x45, 0x9e, 0xbc, 0xe3, 0x8d, 0x53, 0x69, 0x75, 0xc0, 
 370     0x88, 0x59, 0x99, 0x92, 0x65, 0xb9, 0x53, 0xd7, 0x43, 0x4c, 0xfc, 0xd5, 
 371     0x37, 0xe2, 0x85, 0x43, 0x15, 0xbb, 0xbc, 0xcb, 0x53, 0x08, 0xbf, 0xfa, 
 372     0x69, 0x86, 0x25, 0x01, 0x4b, 0x6f, 0x31, 0xb3, 0x84, 0xad, 0x2c, 0x48, 
 373     0xff, 0xbf, 0x22, 0x5a, 0x20, 0x25, 0xb7, 0x5b, 0x14, 0xca, 0x8e, 0x5a, 
 374     0x4f, 0x1b, 0x76, 0xa3, 0x63, 0x30, 0x61, 0x30, 0x1d, 0x06, 0x03, 0x55, 
 375     0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x96, 0xd3, 0x56, 0x5f, 0xf8, 0x49, 
 376     0xc1, 0x40, 0xdf, 0x3b, 0x82, 0x36, 0x5f, 0x09, 0x75, 0xee, 0x95, 0x58, 
 377     0x32, 0x43, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 
 378     0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1f, 0x06, 0x03, 0x55, 
 379     0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x96, 0xd3, 0x56, 0x5f, 
 380     0xf8, 0x49, 0xc1, 0x40, 0xdf, 0x3b, 0x82, 0x36, 0x5f, 0x09, 0x75, 0xee, 
 381     0x95, 0x58, 0x32, 0x43, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 
 382     0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0a, 0x06, 0x08, 
 383     0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x03, 0x03, 0x68, 0x00, 0x30, 
 384     0x65, 0x02, 0x30, 0x34, 0x32, 0x8a, 0xdc, 0x5f, 0xa0, 0x07, 0x56, 0xa9, 
 385     0xb3, 0xf5, 0x97, 0x05, 0x9f, 0x2e, 0xa6, 0x81, 0x10, 0x4c, 0xe6, 0xdc, 
 386     0xce, 0xac, 0x66, 0x8b, 0x42, 0xea, 0xb7, 0x47, 0x6d, 0x0b, 0x96, 0x74, 
 387     0x9d, 0x4d, 0xe8, 0xc6, 0x29, 0xf1, 0xd6, 0xaa, 0x75, 0xbc, 0x58, 0x10, 
 388     0xf2, 0xe5, 0xeb, 0x02, 0x31, 0x00, 0xf9, 0x05, 0x65, 0x9e, 0x91, 0xa9, 
 389     0xdf, 0x88, 0x2e, 0x90, 0x0f, 0x04, 0xf6, 0x7e, 0xb5, 0xef, 0xbd, 0x0e, 
 390     0xf9, 0xea, 0x01, 0x6e, 0x9d, 0x85, 0x66, 0x1c, 0x63, 0x7b, 0x9b, 0x70, 
 391     0xcd, 0x04, 0x94, 0x70, 0x3d, 0x06, 0x06, 0x82, 0xbd, 0x3a, 0xc4, 0x7d, 
 392     0xc5, 0x7d, 0x04, 0xac, 0xc9, 0xf2 
 395 static const unsigned char TestAppleRootCA
[1232] = { 
 396     0x30, 0x82, 0x04, 0xcc, 0x30, 0x82, 0x03, 0xb4, 0xa0, 0x03, 0x02, 0x01, 
 397     0x02, 0x02, 0x08, 0x3d, 0x00, 0x4b, 0x90, 0x3e, 0xde, 0xe0, 0xd0, 0x30, 
 398     0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 
 399     0x05, 0x00, 0x30, 0x67, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 
 400     0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 
 401     0x04, 0x0a, 0x0c, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 
 402     0x63, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 
 403     0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 
 404     0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 
 405     0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 0x1b, 0x30, 0x19, 0x06, 0x03, 
 406     0x55, 0x04, 0x03, 0x0c, 0x12, 0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x70, 
 407     0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x30, 
 408     0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x34, 0x32, 0x32, 0x30, 0x32, 0x31, 
 409     0x35, 0x34, 0x38, 0x5a, 0x17, 0x0d, 0x33, 0x35, 0x30, 0x32, 0x30, 0x39, 
 410     0x32, 0x31, 0x34, 0x30, 0x33, 0x36, 0x5a, 0x30, 0x67, 0x31, 0x0b, 0x30, 
 411     0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x31, 0x13, 
 412     0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0a, 0x41, 0x70, 0x70, 
 413     0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x26, 0x30, 0x24, 0x06, 
 414     0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 
 415     0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 
 416     0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x31, 
 417     0x1b, 0x30, 0x19, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x12, 0x54, 0x65, 
 418     0x73, 0x74, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 
 419     0x74, 0x20, 0x43, 0x41, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0d, 0x06, 0x09, 
 420     0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 
 421     0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 0x02, 0x82, 0x01, 0x01, 
 422     0x00, 0xc7, 0xd1, 0x43, 0x53, 0x7f, 0x0d, 0x88, 0x6b, 0xe6, 0xb1, 0x67, 
 423     0x9d, 0xee, 0x67, 0xb6, 0xe7, 0x77, 0x12, 0x81, 0xc4, 0xdf, 0x24, 0x6b, 
 424     0x7a, 0x75, 0x24, 0xf7, 0x01, 0x09, 0xce, 0x34, 0x92, 0xf5, 0x38, 0x08, 
 425     0x42, 0x7e, 0xec, 0x9d, 0xf2, 0x5d, 0x38, 0x91, 0xb4, 0x93, 0x98, 0x35, 
 426     0x11, 0x3c, 0x98, 0x00, 0x77, 0xd9, 0xd7, 0xf3, 0x4a, 0xf8, 0xf0, 0xbc, 
 427     0xeb, 0x97, 0x5d, 0x4b, 0x61, 0x2e, 0xfb, 0xc5, 0xcc, 0x68, 0xb7, 0x6d, 
 428     0x69, 0x10, 0xcc, 0xa5, 0x61, 0x78, 0xa8, 0x81, 0x02, 0x9e, 0xe7, 0x63, 
 429     0xc5, 0xff, 0x29, 0x22, 0x82, 0x68, 0xaa, 0xaa, 0x0e, 0xfb, 0xa9, 0xd8, 
 430     0x16, 0x73, 0x25, 0xbf, 0x9d, 0x08, 0x62, 0x2f, 0x78, 0x04, 0xf6, 0xf6, 
 431     0x44, 0x07, 0x37, 0x6e, 0x99, 0x1b, 0x93, 0xd8, 0x7f, 0xee, 0x72, 0xde, 
 432     0xe8, 0x32, 0xf6, 0x6d, 0x78, 0x04, 0xa0, 0xa8, 0x21, 0x26, 0x8a, 0x32, 
 433     0xe3, 0xb1, 0x65, 0x85, 0xa1, 0x7b, 0x1a, 0xa9, 0x02, 0xb2, 0xbb, 0xee, 
 434     0xdd, 0xdd, 0x8f, 0x41, 0x49, 0xc8, 0x3f, 0xdc, 0x1e, 0xdf, 0x21, 0xa3, 
 435     0x95, 0x99, 0xbb, 0xfc, 0x29, 0xba, 0x40, 0x43, 0xb9, 0x1c, 0xcd, 0xc9, 
 436     0x21, 0x45, 0x73, 0xad, 0xff, 0xfd, 0xa2, 0x6c, 0x5c, 0x3b, 0x1c, 0x37, 
 437     0x91, 0x34, 0x8e, 0x5c, 0xd3, 0xd5, 0x03, 0x58, 0x28, 0xc7, 0xf2, 0x76, 
 438     0x6f, 0x11, 0xc0, 0xb5, 0xbd, 0x7e, 0xef, 0x23, 0xb3, 0x3d, 0xb8, 0xbd, 
 439     0x38, 0x66, 0x8c, 0xf2, 0x78, 0x95, 0xc1, 0x8b, 0x32, 0x65, 0x3a, 0x9b, 
 440     0x49, 0x1a, 0x5c, 0x41, 0x3c, 0xc6, 0x85, 0x50, 0xec, 0x85, 0xf0, 0x59, 
 441     0x17, 0x81, 0xe8, 0x96, 0xe8, 0x6a, 0xcc, 0xb3, 0xc7, 0x46, 0xbf, 0x81, 
 442     0x48, 0xd1, 0x09, 0x1b, 0xbc, 0x73, 0x1e, 0xd7, 0xe8, 0x27, 0xa8, 0x49, 
 443     0x48, 0xa2, 0x1c, 0x41, 0x1d, 0x02, 0x03, 0x01, 0x00, 0x01, 0xa3, 0x82, 
 444     0x01, 0x7a, 0x30, 0x82, 0x01, 0x76, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 
 445     0x0e, 0x04, 0x16, 0x04, 0x14, 0x59, 0xb8, 0x2b, 0x94, 0x3a, 0x1b, 0xba, 
 446     0xf1, 0x00, 0xae, 0xee, 0x50, 0x52, 0x23, 0x33, 0xc9, 0x59, 0xc3, 0x54, 
 447     0x98, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 
 448     0x05, 0x30, 0x03, 0x01, 0x01, 0xff, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 
 449     0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x59, 0xb8, 0x2b, 0x94, 0x3a, 
 450     0x1b, 0xba, 0xf1, 0x00, 0xae, 0xee, 0x50, 0x52, 0x23, 0x33, 0xc9, 0x59, 
 451     0xc3, 0x54, 0x98, 0x30, 0x82, 0x01, 0x11, 0x06, 0x03, 0x55, 0x1d, 0x20, 
 452     0x04, 0x82, 0x01, 0x08, 0x30, 0x82, 0x01, 0x04, 0x30, 0x82, 0x01, 0x00, 
 453     0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x63, 0x64, 0x05, 0x01, 0x30, 
 454     0x81, 0xf2, 0x30, 0x2a, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 
 455     0x02, 0x01, 0x16, 0x1e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 
 456     0x77, 0x77, 0x77, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 
 457     0x6d, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x65, 0x63, 0x61, 0x2f, 0x30, 0x81, 
 458     0xc3, 0x06, 0x08, 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07, 0x02, 0x02, 0x30, 
 459     0x81, 0xb6, 0x0c, 0x81, 0xb3, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x6e, 0x63, 
 460     0x65, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x69, 0x73, 0x20, 0x63, 0x65, 
 461     0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x62, 0x79, 
 462     0x20, 0x61, 0x6e, 0x79, 0x20, 0x70, 0x61, 0x72, 0x74, 0x79, 0x20, 0x61, 
 463     0x73, 0x73, 0x75, 0x6d, 0x65, 0x73, 0x20, 0x61, 0x63, 0x63, 0x65, 0x70, 
 464     0x74, 0x61, 0x6e, 0x63, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, 
 465     0x20, 0x74, 0x68, 0x65, 0x6e, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 
 466     0x61, 0x62, 0x6c, 0x65, 0x20, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x61, 0x72, 
 467     0x64, 0x20, 0x74, 0x65, 0x72, 0x6d, 0x73, 0x20, 0x61, 0x6e, 0x64, 0x20, 
 468     0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x6f, 
 469     0x66, 0x20, 0x75, 0x73, 0x65, 0x2c, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 
 470     0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x20, 0x70, 0x6f, 0x6c, 0x69, 0x63, 
 471     0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 
 472     0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x70, 0x72, 0x61, 0x63, 
 473     0x74, 0x69, 0x63, 0x65, 0x20, 0x73, 0x74, 0x61, 0x74, 0x65, 0x6d, 0x65, 
 474     0x6e, 0x74, 0x73, 0x2e, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 
 475     0x01, 0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0d, 0x06, 0x09, 
 476     0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x05, 0x05, 0x00, 0x03, 
 477     0x82, 0x01, 0x01, 0x00, 0x10, 0x5e, 0x6c, 0x69, 0xfc, 0xa6, 0x0f, 0xe2, 
 478     0x09, 0xd5, 0x94, 0x90, 0xa6, 0x7c, 0x22, 0xdc, 0xee, 0xb0, 0x8f, 0x24, 
 479     0x22, 0x4f, 0xb3, 0x67, 0xdb, 0x32, 0xb0, 0xd6, 0x24, 0x87, 0xe6, 0xf3, 
 480     0xea, 0x9e, 0xd0, 0x95, 0x75, 0xaa, 0xa7, 0x08, 0xff, 0xb0, 0x35, 0xd7, 
 481     0x1f, 0xa3, 0xbf, 0x89, 0x55, 0x0c, 0x1c, 0xa4, 0xd0, 0xf8, 0x00, 0x17, 
 482     0x44, 0x94, 0x36, 0x63, 0x3b, 0x83, 0xfe, 0x4e, 0xe5, 0xb3, 0xec, 0x7b, 
 483     0x7d, 0xce, 0xfe, 0xa9, 0x54, 0xed, 0xbb, 0x12, 0xa6, 0x72, 0x2b, 0xb3, 
 484     0x48, 0x00, 0xc7, 0x8e, 0xf5, 0x5b, 0x68, 0xc9, 0x24, 0x22, 0x7f, 0xa1, 
 485     0x4d, 0xfc, 0x54, 0xd9, 0xd0, 0x5d, 0x82, 0x53, 0x71, 0x29, 0x66, 0xcf, 
 486     0x0f, 0x6d, 0x32, 0xa6, 0x3f, 0xae, 0x54, 0x27, 0xc2, 0x8c, 0x12, 0x4c, 
 487     0xf0, 0xd6, 0xc1, 0x80, 0x75, 0xc3, 0x33, 0x19, 0xd1, 0x8b, 0x58, 0xe6, 
 488     0x00, 0x69, 0x76, 0xe7, 0xe5, 0x3d, 0x47, 0xf9, 0xc0, 0x9c, 0xe7, 0x19, 
 489     0x1e, 0x95, 0xbc, 0x52, 0x15, 0xce, 0x94, 0xf8, 0x30, 0x14, 0x0b, 0x39, 
 490     0x0e, 0x8b, 0xaf, 0x29, 0x30, 0x56, 0xaf, 0x5a, 0x28, 0xac, 0xe1, 0x0f, 
 491     0x51, 0x76, 0x76, 0x9a, 0xe7, 0xb9, 0x7d, 0xa3, 0x30, 0xe8, 0xe3, 0x71, 
 492     0x15, 0xe8, 0xbf, 0x0d, 0x4f, 0x12, 0x9b, 0x65, 0xab, 0xef, 0xa4, 0xe9, 
 493     0x42, 0xf0, 0xd2, 0x4d, 0x20, 0x55, 0x29, 0x88, 0x58, 0x5c, 0x82, 0x67, 
 494     0x63, 0x20, 0x50, 0xc6, 0xca, 0x04, 0xe8, 0xbc, 0x3d, 0x93, 0x06, 0x21, 
 495     0xb2, 0xc0, 0xbf, 0x53, 0x1e, 0xe1, 0x8b, 0x48, 0xa9, 0xb9, 0xd7, 0xe6, 
 496     0x5f, 0x4e, 0x5a, 0x2f, 0x43, 0xac, 0x35, 0xbd, 0x26, 0x60, 0x2f, 0x01, 
 497     0xd5, 0x86, 0x6b, 0x64, 0xfa, 0x67, 0x05, 0x44, 0x55, 0x83, 0x5b, 0x93, 
 498     0x9c, 0x7c, 0xa7, 0x26, 0x4e, 0x02, 0x2b, 0x48 
 501 static const unsigned char TestAppleRootCAG3
[592] = { 
 502     0x30, 0x82, 0x02, 0x4c, 0x30, 0x82, 0x01, 0xd3, 0xa0, 0x03, 0x02, 0x01, 
 503     0x02, 0x02, 0x08, 0x78, 0x36, 0x0b, 0xf4, 0xb7, 0xc8, 0xb6, 0xb0, 0x30, 
 504     0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x03, 0x30, 
 505     0x6c, 0x31, 0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x17, 
 506     0x54, 0x65, 0x73, 0x74, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x52, 
 507     0x6f, 0x6f, 0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x31, 
 508     0x26, 0x30, 0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 0x41, 0x70, 
 509     0x70, 0x6c, 0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 
 510     0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 
 511     0x69, 0x74, 0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 
 512     0x0c, 0x0a, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 
 513     0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 
 514     0x53, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x35, 0x30, 0x34, 0x32, 0x32, 0x30, 
 515     0x33, 0x31, 0x37, 0x34, 0x34, 0x5a, 0x17, 0x0d, 0x34, 0x30, 0x31, 0x32, 
 516     0x32, 0x36, 0x30, 0x33, 0x31, 0x33, 0x33, 0x37, 0x5a, 0x30, 0x6c, 0x31, 
 517     0x20, 0x30, 0x1e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x17, 0x54, 0x65, 
 518     0x73, 0x74, 0x20, 0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x52, 0x6f, 0x6f, 
 519     0x74, 0x20, 0x43, 0x41, 0x20, 0x2d, 0x20, 0x47, 0x33, 0x31, 0x26, 0x30, 
 520     0x24, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x1d, 0x41, 0x70, 0x70, 0x6c, 
 521     0x65, 0x20, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 
 522     0x69, 0x6f, 0x6e, 0x20, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 
 523     0x79, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x0a, 
 524     0x41, 0x70, 0x70, 0x6c, 0x65, 0x20, 0x49, 0x6e, 0x63, 0x2e, 0x31, 0x0b, 
 525     0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x53, 0x30, 
 526     0x76, 0x30, 0x10, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 
 527     0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x22, 0x03, 0x62, 0x00, 0x04, 0xa9, 
 528     0x1a, 0x63, 0x34, 0xef, 0xbc, 0xa6, 0x8a, 0xd6, 0x2a, 0x6a, 0x38, 0x22, 
 529     0xe9, 0x25, 0xad, 0xda, 0x28, 0xa0, 0x49, 0xc5, 0x64, 0xfe, 0x5d, 0x91, 
 530     0xc3, 0x6c, 0xf7, 0x99, 0xe4, 0xba, 0xe4, 0x2a, 0x5f, 0x61, 0xd2, 0xbf, 
 531     0x3b, 0x6c, 0xa8, 0x61, 0x11, 0xb5, 0xe0, 0x66, 0xf7, 0x22, 0x11, 0x86, 
 532     0x97, 0x5d, 0xc3, 0xba, 0x1b, 0x6d, 0x55, 0x7f, 0xd0, 0xf9, 0x80, 0xe0, 
 533     0xff, 0xd9, 0x05, 0xad, 0x5a, 0x5b, 0xbf, 0x3a, 0x7a, 0xa7, 0x09, 0x52, 
 534     0x1a, 0x31, 0x7f, 0x0c, 0xa2, 0xe8, 0x10, 0xf5, 0x36, 0xd3, 0xc8, 0xea, 
 535     0xa0, 0x5b, 0x0a, 0x28, 0x85, 0x30, 0x28, 0x5f, 0x94, 0xf6, 0x94, 0xa3, 
 536     0x42, 0x30, 0x40, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 
 537     0x04, 0x14, 0xfc, 0x46, 0xd8, 0x83, 0x6c, 0x1f, 0xe6, 0xf2, 0xdc, 0xdf, 
 538     0xa7, 0x99, 0x17, 0xae, 0x0b, 0x44, 0x67, 0x17, 0x1b, 0x46, 0x30, 0x0f, 
 539     0x06, 0x03, 0x55, 0x1d, 0x13, 0x01, 0x01, 0xff, 0x04, 0x05, 0x30, 0x03, 
 540     0x01, 0x01, 0xff, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x1d, 0x0f, 0x01, 0x01, 
 541     0xff, 0x04, 0x04, 0x03, 0x02, 0x01, 0x06, 0x30, 0x0a, 0x06, 0x08, 0x2a, 
 542     0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x03, 0x03, 0x67, 0x00, 0x30, 0x64, 
 543     0x02, 0x30, 0x1a, 0x14, 0x38, 0x24, 0xff, 0xb4, 0x08, 0xcb, 0xea, 0xc9, 
 544     0x3b, 0xda, 0xcc, 0x82, 0xf3, 0xd9, 0x0d, 0xd1, 0x2b, 0x6e, 0xbf, 0x1f, 
 545     0xc4, 0x15, 0x14, 0x44, 0xdf, 0x98, 0x9b, 0xd7, 0xdd, 0xba, 0x1b, 0xbe, 
 546     0x4f, 0x9f, 0x17, 0xa4, 0xd2, 0x02, 0x75, 0x90, 0x7d, 0x76, 0xcc, 0x93, 
 547     0x16, 0x2f, 0x02, 0x30, 0x02, 0xd7, 0xda, 0x0b, 0xbe, 0xdd, 0x3d, 0xed, 
 548     0xf9, 0xa3, 0x06, 0x90, 0xa9, 0x58, 0xbd, 0x6b, 0x7c, 0x7c, 0xe5, 0xc5, 
 549     0x4e, 0x0e, 0x44, 0xa2, 0x94, 0x2f, 0xb4, 0x04, 0x9a, 0xcd, 0x9b, 0x69, 
 550     0x8d, 0x2a, 0xc6, 0x1d, 0x58, 0xff, 0xe3, 0x32, 0xb6, 0xdb, 0x3e, 0x34, 
 551     0xff, 0x67, 0x70, 0xf1 
 555 addAnchor(CFMutableDictionaryRef anchors
, 
 556           const unsigned char *trustAnchor
, size_t size
, 
 559     CFDataRef value 
= CFDataCreateWithBytesNoCopy(NULL
, trustAnchor
, size
, kCFAllocatorNull
); 
 560     if (CFDictionaryGetValue(anchors
, value
)) 
 562     CFDictionarySetValue(anchors
, value
, production 
? kCFBooleanTrue 
: kCFBooleanFalse
); 
 563     CFReleaseSafe(value
); 
 567 static CFDictionaryRef
 
 570     static dispatch_once_t onceToken
; 
 571     static CFDictionaryRef anchors 
= NULL
; 
 572     dispatch_once(&onceToken
, ^{ 
 573         CFMutableDictionaryRef temp
; 
 575         temp 
= CFDictionaryCreateMutableForCFTypes(NULL
); 
 576         addAnchor(temp
, AppleRoot
, sizeof(AppleRoot
), true); 
 577         addAnchor(temp
, AppleRootG2
, sizeof(AppleRootG2
), true); 
 578         addAnchor(temp
, AppleRootG3
, sizeof(AppleRootG3
), true); 
 579         addAnchor(temp
, TestAppleGlobalRootCA
, sizeof(TestAppleGlobalRootCA
), false); 
 580         addAnchor(temp
, TestAppleRootCA
, sizeof(TestAppleRootCA
), false); 
 581         addAnchor(temp
, TestAppleRootCAG3
, sizeof(TestAppleRootCAG3
), false);