RSA Encrypt (Polish ksef again)

Hi,
I don't know what's wrong with the function that should encrypt the token and timestamp with a dedicated public key. Encryption algorithm: RSA-OAEP (using SHA-256 as the hash function).

function TKSeFClient.EncryptKSeFToken(const tokenKSeF, timestampMs,
publicKeyBase64: string): string;
var
RSA: TRSAEncSign;
Cert: TX509Certificate;
TokenWithTimestamp: string;

begin
Result := '';

//token|timestamp
TokenWithTimestamp := tokenKSeF + '|' + timestampMs;

RSA := TRSAEncSign.Create(nil);
Cert := TX509Certificate.Create(nil);

// I’cant read public key

Cert := TX509Certificate.Create(nil);
cert.DecodeCertFromPEM(publicKeyBase64);

// I can read public key from certificate file with ipworks component

ipcert:= TipcCertMgr.Create(nil);
ipcert.ReadCertificate(ExtractFilePath(ParamStr(0)) + 'KsefTokenEncryption.cer');

try

//Assign public key
RSA.keyLength:= kl2048;
RSA.inputFormat:= base64;
RSA.outputFormat:= base64;
RSA.encType:= oaep;
RSA.Unicode:= yesUni;
RSA.hashFunction:= TRSAhashfunction.sha256;

RSA.MGFhash:= TRSAhashfunction.sha1;
RSA.FromPublicKeyString(publickeyBase64);

result:= RSA.Encrypt(TokenWithTimestamp);

finally
Cert.Free;
RSA.Free;
end;
end;

When calling the function, I get an error:

GetOid: This is not an OID tag[01],

KsefTokenEncryption.cer:

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

Best Regards

Trocewicz Jacek