Fork of François Berder Crypto, fixed AES CBC and small rework
Dependents: AES_example shaun_larada Smartage
Fork of Crypto by
hash/SHA2_64.h@16:4399e2e6260b, 2015-01-28 (annotated)
- Committer:
- Geremia
- Date:
- Wed Jan 28 17:55:13 2015 +0000
- Revision:
- 16:4399e2e6260b
- Parent:
- 7:2dbbdfb08123
AES: bugfixed CBC, added PCBC (i could add CFB and OFB if needed), added public setIV(), moved keyExpansion() to public, in and out buffers can be the same
Who changed what in which revision?
User | Revision | Line number | New 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 |