| /*------------------------------------------------------------------------- |
| * |
| * cryptohash.h |
| * Generic headers for cryptographic hash functions. |
| * |
| * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * IDENTIFICATION |
| * src/include/common/cryptohash.h |
| * |
| *------------------------------------------------------------------------- |
| */ |
| |
| #ifndef PG_CRYPTOHASH_H |
| #define PG_CRYPTOHASH_H |
| |
| /* Context Structures for each hash function */ |
| typedef enum |
| { |
| PG_MD5 = 0, |
| PG_SHA1, |
| PG_SHA224, |
| PG_SHA256, |
| PG_SHA384, |
| PG_SHA512, |
| PG_SM3 |
| } pg_cryptohash_type; |
| |
| /* opaque context, private to each cryptohash implementation */ |
| typedef struct pg_cryptohash_ctx pg_cryptohash_ctx; |
| |
| extern pg_cryptohash_ctx *pg_cryptohash_create(pg_cryptohash_type type); |
| extern int pg_cryptohash_init(pg_cryptohash_ctx *ctx); |
| extern int pg_cryptohash_update(pg_cryptohash_ctx *ctx, const uint8 *data, size_t len); |
| extern int pg_cryptohash_final(pg_cryptohash_ctx *ctx, uint8 *dest, size_t len); |
| extern void pg_cryptohash_free(pg_cryptohash_ctx *ctx); |
| extern const char *pg_cryptohash_error(pg_cryptohash_ctx *ctx); |
| |
| #endif /* PG_CRYPTOHASH_H */ |