Implementation notes: amd64, samba, crypto_aead/ppaev11

Computer: samba
Microarchitecture: amd64; Skylake (506e3)
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: ppaev11

Compiler output


encrypt.c: encrypt.c:36:46: warning: passing 'const unsigned char *' to parameter of type 'unsigned char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
encrypt.c:           memcpy( _k, k, 16 ); gen_ivs( _IVa, _IVb, npub, k );  // It would be the right place to preset AES key to avoid rekeying for every block
encrypt.c:                                                     ^~~~
encrypt.c: encrypt.c:15:71: note: passing argument to parameter here
encrypt.c: static void gen_ivs( unsigned char *, unsigned char *, unsigned char *,    unsigned char * );
encrypt.c:                                                                       ^
encrypt.c: encrypt.c:36:52: warning: passing 'const unsigned char *' to parameter of type 'unsigned char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
encrypt.c:           memcpy( _k, k, 16 ); gen_ivs( _IVa, _IVb, npub, k );  // It would be the right place to preset AES key to avoid rekeying for every block
encrypt.c:                                                           ^
encrypt.c: encrypt.c:15:92: note: passing argument to parameter here
encrypt.c: static void gen_ivs( unsigned char *, unsigned char *, unsigned char *,    unsigned char * );
encrypt.c:                                                                                            ^
encrypt.c: encrypt.c:39:18: warning: passing 'const unsigned char *' to parameter of type 'unsigned char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
encrypt.c:    gen_icv( icv, npub, mlen, adlen, _IVa, _IVb );     // Let's compute the ICV for this message
encrypt.c:                  ^~~~
encrypt.c: encrypt.c:16:54: note: passing argument to parameter here
encrypt.c: static void gen_icv( unsigned char *, unsigned char *, unsigned long long, unsigned long long, unsigned char *, unsigned char * );
encrypt.c:                                                      ^
encrypt.c: encrypt.c:40:19: warning: passing 'const unsigned char *' to parameter of type 'unsigned char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
encrypt.c:    gtag_ad( _IVa, ad, adlen, _k, icv );               // AD tag calculated on IVa (and using initial value as input)
encrypt.c:                   ^~
encrypt.c: encrypt.c:17:54: note: passing argument to parameter here
encrypt.c: static void gtag_ad( unsigned char *, unsigned char *, unsigned long long, unsigned char *,    unsigned char * );
encrypt.c:                                                      ^
encrypt.c: encrypt.c:50:31: warning: passing 'const unsigned char *' to parameter of type 'unsigned char *' discards qualifiers [-Wincompatible-pointer-types-discards-qualifiers]
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_ppaev11_ref_timingleaks_encrypt':
encrypt.c: encrypt.c:36:53: warning: passing argument 3 of 'gen_ivs' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
encrypt.c:    36 |           memcpy( _k, k, 16 ); gen_ivs( _IVa, _IVb, npub, k );  // It would be the right place to preset AES key to avoid rekeying for every block
encrypt.c:       |                                                     ^~~~
encrypt.c: encrypt.c:15:56: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
encrypt.c:    15 | static void gen_ivs( unsigned char *, unsigned char *, unsigned char *,    unsigned char * );
encrypt.c:       |                                                        ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:36:59: warning: passing argument 4 of 'gen_ivs' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
encrypt.c:    36 |           memcpy( _k, k, 16 ); gen_ivs( _IVa, _IVb, npub, k );  // It would be the right place to preset AES key to avoid rekeying for every block
encrypt.c:       |                                                           ^
encrypt.c: encrypt.c:15:76: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
encrypt.c:    15 | static void gen_ivs( unsigned char *, unsigned char *, unsigned char *,    unsigned char * );
encrypt.c:       |                                                                            ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:39:18: warning: passing argument 2 of 'gen_icv' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
encrypt.c:    39 |    gen_icv( icv, npub, mlen, adlen, _IVa, _IVb );     // Let's compute the ICV for this message
encrypt.c:       |                  ^~~~
encrypt.c: encrypt.c:16:39: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
encrypt.c:    16 | static void gen_icv( unsigned char *, unsigned char *, unsigned long long, unsigned long long, unsigned char *, unsigned char * );
encrypt.c:       |                                       ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:40:19: warning: passing argument 2 of 'gtag_ad' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
encrypt.c:    40 |    gtag_ad( _IVa, ad, adlen, _k, icv );               // AD tag calculated on IVa (and using initial value as input)
encrypt.c:       |                   ^~
encrypt.c: encrypt.c:17:39: note: expected 'unsigned char *' but argument is of type 'const unsigned char *'
encrypt.c:    17 | static void gtag_ad( unsigned char *, unsigned char *, unsigned long long, unsigned char *,    unsigned char * );
encrypt.c:       |                                       ^~~~~~~~~~~~~~~
encrypt.c: ...

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