ec.h (1067B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 5 #ifndef __ec_h_ 6 #define __ec_h_ 7 8 #define EC_DEBUG 0 9 10 #define ANSI_X962_CURVE_OID_TOTAL_LEN 10 11 #define SECG_CURVE_OID_TOTAL_LEN 7 12 #define PKIX_NEWCURVES_OID_TOTAL_LEN 11 13 #define ED25519_OID_TOTAL_LEN 5 14 #define Ed25519_PRIVATE_KEYLEN 32 15 #define Ed25519_PUBLIC_KEYLEN 32 16 #define Ed25519_SIGN_LEN 64 17 18 #define X25519_PUBLIC_KEYLEN 32 19 20 struct ECMethodStr { 21 ECCurveName name; 22 SECStatus (*pt_mul)(SECItem *result, SECItem *scalar, SECItem *point); 23 SECStatus (*pt_validate)(const SECItem *point); 24 SECStatus (*scalar_validate)(const SECItem *scalar); 25 SECStatus (*sign_digest)(ECPrivateKey *key, SECItem *signature, const SECItem *digest, const unsigned char *kb, const unsigned int kblen); 26 SECStatus (*verify_digest)(ECPublicKey *key, const SECItem *signature, const SECItem *digest); 27 }; 28 typedef struct ECMethodStr ECMethod; 29 30 #endif /* __ec_h_ */