Implementation notes: amd64, cel02, crypto_sign/ecdonaldp384

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: ecdonaldp384

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
signatureofshorthash.c: signatureofshorthash.c:54:24: error: incomplete definition of type 'struct ECDSA_SIG_st'
signatureofshorthash.c: len = BN_num_bytes(rs->r); if (len > PRIME_BYTES) goto rserror;
signatureofshorthash.c: ~~^
signatureofshorthash.c: /usr/include/openssl/bn.h:193:40: note: expanded from macro 'BN_num_bytes'
signatureofshorthash.c: # define BN_num_bytes(a) ((BN_num_bits(a)+7)/8)
signatureofshorthash.c: ^
signatureofshorthash.c: /usr/include/openssl/ec.h:1039:16: note: forward declaration of 'struct ECDSA_SIG_st'
signatureofshorthash.c: typedef struct ECDSA_SIG_st ECDSA_SIG;
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:55:15: error: incomplete definition of type 'struct ECDSA_SIG_st'
signatureofshorthash.c: BN_bn2bin(rs->r,sm + PRIME_BYTES - len); sm += PRIME_BYTES;
signatureofshorthash.c: ~~^
signatureofshorthash.c: /usr/include/openssl/ec.h:1039:16: note: forward declaration of 'struct ECDSA_SIG_st'
signatureofshorthash.c: typedef struct ECDSA_SIG_st ECDSA_SIG;
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:57:24: error: incomplete definition of type 'struct ECDSA_SIG_st'
signatureofshorthash.c: len = BN_num_bytes(rs->s); if (len > PRIME_BYTES) goto rserror;
signatureofshorthash.c: ~~^
signatureofshorthash.c: /usr/include/openssl/bn.h:193:40: note: expanded from macro 'BN_num_bytes'
signatureofshorthash.c: # define BN_num_bytes(a) ((BN_num_bits(a)+7)/8)
signatureofshorthash.c: ^
signatureofshorthash.c: /usr/include/openssl/ec.h:1039:16: note: forward declaration of 'struct ECDSA_SIG_st'
signatureofshorthash.c: typedef struct ECDSA_SIG_st ECDSA_SIG;
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:58:15: error: incomplete definition of type 'struct ECDSA_SIG_st'
signatureofshorthash.c: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -mcpu=native -O3 -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
signatureofshorthash.c: In file included from /usr/include/openssl/asn1.h:24:0,
signatureofshorthash.c: from /usr/include/openssl/objects.h:916,
signatureofshorthash.c: from signatureofshorthash.c:2:
signatureofshorthash.c: signatureofshorthash.c: In function 'crypto_sign_ecdonaldp384_openssl_timingleaks_signatureofshorthash':
signatureofshorthash.c: signatureofshorthash.c:54:24: error: dereferencing pointer to incomplete type 'ECDSA_SIG {aka struct ECDSA_SIG_st}'
signatureofshorthash.c: len = BN_num_bytes(rs->r); if (len > PRIME_BYTES) goto rserror;
signatureofshorthash.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

Compiler output

Implementation: T:opensslnew
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
signatureofshorthash.c: signatureofshorthash.c:56:7: warning: implicit declaration of function 'ECDSA_SIG_get0_r' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:56:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:61:7: warning: implicit declaration of function 'ECDSA_SIG_get0_s' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:61:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: 4 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x55963a88a4c0: v4i64 = X86ISD::VTRUNC 0x55963a88a390
try.c: 0x55963a88a390: v16i32 = vselect 0x55963a884e90, 0x55963a82a6e0, 0x55963a88a260
try.c: 0x55963a884e90: v4i1 = X86ISD::PCMPGTM 0x55963a883e80, 0x55963a87fa10
try.c: 0x55963a883e80: v4i64 = X86ISD::VBROADCAST 0x55963a823ac0
try.c: 0x55963a823ac0: i64,ch = load<LD8[%lsr.iv6971]> 0x55963a794950, 0x55963a876e00, undef:i64
try.c: 0x55963a876e00: i64,ch = CopyFromReg 0x55963a794950, Register:i64 %vreg50
try.c: 0x55963a87fc70: i64 = Register %vreg50
try.c: 0x55963a824f90: i64 = undef
try.c: 0x55963a87fa10: v4i64,ch = CopyFromReg 0x55963a794950, Register:v4i64 %vreg13
try.c: 0x55963a8846d0: v4i64 = Register %vreg13
try.c: 0x55963a82a6e0: v16i32 = X86ISD::VBROADCAST 0x55963a8840e0
try.c: 0x55963a8840e0: i32,ch = load<LD4[ConstantPool]> 0x55963a794950, 0x55963a8230a0, undef:i64
try.c: 0x55963a8230a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55963a8453e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55963a824f90: i64 = undef
try.c: 0x55963a88a260: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: 0x55963a88a130: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:opensslnew
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
signatureofshorthash.c: signatureofshorthash.c:56:7: warning: implicit declaration of function 'ECDSA_SIG_get0_r' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:56:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:61:7: warning: implicit declaration of function 'ECDSA_SIG_get0_s' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:61:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: 4 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x55ca16c29ff0: v4i64 = X86ISD::VTRUNC 0x55ca16c29ec0
try.c: 0x55ca16c29ec0: v16i32 = vselect 0x55ca16c2deb0, 0x55ca16bb2810, 0x55ca16c29d90
try.c: 0x55ca16c2deb0: v4i1 = X86ISD::PCMPGTM 0x55ca16c10e90, 0x55ca16c0ca20
try.c: 0x55ca16c10e90: v4i64 = X86ISD::VBROADCAST 0x55ca16bb2cd0
try.c: 0x55ca16bb2cd0: i64,ch = load<LD8[%lsr.iv6971]> 0x55ca16b0aa30, 0x55ca16bae0e0, undef:i64
try.c: 0x55ca16bae0e0: i64,ch = CopyFromReg 0x55ca16b0aa30, Register:i64 %vreg50
try.c: 0x55ca16c0cc80: i64 = Register %vreg50
try.c: 0x55ca16ba6b10: i64 = undef
try.c: 0x55ca16c0ca20: v4i64,ch = CopyFromReg 0x55ca16b0aa30, Register:v4i64 %vreg13
try.c: 0x55ca16c116e0: v4i64 = Register %vreg13
try.c: 0x55ca16bb2810: v16i32 = X86ISD::VBROADCAST 0x55ca16c110f0
try.c: 0x55ca16c110f0: i32,ch = load<LD4[ConstantPool]> 0x55ca16b0aa30, 0x55ca16babea0, undef:i64
try.c: 0x55ca16babea0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ca16ba7490: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ca16ba6b10: i64 = undef
try.c: 0x55ca16c29d90: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: 0x55ca16c29c60: i32 = Constant<0>
try.c: ...

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

