Nous avons une application Go qui génère une clé RSA et envoie la clé publique au client au format PKCS #1, ASN.1 DER.
https://golang.org/pkg/crypto/x509/#MarshalPKCS1PublicKey
Lorsque j'essaie de charger la même clé publique dans le client c++ en utilisant Botan 1.10.17 :
try
{
Botan::AutoSeeded_RNG rng;
Botan::DataSource_Memory pubKeyMem(publicKey); // ici la clé publique est au format PKCS #1, ASN.1 DER
Botan::RSA_PublicKey *rsaKey = dynamic_cast(Botan::X509::load_key(pubKeyMem));
...
}
catch (std::exception& e)
{
cout << e.what();
}
Je reçois une exception :
Erreur de décodage : Échec du décodage de la clé publique X.509
Voici la clé publique générée par le serveur :
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA80s5aG/cuYU/xT3WsC5FkJmMdCg1SFFuc+qJT8aB1IgR3mnKGARf
tKpZ3Uk8Ehp1PSgS+tJE+NhE5fjU8S2K9EtGbep4DAK/TmeJ1TQvJXtCcrMH7MFV
Ck57X972MChnR5wJYrCnBYXt4Q9f76AT4PfFHCgN+eePYD175VIUN7rZlqZaqgX4
LAWQQpZsrj1DersOeH6YfMeuXplTljePGlKcutvWtr3LqGSAkPKAngW3gGTNcxXh
s8EW0CxXctvPLuWArlV2afU6XIpqWGVxB3NlRVuU64XvOE+aXyL2LyX2DXCWzzs8
mKjwp4SQW2xiJiQoRy3gmAR8oV8Jgffs2wIDAQAB
-----END RSA PUBLIC KEY-----