return 0;
}
-static void
-wrap_padlock_hash_reset (void *src_ctx)
-{
- struct padlock_hash_ctx *ctx;
- ctx = src_ctx;
-
- _ctx_init(ctx->algo, ctx->ctx_ptr);
-}
-
int wrap_padlock_hash_fast(gnutls_digest_algorithm_t algo,
const void* text, size_t text_size,
void* digest)
const gnutls_crypto_digest_st sha_padlock_nano_struct = {
.init = wrap_padlock_hash_init,
.hash = wrap_padlock_hash_update,
- .reset = wrap_padlock_hash_reset,
.output = wrap_padlock_hash_output,
.deinit = wrap_padlock_hash_deinit,
.fast = wrap_padlock_hash_fast,
typedef struct
{
int (*init) (gnutls_digest_algorithm_t, void **ctx);
- void (*reset) (void *ctx);
int (*hash) (void *ctx, const void *src, size_t srcsize);
int (*output) (void *src_ctx, void *digest, size_t digestsize);
void (*deinit) (void *ctx);
ret = _gnutls_mac_output_ssl3 (&handle->mac.dig, tag);
if (ret < 0)
return gnutls_assert_val(ret);
-
- _gnutls_mac_reset_ssl3 (&handle->mac.dig);
}
else
{
}
dig->hash = cc->hash;
- dig->reset = cc->reset;
dig->output = cc->output;
dig->deinit = cc->deinit;
}
dig->hash = _gnutls_digest_ops.hash;
- dig->reset = _gnutls_digest_ops.reset;
dig->output = _gnutls_digest_ops.output;
dig->deinit = _gnutls_digest_ops.deinit;
return 0;
}
-void
-_gnutls_mac_reset_ssl3 (digest_hd_st * handle)
-{
- uint8_t ipad[48];
- int padsize;
-
- padsize = get_padsize (handle->algorithm);
-
- memset (ipad, 0x36, padsize);
-
- _gnutls_hash_reset(handle);
-
- if (handle->keysize > 0)
- _gnutls_hash (handle, handle->key, handle->keysize);
- _gnutls_hash (handle, ipad, padsize);
-
- return;
-}
-
int
_gnutls_mac_output_ssl3 (digest_hd_st * handle, void *digest)
{
_gnutls_hash_deinit (&td, digest);
+ /* reset handle */
+ memset (opad, 0x36, padsize);
+
+ if (handle->keysize > 0)
+ _gnutls_hash (handle, handle->key, handle->keysize);
+ _gnutls_hash (handle, opad, padsize);
+
return 0;
}
typedef int (*hash_func) (void *handle, const void *text, size_t size);
typedef int (*nonce_func) (void *handle, const void *text, size_t size);
-typedef void (*reset_func) (void *ctx);
typedef int (*output_func) (void *src_ctx, void *digest, size_t digestsize);
typedef void (*deinit_func) (void *handle);
{
gnutls_digest_algorithm_t algorithm;
hash_func hash;
- reset_func reset;
output_func output;
deinit_func deinit;
}
}
-inline static void
-_gnutls_hash_reset (digest_hd_st * handle)
-{
- if (handle->handle == NULL)
- {
- return;
- }
-
- handle->reset (handle->handle);
-}
-
void
_gnutls_hash_deinit (digest_hd_st * handle, void *digest);
const void *second, int second_len,
int ret_len, uint8_t * ret);
-void _gnutls_mac_reset_ssl3 (digest_hd_st * handle);
-
int _gnutls_mac_deinit_ssl3_handshake (digest_hd_st * handle, void *digest,
uint8_t * key, uint32_t key_size);
return 0;
}
-static void
-wrap_nettle_hash_reset (void *src_ctx)
-{
- struct nettle_hash_ctx *ctx;
- ctx = src_ctx;
-
- _ctx_init(ctx->algo, ctx->ctx_ptr);
-}
-
-
gnutls_crypto_mac_st _gnutls_mac_ops = {
.init = wrap_nettle_mac_init,
.setkey = wrap_nettle_mac_set_key,
gnutls_crypto_digest_st _gnutls_digest_ops = {
.init = wrap_nettle_hash_init,
.hash = wrap_nettle_hash_update,
- .reset = wrap_nettle_hash_reset,
.output = wrap_nettle_hash_output,
.deinit = wrap_nettle_hash_deinit,
.fast = wrap_nettle_hash_fast,