Compiler output

Implementation: T:opensslnew
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
signatureofshorthash.c: signatureofshorthash.c:56:7: warning: implicit declaration of function 'ECDSA_SIG_get0_r' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:56:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:61:7: warning: implicit declaration of function 'ECDSA_SIG_get0_s' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:61:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: 4 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x55b7d30783a0: v4i64 = X86ISD::VTRUNC 0x55b7d3078270
try.c: 0x55b7d3078270: v16i32 = vselect 0x55b7d305c4d0, 0x55b7d2ffae60, 0x55b7d3078140
try.c: 0x55b7d305c4d0: v4i1 = X86ISD::PCMPGTM 0x55b7d3055a80, 0x55b7d3051610
try.c: 0x55b7d3055a80: v4i64 = X86ISD::VBROADCAST 0x55b7d2ff8000
try.c: 0x55b7d2ff8000: i64,ch = load<LD8[%lsr.iv6971]> 0x55b7d2f66950, 0x55b7d304c470, undef:i64
try.c: 0x55b7d304c470: i64,ch = CopyFromReg 0x55b7d2f66950, Register:i64 %vreg50
try.c: 0x55b7d3051870: i64 = Register %vreg50
try.c: 0x55b7d2ff94d0: i64 = undef
try.c: 0x55b7d3051610: v4i64,ch = CopyFromReg 0x55b7d2f66950, Register:v4i64 %vreg13
try.c: 0x55b7d30562d0: v4i64 = Register %vreg13
try.c: 0x55b7d2ffae60: v16i32 = X86ISD::VBROADCAST 0x55b7d3055ce0
try.c: 0x55b7d3055ce0: i32,ch = load<LD4[ConstantPool]> 0x55b7d2f66950, 0x55b7d2ffdc50, undef:i64
try.c: 0x55b7d2ffdc50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b7d3047e20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b7d2ff94d0: i64 = undef
try.c: 0x55b7d3078140: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: 0x55b7d3078010: i32 = Constant<0>
try.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opensslnew

Compiler output

Implementation: T:opensslnew
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
signatureofshorthash.c: signatureofshorthash.c:56:7: warning: implicit declaration of function 'ECDSA_SIG_get0_r' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:56:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:61:7: warning: implicit declaration of function 'ECDSA_SIG_get0_s' is invalid in C99 [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:61:5: warning: incompatible integer to pointer conversion assigning to 'const BIGNUM *' (aka 'const struct bignum_st *') from 'int' [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^ ~~~~~~~~~~~~~~~~~~~~
signatureofshorthash.c: 4 warnings generated.
try.c: crypto_sign_ecdonaldp384.a(signatureofshorthash.o): In function `crypto_sign_ecdonaldp384_opensslnew_timingleaks_signatureofshorthash':
try.c: signatureofshorthash.c:(.text+0x...): undefined reference to `ECDSA_SIG_get0_r'
try.c: signatureofshorthash.c:(.text+0x...): undefined reference to `ECDSA_SIG_get0_s'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:opensslnew
clang -mcpu=native -O3 -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
signatureofshorthash.c: signatureofshorthash.c: In function 'crypto_sign_ecdonaldp384_opensslnew_timingleaks_signatureofshorthash':
signatureofshorthash.c: signatureofshorthash.c:56:7: warning: implicit declaration of function 'ECDSA_SIG_get0_r' [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:56:5: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_r(rs);
signatureofshorthash.c: ^
signatureofshorthash.c: signatureofshorthash.c:61:7: warning: implicit declaration of function 'ECDSA_SIG_get0_s' [-Wimplicit-function-declaration]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^~~~~~~~~~~~~~~~
signatureofshorthash.c: signatureofshorthash.c:61:5: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
signatureofshorthash.c: z = ECDSA_SIG_get0_s(rs);
signatureofshorthash.c: ^
try.c: crypto_sign_ecdonaldp384.a(signatureofshorthash.o): In function `crypto_sign_ecdonaldp384_opensslnew_timingleaks_signatureofshorthash':
try.c: signatureofshorthash.c:(.text+0x...): undefined reference to `ECDSA_SIG_get0_r'
try.c: signatureofshorthash.c:(.text+0x...): undefined reference to `ECDSA_SIG_get0_s'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 4, 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 -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opensslnew
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opensslnew