Skip to content
Snippets Groups Projects
Select Git revision
  • master
  • wip/pacbti2
  • wip/dueno/pacbti
  • wip/dueno/deterministic-ecdsa
  • wip/dueno/kyber2
  • wip/dueno/shake-streaming-update
  • wip/dueno/shake-streaming
  • master-updates
  • release-3.7-fixes
  • fix-chacha-counter
  • arm64
  • delete-1-way-neon
  • fat-build-by-default
  • ppc-chacha-4core
  • delete-internal-name-mangling
  • ppc-gcm
  • ppc-chacha-2core
  • refactor-ecc-mod
  • ppc-chacha-core
  • use-mpn_cnd-functions
  • nettle_3.7.2_release_20210321
  • nettle_3.7.1_release_20210217
  • nettle_3.7_release_20210104
  • nettle_3.7rc1
  • nettle_3.6_release_20200429
  • nettle_3.6rc3
  • nettle_3.6rc2
  • nettle_3.6rc1
  • nettle_3.5.1_release_20190627
  • nettle_3.5_release_20190626
  • nettle_3.5rc1
  • nettle_3.4.1_release_20181204
  • nettle_3.4.1rc1
  • nettle_3.4_release_20171119
  • nettle_3.4rc2
  • nettle_3.4rc1
  • nettle_3.3_release_20161001
  • nettle_3.2_release_20160128
  • nettle_3.1.1_release_20150424
  • nettle_3.1_release_20150407
40 results

bignum-test.c

Blame
  • Forked from Nettle / nettle
    Source project has a limited visibility.
    bignum-test.c 2.03 KiB
    #include "testutils.h"
    
    #if HAVE_CONFIG_H
    #include "config.h"
    #endif
    
    #include <stdlib.h>
    #include <string.h>
    
    #if WITH_HOGWEED
    #include "bignum.h"
    
    static void
    test_bignum(const char *hex, const struct tstring *base256)
    {
      mpz_t a;
      mpz_t b;
      uint8_t *buf;
      
      mpz_init_set_str(a, hex, 16);
      nettle_mpz_init_set_str_256_s(b, base256->length, base256->data);
    
      ASSERT(mpz_cmp(a, b) == 0);
    
      buf = xalloc(base256->length + 1);
      memset(buf, 17, base256->length + 1);
    
      nettle_mpz_get_str_256(base256->length, buf, a);
      ASSERT(MEMEQ(base256->length, buf, base256->data));
    
      ASSERT(buf[base256->length] == 17);
    
      mpz_clear(a); mpz_clear(b);
      free(buf);
    }
    
    static void
    test_size(long x, unsigned size)
    {
      mpz_t t;
    
      mpz_init_set_si(t, x);
      ASSERT(nettle_mpz_sizeinbase_256_s(t) == size);
      mpz_clear(t);
    }
    #endif /* WITH_HOGWEED */
    
    
    void
    test_main(void)
    {
    #if WITH_HOGWEED
      test_size(0, 1);
      test_size(1, 1);
      test_size(0x7f, 1);
      test_size(0x80, 2);
      test_size(0x81, 2);
      test_size(0xff, 2);
      test_size(0x100, 2);
      test_size(0x101, 2);
      test_size(0x1111, 2);
      test_size(0x7fff, 2);
      test_size(0x8000, 3);
      test_size(0x8001, 3);
    
      test_size(-      1, 1); /*     ff */
      test_size(-   0x7f, 1); /*     81 */
      test_size(-   0x80, 1); /*     80 */
      test_size(-   0x81, 2); /*   ff7f */
      test_size(-   0xff, 2); /*   ff01 */