Macros | Typedefs | Functions | Variables
p256.c File Reference
#include <openssl/base.h>
#include <openssl/bn.h>
#include <openssl/ec.h>
#include <openssl/err.h>
#include <openssl/mem.h>
#include <openssl/type_check.h>
#include <assert.h>
#include <string.h>
#include "../../internal.h"
#include "../delocate.h"
#include "./internal.h"
#include "../../../third_party/fiat/p256_32.h"
#include "./p256_table.h"
Include dependency graph for p256.c:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define FIAT_P256_NLIMBS   8
 
#define P256_WSIZE_PUBLIC   4
 

Typedefs

typedef uint32_t fiat_p256_felem[FIAT_P256_NLIMBS]
 
typedef uint32_t fiat_p256_limb_t
 

Functions

 DEFINE_METHOD_FUNCTION (EC_METHOD, EC_GFp_nistp256_method)
 
static void ec_GFp_nistp256_add (const EC_GROUP *group, EC_RAW_POINT *r, const EC_RAW_POINT *a, const EC_RAW_POINT *b)
 
static int ec_GFp_nistp256_cmp_x_coordinate (const EC_GROUP *group, const EC_RAW_POINT *p, const EC_SCALAR *r)
 
static void ec_GFp_nistp256_dbl (const EC_GROUP *group, EC_RAW_POINT *r, const EC_RAW_POINT *a)
 
static int ec_GFp_nistp256_point_get_affine_coordinates (const EC_GROUP *group, const EC_RAW_POINT *point, EC_FELEM *x_out, EC_FELEM *y_out)
 
static void ec_GFp_nistp256_point_mul (const EC_GROUP *group, EC_RAW_POINT *r, const EC_RAW_POINT *p, const EC_SCALAR *scalar)
 
static void ec_GFp_nistp256_point_mul_base (const EC_GROUP *group, EC_RAW_POINT *r, const EC_SCALAR *scalar)
 
static void ec_GFp_nistp256_point_mul_public (const EC_GROUP *group, EC_RAW_POINT *r, const EC_SCALAR *g_scalar, const EC_RAW_POINT *p, const EC_SCALAR *p_scalar)
 
static void fiat_p256_cmovznz (fiat_p256_limb_t out[FIAT_P256_NLIMBS], fiat_p256_limb_t t, const fiat_p256_limb_t z[FIAT_P256_NLIMBS], const fiat_p256_limb_t nz[FIAT_P256_NLIMBS])
 
static void fiat_p256_copy (fiat_p256_limb_t out[FIAT_P256_NLIMBS], const fiat_p256_limb_t in1[FIAT_P256_NLIMBS])
 
static void fiat_p256_from_generic (fiat_p256_felem out, const EC_FELEM *in)
 
static crypto_word_t fiat_p256_get_bit (const uint8_t *in, int i)
 
static void fiat_p256_inv_square (fiat_p256_felem out, const fiat_p256_felem in)
 
static fiat_p256_limb_t fiat_p256_nz (const fiat_p256_limb_t in1[FIAT_P256_NLIMBS])
 
static void fiat_p256_point_add (fiat_p256_felem x3, fiat_p256_felem y3, fiat_p256_felem z3, const fiat_p256_felem x1, const fiat_p256_felem y1, const fiat_p256_felem z1, const int mixed, const fiat_p256_felem x2, const fiat_p256_felem y2, const fiat_p256_felem z2)
 
static void fiat_p256_point_double (fiat_p256_felem x_out, fiat_p256_felem y_out, fiat_p256_felem z_out, const fiat_p256_felem x_in, const fiat_p256_felem y_in, const fiat_p256_felem z_in)
 
static void fiat_p256_select_point (const fiat_p256_limb_t idx, size_t size, const fiat_p256_felem pre_comp[][3], fiat_p256_felem out[3])
 
static void fiat_p256_select_point_affine (const fiat_p256_limb_t idx, size_t size, const fiat_p256_felem pre_comp[][2], fiat_p256_felem out[3])
 
static void fiat_p256_to_generic (EC_FELEM *out, const fiat_p256_felem in)
 

Variables

static const fiat_p256_felem fiat_p256_one
 

Macro Definition Documentation

◆ FIAT_P256_NLIMBS

#define FIAT_P256_NLIMBS   8

Definition at line 53 of file p256.c.

◆ P256_WSIZE_PUBLIC

#define P256_WSIZE_PUBLIC   4

Typedef Documentation

◆ fiat_p256_felem

typedef uint32_t fiat_p256_felem[FIAT_P256_NLIMBS]

Definition at line 55 of file p256.c.

◆ fiat_p256_limb_t

Definition at line 54 of file p256.c.

Function Documentation

◆ DEFINE_METHOD_FUNCTION()

DEFINE_METHOD_FUNCTION ( EC_METHOD  ,
EC_GFp_nistp256_method   
)

Definition at line 719 of file p256.c.

◆ ec_GFp_nistp256_add()

static void ec_GFp_nistp256_add ( const EC_GROUP group,
EC_RAW_POINT r,
const EC_RAW_POINT a,
const EC_RAW_POINT b 
)
static

