Skip to content
Snippets Groups Projects
Select Git revision
  • 41c176c403b6f9eebce6ee80a93e52803467664d
  • master default
  • dbck-q-n-d-link
  • foutput-text_stat-override
  • generations
  • text-stat-sha256
  • use-nettle
  • import-nettle
  • refactor-cached_get_text
  • refactor-cached_get_text-part-2
  • add-text_store
  • introduce-generation_position
  • remove-reclamation
  • dbfile-temp-filenames
  • sstrdup
  • dbfile_open_read-check-magic
  • adns_dist
  • liboop_dist
  • search
  • isc
  • dbdbckmultiplechoice
  • last.cvs.revision
  • 2.1.2
  • 2.1.1
  • 2.1.0
  • adns_1_0
  • liboop_0_9
  • 2.0.7
  • search_bp
  • 2.0.6
  • 2.0.5
  • isc_1_01
  • Protocol-A-10.4
  • 2.0.4
  • 2.0.3
  • 2.0.2
  • 2.0.1
  • 2.0.0
  • isc_1_00
  • isc_merge_1999_05_01
  • isc_merge_1999_04_21
41 results

Build

Blame
  • testutils.h 3.31 KiB
    #ifndef NETTLE_TESTUTILS_H_INCLUDED
    #define NETTLE_TESTUTILS_H_INCLUDED
    
    #if HAVE_CONFIG_H
    # include "config.h"
    #endif
    
    #include "nettle-types.h"
    
    #include <string.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    #if HAVE_LIBGMP
    # include "bignum.h"
    #endif
    
    #if WITH_HOGWEED
    # include "rsa.h"
    # include "dsa.h"
    #endif
    
    #include "nettle-meta.h"
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    void *
    xalloc(size_t size);
    
    /* Decodes a NUL-terminated hex string. */
    
    unsigned
    decode_hex_length(const char *hex);
    
    int
    decode_hex(uint8_t *dst, const char *hex);
    
    /* Allocates space */
    const uint8_t *
    decode_hex_dup(const char *hex);
    
    void
    print_hex(unsigned length, const uint8_t *data);
    
    /* The main program */
    int
    test_main(void);
    
    extern int verbose;
    
    void
    test_cipher(const struct nettle_cipher *cipher,
    	    unsigned key_length,
    	    const uint8_t *key,
    	    unsigned length,
    	    const uint8_t *cleartext,
    	    const uint8_t *ciphertext);
    
    void
    test_cipher_cbc(const struct nettle_cipher *cipher,
    		unsigned key_length,
    		const uint8_t *key,
    		unsigned length,
    		const uint8_t *cleartext,
    		const uint8_t *ciphertext,
    		const uint8_t *iv);
    
    void
    test_cipher_ctr(const struct nettle_cipher *cipher,
    		unsigned key_length,
    		const uint8_t *key,
    		unsigned length,
    		const uint8_t *cleartext,
    		const uint8_t *ciphertext,
    		const uint8_t *iv);
    
    void
    test_cipher_stream(const struct nettle_cipher *cipher,
    		   unsigned key_length,
    		   const uint8_t *key,
    		   unsigned length,
    		   const uint8_t *cleartext,
    		   const uint8_t *ciphertext);
    
    void
    test_hash(const struct nettle_hash *hash,
    	  unsigned length,
    	  const uint8_t *data,
    	  const uint8_t *digest);
    
    void
    test_hash_large(const struct nettle_hash *hash,
    		unsigned count, unsigned length,
    		uint8_t c,
    		const uint8_t *digest);
    
    void
    test_armor(const struct nettle_armor *armor,
               unsigned data_length,
               const uint8_t *data,
               const uint8_t *ascii);
    
    #if WITH_HOGWEED
    void
    test_rsa_set_key_1(struct rsa_public_key *pub,
    		   struct rsa_private_key *key);
    
    void
    test_rsa_md5(struct rsa_public_key *pub,
    	     struct rsa_private_key *key,
    	     mpz_t expected);
    
    void
    test_rsa_sha1(struct rsa_public_key *pub,
    	      struct rsa_private_key *key,
    	      mpz_t expected);
    
    void
    test_rsa_sha256(struct rsa_public_key *pub,
    		struct rsa_private_key *key,
    		mpz_t expected);
    
    void
    test_rsa_sha512(struct rsa_public_key *pub,
    		struct rsa_private_key *key,
    		mpz_t expected);
    
    void
    test_rsa_key(struct rsa_public_key *pub,
    	     struct rsa_private_key *key);
    
    void
    test_dsa(const struct dsa_public_key *pub,
    	 const struct dsa_private_key *key);
    
    void
    test_dsa_key(struct dsa_public_key *pub,
    	     struct dsa_private_key *key);
    
    #endif /* WITH_HOGWEED */
    
    #ifdef __cplusplus
    }
    #endif
    
    #define H2(d, s) decode_hex((d), (s))
    #define H(x) decode_hex_dup(x)
    #define HL(x) decode_hex_length(x), decode_hex_dup(x)
    
    /* LDATA needs to handle NUL characters. */
    #define LLENGTH(x) (sizeof(x) - 1)
    #define LDATA(x) (sizeof(x) - 1), x
    #define LDUP(x) strlen(x), strdup(x)
    
    #define MEMEQ(length, a, b) (!memcmp((a), (b), (length)))
    #define MEMEQH(length, a, b) \
    ((length) == decode_hex_length((b)) \
     && !memcmp((a), decode_hex_dup((b)), (length)))
    
    #define FAIL() abort()
    #define SKIP() exit(77)
    #define SUCCESS() return EXIT_SUCCESS
    
    #define ASSERT(x) do { if (!(x)) FAIL(); } while(0)
    
    #endif /* NETTLE_TESTUTILS_H_INCLUDED */