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...) Create CAdES p7m using USB Token or Smartcard on iOS iPhoneSee more Signing in the Cloud ExamplesDemonstrates how to create a CAdES p7m, 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 assumes 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 crypt = CkoCrypt2()! success = crypt.setSigning(cert) if success == false { print("\(crypt.lastErrorText!)") return } // The CadesEnabled property applies to all methods that create PKCS7 signatures. // To create a CAdES-BES signature, set this property equal to true. crypt.cadesEnabled = true crypt.hashAlgorithm = "sha256" let signedAttrs = CkoJsonObject()! signedAttrs.updateInt("contentType", value: 1) signedAttrs.updateInt("signingTime", value: 1) signedAttrs.updateInt("messageDigest", value: 1) signedAttrs.updateInt("signingCertificateV2", value: 1) crypt.signingAttributes = signedAttrs.emit() // You can sign any type of file.. // ---------------------------------------------------------- // Update to specify the paths to your input and output files. // ---------------------------------------------------------- var inputXmlPath: String? = "...." var outputP7mPath: String? = "... signed.p7m" // Create the CAdES-BES attached signature, which contains the original data. // Chilkat will build the .p7m locally, but will (internally) use ARSS // to do the RSA signing remotely. success = crypt.createP7M(inputXmlPath, p7mPath: outputP7mPath) if success == false { print("\(crypt.lastErrorText!)") return } print("Success.") } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.