Implementation notes: amd64, comet, crypto_sign/sflashv2
Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240808
Operation: crypto_sign
Primitive: sflashv2
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
227827 | 30662 0 0 | 51033 844 1760 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240707 | 20240625 |
262091 | 37465 0 0 | 59689 844 1760 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240707 | 20240625 |
278688 | 30087 0 0 | 49977 844 1760 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240707 | 20240625 |
294664 | 27501 0 0 | 46225 836 1760 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240707 | 20240625 |
Compiler output
keypair.c: keypair.c:10:18: warning: unused variable 'seed' [-Wunused-variable]
keypair.c: unsigned char *seed;
keypair.c: ^
keypair.c: keypair.c:11:7: warning: unused variable 'length' [-Wunused-variable]
keypair.c: int length;
keypair.c: ^
keypair.c: 2 warnings generated.
lib_flash.c: lib_flash.c:409:50: warning: '/*' within block comment [-Wcomment]
lib_flash.c: init_table_flash(CK->M,/*CK->I,*/CK->M1/*,CK->M2/* /*,CK->M3*/);
lib_flash.c: ^
lib_flash.c: lib_flash.c:409:53: warning: '/*' within block comment [-Wcomment]
lib_flash.c: init_table_flash(CK->M,/*CK->I,*/CK->M1/*,CK->M2/* /*,CK->M3*/);
lib_flash.c: ^
lib_flash.c: lib_flash.c:690:3: warning: '/*' within block comment [-Wcomment]
lib_flash.c: /*mis <E0> la puissance 2^7^22 de tmp
lib_flash.c: ^
lib_flash.c: lib_flash.c:692:3: warning: '/*' within block comment [-Wcomment]
lib_flash.c: /*
lib_flash.c: ^
lib_flash.c: lib_flash.c:695:4: warning: '/*' within block comment [-Wcomment]
lib_flash.c: /* inversion affine de S*/
lib_flash.c: ^
lib_flash.c: lib_flash.c:726:14: warning: 'size' argument to memset is '0'; did you mean to transpose the last two arguments? [-Wmemset-transposed-args]
lib_flash.c: memset(V,33,0);
lib_flash.c: ^
lib_flash.c: lib_flash.c:726:14: note: parenthesize the third argument to silence
lib_flash.c: lib_flash.c:783:14: warning: 'size' argument to memset is '0'; did you mean to transpose the last two arguments? [-Wmemset-transposed-args]
lib_flash.c: memset(V,33,0);
lib_flash.c: ^
lib_flash.c: lib_flash.c:783:14: note: parenthesize the third argument to silence
lib_flash.c: lib_flash.c:809:6: warning: unused variable 'i' [-Wunused-variable]
lib_flash.c: int i;
lib_flash.c: ...
table_flash.c: table_flash.c:25:8: warning: ^ has lower precedence than <; < will be evaluated first [-Wparentheses]
table_flash.c: if( x^P < x)
table_flash.c: ^~~~~~
table_flash.c: table_flash.c:25:8: note: place parentheses around the '<' expression to silence this warning
table_flash.c: if( x^P < x)
table_flash.c: ^
table_flash.c: ( )
table_flash.c: table_flash.c:25:8: note: place parentheses around the ^ expression to evaluate it first
table_flash.c: if( x^P < x)
table_flash.c: ^
table_flash.c: ( )
table_flash.c: table_flash.c:39:28: warning: suggest braces around initialization of subobject [-Wmissing-braces]
table_flash.c: unsigned char MM[37][37]={ 1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
table_flash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
table_flash.c: { }
table_flash.c: table_flash.c:40:2: warning: suggest braces around initialization of subobject [-Wmissing-braces]
table_flash.c: ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ,1
table_flash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
table_flash.c: { }
table_flash.c: table_flash.c:41:2: warning: suggest braces around initialization of subobject [-Wmissing-braces]
table_flash.c: ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,0 ,1
table_flash.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
table_flash.c: { }
table_flash.c: table_flash.c:42:2: warning: suggest braces around initialization of subobject [-Wmissing-braces]
table_flash.c: ,1 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,0 ,1
table_flash.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
T:ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
T:ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
T:ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
T:ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6) |
Compiler output
keypair.c: keypair.c: In function 'crypto_sign_sflashv2_ref_timingleaks_keypair':
keypair.c: keypair.c:11:7: warning: unused variable 'length' [-Wunused-variable]
keypair.c: 11 | int length;
keypair.c: | ^~~~~~
keypair.c: keypair.c:10:18: warning: unused variable 'seed' [-Wunused-variable]
keypair.c: 10 | unsigned char *seed;
keypair.c: | ^~~~
lib_flash.c: lib_flash.c:270:29: warning: argument 1 of type 'unsigned char[37][37][37]' with mismatched bound [-Warray-parameter=]
lib_flash.c: 270 | void priv_pub(unsigned char QUAD[37][37][37], unsigned char LIN[37][37], unsigned char CONS[37], unsigned char S1[37][37],unsigned char S2[37], unsigned char T1[37][37],unsigned char T2[37], unsigned char M[16384])
lib_flash.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
lib_flash.c: In file included from lib_flash.c:6:
lib_flash.c: lib_flash.h:38:29: note: previously declared as 'unsigned char[26][37][37]'
lib_flash.c: 38 | void priv_pub(unsigned char QUAD[26][37][37], unsigned char LIN[26][37], unsigned char CONS[26],
lib_flash.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
lib_flash.c: lib_flash.c:270:61: warning: argument 2 of type 'unsigned char[37][37]' with mismatched bound [-Warray-parameter=]
lib_flash.c: 270 | void priv_pub(unsigned char QUAD[37][37][37], unsigned char LIN[37][37], unsigned char CONS[37], unsigned char S1[37][37],unsigned char S2[37], unsigned char T1[37][37],unsigned char T2[37], unsigned char M[16384])
lib_flash.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~
lib_flash.c: lib_flash.h:38:61: note: previously declared as 'unsigned char[26][37]'
lib_flash.c: 38 | void priv_pub(unsigned char QUAD[26][37][37], unsigned char LIN[26][37], unsigned char CONS[26],
lib_flash.c: | ~~~~~~~~~~~~~~^~~~~~~~~~~
lib_flash.c: lib_flash.c:270:88: warning: argument 3 of type 'unsigned char[37]' with mismatched bound [-Warray-parameter=]
lib_flash.c: 270 | void priv_pub(unsigned char QUAD[37][37][37], unsigned char LIN[37][37], unsigned char CONS[37], unsigned char S1[37][37],unsigned char S2[37], unsigned char T1[37][37],unsigned char T2[37], unsigned char M[16384])
lib_flash.c: | ~~~~~~~~~~~~~~^~~~~~~~
lib_flash.c: lib_flash.h:38:88: note: previously declared as 'unsigned char[26]'
lib_flash.c: 38 | void priv_pub(unsigned char QUAD[26][37][37], unsigned char LIN[26][37], unsigned char CONS[26],
lib_flash.c: | ~~~~~~~~~~~~~~^~~~~~~~
lib_flash.c: lib_flash.c: In function 'Flash_build_complete_key':
lib_flash.c: lib_flash.c:409:57: warning: "/*" within comment [-Wcomment]
lib_flash.c: 409 | init_table_flash(CK->M,/*CK->I,*/CK->M1/*,CK->M2/* /*,CK->M3*/);
lib_flash.c: |
lib_flash.c: lib_flash.c:409:60: warning: "/*" within comment [-Wcomment]
lib_flash.c: lib_flash.c: In function 'Flash_decrypt':
lib_flash.c: ...
messagesigned.c: messagesigned.c:12:39: warning: argument 5 of type 'const unsigned char[19266]' with mismatched bound [-Warray-parameter=]
messagesigned.c: 12 | const unsigned char pk[PUBLICKEY_BYTES]
messagesigned.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
messagesigned.c: In file included from crypto_sign.h:4,
messagesigned.c: from sizes.h:1,
messagesigned.c: from messagesigned.c:6:
messagesigned.c: crypto_sign_sflashv2.h:12:132: note: previously declared as 'const unsigned char *'
messagesigned.c: 12 | extern int crypto_sign_sflashv2_ref_timingleaks_open(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *);
messagesigned.c: | ^~~~~~~~~~~~~~~~~~~~~
signedmessage.c: signedmessage.c:13:39: warning: argument 5 of type 'const unsigned char[2823]' with mismatched bound [-Warray-parameter=]
signedmessage.c: 13 | const unsigned char sk[SECRETKEY_BYTES]
signedmessage.c: | ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~
signedmessage.c: In file included from crypto_sign.h:4,
signedmessage.c: from sizes.h:1,
signedmessage.c: from signedmessage.c:6:
signedmessage.c: crypto_sign_sflashv2.h:11:127: note: previously declared as 'const unsigned char *'
signedmessage.c: 11 | extern int crypto_sign_sflashv2_ref_timingleaks(unsigned char *,unsigned long long *,const unsigned char *,unsigned long long,const unsigned char *);
signedmessage.c: | ^~~~~~~~~~~~~~~~~~~~~
table_flash.c: table_flash.c: In function 'mult2':
table_flash.c: table_flash.c:25:25: warning: suggest parentheses around comparison in operand of '^' [-Wparentheses]
table_flash.c: 25 | if( x^P < x)
table_flash.c: | ~~^~~
table_flash.c: table_flash.c: In function 'build_MM':
table_flash.c: table_flash.c:39:26: warning: missing braces around initializer [-Wmissing-braces]
table_flash.c: 39 | unsigned char MM[37][37]={ 1 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0
table_flash.c: | ^
table_flash.c: | {
table_flash.c: 40 | ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ,1
table_flash.c: | }{
table_flash.c: 41 | ,0 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,0 ,1
table_flash.c: | }{
table_flash.c: 42 | ,1 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,0 ,1
table_flash.c: | }{
table_flash.c: 43 | ,0 ,0 ,1 ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,0 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,1 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,0 ,1
table_flash.c: | }{
table_flash.c: 44 | ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,1 ,0 ,0 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,1 ,0 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,0 ,1 ,1
table_flash.c: | }{
table_flash.c: 45 | ,1 ,0 ,1 ,1 ,1 ,0 ,1 ,0 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,1 ,1 ,0 ,0 ,1 ,0 ,1 ,1 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,1 ,1 ,1 ,0 ,0
table_flash.c: | }{
table_flash.c: 46 | ,1 ,1 ,0 ,0 ,1 ,0 ,0 ,1 ,0 ,1 ,1 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,1 ,0 ,0 ,1 ,0
table_flash.c: | }{
table_flash.c: 47 | ,0 ,0 ,0 ,0 ,0 ,1 ,0 ,1 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,0 ,0 ,1 ,1 ,0 ,0 ,0 ,0 ,1 ,0 ,0 ,0 ,1 ,1 ,1 ,1 ,1 ,0 ,0 ,0 ,1
table_flash.c: | }{
table_flash.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
T:ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
T:ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |
T:ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0) |