Skip to content

bakercp/Cryptosuite

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 

Repository files navigation

Please see the full documentation at http://spaniakos.github.io/Cryptosuite

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

UPDATE* Added Intel Galileo Support Added printf.h so galileo can redirect to serial all the printf requests.

UPDATE* Raspberry pi support added

Raspberry pi

install

sudo make install
cd examples_Rpi
make

What to do after changes to the library

sudo make clean
sudo make install
cd examples_Rpi
make clean
make

What to do after changes to a sketch

cd examples_Rpi
make <sketch>

or 
make clean
make

How to start a sketch

cd examples_Rpi
sudo ./<sketch>

About

Cryptographic suite for Arduino (SHA, HMAC-SHA)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 61.7%
  • Processing 27.4%
  • Makefile 5.6%
  • C 5.3%