Implementation notes: amd64, hertz, crypto_dh/claus

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240107
Operation: crypto_dh
Primitive: claus
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
47207242035 16 0230738 1068 1832T:gmpg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
47211922243 16 0233034 1076 1864T:gmpg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
47261762243 16 0235002 1076 1928T:gmpg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
47274772212 16 0235855 1124 1832T:gmpclang++-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
47285302262 16 0232869 1116 1832T:gmpclang++-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
47286862212 16 0235727 1124 1832T:gmpclang++-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
47685963617 320 0448964 3068 3688T:ntlclang++-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
47697194136 320 0448255 3060 3720T:ntlg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
47701774136 320 0446223 3060 3688T:ntlg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
47719112775 320 0443659 3004 3656T:ntlg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
47770083537 320 0448788 3068 3688T:ntlclang++-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
47781583014 320 0445653 3060 3688T:ntlclang++-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
49462512275 16 1681767431 144452 11464T:cryptoppclang++-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
4948135? ? ?? ? ?T:cryptoppg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
49539332143 16 1681764485 144444 11464T:cryptoppclang++-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217
49549593026 16 2241765042 144404 11592T:cryptoppg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
49630443026 16 2241767106 144404 11656T:cryptoppg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122020231217
49776822321 16 1681767607 144452 11464T:cryptoppclang++-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122020231217

Compiler output

