summaryrefslogtreecommitdiffstats
path: root/security/nss/lib/freebl/ec.h
blob: c38f623d4a326a2330afa64346464e986ee8801a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* 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

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 *digest);
};
typedef struct ECMethodStr ECMethod;

#endif /* __ec_h_ */