Fork of François Berder Crypto, fixed AES CBC and small rework

Dependents:   AES_example shaun_larada Smartage

Fork of Crypto by Francois Berder

Committer:
feb11
Date:
Thu Sep 12 16:03:43 2013 +0000
Revision:
6:19aa835f2bbb
Parent:
5:06cd9c8afa0b
change public API for hash + small improvements for hash + rearrange code

Who changed what in which revision?

UserRevisionLine numberNew contents of line
feb11 0:7a1237bd2d13 1 #ifndef SHA2_64_H
feb11 0:7a1237bd2d13 2 #define SHA2_64_H
feb11 0:7a1237bd2d13 3
feb11 0:7a1237bd2d13 4 #include <stdint.h>
feb11 0:7a1237bd2d13 5
feb11 0:7a1237bd2d13 6 enum SHA2_64_TYPE
feb11 0:7a1237bd2d13 7 {
feb11 0:7a1237bd2d13 8 SHA_384,
feb11 0:7a1237bd2d13 9 SHA_512
feb11 0:7a1237bd2d13 10 };
feb11 0:7a1237bd2d13 11
feb11 0:7a1237bd2d13 12 class SHA2_64
feb11 0:7a1237bd2d13 13 {
feb11 0:7a1237bd2d13 14 public :
feb11 0:7a1237bd2d13 15
feb11 0:7a1237bd2d13 16 SHA2_64(SHA2_64_TYPE type);
feb11 6:19aa835f2bbb 17
feb11 6:19aa835f2bbb 18 void update(uint8_t *data, uint32_t length);
feb11 6:19aa835f2bbb 19 void finalize(uint8_t *hash);
feb11 6:19aa835f2bbb 20
feb11 6:19aa835f2bbb 21 static void computeHash(SHA2_64_TYPE type, uint8_t *hash, uint8_t *data, uint32_t length);
feb11 0:7a1237bd2d13 22
feb11 0:7a1237bd2d13 23 private :
feb11 0:7a1237bd2d13 24
feb11 0:7a1237bd2d13 25 static void computeBlock(uint64_t *h02,
feb11 0:7a1237bd2d13 26 uint64_t *h12,
feb11 0:7a1237bd2d13 27 uint64_t *h22,
feb11 0:7a1237bd2d13 28 uint64_t *h32,
feb11 0:7a1237bd2d13 29 uint64_t *h42,
feb11 0:7a1237bd2d13 30 uint64_t *h52,
feb11 0:7a1237bd2d13 31 uint64_t *h62,
feb11 0:7a1237bd2d13 32 uint64_t *h72,
feb11 0:7a1237bd2d13 33 uint8_t *buffer);
feb11 0:7a1237bd2d13 34
feb11 0:7a1237bd2d13 35 SHA2_64_TYPE type;
feb11 0:7a1237bd2d13 36 uint64_t h0, h1, h2, h3, h4, h5, h6, h7;
feb11 0:7a1237bd2d13 37 uint32_t totalBufferLength;
feb11 0:7a1237bd2d13 38 uint8_t buffer[128];
feb11 0:7a1237bd2d13 39 uint8_t bufferLength;
feb11 0:7a1237bd2d13 40 };
feb11 0:7a1237bd2d13 41
feb11 0:7a1237bd2d13 42 #endif