// This is a generated source file for Chilkat version 11.2.0
#ifndef _C_CkCert_H
#define _C_CkCert_H
#include "chilkatDefs.h"
#include "ck_inttypes.h"
#include "Chilkat_C.h"


CK_C_VISIBLE_PUBLIC void CkCert_setAbortCheck(HCkCert cHandle, BOOL (*fnAbortCheck)(void));
CK_C_VISIBLE_PUBLIC void CkCert_setPercentDone(HCkCert cHandle, BOOL (*fnPercentDone)(int pctDone));
CK_C_VISIBLE_PUBLIC void CkCert_setProgressInfo(HCkCert cHandle, void (*fnProgressInfo)(const char *name, const char *value));
CK_C_VISIBLE_PUBLIC void CkCert_setTaskCompleted(HCkCert cHandle, void (*fnTaskCompleted)(HCkTask hTask));

CK_C_VISIBLE_PUBLIC void CkCert_setAbortCheck2(HCkCert cHandle, BOOL (*fnAbortCheck2)(void *pContext));
CK_C_VISIBLE_PUBLIC void CkCert_setPercentDone2(HCkCert cHandle, BOOL (*fnPercentDone2)(int pctDone, void *pContext));
CK_C_VISIBLE_PUBLIC void CkCert_setProgressInfo2(HCkCert cHandle, void (*fnProgressInfo2)(const char *name, const char *value, void *pContext));
CK_C_VISIBLE_PUBLIC void CkCert_setTaskCompleted2(HCkCert cHandle, void (*fnTaskCompleted2)(HCkTask hTask, void *pContext));

// setExternalProgress is for C callback functions defined in the external programming language (such as Go)
CK_C_VISIBLE_PUBLIC void CkCert_setExternalProgress(HCkCert cHandle, BOOL on);
CK_C_VISIBLE_PUBLIC void CkCert_setCallbackContext(HCkCert cHandle, void *pContext);

