Implementation notes: amd64, colossus5, crypto_dh/claus

Computer: colossus5
Architecture: amd64
CPU ID: AuthenticAMD-00800f12-178bfbff
SUPERCOP version: 20210125
Operation: crypto_dh
Primitive: claus
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
53451001275 0 021275 912 1600T:opensslnewgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
53466001798 0 023099 920 1600T:opensslnewgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
53522001420 0 023155 920 1600T:opensslnewgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
53675001420 0 025235 920 1600T:opensslnewgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
61924002798 16 2241588609 144199 11320T:cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
62043402759 16 2241585969 144199 11320T:cryptoppg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
62139002798 16 2241586529 144199 11320T:cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125
62165602043 16 2241584201 144191 11288T:cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2021031020210125

Compiler output

Implementation: T:gmp
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: crypto_dh_claus.a(keypair.o): In function `crypto_dh_claus_gmp_timingleaks_keypair':
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_import'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_set_str'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_set_ui'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_sizeinbase'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_export'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_export'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: crypto_dh_claus.a(keypair.o):keypair.cpp:(.text+0x...): more undefined references to `__gmpz_clear' follow
try.cpp: crypto_dh_claus.a(sharedsecret.o): In function `crypto_dh_claus_gmp_timingleaks':
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_import'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_import'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp

Compiler output

Implementation: T:gmp
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: crypto_dh_claus.a(keypair.o): In function `crypto_dh_claus_gmp_timingleaks_keypair':
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_import'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_set_str'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_set_ui'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_powm'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_sizeinbase'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_export'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_export'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: keypair.cpp:(.text+0x...): undefined reference to `__gmpz_clear'
try.cpp: crypto_dh_claus.a(sharedsecret.o): In function `crypto_dh_claus_gmp_timingleaks':
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: sharedsecret.cpp:(.text+0x...): undefined reference to `__gmpz_init'
try.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:gmp

Compiler output

Implementation: T:ntl
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `base_mul(unsigned long*, unsigned long const*, long, unsigned long const*, long)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mul_1'
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `redc(_ntl_gbigint_body*, _ntl_gbigint_body*, long, unsigned long, _ntl_gbigint_body*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_rem_struct_basic::eval(long*, _ntl_gbigint_body*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mod_1'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_reduce_struct_montgomery::eval(_ntl_gbigint_body**, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_sub_n'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_gsmul(_ntl_gbigint_body*, long, _ntl_gbigint_body**) [clone .part.8]':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mul_1'
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_lshift'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_crt_struct_basic::eval(_ntl_gbigint_body**, long const*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_addmul_1'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `gmod_simple(_ntl_gbigint_body*, _ntl_gbigint_body*, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_tdiv_qr'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_rem_struct_fast::eval(long*, _ntl_gbigint_body*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mod_1'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_rem_struct_medium::eval(long*, _ntl_gbigint_body*, _ntl_tmp_vec*)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_mod_1'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_grshift(_ntl_gbigint_body*, long, _ntl_gbigint_body**)':
try.cpp: lip.cpp:(.text+0x...): undefined reference to `__gmpn_rshift'
try.cpp: /home/djb/supercop-20210125/supercop-data/colossus5/amd64/lib/libntl.a(lip.o): In function `_ntl_glshift(_ntl_gbigint_body*, long, _ntl_gbigint_body**)':
try.cpp: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ntl

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
keypair.c: keypair.c: In function 'crypto_dh_claus_openssl_timingleaks_keypair':
keypair.c: keypair.c:25:5: error: dereferencing pointer to incomplete type 'DH {aka struct dh_st}'
keypair.c: dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: ^~

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