CRS
Isogeny-based post-quantum Diffie-Hellman protocol.
memory.h
Go to the documentation of this file.
1
2#ifndef _MEMORY_H_
3#define _MEMORY_H_
4
5#include <string.h>
6
7#include <gmp.h>
8#include <flint/fmpz.h>
9#include <flint/fq.h>
10
11#include "models.h"
12
13
14/*********************************************
15 Short Weierstrass curves memory management
16*********************************************/
17void SW_curve_init(SW_curve_t *, const fq_ctx_t *);
18void SW_curve_set(SW_curve_t *, const fq_ctx_t *, const fq_t, const fq_t);
19void SW_curve_set_si(SW_curve_t *, const fq_ctx_t *, const slong, const slong);
20void SW_curve_set_ui(SW_curve_t *, const fq_ctx_t *, const ulong, const ulong);
21int SW_curve_set_str(SW_curve_t *, const fq_ctx_t *, const char *, const char *, int);
23
24
25/*********************************************
26 Short Weierstrass points memory management
27*********************************************/
29void SW_point_set(SW_point_t *, const fq_t, const fq_t, const fq_t, SW_curve_t *);
30void SW_point_set_si(SW_point_t *, const slong, const slong, const slong, SW_curve_t *);
31void SW_point_set_ui(SW_point_t *, const ulong, const ulong, const ulong, SW_curve_t *);
33
34
35/**************************************
36 Montgomery curves memory management
37**************************************/
38void MG_curve_init(MG_curve_t *, const fq_ctx_t *);
39void MG_curve_set(MG_curve_t *, const fq_ctx_t *, const fq_t, const fq_t); // WRONG SYNTAX
40void MG_curve_set_(MG_curve_t *, MG_curve_t *); // USE THIS
41void MG_curve_set_si(MG_curve_t *, const fq_ctx_t *, const slong, const slong);
42int MG_curve_set_str(MG_curve_t *, const fq_ctx_t *, const char *, const char *, int);
44
45
46/*********************************************
47 Montgomery points memory management
48*********************************************/
50
51void MG_point_set(MG_point_t *, const fq_t, const fq_t, MG_curve_t *);
53void MG_point_set_si(MG_point_t *, const slong, const slong, MG_curve_t *);
54void MG_point_set_ui(MG_point_t *, const ulong, const ulong, MG_curve_t *);
55void MG_point_set_fmpz(MG_point_t *, const fmpz_t, const fmpz_t, MG_curve_t *);
56void MG_point_set_str(MG_point_t *, const char *, const char *, MG_curve_t *);
58
60
61
62/**************************************
63 Tate-normal curves memory management
64**************************************/
65void TN_curve_init(TN_curve_t *, fmpz_t, const fq_ctx_t *);
66void TN_curve_set(TN_curve_t *, const fq_t, const fq_t, fmpz_t, const fq_ctx_t *);
68void TN_curve_set_si(TN_curve_t *, const slong, const slong, const slong, const fq_ctx_t *);
69int TN_curve_set_str(TN_curve_t *, const char *, const char *, const char *, int, const fq_ctx_t *);
71
72#endif
73
void MG_point_set_si(MG_point_t *, const slong, const slong, MG_curve_t *)
Definition: memory.c:361
void MG_point_set_ui(MG_point_t *, const ulong, const ulong, MG_curve_t *)
Definition: memory.c:381
void MG_curve_init(MG_curve_t *, const fq_ctx_t *)
Definition: memory.c:206
void TN_curve_set(TN_curve_t *, const fq_t, const fq_t, fmpz_t, const fq_ctx_t *)
Definition: memory.c:474
void MG_curve_set(MG_curve_t *, const fq_ctx_t *, const fq_t, const fq_t)
Definition: memory.c:229
void SW_point_clear(SW_point_t *)
Definition: memory.c:190
int TN_curve_set_str(TN_curve_t *, const char *, const char *, const char *, int, const fq_ctx_t *)
Definition: memory.c:545
void TN_curve_set_si(TN_curve_t *, const slong, const slong, const slong, const fq_ctx_t *)
Definition: memory.c:497
void SW_curve_init(SW_curve_t *, const fq_ctx_t *)
Definition: memory.c:12
void MG_point_set_fmpz(MG_point_t *, const fmpz_t, const fmpz_t, MG_curve_t *)
Definition: memory.c:401
void TN_curve_clear(TN_curve_t *)
Definition: memory.c:581
void TN_curve_init(TN_curve_t *, fmpz_t, const fq_ctx_t *)
Definition: memory.c:463
int SW_curve_set_str(SW_curve_t *, const fq_ctx_t *, const char *, const char *, int)
Definition: memory.c:71
void SW_curve_clear(SW_curve_t *)
Definition: memory.c:103
void SW_point_set_si(SW_point_t *, const slong, const slong, const slong, SW_curve_t *)
Definition: memory.c:145
void SW_point_set_ui(SW_point_t *, const ulong, const ulong, const ulong, SW_curve_t *)
Definition: memory.c:168
void TN_curve_set_(TN_curve_t *, TN_curve_t *)
Definition: memory.c:485
void SW_point_init(SW_point_t *, SW_curve_t *)
Definition: memory.c:118
void MG_point_set_(MG_point_t *, MG_point_t *)
Definition: memory.c:351
void SW_curve_set_si(SW_curve_t *, const fq_ctx_t *, const slong, const slong)
Definition: memory.c:33
void MG_curve_set_(MG_curve_t *, MG_curve_t *)
Definition: memory.c:218
void MG_point_set(MG_point_t *, const fq_t, const fq_t, MG_curve_t *)
Definition: memory.c:340
void SW_point_set(SW_point_t *, const fq_t, const fq_t, const fq_t, SW_curve_t *)
Definition: memory.c:132
void MG_curve_set_si(MG_curve_t *, const fq_ctx_t *, const slong, const slong)
Definition: memory.c:240
void MG_point_clear(MG_point_t *)
Definition: memory.c:449
void MG_point_init(MG_point_t *, MG_curve_t *)
Definition: memory.c:327
void MG_point_set_infty(MG_point_t *)
Definition: memory.c:440
void MG_curve_clear(MG_curve_t *)
Definition: memory.c:312
int MG_curve_set_str(MG_curve_t *, const fq_ctx_t *, const char *, const char *, int)
Definition: memory.c:280
void MG_point_set_str(MG_point_t *, const char *, const char *, MG_curve_t *)
Definition: memory.c:421
void SW_curve_set(SW_curve_t *, const fq_ctx_t *, const fq_t, const fq_t)
Definition: memory.c:22
Definition: models.h:34
Definition: models.h:43
Definition: models.h:16
Definition: models.h:25
Definition: models.h:52