BeRTOS
pbkdf2.h
Go to the documentation of this file.
00001 
00038 #ifndef SEC_KDF_PBKDF2_H
00039 #define SEC_KDF_PBKDF2_H
00040 
00041 #include <sec/kdf.h>
00042 #include <sec/mac.h>
00043 
00044 typedef struct
00045 {
00046     Kdf kdf;
00047     Mac *mac;
00048     uint8_t block[20];
00049     uint32_t c;
00050     uint32_t iterations;
00051     uint8_t salt_len;
00052     uint8_t salt[48];
00053 } PBKDF2_Context;
00054 
00055 void PBKDF2_init(PBKDF2_Context *ctx, Mac *mac);
00056 void PBKDF2_set_iterations(Kdf *kdf, uint32_t iterations);
00057 
00058 #define PBKDF2_stackinit(...) \
00059     ({ PBKDF2_Context *ctx = alloca(sizeof(PBKDF2_Context)); PBKDF2_init(ctx , ##__VA_ARGS__); &ctx->kdf; })
00060 
00061 int PBKDF2_testSetup(void);
00062 int PBKDF2_testRun(void);
00063 int PBKDF2_testTearDown(void);
00064 
00065 #endif /* SEC_KDF_PBKDF2_H */