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)   SECSIDH_CTIDH##x##_##y
 
#define CEVALUATOR(x, y)   CPASTER(x, y)
 
#define CONSTNAMESPACE(name)   CEVALUATOR(BITS, 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)   secsidh_CTIDH##x##_##y
 
#define FEVALUATOR(x, y)   FPASTER(x, y)
 
#define FNAMESPACE(name)   FEVALUATOR(BITS, name)
 
#define keygen   FNAMESPACE(keygen)
 
#define derive   FNAMESPACE(derive)
 

Functions

int main (void)
 

Macro Definition Documentation

◆ CEVALUATOR

#define CEVALUATOR (   x,
 
)    CPASTER(x, y)

Definition at line 22 of file checkct.c.

◆ CONSTNAMESPACE

#define CONSTNAMESPACE (   name)    CEVALUATOR(BITS, name)

Definition at line 23 of file checkct.c.

◆ CPASTER

#define CPASTER (   x,
 
)    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.

◆ FEVALUATOR

#define FEVALUATOR (   x,
 
)    FPASTER(x, y)

Definition at line 33 of file checkct.c.

◆ FNAMESPACE

#define FNAMESPACE (   name)    FEVALUATOR(BITS, name)

Definition at line 34 of file checkct.c.

◆ FPASTER

#define FPASTER (   x,
 
)    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.

◆ PK_SIZE

#define PK_SIZE   CONSTNAMESPACE(PK_SIZE)

Definition at line 25 of file checkct.c.

◆ pk_size

#define pk_size   FNAMESPACE(pk_size)

Definition at line 28 of file checkct.c.

◆ SK_SIZE

#define SK_SIZE   CONSTNAMESPACE(SK_SIZE)

Definition at line 24 of file checkct.c.

◆ sk_size

#define sk_size   FNAMESPACE(sk_size)

Definition at line 29 of file checkct.c.

◆ SS_SIZE

#define SS_SIZE   CONSTNAMESPACE(SS_SIZE)

Definition at line 26 of file checkct.c.

◆ ss_size

#define ss_size   FNAMESPACE(ss_size)

Definition at line 30 of file checkct.c.

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");
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
for i
f a
Definition to_model.m:12

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

Here is the call graph for this function: