![]() |
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
(VB.NET) Create JWK Set Containing CertificatesDemonstrates how to create a JWK Set containing N certificates. Note: This example requires Chilkat v11.0.0 or greater.
Dim success As Boolean = False ' This example creates the following JWK Set from two certificates: ' { ' "keys": [ ' { ' "kty": "RSA", ' "use": "sig", ' "kid": "BB8CeFVqyaGrGNuehJIiL4dfjzw", ' "x5t": "BB8CeFVqyaGrGNuehJIiL4dfjzw", ' "n": "nYf1jpn7cFdQ...9Iw", ' "e": "AQAB", ' "x5c": [ ' "MIIDBTCCAe2...Z+NTZo" ' ] ' }, ' { ' "kty": "RSA", ' "use": "sig", ' "kid": "M6pX7RHoraLsprfJeRCjSxuURhc", ' "x5t": "M6pX7RHoraLsprfJeRCjSxuURhc", ' "n": "xHScZMPo8F...EO4QQ", ' "e": "AQAB", ' "x5c": [ ' "MIIC8TCCAdmgA...Vt5432GA==" ' ] ' } ' ] ' } ' First get two certificates from files. Dim cert1 As New Chilkat.Cert success = cert1.LoadFromFile("qa_data/certs/brasil_cert.pem") If (success = False) Then Debug.WriteLine(cert1.LastErrorText) Exit Sub End If Dim cert2 As New Chilkat.Cert success = cert2.LoadFromFile("qa_data/certs/testCert.cer") If (success = False) Then Debug.WriteLine(cert2.LastErrorText) Exit Sub End If ' We'll need this crypt object re-encode the SHA1 thumbprint from hex to base64. Dim crypt As New Chilkat.Crypt2 Dim json As New Chilkat.JsonObject ' Let's begin with the 1st cert: json.I = 0 json.UpdateString("keys[i].kty","RSA") json.UpdateString("keys[i].use","sig") Dim hexThumbprint As String = cert1.Sha1Thumbprint Dim base64Thumbprint As String = crypt.ReEncode(hexThumbprint,"hex","base64") json.UpdateString("keys[i].kid",base64Thumbprint) json.UpdateString("keys[i].x5t",base64Thumbprint) ' (We're assuming these are RSA certificates) ' To get the modulus (n) and exponent (e), we need to get the cert's public key and then get its JWK. Dim pubKey As New Chilkat.PublicKey cert1.GetPublicKey(pubKey) Dim pubKeyJwk As New Chilkat.JsonObject pubKeyJwk.Load(pubKey.GetJwk()) json.UpdateString("keys[i].n",pubKeyJwk.StringOf("n")) json.UpdateString("keys[i].e",pubKeyJwk.StringOf("e")) ' Now add the entire X.509 certificate json.UpdateString("keys[i].x5c[0]",cert1.GetEncoded()) ' Now do the same for cert2.. json.I = 1 json.UpdateString("keys[i].kty","RSA") json.UpdateString("keys[i].use","sig") hexThumbprint = cert2.Sha1Thumbprint base64Thumbprint = crypt.ReEncode(hexThumbprint,"hex","base64") json.UpdateString("keys[i].kid",base64Thumbprint) json.UpdateString("keys[i].x5t",base64Thumbprint) cert2.GetPublicKey(pubKey) pubKeyJwk.Load(pubKey.GetJwk()) json.UpdateString("keys[i].n",pubKeyJwk.StringOf("n")) json.UpdateString("keys[i].e",pubKeyJwk.StringOf("e")) ' Now add the entire X.509 certificate json.UpdateString("keys[i].x5c[0]",cert2.GetEncoded()) ' Emit the JSON.. json.EmitCompact = False Debug.WriteLine(json.Emit()) |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.