Implementation notes: amd64, hertz, crypto_sign/ecdonaldp256

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_sign
Primitive: ecdonaldp256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3696163111 0 033421 1060 1800T:opensslnewgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
3698562841 0 031605 1052 1800T:opensslnewgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
3711303111 0 035429 1060 1832T:opensslnewgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


keypair.c: keypair.c:20:7: warning: 'EC_KEY_new' is deprecated [-Wdeprecated-declarations]
keypair.c:    20 |   k = EC_KEY_new(); if (!k) { BN_free(ky); BN_free(kx); return -1; }
keypair.c:       |       ^
keypair.c: /usr/include/openssl/ec.h:968:1: note: 'EC_KEY_new' has been explicitly marked deprecated here
keypair.c:   968 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_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:8: warning: 'EC_KEY_set_group' is deprecated [-Wdeprecated-declarations]
keypair.c:    25 |   if (!EC_KEY_set_group(k,group)) goto error;
keypair.c:       |        ^
keypair.c: /usr/include/openssl/ec.h:1042:1: note: 'EC_KEY_set_group' has been explicitly marked deprecated here
keypair.c:  1042 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
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:26:8: warning: 'EC_KEY_generate_key' is deprecated [-Wdeprecated-declarations]
keypair.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:opensslclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opensslclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opensslclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


keypair.c: keypair.c: In function 'crypto_sign_ecdonaldp256_openssl_timingleaks_keypair':
keypair.c: keypair.c:20:3: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    20 |   k = EC_KEY_new(); if (!k) { BN_free(ky); BN_free(kx); return -1; }
keypair.c:       |   ^
keypair.c: In file included from /usr/include/openssl/ecdsa.h:10,
keypair.c:                  from keypair.c:3:
keypair.c: /usr/include/openssl/ec.h:968:31: note: declared here
keypair.c:   968 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new(void);
keypair.c:       |                               ^~~~~~~~~~
keypair.c: keypair.c:25:3: warning: 'EC_KEY_set_group' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    25 |   if (!EC_KEY_set_group(k,group)) goto error;
keypair.c:       |   ^~
keypair.c: /usr/include/openssl/ec.h:1042:27: note: declared here
keypair.c:  1042 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
keypair.c:       |                           ^~~~~~~~~~~~~~~~
keypair.c: keypair.c:26:3: warning: 'EC_KEY_generate_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    26 |   if (!EC_KEY_generate_key(k)) goto error;
keypair.c:       |   ^~
keypair.c: /usr/include/openssl/ec.h:1101:27: note: declared here
keypair.c:  1101 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_generate_key(EC_KEY *key);
keypair.c:       |                           ^~~~~~~~~~~~~~~~~~~
keypair.c: keypair.c:28:3: warning: 'EC_KEY_get0_private_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    28 |   len = BN_num_bytes(EC_KEY_get0_private_key(k)); if (len > PRIME_BYTES) goto error;
keypair.c:       |   ^~~
keypair.c: /usr/include/openssl/ec.h:1048:37: note: declared here
keypair.c: ...
signatureofshorthash.c: signatureofshorthash.c:10:19: warning: argument 1 of type 'unsigned char[64]' with mismatched bound [-Warray-parameter=]
signatureofshorthash.c:    10 |     unsigned char sm[SIGNATURE_BYTES],unsigned long long *smlen,
signatureofshorthash.c:       |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: In file included from signatureofshorthash.c:7:
signatureofshorthash.c: short.h:7:33: note: previously declared as 'unsigned char *'
signatureofshorthash.c:     7 | extern int signatureofshorthash(unsigned char *,unsigned long long *,
signatureofshorthash.c:       |                                 ^~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:11:25: warning: argument 3 of type 'const unsigned char[64]' with mismatched bound [-Warray-parameter=]
signatureofshorthash.c:    11 |     const unsigned char m[SHORTHASH_BYTES],const unsigned long long mlen,
signatureofshorthash.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
signatureofshorthash.c: short.h:8:3: note: previously declared as 'const unsigned char *'
signatureofshorthash.c:     8 |   const unsigned char *,unsigned long long,
signatureofshorthash.c:       |   ^~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:12:25: warning: argument 5 of type 'const unsigned char[96]' with mismatched bound [-Warray-parameter=]
signatureofshorthash.c:    12 |     const unsigned char sk[SECRETKEY_BYTES],const unsigned long long sklen
signatureofshorthash.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: short.h:9:3: note: previously declared as 'const unsigned char *'
signatureofshorthash.c:     9 |   const unsigned char *,unsigned long long);
signatureofshorthash.c:       |   ^~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c: In function 'crypto_sign_ecdonaldp256_openssl_timingleaks_signatureofshorthash':
signatureofshorthash.c: signatureofshorthash.c:35:3: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
signatureofshorthash.c:    35 |   k = EC_KEY_new(); if (!k) { EC_POINT_free(kxy); BN_free(ky); BN_free(kx); return -1; }
signatureofshorthash.c:       |   ^
signatureofshorthash.c: In file included from /usr/include/openssl/ecdsa.h:10,
signatureofshorthash.c:                  from signatureofshorthash.c:3:
signatureofshorthash.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:opensslgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opensslgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opensslgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


