/** * Internal MD/hash functions - no crypto, just data. * This is used to avoid depending on MD_C just to query a length. * * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); you may * not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MBEDTLS_MD_INTERNAL_H #define MBEDTLS_MD_INTERNAL_H #include "common.h" #include "mbedtls/md.h" /** Get the output length of the given hash type * * \param md_type The hash type. * * \return The output length in bytes, or 0 if not known */ static inline unsigned char mbedtls_md_internal_get_size( mbedtls_md_type_t md_type ) { switch( md_type ) { #if defined(MBEDTLS_MD5_C) || defined(PSA_WANT_ALG_MD5) case MBEDTLS_MD_MD5: return( 16 ); #endif #if defined(MBEDTLS_RIPEMD160_C) || defined(PSA_WANT_ALG_RIPEMD160) || \ defined(MBEDTLS_SHA1_C) || defined(PSA_WANT_ALG_SHA_1) case MBEDTLS_MD_RIPEMD160: case MBEDTLS_MD_SHA1: return( 20 ); #endif #if defined(MBEDTLS_SHA224_C) || defined(PSA_WANT_ALG_SHA_224) case MBEDTLS_MD_SHA224: return( 28 ); #endif #if defined(MBEDTLS_SHA256_C) || defined(PSA_WANT_ALG_SHA_256) case MBEDTLS_MD_SHA256: return( 32 ); #endif #if defined(MBEDTLS_SHA384_C) || defined(PSA_WANT_ALG_SHA_384) case MBEDTLS_MD_SHA384: return( 48 ); #endif #if defined(MBEDTLS_SHA512_C) || defined(PSA_WANT_ALG_SHA_512) case MBEDTLS_MD_SHA512: return( 64 ); #endif default: return( 0 ); } } #endif /* MBEDTLS_MD_INTERNAL_H */