Path: blob/aarch64-shenandoah-jdk8u272-b10/jdk/src/share/native/sun/security/ec/impl/ecl-exp.h
38918 views
/*1* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.2* Use is subject to license terms.3*4* This library is free software; you can redistribute it and/or5* modify it under the terms of the GNU Lesser General Public6* License as published by the Free Software Foundation; either7* version 2.1 of the License, or (at your option) any later version.8*9* This library is distributed in the hope that it will be useful,10* but WITHOUT ANY WARRANTY; without even the implied warranty of11* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU12* Lesser General Public License for more details.13*14* You should have received a copy of the GNU Lesser General Public License15* along with this library; if not, write to the Free Software Foundation,16* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.17*18* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA19* or visit www.oracle.com if you need additional information or have any20* questions.21*/2223/* *********************************************************************24*25* The Original Code is the elliptic curve math library.26*27* The Initial Developer of the Original Code is28* Sun Microsystems, Inc.29* Portions created by the Initial Developer are Copyright (C) 200330* the Initial Developer. All Rights Reserved.31*32* Contributor(s):33* Douglas Stebila <[email protected]>, Sun Microsystems Laboratories34*35*********************************************************************** */3637#ifndef _ECL_EXP_H38#define _ECL_EXP_H3940/* Curve field type */41typedef enum {42ECField_GFp,43ECField_GF2m44} ECField;4546/* Hexadecimal encoding of curve parameters */47struct ECCurveParamsStr {48char *text;49ECField field;50unsigned int size;51char *irr;52char *curvea;53char *curveb;54char *genx;55char *geny;56char *order;57int cofactor;58};59typedef struct ECCurveParamsStr ECCurveParams;6061/* Named curve parameters */62typedef enum {6364ECCurve_noName = 0,6566/* NIST prime curves */67ECCurve_NIST_P192,68ECCurve_NIST_P224,69ECCurve_NIST_P256,70ECCurve_NIST_P384,71ECCurve_NIST_P521,7273/* NIST binary curves */74ECCurve_NIST_K163,75ECCurve_NIST_B163,76ECCurve_NIST_K233,77ECCurve_NIST_B233,78ECCurve_NIST_K283,79ECCurve_NIST_B283,80ECCurve_NIST_K409,81ECCurve_NIST_B409,82ECCurve_NIST_K571,83ECCurve_NIST_B571,8485/* ANSI X9.62 prime curves */86/* ECCurve_X9_62_PRIME_192V1 == ECCurve_NIST_P192 */87ECCurve_X9_62_PRIME_192V2,88ECCurve_X9_62_PRIME_192V3,89ECCurve_X9_62_PRIME_239V1,90ECCurve_X9_62_PRIME_239V2,91ECCurve_X9_62_PRIME_239V3,92/* ECCurve_X9_62_PRIME_256V1 == ECCurve_NIST_P256 */9394/* ANSI X9.62 binary curves */95ECCurve_X9_62_CHAR2_PNB163V1,96ECCurve_X9_62_CHAR2_PNB163V2,97ECCurve_X9_62_CHAR2_PNB163V3,98ECCurve_X9_62_CHAR2_PNB176V1,99ECCurve_X9_62_CHAR2_TNB191V1,100ECCurve_X9_62_CHAR2_TNB191V2,101ECCurve_X9_62_CHAR2_TNB191V3,102ECCurve_X9_62_CHAR2_PNB208W1,103ECCurve_X9_62_CHAR2_TNB239V1,104ECCurve_X9_62_CHAR2_TNB239V2,105ECCurve_X9_62_CHAR2_TNB239V3,106ECCurve_X9_62_CHAR2_PNB272W1,107ECCurve_X9_62_CHAR2_PNB304W1,108ECCurve_X9_62_CHAR2_TNB359V1,109ECCurve_X9_62_CHAR2_PNB368W1,110ECCurve_X9_62_CHAR2_TNB431R1,111112/* SEC2 prime curves */113ECCurve_SECG_PRIME_112R1,114ECCurve_SECG_PRIME_112R2,115ECCurve_SECG_PRIME_128R1,116ECCurve_SECG_PRIME_128R2,117ECCurve_SECG_PRIME_160K1,118ECCurve_SECG_PRIME_160R1,119ECCurve_SECG_PRIME_160R2,120ECCurve_SECG_PRIME_192K1,121/* ECCurve_SECG_PRIME_192R1 == ECCurve_NIST_P192 */122ECCurve_SECG_PRIME_224K1,123/* ECCurve_SECG_PRIME_224R1 == ECCurve_NIST_P224 */124ECCurve_SECG_PRIME_256K1,125/* ECCurve_SECG_PRIME_256R1 == ECCurve_NIST_P256 */126/* ECCurve_SECG_PRIME_384R1 == ECCurve_NIST_P384 */127/* ECCurve_SECG_PRIME_521R1 == ECCurve_NIST_P521 */128129/* SEC2 binary curves */130ECCurve_SECG_CHAR2_113R1,131ECCurve_SECG_CHAR2_113R2,132ECCurve_SECG_CHAR2_131R1,133ECCurve_SECG_CHAR2_131R2,134/* ECCurve_SECG_CHAR2_163K1 == ECCurve_NIST_K163 */135ECCurve_SECG_CHAR2_163R1,136/* ECCurve_SECG_CHAR2_163R2 == ECCurve_NIST_B163 */137ECCurve_SECG_CHAR2_193R1,138ECCurve_SECG_CHAR2_193R2,139/* ECCurve_SECG_CHAR2_233K1 == ECCurve_NIST_K233 */140/* ECCurve_SECG_CHAR2_233R1 == ECCurve_NIST_B233 */141ECCurve_SECG_CHAR2_239K1,142/* ECCurve_SECG_CHAR2_283K1 == ECCurve_NIST_K283 */143/* ECCurve_SECG_CHAR2_283R1 == ECCurve_NIST_B283 */144/* ECCurve_SECG_CHAR2_409K1 == ECCurve_NIST_K409 */145/* ECCurve_SECG_CHAR2_409R1 == ECCurve_NIST_B409 */146/* ECCurve_SECG_CHAR2_571K1 == ECCurve_NIST_K571 */147/* ECCurve_SECG_CHAR2_571R1 == ECCurve_NIST_B571 */148149/* WTLS curves */150ECCurve_WTLS_1,151/* there is no WTLS 2 curve */152/* ECCurve_WTLS_3 == ECCurve_NIST_K163 */153/* ECCurve_WTLS_4 == ECCurve_SECG_CHAR2_113R1 */154/* ECCurve_WTLS_5 == ECCurve_X9_62_CHAR2_PNB163V1 */155/* ECCurve_WTLS_6 == ECCurve_SECG_PRIME_112R1 */156/* ECCurve_WTLS_7 == ECCurve_SECG_PRIME_160R1 */157ECCurve_WTLS_8,158ECCurve_WTLS_9,159/* ECCurve_WTLS_10 == ECCurve_NIST_K233 */160/* ECCurve_WTLS_11 == ECCurve_NIST_B233 */161/* ECCurve_WTLS_12 == ECCurve_NIST_P224 */162163ECCurve_pastLastCurve164} ECCurveName;165166/* Aliased named curves */167168#define ECCurve_X9_62_PRIME_192V1 ECCurve_NIST_P192169#define ECCurve_X9_62_PRIME_256V1 ECCurve_NIST_P256170#define ECCurve_SECG_PRIME_192R1 ECCurve_NIST_P192171#define ECCurve_SECG_PRIME_224R1 ECCurve_NIST_P224172#define ECCurve_SECG_PRIME_256R1 ECCurve_NIST_P256173#define ECCurve_SECG_PRIME_384R1 ECCurve_NIST_P384174#define ECCurve_SECG_PRIME_521R1 ECCurve_NIST_P521175#define ECCurve_SECG_CHAR2_163K1 ECCurve_NIST_K163176#define ECCurve_SECG_CHAR2_163R2 ECCurve_NIST_B163177#define ECCurve_SECG_CHAR2_233K1 ECCurve_NIST_K233178#define ECCurve_SECG_CHAR2_233R1 ECCurve_NIST_B233179#define ECCurve_SECG_CHAR2_283K1 ECCurve_NIST_K283180#define ECCurve_SECG_CHAR2_283R1 ECCurve_NIST_B283181#define ECCurve_SECG_CHAR2_409K1 ECCurve_NIST_K409182#define ECCurve_SECG_CHAR2_409R1 ECCurve_NIST_B409183#define ECCurve_SECG_CHAR2_571K1 ECCurve_NIST_K571184#define ECCurve_SECG_CHAR2_571R1 ECCurve_NIST_B571185#define ECCurve_WTLS_3 ECCurve_NIST_K163186#define ECCurve_WTLS_4 ECCurve_SECG_CHAR2_113R1187#define ECCurve_WTLS_5 ECCurve_X9_62_CHAR2_PNB163V1188#define ECCurve_WTLS_6 ECCurve_SECG_PRIME_112R1189#define ECCurve_WTLS_7 ECCurve_SECG_PRIME_160R1190#define ECCurve_WTLS_10 ECCurve_NIST_K233191#define ECCurve_WTLS_11 ECCurve_NIST_B233192#define ECCurve_WTLS_12 ECCurve_NIST_P224193194#endif /* _ECL_EXP_H */195196197