PureBasic
PureBasic
Duplicate openssl pkcs12 –export –in certfile.cer –inkey certfile.key –out certfile.pfx
See more OpenSSL Examples
How 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
Chilkat PureBasic Downloads
IncludeFile "CkCert.pb"
IncludeFile "CkPrivateKey.pb"
IncludeFile "CkCertChain.pb"
IncludeFile "CkPfx.pb"
Procedure ChilkatExample()
success.i = 0
; This example assumes the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
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