#include <xsec/enc/OpenSSL/OpenSSLCryptoX509.hpp>
#include <xsec/enc/OpenSSL/OpenSSLCryptoKeyRSA.hpp>
#include <xsec/enc/OpenSSL/OpenSSLCryptoKeyDSA.hpp>
#include <xsec/enc/OpenSSL/OpenSSLCryptoX509.hpp>
#include <xsec/enc/OpenSSL/OpenSSLCryptoKeyRSA.hpp>
#include <xsec/enc/OpenSSL/OpenSSLCryptoKeyDSA.hpp>
// If one key is public or both, just compare the public key half.
if (key1.getKeyType()==XSECCryptoKey::KEY_EC_PUBLIC || key1.getKeyType()==XSECCryptoKey::KEY_EC_PAIR) {
if (key2.getKeyType()!=XSECCryptoKey::KEY_EC_PUBLIC && key2.getKeyType()!=XSECCryptoKey::KEY_EC_PAIR)
// If one key is public or both, just compare the public key half.
if (key1.getKeyType()==XSECCryptoKey::KEY_EC_PUBLIC || key1.getKeyType()==XSECCryptoKey::KEY_EC_PAIR) {
if (key2.getKeyType()!=XSECCryptoKey::KEY_EC_PUBLIC && key2.getKeyType()!=XSECCryptoKey::KEY_EC_PAIR)
else if (key.getKeyType() == XSECCryptoKey::KEY_EC_PUBLIC || key.getKeyType() == XSECCryptoKey::KEY_EC_PAIR) {
ec = static_cast<const OpenSSLCryptoKeyEC&>(key).getOpenSSLEC();
if (!ec) {
else if (key.getKeyType() == XSECCryptoKey::KEY_EC_PUBLIC || key.getKeyType() == XSECCryptoKey::KEY_EC_PAIR) {
ec = static_cast<const OpenSSLCryptoKeyEC&>(key).getOpenSSLEC();
if (!ec) {
i2d_RSA_PUBKEY_bio(chain, const_cast<RSA*>(rsa));
else if (dsa)
i2d_DSA_PUBKEY_bio(chain, const_cast<DSA*>(dsa));
i2d_RSA_PUBKEY_bio(chain, const_cast<RSA*>(rsa));
else if (dsa)
i2d_DSA_PUBKEY_bio(chain, const_cast<DSA*>(dsa));