Sample code for 30+ languages & platforms
C++

Workaround for the deprecated Crypt2.MacBytes method

Shows how to replace the deprecated MacBytes 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");

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

    //  ------------------------------------------------------------------------
    //  The MacBytes method is deprecated:

    CkByteData inData;
    inData.loadFile(path);

    CkByteData outData;

    success = crypt.MacBytes(inData,outData);

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

    CkBinData bdIn;
    bdIn.LoadFile(path);

    //  Set to any supported Chilkat encoding: base64, hex, base64url, hex_lower, etc.
    crypt.put_EncodingMode("base64");
    const char *mac_base64 = crypt.macBdENC(bdIn);

    std::cout << mac_base64 << "\r\n";
    }