Implementation notes: amd64, comet, crypto_sign/sflashv2

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_sign
Primitive: sflashv2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
22782730662 0 051033 844 1760T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070720240625
26209137465 0 059689 844 1760T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070720240625
27868830087 0 049977 844 1760T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070720240625
29466427501 0 046225 836 1760T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070720240625

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:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)
T:refclang -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:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)