1 #ifndef PBKDF2_SHA256_H
2 #define PBKDF2_SHA256_H
5 unsigned long total[2]; /*!< number of bytes processed */
6 unsigned long state[8]; /*!< intermediate digest state */
7 unsigned char buffer[64]; /*!< data block being processed */
9 unsigned char ipad[64]; /*!< HMAC: inner padding */
10 unsigned char opad[64]; /*!< HMAC: outer padding */
11 int is224; /*!< 0 => SHA-256, else SHA-224 */
14 void sha2_starts( sha2_context *ctx, int is224 );
15 void sha2_update( sha2_context *ctx, const unsigned char *input, size_t ilen );
16 void sha2_finish( sha2_context *ctx, unsigned char output[32] );
18 void sha2_hmac_starts( sha2_context *ctx, const unsigned char *key, size_t keylen, int is224 );
19 void sha2_hmac_update( sha2_context *ctx, const unsigned char *input, size_t ilen );
20 void sha2_hmac_finish( sha2_context *ctx, unsigned char output[32] );
23 void PKCS5_PBKDF2_HMAC(unsigned char *password, size_t plen,
24 unsigned char *salt, size_t slen,
25 const unsigned long iteration_count, const unsigned long key_length,
26 unsigned char *output);