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
(PowerBuilder) Convert PFX to JWK SetDemonstrates how to convert a PFX (.pfx or .p12) to a JWK Set (a JSON Web Key Set). This example requires Chilkat v9.5.0.66 or greater.
integer li_rc oleobject loo_Pfx integer li_Success string ls_Alias string ls_Password oleobject loo_Jks oleobject loo_SbJwkSet oleobject loo_JwkSet // IMPORTANT: This example requires Chilkat v9.5.0.66 or greater. // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Pfx = create oleobject // Use "Chilkat_9_5_0.Pfx" for versions of Chilkat < 10.0.0 li_rc = loo_Pfx.ConnectToNewObject("Chilkat.Pfx") if li_rc < 0 then destroy loo_Pfx MessageBox("Error","Connecting to COM object failed") return end if li_Success = loo_Pfx.LoadPfxFile("qa_data/pfx/myEccCert.p12","MY_ECC_PFX_PASSWORD") if li_Success <> 1 then Write-Debug loo_Pfx.LastErrorText destroy loo_Pfx return end if // To get the contents of the PFX in JWK Set form, we must first convert // to a Java KeyStore object: // The alias will become the key id ("kid") the the JWK Set. // The password is an input argument that becomes the password for the JavaKeyStore. ls_Alias = "my_ecc_key" ls_Password = "secret123" loo_Jks = loo_Pfx.ToJavaKeyStore(ls_Alias,ls_Password) if loo_Pfx.LastMethodSuccess <> 1 then Write-Debug loo_Pfx.LastErrorText destroy loo_Pfx return end if loo_SbJwkSet = create oleobject // Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 li_rc = loo_SbJwkSet.ConnectToNewObject("Chilkat.StringBuilder") // The ToJwkSet method writes to sbJwkSet. li_Success = loo_Jks.ToJwkSet(ls_Password,loo_SbJwkSet) if li_Success <> 1 then Write-Debug loo_Jks.LastErrorText destroy loo_Jks destroy loo_Pfx destroy loo_SbJwkSet return end if destroy loo_Jks loo_JwkSet = create oleobject // Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 li_rc = loo_JwkSet.ConnectToNewObject("Chilkat.JsonObject") loo_JwkSet.LoadSb(loo_SbJwkSet) loo_JwkSet.EmitCompact = 0 Write-Debug loo_JwkSet.Emit() // The output is: // (Line breaks in the "x5c" base64 data were added for readability) // { // "keys": [ // { // "kty": "EC", // "crv": "P-384", // "x": "uB62JGMJKXnp1PNsOOIYKGhrzfLev3O-UuthL6UzEqNNDTd8dEYMUQP_DTS3qk98", // "y": "gyQEFxdmZUsPF0fFokkZZ1cV6z7QD3MsPvSjrBzB0GUB3r8CLnDK_F4pF2Q995hr", // "d": "ugTy2ZpuQqv1uQyLSgz1SPRvngzrd5vLyzU2ICaJd25zZRIxxlNR-uFo9UWC6llt", // "kid": "my_ecc_key", // "x5c": [ // "MIICzjCCAlOgAwIBAgIETULS8zAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50 // cnVzdCwgSW5jLjEfMB0GA1UECxMWRm9yIFRlc3QgUHVycG9zZXMgT25seTElMCMGA1UEAxMcRW50cnVzdCBFQ0MgR // GVtb25zdHJhdGlvbiBDQTAeFw0xNjAzMTgxMjM5MzFaFw0xNjA1MTcxMzA5MzFaMFgxHzAdBgNVBAsTFkZvciBUZX // N0IFB1cnBvc2VzIE9ubHkxHTAbBgNVBAsTFFBlcnNvbmEgTm90IFZlcmlmaWVkMRYwFAYDVQQDEw1DaGlsa2F0IEF // kbWluMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEuB62JGMJKXnp1PNsOOIYKGhrzfLev3O+UuthL6UzEqNNDTd8dEYM // UQP/DTS3qk98gyQEFxdmZUsPF0fFokkZZ1cV6z7QD3MsPvSjrBzB0GUB3r8CLnDK/F4pF2Q995hro4HYMIHVMA4GA // 1UdDwEB/wQEAwIDiDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwQwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cD // ovL2NybC5lbnRydXN0LmNvbS9DUkwvZWNjZGVtby5jcmwwIAYDVR0RBBkwF4EVYWRtaW5AY2hpbGthdHNvZnQuY29 // tMB8GA1UdIwQYMBaAFCQFS+Fkghr4Ccz7eHkh+nDmkzLqMB0GA1UdDgQWBBTB82fmvrdG2iX5uS/agVW3L4DisjAJ // BgNVHRMEAjAAMAoGCCqGSM49BAMDA2kAMGYCMQCHILghMprWoYPEp9mCE+tpVE7vYwkFV3m0RDzT2BSUezL8Ky78X // Nk+XPqSB2biT70CMQDCase1oaPY4AxCmjB+rEB1ir+QS8mrtF+iCSqHVv1aIxT6abQL57BZSdvwIm/TT8o=", // "MIICljCCAhugAwIBAgIETUHhezAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNRW50 // cnVzdCwgSW5jLjEfMB0GA1UECxMWRm9yIFRlc3QgUHVycG9zZXMgT25seTElMCMGA1UEAxMcRW50cnVzdCBFQ0MgR // GVtb25zdHJhdGlvbiBDQTAeFw0xMTAxMjcyMDQ5NTRaFw0zNjAxMjcyMTE5NTRaMG0xCzAJBgNVBAYTAlVTMRYwFA // YDVQQKEw1FbnRydXN0LCBJbmMuMR8wHQYDVQQLExZGb3IgVGVzdCBQdXJwb3NlcyBPbmx5MSUwIwYDVQQDExxFbnR // ydXN0IEVDQyBEZW1vbnN0cmF0aW9uIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEhCWBpuJuzvRtQyibkcbCj7Ek // cwAqS2EqRQ/QntroTdRM2SssEN4TruTxtwcY/7lR64L6Tfjz3+ujrfjNFss3EWVpUlbOJ+xHC3xHPteNyAGZtHbZO // 3tVuhP6yX6dFqCCo4GLMIGIMCsGA1UdEAQkMCKADzIwMTEwMTI3MjA0OTU0WoEPMjAzNjAxMjcyMTE5NTRaMAsGA1 // UdDwQEAwIBBjAfBgNVHSMEGDAWgBQkBUvhZIIa+AnM+3h5Ifpw5pMy6jAdBgNVHQ4EFgQUJAVL4WSCGvgJzPt4eSH // 6cOaTMuowDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAyAhA70OIb6lbfN6kOTQloHyCLmihNK+PT5wO // uaMR//KSQP2c/H18YhDYnlwMxF9fAjEA0URaJOXMF0qwdvS2rm7N5PWMLc/4BbeOZyZ94XJiG5u96iTgp6N9JI0MM // mCQE87N" // ] // } // ] // } // destroy loo_Pfx destroy loo_SbJwkSet destroy loo_JwkSet |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.