sha512.h
mbedtls/private_access.h
mbedtls/build_info.h
stddef.h
stdint.h
crypto_builtin_primitives.h
mbedtls/build_info.h
mbedtls/check_config.h
mbedtls/config_adjust_legacy_crypto.h
mbedtls/config_adjust_psa_from_legacy.h
mbedtls/config_adjust_psa_superset_legacy.h
mbedtls/config_adjust_ssl.h
mbedtls/config_adjust_x509.h
mbedtls/config_psa.h
mbedtls/mbedtls_config.h
mbedtls/private_access.h
sha512.h
psa/crypto_adjust_auto_enabled.h
psa/crypto_adjust_config_dependencies.h
psa/crypto_adjust_config_key_pair_types.h
psa/crypto_adjust_config_synonyms.h
psa/crypto_legacy.h
limits.h
stddef.h
stdint.h
debug.h
net_sockets.h
oid.h
pk.h
pkcs7.h
psa_util.h
sha512.h
ssl.h
ssl_cache.h
ssl_ciphersuites.h
ssl_cookie.h
ssl_ticket.h
x509.h
x509_crl.h
x509_crt.h
x509_csr.h
crypto.h
crypto_builtin_primitives.h
crypto_driver_contexts_primitives.h
crypto_struct.h
mbedtls_sha512_context
MBEDTLS_ERR_SHA512_BAD_INPUT_DATA
-0x0075

SHA-512 input data was malformed.

struct mbedtls_sha512_context typedef struct mbedtls_sha512_context mbedtls_sha512_context mbedtls_sha512_context

The SHA-512 context structure.

The structure is used both for SHA-384 and for SHA-512 checksum calculations. The choice between these two is made in the call to mbedtls_sha512_starts().

void void mbedtls_sha512_init (mbedtls_sha512_context *ctx) mbedtls_sha512_init mbedtls_sha512_context * ctx

This function initializes a SHA-512 context.

ctx

The SHA-512 context to initialize. This must not be `NULL`.

void void mbedtls_sha512_free (mbedtls_sha512_context *ctx) mbedtls_sha512_free mbedtls_sha512_context * ctx

This function clears a SHA-512 context.

ctx

The SHA-512 context to clear. This may be `NULL`, in which case this function does nothing. If it is not `NULL`, it must point to an initialized SHA-512 context.

void void mbedtls_sha512_clone (mbedtls_sha512_context *dst, const mbedtls_sha512_context *src) mbedtls_sha512_clone mbedtls_sha512_context * dst const mbedtls_sha512_context * src

This function clones the state of a SHA-512 context.

dst

The destination context. This must be initialized.

src

The context to clone. This must be initialized.

int int mbedtls_sha512_starts (mbedtls_sha512_context *ctx, int is384) mbedtls_sha512_starts mbedtls_sha512_context * ctx int is384

This function starts a SHA-384 or SHA-512 checksum calculation.

ctx

The SHA-512 context to use. This must be initialized.

is384

Determines which function to use. This must be either `0` for SHA-512, or `1` for SHA-384.

is384 must be defined accordingly to the enabled MBEDTLS_SHA384_C/MBEDTLS_SHA512_C symbols otherwise the function will return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA.

`0` on success.

A negative error code on failure.

int int mbedtls_sha512_update (mbedtls_sha512_context *ctx, const unsigned char *input, size_t ilen) mbedtls_sha512_update mbedtls_sha512_context * ctx const unsigned char * input size_t ilen

This function feeds an input buffer into an ongoing SHA-512 checksum calculation.

ctx

The SHA-512 context. This must be initialized and have a hash operation started.

input

The buffer holding the input data. This must be a readable buffer of length `ilen` Bytes.

ilen

The length of the input data in Bytes.

`0` on success.

A negative error code on failure.

int int mbedtls_sha512_finish (mbedtls_sha512_context *ctx, unsigned char *output) mbedtls_sha512_finish mbedtls_sha512_context * ctx unsigned char * output

This function finishes the SHA-512 operation, and writes the result to the output buffer.

ctx

The SHA-512 context. This must be initialized and have a hash operation started.

output

The SHA-384 or SHA-512 checksum result. This must be a writable buffer of length `64` bytes for SHA-512, `48` bytes for SHA-384.

`0` on success.

A negative error code on failure.

int int mbedtls_internal_sha512_process (mbedtls_sha512_context *ctx, const unsigned char data[128]) mbedtls_internal_sha512_process mbedtls_sha512_context * ctx const unsigned char data [128]

This function processes a single data block within the ongoing SHA-512 computation. This function is for internal use only.

