Hi RIOTers!

I’m trying the sha256 module on RIOT master and I just realised it returns always a different value… for now, I’m doing this:


sha256_update(&sha256, (uint8_t*)firmware_bin, firmware_size);

sha256_final(&sha256, metadata.hash);

To initialise and store the hash, according to the unittest which does very similar.

Am I doing something wrong?

Thanks in advance!


Hey Paco!

Hi Oleg! Thanks for your answer.

I should maybe give more hints.

I’m compiling sha256 without RIOT (and actually I removed #include “board.h”, I don’t know what’s the use there) and it compiles fine, but maybe it references something on RIOT internals?

firmware_bin it’s a binary file of a firmware, loaded using fopen. metadata.hash it’s a local variable, so it’s no related to firmware_bin.

Maybe this function is only intended for its use on RIOT?

My goal is to produce the same hash using a native application (without RIOT) and compare it at runtime by a RIOT application in a iotlab-m3 node. I suppose that using the same sha256 function on both sides increases interoperability, but it’s also true that a sha256 should be the same in all circumstances.

Thanks again for your help!