X-Git-Url: http://plrg.eecs.uci.edu/git/?p=iotcloud.git;a=blobdiff_plain;f=version2%2Fsrc%2FC%2Fpbkdf2-sha256.h;h=54a0bdf8a428fc663c0eb1c4e720313b40192081;hp=9a79572360eb3488e6aedcb9b5e1c1972628899d;hb=b2bc9b5c707bd7d932d60cd4e8c1cb580b36b5b4;hpb=464b8559d386e200df16569f899f83e969115403 diff --git a/version2/src/C/pbkdf2-sha256.h b/version2/src/C/pbkdf2-sha256.h index 9a79572..54a0bdf 100644 --- a/version2/src/C/pbkdf2-sha256.h +++ b/version2/src/C/pbkdf2-sha256.h @@ -1,6 +1,26 @@ #ifndef PBKDF2_SHA256_H #define PBKDF2_SHA256_H +typedef struct { + unsigned long total[2]; /*!< number of bytes processed */ + unsigned long state[8]; /*!< intermediate digest state */ + unsigned char buffer[64]; /*!< data block being processed */ + + unsigned char ipad[64]; /*!< HMAC: inner padding */ + unsigned char opad[64]; /*!< HMAC: outer padding */ + int is224; /*!< 0 => SHA-256, else SHA-224 */ +} sha2_context; + +void sha2_starts( sha2_context *ctx, int is224 ); +void sha2_update( sha2_context *ctx, const unsigned char *input, size_t ilen ); +void sha2_finish( sha2_context *ctx, unsigned char output[32] ); + +void sha2_hmac_starts( sha2_context *ctx, const unsigned char *key, size_t keylen, int is224 ); +void sha2_hmac_update( sha2_context *ctx, const unsigned char *input, size_t ilen ); +void sha2_hmac_finish( sha2_context *ctx, unsigned char output[32] ); +void sha2_hmac_reset( sha2_context *ctx ); + + void PKCS5_PBKDF2_HMAC(unsigned char *password, size_t plen, unsigned char *salt, size_t slen, const unsigned long iteration_count, const unsigned long key_length,