Implement two-valued handle type
diff --git a/include/mbedtls/pk.h b/include/mbedtls/pk.h
index 476bce1..64cd7b5 100644
--- a/include/mbedtls/pk.h
+++ b/include/mbedtls/pk.h
@@ -126,9 +126,16 @@
/**
* \brief Public key information and operations
*/
+#if defined(MBEDTLS_PK_SINGLE_TYPE)
+typedef enum {
+ MBEDTLS_PK_INVALID_HANDLE,
+ MBEDTLS_PK_UNIQUE_VALID_HANDLE,
+} mbedtls_pk_handle_t;
+#else /* MBEDTLS_PK_SINGLE_TYPE */
typedef struct mbedtls_pk_info_t mbedtls_pk_info_t;
typedef const mbedtls_pk_info_t *mbedtls_pk_handle_t;
#define MBEDTLS_PK_INVALID_HANDLE ( (mbedtls_pk_handle_t) NULL )
+#endif /* MBEDTLS_PK_SINGLE_TYPE */
/**
* \brief Public key container
diff --git a/include/mbedtls/pk_internal.h b/include/mbedtls/pk_internal.h
index 65bd8e9..fcf4887 100644
--- a/include/mbedtls/pk_internal.h
+++ b/include/mbedtls/pk_internal.h
@@ -242,6 +242,7 @@
} mbedtls_rsa_alt_context;
#endif
+#if !defined(MBEDTLS_PK_SINGLE_TYPE)
#if defined(MBEDTLS_RSA_C)
extern const mbedtls_pk_info_t mbedtls_rsa_info;
#endif
@@ -262,5 +263,6 @@
#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
extern const mbedtls_pk_info_t mbedtls_rsa_alt_info;
#endif
+#endif /* MBEDTLS_PK_SINGLE_TYPE */
#endif /* MBEDTLS_PK_WRAP_H */