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
(MFC) Base64url EncodingBase64url encoding is identical to base64 encoding except it uses non-reserved URL characters (e.g. '–' is used instead of '+', and '_' is used instead of '/') and it omits the padding characters. Chilkat adds support for "base64url" in version 9.5.0.56. (To be released Q1 2016.) The list of binary encodings supported by Chilkat are documented at Chilkat Binary Encodings For any supported encoding, such as base64, hex, url, quoted-printable, modbase64, base64url, etc., the encoding name may be used in any "EncodingMode" property or in any method argument that specifies a binary encoding. (Please note that a "binary encoding" is different than a "character encoding". Character encodings supported by Chilkat are listed at Chilkat Character Encodings.) This example demonstrates using base64url encoding by setting the RSA object's EncodingMode property equal to "base64url".
#include <CkCertStore.h> #include <CkCert.h> #include <CkPrivateKey.h> #include <CkRsa.h> void ChilkatSample(void) { CkString strOut; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Create an instance of a certificate store object, load a PFX file, // locate the certificate we need, and use it for signing. // (a PFX file may contain more than one certificate.) CkCertStore certStore; // The 1st argument is the filename, the 2nd arg is the // PFX file's password: bool success = certStore.LoadPfxFile("chilkat.pfx","test"); if (success != true) { strOut.append(certStore.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkCert *cert = certStore.FindCertBySubject("Chilkat Software, Inc."); if (certStore.get_LastMethodSuccess() == false) { strOut.append(certStore.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } CkPrivateKey *pkey = 0; pkey = cert->ExportPrivateKey(); if (cert->get_LastMethodSuccess() == false) { strOut.append(cert->lastErrorText()); strOut.append("\r\n"); delete cert; SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } delete cert; // Get the private key in XML format: const char *pkeyXml = pkey->getXml(); CkRsa rsa; // Import the private key into the RSA component: success = rsa.ImportPrivateKey(pkeyXml); if (success != true) { strOut.append(rsa.lastErrorText()); strOut.append("\r\n"); delete pkey; SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // This example will sign a string, and receive the signature // as a base64url encoded string. Therefore, set the encoding mode // to "base64url": rsa.put_EncodingMode("base64url"); rsa.put_LittleEndian(false); const char *strData = "This is the string to be signed."; const char *strSig = rsa.signStringENC(strData,"sha256"); delete pkey; strOut.append(strSig); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.