@@ -5516,6 +5516,9 @@ ed25519_key* wolfSSL_ED25519_new(void* heap, int devId)
55165516
55175517 WOLFSSL_ENTER ("wolfSSL_ED25519_new" );
55185518
5519+ #ifndef WC_NO_CONSTRUCTORS
5520+ key = wc_ed25519_new (heap , devId , NULL );
5521+ #else
55195522 key = (ed25519_key * )XMALLOC (sizeof (ed25519_key ), heap ,
55205523 DYNAMIC_TYPE_ED25519 );
55215524 if (key == NULL ) {
@@ -5526,6 +5529,7 @@ ed25519_key* wolfSSL_ED25519_new(void* heap, int devId)
55265529 XFREE (key , heap , DYNAMIC_TYPE_ED25519 );
55275530 key = NULL ;
55285531 }
5532+ #endif
55295533
55305534 return key ;
55315535}
@@ -5537,10 +5541,16 @@ ed25519_key* wolfSSL_ED25519_new(void* heap, int devId)
55375541void wolfSSL_ED25519_free (ed25519_key * key )
55385542{
55395543 if (key != NULL ) {
5540- void * heap = key -> heap ;
55415544 WOLFSSL_ENTER ("wolfSSL_ED25519_free" );
5542- wc_ed25519_free (key );
5543- XFREE (key , heap , DYNAMIC_TYPE_ED25519 );
5545+ #ifndef WC_NO_CONSTRUCTORS
5546+ wc_ed25519_delete (key , NULL );
5547+ #else
5548+ {
5549+ void * heap = key -> heap ;
5550+ wc_ed25519_free (key );
5551+ XFREE (key , heap , DYNAMIC_TYPE_ED25519 );
5552+ }
5553+ #endif
55445554 }
55455555}
55465556#endif /* (OPENSSL_EXTRA || WOLFSSL_WPAS_SMALL) && HAVE_ED25519 */
@@ -6013,6 +6023,10 @@ ed448_key* wolfSSL_ED448_new(void* heap, int devId)
60136023
60146024 WOLFSSL_ENTER ("wolfSSL_ED448_new" );
60156025
6026+ #if !defined(WC_NO_CONSTRUCTORS ) && \
6027+ (!defined(HAVE_FIPS ) || FIPS_VERSION_GE (7 , 0 ))
6028+ key = wc_ed448_new (heap , devId , NULL );
6029+ #else
60166030 key = (ed448_key * )XMALLOC (sizeof (ed448_key ), heap , DYNAMIC_TYPE_ED448 );
60176031 if (key == NULL ) {
60186032 WOLFSSL_ERROR_MSG ("wolfSSL_ED448_new malloc failure" );
@@ -6022,6 +6036,7 @@ ed448_key* wolfSSL_ED448_new(void* heap, int devId)
60226036 XFREE (key , heap , DYNAMIC_TYPE_ED448 );
60236037 key = NULL ;
60246038 }
6039+ #endif
60256040
60266041 return key ;
60276042}
@@ -6033,10 +6048,17 @@ ed448_key* wolfSSL_ED448_new(void* heap, int devId)
60336048void wolfSSL_ED448_free (ed448_key * key )
60346049{
60356050 if (key != NULL ) {
6036- void * heap = key -> heap ;
60376051 WOLFSSL_ENTER ("wolfSSL_ED448_free" );
6038- wc_ed448_free (key );
6039- XFREE (key , heap , DYNAMIC_TYPE_ED448 );
6052+ #if !defined(WC_NO_CONSTRUCTORS ) && \
6053+ (!defined(HAVE_FIPS ) || FIPS_VERSION_GE (7 , 0 ))
6054+ wc_ed448_delete (key , NULL );
6055+ #else
6056+ {
6057+ void * heap = key -> heap ;
6058+ wc_ed448_free (key );
6059+ XFREE (key , heap , DYNAMIC_TYPE_ED448 );
6060+ }
6061+ #endif
60406062 }
60416063}
60426064#endif /* (OPENSSL_EXTRA || WOLFSSL_WPAS_SMALL) && HAVE_ED448 */
0 commit comments