tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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_ */