Implementation notes: amd64, bitvise, crypto_dh/gls1271

Computer: bitvise
Architecture: amd64
CPU ID: GenuineIntel-000906ea-bfebfbff
SUPERCOP version: 20190910
Operation: crypto_dh
Primitive: gls1271
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
51363560414 0 8080598 784 1736ref4gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
51998290530 0 80114022 784 1736ref4gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910
73895058146 0 8078166 784 1736ref4gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019091420190910

Compiler output

Implementation: ref4
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gls1271.c: gls1271.c:385:2: warning: implicit declaration of function 'ecn2_brick_init' is invalid in C99 [-Wimplicit-function-declaration]
gls1271.c: ecn2_brick_init(&binst,prom,A,B,p,6,128);
gls1271.c: ^
gls1271.c: gls1271.c:391:5: warning: implicit declaration of function 'randombytes' is invalid in C99 [-Wimplicit-function-declaration]
gls1271.c: randombytes(sk,32);
gls1271.c: ^
gls1271.c: gls1271.c:395:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: bytes_to_big(mip,16,sk,a[0]);
gls1271.c: ^~
gls1271.c: ./miracl.h:842:50: note: passing argument to parameter here
gls1271.c: extern void bytes_to_big(_MIPT_ int,const char *,big);
gls1271.c: ^
gls1271.c: gls1271.c:396:22: warning: passing 'unsigned char *' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: bytes_to_big(mip,16,&sk[16],a[1]);
gls1271.c: ^~~~~~~
gls1271.c: ./miracl.h:842:50: note: passing argument to parameter here
gls1271.c: extern void bytes_to_big(_MIPT_ int,const char *,big);
gls1271.c: ^
gls1271.c: gls1271.c:400:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: big_to_bytes(mip,16,x.a,pk,TRUE);
gls1271.c: ^~
gls1271.c: ./miracl.h:843:48: note: passing argument to parameter here
gls1271.c: extern int big_to_bytes(_MIPT_ int,big,char *,BOOL);
gls1271.c: ^
gls1271.c: gls1271.c:401:29: warning: passing 'unsigned char *' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign]
gls1271.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref4
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref4
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref4
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref4

Compiler output

