Added HMAC code from TLS project
[people/adir/gpxe.git] / src / include / gpxe / hmac.h
1 #ifndef _GPXE_HMAC_H
2 #define _GPXE_HMAC_H
3
4 /** @file
5  *
6  * Keyed-Hashing for Message Authentication
7  */
8
9 #include <gpxe/crypto.h>
10
11 /**
12  * Update HMAC
13  *
14  * @v digest            Digest algorithm to use
15  * @v digest_ctx        Digest context
16  * @v data              Data
17  * @v len               Length of data
18  */
19 static inline void hmac_update ( struct crypto_algorithm *digest,
20                                  void *digest_ctx, const void *data,
21                                  size_t len ) {
22         digest_update ( digest, digest_ctx, data, len );
23 }
24
25 extern void hmac_init ( struct crypto_algorithm *digest, void *digest_ctx,
26                         void *key, size_t *key_len );
27 extern void hmac_final ( struct crypto_algorithm *digest, void *digest_ctx,
28                          void *key, size_t *key_len, void *hmac );
29
30 #endif /* _GPXE_HMAC_H */