ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/hkdf.C
(Generate patch)

Comparing gvpe/src/hkdf.C (file contents):
Revision 1.1 by root, Tue Jul 16 16:44:36 2013 UTC vs.
Revision 1.2 by root, Wed Jul 17 04:36:03 2013 UTC

37#include <openssl/hmac.h> 37#include <openssl/hmac.h>
38 38
39#include "util.h" 39#include "util.h"
40#include "hkdf.h" 40#include "hkdf.h"
41 41
42hkdf::hkdf (const void *salt, int len, const EVP_MD *hash) 42hkdf::hkdf (const void *salt, int len, const EVP_MD *xtr_hash)
43{ 43{
44 HMAC_CTX_init (&ctx); 44 HMAC_CTX_init (&ctx);
45 45
46 if (!salt) 46 if (!salt)
47 { 47 {
48 memset (prk, 0, sizeof prk); 48 memset (prk, 0, sizeof prk);
49 salt = prk; 49 salt = prk;
50 len = EVP_MD_size (hash); 50 len = EVP_MD_size (xtr_hash);
51 } 51 }
52 52
53 require (HMAC_Init_ex (&ctx, salt, len, hash, 0)); 53 require (HMAC_Init_ex (&ctx, salt, len, xtr_hash, 0));
54} 54}
55 55
56hkdf::~hkdf () 56hkdf::~hkdf ()
57{ 57{
58 HMAC_CTX_cleanup (&ctx); 58 HMAC_CTX_cleanup (&ctx);
63{ 63{
64 require (HMAC_Update (&ctx, (u8 *)ikm, len)); 64 require (HMAC_Update (&ctx, (u8 *)ikm, len));
65} 65}
66 66
67void 67void
68hkdf::extract_done () 68hkdf::extract_done (const EVP_MD *prf_hash)
69{ 69{
70 require (HMAC_Final (&ctx, prk, 0)); 70 require (HMAC_Final (&ctx, prk, 0));
71 require (HMAC_Init_ex (&ctx, 0, 0, prf_hash, 0));
71} 72}
72 73
73void 74void
74hkdf::expand (void *okm, int len, const void *info, int infolen) 75hkdf::expand (void *okm, int len, const void *info, int infolen)
75{ 76{

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines