Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
cgl_hash.h File Reference
#include "isogeny_walks.h"
Include dependency graph for cgl_hash.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  cgl_hash_2_ctx
struct  cgl_hash_3_ctx

Typedefs

typedef struct cgl_hash_2_ctx cgl_hash_2_ctx
typedef struct cgl_hash_3_ctx cgl_hash_3_ctx

Functions

void cgl_hash_init_2 (cgl_hash_2_ctx *ctx, fp2_t input_A)
void cgl_hash_digest_2 (fp2_t *output, const cgl_hash_2_ctx *ctx, const uint8_t *input_bitstring)
void cgl_hash_init_3 (cgl_hash_3_ctx *ctx, fp2_t input_A, uint8_t choice)
void cgl_hash_digest_3 (fp2_t *output, const cgl_hash_3_ctx *ctx, const uint8_t *input_trit_string)

Typedef Documentation

◆ cgl_hash_2_ctx

typedef struct cgl_hash_2_ctx cgl_hash_2_ctx

◆ cgl_hash_3_ctx

typedef struct cgl_hash_3_ctx cgl_hash_3_ctx

Function Documentation

◆ cgl_hash_digest_2()

void cgl_hash_digest_2 ( fp2_t * output,
const cgl_hash_2_ctx * ctx,
const uint8_t * input_bitstring )

Definition at line 9 of file cgl_hash.c.

9 {
10 fp2_set_to_zero(output);
11
12 isogeny_walks_2(output, ctx->j_, ctx->j0, input_bitstring, BIT_LENGTH_PATH);
13}
void fp2_set_to_zero(fp2_t *output)
Definition fp2.c:54
void isogeny_walks_2(fp2_t *output, fp2_t input_prev, fp2_t input, const uint8_t *input_path, size_t input_length)
#define BIT_LENGTH_PATH
Definition p254.h:14

References BIT_LENGTH_PATH, fp2_set_to_zero(), isogeny_walks_2(), cgl_hash_2_ctx::j0, and cgl_hash_2_ctx::j_.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cgl_hash_digest_3()

void cgl_hash_digest_3 ( fp2_t * output,
const cgl_hash_3_ctx * ctx,
const uint8_t * input_trit_string )

Definition at line 23 of file cgl_hash.c.

23 {
24 fp2_t a1, a3;
25 fp2_set_to_zero(output);
26
27 isogeny_walks_3(&a1, &a3, ctx->a1, ctx->a3, input_trit_string, TRITLENGTH_PATH);
29}
void isogeny_walks_3(fp2_t *output_a1, fp2_t *output_a3, fp2_t input_a1, fp2_t input_a3, const uint8_t *input_path, size_t input_length)
void isogeny_walks_switch_from_model_3(fp2_t *output_j, fp2_t input_a1, fp2_t input_a3)
den a3
#define TRITLENGTH_PATH
Definition p254.h:15
Definition fp2.h:10
g a1
Definition to_model.m:15

References a1, cgl_hash_3_ctx::a1, a3, cgl_hash_3_ctx::a3, fp2_set_to_zero(), isogeny_walks_3(), isogeny_walks_switch_from_model_3(), and TRITLENGTH_PATH.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cgl_hash_init_2()

void cgl_hash_init_2 ( cgl_hash_2_ctx * ctx,
fp2_t input_A )

Definition at line 16 of file cgl_hash.c.

16 {
19}
void isogeny_walks_get_previous_step_2(fp2_t *output_j, fp2_t input_A)
void isogeny_walks_from_montgomery_model_2(fp2_t *output_j, fp2_t input_A)

References isogeny_walks_from_montgomery_model_2(), isogeny_walks_get_previous_step_2(), cgl_hash_2_ctx::j0, and cgl_hash_2_ctx::j_.

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ cgl_hash_init_3()

void cgl_hash_init_3 ( cgl_hash_3_ctx * ctx,
fp2_t input_A,
uint8_t choice )

Definition at line 32 of file cgl_hash.c.

32 {
33 fp2_t xP[4];
34 isogeny_walks_get_points_3(xP, input_A);
35 isogeny_walks_from_montgomery_model_3(&ctx->a1, &ctx->a3, input_A, xP[choice % 4]);
36}
void isogeny_walks_from_montgomery_model_3(fp2_t *output_a1, fp2_t *output_a3, fp2_t input_A, fp2_t input_xP)
void isogeny_walks_get_points_3(fp2_t *output, fp2_t input_A)

References cgl_hash_3_ctx::a1, cgl_hash_3_ctx::a3, isogeny_walks_from_montgomery_model_3(), and isogeny_walks_get_points_3().

Referenced by main().

Here is the call graph for this function:
Here is the caller graph for this function: