Implement two-valued handle type
diff --git a/library/pk.c b/library/pk.c
index 9621e9e..79ae8f6 100644
--- a/library/pk.c
+++ b/library/pk.c
@@ -745,8 +745,10 @@
mbedtls_free( ctx );
}
+#if !defined(MBEDTLS_PK_SINGLE_TYPE)
const mbedtls_pk_info_t mbedtls_uecc_eckey_info =
MBEDTLS_PK_INFO( MBEDTLS_PK_INFO_ECKEY );
+#endif
#endif /* MBEDTLS_USE_TINYCRYPT */
/*
@@ -1349,6 +1351,14 @@
*/
mbedtls_pk_handle_t mbedtls_pk_info_from_type( mbedtls_pk_type_t pk_type )
{
+#if defined(MBEDTLS_PK_SINGLE_TYPE)
+ if( pk_type == MBEDTLS_PK_INFO_TYPE( MBEDTLS_PK_SINGLE_TYPE ) )
+ return( MBEDTLS_PK_UNIQUE_VALID_HANDLE );
+
+ return( MBEDTLS_PK_INVALID_HANDLE );
+
+#else /* MBEDTLS_PK_SINGLE_TYPE */
+
switch( pk_type ) {
#if defined(MBEDTLS_RSA_C)
case MBEDTLS_PK_RSA:
@@ -1375,6 +1385,7 @@
default:
return( NULL );
}
+#endif /* MBEDTLS_PK_SINGLE_TYPE */
}
/*