Toyomasa Watarai
/
Mbed-example-WS-W27
Mbed Cloud example program for workshop in W27 2018.
Embed:
(wiki syntax)
Show/hide line numbers
pal_crypto_test_data.h
00001 typedef struct palAesTestVector{ 00002 unsigned char key[16]; 00003 unsigned char nonce[16]; 00004 unsigned char input[16]; 00005 unsigned char output[16]; 00006 } palAesTestVector_t; 00007 00008 const palAesTestVector_t CtrVector = 00009 { 00010 { 00011 0xAE, 0x68, 0x52, 0xF8, 0x12, 0x10, 0x67, 0xCC, 00012 0x4B, 0xF7, 0xA5, 0x76, 0x55, 0x77, 0xF3, 0x9E 00013 }, 00014 { 00015 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 00016 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 00017 }, 00018 { 00019 0x53, 0x69, 0x6E, 0x67, 0x6C, 0x65, 0x20, 0x62, 00020 0x6C, 0x6F, 0x63, 0x6B, 0x20, 0x6D, 0x73, 0x67 00021 }, 00022 { 00023 0xE4, 0x09, 0x5D, 0x4F, 0xB7, 0xA7, 0xB3, 0x79, 00024 0x2D, 0x61, 0x75, 0xA3, 0x26, 0x13, 0x11, 0xB8 00025 } 00026 }; 00027 00028 const palAesTestVector_t EcbVector = 00029 { 00030 { 00031 0xAE, 0x68, 0x52, 0xF8, 0x12, 0x10, 0x67, 0xCC, 00032 0x4B, 0xF7, 0xA5, 0x76, 0x55, 0x77, 0xF3, 0x9E 00033 }, 00034 { 00035 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 00036 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 00037 }, 00038 { 00039 0x53, 0x69, 0x6E, 0x67, 0x6C, 0x65, 0x20, 0x62, 00040 0x6C, 0x6F, 0x63, 0x6B, 0x20, 0x6D, 0x73, 0x67 00041 }, 00042 { 00043 0x61, 0x5f, 0x09, 0xfb, 0x35, 0x3f, 0x61, 0x3b, 00044 0xa2, 0x8f, 0xf3, 0xa3, 0x0c, 0x64, 0x75, 0x2d 00045 } 00046 }; 00047 00048 00049 00050 typedef struct palSha256Vector_2nd{ 00051 size_t inLenInBytes; 00052 size_t outLenInBytes; 00053 unsigned char output[32]; 00054 unsigned char input[1000]; 00055 } palSha256Vector_2nd_t; 00056 00057 palSha256Vector_2nd_t sha256Vectors_2nd ={ 00058 955, 00059 32, 00060 { 00061 0x41, 0x09, 0xcd, 0xbe, 0xc3, 0x24, 0x0a, 0xd7, 0x4c, 0xc6,0xc3, 0x7f, 0x39, 0x30, 0x0f, 0x70, 00062 0xfe, 0xde, 0x16, 0xe2, 0x1e, 0xfc, 0x77, 0xf7, 0x86, 0x59,0x98, 0x71, 0x4a, 0xad, 0x0b, 0x5e 00063 }, 00064 { 00065 0x83, 0x90, 0xcf, 0x0b, 0xe0, 0x76, 0x61, 0xcc, 0x76, 0x69, 0xaa, 0xc5, 0x4c, 0xe0, 0x9a, 0x37, 00066 0x73, 0x3a, 0x62, 0x9d, 0x45, 0xf5, 0xd9, 0x83, 0xef, 0x20, 0x1f, 0x9b, 0x2d, 0x13, 0x80, 0x0e, 00067 0x55, 0x5d, 0x9b, 0x10, 0x97, 0xfe, 0xc3, 0xb7, 0x83, 0xd7, 0xa5, 0x0d, 0xcb, 0x5e, 0x2b, 0x64, 00068 0x4b, 0x96, 0xa1, 0xe9, 0x46, 0x3f, 0x17, 0x7c, 0xf3, 0x49, 0x06, 0xbf, 0x38, 0x8f, 0x36, 0x6d, 00069 0xb5, 0xc2, 0xde, 0xee, 0x04, 0xa3, 0x0e, 0x28, 0x3f, 0x76, 0x4a, 0x97, 0xc3, 0xb3, 0x77, 0xa0, 00070 0x34, 0xfe, 0xfc, 0x22, 0xc2, 0x59, 0x21, 0x4f, 0xaa, 0x99, 0xba, 0xba, 0xff, 0x16, 0x0a, 0xb0, 00071 0xaa, 0xa7, 0xe2, 0xcc, 0xb0, 0xce, 0x09, 0xc6, 0xb3, 0x2f, 0xe0, 0x8c, 0xbc, 0x47, 0x46, 0x94, 00072 0x37, 0x5a, 0xba, 0x70, 0x3f, 0xad, 0xbf, 0xa3, 0x1c, 0xf6, 0x85, 0xb3, 0x0a, 0x11, 0xc5, 0x7f, 00073 0x3c, 0xf4, 0xed, 0xd3, 0x21, 0xe5, 0x7d, 0x3a, 0xe6, 0xeb, 0xb1, 0x13, 0x3c, 0x82, 0x60, 0xe7, 00074 0x5b, 0x92, 0x24, 0xfa, 0x47, 0xa2, 0xbb, 0x20, 0x52, 0x49, 0xad, 0xd2, 0xe2, 0xe6, 0x2f, 0x81, 00075 0x74, 0x91, 0x48, 0x2a, 0xe1, 0x52, 0x32, 0x2b, 0xe0, 0x90, 0x03, 0x55, 0xcd, 0xcc, 0x8d, 0x42, 00076 0xa9, 0x8f, 0x82, 0xe9, 0x61, 0xa0, 0xdc, 0x6f, 0x53, 0x7b, 0x7b, 0x41, 0x0e, 0xff, 0x10, 0x5f, 00077 0x59, 0x67, 0x3b, 0xfb, 0x78, 0x7b, 0xf0, 0x42, 0xaa, 0x07, 0x1f, 0x7a, 0xf6, 0x8d, 0x94, 0x4d, 00078 0x27, 0x37, 0x1c, 0x64, 0x16, 0x0f, 0xe9, 0x38, 0x27, 0x72, 0x37, 0x25, 0x16, 0xc2, 0x30, 0xc1, 00079 0xf4, 0x5c, 0x0d, 0x6b, 0x6c, 0xca, 0x7f, 0x27, 0x4b, 0x39, 0x4d, 0xa9, 0x40, 0x2d, 0x3e, 0xaf, 00080 0xdf, 0x73, 0x39, 0x94, 0xec, 0x58, 0xab, 0x22, 0xd7, 0x18, 0x29, 0xa9, 0x83, 0x99, 0x57, 0x4d, 00081 0x4b, 0x59, 0x08, 0xa4, 0x47, 0xa5, 0xa6, 0x81, 0xcb, 0x0d, 0xd5, 0x0a, 0x31, 0x14, 0x53, 0x11, 00082 0xd9, 0x2c, 0x22, 0xa1, 0x6d, 0xe1, 0xea, 0xd6, 0x6a, 0x54, 0x99, 0xf2, 0xdc, 0xeb, 0x4c, 0xae, 00083 0x69, 0x47, 0x72, 0xce, 0x90, 0x76, 0x2e, 0xf8, 0x33, 0x6a, 0xfe, 0xc6, 0x53, 0xaa, 0x9b, 0x1a, 00084 0x1c, 0x48, 0x20, 0xb2, 0x21, 0x13, 0x6d, 0xfc, 0xe8, 0x0d, 0xce, 0x2b, 0xa9, 0x20, 0xd8, 0x8a, 00085 0x53, 0x0c, 0x94, 0x10, 0xd0, 0xa4, 0xe0, 0x35, 0x8a, 0x3a, 0x11, 0x05, 0x2e, 0x58, 0xdd, 0x73, 00086 0xb0, 0xb1, 0x79, 0xef, 0x8f, 0x56, 0xfe, 0x3b, 0x5a, 0x2d, 0x11, 0x7a, 0x73, 0xa0, 0xc3, 0x8a, 00087 0x13, 0x92, 0xb6, 0x93, 0x8e, 0x97, 0x82, 0xe0, 0xd8, 0x64, 0x56, 0xee, 0x48, 0x84, 0xe3, 0xc3, 00088 0x9d, 0x4d, 0x75, 0x81, 0x3f, 0x13, 0x63, 0x3b, 0xc7, 0x9b, 0xaa, 0x07, 0xc0, 0xd2, 0xd5, 0x55, 00089 0xaf, 0xbf, 0x20, 0x7f, 0x52, 0xb7, 0xdc, 0xa1, 0x26, 0xd0, 0x15, 0xaa, 0x2b, 0x98, 0x73, 0xb3, 00090 0xeb, 0x06, 0x5e, 0x90, 0xb9, 0xb0, 0x65, 0xa5, 0x37, 0x3f, 0xe1, 0xfb, 0x1b, 0x20, 0xd5, 0x94, 00091 0x32, 0x7d, 0x19, 0xfb, 0xa5, 0x6c, 0xb8, 0x1e, 0x7b, 0x66, 0x96, 0x60, 0x5f, 0xfa, 0x56, 0xeb, 00092 0xa3, 0xc2, 0x7a, 0x43, 0x86, 0x97, 0xcc, 0x21, 0xb2, 0x01, 0xfd, 0x7e, 0x09, 0xf1, 0x8d, 0xee, 00093 0xa1, 0xb3, 0xea, 0x2f, 0x0d, 0x1e, 0xdc, 0x02, 0xdf, 0x0e, 0x20, 0x39, 0x6a, 0x14, 0x54, 0x12, 00094 0xcd, 0x6b, 0x13, 0xc3, 0x2d, 0x2e, 0x60, 0x56, 0x41, 0xc9, 0x48, 0xb7, 0x14, 0xae, 0xc3, 0x0c, 00095 0x06, 0x49, 0xdc, 0x44, 0x14, 0x35, 0x11, 0xf3, 0x5a, 0xb0, 0xfd, 0x5d, 0xd6, 0x4c, 0x34, 0xd0, 00096 0x6f, 0xe8, 0x6f, 0x38, 0x36, 0xdf, 0xe9, 0xed, 0xeb, 0x7f, 0x08, 0xcf, 0xc3, 0xbd, 0x40, 0x95, 00097 0x68, 0x26, 0x35, 0x62, 0x42, 0x19, 0x1f, 0x99, 0xf5, 0x34, 0x73, 0xf3, 0x2b, 0x0c, 0xc0, 0xcf, 00098 0x93, 0x21, 0xd6, 0xc9, 0x2a, 0x11, 0x2e, 0x8d, 0xb9, 0x0b, 0x86, 0xee, 0x9e, 0x87, 0xcc, 0x32, 00099 0xd0, 0x34, 0x3d, 0xb0, 0x1e, 0x32, 0xce, 0x9e, 0xb7, 0x82, 0xcb, 0x24, 0xef, 0xbb, 0xbe, 0xb4, 00100 0x40, 0xfe, 0x92, 0x9e, 0x8f, 0x2b, 0xf8, 0xdf, 0xb1, 0x55, 0x0a, 0x3a, 0x2e, 0x74, 0x2e, 0x8b, 00101 0x45, 0x5a, 0x3e, 0x57, 0x30, 0xe9, 0xe6, 0xa7, 0xa9, 0x82, 0x4d, 0x17, 0xac, 0xc0, 0xf7, 0x2a, 00102 0x7f, 0x67, 0xea, 0xe0, 0xf0, 0x97, 0x0f, 0x8b, 0xde, 0x46, 0xdc, 0xde, 0xfa, 0xed, 0x30, 0x47, 00103 0xcf, 0x80, 0x7e, 0x7f, 0x00, 0xa4, 0x2e, 0x5f, 0xd1, 0x1d, 0x40, 0xf5, 0xe9, 0x85, 0x33, 0xd7, 00104 0x57, 0x44, 0x25, 0xb7, 0xd2, 0xbc, 0x3b, 0x38, 0x45, 0xc4, 0x43, 0x00, 0x8b, 0x58, 0x98, 0x0e, 00105 0x76, 0x8e, 0x46, 0x4e, 0x17, 0xcc, 0x6f, 0x6b, 0x39, 0x39, 0xee, 0xe5, 0x2f, 0x71, 0x39, 0x63, 00106 0xd0, 0x7d, 0x8c, 0x4a, 0xbf, 0x02, 0x44, 0x8e, 0xf0, 0xb8, 0x89, 0xc9, 0x67, 0x1e, 0x2f, 0x8a, 00107 0x43, 0x6d, 0xde, 0xef, 0xfc, 0xca, 0x71, 0x76, 0xe9, 0xbf, 0x9d, 0x10, 0x05, 0xec, 0xd3, 0x77, 00108 0xf2, 0xfa, 0x67, 0xc2, 0x3e, 0xd1, 0xf1, 0x37, 0xe6, 0x0b, 0xf4, 0x60, 0x18, 0xa8, 0xbd, 0x61, 00109 0x3d, 0x03, 0x8e, 0x88, 0x37, 0x04, 0xfc, 0x26, 0xe7, 0x98, 0x96, 0x9d, 0xf3, 0x5e, 0xc7, 0xbb, 00110 0xc6, 0xa4, 0xfe, 0x46, 0xd8, 0x91, 0x0b, 0xd8, 0x2f, 0xa3, 0xcd, 0xed, 0x26, 0x5d, 0x0a, 0x3b, 00111 0x6d, 0x39, 0x9e, 0x42, 0x51, 0xe4, 0xd8, 0x23, 0x3d, 0xaa, 0x21, 0xb5, 0x81, 0x2f, 0xde, 0xd6, 00112 0x53, 0x61, 0x98, 0xff, 0x13, 0xaa, 0x5a, 0x1c, 0xd4, 0x6a, 0x5b, 0x9a, 0x17, 0xa4, 0xdd, 0xc1, 00113 0xd9, 0xf8, 0x55, 0x44, 0xd1, 0xd1, 0xcc, 0x16, 0xf3, 0xdf, 0x85, 0x80, 0x38, 0xc8, 0xe0, 0x71, 00114 0xa1, 0x1a, 0x7e, 0x15, 0x7a, 0x85, 0xa6, 0xa8, 0xdc, 0x47, 0xe8, 0x8d, 0x75, 0xe7, 0x00, 0x9a, 00115 0x8b, 0x26, 0xfd, 0xb7, 0x3f, 0x33, 0xa2, 0xa7, 0x0f, 0x1e, 0x0c, 0x25, 0x9f, 0x8f, 0x95, 0x33, 00116 0xb9, 0xb8, 0xf9, 0xaf, 0x92, 0x88, 0xb7, 0x27, 0x4f, 0x21, 0xba, 0xee, 0xc7, 0x8d, 0x39, 0x6f, 00117 0x8b, 0xac, 0xdc, 0xc2, 0x24, 0x71, 0x20, 0x7d, 0x9b, 0x4e, 0xfc, 0xcd, 0x3f, 0xed, 0xc5, 0xc5, 00118 0xa2, 0x21, 0x4f, 0xf5, 0xe5, 0x1c, 0x55, 0x3f, 0x35, 0xe2, 0x1a, 0xe6, 0x96, 0xfe, 0x51, 0xe8, 00119 0xdf, 0x73, 0x3a, 0x8e, 0x06, 0xf5, 0x0f, 0x41, 0x9e, 0x59, 0x9e, 0x9f, 0x9e, 0x4b, 0x37, 0xce, 00120 0x64, 0x3f, 0xc8, 0x10, 0xfa, 0xaa, 0x47, 0x98, 0x97, 0x71, 0x50, 0x9d, 0x69, 0xa1, 0x10, 0xac, 00121 0x91, 0x62, 0x61, 0x42, 0x70, 0x26, 0x36, 0x9a, 0x21, 0x26, 0x3a, 0xc4, 0x46, 0x0f, 0xb4, 0xf7, 00122 0x08, 0xf8, 0xae, 0x28, 0x59, 0x98, 0x56, 0xdb, 0x7c, 0xb6, 0xa4, 0x3a, 0xc8, 0xe0, 0x3d, 0x64, 00123 0xa9, 0x60, 0x98, 0x07, 0xe7, 0x6c, 0x5f, 0x31, 0x2b, 0x9d, 0x18, 0x63, 0xbf, 0xa3, 0x04, 0xe8, 00124 0x95, 0x36, 0x47, 0x64, 0x8b, 0x4f, 0x4a, 0xb0, 0xed, 0x99, 0x5e 00125 } 00126 }; 00127 00128 typedef struct palSha256Vector{ 00129 size_t inLenInBytes; 00130 size_t outLenInBytes; 00131 unsigned char output[32]; 00132 unsigned char input[5]; 00133 } palSha256Vector_t; 00134 00135 palSha256Vector_t sha256Vectors[6] = 00136 { 00137 { 00138 0, 00139 32, 00140 { 00141 0xe3, 0xb0, 0xc4, 0x42, 0x98, 0xfc, 0x1c, 0x14, 0x9a, 0xfb, 0xf4, 0xc8, 0x99, 0x6f, 0xb9, 0x24, 00142 0x27, 0xae, 0x41, 0xe4, 0x64, 0x9b, 0x93, 0x4c, 0xa4, 0x95, 0x99, 0x1b, 0x78, 0x52, 0xb8, 0x55 00143 }, 00144 {0x00} 00145 }, 00146 { 00147 1, 00148 32, 00149 { 00150 0x68, 0x32, 0x57, 0x20, 0xaa, 0xbd, 0x7c, 0x82, 0xf3, 0x0f, 0x55, 0x4b, 0x31, 0x3d, 0x05, 0x70, 00151 0xc9, 0x5a, 0xcc, 0xbb, 0x7d, 0xc4, 0xb5, 0xaa, 0xe1, 0x12, 0x04, 0xc0, 0x8f, 0xfe, 0x73, 0x2b 00152 }, 00153 {0xbd} 00154 }, 00155 { 00156 2, 00157 32, 00158 { 00159 0x7c, 0x4f, 0xbf, 0x48, 0x44, 0x98, 0xd2, 0x1b, 0x48, 0x7b, 0x9d, 0x61, 0xde, 0x89,0x14, 0xb2, 00160 0xea, 0xda, 0xf2, 0x69, 0x87, 0x12, 0x93, 0x6d, 0x47, 0xc3, 0xad, 0xa2, 0x55, 0x8f,0x67, 0x88 00161 }, 00162 {0x5f, 0xd4} 00163 }, 00164 { 00165 3, 00166 32, 00167 { 00168 0x40, 0x96, 0x80, 0x42, 0x21, 0x09, 0x3d, 0xdc, 0xcf, 0xbf, 0x46, 0x83, 0x14, 0x90, 0xea, 0x63, 00169 0xe9, 0xe9, 0x94, 0x14, 0x85, 0x8f, 0x8d, 0x75, 0xff, 0x7f, 0x64, 0x2c, 0x7c, 0xa6, 0x18, 0x03 00170 }, 00171 {0xb0, 0xbd, 0x69} 00172 }, 00173 { 00174 4, 00175 32, 00176 { 00177 0x7a, 0xbc, 0x22, 0xc0, 0xae, 0x5a, 0xf2, 0x6c, 0xe9, 0x3d, 0xbb, 0x94, 0x43, 0x3a, 0x0e, 0x0b, 00178 0x2e, 0x11, 0x9d, 0x01, 0x4f, 0x8e, 0x7f, 0x65, 0xbd, 0x56, 0xc6, 0x1c,0xcc, 0xcd, 0x95, 0x04 00179 }, 00180 {0xc9, 0x8c, 0x8e, 0x55 } 00181 }, 00182 { 00183 5, 00184 32, 00185 { 00186 0x75, 0x16, 0xfb, 0x8b, 0xb1, 0x13, 0x50, 0xdf, 0x2b, 0xf3, 0x86, 0xbc, 0x3c, 0x33, 0xbd, 0x0f, 00187 0x52, 0xcb, 0x4c, 0x67, 0xc6, 0xe4, 0x74, 0x5e, 0x04, 0x88, 0xe6, 0x2c, 0x2a, 0xea, 0x26, 0x05 00188 }, 00189 {0x81, 0xa7, 0x23, 0xd9, 0x66} 00190 } 00191 }; 00192 00193 typedef struct palAesCcmVector{ 00194 const unsigned char key[16]; 00195 const unsigned char iv[16]; 00196 const unsigned char ad[20]; 00197 const unsigned char in[24]; 00198 const unsigned char out[32]; 00199 size_t ivLen; 00200 size_t adLen; 00201 size_t inLen; 00202 size_t tagLen; 00203 // size_t outLen; 00204 00205 }palAesCcmVector_t; 00206 00207 static const palAesCcmVector_t aesCcmVectors[3] = 00208 { 00209 { 00210 { 00211 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 00212 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f 00213 }, 00214 { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16 }, 00215 { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 }, 00216 { 0x20, 0x21, 0x22, 0x23 }, 00217 { 0x71, 0x62, 0x01, 0x5b, 0x4d, 0xac, 0x25, 0x5d }, 00218 7, 8, 4, 4 00219 }, 00220 { 00221 { 00222 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 00223 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f 00224 }, 00225 { 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17 }, 00226 { 00227 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 00228 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f 00229 }, 00230 { 00231 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 00232 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f 00233 }, 00234 { 00235 0xd2, 0xa1, 0xf0, 0xe0, 0x51, 0xea, 0x5f, 0x62, 00236 0x08, 0x1a, 0x77, 0x92, 0x07, 0x3d, 0x59, 0x3d, 00237 0x1f, 0xc6, 0x4f, 0xbf, 0xac, 0xcd 00238 }, 00239 8, 16, 16, 6 00240 }, 00241 { 00242 { 00243 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 00244 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f 00245 }, 00246 { 00247 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 00248 0x18, 0x19, 0x1a, 0x1b 00249 }, 00250 { 00251 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 00252 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 00253 0x10, 0x11, 0x12, 0x13 00254 }, 00255 { 00256 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 00257 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 00258 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 00259 }, 00260 { 00261 0xe3, 0xb2, 0x01, 0xa9, 0xf5, 0xb7, 0x1a, 0x7a, 00262 0x9b, 0x1c, 0xea, 0xec, 0xcd, 0x97, 0xe7, 0x0b, 00263 0x61, 0x76, 0xaa, 0xd9, 0xa4, 0x42, 0x8a, 0xa5, 00264 0x48, 0x43, 0x92, 0xfb, 0xc1, 0xb0, 0x99, 0x51 00265 }, 00266 12, 20, 24, 8 00267 } 00268 }; 00269 00270 static const unsigned char ctr_drbg_nonce_pers[16] = 00271 { 00272 0x1b, 0x54, 0xb8, 0xff, 0x06, 0x42, 0xbf, 0xf5, 00273 0x21, 0xf1, 0x5c, 0x1c, 0x0b, 0x66, 0x5f, 0x3f 00274 }; 00275 00276 unsigned char ctr_drbg_buf[100][16]; 00277 00278 typedef struct palAesCMACVector{ 00279 const unsigned char key[16]; 00280 const unsigned char in[64]; 00281 const unsigned char out[16]; 00282 size_t inLen; 00283 }palAesCMACVector_t; 00284 00285 static const palAesCMACVector_t cmacSingleUseVector[4] = 00286 { 00287 { 00288 { 00289 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 00290 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00291 }, 00292 { 00293 0x00 00294 }, 00295 { 00296 0xbb, 0x1d, 0x69, 0x29, 0xe9, 0x59, 0x37, 0x28, 00297 0x7f, 0xa3, 0x7d, 0x12, 0x9b, 0x75, 0x67, 0x46 00298 }, 00299 0 00300 }, 00301 { 00302 { 00303 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 00304 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00305 }, 00306 { 00307 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 00308 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a 00309 }, 00310 { 00311 0x07, 0x0a, 0x16, 0xb4, 0x6b, 0x4d, 0x41, 0x44, 00312 0xf7, 0x9b, 0xdd, 0x9d, 0xd0, 0x4a, 0x28, 0x7c 00313 }, 00314 16 00315 }, 00316 { 00317 { 00318 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 00319 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00320 }, 00321 { 00322 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 00323 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 00324 0xae, 0x2d, 0x8a, 0x57 00325 }, 00326 { 00327 0x7d, 0x85, 0x44, 0x9e, 0xa6, 0xea, 0x19, 0xc8, 00328 0x23, 0xa7, 0xbf, 0x78, 0x83, 0x7d, 0xfa, 0xde 00329 }, 00330 20 00331 }, 00332 { 00333 { 00334 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 00335 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00336 }, 00337 { 00338 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 00339 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 00340 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 00341 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 00342 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 00343 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 00344 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 00345 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 00346 }, 00347 { 00348 0x51, 0xf0, 0xbe, 0xbf, 0x7e, 0x3b, 0x9d, 0x92, 00349 0xfc, 0x49, 0x74, 0x17, 0x79, 0x36, 0x3c, 0xfe 00350 }, 00351 64 00352 } 00353 }; 00354 00355 typedef struct palCMACMultipleBlockVector{ 00356 palCipherID_t cipher_type; 00357 unsigned char key_string[64]; 00358 unsigned char block1_string[64]; 00359 unsigned char block2_string[64]; 00360 unsigned char block3_string[64]; 00361 unsigned char block4_string[64]; 00362 unsigned char expected_result_string[64]; 00363 uint32_t keybits; 00364 uint32_t block_size; 00365 int32_t block1_len; 00366 int32_t block2_len; 00367 int32_t block3_len; 00368 int32_t block4_len; 00369 }palCMACMultipleBlockVector_t; 00370 00371 static const palCMACMultipleBlockVector_t cmacIterativeUseVector[] = 00372 { 00373 { 00374 PAL_CIPHER_ID_AES, 00375 { 00376 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00377 }, 00378 { 0x00 }, 00379 { 0x00 }, 00380 { 0x00 }, 00381 { 0x00 }, 00382 { 00383 0xbb, 0x1d, 0x69, 0x29, 0xe9, 0x59, 0x37, 0x28, 0x7f, 0xa3, 0x7d, 0x12, 0x9b, 0x75, 0x67, 0x46 00384 }, 128, 16, -1, -1, -1, -1 00385 }, 00386 { 00387 PAL_CIPHER_ID_AES, 00388 { 00389 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00390 }, 00391 { 00392 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a 00393 }, 00394 { 0x00 }, 00395 { 0x00 }, 00396 { 0x00 }, 00397 { 00398 0x07, 0x0a, 0x16, 0xb4, 0x6b, 0x4d, 0x41, 0x44, 0xf7, 0x9b, 0xdd, 0x9d, 0xd0, 0x4a, 0x28, 0x7c 00399 }, 128, 16, 16, -1, -1, -1 00400 }, 00401 { 00402 PAL_CIPHER_ID_AES, 00403 { 00404 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00405 }, 00406 { 00407 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 00408 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 00409 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef, 00410 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 00411 }, 00412 { 0x00 }, 00413 { 0x00 }, 00414 { 0x00 }, 00415 { 00416 0x51, 0xf0, 0xbe, 0xbf, 0x7e, 0x3b, 0x9d, 0x92, 0xfc, 0x49, 0x74, 0x17, 0x79, 0x36, 0x3c, 0xfe 00417 }, 128, 16, 64, -1, -1, -1 00418 }, 00419 { 00420 PAL_CIPHER_ID_AES, 00421 { 00422 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00423 }, 00424 { 00425 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96 00426 }, 00427 { 00428 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a 00429 }, 00430 { 0x00 }, 00431 { 0x00 }, 00432 { 00433 0x07, 0x0a, 0x16, 0xb4, 0x6b, 0x4d, 0x41, 0x44, 0xf7, 0x9b, 0xdd, 0x9d, 0xd0, 0x4a, 0x28, 0x7c 00434 }, 128, 16, 8, 8, -1, -1 00435 }, 00436 { 00437 PAL_CIPHER_ID_AES, 00438 { 00439 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00440 }, 00441 { 00442 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96, 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a 00443 }, 00444 { 00445 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c, 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51 00446 }, 00447 { 00448 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef 00449 }, 00450 { 00451 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 00452 }, 00453 { 00454 0x51, 0xf0, 0xbe, 0xbf, 0x7e, 0x3b, 0x9d, 0x92, 0xfc, 0x49, 0x74, 0x17, 0x79, 0x36, 0x3c, 0xfe 00455 }, 128, 16, 16, 16, 16, 16 00456 }, 00457 { 00458 PAL_CIPHER_ID_AES, 00459 { 00460 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00461 }, 00462 { 00463 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96 00464 }, 00465 { 00466 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a, 0xae, 0x2d, 0x8a, 0x57, 0x1e, 0x03, 0xac, 0x9c 00467 }, 00468 { 00469 0x9e, 0xb7, 0x6f, 0xac, 0x45, 0xaf, 0x8e, 0x51, 0x30, 0xc8, 0x1c, 0x46, 0xa3, 0x5c, 0xe4, 0x11, 00470 0xe5, 0xfb, 0xc1, 0x19, 0x1a, 0x0a, 0x52, 0xef 00471 }, 00472 { 00473 0xf6, 0x9f, 0x24, 0x45, 0xdf, 0x4f, 0x9b, 0x17, 0xad, 0x2b, 0x41, 0x7b, 0xe6, 0x6c, 0x37, 0x10 00474 }, 00475 { 00476 0x51, 0xf0, 0xbe, 0xbf, 0x7e, 0x3b, 0x9d, 0x92, 0xfc, 0x49, 0x74, 0x17, 0x79, 0x36, 0x3c, 0xfe 00477 },128, 16, 8, 16, 24, 16 00478 }, 00479 { 00480 PAL_CIPHER_ID_AES, 00481 { 00482 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6, 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c 00483 }, 00484 { 0x00 }, 00485 { 00486 0x6b, 0xc1, 0xbe, 0xe2, 0x2e, 0x40, 0x9f, 0x96 00487 }, 00488 { 0x00 }, 00489 { 00490 0xe9, 0x3d, 0x7e, 0x11, 0x73, 0x93, 0x17, 0x2a 00491 }, 00492 { 00493 0x07, 0x0a, 0x16, 0xb4, 0x6b, 0x4d, 0x41, 0x44, 0xf7, 0x9b, 0xdd, 0x9d, 0xd0, 0x4a, 0x28, 0x7c 00494 }, 128, 16, 0, 8, 0, 8 00495 } 00496 }; 00497 00498 typedef struct palASN1TestVector{ 00499 size_t start; 00500 size_t end; 00501 size_t dataLen; 00502 uint8_t type; 00503 }palASN1TestVector_t; 00504 00505 static const palASN1TestVector_t ASN1TestVector[11] = { 00506 { 0, 879, 875, PAL_ASN1_SEQUENCE | PAL_ASN1_CONSTRUCTED }, 00507 { 10, 13, 1, PAL_ASN1_INTEGER }, 00508 { 26, 37, 9, PAL_ASN1_OID }, 00509 { 37, 39, 0, PAL_ASN1_NULL }, 00510 { 41, 54, 11, PAL_ASN1_SET | PAL_ASN1_CONSTRUCTED }, 00511 { 50, 54, 2, PAL_ASN1_PRINTABLE_STRING }, 00512 { 63, 75, 10, PAL_ASN1_UTF8_STRING }, 00513 { 119, 134, 13, PAL_ASN1_UTC_TIME }, 00514 { 532, 556, 22, PAL_ASN1_OCTET_STRING }, 00515 { 600, 603, 1, PAL_ASN1_BOOLEAN }, 00516 { 618, 879, 257, PAL_ASN1_BIT_STRING } 00517 }; 00518 00519 00520 static const unsigned char asn1_data[879] = 00521 { 00522 0x30, 0x82, 0x03, 0x6B, 0x30, 0x82, 0x02, 0x53, 0xA0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x09, 0x00, 00523 0xAA, 0xF6, 0x26, 0x55, 0x10, 0xA4, 0x58, 0x1E, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 00524 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x30, 0x4C, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 00525 0x04, 0x06, 0x13, 0x02, 0x49, 0x4C, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0C, 00526 0x0A, 0x53, 0x6F, 0x6D, 0x65, 0x2D, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0C, 0x30, 0x0A, 0x06, 00527 0x03, 0x55, 0x04, 0x07, 0x0C, 0x03, 0x4E, 0x65, 0x74, 0x31, 0x0C, 0x30, 0x0A, 0x06, 0x03, 0x55, 00528 0x04, 0x0A, 0x0C, 0x03, 0x41, 0x52, 0x4D, 0x31, 0x0C, 0x30, 0x0A, 0x06, 0x03, 0x55, 0x04, 0x0B, 00529 0x0C, 0x03, 0x50, 0x41, 0x4C, 0x30, 0x1E, 0x17, 0x0D, 0x31, 0x36, 0x31, 0x31, 0x32, 0x33, 0x31, 00530 0x33, 0x35, 0x30, 0x31, 0x39, 0x5A, 0x17, 0x0D, 0x31, 0x37, 0x31, 0x31, 0x32, 0x33, 0x31, 0x33, 00531 0x35, 0x30, 0x31, 0x39, 0x5A, 0x30, 0x4C, 0x31, 0x0B, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 00532 0x13, 0x02, 0x49, 0x4C, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0C, 0x0A, 0x53, 00533 0x6F, 0x6D, 0x65, 0x2D, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x0C, 0x30, 0x0A, 0x06, 0x03, 0x55, 00534 0x04, 0x07, 0x0C, 0x03, 0x4E, 0x65, 0x74, 0x31, 0x0C, 0x30, 0x0A, 0x06, 0x03, 0x55, 0x04, 0x0A, 00535 0x0C, 0x03, 0x41, 0x52, 0x4D, 0x31, 0x0C, 0x30, 0x0A, 0x06, 0x03, 0x55, 0x04, 0x0B, 0x0C, 0x03, 00536 0x50, 0x41, 0x4C, 0x30, 0x82, 0x01, 0x22, 0x30, 0x0D, 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 00537 0x0D, 0x01, 0x01, 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0F, 0x00, 0x30, 0x82, 0x01, 0x0A, 0x02, 00538 0x82, 0x01, 0x01, 0x00, 0xCE, 0xD5, 0x2F, 0x89, 0x97, 0xD5, 0xC1, 0xDF, 0x2D, 0xDB, 0x1B, 0xF5, 00539 0x4B, 0x0F, 0xAF, 0xD0, 0xF1, 0xC5, 0xD4, 0x45, 0xD4, 0x6D, 0x55, 0x73, 0x73, 0xD5, 0xBB, 0x7D, 00540 0x2E, 0x56, 0x8E, 0xF4, 0xCB, 0xAC, 0x0A, 0x78, 0x91, 0x9E, 0x6C, 0x72, 0xA6, 0x0F, 0x65, 0xFE, 00541 0x86, 0x91, 0x2D, 0x96, 0xE0, 0x40, 0xF4, 0x3A, 0xBB, 0x82, 0x29, 0x69, 0x23, 0x92, 0x93, 0xC8, 00542 0x20, 0x83, 0xD3, 0x7A, 0xFF, 0x71, 0xB4, 0x11, 0x43, 0xF0, 0x30, 0xE8, 0x32, 0xF8, 0x4C, 0xCB, 00543 0xE6, 0xF1, 0xE2, 0xBC, 0x01, 0xE6, 0xB8, 0x17, 0xBF, 0x82, 0xA2, 0xBF, 0x75, 0xFF, 0x88, 0x44, 00544 0x15, 0x86, 0x88, 0x4A, 0xDF, 0xEF, 0x48, 0x46, 0xD8, 0xFA, 0x81, 0xBB, 0xAA, 0xED, 0x16, 0xC7, 00545 0x7C, 0xE8, 0xCE, 0x1E, 0x79, 0x6C, 0x2D, 0x66, 0x88, 0x4C, 0xB7, 0x88, 0xA5, 0x35, 0xD7, 0x4A, 00546 0xE8, 0x6D, 0x89, 0xD1, 0x84, 0xBF, 0x23, 0x9B, 0xA2, 0xF4, 0xF3, 0x0D, 0x3E, 0xB8, 0x12, 0x48, 00547 0x38, 0xC6, 0x76, 0xD3, 0xEF, 0xAE, 0xA1, 0xD9, 0xC9, 0xA8, 0x32, 0xE7, 0x5E, 0xD5, 0x7C, 0x2A, 00548 0x26, 0xAD, 0x94, 0x60, 0xF6, 0x73, 0x73, 0xD1, 0x8B, 0xA3, 0x2A, 0x42, 0xA6, 0x86, 0x47, 0x0F, 00549 0x61, 0x59, 0xCD, 0x13, 0x87, 0xFB, 0x14, 0x16, 0x0E, 0x22, 0xBA, 0x7E, 0xC4, 0xF9, 0xC5, 0x59, 00550 0x31, 0xDF, 0xDA, 0x6A, 0xBB, 0x3F, 0x8B, 0xE7, 0xF7, 0x22, 0x7E, 0x35, 0xF2, 0xE3, 0x8A, 0xAC, 00551 0xFA, 0xCF, 0x49, 0xE0, 0x64, 0xC0, 0xC8, 0x24, 0x96, 0x69, 0x23, 0x3A, 0xC7, 0x04, 0x0A, 0x99, 00552 0xA7, 0x21, 0x87, 0x87, 0x9A, 0x01, 0x7B, 0x50, 0xCF, 0xE1, 0x7B, 0x0E, 0x8A, 0x4A, 0x25, 0xCF, 00553 0x88, 0xE4, 0x47, 0xAD, 0x85, 0x47, 0x8A, 0xE7, 0x35, 0xD9, 0x6B, 0x13, 0xA4, 0x77, 0x3F, 0x58, 00554 0x8F, 0x55, 0x65, 0xFF, 0x02, 0x03, 0x01, 0x00, 0x01, 0xA3, 0x50, 0x30, 0x4E, 0x30, 0x1D, 0x06, 00555 0x03, 0x55, 0x1D, 0x0E, 0x04, 0x16, 0x04, 0x14, 0x53, 0x43, 0x7D, 0x59, 0x2A, 0xF5, 0x93, 0xA5, 00556 0xA5, 0x02, 0x43, 0xD9, 0x7B, 0xC4, 0x2C, 0xCA, 0xBD, 0xDE, 0x96, 0x0D, 0x30, 0x1F, 0x06, 0x03, 00557 0x55, 0x1D, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x53, 0x43, 0x7D, 0x59, 0x2A, 0xF5, 0x93, 00558 0xA5, 0xA5, 0x02, 0x43, 0xD9, 0x7B, 0xC4, 0x2C, 0xCA, 0xBD, 0xDE, 0x96, 0x0D, 0x30, 0x0C, 0x06, 00559 0x03, 0x55, 0x1D, 0x13, 0x04, 0x05, 0x30, 0x03, 0x01, 0x01, 0xFF, 0x30, 0x0D, 0x06, 0x09, 0x2A, 00560 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x01, 0x0B, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x15, 00561 0x9A, 0xFC, 0xBF, 0x26, 0x7A, 0x6A, 0xF9, 0x3F, 0xD4, 0x88, 0xF9, 0x83, 0x6C, 0xF6, 0x68, 0xC6, 00562 0x99, 0xDD, 0x55, 0x62, 0x89, 0xFB, 0x80, 0x74, 0x5B, 0x14, 0x1A, 0x82, 0x4F, 0xFF, 0x5E, 0xCC, 00563 0x20, 0x97, 0x68, 0x8C, 0x7B, 0x85, 0x02, 0xDE, 0x5A, 0x02, 0x4C, 0x72, 0x57, 0xE8, 0x01, 0x0A, 00564 0x08, 0x0F, 0xA2, 0xAB, 0xA4, 0x57, 0xC8, 0x4C, 0x8A, 0x3D, 0xCF, 0x23, 0xA6, 0xE4, 0x8D, 0xE3, 00565 0x1E, 0x9F, 0x50, 0xB3, 0x2C, 0xDD, 0xC6, 0x11, 0x98, 0xAA, 0x71, 0xA9, 0xF3, 0x02, 0x5C, 0x16, 00566 0xDB, 0xC2, 0x28, 0xA3, 0x9E, 0x51, 0xB1, 0xE7, 0xEC, 0x60, 0xE4, 0x59, 0x62, 0x1B, 0xC0, 0x4F, 00567 0xE4, 0xF3, 0xD7, 0x10, 0x12, 0x38, 0x6D, 0x2A, 0xF8, 0x96, 0x4E, 0x25, 0xE5, 0x05, 0xE1, 0x77, 00568 0x1F, 0xC7, 0xAB, 0x54, 0xDA, 0x0D, 0x09, 0xE5, 0xC3, 0xB0, 0x61, 0x50, 0x11, 0xC8, 0x5C, 0x7B, 00569 0x6B, 0x96, 0x71, 0x2E, 0xC9, 0x7C, 0x8E, 0x34, 0xA9, 0xB9, 0x25, 0x0A, 0x35, 0x0F, 0xA1, 0x77, 00570 0x6C, 0xC3, 0x30, 0x96, 0x7C, 0x40, 0x12, 0x9D, 0xBB, 0x62, 0xA7, 0xD6, 0xE6, 0x07, 0xCB, 0xAB, 00571 0xC6, 0xD7, 0xD1, 0x3C, 0x4D, 0x7F, 0xAE, 0x62, 0x22, 0xBD, 0x88, 0x33, 0x43, 0x15, 0xFF, 0x63, 00572 0x80, 0x95, 0x29, 0xCD, 0x00, 0x76, 0x53, 0xF6, 0xA6, 0xA1, 0xD0, 0x07, 0xE4, 0xF0, 0xC2, 0x03, 00573 0xBA, 0x7B, 0x25, 0x9B, 0x75, 0xA1, 0xB6, 0xA8, 0x4C, 0x44, 0x72, 0x14, 0x48, 0x29, 0x75, 0x76, 00574 0x66, 0xB1, 0xBB, 0x5A, 0x2D, 0x7C, 0x21, 0xBB, 0xEA, 0x70, 0x45, 0x8E, 0x6E, 0xFA, 0xCE, 0xCE, 00575 0x26, 0xDE, 0xF7, 0x36, 0xB7, 0x52, 0xBC, 0x9F, 0x21, 0x35, 0x2F, 0x5B, 0xAF, 0x0A, 0xAE, 0xD8, 00576 0xE1, 0x0C, 0x69, 0x27, 0x30, 0xFF, 0xCF, 0x13, 0xE8, 0x57, 0x1F, 0x5B, 0x38, 0x13, 0x02 00577 }; 00578 00579 00580 typedef struct palCheckEcKeyTestVector 00581 { 00582 const unsigned char key[200]; 00583 size_t keyLen; 00584 palGroupIndex_t index; 00585 uint32_t keyType; 00586 palStatus_t parsePrvRes; 00587 palStatus_t checkPrvRes; 00588 bool verifed; 00589 palStatus_t parsePubRes; 00590 palStatus_t checkPubRes; 00591 }palCheckEcKeyTestVector_t; 00592 00593 00594 00595 static const palCheckEcKeyTestVector_t check_ec_key_data[3] = 00596 { 00597 { 00598 { 0x00 }, 0, PAL_ECP_DP_SECP256R1, PAL_CHECK_PRIVATE_KEY, PAL_ERR_PK_KEY_INVALID_FORMAT, PAL_ERR_PARSING_PRIVATE_KEY, false, PAL_ERR_PARSING_PUBLIC_KEY, PAL_ERR_PARSING_PUBLIC_KEY 00599 }, 00600 { 00601 { 00602 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0x07, 0xED, 0xF8, 0x74, 0xA2, 0x0A, 0x3D, 0xA2, 0xC5, 00603 0x89, 0x99, 0x8A, 0x28, 0xC5, 0x00, 0x8C, 0x12, 0xD8, 0x9B, 0xC9, 0x74, 0x2F, 0x94, 0x53, 0x40, 00604 0x82, 0x36, 0x96, 0x04, 0x15, 0x2A, 0xB6, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 00605 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0xE5, 0xD8, 0x40, 0xEF, 0xE8, 0x3B, 0x0D, 00606 0xC5, 0x7E, 0x72, 0x21, 0x65, 0xF6, 0x96, 0xF0, 0xC8, 0x16, 0xCC, 0xC5, 0x9D, 0x88, 0x24, 0x41, 00607 0xF3, 0xB3, 0x39, 0x34, 0xD2, 0xA1, 0x5B, 0xF9, 0xC7, 0xAF, 0xF6, 0x8F, 0x4E, 0x78, 0x01, 0xDB, 00608 0xB2, 0xAA, 0x7E, 0x7E, 0xC7, 0x41, 0x31, 0xF4, 0x8D, 0xD4, 0x8E, 0x98, 0x7B, 0x16, 0x4E, 0x96, 00609 0x26, 0x71, 0x9D, 0x1F, 0x84, 0xEC, 0x68, 0x9A, 0x31 00610 }, 121, PAL_ECP_DP_SECP256R1, PAL_CHECK_PRIVATE_KEY, PAL_SUCCESS, PAL_SUCCESS, true, PAL_ERR_PARSING_PUBLIC_KEY, PAL_ERR_PARSING_PUBLIC_KEY 00611 }, 00612 { 00613 { 00614 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 00615 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xE5, 0xD8, 0x40, 0xEF, 0xE8, 00616 0x3B, 0x0D, 0xC5, 0x7E, 0x72, 0x21, 0x65, 0xF6, 0x96, 0xF0, 0xC8, 0x16, 0xCC, 0xC5, 0x9D, 0x88, 00617 0x24, 0x41, 0xF3, 0xB3, 0x39, 0x34, 0xD2, 0xA1, 0x5B, 0xF9, 0xC7, 0xAF, 0xF6, 0x8F, 0x4E, 0x78, 00618 0x01, 0xDB, 0xB2, 0xAA, 0x7E, 0x7E, 0xC7, 0x41, 0x31, 0xF4, 0x8D, 0xD4, 0x8E, 0x98, 0x7B, 0x16, 00619 0x4E, 0x96, 0x26, 0x71, 0x9D, 0x1F, 0x84, 0xEC, 0x68, 0x9A, 0x31 00620 }, 91, PAL_ECP_DP_SECP256R1, PAL_CHECK_PUBLIC_KEY, PAL_ERR_PK_KEY_INVALID_FORMAT, PAL_ERR_PARSING_PRIVATE_KEY, true, PAL_SUCCESS, PAL_SUCCESS 00621 } 00622 }; 00623 00624 typedef struct palParseECKeyTestVector{ 00625 const unsigned char key[250]; 00626 size_t len; 00627 uint32_t type; 00628 bool isDER; 00629 bool shouldSucceed; 00630 00631 }palParseECKeyTestVector_t; 00632 00633 static const palParseECKeyTestVector_t parse_ec_key_data[8] = 00634 { 00635 { 00636 {0x00, 0x00}, 0, PAL_CHECK_PRIVATE_KEY, true, false 00637 }, 00638 { 00639 {0x00, 0x00}, 0, PAL_CHECK_PUBLIC_KEY, true, false 00640 }, 00641 { 00642 { 00643 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xBD, 0x42, 0xD6, 0x36, 0x31, 0x2D, 0xF3, 0x2B, 0x31, 00644 0xEB, 0xE6, 0xE3, 0xC8, 0x63, 0x61, 0xA8, 0x45, 0x92, 0x2C, 0x70, 0xAB, 0x02, 0xC7, 0x45, 0xA7, 00645 0xBA, 0x7F, 0x39, 0xD3, 0xFD, 0xF0, 0x07, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 00646 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x7A, 0xDC, 0x03, 0xFE, 0xEF, 0x2B, 0x2B, 00647 0xF4, 0xE4, 0x6B, 0xAB, 0xA4, 0xD8, 0xEE, 0x2D, 0xAE, 0xA5, 0xD2, 0x28, 0xC5, 0xC1, 0xB2, 0x3C, 00648 0x7A, 0xAA, 0x5D, 0xE7, 0x81, 0x09, 0x1F, 0xE5, 0x9D, 0x80, 0xD4, 0xE9, 0xC5, 0x99, 0xF8, 0xBB, 00649 0xB1, 0x7B, 0xCB, 0x9A, 0x48, 0x2E, 0xF9, 0xEB, 0x01, 0xA3, 0xA4, 0x81, 0x70, 0x29, 0x34, 0xDB, 00650 0xE0, 0x65, 0x68, 0x48, 0x62, 0x99, 0x6D, 0xEC, 0x2E 00651 },121, PAL_CHECK_PRIVATE_KEY, true, true 00652 }, 00653 { 00654 { 00655 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 00656 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x7A, 0xDC, 0x03, 0xFE, 0xEF, 00657 0x2B, 0x2B, 0xF4, 0xE4, 0x6B, 0xAB, 0xA4, 0xD8, 0xEE, 0x2D, 0xAE, 0xA5, 0xD2, 0x28, 0xC5, 0xC1, 00658 0xB2, 0x3C, 0x7A, 0xAA, 0x5D, 0xE7, 0x81, 0x09, 0x1F, 0xE5, 0x9D, 0x80, 0xD4, 0xE9, 0xC5, 0x99, 00659 0xF8, 0xBB, 0xB1, 0x7B, 0xCB, 0x9A, 0x48, 0x2E, 0xF9, 0xEB, 0x01, 0xA3, 0xA4, 0x81, 0x70, 0x29, 00660 0x34, 0xDB, 0xE0, 0x65, 0x68, 0x48, 0x62, 0x99, 0x6D, 0xEC, 0x2E 00661 }, 91, PAL_CHECK_PUBLIC_KEY, true, true 00662 }, 00663 { 00664 { 00665 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0xBD, 0x42, 0xD6, 0x36, 0x31, 0x2D, 0xF3, 0x2B, 0x31, 00666 0xEB, 0xE6, 0xE3, 0xC8, 0x63, 0x61, 0xA8, 0x45, 0x92, 0x2C, 0x70, 0xAB, 0x02, 0xC7, 0x45, 0xA7, 00667 0xBA, 0x7F, 0x39, 0xD3, 0xFD, 0xF0, 0x07, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 00668 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x7A, 0xDC, 0x03, 0xFE, 0xEF, 0x2B, 0x2B, 00669 0xF4, 0xE4, 0x6B, 0xAB, 0xA4, 0xD8, 0xEE, 0x2D, 0xAE, 0xA5, 0xD2, 0x28, 0xC5, 0xC1, 0xB2, 0x3C, 00670 0x7A, 0xAA, 0x5D, 0xE7, 0x81, 0x09, 0x1F, 0xE5, 0x9D, 0x80, 0xD4, 0xE9, 0xC5, 0x99, 0xF8, 0xBB, 00671 0xB1, 0x7B, 0xCB, 0x9A, 0x48, 0x2E, 0xF9, 0xEB, 0x01, 0xA3, 0xA4, 0x81, 0x70, 0x29, 0x34, 0xDB, 00672 0xE0, 0x65, 0x68, 0x48, 0x62, 0x99, 0x6D, 0xEC, 0x2E 00673 }, 121, PAL_CHECK_PUBLIC_KEY, true, false 00674 }, 00675 { 00676 { 00677 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 00678 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x7A, 0xDC, 0x03, 0xFE, 0xEF, 00679 0x2B, 0x2B, 0xF4, 0xE4, 0x6B, 0xAB, 0xA4, 0xD8, 0xEE, 0x2D, 0xAE, 0xA5, 0xD2, 0x28, 0xC5, 0xC1, 00680 0xB2, 0x3C, 0x7A, 0xAA, 0x5D, 0xE7, 0x81, 0x09, 0x1F, 0xE5, 0x9D, 0x80, 0xD4, 0xE9, 0xC5, 0x99, 00681 0xF8, 0xBB, 0xB1, 0x7B, 0xCB, 0x9A, 0x48, 0x2E, 0xF9, 0xEB, 0x01, 0xA3, 0xA4, 0x81, 0x70, 0x29, 00682 0x34, 0xDB, 0xE0, 0x65, 0x68, 0x48, 0x62, 0x99, 0x6D, 0xEC, 0x2E 00683 },91, PAL_CHECK_PRIVATE_KEY, true, false 00684 }, 00685 { 00686 "-----BEGIN EC PRIVATE KEY-----\r\n" 00687 "MHcCAQEEIBnI7FMl8SVLh8u3jUyGtJRxtyzf8WhZ6zVlR+uezRi/oAoGCCqGSM49\r\n" 00688 "AwEHoUQDQgAE7XbxNHg17rUMJ8nwTSTwSRrskUVWVkrnB7HARGN8eX4vL6v75D/3\r\n" 00689 "WsseEnEVMAhsbPs7rDx7xaKStJQKKSX84w==\r\n" 00690 "-----END EC PRIVATE KEY-----\r\n", 00691 236, PAL_CHECK_PRIVATE_KEY, false, false 00692 }, 00693 { 00694 "-----BEGIN PUBLIC KEY-----\r\n" 00695 "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE7XbxNHg17rUMJ8nwTSTwSRrskUVW\r\n" 00696 "VkrnB7HARGN8eX4vL6v75D/3WsseEnEVMAhsbPs7rDx7xaKStJQKKSX84w==\r\n" 00697 "-----END PUBLIC KEY-----\r\n", 00698 185, PAL_CHECK_PUBLIC_KEY, false, false 00699 } 00700 }; 00701 00702 00703 typedef struct palX509CSRTestVector{ 00704 unsigned char prvkey[300]; 00705 size_t prvkeyLen; 00706 unsigned char pubkey[300]; 00707 size_t pubkeyLen; 00708 palMDType_t mdType; 00709 const char subject_name[50]; 00710 uint32_t keyUsage; 00711 unsigned char derOut[300]; 00712 size_t derOutLen; 00713 }palX509CSRTestVector_t; 00714 00715 static const palX509CSRTestVector_t CsrTests[2] = 00716 { 00717 { 00718 { 00719 0x30, 0x78, 0x02, 0x01, 0x01, 0x04, 0x21, 0x00, 0xAE, 0xD9, 0xBE, 0xEA, 0x76, 0x78, 0xF2, 0xD9, 00720 0xEC, 0x11, 0xC5, 0x49, 0x00, 0xDC, 0xB7, 0xB1, 0x06, 0xBD, 0xA5, 0xF6, 0xF7, 0x06, 0xBB, 0xC2, 00721 0x8A, 0x8D, 0x46, 0xCB, 0xCF, 0xAE, 0x1F, 0x22, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 00722 0x3D, 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0xC9, 0xEB, 0xAC, 0x6F, 0x9C, 0x39, 00723 0x1D, 0xFC, 0xFE, 0xBD, 0x25, 0x69, 0x51, 0x56, 0x80, 0xAC, 0xBF, 0x1A, 0x6F, 0xD4, 0xD7, 0x2E, 00724 0x02, 0x07, 0xBF, 0xF8, 0x4C, 0xEF, 0xEC, 0x60, 0x41, 0xAC, 0xDC, 0x7D, 0xD6, 0xDE, 0xD9, 0xF4, 00725 0xAA, 0xB8, 0x81, 0x0F, 0x96, 0xB6, 0xB3, 0x4A, 0x47, 0xD3, 0x98, 0x3F, 0x52, 0x87, 0x62, 0x0D, 00726 0xC7, 0xA0, 0x40, 0xCD, 0x23, 0x03, 0xBD, 0x17, 0x1E, 0xDE 00727 },122, 00728 { 00729 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 00730 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xC9, 0xEB, 0xAC, 0x6F, 0x9C, 00731 0x39, 0x1D, 0xFC, 0xFE, 0xBD, 0x25, 0x69, 0x51, 0x56, 0x80, 0xAC, 0xBF, 0x1A, 0x6F, 0xD4, 0xD7, 00732 0x2E, 0x02, 0x07, 0xBF, 0xF8, 0x4C, 0xEF, 0xEC, 0x60, 0x41, 0xAC, 0xDC, 0x7D, 0xD6, 0xDE, 0xD9, 00733 0xF4, 0xAA, 0xB8, 0x81, 0x0F, 0x96, 0xB6, 0xB3, 0x4A, 0x47, 0xD3, 0x98, 0x3F, 0x52, 0x87, 0x62, 00734 0x0D, 0xC7, 0xA0, 0x40, 0xCD, 0x23, 0x03, 0xBD, 0x17, 0x1E, 0xDE 00735 }, 91, PAL_SHA256, "C=AU, ST=Some-State, O=Internet Widgits Pty Ltd", PAL_X509_KU_DIGITAL_SIGNATURE, 00736 { 00737 0x30, 0x82, 0x01, 0x20, 0x30, 0x81, 0xC5, 0x02, 0x01, 0x00, 0x30, 0x45, 0x31, 0x0B, 0x30, 0x09, 00738 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 00739 0x04, 0x08, 0x13, 0x0A, 0x53, 0x6F, 0x6D, 0x65, 0x2D, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 00740 0x30, 0x1F, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x18, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x6E, 0x65, 00741 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4C, 0x74, 00742 0x64, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 00743 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xC9, 0xEB, 0xAC, 0x6F, 00744 0x9C, 0x39, 0x1D, 0xFC, 0xFE, 0xBD, 0x25, 0x69, 0x51, 0x56, 0x80, 0xAC, 0xBF, 0x1A, 0x6F, 0xD4, 00745 0xD7, 0x2E, 0x02, 0x07, 0xBF, 0xF8, 0x4C, 0xEF, 0xEC, 0x60, 0x41, 0xAC, 0xDC, 0x7D, 0xD6, 0xDE, 00746 0xD9, 0xF4, 0xAA, 0xB8, 0x81, 0x0F, 0x96, 0xB6, 0xB3, 0x4A, 0x47, 0xD3, 0x98, 0x3F, 0x52, 0x87, 00747 0x62, 0x0D, 0xC7, 0xA0, 0x40, 0xCD, 0x23, 0x03, 0xBD, 0x17, 0x1E, 0xDE, 0xA0, 0x1E, 0x30, 0x1C, 00748 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x0E, 0x31, 0x0F, 0x30, 0x0D, 0x30, 00749 0x0B, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x04, 0x04, 0x03, 0x02, 0x01, 0x80, 0x30, 0x0C, 0x06, 0x08, 00750 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 00751 0x21, 0x00, 0xEF, 0xA5, 0x91, 0xE8, 0x43, 0x2C, 0x95, 0x54, 0x51, 0xFA, 0x75, 0xAE, 0xF3, 0xE5, 00752 0x5B, 0xAE, 0x37, 0x28, 0x43, 0x12, 0xBE, 0xCB, 0x54, 0x67, 0x1C, 0xF8, 0x5F, 0x28, 0xD8, 0x87, 00753 0x23, 0x35, 0x02, 0x20, 0x32, 0xB7, 0x86, 0x38, 0xEF, 0x9F, 0x96, 0x25, 0x4B, 0xB5, 0xCD, 0x11, 00754 0xBB, 0x23, 0x3F, 0x93, 0x44, 0x31, 0x73, 0xF1, 0x0A, 0xBA, 0x2F, 0x43, 0x21, 0xFB, 0xBD, 0x4B, 00755 0xE5, 0xD4, 0xF0, 0x42 00756 }, 292 00757 }, 00758 { 00759 { 00760 0x30, 0x77, 0x02, 0x01, 0x01, 0x04, 0x20, 0x12, 0x02, 0xAF, 0xCF, 0x14, 0xEC, 0xDB, 0x72, 0xDF, 00761 0x1C, 0x0C, 0xF1, 0xE3, 0x23, 0x97, 0x83, 0x62, 0x31, 0x71, 0x4C, 0xE6, 0x5B, 0x88, 0x9B, 0xF1, 00762 0x19, 0x40, 0xE4, 0xBE, 0xE9, 0x34, 0x76, 0xA0, 0x0A, 0x06, 0x08, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 00763 0x03, 0x01, 0x07, 0xA1, 0x44, 0x03, 0x42, 0x00, 0x04, 0x6D, 0xE7, 0x22, 0xF3, 0xCB, 0x5F, 0x84, 00764 0x83, 0xEE, 0x27, 0xE2, 0xA1, 0x24, 0xFF, 0xAC, 0x19, 0xF7, 0x2D, 0xDD, 0xFA, 0x69, 0x20, 0xBE, 00765 0x06, 0x7E, 0x8A, 0x20, 0x40, 0x26, 0x90, 0xE9, 0xFB, 0xBA, 0x86, 0x0A, 0xE0, 0x9A, 0x39, 0x1B, 00766 0x0F, 0xB8, 0x53, 0xD5, 0xFC, 0xE1, 0x5E, 0x94, 0xBC, 0x1E, 0x97, 0x9C, 0xC2, 0x7B, 0x4E, 0xF7, 00767 0x17, 0x36, 0xCA, 0x59, 0xD5, 0x01, 0xBB, 0x56, 0x74 00768 }, 121, 00769 { 00770 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 0x2A, 00771 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x6D, 0xE7, 0x22, 0xF3, 0xCB, 00772 0x5F, 0x84, 0x83, 0xEE, 0x27, 0xE2, 0xA1, 0x24, 0xFF, 0xAC, 0x19, 0xF7, 0x2D, 0xDD, 0xFA, 0x69, 00773 0x20, 0xBE, 0x06, 0x7E, 0x8A, 0x20, 0x40, 0x26, 0x90, 0xE9, 0xFB, 0xBA, 0x86, 0x0A, 0xE0, 0x9A, 00774 0x39, 0x1B, 0x0F, 0xB8, 0x53, 0xD5, 0xFC, 0xE1, 0x5E, 0x94, 0xBC, 0x1E, 0x97, 0x9C, 0xC2, 0x7B, 00775 0x4E, 0xF7, 0x17, 0x36, 0xCA, 0x59, 0xD5, 0x01, 0xBB, 0x56, 0x74 00776 }, 91, PAL_SHA256, "C=AU, ST=Some-State, O=Internet Widgits Pty Ltd", PAL_X509_KU_NON_REPUDIATION, 00777 { 00778 0x30, 0x82, 0x01, 0x20, 0x30, 0x81, 0xC5, 0x02, 0x01, 0x00, 0x30, 0x45, 0x31, 0x0B, 0x30, 0x09, 00779 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x41, 0x55, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 00780 0x04, 0x08, 0x13, 0x0A, 0x53, 0x6F, 0x6D, 0x65, 0x2D, 0x53, 0x74, 0x61, 0x74, 0x65, 0x31, 0x21, 00781 0x30, 0x1F, 0x06, 0x03, 0x55, 0x04, 0x0A, 0x13, 0x18, 0x49, 0x6E, 0x74, 0x65, 0x72, 0x6E, 0x65, 00782 0x74, 0x20, 0x57, 0x69, 0x64, 0x67, 0x69, 0x74, 0x73, 0x20, 0x50, 0x74, 0x79, 0x20, 0x4C, 0x74, 00783 0x64, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01, 0x06, 0x08, 00784 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x6D, 0xE7, 0x22, 0xF3, 00785 0xCB, 0x5F, 0x84, 0x83, 0xEE, 0x27, 0xE2, 0xA1, 0x24, 0xFF, 0xAC, 0x19, 0xF7, 0x2D, 0xDD, 0xFA, 00786 0x69, 0x20, 0xBE, 0x06, 0x7E, 0x8A, 0x20, 0x40, 0x26, 0x90, 0xE9, 0xFB, 0xBA, 0x86, 0x0A, 0xE0, 00787 0x9A, 0x39, 0x1B, 0x0F, 0xB8, 0x53, 0xD5, 0xFC, 0xE1, 0x5E, 0x94, 0xBC, 0x1E, 0x97, 0x9C, 0xC2, 00788 0x7B, 0x4E, 0xF7, 0x17, 0x36, 0xCA, 0x59, 0xD5, 0x01, 0xBB, 0x56, 0x74, 0xA0, 0x1E, 0x30, 0x1C, 00789 0x06, 0x09, 0x2A, 0x86, 0x48, 0x86, 0xF7, 0x0D, 0x01, 0x09, 0x0E, 0x31, 0x0F, 0x30, 0x0D, 0x30, 00790 0x0B, 0x06, 0x03, 0x55, 0x1D, 0x0F, 0x04, 0x04, 0x03, 0x02, 0x01, 0x40, 0x30, 0x0C, 0x06, 0x08, 00791 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 00792 0x21, 0x00, 0xEC, 0xA1, 0xDE, 0x83, 0x89, 0x1A, 0x05, 0xA6, 0x38, 0x7B, 0xC1, 0xDB, 0x0D, 0x67, 00793 0xEC, 0x9E, 0x98, 0x3C, 0x92, 0xB3, 0x58, 0x06, 0x34, 0x87, 0x19, 0xAB, 0x57, 0x2B, 0x70, 0x29, 00794 0x4C, 0x3D, 0x02, 0x20, 0x6A, 0x9D, 0x7D, 0xFF, 0x8B, 0x00, 0x74, 0x24, 0xA1, 0xD6, 0xD6, 0xEF, 00795 0xF7, 0x70, 0x86, 0x8D, 0x2D, 0x52, 0x68, 0x55, 0x18, 0x7C, 0x45, 0xFB, 0xEE, 0x49, 0x50, 0x62, 00796 0x9E, 0x6C, 0x1C, 0xCA 00797 }, 292 00798 } 00799 }; 00800 00801 const unsigned char cert_not_self_signed[] = 00802 { 00803 0x30, 0x82, 0x01, 0xc4, 0x30, 0x82, 0x01, 0x69, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01, 00804 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x30, 0x3d, 00805 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x49, 0x4f, 0x54, 0x5f, 0x50, 00806 0x41, 0x4c, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x03, 0x50, 0x41, 0x4c, 00807 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x0e, 0x30, 00808 0x0c, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x05, 0x49, 0x4f, 0x54, 0x42, 0x55, 0x30, 0x1e, 0x17, 00809 0x0d, 0x31, 0x33, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 00810 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x42, 0x31, 00811 0x11, 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x08, 0x49, 0x4f, 0x54, 0x5f, 0x54, 0x45, 00812 0x53, 0x54, 0x31, 0x0d, 0x30, 0x0b, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x04, 0x50, 0x41, 0x41, 00813 0x4c, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x11, 00814 0x30, 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x08, 0x49, 0x4f, 0x54, 0x42, 0x55, 0x5f, 0x49, 00815 0x4c, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 00816 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x18, 0xf7, 0x26, 0xc6, 00817 0x86, 0x30, 0xec, 0xed, 0xd6, 0xb4, 0x3a, 0xd3, 0x86, 0x7a, 0x49, 0xbb, 0xb3, 0x93, 0xee, 0x43, 00818 0x56, 0x18, 0x71, 0x2a, 0x40, 0xda, 0xc8, 0x2c, 0x4a, 0xc6, 0x3d, 0x09, 0xfc, 0xe0, 0x84, 0x2f, 00819 0x0d, 0xce, 0xf8, 0x17, 0xcf, 0x28, 0x8f, 0x4f, 0xb4, 0xea, 0xde, 0xf9, 0xe4, 0x9a, 0x16, 0xeb, 00820 0x8c, 0x67, 0x02, 0xfd, 0x64, 0x7b, 0x62, 0x0e, 0x9b, 0x29, 0x05, 0x22, 0xa3, 0x53, 0x30, 0x51, 00821 0x30, 0x0f, 0x06, 0x03, 0x55, 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 00822 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xde, 0xa2, 0x8b, 00823 0x8d, 0x40, 0x1e, 0xd6, 0x62, 0xfd, 0x7e, 0x27, 0x53, 0xb8, 0x8f, 0x17, 0x18, 0x76, 0x33, 0x20, 00824 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x13, 0xde, 0xa2, 00825 0x8b, 0x8d, 0x40, 0x1e, 0xd6, 0x62, 0xfd, 0x7e, 0x27, 0x53, 0xb8, 0x8f, 0x17, 0x18, 0x76, 0x33, 00826 0x20, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 00827 0x47, 0x00, 0x30, 0x44, 0x02, 0x20, 0x47, 0xb7, 0xf8, 0x12, 0xb0, 0xe7, 0x7b, 0x33, 0x7f, 0x31, 00828 0x5e, 0x2f, 0x54, 0x40, 0x8f, 0xff, 0xe1, 0x05, 0x1b, 0xe5, 0xf1, 0xd5, 0xa7, 0x6a, 0xb8, 0x2a, 00829 0x6f, 0x22, 0x5a, 0xce, 0x31, 0x84, 0x02, 0x20, 0x51, 0x5d, 0x68, 0x41, 0x7f, 0x26, 0xb2, 0x6b, 00830 0x71, 0x1e, 0xd2, 0xa2, 0x2d, 0xd9, 0x43, 0x69, 0xbf, 0xf0, 0x73, 0xf6, 0x01, 0x7f, 0xf7, 0xac, 00831 0x0e, 0x5c, 0xb4, 0x4e, 0x56, 0x73, 0x63, 0x3c 00832 }; 00833 00834 //Certificate based on unsupported hash – sha512 00835 const uint8_t testdata_x509_Sha512[506] = 00836 { 00837 0x30, 0x82, 0x01, 0xf6, 0x30, 0x82, 0x01, 0x9c, 0x02, 0x09, 0x00, 0xb4, 0x60, 0xcc, 0x6f, 0xa2, 00838 0x55, 0x52, 0xfe, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 0x30, 00839 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x31, 00840 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 0x66, 0x61, 0x72, 0x2d, 0x6e, 00841 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 00842 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 00843 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x49, 00844 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x06, 0x44, 0x65, 0x76, 00845 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 00846 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 0x31, 0x40, 0x61, 0x72, 0x6d, 00847 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x39, 0x31, 0x30, 0x31, 0x34, 00848 0x30, 0x33, 0x33, 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33, 0x30, 0x33, 0x31, 0x34, 0x30, 00849 0x33, 0x33, 0x33, 0x5a, 0x30, 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 00850 0x13, 0x02, 0x55, 0x4b, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 00851 0x66, 0x61, 0x72, 0x2d, 0x6e, 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 00852 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 00853 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 00854 0x04, 0x0b, 0x0c, 0x03, 0x49, 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 00855 0x0c, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 00856 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 00857 0x31, 0x40, 0x61, 0x72, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 00858 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 00859 0x03, 0x42, 0x00, 0x04, 0x41, 0xdf, 0x03, 0x36, 0x9c, 0xb3, 0xb2, 0x9e, 0x42, 0xbc, 0x48, 0x37, 00860 0x3c, 0x21, 0xc2, 0x99, 0xb1, 0x47, 0x1d, 0x96, 0x84, 0x28, 0xdb, 0x07, 0x30, 0xad, 0x69, 0x86, 00861 0x39, 0x10, 0x10, 0x52, 0xe9, 0x3a, 0xe5, 0x4e, 0xd3, 0x3f, 0xd3, 0x0d, 0xfd, 0x9f, 0xd9, 0x4b, 00862 0xcb, 0xa1, 0x81, 0xbe, 0x3f, 0xbe, 0x24, 0x68, 0xc3, 0xe9, 0x73, 0xbf, 0x34, 0xb7, 0xa0, 0x61, 00863 0x56, 0x96, 0xb5, 0x74, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x04, 00864 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xa0, 0xa6, 0x46, 0xaa, 0xef, 0x18, 0xa6, 0xa3, 00865 0x7b, 0x81, 0xdb, 0x36, 0xf7, 0x2c, 0xbc, 0xb4, 0x29, 0x7f, 0x3c, 0x35, 0xbd, 0x88, 0xba, 0xa6, 00866 0x98, 0x8f, 0x5f, 0x67, 0x35, 0xf8, 0xf2, 0x18, 0x02, 0x20, 0x65, 0x88, 0x9e, 0x5d, 0x5a, 0x84, 00867 0xb7, 0x42, 0x96, 0xe4, 0xb7, 0x7d, 0x9b, 0x5c, 0x01, 0xc3, 0x5a, 0x40, 0x11, 0x0d, 0xf5, 0xfe, 00868 0x44, 0x9c, 0xbb, 0xd2, 0x2f, 0x37, 0x38, 0xbe, 0x03, 0x56}; 00869 00870 //Certificate based on unsupported curve – secp521r1 00871 const uint8_t testdata_x509_Curve512r1[641] = 00872 { 00873 0x30, 0x82, 0x02, 0x7d, 0x30, 0x82, 0x01, 0xdf, 0x02, 0x09, 0x00, 0xe2, 0x16, 0x36, 0x0a, 0x28, 00874 0x52, 0x3e, 0x81, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 00875 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x31, 00876 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 0x66, 0x61, 0x72, 0x2d, 0x6e, 00877 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 00878 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 00879 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x49, 00880 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x06, 0x44, 0x65, 0x76, 00881 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 00882 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 0x31, 0x40, 0x61, 0x72, 0x6d, 00883 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x31, 0x30, 0x30, 0x31, 0x30, 0x38, 00884 0x35, 0x36, 0x35, 0x31, 0x5a, 0x17, 0x0d, 0x32, 0x33, 0x30, 0x33, 0x32, 0x34, 0x30, 0x38, 0x35, 00885 0x36, 0x35, 0x31, 0x5a, 0x30, 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 00886 0x13, 0x02, 0x55, 0x4b, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 00887 0x66, 0x61, 0x72, 0x2d, 0x6e, 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 00888 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 00889 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 00890 0x04, 0x0b, 0x0c, 0x03, 0x49, 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 00891 0x0c, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 00892 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 00893 0x31, 0x40, 0x61, 0x72, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x81, 0x9b, 0x30, 0x10, 0x06, 0x07, 00894 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x05, 0x2b, 0x81, 0x04, 0x00, 0x23, 0x03, 0x81, 00895 0x86, 0x00, 0x04, 0x00, 0xf6, 0x6f, 0x0f, 0xbe, 0x33, 0x95, 0xa3, 0xd1, 0x00, 0x47, 0x27, 0xcf, 00896 0xd6, 0x3d, 0x0b, 0x69, 0x77, 0x40, 0xba, 0xaa, 0x82, 0xf4, 0xc3, 0x81, 0x41, 0x2b, 0xbd, 0x7b, 00897 0x2a, 0xf5, 0xd3, 0xf2, 0x09, 0x5a, 0x61, 0xb4, 0x5d, 0x6e, 0x32, 0x10, 0x61, 0xfd, 0x6e, 0x5a, 00898 0x74, 0x89, 0xad, 0xba, 0x23, 0x92, 0x33, 0x37, 0xa0, 0x4f, 0x98, 0x30, 0x4d, 0x8b, 0xae, 0xbf, 00899 0x5f, 0x49, 0x56, 0x17, 0x69, 0x00, 0x37, 0x1b, 0xde, 0xa0, 0x11, 0x38, 0x17, 0xb5, 0x15, 0x61, 00900 0xbd, 0xa1, 0xd8, 0x8d, 0x71, 0x48, 0x27, 0x4d, 0xbe, 0x60, 0x74, 0x3a, 0xd1, 0xe1, 0xff, 0xea, 00901 0x0a, 0xa2, 0x3d, 0xaa, 0x28, 0x39, 0x28, 0x32, 0xa7, 0x0c, 0x9d, 0xfa, 0x52, 0xc1, 0x2c, 0xba, 00902 0xac, 0x0f, 0x42, 0xa2, 0xcc, 0x78, 0x01, 0x45, 0x11, 0x62, 0xcf, 0x4f, 0x87, 0xcb, 0xf1, 0xff, 00903 0x2a, 0x1a, 0x30, 0xe9, 0x3d, 0x31, 0x59, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 00904 0x04, 0x03, 0x02, 0x03, 0x81, 0x8b, 0x00, 0x30, 0x81, 0x87, 0x02, 0x41, 0x31, 0x73, 0x8d, 0x4a, 00905 0x28, 0x86, 0xa9, 0x06, 0xbd, 0x7f, 0xe8, 0x58, 0x43, 0xc2, 0xce, 0xd9, 0xdb, 0x75, 0xae, 0x42, 00906 0x83, 0x98, 0x29, 0x28, 0x61, 0x02, 0xfc, 0x23, 0x54, 0xe3, 0xcd, 0x07, 0x6f, 0xdc, 0xa0, 0x2e, 00907 0xdd, 0xd3, 0xc6, 0x2e, 0x11, 0xcc, 0xd9, 0x3c, 0xdf, 0x26, 0xd4, 0x66, 0xdb, 0x03, 0x9e, 0x79, 00908 0x9a, 0x60, 0x8f, 0x1d, 0x52, 0x6e, 0x3d, 0x16, 0x2f, 0x7d, 0x86, 0x43, 0x98, 0x02, 0x42, 0x01, 00909 0xaa, 0xf2, 0x7f, 0xad, 0xad, 0xaa, 0x16, 0x35, 0x66, 0xe7, 0x52, 0xcc, 0x60, 0xdd, 0x09, 0xae, 00910 0x1b, 0x44, 0x33, 0xa1, 0x57, 0x3a, 0xa0, 0xc5, 0xe3, 0x08, 0x84, 0xa7, 0xe3, 0x59, 0xf3, 0x79, 00911 0x9a, 0xbf, 0xcb, 0x26, 0x36, 0x45, 0x64, 0x4b, 0x92, 0xb8, 0xc7, 0x51, 0x14, 0x57, 0x94, 0x4c, 00912 0x96, 0x59, 0x2a, 0x5f, 0xb1, 0x38, 0x84, 0xc3, 0x26, 0x51, 0x57, 0x64, 0x4e, 0x54, 0x30, 0x3e, 00913 0x00}; 00914 00915 const unsigned char x509_TI[] = 00916 { 00917 0x30, 0x82, 0x01, 0xc1, 0x30, 0x82, 0x01, 0x64, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01, 00918 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x30, 0x3d, 00919 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x49, 0x4f, 0x54, 0x5f, 0x50, 00920 0x41, 0x4c, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x03, 0x50, 0x41, 0x4c, 00921 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x0e, 0x30, 00922 0x0c, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x05, 0x49, 0x4f, 0x54, 0x42, 0x55, 0x30, 0x1e, 0x17, 00923 0x0d, 0x31, 0x33, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 00924 0x31, 0x35, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x3d, 0x31, 00925 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x07, 0x49, 0x4f, 0x54, 0x5f, 0x50, 0x41, 00926 0x4c, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x03, 0x50, 0x41, 0x4c, 0x31, 00927 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x49, 0x4c, 0x31, 0x0e, 0x30, 0x0c, 00928 0x06, 0x03, 0x55, 0x04, 0x0b, 0x13, 0x05, 0x49, 0x4f, 0x54, 0x42, 0x55, 0x30, 0x59, 0x30, 0x13, 00929 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 00930 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0x18, 0xf7, 0x26, 0xc6, 0x86, 0x30, 0xec, 0xed, 0xd6, 00931 0xb4, 0x3a, 0xd3, 0x86, 0x7a, 0x49, 0xbb, 0xb3, 0x93, 0xee, 0x43, 0x56, 0x18, 0x71, 0x2a, 0x40, 00932 0xda, 0xc8, 0x2c, 0x4a, 0xc6, 0x3d, 0x09, 0xfc, 0xe0, 0x84, 0x2f, 0x0d, 0xce, 0xf8, 0x17, 0xcf, 00933 0x28, 0x8f, 0x4f, 0xb4, 0xea, 0xde, 0xf9, 0xe4, 0x9a, 0x16, 0xeb, 0x8c, 0x67, 0x02, 0xfd, 0x64, 00934 0x7b, 0x62, 0x0e, 0x9b, 0x29, 0x05, 0x22, 0xa3, 0x53, 0x30, 0x51, 0x30, 0x0f, 0x06, 0x03, 0x55, 00935 0x1d, 0x13, 0x04, 0x08, 0x30, 0x06, 0x01, 0x01, 0xff, 0x02, 0x01, 0x00, 0x30, 0x1d, 0x06, 0x03, 00936 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 0x14, 0x13, 0xde, 0xa2, 0x8b, 0x8d, 0x40, 0x1e, 0xd6, 0x62, 00937 0xfd, 0x7e, 0x27, 0x53, 0xb8, 0x8f, 0x17, 0x18, 0x76, 0x33, 0x20, 0x30, 0x1f, 0x06, 0x03, 0x55, 00938 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 0x80, 0x14, 0x13, 0xde, 0xa2, 0x8b, 0x8d, 0x40, 0x1e, 0xd6, 00939 0x62, 0xfd, 0x7e, 0x27, 0x53, 0xb8, 0x8f, 0x17, 0x18, 0x76, 0x33, 0x20, 0x30, 0x0c, 0x06, 0x08, 00940 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x03, 0x49, 0x00, 0x30, 0x46, 0x02, 00941 0x21, 0x00, 0xb7, 0xbb, 0x7b, 0x05, 0x17, 0x5f, 0x74, 0x0a, 0x91, 0xd7, 0x95, 0x30, 0xa8, 0xb4, 00942 0x47, 0x26, 0x2d, 0xc4, 0xbf, 0xb4, 0xba, 0x00, 0x54, 0x92, 0xcd, 0xb8, 0xb4, 0x42, 0x4b, 0x05, 00943 0x95, 0xe6, 0x02, 0x21, 0x00, 0xdb, 0x61, 0x24, 0x78, 0xed, 0x54, 0xcd, 0x8e, 0xfa, 0x31, 0x21, 00944 0x8b, 0xe7, 0x11, 0x7e, 0x6e, 0xe2, 0x17, 0x63, 0xbe, 0x31, 0x90, 0x2b, 0xf8, 0xd2, 0x11, 0x5d, 00945 0x9d, 0x8d, 0x5a, 0xaa, 0xdd 00946 }; 00947 00948 const unsigned char x509_TI_PEM[] = "-----BEGIN CERTIFICATE-----\r\n" 00949 "MIIFIzCCBAugAwIBAgIQVYyM7bV85U+m+zUfuEsiLzANBgkqhkiG9w0BAQUFADCB\r\n" 00950 "tDELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL\r\n" 00951 "ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTswOQYDVQQLEzJUZXJtcyBvZiB1c2Ug\r\n" 00952 "YXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL3JwYSAoYykxMDEuMCwGA1UEAxMl\r\n" 00953 "VmVyaVNpZ24gQ2xhc3MgMyBDb2RlIFNpZ25pbmcgMjAxMCBDQTAeFw0xNDA0MTUw\r\n" 00954 "MDAwMDBaFw0xNTA0MTYyMzU5NTlaMHQxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIEwVU\r\n" 00955 "ZXhhczEPMA0GA1UEBxMGRGFsbGFzMRowGAYDVQQKFBFUZXhhcyBJbnN0cnVtZW50\r\n" 00956 "czEMMAoGA1UECxQDV0NTMRowGAYDVQQDFBFUZXhhcyBJbnN0cnVtZW50czCCASIw\r\n" 00957 "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMuAIvJOnebITQe2qli+t6Juwoy7\r\n" 00958 "I9qenavTt7D2cYsEBO+Oj/SLWjkieGPKek1Q+DIo66h3ZAYB9mDhxIAxY8bMmO61\r\n" 00959 "SOwxtcjA7nLgoqacMi61ly5OmjDuTholKjCyFCYmun7YPiI4b0BRNwFIMxOjfKdc\r\n" 00960 "9Jj1UCl7TH0DFsn1ly583NOlJey7AV5v4sijU5AWSR+JeaV/yFw1MPbY58ekjnS8\r\n" 00961 "tv5K8r5k5D770jDOZ/nuLpVZ3oNvhP9uMb6abEcUcVnxHkPu8ovFa43T1FwAKYSF\r\n" 00962 "4FAPpe4P9EQVUBJAupMt91J6iPWeiSjKYMYbd3dgNHNabsoT1gACAhCWwJkCAwEA\r\n" 00963 "AaOCAW4wggFqMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgeAMBMGA1UdJQQMMAoG\r\n" 00964 "CCsGAQUFBwMDMGYGA1UdIARfMF0wWwYLYIZIAYb4RQEHFwMwTDAjBggrBgEFBQcC\r\n" 00965 "ARYXaHR0cHM6Ly9kLnN5bWNiLmNvbS9jcHMwJQYIKwYBBQUHAgIwGRoXaHR0cHM6\r\n" 00966 "Ly9kLnN5bWNiLmNvbS9ycGEwHwYDVR0jBBgwFoAUz5mp6nsm9EvJjo/X8AUm7+PS\r\n" 00967 "p50wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3NmLnN5bWNiLmNvbS9zZi5jcmww\r\n" 00968 "VwYIKwYBBQUHAQEESzBJMB8GCCsGAQUFBzABhhNodHRwOi8vc2Yuc3ltY2QuY29t\r\n" 00969 "MCYGCCsGAQUFBzAChhpodHRwOi8vc2Yuc3ltY2IuY29tL3NmLmNydDARBglghkgB\r\n" 00970 "hvhCAQEEBAMCBBAwFgYKKwYBBAGCNwIBGwQIMAYBAQABAf8wDQYJKoZIhvcNAQEF\r\n" 00971 "BQADggEBACKIttb6LKlpjDHUFo9BHdYw6qxbF3Ham5GPjAn+ofYqpv3KoF7L2Rc9\r\n" 00972 "jhYDIA5IHmYAjDdHLUBx+DdzMP80cXcRIdBGgOFFw++rRboUi0yOpg47yD0AipNT\r\n" 00973 "Q00rBdoeEzs3ERiPir20402OmFUBkCcwM85XaXh1hvOKDZaCEj/6vlK/Y6++y1QC\r\n" 00974 "tQGm08HAAuEz4VsnE/mcVeuaVM8DqFInrp9mpCNiCCwdiG3TEC1UgACjxFmFk0UH\r\n" 00975 "mrUNww35tofUjAoXIkcegm2d/ld8bZxludWG2sJRydVTAQe1jJJDg+N7IdyH/gv7\r\n" 00976 "y8i1xf5goGEvMqLiYY5njLCSSpCeNqE=\r\n" 00977 "-----END CERTIFICATE-----\r\n"; 00978 00979 const unsigned char x509_selfsign[] = 00980 { 00981 0x30, 0x82, 0x01, 0x9a, 0x30, 0x82, 0x01, 0x3e, 0xa0, 0x03, 0x02, 0x01, 0x02, 0x02, 0x01, 0x01, 00982 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x05, 0x00, 0x30, 0x2d, 00983 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x02, 0x43, 0x41, 0x31, 0x11, 0x30, 00984 0x0f, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x6d, 0x62, 0x65, 0x64, 0x20, 0x54, 0x4c, 0x53, 00985 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x30, 0x1e, 0x17, 00986 0x0d, 0x30, 0x31, 0x30, 0x31, 0x30, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x5a, 0x17, 0x0d, 00987 0x33, 0x30, 0x31, 0x32, 0x33, 0x31, 0x32, 0x33, 0x35, 0x39, 0x35, 0x39, 0x5a, 0x30, 0x2d, 0x31, 00988 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x03, 0x13, 0x02, 0x43, 0x41, 0x31, 0x11, 0x30, 0x0f, 00989 0x06, 0x03, 0x55, 0x04, 0x0a, 0x13, 0x08, 0x6d, 0x62, 0x65, 0x64, 0x20, 0x54, 0x4c, 0x53, 0x31, 00990 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x30, 0x59, 0x30, 0x13, 00991 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 00992 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 0xf7, 0xc6, 0x63, 0x68, 0x8d, 0x48, 0x3a, 0xcc, 0xeb, 00993 0xc1, 0x01, 0xcb, 0xd5, 0xc9, 0xa9, 0xc8, 0x42, 0x62, 0x2e, 0xd0, 0xb2, 0x34, 0x6a, 0x9f, 0xc9, 00994 0xce, 0xe0, 0x1c, 0x57, 0xc7, 0x0a, 0x62, 0x6e, 0x8e, 0x2e, 0xc5, 0x9f, 0xef, 0x8e, 0x04, 0x44, 00995 0x7e, 0xf3, 0xd0, 0xe6, 0x92, 0xc9, 0x0a, 0x49, 0x72, 0x98, 0x7f, 0x73, 0x3e, 0xf6, 0x97, 0x70, 00996 0x74, 0xb7, 0x9f, 0xe1, 0xb5, 0xef, 0xce, 0xa3, 0x4d, 0x30, 0x4b, 0x30, 0x09, 0x06, 0x03, 0x55, 00997 0x1d, 0x13, 0x04, 0x02, 0x30, 0x00, 0x30, 0x1d, 0x06, 0x03, 0x55, 0x1d, 0x0e, 0x04, 0x16, 0x04, 00998 0x14, 0x0f, 0xc6, 0x27, 0x51, 0xce, 0x06, 0x0b, 0x3b, 0xbd, 0xf1, 0xd1, 0x8e, 0x25, 0x6d, 0xcd, 00999 0x12, 0x64, 0x8f, 0x73, 0x4d, 0x30, 0x1f, 0x06, 0x03, 0x55, 0x1d, 0x23, 0x04, 0x18, 0x30, 0x16, 01000 0x80, 0x14, 0x0f, 0xc6, 0x27, 0x51, 0xce, 0x06, 0x0b, 0x3b, 0xbd, 0xf1, 0xd1, 0x8e, 0x25, 0x6d, 01001 0xcd, 0x12, 0x64, 0x8f, 0x73, 0x4d, 0x30, 0x0c, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 01002 0x03, 0x02, 0x05, 0x00, 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xf1, 0x6a, 0x24, 0x08, 01003 0x99, 0xf1, 0xe0, 0x55, 0x4f, 0x0a, 0x52, 0x72, 0x68, 0x63, 0x6e, 0xec, 0x2f, 0x9d, 0x54, 0x61, 01004 0x9d, 0x7f, 0xa3, 0x5d, 0xa5, 0x79, 0x69, 0xc2, 0xab, 0xcf, 0x0f, 0x48, 0x02, 0x20, 0x51, 0x41, 01005 0x26, 0x4b, 0xdf, 0x1b, 0x5e, 0xda, 0xa4, 0x53, 0x8d, 0xe5, 0x92, 0xa6, 0x1b, 0x8a, 0x0d, 0x58, 01006 0x59, 0x9e, 0x77, 0x99, 0xd6, 0x81, 0xf1, 0x5d, 0xcd, 0x28, 0xcc, 0x03, 0x75, 0x96 01007 }; 01008 01009 const unsigned char x509_verify_ca[] = 01010 { 01011 0x30, 0x82, 0x01, 0xf6, 0x30, 0x82, 0x01, 0x9c, 0x02, 0x09, 0x00, 0xe3, 0x22, 0x71, 0x24, 0xb8, 01012 0xa6, 0x9b, 0xce, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 01013 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x31, 01014 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 0x66, 0x61, 0x72, 0x2d, 0x6e, 01015 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 01016 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 01017 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x49, 01018 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x06, 0x44, 0x65, 0x76, 01019 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 01020 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 0x31, 0x40, 0x61, 0x72, 0x6d, 01021 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x33, 0x30, 0x31, 0x31, 0x37, 01022 0x34, 0x33, 0x35, 0x33, 0x5a, 0x17, 0x0d, 0x32, 0x32, 0x30, 0x38, 0x32, 0x32, 0x31, 0x37, 0x34, 01023 0x33, 0x35, 0x33, 0x5a, 0x30, 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 01024 0x13, 0x02, 0x55, 0x4b, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 01025 0x66, 0x61, 0x72, 0x2d, 0x6e, 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 01026 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 01027 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 01028 0x04, 0x0b, 0x0c, 0x03, 0x49, 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 0x55, 0x04, 0x03, 01029 0x0c, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 01030 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 01031 0x31, 0x40, 0x61, 0x72, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 01032 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 01033 0x03, 0x42, 0x00, 0x04, 0x24, 0xb5, 0x1b, 0xaf, 0x82, 0xd6, 0xc6, 0xc4, 0x66, 0xba, 0xe7, 0xdf, 01034 0x41, 0xd2, 0x03, 0xdb, 0xbf, 0x49, 0xf0, 0x99, 0x66, 0xf1, 0xe1, 0x15, 0x37, 0x94, 0x66, 0x2b, 01035 0x22, 0x4c, 0x8e, 0xc6, 0xd4, 0x5e, 0x6f, 0x1a, 0xdb, 0x44, 0xe5, 0x06, 0xd8, 0x34, 0xad, 0xf2, 01036 0x1e, 0x92, 0x23, 0xd8, 0xd4, 0xd2, 0x01, 0x6a, 0x6e, 0x3c, 0x09, 0x7b, 0x5b, 0xff, 0x0e, 0x6f, 01037 0xb4, 0x28, 0xe6, 0x28, 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 01038 0x03, 0x48, 0x00, 0x30, 0x45, 0x02, 0x21, 0x00, 0xae, 0xaf, 0x9e, 0xfb, 0xea, 0x53, 0xe7, 0xe3, 01039 0xd5, 0xe0, 0x90, 0x87, 0x15, 0xaf, 0x48, 0x9f, 0x50, 0x2c, 0x44, 0x4d, 0x2a, 0x68, 0x38, 0xa0, 01040 0x3c, 0x09, 0xbc, 0x32, 0xb8, 0x78, 0xcf, 0xfa, 0x02, 0x20, 0x0c, 0x0d, 0xc8, 0xda, 0xcd, 0x09, 01041 0x7a, 0xa9, 0x6d, 0x18, 0x6c, 0xc1, 0x58, 0x1a, 0xec, 0x9a, 0x8b, 0x0d, 0x8a, 0xc4, 0xea, 0x9d, 01042 0x49, 0x5f, 0xa1, 0x9e, 0xcc, 0xcf, 0xbe, 0xb5, 0x25, 0xfd 01043 }; 01044 01045 const unsigned char x509_verify_cert[] = 01046 { 01047 0x30, 0x82, 0x01, 0xf2, 0x30, 0x82, 0x01, 0x98, 0x02, 0x01, 0x03, 0x30, 0x0a, 0x06, 0x08, 0x2a, 01048 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x30, 0x81, 0x82, 0x31, 0x0b, 0x30, 0x09, 0x06, 0x03, 01049 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x31, 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x08, 01050 0x0c, 0x0a, 0x4b, 0x66, 0x61, 0x72, 0x2d, 0x6e, 0x65, 0x74, 0x65, 0x72, 0x31, 0x10, 0x30, 0x0e, 01051 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x74, 0x61, 0x6e, 0x69, 0x61, 0x31, 0x0c, 01052 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x41, 0x52, 0x4d, 0x31, 0x0c, 0x30, 0x0a, 01053 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x49, 0x4f, 0x54, 0x31, 0x0f, 0x30, 0x0d, 0x06, 0x03, 01054 0x55, 0x04, 0x03, 0x0c, 0x06, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x31, 0x1f, 0x30, 0x1d, 0x06, 01055 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 01056 0x63, 0x65, 0x30, 0x31, 0x40, 0x61, 0x72, 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x1e, 0x17, 0x0d, 01057 0x31, 0x37, 0x30, 0x33, 0x30, 0x31, 0x31, 0x37, 0x34, 0x33, 0x35, 0x33, 0x5a, 0x17, 0x0d, 0x31, 01058 0x37, 0x30, 0x33, 0x33, 0x31, 0x31, 0x37, 0x34, 0x33, 0x35, 0x33, 0x5a, 0x30, 0x81, 0x86, 0x31, 01059 0x0b, 0x30, 0x09, 0x06, 0x03, 0x55, 0x04, 0x06, 0x13, 0x02, 0x55, 0x4b, 0x31, 0x13, 0x30, 0x11, 01060 0x06, 0x03, 0x55, 0x04, 0x08, 0x0c, 0x0a, 0x4b, 0x66, 0x61, 0x72, 0x2d, 0x6e, 0x65, 0x74, 0x65, 01061 0x72, 0x31, 0x10, 0x30, 0x0e, 0x06, 0x03, 0x55, 0x04, 0x07, 0x0c, 0x07, 0x4e, 0x65, 0x74, 0x61, 01062 0x6e, 0x69, 0x61, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0a, 0x0c, 0x03, 0x41, 0x52, 01063 0x4d, 0x31, 0x0c, 0x30, 0x0a, 0x06, 0x03, 0x55, 0x04, 0x0b, 0x0c, 0x03, 0x49, 0x4f, 0x54, 0x31, 01064 0x13, 0x30, 0x11, 0x06, 0x03, 0x55, 0x04, 0x03, 0x0c, 0x0a, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x20, 01065 0x43, 0x45, 0x52, 0x54, 0x31, 0x1f, 0x30, 0x1d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 01066 0x01, 0x09, 0x01, 0x16, 0x10, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x30, 0x31, 0x40, 0x61, 0x72, 01067 0x6d, 0x2e, 0x63, 0x6f, 0x6d, 0x30, 0x59, 0x30, 0x13, 0x06, 0x07, 0x2a, 0x86, 0x48, 0xce, 0x3d, 01068 0x02, 0x01, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x03, 0x01, 0x07, 0x03, 0x42, 0x00, 0x04, 01069 0x6b, 0x28, 0x07, 0xf4, 0x9a, 0xf7, 0x19, 0x2b, 0x3f, 0x6a, 0xf4, 0xa1, 0xcb, 0x5f, 0x21, 0x18, 01070 0x46, 0xef, 0xcf, 0x9c, 0xbd, 0x31, 0x89, 0xac, 0x9c, 0xb6, 0xe4, 0x2c, 0xb9, 0x81, 0xae, 0x6d, 01071 0xb6, 0x57, 0x88, 0x18, 0xde, 0x06, 0x12, 0xe4, 0xfe, 0x63, 0xea, 0x13, 0x8b, 0xf7, 0x76, 0xe3, 01072 0x97, 0xc9, 0xbd, 0x47, 0xbf, 0x50, 0x92, 0xba, 0x1e, 0x3e, 0x3b, 0x8d, 0x6e, 0x8f, 0x86, 0xfd, 01073 0x30, 0x0a, 0x06, 0x08, 0x2a, 0x86, 0x48, 0xce, 0x3d, 0x04, 0x03, 0x02, 0x03, 0x48, 0x00, 0x30, 01074 0x45, 0x02, 0x20, 0x30, 0xc2, 0xd4, 0xbd, 0xa9, 0x5d, 0xe1, 0xd0, 0xc5, 0xcb, 0xb5, 0xb3, 0x31, 01075 0x8a, 0xad, 0x7a, 0xab, 0xc7, 0x85, 0xf2, 0x1a, 0x0a, 0x4f, 0xd1, 0x63, 0x33, 0x05, 0x20, 0x1f, 01076 0xb4, 0xd6, 0x6e, 0x02, 0x21, 0x00, 0x8c, 0xcd, 0x36, 0x73, 0x9c, 0xb7, 0xc2, 0xee, 0xf3, 0x0a, 01077 0xbf, 0x4f, 0xd3, 0x95, 0x08, 0xa6, 0xcd, 0xdd, 0x5b, 0x78, 0x8f, 0x83, 0x90, 0xef, 0x2a, 0x8a, 01078 0x27, 0x0d, 0x73, 0x0b, 0xa0, 0xfa 01079 }; 01080 01081 typedef struct palX509VertifyTestVector 01082 { 01083 const unsigned char* ca; 01084 size_t ca_size; 01085 const unsigned char* crt; 01086 size_t crt_size; 01087 palStatus_t result; 01088 }palX509VertifyTestVector_t; 01089 01090 #ifdef PAL_CERT_TIME_VERIFY 01091 #define PAL_CRYPTO_TEST_CERT_TIME_OFFSET 10000 01092 01093 static const palX509VertifyTestVector_t x509_verify_data[4] = 01094 { 01095 { x509_selfsign, sizeof(x509_selfsign), x509_selfsign, sizeof(x509_selfsign), 0 }, 01096 { NULL, 0, x509_selfsign, sizeof(x509_selfsign), PAL_ERR_X509_BADCERT_NOT_TRUSTED }, 01097 { x509_verify_ca, sizeof(x509_verify_ca), x509_verify_cert, sizeof(x509_verify_cert), PAL_ERR_X509_BADCERT_FUTURE }, 01098 { x509_verify_cert, sizeof(x509_verify_cert), x509_verify_ca, sizeof(x509_verify_ca), PAL_ERR_X509_BADCERT_EXPIRED }, 01099 }; 01100 01101 #else 01102 01103 static const palX509VertifyTestVector_t x509_verify_data[4] = 01104 { 01105 { x509_selfsign, sizeof(x509_selfsign), x509_selfsign, sizeof(x509_selfsign), 0 }, 01106 { NULL, 0, x509_selfsign, sizeof(x509_selfsign), PAL_ERR_X509_BADCERT_NOT_TRUSTED }, 01107 { x509_verify_ca, sizeof(x509_verify_ca), x509_verify_cert, sizeof(x509_verify_cert), 0 }, 01108 { x509_verify_cert, sizeof(x509_verify_cert), x509_verify_ca, sizeof(x509_verify_ca), PAL_ERR_X509_BADCERT_NOT_TRUSTED } 01109 }; 01110 01111 01112 #endif //PAL_CERT_TIME_VERIFY 01113 01114 typedef struct palMdHMACTestVector 01115 { 01116 const unsigned char key[131]; 01117 const unsigned char input[152]; 01118 unsigned char output[32]; 01119 size_t keyLen; 01120 size_t inputLen; 01121 size_t outputLen; 01122 } palMdHMACTestVector_t; 01123 01124 const palMdHMACTestVector_t mdHMACVector[7] = 01125 { 01126 { 01127 { 01128 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 01129 0x0b, 0x0b, 0x0b, 0x0b 01130 }, 01131 { 01132 0x48, 0x69, 0x20, 0x54, 0x68, 0x65, 0x72, 0x65 01133 }, 01134 { 01135 0xb0, 0x34, 0x4c, 0x61, 0xd8, 0xdb, 0x38, 0x53, 0x5c, 0xa8, 0xaf, 0xce, 0xaf, 0x0b, 0xf1, 0x2b, 01136 0x88, 0x1d, 0xc2, 0x00, 0xc9, 0x83, 0x3d, 0xa7, 0x26, 0xe9, 0x37, 0x6c, 0x2e, 0x32, 0xcf, 0xf7 01137 }, 20, 8, 32 01138 }, 01139 { 01140 { 01141 0x4a, 0x65, 0x66, 0x65 01142 }, 01143 { 01144 0x77, 0x68, 0x61, 0x74, 0x20, 0x64, 0x6f, 0x20, 0x79, 0x61, 0x20, 0x77, 0x61, 0x6e, 0x74, 0x20, 01145 0x66, 0x6f, 0x72, 0x20, 0x6e, 0x6f, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x3f 01146 }, 01147 { 01148 0x5b, 0xdc, 0xc1, 0x46, 0xbf, 0x60, 0x75, 0x4e, 0x6a, 0x04, 0x24, 0x26, 0x08, 0x95, 0x75, 0xc7, 01149 0x5a, 0x00, 0x3f, 0x08, 0x9d, 0x27, 0x39, 0x83, 0x9d, 0xec, 0x58, 0xb9, 0x64, 0xec, 0x38, 0x43 01150 }, 4, 28, 32 01151 }, 01152 { 01153 { 01154 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01155 0xaa, 0xaa, 0xaa, 0xaa 01156 }, 01157 { 01158 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 01159 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 01160 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 01161 0xdd, 0xdd 01162 }, 01163 { 01164 0x77, 0x3e, 0xa9, 0x1e, 0x36, 0x80, 0x0e, 0x46, 0x85, 0x4d, 0xb8, 0xeb, 0xd0, 0x91, 0x81, 0xa7, 01165 0x29, 0x59, 0x09, 0x8b, 0x3e, 0xf8, 0xc1, 0x22, 0xd9, 0x63, 0x55, 0x14, 0xce, 0xd5, 0x65, 0xfe 01166 }, 20, 50, 32 01167 }, 01168 { 01169 { 01170 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 01171 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 01172 }, 01173 { 01174 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 01175 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 01176 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 01177 0xcd, 0xcd 01178 }, 01179 { 01180 0x82, 0x55, 0x8a, 0x38, 0x9a, 0x44, 0x3c, 0x0e, 0xa4, 0xcc, 0x81, 0x98, 0x99, 0xf2, 0x08, 0x3a, 01181 0x85, 0xf0, 0xfa, 0xa3, 0xe5, 0x78, 0xf8, 0x07, 0x7a, 0x2e, 0x3f, 0xf4, 0x67, 0x29, 0x66, 0x5b 01182 }, 25, 50, 32 01183 }, 01184 { 01185 { 01186 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 0x0c, 01187 0x0c, 0x0c, 0x0c, 0x0c 01188 }, 01189 { 01190 0x54, 0x65, 0x73, 0x74, 0x20, 0x57, 0x69, 0x74, 0x68, 0x20, 0x54, 0x72, 0x75, 0x6e, 0x63, 0x61, 01191 0x74, 0x69, 0x6f, 0x6e 01192 }, 01193 { 01194 0xa3, 0xb6, 0x16, 0x74, 0x73, 0x10, 0x0e, 0xe0, 0x6e, 0x0c, 0x79, 0x6c, 0x29, 0x55, 0x55, 0x2b 01195 }, 20, 20, 16 01196 }, 01197 { 01198 { 01199 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01200 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01201 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01202 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01203 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01204 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01205 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01206 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01207 0xaa, 0xaa, 0xaa 01208 }, 01209 01210 { 01211 0x54, 0x65, 0x73, 0x74, 0x20, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x20, 0x4c, 0x61, 0x72, 0x67, 0x65, 01212 0x72, 0x20, 0x54, 0x68, 0x61, 0x6e, 0x20, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x53, 0x69, 0x7a, 01213 0x65, 0x20, 0x4b, 0x65, 0x79, 0x20, 0x2d, 0x20, 0x48, 0x61, 0x73, 0x68, 0x20, 0x4b, 0x65, 0x79, 01214 0x20, 0x46, 0x69, 0x72, 0x73, 0x74 01215 }, 01216 01217 { 01218 0x60, 0xe4, 0x31, 0x59, 0x1e, 0xe0, 0xb6, 0x7f, 0x0d, 0x8a, 0x26, 0xaa, 0xcb, 0xf5, 0xb7, 0x7f, 01219 0x8e, 0x0b, 0xc6, 0x21, 0x37, 0x28, 0xc5, 0x14, 0x05, 0x46, 0x04, 0x0f, 0x0e, 0xe3, 0x7f, 0x54 01220 }, 131, 54, 32 01221 }, 01222 { 01223 { 01224 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01225 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01226 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01227 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01228 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01229 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01230 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01231 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 01232 0xaa, 0xaa, 0xaa 01233 }, 01234 { 01235 0x54, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x75, 01236 0x73, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 0x68, 01237 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x6b, 0x65, 01238 0x79, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x61, 0x20, 0x6c, 0x61, 0x72, 0x67, 0x65, 0x72, 0x20, 0x74, 01239 0x68, 0x61, 0x6e, 0x20, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x2d, 0x73, 0x69, 0x7a, 0x65, 0x20, 0x64, 01240 0x61, 0x74, 0x61, 0x2e, 0x20, 0x54, 0x68, 0x65, 0x20, 0x6b, 0x65, 0x79, 0x20, 0x6e, 0x65, 0x65, 01241 0x64, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x62, 0x65, 0x20, 0x68, 0x61, 0x73, 0x68, 0x65, 0x64, 0x20, 01242 0x62, 0x65, 0x66, 0x6f, 0x72, 0x65, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x75, 0x73, 0x65, 01243 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 0x4d, 0x41, 0x43, 0x20, 0x61, 0x6c, 01244 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x2e 01245 }, 01246 { 01247 0x9b, 0x09, 0xff, 0xa7, 0x1b, 0x94, 0x2f, 0xcb, 0x27, 0x63, 0x5f, 0xbc, 0xd5, 0xb0, 0xe9, 0x44, 01248 0xbf, 0xdc, 0x63, 0x64, 0x4f, 0x07, 0x13, 0x93, 0x8a, 0x7f, 0x51, 0x53, 0x5c, 0x3a, 0x35, 0xe2 01249 }, 131, 152, 32 01250 } 01251 };
Generated on Tue Jul 12 2022 16:22:09 by 1.7.2