return 0;
}
-static int
-wrap_padlock_hash_copy (void **bhd, void *ahd)
-{
- struct padlock_hash_ctx *ctx = ahd;
- struct padlock_hash_ctx *dst_ctx;
- int ret;
-
- ret = wrap_padlock_hash_init (ctx->algo, bhd);
- if (ret < 0)
- {
- gnutls_assert ();
- return ret;
- }
-
- dst_ctx = *bhd;
-
- memcpy (&dst_ctx->ctx, &ctx->ctx, sizeof (ctx->ctx));
-
- return 0;
-}
-
-
static int
wrap_padlock_hash_output (void *src_ctx, void *digest, size_t digestsize)
{
.init = wrap_padlock_hash_init,
.hash = wrap_padlock_hash_update,
.reset = wrap_padlock_hash_reset,
- .copy = wrap_padlock_hash_copy,
.output = wrap_padlock_hash_output,
.deinit = wrap_padlock_hash_deinit,
.fast = wrap_padlock_hash_fast,
int (*init) (gnutls_digest_algorithm_t, void **ctx);
void (*reset) (void *ctx);
int (*hash) (void *ctx, const void *src, size_t srcsize);
- int (*copy) (void **dst_ctx, void *src_ctx);
int (*output) (void *src_ctx, void *digest, size_t digestsize);
void (*deinit) (void *ctx);
int (*fast)(gnutls_digest_algorithm_t, const void *src, size_t srcsize, void *digest);
}
dig->hash = cc->hash;
- dig->copy = cc->copy;
dig->reset = cc->reset;
dig->output = cc->output;
dig->deinit = cc->deinit;
}
dig->hash = _gnutls_digest_ops.hash;
- dig->copy = _gnutls_digest_ops.copy;
dig->reset = _gnutls_digest_ops.reset;
dig->output = _gnutls_digest_ops.output;
dig->deinit = _gnutls_digest_ops.deinit;
return digest_length (algorithm);
}
-int
-_gnutls_hash_copy (digest_hd_st * dst, digest_hd_st * src)
-{
-
- memset (dst, 0, sizeof (*dst));
- dst->algorithm = src->algorithm;
-
- dst->hash = src->hash;
- dst->copy = src->copy;
- dst->output = src->output;
- dst->deinit = src->deinit;
-
- return src->copy (&dst->handle, src->handle);
-}
-
-
-
int
_gnutls_hash_fast (gnutls_digest_algorithm_t algorithm,
const void *text, size_t textlen, void *digest)
extern gnutls_crypto_digest_st _gnutls_digest_ops;
typedef int (*hash_func) (void *handle, const void *text, size_t size);
-typedef int (*copy_func) (void **dst_ctx, void *src_ctx);
typedef void (*reset_func) (void *ctx);
typedef int (*output_func) (void *src_ctx, void *digest, size_t digestsize);
typedef void (*deinit_func) (void *handle);
int keysize;
hash_func hash;
- copy_func copy;
reset_func reset;
output_func output;
deinit_func deinit;
int _gnutls_mac_deinit_ssl3_handshake (digest_hd_st * handle, void *digest,
uint8_t * key, uint32_t key_size);
-int _gnutls_hash_copy (digest_hd_st * dst_handle, digest_hd_st * src_handle);
-
inline static int IS_SHA(gnutls_digest_algorithm_t algo)
{
if (algo == GNUTLS_DIG_SHA1 || algo == GNUTLS_DIG_SHA224 ||
return GNUTLS_E_SUCCESS;
}
-static int
-wrap_nettle_hash_copy (void **bhd, void *ahd)
-{
- struct nettle_hash_ctx *ctx = ahd;
- struct nettle_hash_ctx *dst_ctx;
- int ret;
-
- ret = wrap_nettle_hash_init (ctx->algo, bhd);
- if (ret < 0)
- {
- gnutls_assert ();
- return ret;
- }
-
- dst_ctx = *bhd;
-
- memcpy (&dst_ctx->ctx, &ctx->ctx, sizeof (ctx->ctx));
-
- return 0;
-}
-
static void
wrap_nettle_hash_deinit (void *hd)
{
.init = wrap_nettle_hash_init,
.hash = wrap_nettle_hash_update,
.reset = wrap_nettle_hash_reset,
- .copy = wrap_nettle_hash_copy,
.output = wrap_nettle_hash_output,
.deinit = wrap_nettle_hash_deinit,
.fast = wrap_nettle_hash_fast,