C
C
Workaround for the deprecated Crypt2.SignBytes method
Shows how to replace the deprecated SignBytes method. (Chilkat is moving away from the use of CkByteData.)Chilkat C Downloads
#include <C_CkCrypt2.h>
#include <C_CkCert.h>
#include <C_CkByteData.h>
#include <C_CkBinData.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2 crypt;
HCkCert cert;
const char *path;
HCkByteData inData;
HCkByteData outData;
HCkBinData bdIn;
const char *base64_sig;
HCkBinData bdSig;
success = FALSE;
crypt = CkCrypt2_Create();
cert = CkCert_Create();
// ...
// Load the cert from a source such as a .pfx/.p12 file, smart card, USB token, Apple keychain, Windows certificate store, etc.
//
success = CkCrypt2_SetSigningCert(crypt,cert);
CkCrypt2_putHashAlgorithm(crypt,"sha256");
path = "c:/someDir/example.dat";
// ------------------------------------------------------------------------
// The SignBytes method is deprecated:
inData = CkByteData_Create();
CkByteData_loadFile(inData,path);
outData = CkByteData_Create();
success = CkCrypt2_SignBytes(crypt,inData,outData);
// ------------------------------------------------------------------------
// Workaround.
// (Chilkat is moving away from using CkByteData)
bdIn = CkBinData_Create();
CkBinData_LoadFile(bdIn,path);
CkCrypt2_putEncodingMode(crypt,"base64");
base64_sig = CkCrypt2_signBdENC(crypt,bdIn);
// If you want to access the bytes...
bdSig = CkBinData_Create();
CkBinData_AppendEncoded(bdSig,base64_sig,"base64");
CkCrypt2_Dispose(crypt);
CkCert_Dispose(cert);
CkByteData_Dispose(inData);
CkByteData_Dispose(outData);
CkBinData_Dispose(bdIn);
CkBinData_Dispose(bdSig);
}