Implementation: ref4
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
gls1271.c: gls1271.c: In function 'crypto_dh_gls1271_ref4_keypair':
gls1271.c: gls1271.c:385:2: warning: implicit declaration of function 'ecn2_brick_init'; did you mean 'ebrick_init'? [-Wimplicit-function-declaration]
gls1271.c: ecn2_brick_init(&binst,prom,A,B,p,6,128);
gls1271.c: ^~~~~~~~~~~~~~~
gls1271.c: ebrick_init
gls1271.c: gls1271.c:391:5: warning: implicit declaration of function 'randombytes'; did you mean 'big_to_bytes'? [-Wimplicit-function-declaration]
gls1271.c: randombytes(sk,32);
gls1271.c: ^~~~~~~~~~~
gls1271.c: big_to_bytes
mrecn2.c: mrecn2.c: In function 'zzn2_div2_i':
mrecn2.c: mrecn2.c:20:2: warning: implicit declaration of function 'moddiv2'; did you mean 'muldiv'? [-Wimplicit-function-declaration]
mrecn2.c: moddiv2(w->a->w);
mrecn2.c: ^~~~~~~
mrecn2.c: muldiv
mrecn2.c: mrecn2.c: In function 'zzn2_tim2_i':
mrecn2.c: mrecn2.c:32:2: warning: implicit declaration of function 'modtim2'; did you mean 'mkdtemp'? [-Wimplicit-function-declaration]
mrecn2.c: modtim2(w->a->w);
mrecn2.c: ^~~~~~~
mrecn2.c: mkdtemp
mrecn2.c: mrecn2.c: In function 'zzn2_tim3_i':
mrecn2.c: mrecn2.c:44:2: warning: implicit declaration of function 'modtim3'; did you mean 'mkdtemp'? [-Wimplicit-function-declaration]
mrecn2.c: modtim3(w->a->w);
mrecn2.c: ^~~~~~~
mrecn2.c: mkdtemp
mrecn2.c: mrecn2.c: In function 'zzn2_add_i':
mrecn2.c: mrecn2.c:70:5: warning: implicit declaration of function 'modadd'; did you mean 'mad'? [-Wimplicit-function-declaration]
mrecn2.c: modadd(x->a->w,y->a->w,w->a->w);
mrecn2.c: ^~~~~~
mrecn2.c: mad
mrecn2.c: mrecn2.c: In function 'zzn2_sub_i':
mrecn2.c: mrecn2.c:81:5: warning: implicit declaration of function 'modsub'; did you mean 'mr_psub'? [-Wimplicit-function-declaration]
mrecn2.c: modsub(x->a->w,y->a->w,w->a->w);
mrecn2.c: ^~~~~~
mrecn2.c: mr_psub
mrecn2.c: ...
mrmonty.c: mrmonty.c: In function 'nres_negate':
mrmonty.c: mrmonty.c:752:2: warning: implicit declaration of function 'modneg' [-Wimplicit-function-declaration]
mrmonty.c: modneg(w->w);
mrmonty.c: ^~~~~~
mrmonty.c: mrmonty.c: In function 'nres_modadd':
mrmonty.c: mrmonty.c:901:2: warning: implicit declaration of function 'modadd'; did you mean 'mad'? [-Wimplicit-function-declaration]
mrmonty.c: modadd(x->w,y->w,w->w);
mrmonty.c: ^~~~~~
mrmonty.c: mad
mrmonty.c: mrmonty.c: In function 'nres_modsub':
mrmonty.c: mrmonty.c:935:2: warning: implicit declaration of function 'modsub'; did you mean 'mr_psub'? [-Wimplicit-function-declaration]
mrmonty.c: modsub(x->w,y->w,w->w);
mrmonty.c: ^~~~~~
mrmonty.c: mr_psub
mrmonty.c: mrmonty.c: In function 'nres_modmult':
mrmonty.c: mrmonty.c:1075:16: warning: implicit declaration of function 'modsqr'; did you mean 'cotstr'? [-Wimplicit-function-declaration]
mrmonty.c: if (x==y) modsqr(x->w,w->w);
mrmonty.c: ^~~~~~
mrmonty.c: cotstr
mrmonty.c: mrmonty.c:1076:16: warning: implicit declaration of function 'modmult'; did you mean 'modmult2'? [-Wimplicit-function-declaration]
mrmonty.c: else modmult(x->w,y->w,w->w);
mrmonty.c: ^~~~~~~
mrmonty.c: modmult2
mrzzn2.c: mrzzn2.c: In function 'zzn2_sub':
mrzzn2.c: mrzzn2.c:37:5: warning: implicit declaration of function 'modsub'; did you mean 'mr_psub'? [-Wimplicit-function-declaration]
mrzzn2.c: modsub(x->a->w,y->a->w,w->a->w);
mrzzn2.c: ^~~~~~
mrzzn2.c: mr_psub
mrzzn2.c: mrzzn2.c: In function 'zzn2_add':
mrzzn2.c: mrzzn2.c:59:5: warning: implicit declaration of function 'modadd'; did you mean 'mad'? [-Wimplicit-function-declaration]
mrzzn2.c: modadd(x->a->w,y->a->w,w->a->w);
mrzzn2.c: ^~~~~~
mrzzn2.c: mad
mrzzn2.c: mrzzn2.c: In function 'zzn2_negate':
mrzzn2.c: mrzzn2.c:174:2: warning: implicit declaration of function 'modneg' [-Wimplicit-function-declaration]
mrzzn2.c: modneg(w->a->w);
mrzzn2.c: ^~~~~~
mrzzn2.c: mrzzn2.c: In function 'zzn2_div2':
mrzzn2.c: mrzzn2.c:319:2: warning: implicit declaration of function 'moddiv2'; did you mean 'muldiv'? [-Wimplicit-function-declaration]
mrzzn2.c: moddiv2(w->a->w);
mrzzn2.c: ^~~~~~~
mrzzn2.c: muldiv
mrzzn2.c: mrzzn2.c: In function 'zzn2_sqr':
mrzzn2.c: mrzzn2.c:514:2: warning: implicit declaration of function 'modmult'; did you mean 'modmult2'? [-Wimplicit-function-declaration]
mrzzn2.c: modmult(x->a->w,x->b->w,w->b->w);
mrzzn2.c: ^~~~~~~
mrzzn2.c: modmult2

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4

Compiler output