CK_C_VISIBLE_PUBLIC HCkCert CkCert_Create(void);
CK_C_VISIBLE_PUBLIC HCkCert CkCert_Create2(int progLang);
CK_C_VISIBLE_PUBLIC void CkCert_Dispose(HCkCert handle);
CK_C_VISIBLE_PUBLIC void CkCert_getAuthorityKeyId(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_authorityKeyId(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getAvoidWindowsPkAccess(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_putAvoidWindowsPkAccess(HCkCert cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC int CkCert_getCertVersion(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getDebugLogFilePath(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkCert_putDebugLogFilePath(HCkCert cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkCert_debugLogFilePath(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getExpired(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getExtendedKeyUsage(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_extendedKeyUsage(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getForClientAuthentication(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getForCodeSigning(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getForSecureEmail(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getForServerAuthentication(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getForTimeStamping(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC unsigned long CkCert_getIntendedKeyUsage(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getIsRoot(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerC(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerC(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerCN(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerCN(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerDN(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerDN(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerE(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerE(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerL(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerL(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerO(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerO(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerOU(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerOU(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getIssuerS(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_issuerS(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getLastErrorHtml(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_lastErrorHtml(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getLastErrorText(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_lastErrorText(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getLastErrorXml(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_lastErrorXml(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getLastMethodSuccess(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_putLastMethodSuccess(HCkCert cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkCert_getOcspUrl(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_ocspUrl(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getPrivateKeyExportable(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getRevoked(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getRfc822Name(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_rfc822Name(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getSelfSigned(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSerialDecimal(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_serialDecimal(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSerialNumber(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_serialNumber(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSha1Thumbprint(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_sha1Thumbprint(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getSignatureVerified(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC int CkCert_getSmartCardFailReason(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getSmartCardNoDialog(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_putSmartCardNoDialog(HCkCert cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkCert_getSmartCardPin(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkCert_putSmartCardPin(HCkCert cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkCert_smartCardPin(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectAlternativeName(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectAlternativeName(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectC(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectC(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectCN(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectCN(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectDN(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectDN(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectE(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectE(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectKeyId(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectKeyId(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectL(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectL(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectO(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectO(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectOU(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectOU(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getSubjectS(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_subjectS(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getTrustedRoot(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getUncommonOptions(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkCert_putUncommonOptions(HCkCert cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkCert_uncommonOptions(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getUtf8(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_putUtf8(HCkCert cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkCert_getValidFromStr(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_validFromStr(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_getValidToStr(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_validToStr(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_getVerboseLogging(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC void CkCert_putVerboseLogging(HCkCert cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkCert_getVersion(HCkCert cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkCert_version(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_BuildCertChain(HCkCert cHandle, HCkCertChain certChain);
CK_C_VISIBLE_PUBLIC int CkCert_CheckRevoked(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC int CkCert_CheckSmartCardPin(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportCertDer(HCkCert cHandle, HCkByteData outData);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportCertDerBd(HCkCert cHandle, HCkBinData cerData);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportCertDerFile(HCkCert cHandle, const char *path);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportCertPem(HCkCert cHandle, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_exportCertPem(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportCertPemFile(HCkCert cHandle, const char *path);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportCertXml(HCkCert cHandle, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_exportCertXml(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC HCkPrivateKey CkCert_ExportPrivateKey(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC HCkPublicKey CkCert_ExportPublicKey(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportToPfxBd(HCkCert cHandle, const char *password, BOOL includeCertChain, HCkBinData pfxData);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportToPfxData(HCkCert cHandle, const char *password, BOOL includeCertChain, HCkByteData outBytes);
CK_C_VISIBLE_PUBLIC BOOL CkCert_ExportToPfxFile(HCkCert cHandle, const char *pfxFilename, const char *pfxPassword, BOOL bIncludeCertChain);
CK_C_VISIBLE_PUBLIC HCkCert CkCert_FindIssuer(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC HCkCertChain CkCert_GetCertChain(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetEncoded(HCkCert cHandle, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_getEncoded(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetExtensionAsText(HCkCert cHandle, const char *oid, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_getExtensionAsText(HCkCert cHandle, const char *oid);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetExtensionAsXml(HCkCert cHandle, const char *oid, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_getExtensionAsXml(HCkCert cHandle, const char *oid);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetExtensionBd(HCkCert cHandle, const char *oid, HCkBinData bd);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetIssuer(HCkCert cHandle, HCkCert issuer);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetPrivateKey(HCkCert cHandle, HCkPrivateKey privKey);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetPrivateKeyPem(HCkCert cHandle, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_getPrivateKeyPem(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetPubKeyDer(HCkCert cHandle, BOOL preferPkcs1, HCkBinData bd);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetPublicKey(HCkCert cHandle, HCkPublicKey pubKey);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetSignature(HCkCert cHandle, HCkBinData bd);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetSpkiFingerprint(HCkCert cHandle, const char *hashAlg, const char *encoding, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_getSpkiFingerprint(HCkCert cHandle, const char *hashAlg, const char *encoding);
CK_C_VISIBLE_PUBLIC BOOL CkCert_GetSubjectPart(HCkCert cHandle, const char *partNameOrOid, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_getSubjectPart(HCkCert cHandle, const char *partNameOrOid);
CK_C_VISIBLE_PUBLIC HCkDateTime CkCert_GetValidFromDt(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC HCkDateTime CkCert_GetValidToDt(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_HashOf(HCkCert cHandle, const char *part, const char *hashAlg, const char *encoding, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_hashOf(HCkCert cHandle, const char *part, const char *hashAlg, const char *encoding);
CK_C_VISIBLE_PUBLIC BOOL CkCert_HasPrivateKey(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_IsEcdsa(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_IsRsa(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LinkPkcs11(HCkCert cHandle, HCkPkcs11 session);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadByCommonName(HCkCert cHandle, const char *cn);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadByEmailAddress(HCkCert cHandle, const char *emailAddress);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadByIssuerAndSerialNumber(HCkCert cHandle, const char *issuerCN, const char *serialNumber);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadBySubjectOid(HCkCert cHandle, const char *oid, const char *value);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadByThumbprint(HCkCert cHandle, const char *thumbprint, const char *encoding);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadFromBase64(HCkCert cHandle, const char *encodedCert);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadFromBd(HCkCert cHandle, HCkBinData certBytes);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadFromBinary(HCkCert cHandle, HCkByteData data);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadFromFile(HCkCert cHandle, const char *path);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadFromSmartcard(HCkCert cHandle, const char *certSpec);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadPem(HCkCert cHandle, const char *strPem);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadPfxBd(HCkCert cHandle, HCkBinData pfxData, const char *password);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadPfxData(HCkCert cHandle, HCkByteData pfxData, const char *password);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadPfxFile(HCkCert cHandle, const char *pfxPath, const char *password);
CK_C_VISIBLE_PUBLIC BOOL CkCert_LoadTaskResult(HCkCert cHandle, HCkTask task);
CK_C_VISIBLE_PUBLIC BOOL CkCert_PemFileToDerFile(HCkCert cHandle, const char *fromPath, const char *toPath);
CK_C_VISIBLE_PUBLIC BOOL CkCert_SaveToFile(HCkCert cHandle, const char *path);
CK_C_VISIBLE_PUBLIC BOOL CkCert_SetCloudSigner(HCkCert cHandle, HCkJsonObject json);
CK_C_VISIBLE_PUBLIC HCkTask CkCert_SetCloudSignerAsync(HCkCert cHandle, HCkJsonObject json);
CK_C_VISIBLE_PUBLIC BOOL CkCert_SetFromEncoded(HCkCert cHandle, const char *encodedCert);
CK_C_VISIBLE_PUBLIC BOOL CkCert_SetPrivateKey(HCkCert cHandle, HCkPrivateKey privKey);
CK_C_VISIBLE_PUBLIC BOOL CkCert_SetPrivateKeyPem(HCkCert cHandle, const char *privKeyPem);
CK_C_VISIBLE_PUBLIC BOOL CkCert_Unload(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_UploadToCloud(HCkCert cHandle, HCkJsonObject jsonIn, HCkJsonObject jsonOut);
CK_C_VISIBLE_PUBLIC HCkTask CkCert_UploadToCloudAsync(HCkCert cHandle, HCkJsonObject jsonIn, HCkJsonObject jsonOut);
CK_C_VISIBLE_PUBLIC BOOL CkCert_UseCertVault(HCkCert cHandle, HCkXmlCertVault vault);
CK_C_VISIBLE_PUBLIC BOOL CkCert_VerifySignature(HCkCert cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkCert_X509PKIPathv1(HCkCert cHandle, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkCert_x509PKIPathv1(HCkCert cHandle);
#endif
