fix build with Botan 3.10

This fixes a compiler error I got,
when trying to build with Botan 3.10.

A static_cast to RSA_PrivateKey was not possible,
as the base class is virtual.

Fix by using a dynamic_cast instead.

Signed-off-by: Markus Theil <theil.markus@gmail.com>
This commit is contained in:
Markus Theil
2025-11-07 09:09:20 +01:00
committed by Jonathan White
parent 592d553ff8
commit fedcbf60c5

View File

@@ -363,7 +363,11 @@ namespace KeeShareSettings
// Extract RSA key data to serialize an ssh-rsa public key. // Extract RSA key data to serialize an ssh-rsa public key.
// ssh-rsa keys are currently not built into Botan // ssh-rsa keys are currently not built into Botan
const auto rsaKey = static_cast<Botan::RSA_PrivateKey*>(sign.certificate.key.data()); // need a dynamic_cast here, because the base class is virtual
const auto rsaKey = dynamic_cast<Botan::RSA_PrivateKey*>(sign.certificate.key.data());
if (!rsaKey) {
return {};
}
std::vector<uint8_t> rsaE(rsaKey->get_e().bytes()); std::vector<uint8_t> rsaE(rsaKey->get_e().bytes());
rsaKey->get_e().binary_encode(rsaE.data()); rsaKey->get_e().binary_encode(rsaE.data());