Implementation: ref4
Security model: unknown
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
gls1271.c: gls1271.c: In function 'crypto_dh_gls1271_ref4_keypair':
gls1271.c: gls1271.c:385:2: warning: implicit declaration of function 'ecn2_brick_init'; did you mean 'ebrick_init'? [-Wimplicit-function-declaration]
gls1271.c: ecn2_brick_init(&binst,prom,A,B,p,6,128);
gls1271.c: ^~~~~~~~~~~~~~~
gls1271.c: ebrick_init
gls1271.c: gls1271.c:391:5: warning: implicit declaration of function 'randombytes'; did you mean 'big_to_bytes'? [-Wimplicit-function-declaration]
gls1271.c: randombytes(sk,32);
gls1271.c: ^~~~~~~~~~~
gls1271.c: big_to_bytes
mrecn2.c: mrecn2.c: In function 'zzn2_div2_i':
mrecn2.c: mrecn2.c:20:2: warning: implicit declaration of function 'moddiv2'; did you mean 'muldiv'? [-Wimplicit-function-declaration]
mrecn2.c: moddiv2(w->a->w);
mrecn2.c: ^~~~~~~
mrecn2.c: muldiv
mrecn2.c: mrecn2.c: In function 'zzn2_tim2_i':
mrecn2.c: mrecn2.c:32:2: warning: implicit declaration of function 'modtim2'; did you mean 'mkdtemp'? [-Wimplicit-function-declaration]
mrecn2.c: modtim2(w->a->w);
mrecn2.c: ^~~~~~~
mrecn2.c: mkdtemp
mrecn2.c: mrecn2.c: In function 'zzn2_tim3_i':
mrecn2.c: mrecn2.c:44:2: warning: implicit declaration of function 'modtim3'; did you mean 'mkdtemp'? [-Wimplicit-function-declaration]
mrecn2.c: modtim3(w->a->w);
mrecn2.c: ^~~~~~~
mrecn2.c: mkdtemp
mrecn2.c: mrecn2.c: In function 'zzn2_add_i':
mrecn2.c: mrecn2.c:70:5: warning: implicit declaration of function 'modadd'; did you mean 'mad'? [-Wimplicit-function-declaration]
mrecn2.c: modadd(x->a->w,y->a->w,w->a->w);
mrecn2.c: ^~~~~~
mrecn2.c: mad
mrecn2.c: mrecn2.c: In function 'zzn2_sub_i':
mrecn2.c: mrecn2.c:81:5: warning: implicit declaration of function 'modsub'; did you mean 'mr_psub'? [-Wimplicit-function-declaration]
mrecn2.c: modsub(x->a->w,y->a->w,w->a->w);
mrecn2.c: ^~~~~~
mrecn2.c: mr_psub
mrecn2.c: ...
mrmonty.c: mrmonty.c: In function 'nres_negate':
mrmonty.c: mrmonty.c:752:2: warning: implicit declaration of function 'modneg' [-Wimplicit-function-declaration]
mrmonty.c: modneg(w->w);
mrmonty.c: ^~~~~~
mrmonty.c: mrmonty.c: In function 'nres_modadd':
mrmonty.c: mrmonty.c:901:2: warning: implicit declaration of function 'modadd'; did you mean 'mad'? [-Wimplicit-function-declaration]
mrmonty.c: modadd(x->w,y->w,w->w);
mrmonty.c: ^~~~~~
mrmonty.c: mad
mrmonty.c: mrmonty.c: In function 'nres_modsub':
mrmonty.c: mrmonty.c:935:2: warning: implicit declaration of function 'modsub'; did you mean 'mr_psub'? [-Wimplicit-function-declaration]
mrmonty.c: modsub(x->w,y->w,w->w);
mrmonty.c: ^~~~~~
mrmonty.c: mr_psub
mrmonty.c: mrmonty.c: In function 'nres_modmult':
mrmonty.c: mrmonty.c:1075:16: warning: implicit declaration of function 'modsqr'; did you mean 'cotstr'? [-Wimplicit-function-declaration]
mrmonty.c: if (x==y) modsqr(x->w,w->w);
mrmonty.c: ^~~~~~
mrmonty.c: cotstr
mrmonty.c: mrmonty.c:1076:16: warning: implicit declaration of function 'modmult'; did you mean 'modmult2'? [-Wimplicit-function-declaration]
mrmonty.c: else modmult(x->w,y->w,w->w);
mrmonty.c: ^~~~~~~
mrmonty.c: modmult2
mrzzn2.c: mrzzn2.c: In function 'zzn2_sub':
mrzzn2.c: mrzzn2.c:37:5: warning: implicit declaration of function 'modsub'; did you mean 'mr_psub'? [-Wimplicit-function-declaration]
mrzzn2.c: modsub(x->a->w,y->a->w,w->a->w);
mrzzn2.c: ^~~~~~
mrzzn2.c: mr_psub
mrzzn2.c: mrzzn2.c: In function 'zzn2_add':
mrzzn2.c: mrzzn2.c:59:5: warning: implicit declaration of function 'modadd'; did you mean 'mad'? [-Wimplicit-function-declaration]
mrzzn2.c: modadd(x->a->w,y->a->w,w->a->w);
mrzzn2.c: ^~~~~~
mrzzn2.c: mad
mrzzn2.c: mrzzn2.c: In function 'zzn2_negate':
mrzzn2.c: mrzzn2.c:174:2: warning: implicit declaration of function 'modneg' [-Wimplicit-function-declaration]
mrzzn2.c: modneg(w->a->w);
mrzzn2.c: ^~~~~~
mrzzn2.c: mrzzn2.c: In function 'zzn2_div2':
mrzzn2.c: mrzzn2.c:319:2: warning: implicit declaration of function 'moddiv2'; did you mean 'muldiv'? [-Wimplicit-function-declaration]
mrzzn2.c: moddiv2(w->a->w);
mrzzn2.c: ^~~~~~~
mrzzn2.c: muldiv
mrzzn2.c: mrzzn2.c: In function 'zzn2_sqr':
mrzzn2.c: mrzzn2.c:514:2: warning: implicit declaration of function 'modmult'; did you mean 'modmult2'? [-Wimplicit-function-declaration]
mrzzn2.c: modmult(x->a->w,x->b->w,w->b->w);
mrzzn2.c: ^~~~~~~
mrzzn2.c: modmult2
try.c: crypto_dh_gls1271.a(mrecn2.o): In function `ecn2_psi':
try.c: mrecn2.c:(.text+0x...): undefined reference to `zzn2_conj_i'
try.c: mrecn2.c:(.text+0x...): undefined reference to `zzn2_conj_i'
try.c: mrecn2.c:(.text+0x...): undefined reference to `zzn2_conj_i'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4

