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
(Visual FoxPro) Create JWS using the Flattened JSON Serialization FormatCreates a JSON Web Signature (JWS) containing 1 signature and output using the flattened JSON serialization format. Note: This example requires Chilkat v9.5.0.66 or greater.
LOCAL loSbEccJwk LOCAL loEccKey LOCAL lnSuccess LOCAL loJwsProtHdr LOCAL loJwsUnprotHdr LOCAL loJws LOCAL lnBIncludeBom LOCAL lcPayloadStr LOCAL lcJwsStr LOCAL loJson * This requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * Note: This example requires Chilkat v9.5.0.66 or greater. * The JWS to be created will contain one signature using an ECDSA key. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSbEccJwk = CreateObject('Chilkat.StringBuilder') loSbEccJwk.Append('{"kty":"EC",') loSbEccJwk.Append('"crv":"P-256",') loSbEccJwk.Append('"x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU",') loSbEccJwk.Append('"y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0",') loSbEccJwk.Append('"d":"jpsQnnGQmL-YBIffH1136cspYG6-0iY7X1fCE9-E9LI"') loSbEccJwk.Append("}") * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.PrivateKey') loEccKey = CreateObject('Chilkat.PrivateKey') * Note: This example loads the ECDSA key from JWK format. Any format can be loaded * into the private key object. (See the online reference documentation..) lnSuccess = loEccKey.LoadJwk(loSbEccJwk.GetAsString()) IF (lnSuccess <> 1) THEN ? loEccKey.LastErrorText RELEASE loSbEccJwk RELEASE loEccKey CANCEL ENDIF * --------------------------------------------------- * Prepare both a protected and unprotected header. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJwsProtHdr = CreateObject('Chilkat.JsonObject') loJwsProtHdr.AppendString("alg","ES256") * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJwsUnprotHdr = CreateObject('Chilkat.JsonObject') loJwsUnprotHdr.AppendString("kid","myEcKey") * --------------------------------------------------- * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Jws') loJws = CreateObject('Chilkat.Jws') loJws.SetProtectedHeader(0,loJwsProtHdr) loJws.SetUnprotectedHeader(0,loJwsUnprotHdr) loJws.SetPrivateKey(0,loEccKey) lnBIncludeBom = 0 lcPayloadStr = "In our village, folks say God crumbles up the old moon into stars." loJws.SetPayload(lcPayloadStr,"utf-8",lnBIncludeBom) * --------------------------------------------------- * Create the JWS. * Indicate we prefer the non-compact, flattened serialization. loJws.PreferCompact = 0 loJws.PreferFlattened = 1 lcJwsStr = loJws.CreateJws() IF (loJws.LastMethodSuccess <> 1) THEN ? loJws.LastErrorText RELEASE loSbEccJwk RELEASE loEccKey RELEASE loJwsProtHdr RELEASE loJwsUnprotHdr RELEASE loJws CANCEL ENDIF * The jwsStr is contains the flattened JSON in the smallest possible size, which is a single line. * To get in human-readable format, load into a Chilkat JSON object and emit.. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.JsonObject') loJson = CreateObject('Chilkat.JsonObject') loJson.Load(lcJwsStr) loJson.EmitCompact = 0 ? loJson.Emit() * Sample output: * { * "payload": "SW4gb3VyIHZpbGxhZ2UsIGZvbGtzIHNheSBHb2QgY3J1bWJsZXMgdXAgdGhlIG9sZCBtb29uIGludG8gc3RhcnMu", * "protected": "eyJhbGciOiJFUzI1NiJ9", * "header": { * "kid": "myEcKey" * }, * "signature": "b7V2UpDPytr-kMnM_YjiQ3E0J2ucOI9LYA7mt57vccrK1rb84j9areqgQcJwOA00aWGoz4hf6sMTBfobdcJEGg" * } RELEASE loSbEccJwk RELEASE loEccKey RELEASE loJwsProtHdr RELEASE loJwsUnprotHdr RELEASE loJws RELEASE loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.