Unicode C
Unicode C
RSASSA-PSS Algorithm with SHA256 Hashing
See more RSA Examples
RSA encrypt a SHA256 hash with OAEP padding.Chilkat Unicode C Downloads
#include <C_CkPrivateKeyW.h>
#include <C_CkRsaW.h>
void ChilkatSample(void)
{
BOOL success;
HCkPrivateKeyW privkey;
HCkRsaW rsa;
const wchar_t *sigStr;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
privkey = CkPrivateKeyW_Create();
// Load the private key object from a PEM file.
// (To load from a PEM string, call LoadPem instead.)
success = CkPrivateKeyW_LoadPemFile(privkey,L"somePath/myPrivateKey.pem");
if (success == FALSE) {
wprintf(L"%s\n",CkPrivateKeyW_lastErrorText(privkey));
CkPrivateKeyW_Dispose(privkey);
return;
}
rsa = CkRsaW_Create();
// Use RSA-PSS by setting PkcsPadding = FALSE
CkRsaW_putPkcsPadding(rsa,FALSE);
// Use SHA256
CkRsaW_putOaepHash(rsa,L"SHA-256");
CkRsaW_UsePrivateKey(rsa,privkey);
// Generate a base64 signature.
CkRsaW_putEncodingMode(rsa,L"base64");
sigStr = CkRsaW_signStringENC(rsa,L"String to be signed",L"SHA-256");
if (CkRsaW_getLastMethodSuccess(rsa) == FALSE) {
wprintf(L"%s\n",CkRsaW_lastErrorText(rsa));
CkPrivateKeyW_Dispose(privkey);
CkRsaW_Dispose(rsa);
return;
}
wprintf(L"Signature: %s\n",sigStr);
CkPrivateKeyW_Dispose(privkey);
CkRsaW_Dispose(rsa);
}