Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(VB.NET UWP/WinRT) 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 v9.5.0.66.
' Note: This example requires Chilkat v9.5.0.66. ' 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" Dim sb As New Chilkat.StringBuilder Dim bCrlf As Boolean = 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) Dim pem As New Chilkat.Pem Dim success As Boolean = Await pem.LoadPemAsync(sb.GetAsString(),"secret123") If (success <> True) Then Debug.WriteLine(pem.LastErrorText) Exit Sub End If ' Get the private key and examine it in JSON Web Key form (JWK) Dim privKey As Chilkat.PrivateKey = pem.GetPrivateKey(0) If (pem.LastMethodSuccess <> True) Then Debug.WriteLine(pem.LastErrorText) Exit Sub End If Dim json As New Chilkat.JsonObject json.Load(privKey.GetJwk()) json.EmitCompact = False Debug.WriteLine(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: Dim cert As Chilkat.Cert = pem.GetCert(0) If (pem.LastMethodSuccess <> True) Then Debug.WriteLine(pem.LastErrorText) Exit Sub End If Dim certXml As String = cert.ExportCertXml() Debug.WriteLine(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-2022 Chilkat Software, Inc. All Rights Reserved.