Cryptographic suite for Arduino (SHA, HMAC-SHA)
Java C++ C
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Sha Tidying up, removing debug code May 26, 2010
README

README

Cryptosuite is a cryptographic library for Arduino (including SHA and HMAC-SHA)

It currently supports secure hashing and hashed message authentication using SHA-1, SHA-256, HMAC-SHA-1 and HMAC-SHA-256.

Installation:
  Make a 'libraries' directory with your Arduino sketches folder if you do not already have one.
  Copy the 'Sha' directory into that directory.
  Restart Arduino to rescan for new libraries.

Using SHA-1:
  #include "sha1.h"
  ...
  uint8_t *hash;
  Sha1.init();
  Sha1.print("This is a message to hash");
  hash = Sha1.result();

  The hash result is then stored in hash[0], hash[1] .. hash[19].

Using HMAC-SHA-1:
  #include "sha1.h"
  ...
  uint8_t *hash;
  Sha1.initHmac("hash key",8); // key, and length of key in bytes
  Sha1.print("This is a message to hash");
  hash = Sha1.resultHmac();

  The hash result is then stored in hash[0], hash[1] .. hash[19].

Using SHA-256:
  #include "sha256.h"
  ...
  uint8_t *hash;
  Sha256.init();
  Sha256.print("This is a message to hash");
  hash = Sha256.result();

  The hash result is then stored in hash[0], hash[1] .. hash[31].

Using HMAC-SHA-256:
  #include "sha256.h"
  ...
  uint8_t *hash;
  Sha256.initHmac("hash key",8); // key, and length of key in bytes
  Sha256.print("This is a message to hash");
  hash = Sha256.resultHmac();

  The hash result is then stored in hash[0], hash[1] .. hash[31].


Verification:
  The provided example code tests against published test vectors.
  SHA-1: FIPS 180-2, RFC3174 compliant
  HMAC-SHA-1: FIPS 198a compliant
  SHA-256: FIPS 180-2, RFC4231 compliant
  HMAC-SHA-256:  RFC4231 compliant