C
C
RSASSA-PSS Algorithm with SHA256 Hashing
See more RSA Examples
RSA encrypt a SHA256 hash with OAEP padding.Chilkat C Downloads
#include <C_CkPrivateKey.h>
#include <C_CkRsa.h>
void ChilkatSample(void)
{
BOOL success;
HCkPrivateKey privkey;
HCkRsa rsa;
const char *sigStr;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
privkey = CkPrivateKey_Create();
// Load the private key object from a PEM file.
// (To load from a PEM string, call LoadPem instead.)
success = CkPrivateKey_LoadPemFile(privkey,"somePath/myPrivateKey.pem");
if (success == FALSE) {
printf("%s\n",CkPrivateKey_lastErrorText(privkey));
CkPrivateKey_Dispose(privkey);
return;
}
rsa = CkRsa_Create();
// Use RSA-PSS by setting PkcsPadding = FALSE
CkRsa_putPkcsPadding(rsa,FALSE);
// Use SHA256
CkRsa_putOaepHash(rsa,"SHA-256");
CkRsa_UsePrivateKey(rsa,privkey);
// Generate a base64 signature.
CkRsa_putEncodingMode(rsa,"base64");
sigStr = CkRsa_signStringENC(rsa,"String to be signed","SHA-256");
if (CkRsa_getLastMethodSuccess(rsa) == FALSE) {
printf("%s\n",CkRsa_lastErrorText(rsa));
CkPrivateKey_Dispose(privkey);
CkRsa_Dispose(rsa);
return;
}
printf("Signature: %s\n",sigStr);
CkPrivateKey_Dispose(privkey);
CkRsa_Dispose(rsa);
}