constcheck.sh 543 B

12345678910111213141516171819
  1. #! /bin/sh
  2. CT='ct.c'
  3. echo '#include <assert.h>' > "$CT"
  4. echo '#include <sodium.h>' >> "$CT"
  5. echo 'int main(void) {' >> "$CT"
  6. for macro in $(egrep -r '#define crypto_.*BYTES(_[A-Z]+)? ' src/libsodium/include | \
  7. cut -d: -f2- | cut -d' ' -f2 | \
  8. fgrep -v edwards25519sha512batch | sort -u); do
  9. func=$(echo "$macro" | tr A-Z a-z)
  10. echo " assert($func() == $macro);" >> "$CT"
  11. done
  12. echo "return 0; }" >> "$CT"
  13. ${CC:-cc} "$CT" $CPPFLAGS $CFLAGS $LDFLAGS -lsodium || exit 1
  14. ./a.out || exit 1
  15. rm -f a.out "$CT"