/* *pg_cryptohash_init * *Initializeahashcontext.Returns0onsuccess,and-1onfailure.
*/ int
pg_cryptohash_init(pg_cryptohash_ctx *ctx)
{ if (ctx == NULL) return -1;
switch (ctx->type)
{ case PG_MD5:
pg_md5_init(&ctx->data.md5); break; case PG_SHA1:
pg_sha1_init(&ctx->data.sha1); break; case PG_SHA224:
pg_sha224_init(&ctx->data.sha224); break; case PG_SHA256:
pg_sha256_init(&ctx->data.sha256); break; case PG_SHA384:
pg_sha384_init(&ctx->data.sha384); break; case PG_SHA512:
pg_sha512_init(&ctx->data.sha512); break;
}
return0;
}
/* *pg_cryptohash_update * *Updateahashcontext.Returns0onsuccess,and-1onfailure.
*/ int
pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len)
{ if (ctx == NULL) return -1;
switch (ctx->type)
{ case PG_MD5:
pg_md5_update(&ctx->data.md5, data, len); break; case PG_SHA1:
pg_sha1_update(&ctx->data.sha1, data, len); break; case PG_SHA224:
pg_sha224_update(&ctx->data.sha224, data, len); break; case PG_SHA256:
pg_sha256_update(&ctx->data.sha256, data, len); break; case PG_SHA384:
pg_sha384_update(&ctx->data.sha384, data, len); break; case PG_SHA512:
pg_sha512_update(&ctx->data.sha512, data, len); break;
}
return0;
}
/* *pg_cryptohash_final * *Finalizeahashcontext.Returns0onsuccess,and-1onfailure.
*/ int
pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len)
{ if (ctx == NULL) return -1;
switch (ctx->type)
{ case PG_MD5: if (len < MD5_DIGEST_LENGTH)
{
ctx->error = PG_CRYPTOHASH_ERROR_DEST_LEN; return -1;
}
pg_md5_final(&ctx->data.md5, dest); break; case PG_SHA1: if (len < SHA1_DIGEST_LENGTH)
{
ctx->error = PG_CRYPTOHASH_ERROR_DEST_LEN; return -1;
}
pg_sha1_final(&ctx->data.sha1, dest); break; case PG_SHA224: if (len < PG_SHA224_DIGEST_LENGTH)
{
ctx->error = PG_CRYPTOHASH_ERROR_DEST_LEN; return -1;
}
pg_sha224_final(&ctx->data.sha224, dest); break; case PG_SHA256: if (len < PG_SHA256_DIGEST_LENGTH)
{
ctx->error = PG_CRYPTOHASH_ERROR_DEST_LEN; return -1;
}
pg_sha256_final(&ctx->data.sha256, dest); break; case PG_SHA384: if (len < PG_SHA384_DIGEST_LENGTH)
{
ctx->error = PG_CRYPTOHASH_ERROR_DEST_LEN; return -1;
}
pg_sha384_final(&ctx->data.sha384, dest); break; case PG_SHA512: if (len < PG_SHA512_DIGEST_LENGTH)
{
ctx->error = PG_CRYPTOHASH_ERROR_DEST_LEN; return -1;
}
pg_sha512_final(&ctx->data.sha512, dest); break;
}
switch (ctx->error)
{ case PG_CRYPTOHASH_ERROR_NONE: return _("success"); case PG_CRYPTOHASH_ERROR_DEST_LEN: return _("destination buffer too small");
}
Assert(false); return _("success");
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-08-06)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.