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
(AutoIt) Duplicate Java Secure Token CreationDemonstrates how to duplicate some Java code that creates an RSA signature to create a base64 token.
; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ; This example duplicates the following Java code: ; public X509Certificate2 cert = new X509Certificate2(@"Some path to p12/p12file_name.p12","Password_for_p12"); ; ; public string GenerateSignToken(double timeValidityMin){ ; string equalsSign = ":="; ; string timeCreated = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffzzz"); ; string tokenTimeInfo = "validityTimeMinutes" + equalsSign + timeValidityMin + ";"+"timeCreated" + equalsSign + timeCreated; ; string signature = SignData(tokenTimeInfo); ; string secureToken = tokenTimeInfo + ";" + "signature" + equalsSign + signature; ; return Base64UrlEncode(secureToken); ; } ; ; public string SignData(string stringToSign){ ; byte[] dataToSign = Encoding.UTF8.GetBytes(stringToSign); ; RSACryptoServiceProvider privKey = (RSACryptoServiceProvider)cert.PrivateKey; ; CspKeyContainerInfo containerInfo = new RSACryptoServiceProvider().CspKeyContainerInfo; ; CspParameters cspparams = new CspParameters(containerInfo.ProviderType, containerInfo.ProviderName, privKey.CspKeyContainerInfo.KeyContainerName); ; privKey = new RSACryptoServiceProvider(cspparams); ; string id = CryptoConfig.MapNameToOID("SHA256"); ; byte[] sign = privKey.SignData(dataToSign, id); ; bool res = privKey.VerifyData(dataToSign, id, sign); ; return Convert.ToBase64String(sign).Replace('+', '-').Replace('/', '_').Replace("=", ""); ; } ; ; private static string Base64UrlEncode(string input){ ; var inputBytes = Encoding.UTF8.GetBytes(input); ; return Convert.ToBase64String(inputBytes).Replace('+', '-').Replace('/', '_').Replace("=", ""); ; } Local $bSuccess $oDt = ObjCreate("Chilkat.CkDateTime") $oDt.SetFromCurrentSystemTime() Local $sTimeCreated = $oDt.GetAsTimestamp(True) ; Such as 2019-04-01T19:35:44-05:00 ConsoleWrite($sTimeCreated & @CRLF) $oSbToken = ObjCreate("Chilkat.StringBuilder") $oSbToken.Append("validityTimeMinutes:=10.0;timeCreated:=") $oSbToken.Append($sTimeCreated) $oCert = ObjCreate("Chilkat.Cert") $bSuccess = $oCert.LoadPfxFile("Some path to p12/p12file_name.p12","Password_for_p12") If ($bSuccess <> True) Then ConsoleWrite($oCert.LastErrorText & @CRLF) Exit EndIf $oRsa = ObjCreate("Chilkat.Rsa") $bSuccess = $oRsa.SetX509Cert($oCert,True) If ($bSuccess <> True) Then ConsoleWrite($oRsa.LastErrorText & @CRLF) Exit EndIf $oRsa.EncodingMode = "base64url" Local $signature = $oRsa.SignStringENC($oSbToken.GetAsString(),"sha256") If ($oRsa.LastMethodSuccess = False) Then ConsoleWrite($oRsa.LastErrorText & @CRLF) Exit EndIf $oSbToken.Append(";signature:=") $oSbToken.Append($signature) ; Base64URL encode the result $oSbToken.Encode("base64url","utf-8") Local $sToken = $oSbToken.GetAsString() ConsoleWrite($sToken & @CRLF) |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.