Unicode C
Unicode C
Transition from Crypt2.GetSignerCertChain to Crypt2.LastSignerCert
Provides instructions for replacing deprecated GetSignerCertChain method calls with LastSignerCert.Chilkat Unicode C Downloads
#include <C_CkCrypt2W.h>
#include <C_CkCertChainW.h>
#include <C_CkCertW.h>
void ChilkatSample(void)
{
BOOL success;
HCkCrypt2W crypt2;
int index;
HCkCertChainW certchainObj;
HCkCertW signerCert;
HCkCertChainW certChain;
success = FALSE;
crypt2 = CkCrypt2W_Create();
// ...
// ...
index = 0;
// ------------------------------------------------------------------------
// The GetSignerCertChain method is deprecated:
certchainObj = CkCrypt2W_GetSignerCertChain(crypt2,index);
if (CkCrypt2W_getLastMethodSuccess(crypt2) == FALSE) {
wprintf(L"%s\n",CkCrypt2W_lastErrorText(crypt2));
CkCrypt2W_Dispose(crypt2);
return;
}
// ...
// ...
CkCertChainW_Dispose(certchainObj);
// ------------------------------------------------------------------------
// Do the equivalent using LastSignerCert, and then get the certificate chain from the cert.
// Your application creates a new, empty Cert object which is passed
// in the last argument and filled upon success.
signerCert = CkCertW_Create();
success = CkCrypt2W_LastSignerCert(crypt2,index,signerCert);
if (success == FALSE) {
wprintf(L"%s\n",CkCrypt2W_lastErrorText(crypt2));
CkCrypt2W_Dispose(crypt2);
CkCertW_Dispose(signerCert);
return;
}
certChain = CkCertChainW_Create();
success = CkCertW_BuildCertChain(signerCert,certChain);
if (success == FALSE) {
wprintf(L"%s\n",CkCertW_lastErrorText(signerCert));
CkCrypt2W_Dispose(crypt2);
CkCertW_Dispose(signerCert);
CkCertChainW_Dispose(certChain);
return;
}
CkCrypt2W_Dispose(crypt2);
CkCertW_Dispose(signerCert);
CkCertChainW_Dispose(certChain);
}