1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-04-21 10:26:06 +03:00

add more functions to handle sha1 in differed cases

This commit is contained in:
Markus Sattler 2015-05-20 19:41:40 +02:00
parent 495e21d53e
commit 4b786d0df6
3 changed files with 67 additions and 6 deletions

View File

@ -9,15 +9,21 @@ void setup() {
} }
void loop() { void loop() {
// usage as String
// SHA1:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
Serial.print("SHA1:");
Serial.println(sha1("abc"));
// usage as ptr
// SHA1:a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
uint8_t hash[20]; uint8_t hash[20];
const uint8_t test[] = "test"; sha1("abc", &hash[0]);
sha1((uint8_t *)&test[0], sizeof(test)-1, &hash[0]);
// SHA1: A94A8FE5CCB19BA61C4C0873D391E987982FBBD3
Serial.print("SHA1:"); Serial.print("SHA1:");
for(uint16_t i = 0; i < 20; i++) { for(uint16_t i = 0; i < 20; i++) {
Serial.printf("%02X", hash[i]); Serial.printf("%02x", hash[i]);
} }
Serial.println(); Serial.println();

View File

@ -66,6 +66,52 @@ void sha1(uint8_t * data, uint32_t size, uint8_t hash[20]) {
#endif #endif
} }
void sha1(char * data, uint32_t size, uint8_t hash[20]) {
sha1((uint8_t *) data, size, hash);
}
void sha1(const uint8_t * data, uint32_t size, uint8_t hash[20]) { void sha1(const uint8_t * data, uint32_t size, uint8_t hash[20]) {
sha1((uint8_t *) data, size, hash); sha1((uint8_t *) data, size, hash);
} }
void sha1(const char * data, uint32_t size, uint8_t hash[20]) {
sha1((uint8_t *) data, size, hash);
}
void sha1(String data, uint8_t hash[20]) {
sha1(data.c_str(), data.length(), hash);
}
String sha1(uint8_t* data, uint32_t size) {
uint8_t hash[20];
String hashStr = "";
sha1(&data[0], size, &hash[0]);
for(uint16_t i = 0; i < 20; i++) {
String hex = String(hash[i], HEX);
if(hex.length() < 2) {
hex = "0" + hex;
}
hashStr += hex;
}
return hashStr;
}
String sha1(char* data, uint32_t size) {
return sha1((uint8_t*) data, size);
}
String sha1(const uint8_t* data, uint32_t size) {
return sha1((uint8_t*) data, size);
}
String sha1(const char* data, uint32_t size) {
return sha1((uint8_t*) data, size);
}
String sha1(String data) {
return sha1(data.c_str(), data.length());
}

View File

@ -28,6 +28,15 @@
//#define DEBUG_SHA1 //#define DEBUG_SHA1
void sha1(uint8_t * data, uint32_t size, uint8_t hash[20]); void sha1(uint8_t * data, uint32_t size, uint8_t hash[20]);
void sha1(char * data, uint32_t size, uint8_t hash[20]);
void sha1(const uint8_t * data, uint32_t size, uint8_t hash[20]); void sha1(const uint8_t * data, uint32_t size, uint8_t hash[20]);
void sha1(const char * data, uint32_t size, uint8_t hash[20]);
void sha1(String data , uint8_t hash[20]);
String sha1(uint8_t* data, uint32_t size);
String sha1(char* data, uint32_t size);
String sha1(uint8_t* data, uint32_t size);
String sha1(const char* data, uint32_t size);
String sha1(String data);
#endif /* HASH_H_ */ #endif /* HASH_H_ */