Unicode C++
Unicode C++
RSA Sign using Base64 Private Key
See more RSA Examples
Signs a string using a non-encrypted RSA private key in base64 encoding. Returns the RSA signature as a base64 string.Chilkat Unicode C++ Downloads
#include <CkPrivateKeyW.h>
#include <CkStringBuilderW.h>
#include <CkRsaW.h>
#include <CkBinDataW.h>
void ChilkatSample(void)
{
bool success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkPrivateKeyW privKey;
CkStringBuilderW sbPem;
sbPem.AppendLine(L"-----BEGIN RSA PRIVATE KEY-----",true);
sbPem.AppendLine(L"MIIC .... j5A==",true);
sbPem.AppendLine(L"-----END RSA PRIVATE KEY-----",true);
success = privKey.LoadPem(sbPem.getAsString());
if (success == false) {
wprintf(L"%s\n",privKey.lastErrorText());
return;
}
CkRsaW rsa;
success = rsa.UsePrivateKey(privKey);
if (success == false) {
wprintf(L"%s\n",rsa.lastErrorText());
return;
}
CkBinDataW bd;
bd.AppendString(L"12345678",L"utf-8");
success = rsa.SignRawBd(bd);
if (success == false) {
wprintf(L"%s\n",rsa.lastErrorText());
return;
}
// Get the base64 RSA signature.
wprintf(L"%s\n",bd.getEncoded(L"base64"));
success = rsa.VerifyRawBd(bd);
if (success == false) {
wprintf(L"%s\n",rsa.lastErrorText());
return;
}
const wchar_t *strOriginal = bd.getString(L"utf-8");
wprintf(L"%s\n",strOriginal);
}