|  | 
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
| (PowerShell) Load Encrypted PEM Containing ECC Private Key and Certs and Examine ContentsLoads an encrypted PEM containing an ECC private key and ECC certificate (and chain), and examines the contents. Note: This example requires Chilkat v11.0.0 or greater. 
 Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll" $success = $false # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. # Create a PEM containing a valid EC private key and certificates. # The password for this encrypted PEM is "secret123" $sb = New-Object Chilkat.StringBuilder $bCrlf = $true $sb.AppendLine("-----BEGIN ENCRYPTED PRIVATE KEY-----",$bCrlf) $sb.AppendLine("MIGtMEkGCSqGSIb3DQEFDTA8MBsGCSqGSIb3DQEFDDAOBAiweNs9xIWNoAICCAAw",$bCrlf) $sb.AppendLine("HQYJYIZIAWUDBAECBBCz0IMryNxuJEo5ChMktg9cBGCsKDEeRqGJX4g/X2c6CNtK",$bCrlf) $sb.AppendLine("I8q7KClUwy9ms7ckHZAw/997WuW9QIGGnJEfHL/jSJsZViDwFAB4sunmdHSOTGMD",$bCrlf) $sb.AppendLine("3ZINNlkA+XobMaQtj1HNERtb1qskW1mf/X0sauw5aPA=",$bCrlf) $sb.AppendLine("-----END ENCRYPTED PRIVATE KEY-----",$bCrlf) $sb.AppendLine("-----BEGIN CERTIFICATE-----",$bCrlf) $sb.AppendLine("MIICzjCCAlOgAwIBAgIETULS8zAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJVUzEW",$bCrlf) $sb.AppendLine("MBQGA1UEChMNRW50cnVzdCwgSW5jLjEfMB0GA1UECxMWRm9yIFRlc3QgUHVycG9z",$bCrlf) $sb.AppendLine("ZXMgT25seTElMCMGA1UEAxMcRW50cnVzdCBFQ0MgRGVtb25zdHJhdGlvbiBDQTAe",$bCrlf) $sb.AppendLine("Fw0xNjAzMTgxMjM5MzFaFw0xNjA1MTcxMzA5MzFaMFgxHzAdBgNVBAsTFkZvciBU",$bCrlf) $sb.AppendLine("ZXN0IFB1cnBvc2VzIE9ubHkxHTAbBgNVBAsTFFBlcnNvbmEgTm90IFZlcmlmaWVk",$bCrlf) $sb.AppendLine("MRYwFAYDVQQDEw1DaGlsa2F0IEFkbWluMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE",$bCrlf) $sb.AppendLine("uB62JGMJKXnp1PNsOOIYKGhrzfLev3O+UuthL6UzEqNNDTd8dEYMUQP/DTS3qk98",$bCrlf) $sb.AppendLine("gyQEFxdmZUsPF0fFokkZZ1cV6z7QD3MsPvSjrBzB0GUB3r8CLnDK/F4pF2Q995hr",$bCrlf) $sb.AppendLine("o4HYMIHVMA4GA1UdDwEB/wQEAwIDiDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYB",$bCrlf) $sb.AppendLine("BQUHAwQwNwYDVR0fBDAwLjAsoCqgKIYmaHR0cDovL2NybC5lbnRydXN0LmNvbS9D",$bCrlf) $sb.AppendLine("UkwvZWNjZGVtby5jcmwwIAYDVR0RBBkwF4EVYWRtaW5AY2hpbGthdHNvZnQuY29t",$bCrlf) $sb.AppendLine("MB8GA1UdIwQYMBaAFCQFS+Fkghr4Ccz7eHkh+nDmkzLqMB0GA1UdDgQWBBTB82fm",$bCrlf) $sb.AppendLine("vrdG2iX5uS/agVW3L4DisjAJBgNVHRMEAjAAMAoGCCqGSM49BAMDA2kAMGYCMQCH",$bCrlf) $sb.AppendLine("ILghMprWoYPEp9mCE+tpVE7vYwkFV3m0RDzT2BSUezL8Ky78XNk+XPqSB2biT70C",$bCrlf) $sb.AppendLine("MQDCase1oaPY4AxCmjB+rEB1ir+QS8mrtF+iCSqHVv1aIxT6abQL57BZSdvwIm/T",$bCrlf) $sb.AppendLine("T8o=",$bCrlf) $sb.AppendLine("-----END CERTIFICATE-----",$bCrlf) $sb.AppendLine("-----BEGIN CERTIFICATE-----",$bCrlf) $sb.AppendLine("MIICljCCAhugAwIBAgIETUHhezAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJVUzEW",$bCrlf) $sb.AppendLine("MBQGA1UEChMNRW50cnVzdCwgSW5jLjEfMB0GA1UECxMWRm9yIFRlc3QgUHVycG9z",$bCrlf) $sb.AppendLine("ZXMgT25seTElMCMGA1UEAxMcRW50cnVzdCBFQ0MgRGVtb25zdHJhdGlvbiBDQTAe",$bCrlf) $sb.AppendLine("Fw0xMTAxMjcyMDQ5NTRaFw0zNjAxMjcyMTE5NTRaMG0xCzAJBgNVBAYTAlVTMRYw",$bCrlf) $sb.AppendLine("FAYDVQQKEw1FbnRydXN0LCBJbmMuMR8wHQYDVQQLExZGb3IgVGVzdCBQdXJwb3Nl",$bCrlf) $sb.AppendLine("cyBPbmx5MSUwIwYDVQQDExxFbnRydXN0IEVDQyBEZW1vbnN0cmF0aW9uIENBMHYw",$bCrlf) $sb.AppendLine("EAYHKoZIzj0CAQYFK4EEACIDYgAEhCWBpuJuzvRtQyibkcbCj7EkcwAqS2EqRQ/Q",$bCrlf) $sb.AppendLine("ntroTdRM2SssEN4TruTxtwcY/7lR64L6Tfjz3+ujrfjNFss3EWVpUlbOJ+xHC3xH",$bCrlf) $sb.AppendLine("PteNyAGZtHbZO3tVuhP6yX6dFqCCo4GLMIGIMCsGA1UdEAQkMCKADzIwMTEwMTI3",$bCrlf) $sb.AppendLine("MjA0OTU0WoEPMjAzNjAxMjcyMTE5NTRaMAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAW",$bCrlf) $sb.AppendLine("gBQkBUvhZIIa+AnM+3h5Ifpw5pMy6jAdBgNVHQ4EFgQUJAVL4WSCGvgJzPt4eSH6",$bCrlf) $sb.AppendLine("cOaTMuowDAYDVR0TBAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAyAhA70OIb6lb",$bCrlf) $sb.AppendLine("fN6kOTQloHyCLmihNK+PT5wOuaMR//KSQP2c/H18YhDYnlwMxF9fAjEA0URaJOXM",$bCrlf) $sb.AppendLine("F0qwdvS2rm7N5PWMLc/4BbeOZyZ94XJiG5u96iTgp6N9JI0MMmCQE87N",$bCrlf) $sb.AppendLine("-----END CERTIFICATE-----",$bCrlf) $pem = New-Object Chilkat.Pem $success = $pem.LoadPem($sb.GetAsString(),"secret123") if ($success -eq $false) { $($pem.LastErrorText) exit } # Get the private key and examine it in JSON Web Key form (JWK) $privKey = New-Object Chilkat.PrivateKey $success = $pem.PrivateKeyAt(0,$privKey) if ($success -eq $false) { $($pem.LastErrorText) exit } $json = New-Object Chilkat.JsonObject $json.Load($privKey.GetJwk()) $json.EmitCompact = $false $($json.Emit()) # JWK output: # { # "kty": "EC", # "crv": "P-384", # "x": "uB62JGMJKXnp1PNsOOIYKGhrzfLev3O-UuthL6UzEqNNDTd8dEYMUQP_DTS3qk98", # "y": "gyQEFxdmZUsPF0fFokkZZ1cV6z7QD3MsPvSjrBzB0GUB3r8CLnDK_F4pF2Q995hr", # "d": "ugTy2ZpuQqv1uQyLSgz1SPRvngzrd5vLyzU2ICaJd25zZRIxxlNR-uFo9UWC6llt" # } # Now get 1st certificate and examine in XML format: $cert = New-Object Chilkat.Cert $success = $pem.CertAt(0,$cert) if ($success -eq $false) { $($pem.LastErrorText) exit } $certXml = $cert.ExportCertXml() $($certXml) # XML output: # <?xml version="1.0" encoding="utf-8" ?> # <sequence> # <sequence> # <contextSpecific tag="0" constructed="1"> # <int>02</int> # </contextSpecific> # <int>4D42D2F3</int> # <sequence> # <oid>1.2.840.10045.4.3.3</oid> # </sequence> # <sequence> # <set> # <sequence> # <oid>2.5.4.6</oid> # <printable>US</printable> # </sequence> # </set> # <set> # <sequence> # <oid>2.5.4.10</oid> # <printable>Entrust, Inc.</printable> # </sequence> # </set> # <set> # <sequence> # <oid>2.5.4.11</oid> # <printable>For Test Purposes Only</printable> # </sequence> # </set> # <set> # <sequence> # <oid>2.5.4.3</oid> # <printable>Entrust ECC Demonstration CA</printable> # </sequence> # </set> # </sequence> # <sequence> # <utctime>160318123931Z</utctime> # <utctime>160517130931Z</utctime> # </sequence> # <sequence> # <set> # <sequence> # <oid>2.5.4.11</oid> # <printable>For Test Purposes Only</printable> # </sequence> # </set> # <set> # <sequence> # <oid>2.5.4.11</oid> # <printable>Persona Not Verified</printable> # </sequence> # </set> # <set> # <sequence> # <oid>2.5.4.3</oid> # <printable>Chilkat Admin</printable> # </sequence> # </set> # </sequence> # <sequence> # <sequence> # <oid>1.2.840.10045.2.1</oid> # <oid>1.3.132.0.34</oid> # </sequence> # <bits n="776">04B81EB62463092979E9D4F36C38E21828686BCDF2DEBF73BE52EB612FA53312A34D0D377C74460C5103FF0D34B7AA4F7C832404171766654B0F1747C5A24919675715EB3ED00F732C3EF4A3AC1CC1D06501DEBF022E70CAFC5E2917643DF7986B</bits> # </sequence> # <contextSpecific tag="3" constructed="1"> # <sequence> # <sequence> # <oid>2.5.29.15</oid> # <bool>1</bool> # <octets>AwIDiA==</octets> # </sequence> # <sequence> # <oid>2.5.29.37</oid> # <octets>MBQGCCsGAQUFBwMCBggrBgEFBQcDBA==</octets> # </sequence> # <sequence> # <oid>2.5.29.31</oid> # <octets>MC4wLKAqoCiGJmh0dHA6Ly9jcmwuZW50cnVzdC5jb20vQ1JML2VjY2RlbW8uY3Js</octets> # </sequence> # <sequence> # <oid>2.5.29.17</oid> # <octets>MBeBFWFkbWluQGNoaWxrYXRzb2Z0LmNvbQ==</octets> # </sequence> # <sequence> # <oid>2.5.29.35</oid> # <octets>MBaAFCQFS+Fkghr4Ccz7eHkh+nDmkzLq</octets> # </sequence> # <sequence> # <oid>2.5.29.14</oid> # <octets>BBTB82fmvrdG2iX5uS/agVW3L4Disg==</octets> # </sequence> # <sequence> # <oid>2.5.29.19</oid> # <octets>MAA=</octets> # </sequence> # </sequence> # </contextSpecific> # </sequence> # <sequence> # <oid>1.2.840.10045.4.3.3</oid> # </sequence> # <bits n="832">30660231008720B821329AD6A183C4A7D98213EB69544EEF6309055779B4443CD3D814947B32FC2B2EFC5CD93E5CFA920766E24FBD023100C26AC7B5A1A3D8E00C429A307EAC40758ABF904BC9ABB45FA2092A8756FD5A2314FA69B40BE7B05949DBF0226FD34FCA</bits> # </sequence> # # # | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.