Sample code for 30+ languages & platforms
C++

Workaround for the deprecated Crypt2.MacBytesENC method

Shows how to replace the deprecated MacBytesENC method. (Chilkat is moving away from the use of CkByteData.)

Chilkat C++ Downloads

C++
#include <CkCrypt2.h>
#include <CkByteData.h>
#include <CkBinData.h>

void ChilkatSample(void)
    {
    bool success = false;

    CkCrypt2 crypt;

    //  Do HMAC using SHA-256.
    crypt.put_MacAlgorithm("hmac");
    crypt.put_HashAlgorithm("sha256");

    const char *keyHex = "000102030405060708090A0B0C0D0E0F";
    success = crypt.SetMacKeyEncoded(keyHex,"hex");

    //  Return the HMAC using the lowercase hex encoding.
    crypt.put_EncodingMode("hex_lower");

    const char *path = "c:/someDir/example.dat";

    //  ------------------------------------------------------------------------
    //  The MacBytesENC method is deprecated:

    CkByteData inData;
    inData.loadFile(path);

    const char *hmac_hex = crypt.macBytesENC(inData);
    std::cout << hmac_hex << "\r\n";

    //  ------------------------------------------------------------------------
    //  Workaround.
    //  (Chilkat is moving away from using CkByteData)

    CkBinData bdIn;
    bdIn.LoadFile(path);

    hmac_hex = crypt.macBdENC(bdIn);
    std::cout << hmac_hex << "\r\n";
    }