Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) Create CAdES Signature (.p7s) Compliant with ICP-Brazil Digital Signature Standard PA AD RB v2.2See more CAdES ExamplesDemonstrates how to create a CMS signature w/ policy ID that is compliant with the ICP-Brazil Digital Signature Standard PA AD RB v2.2 For more information, see https://verificador.iti.gov.br/verifier-2.6.2/
#include <CkCrypt2.h> #include <CkCert.h> #include <CkJsonObject.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // ------------------------------------------------------------------------------------------------------ // Note: This example creates a CMS signature (.p7s) that contains the PDF. // It is different than signing a PDF. To sign a PDF where the resulting PDF contains the CMS signature, // see this example: Sign PDF for ICP-Brasil // ------------------------------------------------------------------------------------------------------ CkCrypt2 crypt; CkCert cert; bool success = cert.LoadPfxFile("mySigningCert.pfx","pfxPassword"); if (success != true) { strOut.append(cert.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } crypt.SetSigningCert(cert); crypt.put_HashAlgorithm("sha256"); // Create JSON to indicate which signing attributes to include. CkJsonObject attrs; attrs.UpdateBool("contentType",true); attrs.UpdateBool("signingTime",true); attrs.UpdateBool("messageDigest",true); attrs.UpdateString("contentHint.text","Content-Type: application/octet-stream\r\nContent-Disposition: attachment;filename=\"documento.pdf\""); attrs.UpdateString("contentHint.oid","1.2.840.113549.1.7.1"); attrs.UpdateString("policyId.id","2.16.76.1.7.1.1.2.2"); attrs.UpdateString("policyId.hash","D2+ixigZgXFslceYmQOYRFI7HGHCyWIonNrHgR/u4p4="); attrs.UpdateString("policyId.hashAlg","SHA256"); attrs.UpdateBool("signingCertificateV2",true); crypt.put_SigningAttributes(attrs.emit()); // The input file can be any type of file. const char *inFile = "toBeSigned.pdf"; const char *outFile = "signed.pdf.p7s"; success = crypt.CreateP7M(inFile,outFile); if (success == false) { strOut.append(crypt.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } strOut.append("Success."); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.