keypair.c: keypair.c:23:7: warning: 'EC_KEY_new' is deprecated [-Wdeprecated-declarations]
keypair.c:    23 |   k = EC_KEY_new();
keypair.c:       |       ^
keypair.c: /usr/include/openssl/ec.h:968:1: note: 'EC_KEY_new' has been explicitly marked deprecated here
keypair.c:   968 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_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:28:8: warning: 'EC_KEY_set_group' is deprecated [-Wdeprecated-declarations]
keypair.c:    28 |   if (!EC_KEY_set_group(k,group)) goto error;
keypair.c:       |        ^
keypair.c: /usr/include/openssl/ec.h:1042:1: note: 'EC_KEY_set_group' has been explicitly marked deprecated here
keypair.c:  1042 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
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:29:8: warning: 'EC_KEY_generate_key' is deprecated [-Wdeprecated-declarations]
keypair.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:opensslnewclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opensslnewclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:opensslnewclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


keypair.c: keypair.c: In function 'crypto_sign_ecdonaldp256_opensslnew_timingleaks_keypair':
keypair.c: keypair.c:23:3: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    23 |   k = EC_KEY_new();
keypair.c:       |   ^
keypair.c: In file included from /usr/include/openssl/ecdsa.h:10,
keypair.c:                  from keypair.c:3:
keypair.c: /usr/include/openssl/ec.h:968:31: note: declared here
keypair.c:   968 | OSSL_DEPRECATEDIN_3_0 EC_KEY *EC_KEY_new(void);
keypair.c:       |                               ^~~~~~~~~~
keypair.c: keypair.c:28:3: warning: 'EC_KEY_set_group' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    28 |   if (!EC_KEY_set_group(k,group)) goto error;
keypair.c:       |   ^~
keypair.c: /usr/include/openssl/ec.h:1042:27: note: declared here
keypair.c:  1042 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group);
keypair.c:       |                           ^~~~~~~~~~~~~~~~
keypair.c: keypair.c:29:3: warning: 'EC_KEY_generate_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    29 |   if (!EC_KEY_generate_key(k)) goto error;
keypair.c:       |   ^~
keypair.c: /usr/include/openssl/ec.h:1101:27: note: declared here
keypair.c:  1101 | OSSL_DEPRECATEDIN_3_0 int EC_KEY_generate_key(EC_KEY *key);
keypair.c:       |                           ^~~~~~~~~~~~~~~~~~~
keypair.c: keypair.c:31:3: warning: 'EC_KEY_get0_private_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
keypair.c:    31 |   len = BN_num_bytes(EC_KEY_get0_private_key(k));
keypair.c:       |   ^~~
keypair.c: /usr/include/openssl/ec.h:1048:37: note: declared here
keypair.c: ...
signatureofshorthash.c: signatureofshorthash.c:10:19: warning: argument 1 of type 'unsigned char[64]' with mismatched bound [-Warray-parameter=]
signatureofshorthash.c:    10 |     unsigned char sm[SIGNATURE_BYTES],unsigned long long *smlen,
signatureofshorthash.c:       |     ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: In file included from signatureofshorthash.c:7:
signatureofshorthash.c: short.h:7:33: note: previously declared as 'unsigned char *'
signatureofshorthash.c:     7 | extern int signatureofshorthash(unsigned char *,unsigned long long *,
signatureofshorthash.c:       |                                 ^~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:11:25: warning: argument 3 of type 'const unsigned char[64]' with mismatched bound [-Warray-parameter=]
signatureofshorthash.c:    11 |     const unsigned char m[SHORTHASH_BYTES],const unsigned long long mlen,
signatureofshorthash.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
signatureofshorthash.c: short.h:8:3: note: previously declared as 'const unsigned char *'
signatureofshorthash.c:     8 |   const unsigned char *,unsigned long long,
signatureofshorthash.c:       |   ^~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:12:25: warning: argument 5 of type 'const unsigned char[96]' with mismatched bound [-Warray-parameter=]
signatureofshorthash.c:    12 |     const unsigned char sk[SECRETKEY_BYTES],const unsigned long long sklen
signatureofshorthash.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: short.h:9:3: note: previously declared as 'const unsigned char *'
signatureofshorthash.c:     9 |   const unsigned char *,unsigned long long);
signatureofshorthash.c:       |   ^~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c: In function 'crypto_sign_ecdonaldp256_opensslnew_timingleaks_signatureofshorthash':
signatureofshorthash.c: signatureofshorthash.c:37:3: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
signatureofshorthash.c:    37 |   k = EC_KEY_new(); if (!k) goto error;
signatureofshorthash.c:       |   ^
signatureofshorthash.c: In file included from /usr/include/openssl/ecdsa.h:10,
signatureofshorthash.c:                  from signatureofshorthash.c:3:
signatureofshorthash.c: ...
verification.c: verification.c:9:25: warning: argument 1 of type 'const unsigned char[64]' with mismatched bound [-Warray-parameter=]
verification.c:     9 |     const unsigned char m[SHORTHASH_BYTES],const unsigned long long mlen,
verification.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~
verification.c: In file included from verification.c:6:
verification.c: short.h:10:25: note: previously declared as 'const unsigned char *'
verification.c:    10 | extern int verification(const unsigned char *,unsigned long long,
verification.c:       |                         ^~~~~~~~~~~~~~~~~~~~~
verification.c: verification.c:10:25: warning: argument 3 of type 'const unsigned char[64]' with mismatched bound [-Warray-parameter=]
verification.c:    10 |     const unsigned char sm[SIGNATURE_BYTES],const unsigned long long smlen,
verification.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
verification.c: short.h:11:3: note: previously declared as 'const unsigned char *'
verification.c:    11 |   const unsigned char *,unsigned long long,
verification.c:       |   ^~~~~~~~~~~~~~~~~~~~~
verification.c: verification.c:11:25: warning: argument 5 of type 'const unsigned char[64]' with mismatched bound [-Warray-parameter=]
verification.c:    11 |     const unsigned char pk[PUBLICKEY_BYTES],const unsigned long long pklen
verification.c:       |     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
verification.c: short.h:12:3: note: previously declared as 'const unsigned char *'
verification.c:    12 |   const unsigned char *,unsigned long long);
verification.c:       |   ^~~~~~~~~~~~~~~~~~~~~
verification.c: verification.c: In function 'crypto_sign_ecdonaldp256_opensslnew_timingleaks_verification':
verification.c: verification.c:36:3: warning: 'EC_KEY_new' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
verification.c:    36 |   k = EC_KEY_new(); if (!k) goto error;
verification.c:       |   ^
verification.c: In file included from /usr/include/openssl/ecdsa.h:10,
verification.c:                  from verification.c:2:
verification.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:opensslnewgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opensslnewgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:opensslnewgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)