Libraries: SHA256, SHA384 and SHA512 + HMAC

To add comments, please log in or register
Automated-Trading
127277
Automated-Trading  

SHA256, SHA384 and SHA512 + HMAC:

Many developers need these functions, while working with different kinds of external APIs, like Bitcoin and altcoin exchanges where it is often necessary to send data with the confirmation of parameters validity through HMAC-SHA512, HMAC-SHA384 and HMAC-SHA256.

The MQL5 version of SHA512 library can be found here: https://www.mql5.com/en/code/18158. Besides SHA512, added SHA256 and SHA384 support in form of separate libraries.

HMAC functions were ported from https://en.wikipedia.org/wiki/Hash-based_message_authentication_code

Use example (tested on http://www.freeformatter.com/hmac-generator.html)

#include <SHA256.mqh>
#include <SHA384.mqh>
#include <SHA512.mqh>

input string phrase = "The quick brown fox jumps over the lazy dog";
input string phrase_key = "ABCDEFG";

void Start()
  {
   SHA256 hash256;
   Print("SHA256:",hash256.hmac(phrase,phrase_key));

   SHA384 hash384;
   Print("SHA384:",hash384.hmac(phrase,phrase_key));

   SHA512 hash512;
   Print("SHA512:",hash512.hmac(phrase,phrase_key));
  }

Author: Grzegorz Korycki

Tom Sasson
181
Tom Sasson  
Amazing job! Thanks!
Marco vd Heijden
Moderator
7838
Marco vd Heijden  

Thanks i hope there's RIPEMD160 also.

For crypto there is need to use immutable bytestring.

To add comments, please log in or register