diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-11-28 15:17:27 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2018-11-28 15:18:31 +0100 |
commit | 253d52a4da3f72fb32da08ed09068ed60f66955f (patch) | |
tree | 13f7c1ad3ba18f979520898378a87d66f528f658 | |
parent | 07f5f270b2dc20ebd493ae357a3fcc99e918a3a4 (diff) | |
download | gnutls-tmp-fix-mingw.tar.gz |
pkcs11: make the usage of eddsa definitions conditionaltmp-fix-mingw
This addresses issues with compilation under mingw or in systems
without a recent p11-kit.
Resolves: #626
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r-- | lib/pkcs11_int.h | 14 | ||||
-rw-r--r-- | lib/pkcs11_write.c | 2 |
2 files changed, 16 insertions, 0 deletions
diff --git a/lib/pkcs11_int.h b/lib/pkcs11_int.h index 9c81f4e19d..059c9b5497 100644 --- a/lib/pkcs11_int.h +++ b/lib/pkcs11_int.h @@ -216,6 +216,12 @@ _gnutls_pkcs11_privkey_decrypt_data(gnutls_pkcs11_privkey_t key, int _pkcs11_privkey_get_pubkey (gnutls_pkcs11_privkey_t pkey, gnutls_pubkey_t *pub, unsigned flags); +#if defined(CKM_EDDSA) && defined(CKK_EC_EDWARDS) +# define HAVE_PKCS11_EDDSA_DEFS 1 +#else +# undef HAVE_PKCS11_EDDSA_DEFS +#endif + static inline int pk_to_mech(gnutls_pk_algorithm_t pk) { if (pk == GNUTLS_PK_DSA) @@ -226,8 +232,10 @@ static inline int pk_to_mech(gnutls_pk_algorithm_t pk) return CKM_RSA_PKCS; else if (pk == GNUTLS_PK_RSA_PSS) return CKM_RSA_PKCS_PSS; +#ifdef HAVE_PKCS11_EDDSA_DEFS else if (pk == GNUTLS_PK_EDDSA_ED25519) return CKM_EDDSA; +#endif else return -1; } @@ -240,8 +248,10 @@ static inline int pk_to_key_type(gnutls_pk_algorithm_t pk) return CKK_ECDSA; else if (pk == GNUTLS_PK_RSA_PSS || pk == GNUTLS_PK_RSA) return CKK_RSA; +#ifdef HAVE_PKCS11_EDDSA_DEFS else if (pk == GNUTLS_PK_EDDSA_ED25519) return CKK_EC_EDWARDS; +#endif else return -1; } @@ -254,8 +264,10 @@ static inline gnutls_pk_algorithm_t key_type_to_pk(ck_key_type_t m) return GNUTLS_PK_DSA; else if (m == CKK_ECDSA) return GNUTLS_PK_EC; +#ifdef HAVE_PKCS11_EDDSA_DEFS else if (m == CKK_EC_EDWARDS) return GNUTLS_PK_EDDSA_ED25519; +#endif else return GNUTLS_PK_UNKNOWN; } @@ -271,9 +283,11 @@ static inline int pk_to_genmech(gnutls_pk_algorithm_t pk, ck_key_type_t *type) } else if (pk == GNUTLS_PK_RSA_PSS || pk == GNUTLS_PK_RSA) { *type = CKK_RSA; return CKM_RSA_PKCS_KEY_PAIR_GEN; +#ifdef HAVE_PKCS11_EDDSA_DEFS } else if (pk == GNUTLS_PK_EDDSA_ED25519) { *type = CKK_EC_EDWARDS; return CKM_EDDSA; +#endif } else { *type = -1; return -1; diff --git a/lib/pkcs11_write.c b/lib/pkcs11_write.c index 07dd98e9c6..8fd3f928e8 100644 --- a/lib/pkcs11_write.c +++ b/lib/pkcs11_write.c @@ -943,6 +943,7 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url, break; } +#ifdef HAVE_PKCS11_EDDSA_DEFS case GNUTLS_PK_EDDSA_ED25519: { ret = @@ -967,6 +968,7 @@ gnutls_pkcs11_copy_x509_privkey2(const char *token_url, break; } +#endif default: gnutls_assert(); ret = GNUTLS_E_INVALID_REQUEST; |