C++
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 C++ Downloads
#include <CkPrivateKey.h>
#include <CkStringBuilder.h>
#include <CkRsa.h>
#include <CkBinData.h>
void ChilkatSample(void)
{
bool success = false;
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkPrivateKey privKey;
CkStringBuilder sbPem;
sbPem.AppendLine("-----BEGIN RSA PRIVATE KEY-----",true);
sbPem.AppendLine("MIIC .... j5A==",true);
sbPem.AppendLine("-----END RSA PRIVATE KEY-----",true);
success = privKey.LoadPem(sbPem.getAsString());
if (success == false) {
std::cout << privKey.lastErrorText() << "\r\n";
return;
}
CkRsa rsa;
success = rsa.UsePrivateKey(privKey);
if (success == false) {
std::cout << rsa.lastErrorText() << "\r\n";
return;
}
CkBinData bd;
bd.AppendString("12345678","utf-8");
success = rsa.SignRawBd(bd);
if (success == false) {
std::cout << rsa.lastErrorText() << "\r\n";
return;
}
// Get the base64 RSA signature.
std::cout << bd.getEncoded("base64") << "\r\n";
success = rsa.VerifyRawBd(bd);
if (success == false) {
std::cout << rsa.lastErrorText() << "\r\n";
return;
}
const char *strOriginal = bd.getString("utf-8");
std::cout << strOriginal << "\r\n";
}