ctx

The SHA-512 context. This must be initialized.

data

The buffer holding one block of data. This must be a readable buffer of length `128` Bytes.

`0` on success.

A negative error code on failure.

int int mbedtls_sha512 (const unsigned char *input, size_t ilen, unsigned char *output, int is384) mbedtls_sha512 const unsigned char * input size_t ilen unsigned char * output int is384

This function calculates the SHA-512 or SHA-384 checksum of a buffer.

The function allocates the context, performs the calculation, and frees the context.

The SHA-512 result is calculated as output = SHA-512(input buffer).

input

The buffer holding the input data. This must be a readable buffer of length `ilen` Bytes.

ilen

The length of the input data in Bytes.

output

The SHA-384 or SHA-512 checksum result. This must be a writable buffer of length `64` bytes for SHA-512, `48` bytes for SHA-384.

is384

Determines which function to use. This must be either `0` for SHA-512, or `1` for SHA-384.

is384 must be defined accordingly with the supported symbols in the config file. If:

- is384 is 0, but `MBEDTLS_SHA384_C` is not defined, or

- is384 is 1, but `MBEDTLS_SHA512_C` is not defined then the function will return MBEDTLS_ERR_SHA512_BAD_INPUT_DATA.

`0` on success.

A negative error code on failure.

int int mbedtls_sha384_self_test (int verbose) mbedtls_sha384_self_test int verbose

The SHA-384 checkup routine.

`0` on success.

`1` on failure.

int int mbedtls_sha512_self_test (int verbose) mbedtls_sha512_self_test int verbose

The SHA-512 checkup routine.

`0` on success.

`1` on failure.

This file contains SHA-384 and SHA-512 definitions and functions.

The Secure Hash Algorithms 384 and 512 (SHA-384 and SHA-512) cryptographic hash functions are defined in FIPS 180-4: Secure Hash Standard (SHS).

    /*
    *CopyrightTheMbedTLSContributors
    *SPDX-License-Identifier:Apache-2.0ORGPL-2.0-or-later
    */
    #ifndefMBEDTLS_SHA512_H
    #defineMBEDTLS_SHA512_H
    #include"mbedtls/private_access.h"

    #include"mbedtls/build_info.h"

    #include<stddef.h>
    #include<stdint.h>

    #defineMBEDTLS_ERR_SHA512_BAD_INPUT_DATA-0x0075

    #ifdef__cplusplus
    extern"C"{
    #endif

    #if!defined(MBEDTLS_SHA512_ALT)
    //Regularimplementation
    //

    typedefstructmbedtls_sha512_context{
    uint64_tMBEDTLS_PRIVATE(total)[2];
    uint64_tMBEDTLS_PRIVATE(state)[8];
    unsignedcharMBEDTLS_PRIVATE(buffer)[128];
    #ifdefined(MBEDTLS_SHA384_C)
    intMBEDTLS_PRIVATE(is384);
    #endif
    }
    mbedtls_sha512_context;

    #else/*MBEDTLS_SHA512_ALT*/
    #include"sha512_alt.h"
    #endif/*MBEDTLS_SHA512_ALT*/

    voidmbedtls_sha512_init(mbedtls_sha512_context*ctx);

    voidmbedtls_sha512_free(mbedtls_sha512_context*ctx);

    voidmbedtls_sha512_clone(mbedtls_sha512_context*dst,
    constmbedtls_sha512_context*src);

    intmbedtls_sha512_starts(mbedtls_sha512_context*ctx,intis384);

    intmbedtls_sha512_update(mbedtls_sha512_context*ctx,
    constunsignedchar*input,
    size_tilen);

    intmbedtls_sha512_finish(mbedtls_sha512_context*ctx,
    unsignedchar*output);

    intmbedtls_internal_sha512_process(mbedtls_sha512_context*ctx,
    constunsignedchardata[128]);

    intmbedtls_sha512(constunsignedchar*input,
    size_tilen,
    unsignedchar*output,
    intis384);

    #ifdefined(MBEDTLS_SELF_TEST)

    #ifdefined(MBEDTLS_SHA384_C)
    intmbedtls_sha384_self_test(intverbose);
    #endif/*MBEDTLS_SHA384_C*/

    #ifdefined(MBEDTLS_SHA512_C)
    intmbedtls_sha512_self_test(intverbose);
    #endif/*MBEDTLS_SHA512_C*/

    #endif/*MBEDTLS_SELF_TEST*/

    #ifdef__cplusplus
    }
    #endif

    #endif/*mbedtls_sha512.h*/