BeRTOS
|
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 */