diff --git a/src/libp11-int.h b/src/libp11-int.h index 0fc07310..07a4bc1c 100644 --- a/src/libp11-int.h +++ b/src/libp11-int.h @@ -338,9 +338,11 @@ extern int pkcs11_rsa_keygen(PKCS11_SLOT_private *tpriv, unsigned int bits, const char *label, const unsigned char *id, size_t id_len, const PKCS11_params *params); +#ifndef OPENSSL_NO_EC extern int pkcs11_ec_keygen(PKCS11_SLOT_private *tpriv, const char *curve , const char *label, const unsigned char *id, size_t id_len, const PKCS11_params *params); +#endif /* OPENSSL_NO_EC */ /* Get the RSA key modulus size (in bytes) */ extern int pkcs11_get_key_size(PKCS11_OBJECT_private *); diff --git a/src/p11_ec.c b/src/p11_ec.c index e347d3b8..10c10bfc 100644 --- a/src/p11_ec.c +++ b/src/p11_ec.c @@ -907,7 +907,7 @@ PKCS11_OBJECT_ops pkcs11_ec_ops = { * require further changes */ #warning "ECDSA support not built with libp11" -ECDSA_METHOD *PKCS11_get_ecdsa_method(void) +void *PKCS11_get_ecdsa_method(void) { return NULL; } diff --git a/src/p11_front.c b/src/p11_front.c index df134b68..0a07775e 100644 --- a/src/p11_front.c +++ b/src/p11_front.c @@ -420,9 +420,11 @@ int PKCS11_keygen(PKCS11_TOKEN *token, PKCS11_KGEN_ATTRS *kg) case EVP_PKEY_RSA: return pkcs11_rsa_keygen(slot, kg->kgen.rsa->bits, kg->key_label, kg->key_id, kg->id_len, kg->key_params); +#ifndef OPENSSL_NO_EC case EVP_PKEY_EC: return pkcs11_ec_keygen(slot, kg->kgen.ec->curve, kg->key_label, kg->key_id, kg->id_len, kg->key_params); +#endif /* OPENSSL_NO_EC */ default: return -1; } diff --git a/src/p11_key.c b/src/p11_key.c index 06ed5059..9db7ff38 100644 --- a/src/p11_key.c +++ b/src/p11_key.c @@ -322,6 +322,8 @@ int pkcs11_rsa_keygen(PKCS11_SLOT_private *slot, unsigned int bits, return 0; } +#ifndef OPENSSL_NO_EC + /** * Generate EC key pair directly on token */ @@ -400,6 +402,8 @@ int pkcs11_ec_keygen(PKCS11_SLOT_private *slot, const char *curve, return 0; } +#endif /* OPENSSL_NO_EC */ + /* * Store a private key on the token */ diff --git a/tests/dup-key.c b/tests/dup-key.c index 3dbc73e7..7b63f37a 100644 --- a/tests/dup-key.c +++ b/tests/dup-key.c @@ -58,7 +58,9 @@ int main(int argc, char *argv[]) { ENGINE *engine = NULL; EVP_PKEY *pkey = NULL; +#ifndef OPENSSL_NO_EC EC_KEY *ec = NULL, *ec_dup = NULL; +#endif /* OPENSSL_NO_EC */ const char *module, *efile, *privkey; @@ -138,6 +140,7 @@ int main(int argc, char *argv[]) case EVP_PKEY_RSA: /* TODO */ break; +#ifndef OPENSSL_NO_EC case EVP_PKEY_EC: ec = EVP_PKEY_get1_EC_KEY(pkey); if (ec == NULL) { @@ -157,6 +160,7 @@ int main(int argc, char *argv[]) EC_KEY_free(ec); EC_KEY_free(ec_dup); break; +#endif /* OPENSSL_NO_EC */ } EVP_PKEY_free(pkey);