1 1.1 christos /* 2 1.1 christos * WARNING: do not edit! 3 1.1 christos * Generated by Makefile from providers/common/include/prov/der_ec.h.in 4 1.1 christos * 5 1.1 christos * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved. 6 1.1 christos * 7 1.1 christos * Licensed under the Apache License 2.0 (the "License"). You may not use 8 1.1 christos * this file except in compliance with the License. You can obtain a copy 9 1.1 christos * in the file LICENSE in the source distribution or at 10 1.1 christos * https://www.openssl.org/source/license.html 11 1.1 christos */ 12 1.1 christos 13 1.1 christos #include "crypto/ec.h" 14 1.1 christos #include "internal/der.h" 15 1.1 christos 16 1.1 christos /* Well known OIDs precompiled */ 17 1.1 christos 18 1.1 christos /* 19 1.1 christos * ecdsa-with-SHA1 OBJECT IDENTIFIER ::= { id-ecSigType 1 } 20 1.1 christos */ 21 1.1 christos #define DER_OID_V_ecdsa_with_SHA1 DER_P_OBJECT, 7, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x01 22 1.1 christos #define DER_OID_SZ_ecdsa_with_SHA1 9 23 1.1 christos extern const unsigned char ossl_der_oid_ecdsa_with_SHA1[DER_OID_SZ_ecdsa_with_SHA1]; 24 1.1 christos 25 1.1 christos /* 26 1.1 christos * id-ecPublicKey OBJECT IDENTIFIER ::= { id-publicKeyType 1 } 27 1.1 christos */ 28 1.1 christos #define DER_OID_V_id_ecPublicKey DER_P_OBJECT, 7, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x02, 0x01 29 1.1 christos #define DER_OID_SZ_id_ecPublicKey 9 30 1.1 christos extern const unsigned char ossl_der_oid_id_ecPublicKey[DER_OID_SZ_id_ecPublicKey]; 31 1.1 christos 32 1.1 christos /* 33 1.1 christos * c2pnb163v1 OBJECT IDENTIFIER ::= { c-TwoCurve 1 } 34 1.1 christos */ 35 1.1 christos #define DER_OID_V_c2pnb163v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x01 36 1.1 christos #define DER_OID_SZ_c2pnb163v1 10 37 1.1 christos extern const unsigned char ossl_der_oid_c2pnb163v1[DER_OID_SZ_c2pnb163v1]; 38 1.1 christos 39 1.1 christos /* 40 1.1 christos * c2pnb163v2 OBJECT IDENTIFIER ::= { c-TwoCurve 2 } 41 1.1 christos */ 42 1.1 christos #define DER_OID_V_c2pnb163v2 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x02 43 1.1 christos #define DER_OID_SZ_c2pnb163v2 10 44 1.1 christos extern const unsigned char ossl_der_oid_c2pnb163v2[DER_OID_SZ_c2pnb163v2]; 45 1.1 christos 46 1.1 christos /* 47 1.1 christos * c2pnb163v3 OBJECT IDENTIFIER ::= { c-TwoCurve 3 } 48 1.1 christos */ 49 1.1 christos #define DER_OID_V_c2pnb163v3 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x03 50 1.1 christos #define DER_OID_SZ_c2pnb163v3 10 51 1.1 christos extern const unsigned char ossl_der_oid_c2pnb163v3[DER_OID_SZ_c2pnb163v3]; 52 1.1 christos 53 1.1 christos /* 54 1.1 christos * c2pnb176w1 OBJECT IDENTIFIER ::= { c-TwoCurve 4 } 55 1.1 christos */ 56 1.1 christos #define DER_OID_V_c2pnb176w1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x04 57 1.1 christos #define DER_OID_SZ_c2pnb176w1 10 58 1.1 christos extern const unsigned char ossl_der_oid_c2pnb176w1[DER_OID_SZ_c2pnb176w1]; 59 1.1 christos 60 1.1 christos /* 61 1.1 christos * c2tnb191v1 OBJECT IDENTIFIER ::= { c-TwoCurve 5 } 62 1.1 christos */ 63 1.1 christos #define DER_OID_V_c2tnb191v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x05 64 1.1 christos #define DER_OID_SZ_c2tnb191v1 10 65 1.1 christos extern const unsigned char ossl_der_oid_c2tnb191v1[DER_OID_SZ_c2tnb191v1]; 66 1.1 christos 67 1.1 christos /* 68 1.1 christos * c2tnb191v2 OBJECT IDENTIFIER ::= { c-TwoCurve 6 } 69 1.1 christos */ 70 1.1 christos #define DER_OID_V_c2tnb191v2 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x06 71 1.1 christos #define DER_OID_SZ_c2tnb191v2 10 72 1.1 christos extern const unsigned char ossl_der_oid_c2tnb191v2[DER_OID_SZ_c2tnb191v2]; 73 1.1 christos 74 1.1 christos /* 75 1.1 christos * c2tnb191v3 OBJECT IDENTIFIER ::= { c-TwoCurve 7 } 76 1.1 christos */ 77 1.1 christos #define DER_OID_V_c2tnb191v3 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x07 78 1.1 christos #define DER_OID_SZ_c2tnb191v3 10 79 1.1 christos extern const unsigned char ossl_der_oid_c2tnb191v3[DER_OID_SZ_c2tnb191v3]; 80 1.1 christos 81 1.1 christos /* 82 1.1 christos * c2onb191v4 OBJECT IDENTIFIER ::= { c-TwoCurve 8 } 83 1.1 christos */ 84 1.1 christos #define DER_OID_V_c2onb191v4 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x08 85 1.1 christos #define DER_OID_SZ_c2onb191v4 10 86 1.1 christos extern const unsigned char ossl_der_oid_c2onb191v4[DER_OID_SZ_c2onb191v4]; 87 1.1 christos 88 1.1 christos /* 89 1.1 christos * c2onb191v5 OBJECT IDENTIFIER ::= { c-TwoCurve 9 } 90 1.1 christos */ 91 1.1 christos #define DER_OID_V_c2onb191v5 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x09 92 1.1 christos #define DER_OID_SZ_c2onb191v5 10 93 1.1 christos extern const unsigned char ossl_der_oid_c2onb191v5[DER_OID_SZ_c2onb191v5]; 94 1.1 christos 95 1.1 christos /* 96 1.1 christos * c2pnb208w1 OBJECT IDENTIFIER ::= { c-TwoCurve 10 } 97 1.1 christos */ 98 1.1 christos #define DER_OID_V_c2pnb208w1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0A 99 1.1 christos #define DER_OID_SZ_c2pnb208w1 10 100 1.1 christos extern const unsigned char ossl_der_oid_c2pnb208w1[DER_OID_SZ_c2pnb208w1]; 101 1.1 christos 102 1.1 christos /* 103 1.1 christos * c2tnb239v1 OBJECT IDENTIFIER ::= { c-TwoCurve 11 } 104 1.1 christos */ 105 1.1 christos #define DER_OID_V_c2tnb239v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0B 106 1.1 christos #define DER_OID_SZ_c2tnb239v1 10 107 1.1 christos extern const unsigned char ossl_der_oid_c2tnb239v1[DER_OID_SZ_c2tnb239v1]; 108 1.1 christos 109 1.1 christos /* 110 1.1 christos * c2tnb239v2 OBJECT IDENTIFIER ::= { c-TwoCurve 12 } 111 1.1 christos */ 112 1.1 christos #define DER_OID_V_c2tnb239v2 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0C 113 1.1 christos #define DER_OID_SZ_c2tnb239v2 10 114 1.1 christos extern const unsigned char ossl_der_oid_c2tnb239v2[DER_OID_SZ_c2tnb239v2]; 115 1.1 christos 116 1.1 christos /* 117 1.1 christos * c2tnb239v3 OBJECT IDENTIFIER ::= { c-TwoCurve 13 } 118 1.1 christos */ 119 1.1 christos #define DER_OID_V_c2tnb239v3 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0D 120 1.1 christos #define DER_OID_SZ_c2tnb239v3 10 121 1.1 christos extern const unsigned char ossl_der_oid_c2tnb239v3[DER_OID_SZ_c2tnb239v3]; 122 1.1 christos 123 1.1 christos /* 124 1.1 christos * c2onb239v4 OBJECT IDENTIFIER ::= { c-TwoCurve 14 } 125 1.1 christos */ 126 1.1 christos #define DER_OID_V_c2onb239v4 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0E 127 1.1 christos #define DER_OID_SZ_c2onb239v4 10 128 1.1 christos extern const unsigned char ossl_der_oid_c2onb239v4[DER_OID_SZ_c2onb239v4]; 129 1.1 christos 130 1.1 christos /* 131 1.1 christos * c2onb239v5 OBJECT IDENTIFIER ::= { c-TwoCurve 15 } 132 1.1 christos */ 133 1.1 christos #define DER_OID_V_c2onb239v5 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x0F 134 1.1 christos #define DER_OID_SZ_c2onb239v5 10 135 1.1 christos extern const unsigned char ossl_der_oid_c2onb239v5[DER_OID_SZ_c2onb239v5]; 136 1.1 christos 137 1.1 christos /* 138 1.1 christos * c2pnb272w1 OBJECT IDENTIFIER ::= { c-TwoCurve 16 } 139 1.1 christos */ 140 1.1 christos #define DER_OID_V_c2pnb272w1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x10 141 1.1 christos #define DER_OID_SZ_c2pnb272w1 10 142 1.1 christos extern const unsigned char ossl_der_oid_c2pnb272w1[DER_OID_SZ_c2pnb272w1]; 143 1.1 christos 144 1.1 christos /* 145 1.1 christos * c2pnb304w1 OBJECT IDENTIFIER ::= { c-TwoCurve 17 } 146 1.1 christos */ 147 1.1 christos #define DER_OID_V_c2pnb304w1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x11 148 1.1 christos #define DER_OID_SZ_c2pnb304w1 10 149 1.1 christos extern const unsigned char ossl_der_oid_c2pnb304w1[DER_OID_SZ_c2pnb304w1]; 150 1.1 christos 151 1.1 christos /* 152 1.1 christos * c2tnb359v1 OBJECT IDENTIFIER ::= { c-TwoCurve 18 } 153 1.1 christos */ 154 1.1 christos #define DER_OID_V_c2tnb359v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x12 155 1.1 christos #define DER_OID_SZ_c2tnb359v1 10 156 1.1 christos extern const unsigned char ossl_der_oid_c2tnb359v1[DER_OID_SZ_c2tnb359v1]; 157 1.1 christos 158 1.1 christos /* 159 1.1 christos * c2pnb368w1 OBJECT IDENTIFIER ::= { c-TwoCurve 19 } 160 1.1 christos */ 161 1.1 christos #define DER_OID_V_c2pnb368w1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x13 162 1.1 christos #define DER_OID_SZ_c2pnb368w1 10 163 1.1 christos extern const unsigned char ossl_der_oid_c2pnb368w1[DER_OID_SZ_c2pnb368w1]; 164 1.1 christos 165 1.1 christos /* 166 1.1 christos * c2tnb431r1 OBJECT IDENTIFIER ::= { c-TwoCurve 20 } 167 1.1 christos */ 168 1.1 christos #define DER_OID_V_c2tnb431r1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x00, 0x14 169 1.1 christos #define DER_OID_SZ_c2tnb431r1 10 170 1.1 christos extern const unsigned char ossl_der_oid_c2tnb431r1[DER_OID_SZ_c2tnb431r1]; 171 1.1 christos 172 1.1 christos /* 173 1.1 christos * prime192v1 OBJECT IDENTIFIER ::= { primeCurve 1 } 174 1.1 christos */ 175 1.1 christos #define DER_OID_V_prime192v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x01 176 1.1 christos #define DER_OID_SZ_prime192v1 10 177 1.1 christos extern const unsigned char ossl_der_oid_prime192v1[DER_OID_SZ_prime192v1]; 178 1.1 christos 179 1.1 christos /* 180 1.1 christos * prime192v2 OBJECT IDENTIFIER ::= { primeCurve 2 } 181 1.1 christos */ 182 1.1 christos #define DER_OID_V_prime192v2 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x02 183 1.1 christos #define DER_OID_SZ_prime192v2 10 184 1.1 christos extern const unsigned char ossl_der_oid_prime192v2[DER_OID_SZ_prime192v2]; 185 1.1 christos 186 1.1 christos /* 187 1.1 christos * prime192v3 OBJECT IDENTIFIER ::= { primeCurve 3 } 188 1.1 christos */ 189 1.1 christos #define DER_OID_V_prime192v3 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x03 190 1.1 christos #define DER_OID_SZ_prime192v3 10 191 1.1 christos extern const unsigned char ossl_der_oid_prime192v3[DER_OID_SZ_prime192v3]; 192 1.1 christos 193 1.1 christos /* 194 1.1 christos * prime239v1 OBJECT IDENTIFIER ::= { primeCurve 4 } 195 1.1 christos */ 196 1.1 christos #define DER_OID_V_prime239v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x04 197 1.1 christos #define DER_OID_SZ_prime239v1 10 198 1.1 christos extern const unsigned char ossl_der_oid_prime239v1[DER_OID_SZ_prime239v1]; 199 1.1 christos 200 1.1 christos /* 201 1.1 christos * prime239v2 OBJECT IDENTIFIER ::= { primeCurve 5 } 202 1.1 christos */ 203 1.1 christos #define DER_OID_V_prime239v2 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x05 204 1.1 christos #define DER_OID_SZ_prime239v2 10 205 1.1 christos extern const unsigned char ossl_der_oid_prime239v2[DER_OID_SZ_prime239v2]; 206 1.1 christos 207 1.1 christos /* 208 1.1 christos * prime239v3 OBJECT IDENTIFIER ::= { primeCurve 6 } 209 1.1 christos */ 210 1.1 christos #define DER_OID_V_prime239v3 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x06 211 1.1 christos #define DER_OID_SZ_prime239v3 10 212 1.1 christos extern const unsigned char ossl_der_oid_prime239v3[DER_OID_SZ_prime239v3]; 213 1.1 christos 214 1.1 christos /* 215 1.1 christos * prime256v1 OBJECT IDENTIFIER ::= { primeCurve 7 } 216 1.1 christos */ 217 1.1 christos #define DER_OID_V_prime256v1 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x03, 0x01, 0x07 218 1.1 christos #define DER_OID_SZ_prime256v1 10 219 1.1 christos extern const unsigned char ossl_der_oid_prime256v1[DER_OID_SZ_prime256v1]; 220 1.1 christos 221 1.1 christos /* 222 1.1 christos * ecdsa-with-SHA224 OBJECT IDENTIFIER ::= { iso(1) member-body(2) 223 1.1 christos * us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 1 } 224 1.1 christos */ 225 1.1 christos #define DER_OID_V_ecdsa_with_SHA224 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x01 226 1.1 christos #define DER_OID_SZ_ecdsa_with_SHA224 10 227 1.1 christos extern const unsigned char ossl_der_oid_ecdsa_with_SHA224[DER_OID_SZ_ecdsa_with_SHA224]; 228 1.1 christos 229 1.1 christos /* 230 1.1 christos * ecdsa-with-SHA256 OBJECT IDENTIFIER ::= { iso(1) member-body(2) 231 1.1 christos * us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 2 } 232 1.1 christos */ 233 1.1 christos #define DER_OID_V_ecdsa_with_SHA256 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x02 234 1.1 christos #define DER_OID_SZ_ecdsa_with_SHA256 10 235 1.1 christos extern const unsigned char ossl_der_oid_ecdsa_with_SHA256[DER_OID_SZ_ecdsa_with_SHA256]; 236 1.1 christos 237 1.1 christos /* 238 1.1 christos * ecdsa-with-SHA384 OBJECT IDENTIFIER ::= { iso(1) member-body(2) 239 1.1 christos * us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 3 } 240 1.1 christos */ 241 1.1 christos #define DER_OID_V_ecdsa_with_SHA384 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x03 242 1.1 christos #define DER_OID_SZ_ecdsa_with_SHA384 10 243 1.1 christos extern const unsigned char ossl_der_oid_ecdsa_with_SHA384[DER_OID_SZ_ecdsa_with_SHA384]; 244 1.1 christos 245 1.1 christos /* 246 1.1 christos * ecdsa-with-SHA512 OBJECT IDENTIFIER ::= { iso(1) member-body(2) 247 1.1 christos * us(840) ansi-X9-62(10045) signatures(4) ecdsa-with-SHA2(3) 4 } 248 1.1 christos */ 249 1.1 christos #define DER_OID_V_ecdsa_with_SHA512 DER_P_OBJECT, 8, 0x2A, 0x86, 0x48, 0xCE, 0x3D, 0x04, 0x03, 0x04 250 1.1 christos #define DER_OID_SZ_ecdsa_with_SHA512 10 251 1.1 christos extern const unsigned char ossl_der_oid_ecdsa_with_SHA512[DER_OID_SZ_ecdsa_with_SHA512]; 252 1.1 christos 253 1.1 christos /* 254 1.1 christos * id-ecdsa-with-sha3-224 OBJECT IDENTIFIER ::= { sigAlgs 9 } 255 1.1 christos */ 256 1.1 christos #define DER_OID_V_id_ecdsa_with_sha3_224 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x09 257 1.1 christos #define DER_OID_SZ_id_ecdsa_with_sha3_224 11 258 1.1 christos extern const unsigned char ossl_der_oid_id_ecdsa_with_sha3_224[DER_OID_SZ_id_ecdsa_with_sha3_224]; 259 1.1 christos 260 1.1 christos /* 261 1.1 christos * id-ecdsa-with-sha3-256 OBJECT IDENTIFIER ::= { sigAlgs 10 } 262 1.1 christos */ 263 1.1 christos #define DER_OID_V_id_ecdsa_with_sha3_256 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0A 264 1.1 christos #define DER_OID_SZ_id_ecdsa_with_sha3_256 11 265 1.1 christos extern const unsigned char ossl_der_oid_id_ecdsa_with_sha3_256[DER_OID_SZ_id_ecdsa_with_sha3_256]; 266 1.1 christos 267 1.1 christos /* 268 1.1 christos * id-ecdsa-with-sha3-384 OBJECT IDENTIFIER ::= { sigAlgs 11 } 269 1.1 christos */ 270 1.1 christos #define DER_OID_V_id_ecdsa_with_sha3_384 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0B 271 1.1 christos #define DER_OID_SZ_id_ecdsa_with_sha3_384 11 272 1.1 christos extern const unsigned char ossl_der_oid_id_ecdsa_with_sha3_384[DER_OID_SZ_id_ecdsa_with_sha3_384]; 273 1.1 christos 274 1.1 christos /* 275 1.1 christos * id-ecdsa-with-sha3-512 OBJECT IDENTIFIER ::= { sigAlgs 12 } 276 1.1 christos */ 277 1.1 christos #define DER_OID_V_id_ecdsa_with_sha3_512 DER_P_OBJECT, 9, 0x60, 0x86, 0x48, 0x01, 0x65, 0x03, 0x04, 0x03, 0x0C 278 1.1 christos #define DER_OID_SZ_id_ecdsa_with_sha3_512 11 279 1.1 christos extern const unsigned char ossl_der_oid_id_ecdsa_with_sha3_512[DER_OID_SZ_id_ecdsa_with_sha3_512]; 280 1.1 christos 281 1.1 christos 282 1.1 christos /* Subject Public Key Info */ 283 1.1 christos int ossl_DER_w_algorithmIdentifier_EC(WPACKET *pkt, int cont, EC_KEY *ec); 284 1.1 christos /* Signature */ 285 1.1 christos int ossl_DER_w_algorithmIdentifier_ECDSA_with_MD(WPACKET *pkt, int cont, 286 1.1 christos EC_KEY *ec, int mdnid); 287