[Interest] hmac sha256

Hamish Moffatt hamish at risingsoftware.com
Tue Oct 16 00:10:56 CEST 2018


On 16/10/18 08:16, Jérôme Godbout wrote:
> Hi,
> I'm trying to find the C++ equivalent of this python:
> /import hashlib/
> /import hmac/
> /hmac.new(bytearray(m_api_secret, 'utf-8'), bytearray(payload, 
> 'utf-8'), hashlib.sha256).hexdigest()/
> /
> /
> Or my Javascript equivalent (both give the same results):
> crypto.createHmac("sha256", m_api_secret).update(payload).digest("hex");
> /
> /
> I have try the following:
>
>   * QMessageAuthenticationCode::hash(payload,
>     QByteArray::fromHex(m_api_secret),
>     QCryptographicHash::Sha256).toHex();
>   * QMessageAuthenticationCode::hash(payload,
>     QByteArray::fromHex(m_api_secret),
>     QCryptographicHash::Sha3_256).toHex();
>   * QMessageAuthenticationCode::hash(payload, m_api_secret,
>     QCryptographicHash::Sha256).toHex();
>   * QMessageAuthenticationCode::hash(payload, m_api_secret,
>     QCryptographicHash::Sha3_256).toHex();
>   * QMessageAuthenticationCode::hash(QByteArray::fromHex(payload),
>     QByteArray::fromHex(m_api_secret),
>     QCryptographicHash::Sha256).toHex();
>   * QMessageAuthenticationCode::hash(QByteArray::fromHex(payload),
>     QByteArray::fromHex(m_api_secret),
>     QCryptographicHash::Sha3_256).toHex();
>
> But I never get the same results as the Python or Javascript one. 
> Maybe I'm using the wrong class here. Anybody have a good pointer on 
> how to do this?
> Any good hmac sha256 class to perform this?

In Python you encoded the key and payload as utf-8 before hashing, but 
you didn't mention the encoding in C++.

What's in m_api_secret and payload? If they are hex strings then you 
definitely need the fromHex.


Hamish


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20181015/42d2366d/attachment.html>


More information about the Interest mailing list