pike.git / src / post_modules / Nettle / mac.cmod

version» Context lines:

pike.git/src/post_modules/Nettle/mac.cmod:247:    void *ctx = THIS->ctx;    const struct pike_mac *meta =    GET_META(Pike_fp->current_object);       if (!ctx || !meta)    Pike_error("State not properly initialized.\n");       iv->flags |= STRING_CLEAR_ON_EXIT;    NO_WIDE_STRING(iv);    -  if (iv->len != meta->iv_size || !meta->iv_size) { +  /* NB: Check iv length here so that we can use the +  * Nettle implementation straight in meta->set_iv. +  */ +  if ((iv->len > meta->iv_size) || !meta->iv_size) {    Pike_error("Invalid iv/nonce.\n");    }       meta->set_iv(ctx, iv->len, STR0(iv));       push_object(this_object());    }       /*! @decl State update(string(0..255) data)    *!
pike.git/src/post_modules/Nettle/mac.cmod:433:   #ifndef UMAC_BLOCK_SIZE   #define UMAC_BLOCK_SIZE UMAC_DATA_SIZE   #endif   #ifndef UMAC_MAX_NONCE_SIZE   #define UMAC_MAX_NONCE_SIZE 16   #endif   #ifndef UMAC_NONCE_SIZE   #define UMAC_NONCE_SIZE UMAC_MAX_NONCE_SIZE   #endif    - #define UMAC32_BLOCK_SIZE UMAC_BLOCK_SIZE - #define UMAC32_KEY_SIZE UMAC_KEY_SIZE - #define UMAC32_IV_SIZE UMAC_NONCE_SIZE + #define UMAC32_AES_BLOCK_SIZE UMAC_BLOCK_SIZE + #define UMAC32_AES_KEY_SIZE UMAC_KEY_SIZE + #define UMAC32_AES_IV_SIZE UMAC_NONCE_SIZE + #define UMAC32_AES_DIGEST_SIZE UMAC32_DIGEST_SIZE   #define pike_umac32_set_iv umac32_set_nonce      static void pike_umac32_set_key(void *ctx, pike_nettle_size_t len,    const uint8_t *key)   {    if (len != UMAC_KEY_SIZE) {    Pike_error("Invalid key length.\n");    }    umac32_set_key(ctx, key);   }    - #cmod_define PIKE_NAME UMAC32 + #cmod_define PIKE_NAME UMAC32_AES   #cmod_define NETTLE_NAME umac32   #cmod_include "mac.H"   #cmod_undef PIKE_NAME   #cmod_undef NETTLE_NAME    - #define UMAC64_BLOCK_SIZE UMAC_BLOCK_SIZE - #define UMAC64_KEY_SIZE UMAC_KEY_SIZE - #define UMAC64_IV_SIZE UMAC_NONCE_SIZE + #define UMAC64_AES_BLOCK_SIZE UMAC_BLOCK_SIZE + #define UMAC64_AES_KEY_SIZE UMAC_KEY_SIZE + #define UMAC64_AES_IV_SIZE UMAC_NONCE_SIZE + #define UMAC64_AES_DIGEST_SIZE UMAC64_DIGEST_SIZE   #define pike_umac64_set_iv umac64_set_nonce      static void pike_umac64_set_key(void *ctx, pike_nettle_size_t len,    const uint8_t *key)   {    if (len != UMAC_KEY_SIZE) {    Pike_error("Invalid key length.\n");    }    umac64_set_key(ctx, key);   }    - #cmod_define PIKE_NAME UMAC64 + #cmod_define PIKE_NAME UMAC64_AES   #cmod_define NETTLE_NAME umac64   #cmod_include "mac.H"   #cmod_undef PIKE_NAME   #cmod_undef NETTLE_NAME    - #define UMAC96_BLOCK_SIZE UMAC_BLOCK_SIZE - #define UMAC96_KEY_SIZE UMAC_KEY_SIZE - #define UMAC96_IV_SIZE UMAC_NONCE_SIZE + #define UMAC96_AES_BLOCK_SIZE UMAC_BLOCK_SIZE + #define UMAC96_AES_KEY_SIZE UMAC_KEY_SIZE + #define UMAC96_AES_IV_SIZE UMAC_NONCE_SIZE + #define UMAC96_AES_DIGEST_SIZE UMAC96_DIGEST_SIZE   #define pike_umac96_set_iv umac96_set_nonce      static void pike_umac96_set_key(void *ctx, pike_nettle_size_t len,    const uint8_t *key)   {    if (len != UMAC_KEY_SIZE) {    Pike_error("Invalid key length.\n");    }    umac96_set_key(ctx, key);   }    - #cmod_define PIKE_NAME UMAC96 + #cmod_define PIKE_NAME UMAC96_AES   #cmod_define NETTLE_NAME umac96   #cmod_include "mac.H"   #cmod_undef PIKE_NAME   #cmod_undef NETTLE_NAME    - #define UMAC128_BLOCK_SIZE UMAC_BLOCK_SIZE - #define UMAC128_KEY_SIZE UMAC_KEY_SIZE - #define UMAC128_IV_SIZE UMAC_NONCE_SIZE + #define UMAC128_AES_BLOCK_SIZE UMAC_BLOCK_SIZE + #define UMAC128_AES_KEY_SIZE UMAC_KEY_SIZE + #define UMAC128_AES_IV_SIZE UMAC_NONCE_SIZE + #define UMAC128_AES_DIGEST_SIZE UMAC128_DIGEST_SIZE   #define pike_umac128_set_iv umac128_set_nonce      static void pike_umac128_set_key(void *ctx, pike_nettle_size_t len,    const uint8_t *key)   {    if (len != UMAC_KEY_SIZE) {    Pike_error("Invalid key length.\n");    }    umac128_set_key(ctx, key);   }    - #cmod_define PIKE_NAME UMAC128 + #cmod_define PIKE_NAME UMAC128_AES   #cmod_define NETTLE_NAME umac128   #cmod_include "mac.H"   #cmod_undef PIKE_NAME   #cmod_undef NETTLE_NAME      #endif      /*! @endmodule Nettle */      void