![]()  | 
  
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
 
      (Swift) Working with PEM Encrypted Private KeysDemonstrates how to load and save PEM encrypted private keys. Note: This example requires Chilkat v11.0.0 or greater. 
 func chilkatTest() { var success: Bool = false // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. success = false let pem = CkoPem()! var pemPassword: String? = "secret" // To load a PEM file containing encrypted private keys, simply // provide the password. success = pem.loadFile("/Users/chilkat/testData/pem/pemContainingEncryptedPrivateKeys.pem", password: pemPassword) if success == false { print("\(pem.lastErrorText!)") return } let fac = CkoFileAccess()! var pemText: String? = fac.readEntireTextFile("/Users/chilkat/testData/pem/pemContainingEncryptedPrivateKeys.pem", charset: pemPassword) // To load a PEM from a string, call LoadPem instead of LoadPemFile: success = pem.load(pemText) if success == false { print("\(pem.lastErrorText!)") return } // A few notes: // The PEM may contain both private keys and certificates (or anything else). // The password is utilized for whatever content in the PEM is encrypted. // It is OK to have both encrypted and non-encrypted content within a given PEM. // PEM private keys can be encrypted in different formats. The LoadPem and LoadPemFile // methods automatically handle the different formats. // One format is PKCS8 and is indicated by this delimiter within the PEM: // -----BEGIN ENCRYPTED PRIVATE KEY----- // MIICoTAbBgkqhkiG9w0BBQMwDgQIfdD0zv24lgkCAggABIICgE0PdHJmRbNs6cBX // ... // Another format, we'll call "passphrase" looks like this in the PEM: // -----BEGIN RSA PRIVATE KEY----- // Proc-Type: 4,ENCRYPTED // DEK-Info: DES-EDE3-CBC,A4215544D11C5D0C // // paqy9XRexcSjurHfG0xhCaUD0HrvIdhuC0CbRxxxeMlkLaV6+uT80rBxt2AaibWG // ... // Show the bit length of each private key: var i: Int var numPrivateKeys: Int = pem.numPrivateKeys.intValue if numPrivateKeys == 0 { print("\(("Error: Expected the PEM to contain private keys.")!)") return } let privKey = CkoPrivateKey()! for i = 1; i <= numPrivateKeys; i++ { pem.privateKey(at: i - 1, privKey: privKey) print("\(i): \(privKey.bitLength.intValue) bits") } }  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.