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
(PureBasic) Duplicate openssl pkcs12 –export –in certfile.cer –inkey certfile.key –out certfile.pfxHow to create a PKCS12 (.p12 or .pfx) from a certificate file and private key file: Demonstrates how to duplicate this OpenSSL command: Duplicate openssl pkcs12 –export –in certfile.cer –inkey certfile.key –out certfile.pfx
IncludeFile "CkCert.pb" IncludeFile "CkPrivateKey.pb" IncludeFile "CkCertChain.pb" IncludeFile "CkPfx.pb" Procedure ChilkatExample() ; This example assumes the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. success.i pkey.i = CkPrivateKey::ckCreate() If pkey.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Load the private key from the file. success = CkPrivateKey::ckLoadAnyFormatFile(pkey,"certFile.key","") If success <> 1 Debug CkPrivateKey::ckLastErrorText(pkey) CkPrivateKey::ckDispose(pkey) ProcedureReturn EndIf cert.i = CkCert::ckCreate() If cert.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The LoadFromFile method auto-recognizes the format... success = CkCert::ckLoadFromFile(cert,"certfile.cer") If success <> 1 Debug CkCert::ckLastErrorText(cert) CkPrivateKey::ckDispose(pkey) CkCert::ckDispose(cert) ProcedureReturn EndIf ; We'll need a cert chain object to create the PKCS12, so get it ; from the cert. certChain.i certChain = CkCert::ckGetCertChain(cert) If Not CkCert::ckLastMethodSuccess(cert) Debug CkCert::ckLastErrorText(cert) CkPrivateKey::ckDispose(pkey) CkCert::ckDispose(cert) ProcedureReturn EndIf ; Create the PFX object, add the cert and private key, and write to a .pfx file. pfx.i = CkPfx::ckCreate() If pfx.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; The cert(s) are automatically added in the call to AddPrivateKey success = CkPfx::ckAddPrivateKey(pfx,pkey,certChain) If success <> 1 Debug CkPfx::ckLastErrorText(pfx) CkPrivateKey::ckDispose(pkey) CkCert::ckDispose(cert) CkPfx::ckDispose(pfx) ProcedureReturn EndIf ; Write the .pfx to a file. password.s = "myPassword" success = CkPfx::ckToFile(pfx,password,"certfile.pfx") If success <> 1 Debug CkPfx::ckLastErrorText(pfx) CkPrivateKey::ckDispose(pkey) CkCert::ckDispose(cert) CkPfx::ckDispose(pfx) ProcedureReturn EndIf Debug "Success." CkPrivateKey::ckDispose(pkey) CkCert::ckDispose(cert) CkPfx::ckDispose(pfx) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.