security/nss/lib/freebl/ecl/ecl-exp.h

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/security/nss/lib/freebl/ecl/ecl-exp.h	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,162 @@
     1.4 +/* This Source Code Form is subject to the terms of the Mozilla Public
     1.5 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.6 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.7 +
     1.8 +#ifndef __ecl_exp_h_
     1.9 +#define __ecl_exp_h_
    1.10 +
    1.11 +/* Curve field type */
    1.12 +typedef enum {
    1.13 +	ECField_GFp,
    1.14 +	ECField_GF2m
    1.15 +} ECField;
    1.16 +
    1.17 +/* Hexadecimal encoding of curve parameters */
    1.18 +struct ECCurveParamsStr {
    1.19 +	char *text;
    1.20 +	ECField field;
    1.21 +	unsigned int size;
    1.22 +	char *irr;
    1.23 +	char *curvea;
    1.24 +	char *curveb;
    1.25 +	char *genx;
    1.26 +	char *geny;
    1.27 +	char *order;
    1.28 +	int cofactor;
    1.29 +};
    1.30 +typedef struct ECCurveParamsStr ECCurveParams;
    1.31 +
    1.32 +/* Named curve parameters */
    1.33 +typedef enum {
    1.34 +
    1.35 +	ECCurve_noName = 0,
    1.36 +
    1.37 +	/* NIST prime curves */
    1.38 +	ECCurve_NIST_P192,
    1.39 +	ECCurve_NIST_P224,
    1.40 +	ECCurve_NIST_P256,
    1.41 +	ECCurve_NIST_P384,
    1.42 +	ECCurve_NIST_P521,
    1.43 +
    1.44 +	/* NIST binary curves */
    1.45 +	ECCurve_NIST_K163,
    1.46 +	ECCurve_NIST_B163,
    1.47 +	ECCurve_NIST_K233,
    1.48 +	ECCurve_NIST_B233,
    1.49 +	ECCurve_NIST_K283,
    1.50 +	ECCurve_NIST_B283,
    1.51 +	ECCurve_NIST_K409,
    1.52 +	ECCurve_NIST_B409,
    1.53 +	ECCurve_NIST_K571,
    1.54 +	ECCurve_NIST_B571,
    1.55 +
    1.56 +	/* ANSI X9.62 prime curves */
    1.57 +	/* ECCurve_X9_62_PRIME_192V1 == ECCurve_NIST_P192 */
    1.58 +	ECCurve_X9_62_PRIME_192V2,
    1.59 +	ECCurve_X9_62_PRIME_192V3,
    1.60 +	ECCurve_X9_62_PRIME_239V1,
    1.61 +	ECCurve_X9_62_PRIME_239V2,
    1.62 +	ECCurve_X9_62_PRIME_239V3,
    1.63 +	/* ECCurve_X9_62_PRIME_256V1 == ECCurve_NIST_P256 */
    1.64 +
    1.65 +	/* ANSI X9.62 binary curves */
    1.66 +	ECCurve_X9_62_CHAR2_PNB163V1,
    1.67 +	ECCurve_X9_62_CHAR2_PNB163V2,
    1.68 +	ECCurve_X9_62_CHAR2_PNB163V3,
    1.69 +	ECCurve_X9_62_CHAR2_PNB176V1,
    1.70 +	ECCurve_X9_62_CHAR2_TNB191V1,
    1.71 +	ECCurve_X9_62_CHAR2_TNB191V2,
    1.72 +	ECCurve_X9_62_CHAR2_TNB191V3,
    1.73 +	ECCurve_X9_62_CHAR2_PNB208W1,
    1.74 +	ECCurve_X9_62_CHAR2_TNB239V1,
    1.75 +	ECCurve_X9_62_CHAR2_TNB239V2,
    1.76 +	ECCurve_X9_62_CHAR2_TNB239V3,
    1.77 +	ECCurve_X9_62_CHAR2_PNB272W1,
    1.78 +	ECCurve_X9_62_CHAR2_PNB304W1,
    1.79 +	ECCurve_X9_62_CHAR2_TNB359V1,
    1.80 +	ECCurve_X9_62_CHAR2_PNB368W1,
    1.81 +	ECCurve_X9_62_CHAR2_TNB431R1,
    1.82 +
    1.83 +	/* SEC2 prime curves */
    1.84 +	ECCurve_SECG_PRIME_112R1,
    1.85 +	ECCurve_SECG_PRIME_112R2,
    1.86 +	ECCurve_SECG_PRIME_128R1,
    1.87 +	ECCurve_SECG_PRIME_128R2,
    1.88 +	ECCurve_SECG_PRIME_160K1,
    1.89 +	ECCurve_SECG_PRIME_160R1,
    1.90 +	ECCurve_SECG_PRIME_160R2,
    1.91 +	ECCurve_SECG_PRIME_192K1,
    1.92 +	/* ECCurve_SECG_PRIME_192R1 == ECCurve_NIST_P192 */
    1.93 +	ECCurve_SECG_PRIME_224K1,
    1.94 +	/* ECCurve_SECG_PRIME_224R1 == ECCurve_NIST_P224 */
    1.95 +	ECCurve_SECG_PRIME_256K1,
    1.96 +	/* ECCurve_SECG_PRIME_256R1 == ECCurve_NIST_P256 */
    1.97 +	/* ECCurve_SECG_PRIME_384R1 == ECCurve_NIST_P384 */
    1.98 +	/* ECCurve_SECG_PRIME_521R1 == ECCurve_NIST_P521 */
    1.99 +
   1.100 +	/* SEC2 binary curves */
   1.101 +	ECCurve_SECG_CHAR2_113R1,
   1.102 +	ECCurve_SECG_CHAR2_113R2,
   1.103 +	ECCurve_SECG_CHAR2_131R1,
   1.104 +	ECCurve_SECG_CHAR2_131R2,
   1.105 +	/* ECCurve_SECG_CHAR2_163K1 == ECCurve_NIST_K163 */
   1.106 +	ECCurve_SECG_CHAR2_163R1,
   1.107 +	/* ECCurve_SECG_CHAR2_163R2 == ECCurve_NIST_B163 */
   1.108 +	ECCurve_SECG_CHAR2_193R1,
   1.109 +	ECCurve_SECG_CHAR2_193R2,
   1.110 +	/* ECCurve_SECG_CHAR2_233K1 == ECCurve_NIST_K233 */
   1.111 +	/* ECCurve_SECG_CHAR2_233R1 == ECCurve_NIST_B233 */
   1.112 +	ECCurve_SECG_CHAR2_239K1,
   1.113 +	/* ECCurve_SECG_CHAR2_283K1 == ECCurve_NIST_K283 */
   1.114 +	/* ECCurve_SECG_CHAR2_283R1 == ECCurve_NIST_B283 */
   1.115 +	/* ECCurve_SECG_CHAR2_409K1 == ECCurve_NIST_K409 */
   1.116 +	/* ECCurve_SECG_CHAR2_409R1 == ECCurve_NIST_B409 */
   1.117 +	/* ECCurve_SECG_CHAR2_571K1 == ECCurve_NIST_K571 */
   1.118 +	/* ECCurve_SECG_CHAR2_571R1 == ECCurve_NIST_B571 */
   1.119 +
   1.120 +	/* WTLS curves */
   1.121 +	ECCurve_WTLS_1,
   1.122 +	/* there is no WTLS 2 curve */
   1.123 +	/* ECCurve_WTLS_3 == ECCurve_NIST_K163 */
   1.124 +	/* ECCurve_WTLS_4 == ECCurve_SECG_CHAR2_113R1 */
   1.125 +	/* ECCurve_WTLS_5 == ECCurve_X9_62_CHAR2_PNB163V1 */
   1.126 +	/* ECCurve_WTLS_6 == ECCurve_SECG_PRIME_112R1 */
   1.127 +	/* ECCurve_WTLS_7 == ECCurve_SECG_PRIME_160R1 */
   1.128 +	ECCurve_WTLS_8,
   1.129 +	ECCurve_WTLS_9,
   1.130 +	/* ECCurve_WTLS_10 == ECCurve_NIST_K233 */
   1.131 +	/* ECCurve_WTLS_11 == ECCurve_NIST_B233 */
   1.132 +	/* ECCurve_WTLS_12 == ECCurve_NIST_P224 */
   1.133 +
   1.134 +	ECCurve_pastLastCurve
   1.135 +} ECCurveName;
   1.136 +
   1.137 +/* Aliased named curves */
   1.138 +
   1.139 +#define ECCurve_X9_62_PRIME_192V1 ECCurve_NIST_P192
   1.140 +#define ECCurve_X9_62_PRIME_256V1 ECCurve_NIST_P256
   1.141 +#define ECCurve_SECG_PRIME_192R1 ECCurve_NIST_P192
   1.142 +#define ECCurve_SECG_PRIME_224R1 ECCurve_NIST_P224
   1.143 +#define ECCurve_SECG_PRIME_256R1 ECCurve_NIST_P256
   1.144 +#define ECCurve_SECG_PRIME_384R1 ECCurve_NIST_P384
   1.145 +#define ECCurve_SECG_PRIME_521R1 ECCurve_NIST_P521
   1.146 +#define ECCurve_SECG_CHAR2_163K1 ECCurve_NIST_K163
   1.147 +#define ECCurve_SECG_CHAR2_163R2 ECCurve_NIST_B163
   1.148 +#define ECCurve_SECG_CHAR2_233K1 ECCurve_NIST_K233
   1.149 +#define ECCurve_SECG_CHAR2_233R1 ECCurve_NIST_B233
   1.150 +#define ECCurve_SECG_CHAR2_283K1 ECCurve_NIST_K283
   1.151 +#define ECCurve_SECG_CHAR2_283R1 ECCurve_NIST_B283
   1.152 +#define ECCurve_SECG_CHAR2_409K1 ECCurve_NIST_K409
   1.153 +#define ECCurve_SECG_CHAR2_409R1 ECCurve_NIST_B409
   1.154 +#define ECCurve_SECG_CHAR2_571K1 ECCurve_NIST_K571
   1.155 +#define ECCurve_SECG_CHAR2_571R1 ECCurve_NIST_B571
   1.156 +#define ECCurve_WTLS_3 ECCurve_NIST_K163
   1.157 +#define ECCurve_WTLS_4 ECCurve_SECG_CHAR2_113R1
   1.158 +#define ECCurve_WTLS_5 ECCurve_X9_62_CHAR2_PNB163V1
   1.159 +#define ECCurve_WTLS_6 ECCurve_SECG_PRIME_112R1
   1.160 +#define ECCurve_WTLS_7 ECCurve_SECG_PRIME_160R1
   1.161 +#define ECCurve_WTLS_10 ECCurve_NIST_K233
   1.162 +#define ECCurve_WTLS_11 ECCurve_NIST_B233
   1.163 +#define ECCurve_WTLS_12 ECCurve_NIST_P224
   1.164 +
   1.165 +#endif							/* __ecl_exp_h_ */

mercurial