秘密鍵と公開鍵のペアを生成し、秘密鍵をロードしていくつかのバイトに署名することができました。署名を検証するためにメモリから公開鍵をロードしようとすると、問題が発生します。
ここにいくつかのコードがあります:
privateKey := BIO_new(BIO_s_mem);
PEM_write_bio_RSAPrivateKey(privateKey,rsa,enc,nil,0,nil,PChar('1234567890'));
publicKey := BIO_new(BIO_s_mem);
PEM_write_bio_RSAPublicKey(publicKey,rsa);
WriteLn(GetErrorMessage);
//No error so far
Writeln('Keys generated!');
pKey := nil;
PEM_read_bio_PrivateKey(privateKey,pKey,nil,PChar('1234567890'));
// pKey is ok
mKey := nil;
PEM_read_bio_PUBKEY(publicKey,mKey,nil,nil);
WriteLn(GetErrorMessage);
最後の行で出力されるエラーメッセージは次のとおりです。
PEM routines : PEM_read_bio : no start line
私は何を間違っているのですか?