Namespace violations

Implementation: ref4
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
fp1271.o modadd T
fp1271.o moddblsub T
fp1271.o moddiv2 T
fp1271.o modmult T
fp1271.o modneg T
fp1271.o modpmul T
fp1271.o modsqr T
fp1271.o modsub T
fp1271.o modtim2 T
fp1271.o modtim3 T
fp1271.o modtim4 T
gls1271.o copyrightclaims T
gls1271.o patentclaims T
gls1271.o timingattacks T
mrarth0.o add T
mrarth0.o decr T
mrarth0.o incr T
mrarth0.o mr_padd T
mrarth0.o mr_psub T
mrarth0.o subtract T
mrarth1.o big_to_bytes T
mrarth1.o bytes_to_big T
mrarth1.o hamming T
mrarth1.o mr_jsf T
mrarth1.o mr_pmul T
mrarth1.o mr_sdiv T
mrarth1.o premult T
mrarth1.o remain T
mrarth1.o subdiv T
mrarth1.o subdivisible T
mrarth2.o divide T
mrarth2.o divisible T
mrarth2.o mad T
mrarth2.o multiply T
mrarth2.o normalise T
mrbits.o expb2 T
mrbits.o logb2 T
mrbits.o sftbit T
mrcore.o absol T
mrcore.o convert T
mrcore.o copy T
mrcore.o ecp_memkill T
mrcore.o epoint_init_mem T
mrcore.o epoint_init_mem_variable T
mrcore.o exsign T
mrcore.o igcd T
mrcore.o init_big_from_rom T
mrcore.o init_point_from_rom T
mrcore.o insign T
mrcore.o isqrt T
mrcore.o lgcd T
mrcore.o lsqrt T
mrcore.o memkill T
mrcore.o mirexit T
mrcore.o mirsys T
mrcore.o mirsys_basic T
mrcore.o mirvar_mem T
mrcore.o mirvar_mem_variable T
mrcore.o mr_addbit T
mrcore.o mr_and T
mrcore.o mr_berror T
mrcore.o mr_compare T
mrcore.o mr_lent T
mrcore.o mr_lzero T
mrcore.o mr_naf_window T
mrcore.o mr_notint T
mrcore.o mr_setbase T
mrcore.o mr_shift T
mrcore.o mr_shiftbits T
mrcore.o mr_testbit T
mrcore.o mr_window T
mrcore.o mr_window2 T
mrcore.o negify T
mrcore.o point_at_infinity T
mrcore.o recode T
mrcore.o set_user_function T
mrcore.o sgcd T
mrcore.o size T
mrcore.o uconvert T
mrcore.o zero T
mrecn2.o ecn2_add T
mrecn2.o ecn2_brick_init T
mrecn2.o ecn2_compare T
mrecn2.o ecn2_copy T
mrecn2.o ecn2_get T
mrecn2.o ecn2_getx T
mrecn2.o ecn2_getxy T
mrecn2.o ecn2_getz T
mrecn2.o ecn2_iszero T
mrecn2.o ecn2_mul T
mrecn2.o ecn2_mul2 T
mrecn2.o ecn2_mul2_gls T
mrecn2.o ecn2_mul2_jsf T
mrecn2.o ecn2_mul4_gls_v T
mrecn2.o ecn2_mul_brick_gls T
mrecn2.o ecn2_muln_engine T
mrecn2.o ecn2_multi_norm T
mrecn2.o ecn2_negate T
mrecn2.o ecn2_norm T
mrecn2.o ecn2_precomp T
mrecn2.o ecn2_precomp_gls T
mrecn2.o ecn2_psi T
mrecn2.o ecn2_rhs T
mrecn2.o ecn2_set T
mrecn2.o ecn2_setx T
mrecn2.o ecn2_setxyz T
mrecn2.o ecn2_sub T
mrecn2.o ecn2_zero T
mrecn2.o nres_sqroot T
mrecn2.o zzn2_inv_i T
mrecn2.o zzn2_lzero T
mrecn2.o zzn2_multi_inverse T
mrecn2.o zzn2_sqrt T
mrmonty.o ecurve_init T
mrmonty.o kill_monty T
mrmonty.o nres T
mrmonty.o nres_div2 T
mrmonty.o nres_div3 T
mrmonty.o nres_div5 T
mrmonty.o nres_double_inverse T
mrmonty.o nres_modadd T
mrmonty.o nres_moddiv T
mrmonty.o nres_modmult T
mrmonty.o nres_modsub T
mrmonty.o nres_multi_inverse T
mrmonty.o nres_negate T
mrmonty.o nres_premult T
mrmonty.o prepare_monty T
mrmonty.o redc T
mrmuldv.o muldiv T
mrmuldv.o muldvd T
mrmuldv.o muldvd2 T
mrmuldv.o muldvm T
mrxgcd.o invmodp T
mrxgcd.o xgcd T
mrzzn2.o zzn2_add T
mrzzn2.o zzn2_compare T
mrzzn2.o zzn2_conj T
mrzzn2.o zzn2_copy T
mrzzn2.o zzn2_div2 T
mrzzn2.o zzn2_div3 T
mrzzn2.o zzn2_div5 T
mrzzn2.o zzn2_from_big T
mrzzn2.o zzn2_from_bigs T
mrzzn2.o zzn2_from_int T
mrzzn2.o zzn2_from_ints T
mrzzn2.o zzn2_from_zzn T
mrzzn2.o zzn2_from_zzns T
mrzzn2.o zzn2_imul T
mrzzn2.o zzn2_inv T
mrzzn2.o zzn2_isunity T
mrzzn2.o zzn2_iszero T
mrzzn2.o zzn2_mul T
mrzzn2.o zzn2_negate T
mrzzn2.o zzn2_sadd T
mrzzn2.o zzn2_smul T
mrzzn2.o zzn2_sqr T
mrzzn2.o zzn2_ssub T
mrzzn2.o zzn2_sub T
mrzzn2.o zzn2_timesi T
mrzzn2.o zzn2_txd T
mrzzn2.o zzn2_txx T
mrzzn2.o zzn2_zero T

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref4