/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "ecl-exp.h"
#include "eclt.h"
#include <stdlib.h>
#ifndef __ecl_curve_h_
#define __ecl_curve_h_
/* copied from certt.h */
#define KU_DIGITAL_SIGNATURE (
0 x80)
/* bit 0 */
#define KU_KEY_AGREEMENT (
0 x08)
/* bit 4 */
static const PRUint8 irr256[
32 ] = {
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 x00,
0 x00,
0 x00,
0 x01,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 x00,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 xFF };
static const PRUint8 a256[
32 ] = {
0 xFF,
0 xFF,
0 xFF,
0 xFF,
0 x00,
0 x00,
0 x00,
0 x01,
0 x00,
0 x00,
0 x
00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFC };
static const PRUint8 b256[32 ] = { 0 x5A, 0 xC6, 0 x35, 0 xD8, 0 xAA, 0 x3A, 0 x93, 0 xE7, 0 xB3, 0 xEB, 0 xBD, 0 x55,
0 x76, 0 x98, 0 x86, 0 xBC, 0 x65, 0 x1D, 0 x06, 0 xB0, 0 xCC, 0 x53, 0 xB0, 0 xF6,
0 x3B, 0 xCE, 0 x3C, 0 x3E, 0 x27, 0 xD2, 0 x60, 0 x4B };
static const PRUint8 x256[32 ] = { 0 x6B, 0 x17, 0 xD1, 0 xF2, 0 xE1, 0 x2C, 0 x42, 0 x47, 0 xF8, 0 xBC, 0 xE6, 0 xE5,
0 x63, 0 xA4, 0 x40, 0 xF2, 0 x77, 0 x03, 0 x7D, 0 x81, 0 x2D, 0 xEB, 0 x33, 0 xA0,
0 xF4, 0 xA1, 0 x39, 0 x45, 0 xD8, 0 x98, 0 xC2, 0 x96 };
static const PRUint8 y256[32 ] = { 0 x4F, 0 xE3, 0 x42, 0 xE2, 0 xFE, 0 x1A, 0 x7F, 0 x9B, 0 x8E, 0 xE7, 0 xEB, 0 x4A,
0 x7C, 0 x0F, 0 x9E, 0 x16, 0 x2B, 0 xCE, 0 x33, 0 x57, 0 x6B, 0 x31, 0 x5E, 0 xCE,
0 xCB, 0 xB6, 0 x40, 0 x68, 0 x37, 0 xBF, 0 x51, 0 xF5 };
static const PRUint8 order256[32 ] = { 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 x00, 0 x00, 0 x00, 0 x00, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xBC, 0 xE6, 0 xFA, 0 xAD, 0 xA7, 0 x17, 0 x9E, 0 x84,
0 xF3, 0 xB9, 0 xCA, 0 xC2, 0 xFC, 0 x63, 0 x25, 0 x51 };
static const PRUint8 base256[66 ] = { 0 x04, 0 x00,
0 x6B, 0 x17, 0 xD1, 0 xF2, 0 xE1, 0 x2C, 0 x42, 0 x47, 0 xF8, 0 xBC, 0 xE6, 0 xE5,
0 x63, 0 xA4, 0 x40, 0 xF2, 0 x77, 0 x03, 0 x7D, 0 x81, 0 x2D, 0 xEB, 0 x33, 0 xA0,
0 xF4, 0 xA1, 0 x39, 0 x45, 0 xD8, 0 x98, 0 xC2, 0 x96,
0 x4F, 0 xE3, 0 x42, 0 xE2, 0 xFE, 0 x1A, 0 x7F, 0 x9B, 0 x8E, 0 xE7, 0 xEB, 0 x4A,
0 x7C, 0 x0F, 0 x9E, 0 x16, 0 x2B, 0 xCE, 0 x33, 0 x57, 0 x6B, 0 x31, 0 x5E, 0 xCE,
0 xCB, 0 xB6, 0 x40, 0 x68, 0 x37, 0 xBF, 0 x51, 0 xF5 };
static const ECCurveBytes ecCurve_NIST_P256 = {
"NIST-P256" , ECField_GFp, 256 ,
irr256, a256, b256, x256, y256, order256, base256,
1 , 128 , 66 , 32 ,
KU_DIGITAL_SIGNATURE | KU_KEY_AGREEMENT
};
static const PRUint8 irr384[48 ] = { 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFE, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 xFF, 0 xFF, 0 xFF, 0 xFF };
static const PRUint8 a384[48 ] = { 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFE, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 xFF, 0 xFF, 0 xFF, 0 xFC };
static const PRUint8 b384[48 ] = { 0 xB3, 0 x31, 0 x2F, 0 xA7, 0 xE2, 0 x3E, 0 xE7, 0 xE4, 0 x98, 0 x8E, 0 x05, 0 x6B,
0 xE3, 0 xF8, 0 x2D, 0 x19, 0 x18, 0 x1D, 0 x9C, 0 x6E, 0 xFE, 0 x81, 0 x41, 0 x12,
0 x03, 0 x14, 0 x08, 0 x8F, 0 x50, 0 x13, 0 x87, 0 x5A, 0 xC6, 0 x56, 0 x39, 0 x8D,
0 x8A, 0 x2E, 0 xD1, 0 x9D, 0 x2A, 0 x85, 0 xC8, 0 xED, 0 xD3, 0 xEC, 0 x2A, 0 xEF };
static const PRUint8 x384[48 ] = { 0 xAA, 0 x87, 0 xCA, 0 x22, 0 xBE, 0 x8B, 0 x05, 0 x37, 0 x8E, 0 xB1, 0 xC7, 0 x1E,
0 xF3, 0 x20, 0 xAD, 0 x74, 0 x6E, 0 x1D, 0 x3B, 0 x62, 0 x8B, 0 xA7, 0 x9B, 0 x98,
0 x59, 0 xF7, 0 x41, 0 xE0, 0 x82, 0 x54, 0 x2A, 0 x38, 0 x55, 0 x02, 0 xF2, 0 x5D,
0 xBF, 0 x55, 0 x29, 0 x6C, 0 x3A, 0 x54, 0 x5E, 0 x38, 0 x72, 0 x76, 0 x0A, 0 xB7 };
static const PRUint8 y384[48 ] = { 0 x36, 0 x17, 0 xDE, 0 x4A, 0 x96, 0 x26, 0 x2C, 0 x6F, 0 x5D, 0 x9E, 0 x98, 0 xBF,
0 x92, 0 x92, 0 xDC, 0 x29, 0 xF8, 0 xF4, 0 x1D, 0 xBD, 0 x28, 0 x9A, 0 x14, 0 x7C,
0 xE9, 0 xDA, 0 x31, 0 x13, 0 xB5, 0 xF0, 0 xB8, 0 xC0, 0 x0A, 0 x60, 0 xB1, 0 xCE,
0 x1D, 0 x7E, 0 x81, 0 x9D, 0 x7A, 0 x43, 0 x1D, 0 x7C, 0 x90, 0 xEA, 0 x0E, 0 x5F };
static const PRUint8 order384[48 ] = { 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xC7, 0 x63, 0 x4D, 0 x81, 0 xF4, 0 x37, 0 x2D, 0 xDF, 0 x58, 0 x1A, 0 x0D, 0 xB2,
0 x48, 0 xB0, 0 xA7, 0 x7A, 0 xEC, 0 xEC, 0 x19, 0 x6A, 0 xCC, 0 xC5, 0 x29, 0 x73 };
static const PRUint8 base384[98 ] = { 0 x04, 0 x00,
0 xAA, 0 x87, 0 xCA, 0 x22, 0 xBE, 0 x8B, 0 x05, 0 x37, 0 x8E, 0 xB1, 0 xC7, 0 x1E,
0 xF3, 0 x20, 0 xAD, 0 x74, 0 x6E, 0 x1D, 0 x3B, 0 x62, 0 x8B, 0 xA7, 0 x9B, 0 x98,
0 x59, 0 xF7, 0 x41, 0 xE0, 0 x82, 0 x54, 0 x2A, 0 x38, 0 x55, 0 x02, 0 xF2, 0 x5D,
0 xBF, 0 x55, 0 x29, 0 x6C, 0 x3A, 0 x54, 0 x5E, 0 x38, 0 x72, 0 x76, 0 x0A, 0 xB7,
0 x36, 0 x17, 0 xDE, 0 x4A, 0 x96, 0 x26, 0 x2C, 0 x6F, 0 x5D, 0 x9E, 0 x98, 0 xBF,
0 x92, 0 x92, 0 xDC, 0 x29, 0 xF8, 0 xF4, 0 x1D, 0 xBD, 0 x28, 0 x9A, 0 x14, 0 x7C,
0 xE9, 0 xDA, 0 x31, 0 x13, 0 xB5, 0 xF0, 0 xB8, 0 xC0, 0 x0A, 0 x60, 0 xB1, 0 xCE,
0 x1D, 0 x7E, 0 x81, 0 x9D, 0 x7A, 0 x43, 0 x1D, 0 x7C, 0 x90, 0 xEA, 0 x0E, 0 x5F };
static const ECCurveBytes ecCurve_NIST_P384 = {
"NIST-P384" , ECField_GFp, 384 ,
irr384, a384, b384, x384, y384, order384, base384,
1 , 192 , 98 , 48 ,
KU_DIGITAL_SIGNATURE | KU_KEY_AGREEMENT
};
static const PRUint8 irr521[66 ] = { 0 x01, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF };
static const PRUint8 a521[66 ] = { 0 x01, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFC };
static const PRUint8 b521[66 ] = { 0 x00, 0 x51, 0 x95, 0 x3E, 0 xB9, 0 x61, 0 x8E, 0 x1C, 0 x9A, 0 x1F, 0 x92, 0 x9A,
0 x21, 0 xA0, 0 xB6, 0 x85, 0 x40, 0 xEE, 0 xA2, 0 xDA, 0 x72, 0 x5B, 0 x99, 0 xB3,
0 x15, 0 xF3, 0 xB8, 0 xB4, 0 x89, 0 x91, 0 x8E, 0 xF1, 0 x09, 0 xE1, 0 x56, 0 x19,
0 x39, 0 x51, 0 xEC, 0 x7E, 0 x93, 0 x7B, 0 x16, 0 x52, 0 xC0, 0 xBD, 0 x3B, 0 xB1,
0 xBF, 0 x07, 0 x35, 0 x73, 0 xDF, 0 x88, 0 x3D, 0 x2C, 0 x34, 0 xF1, 0 xEF, 0 x45,
0 x1F, 0 xD4, 0 x6B, 0 x50, 0 x3F, 0 x00 };
static const PRUint8 x521[66 ] = { 0 x00, 0 xC6, 0 x85, 0 x8E, 0 x06, 0 xB7, 0 x04, 0 x04, 0 xE9, 0 xCD, 0 x9E, 0 x3E,
0 xCB, 0 x66, 0 x23, 0 x95, 0 xB4, 0 x42, 0 x9C, 0 x64, 0 x81, 0 x39, 0 x05, 0 x3F,
0 xB5, 0 x21, 0 xF8, 0 x28, 0 xAF, 0 x60, 0 x6B, 0 x4D, 0 x3D, 0 xBA, 0 xA1, 0 x4B,
0 x5E, 0 x77, 0 xEF, 0 xE7, 0 x59, 0 x28, 0 xFE, 0 x1D, 0 xC1, 0 x27, 0 xA2, 0 xFF,
0 xA8, 0 xDE, 0 x33, 0 x48, 0 xB3, 0 xC1, 0 x85, 0 x6A, 0 x42, 0 x9B, 0 xF9, 0 x7E,
0 x7E, 0 x31, 0 xC2, 0 xE5, 0 xBD, 0 x66 };
static const PRUint8 y521[66 ] = { 0 x01, 0 x18, 0 x39, 0 x29, 0 x6A, 0 x78, 0 x9A, 0 x3B, 0 xC0, 0 x04, 0 x5C, 0 x8A,
0 x5F, 0 xB4, 0 x2C, 0 x7D, 0 x1B, 0 xD9, 0 x98, 0 xF5, 0 x44, 0 x49, 0 x57, 0 x9B,
0 x44, 0 x68, 0 x17, 0 xAF, 0 xBD, 0 x17, 0 x27, 0 x3E, 0 x66, 0 x2C, 0 x97, 0 xEE,
0 x72, 0 x99, 0 x5E, 0 xF4, 0 x26, 0 x40, 0 xC5, 0 x50, 0 xB9, 0 x01, 0 x3F, 0 xAD,
0 x07, 0 x61, 0 x35, 0 x3C, 0 x70, 0 x86, 0 xA2, 0 x72, 0 xC2, 0 x40, 0 x88, 0 xBE,
0 x94, 0 x76, 0 x9F, 0 xD1, 0 x66, 0 x50 };
static const PRUint8 order521[66 ] = { 0 x01, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF,
0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFF, 0 xFA, 0 x51, 0 x86,
0 x87, 0 x83, 0 xBF, 0 x2F, 0 x96, 0 x6B, 0 x7F, 0 xCC, 0 x01, 0 x48, 0 xF7, 0 x09,
0 xA5, 0 xD0, 0 x3B, 0 xB5, 0 xC9, 0 xB8, 0 x89, 0 x9C, 0 x47, 0 xAE, 0 xBB, 0 x6F,
0 xB7, 0 x1E, 0 x91, 0 x38, 0 x64, 0 x09 };
static const PRUint8 base521[134 ] = {
0 x04, 0 x00,
0 x00, 0 xC6, 0 x85, 0 x8E, 0 x06, 0 xB7, 0 x04, 0 x04, 0 xE9, 0 xCD, 0 x9E, 0 x3E,
0 xCB, 0 x66, 0 x23, 0 x95, 0 xB4, 0 x42, 0 x9C, 0 x64, 0 x81, 0 x39, 0 x05, 0 x3F,
0 xB5, 0 x21, 0 xF8, 0 x28, 0 xAF, 0 x60, 0 x6B, 0 x4D, 0 x3D, 0 xBA, 0 xA1, 0 x4B,
0 x5E, 0 x77, 0 xEF, 0 xE7, 0 x59, 0 x28, 0 xFE, 0 x1D, 0 xC1, 0 x27, 0 xA2, 0 xFF,
0 xA8, 0 xDE, 0 x33, 0 x48, 0 xB3, 0 xC1, 0 x85, 0 x6A, 0 x42, 0 x9B, 0 xF9, 0 x7E,
0 x7E, 0 x31, 0 xC2, 0 xE5, 0 xBD, 0 x66,
0 x01, 0 x18, 0 x39, 0 x29, 0 x6A, 0 x78, 0 x9A, 0 x3B, 0 xC0, 0 x04, 0 x5C, 0 x8A,
0 x5F, 0 xB4, 0 x2C, 0 x7D, 0 x1B, 0 xD9, 0 x98, 0 xF5, 0 x44, 0 x49, 0 x57, 0 x9B,
0 x44, 0 x68, 0 x17, 0 xAF, 0 xBD, 0 x17, 0 x27, 0 x3E, 0 x66, 0 x2C, 0 x97, 0 xEE,
0 x72, 0 x99, 0 x5E, 0 xF4, 0 x26, 0 x40, 0 xC5, 0 x50, 0 xB9, 0 x01, 0 x3F, 0 xAD,
0 x07, 0 x61, 0 x35, 0 x3C, 0 x70, 0 x86, 0 xA2, 0 x72, 0 xC2, 0 x40, 0 x88, 0 xBE,
0 x94, 0 x76, 0 x9F, 0 xD1, 0 x66, 0 x50
};
static const ECCurveBytes ecCurve_NIST_P521 = {
"NIST-P521" , ECField_GFp, 521 ,
irr521, a521, b521, x521, y521, order521, base521,
1 , 256 , 134 , 66 ,
KU_DIGITAL_SIGNATURE | KU_KEY_AGREEMENT
};
static const PRUint8 irr25519[32 ] = { 0 xed, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff,
0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff,
0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 xff, 0 x7f };
static const PRUint8 a25519[32 ] = { 0 x06, 0 x6d, 0 x07, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00 };
static const PRUint8 b25519[32 ] = { 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00 };
static const PRUint8 x25519[32 ] = { 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x09 };
static const PRUint8 y25519[32 ] = { 0 xd9, 0 xd3, 0 xce, 0 x7e, 0 xa2, 0 xc5, 0 xe9, 0 x29, 0 xb2, 0 x61, 0 x7c, 0 x6d,
0 x7e, 0 x4d, 0 x3d, 0 x92, 0 x4c, 0 xd1, 0 x48, 0 x77, 0 x2c, 0 xdd, 0 x1e, 0 xe0,
0 xb4, 0 x86, 0 xa0, 0 xb8, 0 xa1, 0 x19, 0 xae, 0 x20 };
static const PRUint8 order25519[32 ] = { 0 xed, 0 xd3, 0 xf5, 0 x5c, 0 x1a, 0 x63, 0 x12, 0 x58, 0 xd6, 0 x9c, 0 xf7, 0 xa2,
0 xde, 0 xf9, 0 xde, 0 x14, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x10 };
static const PRUint8 base25519[66 ] = { 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00,
0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x00, 0 x09,
0 xd9, 0 xd3, 0 xce, 0 x7e, 0 xa2, 0 xc5, 0 xe9, 0 x29, 0 xb2, 0 x61, 0 x7c, 0 x6d,
0 x7e, 0 x4d, 0 x3d, 0 x92, 0 x4c, 0 xd1, 0 x48, 0 x77, 0 x2c, 0 xdd, 0 x1e, 0 xe0,
0 xb4, 0 x86, 0 xa0, 0 xb8, 0 xa1, 0 x19, 0 xae, 0 x20, 0 x00, 0 x04 };
static const ECCurveBytes ecCurve_25519 = {
"Curve25519" , ECField_GFp, 255 ,
irr25519, a25519, b25519, x25519, y25519, order25519, base25519,
8 , 128 , 66 , 32 ,
KU_KEY_AGREEMENT
};
static const ECCurveBytes ecCurve_Ed25519 = {
"ED25119" , ECField_GFp, 255 ,
NULL, NULL, NULL, NULL, NULL, NULL, NULL,
8 , 128 , 66 , 32 ,
KU_DIGITAL_SIGNATURE
};
/* mapping between ECCurveName enum and pointers to ECCurveParams */
static const ECCurveBytes *ecCurve_map[] = {
NULL, /* ECCurve_noName */
NULL, /* ECCurve_NIST_P192 */
NULL, /* ECCurve_NIST_P224 */
&ecCurve_NIST_P256, /* ECCurve_NIST_P256 */
&ecCurve_NIST_P384, /* ECCurve_NIST_P384 */
&ecCurve_NIST_P521, /* ECCurve_NIST_P521 */
NULL, /* ECCurve_NIST_K163 */
NULL, /* ECCurve_NIST_B163 */
NULL, /* ECCurve_NIST_K233 */
NULL, /* ECCurve_NIST_B233 */
NULL, /* ECCurve_NIST_K283 */
NULL, /* ECCurve_NIST_B283 */
NULL, /* ECCurve_NIST_K409 */
NULL, /* ECCurve_NIST_B409 */
NULL, /* ECCurve_NIST_K571 */
NULL, /* ECCurve_NIST_B571 */
NULL, /* ECCurve_X9_62_PRIME_192V2 */
NULL, /* ECCurve_X9_62_PRIME_192V3 */
NULL, /* ECCurve_X9_62_PRIME_239V1 */
NULL, /* ECCurve_X9_62_PRIME_239V2 */
NULL, /* ECCurve_X9_62_PRIME_239V3 */
NULL, /* ECCurve_X9_62_CHAR2_PNB163V1 */
NULL, /* ECCurve_X9_62_CHAR2_PNB163V2 */
NULL, /* ECCurve_X9_62_CHAR2_PNB163V3 */
NULL, /* ECCurve_X9_62_CHAR2_PNB176V1 */
NULL, /* ECCurve_X9_62_CHAR2_TNB191V1 */
NULL, /* ECCurve_X9_62_CHAR2_TNB191V2 */
NULL, /* ECCurve_X9_62_CHAR2_TNB191V3 */
NULL, /* ECCurve_X9_62_CHAR2_PNB208W1 */
NULL, /* ECCurve_X9_62_CHAR2_TNB239V1 */
NULL, /* ECCurve_X9_62_CHAR2_TNB239V2 */
NULL, /* ECCurve_X9_62_CHAR2_TNB239V3 */
NULL, /* ECCurve_X9_62_CHAR2_PNB272W1 */
NULL, /* ECCurve_X9_62_CHAR2_PNB304W1 */
NULL, /* ECCurve_X9_62_CHAR2_TNB359V1 */
NULL, /* ECCurve_X9_62_CHAR2_PNB368W1 */
NULL, /* ECCurve_X9_62_CHAR2_TNB431R1 */
NULL, /* ECCurve_SECG_PRIME_112R1 */
NULL, /* ECCurve_SECG_PRIME_112R2 */
NULL, /* ECCurve_SECG_PRIME_128R1 */
NULL, /* ECCurve_SECG_PRIME_128R2 */
NULL, /* ECCurve_SECG_PRIME_160K1 */
NULL, /* ECCurve_SECG_PRIME_160R1 */
NULL, /* ECCurve_SECG_PRIME_160R2 */
NULL, /* ECCurve_SECG_PRIME_192K1 */
NULL, /* ECCurve_SECG_PRIME_224K1 */
NULL, /* ECCurve_SECG_PRIME_256K1 */
NULL, /* ECCurve_SECG_CHAR2_113R1 */
NULL, /* ECCurve_SECG_CHAR2_113R2 */
NULL, /* ECCurve_SECG_CHAR2_131R1 */
NULL, /* ECCurve_SECG_CHAR2_131R2 */
NULL, /* ECCurve_SECG_CHAR2_163R1 */
NULL, /* ECCurve_SECG_CHAR2_193R1 */
NULL, /* ECCurve_SECG_CHAR2_193R2 */
NULL, /* ECCurve_SECG_CHAR2_239K1 */
NULL, /* ECCurve_WTLS_1 */
NULL, /* ECCurve_WTLS_8 */
NULL, /* ECCurve_WTLS_9 */
&ecCurve_25519, /* ECCurve25519 */
&ecCurve_Ed25519,
NULL /* ECCurve_pastLastCurve */
};
#endif
Messung V0.5 in Prozent C=92 H=89 G=90
¤ Dauer der Verarbeitung: 0.13 Sekunden
(vorverarbeitet am 2026-06-06)
¤
*© Formatika GbR, Deutschland