Implementation: T:cryptopp
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
measure.cpp: /usr/bin/ld: can not read symbols: file truncated
measure.cpp: /usr/bin/ld: .eh_frame/.stab edit: file truncated
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.interp' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.note.gnu.property' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.note.gnu.build-id' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.note.ABI-tag' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.gnu.hash' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.dynsym' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.dynstr' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.gnu.version' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.gnu.version_r' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.rela.dyn' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.rela.plt' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.init' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.plt' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.plt.got' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.text' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.fini' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.rodata' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.eh_frame' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.gcc_except_table' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.init_array' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.fini_array' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.data.rel.ro' not in segment
measure.cpp: /usr/bin/ld: measure: warning: allocated section `.dynamic' not in segment
measure.cpp: ...

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

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keypair.c: keypair.c:19:8: warning: 'DH_new' is deprecated [-Wdeprecated-declarations]
keypair.c: 19 | dh = DH_new();
keypair.c: | ^
keypair.c: /usr/include/openssl/dh.h:203:1: note: 'DH_new' has been explicitly marked deprecated here
keypair.c: 203 | OSSL_DEPRECATEDIN_3_0 DH *DH_new(void);
keypair.c: | ^
keypair.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
keypair.c: 182 | # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
keypair.c: | ^
keypair.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
keypair.c: 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated))
keypair.c: | ^
keypair.c: keypair.c:25:5: error: incomplete definition of type 'struct dh_st'
keypair.c: 25 | dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: | ~~^
keypair.c: /usr/include/openssl/types.h:134:16: note: forward declaration of 'struct dh_st'
keypair.c: 134 | typedef struct dh_st DH;
keypair.c: | ^
keypair.c: keypair.c:25:28: error: incomplete definition of type 'struct dh_st'
keypair.c: 25 | dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: | ~~^
keypair.c: /usr/include/openssl/types.h:134:16: note: forward declaration of 'struct dh_st'
keypair.c: 134 | typedef struct dh_st DH;
keypair.c: | ^
keypair.c: keypair.c:26:5: error: incomplete definition of type 'struct dh_st'
keypair.c: ...

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

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:19:3: warning: 'DH_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c: 19 | dh = DH_new();
keypair.c: | ^~
keypair.c: In file included from keypair.c:3:
keypair.c: /usr/include/openssl/dh.h:203:27: note: declared here
keypair.c: 203 | OSSL_DEPRECATEDIN_3_0 DH *DH_new(void);
keypair.c: | ^~~~~~
keypair.c: keypair.c:25:5: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 25 | dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: | ^~
keypair.c: keypair.c:25:28: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 25 | dh->p = BN_new(); if (!dh->p) goto error;
keypair.c: | ^~
keypair.c: keypair.c:26:5: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 26 | dh->g = BN_new(); if (!dh->g) goto error;
keypair.c: | ^~
keypair.c: keypair.c:26:28: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 26 | dh->g = BN_new(); if (!dh->g) goto error;
keypair.c: | ^~
keypair.c: keypair.c:28:39: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 28 | if (!BN_bin2bn(prime,sizeof prime,dh->p)) goto error;
keypair.c: | ^~
keypair.c: keypair.c:29:22: error: invalid use of incomplete typedef 'DH' {aka 'struct dh_st'}
keypair.c: 29 | if (!BN_set_word(dh->g,2)) goto error;
keypair.c: ...

Number of similar (compiler,implementation) pairs: 3, 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 -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:openssl

Compiler output

Implementation: T:opensslnew
Security model: timingleaks
Compiler: clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keypair.c: keypair.c:32:8: warning: 'DH_new' is deprecated [-Wdeprecated-declarations]
keypair.c: 32 | dh = DH_new(); if (!dh) goto error;
keypair.c: | ^
keypair.c: /usr/include/openssl/dh.h:203:1: note: 'DH_new' has been explicitly marked deprecated here
keypair.c: 203 | OSSL_DEPRECATEDIN_3_0 DH *DH_new(void);
keypair.c: | ^
keypair.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
keypair.c: 182 | # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
keypair.c: | ^
keypair.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
keypair.c: 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated))
keypair.c: | ^
keypair.c: keypair.c:34:8: warning: 'DH_set0_pqg' is deprecated [-Wdeprecated-declarations]
keypair.c: 34 | if (!DH_set0_pqg(dh,p,0,g)) goto error;
keypair.c: | ^
keypair.c: /usr/include/openssl/dh.h:259:1: note: 'DH_set0_pqg' has been explicitly marked deprecated here
keypair.c: 259 | OSSL_DEPRECATEDIN_3_0 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
keypair.c: | ^
keypair.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
keypair.c: 182 | # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
keypair.c: | ^
keypair.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
keypair.c: 62 | # define OSSL_DEPRECATED(since) __attribute__((deprecated))
keypair.c: | ^
keypair.c: keypair.c:37:8: warning: 'DH_generate_key' is deprecated [-Wdeprecated-declarations]
keypair.c: ...

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

Compiler output

Implementation: T:opensslnew
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_opensslnew_timingleaks_keypair':
keypair.c: keypair.c:32:3: warning: 'DH_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c: 32 | dh = DH_new(); if (!dh) goto error;
keypair.c: | ^~
keypair.c: In file included from keypair.c:3:
keypair.c: /usr/include/openssl/dh.h:203:27: note: declared here
keypair.c: 203 | OSSL_DEPRECATEDIN_3_0 DH *DH_new(void);
keypair.c: | ^~~~~~
keypair.c: keypair.c:34:3: warning: 'DH_set0_pqg' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c: 34 | if (!DH_set0_pqg(dh,p,0,g)) goto error;
keypair.c: | ^~
keypair.c: /usr/include/openssl/dh.h:259:27: note: declared here
keypair.c: 259 | OSSL_DEPRECATEDIN_3_0 int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g);
keypair.c: | ^~~~~~~~~~~
keypair.c: keypair.c:37:3: warning: 'DH_generate_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c: 37 | if (!DH_generate_key(dh)) goto error;
keypair.c: | ^~
keypair.c: /usr/include/openssl/dh.h:227:27: note: declared here
keypair.c: 227 | OSSL_DEPRECATEDIN_3_0 int DH_generate_key(DH *dh);
keypair.c: | ^~~~~~~~~~~~~~~
keypair.c: keypair.c:39:3: warning: 'DH_get0_pub_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c: 39 | z = DH_get0_pub_key(dh);
keypair.c: | ^
keypair.c: /usr/include/openssl/dh.h:267:37: note: declared here
keypair.c: 267 | OSSL_DEPRECATEDIN_3_0 const BIGNUM *DH_get0_pub_key(const DH *dh);
keypair.c: ...

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