Definition at line 438 of file p256.c.

◆ ec_GFp_nistp256_cmp_x_coordinate()

static int ec_GFp_nistp256_cmp_x_coordinate ( const EC_GROUP group,
const EC_RAW_POINT p,
const EC_SCALAR r 
)
static

Definition at line 673 of file p256.c.

◆ ec_GFp_nistp256_dbl()

static void ec_GFp_nistp256_dbl ( const EC_GROUP group,
EC_RAW_POINT r,
const EC_RAW_POINT a 
)
static

Definition at line 454 of file p256.c.

◆ ec_GFp_nistp256_point_get_affine_coordinates()

static int ec_GFp_nistp256_point_get_affine_coordinates ( const EC_GROUP group,
const EC_RAW_POINT point,
EC_FELEM x_out,
EC_FELEM y_out 
)
static

Definition at line 407 of file p256.c.

◆ ec_GFp_nistp256_point_mul()

static void ec_GFp_nistp256_point_mul ( const EC_GROUP group,
EC_RAW_POINT r,
const EC_RAW_POINT p,
const EC_SCALAR scalar 
)
static

Definition at line 466 of file p256.c.

◆ ec_GFp_nistp256_point_mul_base()

static void ec_GFp_nistp256_point_mul_base ( const EC_GROUP group,
EC_RAW_POINT r,
const EC_SCALAR scalar 
)
static

Definition at line 533 of file p256.c.

◆ ec_GFp_nistp256_point_mul_public()

static void ec_GFp_nistp256_point_mul_public ( const EC_GROUP group,
EC_RAW_POINT r,
const EC_SCALAR g_scalar,
const EC_RAW_POINT p,
const EC_SCALAR p_scalar 
)
static

Definition at line 581 of file p256.c.

◆ fiat_p256_cmovznz()

static void fiat_p256_cmovznz ( fiat_p256_limb_t  out[FIAT_P256_NLIMBS],
fiat_p256_limb_t  t,
const fiat_p256_limb_t  z[FIAT_P256_NLIMBS],
const fiat_p256_limb_t  nz[FIAT_P256_NLIMBS] 
)
static

Definition at line 75 of file p256.c.

◆ fiat_p256_copy()

static void fiat_p256_copy ( fiat_p256_limb_t  out[FIAT_P256_NLIMBS],
const fiat_p256_limb_t  in1[FIAT_P256_NLIMBS] 
)
static

Definition at line 68 of file p256.c.

◆ fiat_p256_from_generic()

static void fiat_p256_from_generic ( fiat_p256_felem  out,
const EC_FELEM in 
)
static

Definition at line 82 of file p256.c.

◆ fiat_p256_get_bit()

static crypto_word_t fiat_p256_get_bit ( const uint8_t in,
int  i 
)
static

Definition at line 396 of file p256.c.

◆ fiat_p256_inv_square()

static void fiat_p256_inv_square ( fiat_p256_felem  out,
const fiat_p256_felem  in 
)
static

Definition at line 101 of file p256.c.

◆ fiat_p256_nz()

static fiat_p256_limb_t fiat_p256_nz ( const fiat_p256_limb_t  in1[FIAT_P256_NLIMBS])
static

Definition at line 61 of file p256.c.

◆ fiat_p256_point_add()

static void fiat_p256_point_add ( fiat_p256_felem  x3,
fiat_p256_felem  y3,
fiat_p256_felem  z3,
const fiat_p256_felem  x1,
const fiat_p256_felem  y1,
const fiat_p256_felem  z1,
const int  mixed,
const fiat_p256_felem  x2,
const fiat_p256_felem  y2,
const fiat_p256_felem  z2 
)
static

Definition at line 249 of file p256.c.

◆ fiat_p256_point_double()

static void fiat_p256_point_double ( fiat_p256_felem  x_out,
fiat_p256_felem  y_out,
fiat_p256_felem  z_out,
const fiat_p256_felem  x_in,
const fiat_p256_felem  y_in,
const fiat_p256_felem  z_in 
)
static

Definition at line 192 of file p256.c.

◆ fiat_p256_select_point()

static void fiat_p256_select_point ( const fiat_p256_limb_t  idx,
size_t  size,
const fiat_p256_felem  pre_comp[][3],
fiat_p256_felem  out[3] 
)
static

Definition at line 383 of file p256.c.

◆ fiat_p256_select_point_affine()

static void fiat_p256_select_point_affine ( const fiat_p256_limb_t  idx,
size_t  size,
const fiat_p256_felem  pre_comp[][2],
fiat_p256_felem  out[3] 
)
static

Definition at line 369 of file p256.c.

◆ fiat_p256_to_generic()

static void fiat_p256_to_generic ( EC_FELEM out,
const fiat_p256_felem  in 
)
static

Definition at line 86 of file p256.c.

Variable Documentation

◆ fiat_p256_one

const fiat_p256_felem fiat_p256_one
static
Initial value:
= {
0x1, 0x0, 0x0, 0xffffffff, 0xffffffff, 0xffffffff, 0xfffffffe, 0x0}

Definition at line 56 of file p256.c.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:25