This library implements some hash and cryptographic algorithms.

Dependents:   ES_CW2_Starter_JIN EMBEDDED_CW2 EMBEDDED_CW2_Final Spinnybois ... more

Fork of Crypto by Francois Berder

Committer:
feb11
Date:
Sat Sep 14 20:54:59 2013 +0000
Revision:
8:a090264e9b2d
refactored public API for ciphers & added TDES

Who changed what in which revision?

UserRevisionLine numberNew contents of line
feb11 8:a090264e9b2d 1 #include "TDES.h"
feb11 8:a090264e9b2d 2
feb11 8:a090264e9b2d 3 TDES::TDES(uint8_t *key1, uint8_t *key2, uint8_t *key3):
feb11 8:a090264e9b2d 4 BlockCipher(8,ECB_MODE),
feb11 8:a090264e9b2d 5 a(key1),
feb11 8:a090264e9b2d 6 b(key2),
feb11 8:a090264e9b2d 7 c(key3)
feb11 8:a090264e9b2d 8 {
feb11 8:a090264e9b2d 9
feb11 8:a090264e9b2d 10 }
feb11 8:a090264e9b2d 11
feb11 8:a090264e9b2d 12 TDES::TDES(uint8_t *key1, uint8_t *key2, uint8_t *key3, uint8_t *iv):
feb11 8:a090264e9b2d 13 BlockCipher(8,CBC_MODE,iv),
feb11 8:a090264e9b2d 14 a(key1),
feb11 8:a090264e9b2d 15 b(key2),
feb11 8:a090264e9b2d 16 c(key3)
feb11 8:a090264e9b2d 17 {
feb11 8:a090264e9b2d 18
feb11 8:a090264e9b2d 19 }
feb11 8:a090264e9b2d 20
feb11 8:a090264e9b2d 21 void TDES::encryptBlock(uint8_t *out, uint8_t *in)
feb11 8:a090264e9b2d 22 {
feb11 8:a090264e9b2d 23 uint8_t tmp[8], tmp2[8];
feb11 8:a090264e9b2d 24 a.encryptBlock(tmp,in);
feb11 8:a090264e9b2d 25 b.decryptBlock(tmp2,tmp);
feb11 8:a090264e9b2d 26 c.encryptBlock(out, tmp2);
feb11 8:a090264e9b2d 27 }
feb11 8:a090264e9b2d 28
feb11 8:a090264e9b2d 29 void TDES::decryptBlock(uint8_t *out, uint8_t *in)
feb11 8:a090264e9b2d 30 {
feb11 8:a090264e9b2d 31 uint8_t tmp[8], tmp2[8];
feb11 8:a090264e9b2d 32 c.decryptBlock(tmp, in);
feb11 8:a090264e9b2d 33 b.encryptBlock(tmp2, tmp);
feb11 8:a090264e9b2d 34 a.decryptBlock(out, tmp2);
feb11 8:a090264e9b2d 35 }