• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Библиотека md5.h

mishgan

Member
Есть ли аналог ардуиновой библиотеки MD5.h для esp8266?
Код:
#include <MD5.h>
void setup()
{
  Serial.begin(9600);
  unsigned char* hash=MD5::make_hash("hello world");
  char *md5str = MD5::make_digest(hash, 16);
  Serial.println(String(md5str));
}
На ардуино мега скетч работает нормально. Меняю на nodeMCU 1.0 и получаю ошибку

In file included from MD5_Hash.ino:1:0:
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:31:3: error: 'uint32_t' does not name a type
uint32_t state[4];
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:32:3: error: 'uint32_t' does not name a type
uint32_t count[2];
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:33:3: error: 'uint8_t' does not name a type
uint8_t buffer[64];
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:37:41: error: 'uint8_t' has not been declared
extern void MD5Update (md5_context_t *, uint8_t *, uint16_t);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:37:52: error: 'uint16_t' has not been declared
extern void MD5Update (md5_context_t *, uint8_t *, uint16_t);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:23: error: variable or field 'MD5Final' declared void
extern void MD5Final (uint8_t [16], md5_context_t *);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:23: error: 'uint8_t' was not declared in this scope
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:51: error: expected primary-expression before '*' token
extern void MD5Final (uint8_t [16], md5_context_t *);
^
C:\Documents and Settings\Admin\Application Data\Arduino15\packages\esp8266\hardware\esp8266\2.2.0\cores\esp8266/MD5.h:38:52: error: expected primary-expression before ')' token
extern void MD5Final (uint8_t [16], md5_context_t *);
^
MD5_Hash.ino: In function 'void setup()':
MD5_Hash:5: error: 'MD5' has not been declared
MD5_Hash:6: error: 'MD5' has not been declared
'MD5' has not been declared
 
Последнее редактирование:

Юрий Ботов

Moderator
Команда форума
судя по ошибкам надо перед подключением include определить использующиеся в нем типы: uint8_t и uint32_t
перед include вставьте:
typedef unsigned int uint32_t;
typedef unsigned short uint16_t;
typedef unsigned char uint8_t;

по идее после этого все заработает, если нет других ошибок.
 
Сверху Снизу