warner / python-ed25519

Python bindings to the Ed25519 public-key signature system
Other
165 stars 38 forks source link

warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ #19

Open milahu opened 1 year ago

milahu commented 1 year ago

i want to use this repo for pycryptopp in https://github.com/tahoe-lafs/pycryptopp/pull/47

im replacing pycryptopp's src-ed25519 with

rm -rf src-ed25519
cp -r $src_python_ed25519 src-python-ed25519
chmod -R +w src-python-ed25519
# fix: FileNotFoundError: [Errno 2] No such file or directory: 'src-ed25519/supercop-ref'
# a: https://github.com/warner/python-ed25519/tree/master/src
# b: https://github.com/tahoe-lafs/pycryptopp/tree/master/src-ed25519
mkdir src-ed25519
ln -sr src-python-ed25519/src/ed25519-supercop-ref src-ed25519/supercop-ref
ln -sr src-python-ed25519/src/ed25519-glue src-ed25519/glue

so my src-ed25519/supercop-ref is python-ed25519/src/ed25519-supercop-ref

problem: building pycryptopp gives these warnings:

src-ed25519/supercop-ref/ed25519.c:125:14: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare-Wsign-compare8;;]
  125 |     for(i=0;i<smlen-64;i++)
      |              ^

src-ed25519/supercop-ref/ed25519.c:131:14: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare-Wsign-compare8;;]
  131 |     for(i=0;i<smlen-64;i++)
      |              ^

src-ed25519/supercop-ref/sha512-hash.c:40:16: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long long unsigned int’ [8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wsign-compare-Wsign-compare8;;]
   40 |   for (i = 0;i < inlen;++i) padded[i] = in[i];
      |                ^

the variables smlen and inlen have type unsigned long long, so this should be trivial to fix with

sed -i 's/^  int i, ret;$/  unsigned long long i, ret;/' src-ed25519/supercop-ref/ed25519.c
sed -i 's/^  int i;$/  unsigned long long i;/' src-ed25519/supercop-ref/sha512-hash.c

... or at least unsigned int i