Sample code for 30+ languages & platforms
Delphi DLL

RSA OAEP Padding

See more RSA Examples

Demonstrates how to use OAEP padding with the RSA encryption algorithm. More information about OAEP Padding.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, PublicKey, Rsa;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
rsa: HCkRsa;
pubKeyXml: PWideChar;
pubKey: HCkPublicKey;
plainText: PWideChar;
usePrivateKey: Boolean;
encryptedStr: PWideChar;

begin
success := False;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

rsa := CkRsa_Create();

// RSA public key in XML format:
pubKeyXml := '<RSAPublicKey><Modulus>of3im3mRgd2NLXIGoK6uYLg6jj0Ug2b42rnqa5Tbwz2ieFqMJqt+++x2oqLYGurlz49nt+7/785g3XYWqoka4u9c9zul6YubIjnBM72dQy7rEkEfbUxgjcxqXyjZFx+FpaxFUecLu688XEu+9UA42VKiCgcl+E7TrqnfeeYpNXc=</Modulus><Exponent>AQAB</Exponent></RSAPublicKey>';

pubKey := CkPublicKey_Create();
success := CkPublicKey_LoadFromString(pubKey,pubKeyXml);
if (success = False) then
  begin
    Memo1.Lines.Add(CkPublicKey__lastErrorText(pubKey));
    Exit;
  end;

success := CkRsa_UsePublicKey(rsa,pubKey);
if (success = False) then
  begin
    Memo1.Lines.Add(CkRsa__lastErrorText(rsa));
    Exit;
  end;

// To use Optimal Asymmetric Encryption Padding (OAEP) padding,
// simply set the PkcsPadding property to False
CkRsa_putPkcsPadding(rsa,False);

// Encrypt a string and return the encrypted data base64-encoded:
CkRsa_putEncodingMode(rsa,'base64');

plainText := 'RSA Encryption should be easy.';

usePrivateKey := False;
encryptedStr := CkRsa__encryptStringENC(rsa,plainText,usePrivateKey);
Memo1.Lines.Add(encryptedStr);

CkRsa_Dispose(rsa);
CkPublicKey_Dispose(pubKey);

end;