Let us walk on the 3-isogeny graph
Loading...
Searching...
No Matches
checkct.c File Reference
#include <time.h>
#include <secsidh/secsidh.h>
#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include "cycle.h"
#include "fp-counters.h"
#include "primes.h"
#include "ctidh.h"
#include "ctidh_api.h"
Include dependency graph for checkct.c:

Go to the source code of this file.

Macros

#define cprintf(...)
#define CPASTER(x, y)
#define CEVALUATOR(x, y)
#define CONSTNAMESPACE(name)
#define SK_SIZE   CONSTNAMESPACE(SK_SIZE)
#define PK_SIZE   CONSTNAMESPACE(PK_SIZE)
#define SS_SIZE   CONSTNAMESPACE(SS_SIZE)
#define pk_size   FNAMESPACE(pk_size)
#define sk_size   FNAMESPACE(sk_size)
#define ss_size   FNAMESPACE(ss_size)
#define FPASTER(x, y)
#define FEVALUATOR(x, y)
#define FNAMESPACE(name)
#define keygen   FNAMESPACE(keygen)
#define derive   FNAMESPACE(derive)

Functions

int main (void)

Macro Definition Documentation

◆ CEVALUATOR

#define CEVALUATOR ( x,
y )
Value:
CPASTER(x, y)
#define CPASTER(x, y)
Definition checkct.c:21

Definition at line 22 of file checkct.c.

◆ CONSTNAMESPACE

#define CONSTNAMESPACE ( name)
Value:
#define CEVALUATOR(x, y)
Definition checkct.c:22
#define BITS
Definition csidh.c:21

Definition at line 23 of file checkct.c.

◆ CPASTER

#define CPASTER ( x,
y )
Value:
SECSIDH_CTIDH##x##_##y

Definition at line 21 of file checkct.c.

◆ cprintf

#define cprintf ( ...)

Definition at line 18 of file checkct.c.

◆ derive

#define derive   FNAMESPACE(derive)

Definition at line 37 of file checkct.c.

Referenced by main().

◆ FEVALUATOR

#define FEVALUATOR ( x,
y )
Value:
FPASTER(x, y)
#define FPASTER(x, y)
Definition checkct.c:32

Definition at line 33 of file checkct.c.

◆ FNAMESPACE

#define FNAMESPACE ( name)
Value:
#define FEVALUATOR(x, y)
Definition checkct.c:33

Definition at line 34 of file checkct.c.

◆ FPASTER

#define FPASTER ( x,
y )
Value:
secsidh_CTIDH##x##_##y

Definition at line 32 of file checkct.c.

◆ keygen

#define keygen   FNAMESPACE(keygen)

Definition at line 36 of file checkct.c.

Referenced by main().

◆ PK_SIZE

#define PK_SIZE   CONSTNAMESPACE(PK_SIZE)

Definition at line 25 of file checkct.c.

Referenced by main(), and main().

◆ pk_size

#define pk_size   FNAMESPACE(pk_size)

Definition at line 28 of file checkct.c.

Referenced by main(), and NSAPI().

◆ SK_SIZE

#define SK_SIZE   CONSTNAMESPACE(SK_SIZE)

Definition at line 24 of file checkct.c.

Referenced by main(), and main().

◆ sk_size

#define sk_size   FNAMESPACE(sk_size)

Definition at line 29 of file checkct.c.

Referenced by main(), and NSAPI().

◆ SS_SIZE

#define SS_SIZE   CONSTNAMESPACE(SS_SIZE)

Definition at line 26 of file checkct.c.

Referenced by main(), and main().

◆ ss_size

#define ss_size   FNAMESPACE(ss_size)

Definition at line 30 of file checkct.c.

Referenced by main(), and NSAPI().

Function Documentation

◆ main()

int main ( void )

Definition at line 52 of file checkct.c.

53{
54
55 printf("\033[0;33m// Key generation\033[0m\n");
56
57 printf("sizeof private key = %lu \n", sizeof(private_key));
58 printf("sizeof public key = %lu \n", sizeof(public_key));
59
60 // ----------
61 // Alice
62 printf("\n\033[0;35m// Alice\033[0m\n");
63 uint8_t a[SK_SIZE] = {0}, A[PK_SIZE] = {0}, ss_a[SS_SIZE] = {0};
64 keygen(A, a);
65
66 // ----------
67 // Bob
68 printf("\n\033[0;34m// Bob\033[0m\n");
69 uint8_t b[SK_SIZE], B[PK_SIZE], ss_b[SS_SIZE];
70 keygen(B, b);
71
72 //------------------------------------------------------
73 // Secret sharing derivation
74 printf("\033[0;33m// Secret sharing generation\033[0m\n");
75
76 // ----------------
77 // Alice
78 printf("\n\033[0;35m// Alice\033[0m\n");
79 assert(derive(ss_a, B, a) == 0);
80
81 printf("\n\033[0;34m// Bob\033[0m\n");
82 assert(derive(ss_b, A, b) == 0);
83
84 // =============================
85 // Verifying same secret sharing
86 assert(dumb_fp_isequal(ss_a, ss_b, SS_SIZE));
87
88 //------------------------------------------------------
89 printf("\n\033[0;32m// Successfully secret sharing computation!\033[0m\n");
90 return 0;
91}
#define SK_SIZE
Definition checkct.c:24
#define PK_SIZE
Definition checkct.c:25
#define derive
Definition checkct.c:37
#define SS_SIZE
Definition checkct.c:26
#define keygen
Definition checkct.c:36
assert(var1 eq var2)
A
Definition tests.py:29
f a
Definition to_model.m:12

References a, assert(), derive, keygen, PK_SIZE, SK_SIZE, and SS_SIZE.

Referenced by AsmAVX2Codegenerator::main(), AsmKaratsubaCodegenerator::main(), AsmKaratsubaRedc::main(), AsmMontRedc::main(), AsmMontRedc32::main(), AsmMontRedcAVX2::main(), AsmMultCodegenerator_noPIC::main(), and AsmMultCodegenerator_PIC::main().

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