@@ -120,12 +120,14 @@ const mbedtls_md_info_t mbedtls_sha256_info = {
120120#endif
121121
122122#if defined(MBEDTLS_SHA512_C )
123+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
123124const mbedtls_md_info_t mbedtls_sha384_info = {
124125 "SHA384" ,
125126 MBEDTLS_MD_SHA384 ,
126127 48 ,
127128 128 ,
128129};
130+ #endif
129131
130132const mbedtls_md_info_t mbedtls_sha512_info = {
131133 "SHA512" ,
@@ -142,8 +144,10 @@ static const int supported_digests[] = {
142144
143145#if defined(MBEDTLS_SHA512_C )
144146 MBEDTLS_MD_SHA512 ,
147+ #if !defined (MBEDTLS_SHA512_NO_SHA384 )
145148 MBEDTLS_MD_SHA384 ,
146149#endif
150+ #endif
147151
148152#if defined(MBEDTLS_SHA256_C )
149153 MBEDTLS_MD_SHA256 ,
@@ -211,8 +215,10 @@ const mbedtls_md_info_t *mbedtls_md_info_from_string( const char *md_name )
211215 return mbedtls_md_info_from_type ( MBEDTLS_MD_SHA256 );
212216#endif
213217#if defined(MBEDTLS_SHA512_C )
218+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
214219 if ( !strcmp ( "SHA384" , md_name ) )
215220 return mbedtls_md_info_from_type ( MBEDTLS_MD_SHA384 );
221+ #endif
216222 if ( !strcmp ( "SHA512" , md_name ) )
217223 return mbedtls_md_info_from_type ( MBEDTLS_MD_SHA512 );
218224#endif
@@ -250,8 +256,10 @@ const mbedtls_md_info_t *mbedtls_md_info_from_type( mbedtls_md_type_t md_type )
250256 return ( & mbedtls_sha256_info );
251257#endif
252258#if defined(MBEDTLS_SHA512_C )
259+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
253260 case MBEDTLS_MD_SHA384 :
254261 return ( & mbedtls_sha384_info );
262+ #endif
255263 case MBEDTLS_MD_SHA512 :
256264 return ( & mbedtls_sha512_info );
257265#endif
@@ -306,7 +314,9 @@ void mbedtls_md_free( mbedtls_md_context_t *ctx )
306314 break ;
307315#endif
308316#if defined(MBEDTLS_SHA512_C )
317+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
309318 case MBEDTLS_MD_SHA384 :
319+ #endif
310320 case MBEDTLS_MD_SHA512 :
311321 mbedtls_sha512_free ( ctx -> md_ctx );
312322 break ;
@@ -372,7 +382,9 @@ int mbedtls_md_clone( mbedtls_md_context_t *dst,
372382 break ;
373383#endif
374384#if defined(MBEDTLS_SHA512_C )
385+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
375386 case MBEDTLS_MD_SHA384 :
387+ #endif
376388 case MBEDTLS_MD_SHA512 :
377389 mbedtls_sha512_clone ( dst -> md_ctx , src -> md_ctx );
378390 break ;
@@ -439,7 +451,9 @@ int mbedtls_md_setup( mbedtls_md_context_t *ctx, const mbedtls_md_info_t *md_inf
439451 break ;
440452#endif
441453#if defined(MBEDTLS_SHA512_C )
454+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
442455 case MBEDTLS_MD_SHA384 :
456+ #endif
443457 case MBEDTLS_MD_SHA512 :
444458 ALLOC ( sha512 );
445459 break ;
@@ -498,8 +512,10 @@ int mbedtls_md_starts( mbedtls_md_context_t *ctx )
498512 return ( mbedtls_sha256_starts_ret ( ctx -> md_ctx , 0 ) );
499513#endif
500514#if defined(MBEDTLS_SHA512_C )
515+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
501516 case MBEDTLS_MD_SHA384 :
502517 return ( mbedtls_sha512_starts_ret ( ctx -> md_ctx , 1 ) );
518+ #endif
503519 case MBEDTLS_MD_SHA512 :
504520 return ( mbedtls_sha512_starts_ret ( ctx -> md_ctx , 0 ) );
505521#endif
@@ -542,8 +558,10 @@ int mbedtls_md_update( mbedtls_md_context_t *ctx, const unsigned char *input, si
542558 return ( mbedtls_sha256_update_ret ( ctx -> md_ctx , input , ilen ) );
543559#endif
544560#if defined(MBEDTLS_SHA512_C )
561+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
545562 case MBEDTLS_MD_SHA384 :
546563 return ( mbedtls_sha512_update_ret ( ctx -> md_ctx , input , ilen ) );
564+ #endif
547565 case MBEDTLS_MD_SHA512 :
548566 return ( mbedtls_sha512_update_ret ( ctx -> md_ctx , input , ilen ) );
549567#endif
@@ -586,8 +604,10 @@ int mbedtls_md_finish( mbedtls_md_context_t *ctx, unsigned char *output )
586604 return ( mbedtls_sha256_finish_ret ( ctx -> md_ctx , output ) );
587605#endif
588606#if defined(MBEDTLS_SHA512_C )
607+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
589608 case MBEDTLS_MD_SHA384 :
590609 return ( mbedtls_sha512_finish_ret ( ctx -> md_ctx , output ) );
610+ #endif
591611 case MBEDTLS_MD_SHA512 :
592612 return ( mbedtls_sha512_finish_ret ( ctx -> md_ctx , output ) );
593613#endif
@@ -631,8 +651,10 @@ int mbedtls_md( const mbedtls_md_info_t *md_info, const unsigned char *input, si
631651 return ( mbedtls_sha256_ret ( input , ilen , output , 0 ) );
632652#endif
633653#if defined(MBEDTLS_SHA512_C )
654+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
634655 case MBEDTLS_MD_SHA384 :
635656 return ( mbedtls_sha512_ret ( input , ilen , output , 1 ) );
657+ #endif
636658 case MBEDTLS_MD_SHA512 :
637659 return ( mbedtls_sha512_ret ( input , ilen , output , 0 ) );
638660#endif
@@ -839,8 +861,10 @@ int mbedtls_md_process( mbedtls_md_context_t *ctx, const unsigned char *data )
839861 return ( mbedtls_internal_sha256_process ( ctx -> md_ctx , data ) );
840862#endif
841863#if defined(MBEDTLS_SHA512_C )
864+ #if !defined(MBEDTLS_SHA512_NO_SHA384 )
842865 case MBEDTLS_MD_SHA384 :
843866 return ( mbedtls_internal_sha512_process ( ctx -> md_ctx , data ) );
867+ #endif
844868 case MBEDTLS_MD_SHA512 :
845869 return ( mbedtls_internal_sha512_process ( ctx -> md_ctx , data ) );
846870#endif
0 commit comments