Merge PR #34
Kazu Yamamoto
2 years ago
60 | 60 | * so that memcmp will work properly (compare two values of the same size) |
61 | 61 | */ |
62 | 62 | private unsigned char BrainPool256r1_OID[10]={0x2B,0x24,0x3,0x3,0x2,0x8,0x1,0x1,0x7,0}; |
63 | private unsigned char BrainPool384r1_OID[10]={0x2B,0x24,0x3,0x3,0x2,0x8,0x1,0x1,0x0b,0}; | |
64 | private unsigned char BrainPool512r1_OID[10]={0x2B,0x24,0x3,0x3,0x2,0x8,0x1,0x1,0x0d,0}; | |
63 | private unsigned char BrainPool384r1_OID[10]={0x2B,0x24,0x3,0x3,0x2,0x8,0x1,0x1,0xb,0}; | |
64 | private unsigned char BrainPool512r1_OID[10]={0x2B,0x24,0x3,0x3,0x2,0x8,0x1,0x1,0xd,0}; | |
65 | 65 | private unsigned char NIST_P256_OID[10]={0x2A,0x86,0x48,0xCE,0x3D,0x3,0x1,0x7,0,0}; |
66 | 66 | private unsigned char NIST_P384_OID[10]={0x2B,0x81,0x04,0x00,0x22,0,0,0,0,0}; |
67 | 67 | private unsigned char NIST_P521_OID[10]={0x2B,0x81,0x04,0x00,0x23,0,0,0,0,0}; |
88 | 88 | {Ed448_OID,"Ed448","0x2B 65 71"}, |
89 | 89 | {Curve25519_OID,"Curve25519","0x2B 06 01 04 01 97 55 01 05 01"}, |
90 | 90 | {X448_OID,"X448","0x2B 65 6F"}, |
91 | {BrainPool256r1_OID,"brainpoolP256r1","0x2B 24 03 03 02 08 01 01 07"}, | |
91 | {BrainPool256r1_OID,"BrainPoolP256r1","0x2B 24 03 03 02 08 01 01 07"}, | |
92 | 92 | {BrainPool384r1_OID,"BrainPoolP384r1","0x2B 24 03 03 02 08 01 01 07 0b"}, |
93 | 93 | {BrainPool512r1_OID,"BrainPoolP512r1","0x2B 24 03 03 02 08 01 01 07 0d"} |
94 | 94 | }; |
124 | 124 | break; |
125 | 125 | case 18:/*ECDH*/ |
126 | 126 | oidLEN = Getc(); |
127 | memset(oid_input_HEX,0,oid_input_HEX_size); | |
127 | 128 | for(jj=0;jj<oidLEN;jj++){oid_input_HEX[jj]=Getc();} |
128 | 129 | for(jj=0;jj<ELLIP_CURVES_NUM;jj++){ |
129 | 130 | if(memcmp(ELLIP_CURVES[jj].oidhex,oid_input_HEX,oid_input_HEX_size) == 0){ |
165 | 166 | break; |
166 | 167 | case 19:/*ECDSA*/ |
167 | 168 | oidLEN = Getc(); |
169 | memset(oid_input_HEX,0,oid_input_HEX_size); | |
168 | 170 | for(jj=0;jj<oidLEN;jj++){oid_input_HEX[jj]=Getc();} |
169 | 171 | for(jj=0;jj<ELLIP_CURVES_NUM;jj++){ |
170 | 172 | if(memcmp(ELLIP_CURVES[jj].oidhex,oid_input_HEX,oid_input_HEX_size) == 0){ |
187 | 189 | break; |
188 | 190 | case 22:/*EdDSA*/ |
189 | 191 | oidLEN = Getc(); |
192 | memset(oid_input_HEX,0,oid_input_HEX_size); | |
190 | 193 | for(jj=0;jj<oidLEN;jj++){oid_input_HEX[jj]=Getc();} |
191 | 194 | for(jj=0;jj<ELLIP_CURVES_NUM;jj++){ |
192 | 195 | if(memcmp(ELLIP_CURVES[jj].oidhex,oid_input_HEX,oid_input_HEX_size) == 0){ |
303 | 306 | break; |
304 | 307 | case 18:/*ECDH*/ |
305 | 308 | oidLEN = Getc(); |
309 | memset(oid_input_HEX,0,oid_input_HEX_size); | |
306 | 310 | for(jj=0;jj<oidLEN;jj++){oid_input_HEX[jj]=Getc();} |
307 | 311 | for(jj=0;jj<ELLIP_CURVES_NUM;jj++){ |
308 | 312 | if(memcmp(ELLIP_CURVES[jj].oidhex,oid_input_HEX,oid_input_HEX_size) == 0){ |
344 | 348 | break; |
345 | 349 | case 19:/*ECDSA*/ |
346 | 350 | oidLEN = Getc(); |
351 | memset(oid_input_HEX,0,oid_input_HEX_size); | |
347 | 352 | for(jj=0;jj<oidLEN;jj++){oid_input_HEX[jj]=Getc();} |
348 | 353 | for(jj=0;jj<ELLIP_CURVES_NUM;jj++){ |
349 | 354 | if(memcmp(ELLIP_CURVES[jj].oidhex,oid_input_HEX,oid_input_HEX_size) == 0){ |
366 | 371 | break; |
367 | 372 | case 22:/*EdDSA*/ |
368 | 373 | oidLEN = Getc(); |
374 | memset(oid_input_HEX,0,oid_input_HEX_size); | |
369 | 375 | for(jj=0;jj<oidLEN;jj++){oid_input_HEX[jj]=Getc();} |
370 | 376 | for(jj=0;jj<ELLIP_CURVES_NUM;jj++){ |
371 | 377 | if(memcmp(ELLIP_CURVES[jj].oidhex,oid_input_HEX,oid_input_HEX_size) == 0){ |