Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Swift 3,4,5...) Sign PDF using USB Token or Smartcard on iOS iPhoneDemonstrates how to sign a PDF using an HSM (USB token or smart card) connected to an iPhone. Note: This example requires Chilkat v10.0.0 or greater.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // When signing with a USB token or smartcard, the only coding difference is how the certificate // gets loaded. To load the default certificate from the connected USB token or smartcard, just call // LoadFromSmartcard with an empty string argument. // // This requires Chilkat v10.0.0 or later. // // ------------------------------------------------------------------------------------------------------------------------------------------------------ // Important: In your Xcode project, you'll need to add the "com.apple.token" entitlement. // Also, adding the com.apple.token in the "Project > Signing & Capabilities" will actually add $(AppIdentifierPrefix)com.apple.token, which does not work. // Edit the entitlements file directly and add only com.apple.token // If using a Yubikey, you'll only find the certificate if it is added in the Yubikey app as Public. // ------------------------------------------------------------------------------------------------------------------------------------------------------ let cert = CkoCert()! var success: Bool = cert.load(fromSmartcard: "") if success == false { print("\(cert.lastErrorText!)") return } let pdf = CkoPdf()! // Wherever the PDF file is located.. // Modify to specify the actual path to the PDF. var pdfFilePath: String? = "...." // Load a PDF to be signed. success = pdf.loadFile(pdfFilePath) if success == false { print("\(pdf.lastErrorText!)") return } // Options for signing are specified in JSON. let json = CkoJsonObject()! // Optionally create an LTV-enabled signature json.updateBool("ltvOcsp", value: true) // Define the appearance of the signature. json.updateInt("page", value: 1) json.update("appearance.y", value: "top") json.update("appearance.x", value: "left") json.update("appearance.fontScale", value: "10.0") json.update("appearance.text[0]", value: "Digitally signed by: cert_cn") json.update("appearance.text[1]", value: "current_dt") json.update("appearance.text[2]", value: "This is an LTV-enabled signature.") // Tell the pdf object to use the certificate (on the USB token) for signing success = pdf.setSigning(cert) if success == false { print("\(pdf.lastErrorText!)") return } // Modify to specify the actual path to the output file (i.e. the signed PDF). var signedPdfOutputFilePath: String? = "...." success = pdf.sign(json, outFilePath: signedPdfOutputFilePath) if success == false { print("\(pdf.lastErrorText!)") return } print("PDF successfully signed using USB token on iOS") } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.