/* 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/. */
#ifndef __ec_h_
#define __ec_h_
#define EC_DEBUG
0
#define ANSI_X962_CURVE_OID_TOTAL_LEN
10
#define SECG_CURVE_OID_TOTAL_LEN
7
#define PKIX_NEWCURVES_OID_TOTAL_LEN
11
#define ED25519_OID_TOTAL_LEN
5
#define Ed25519_PRIVATE_KEYLEN
32
#define Ed25519_PUBLIC_KEYLEN
32
#define Ed25519_SIGN_LEN
64
#define X25519_PUBLIC_KEYLEN
32
struct ECMethodStr {
ECCurveName name;
SECStatus (*pt_mul)(SECItem *result, SECItem *scalar, SECItem *point);
SECStatus (*pt_validate)(
const SECItem *point);
SECStatus (*scalar_validate)(
const SECItem *scalar);
SECStatus (*sign_digest)(ECPrivateKey *key, SECItem *signature,
const SECItem *digest,
const unsigned char *kb,
const unsigned int kblen);
SECStatus (*verify_digest)(ECPublicKey *key,
const SECItem *signature,
const SECItem *di
gest);
};
typedef struct ECMethodStr ECMethod;
#endif /* __ec_h_ */