mbed TLS  Version 2.4.1
SSL/TLS Library for the Embedded Space
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
sha256.h File Reference

Data Structures

struct  mbedtls_sha256_context
 SHA-256 context structure. More...
 

Functions

void mbedtls_sha256_init (mbedtls_sha256_context *ctx)
 Initialize SHA-256 context. More...
 
void mbedtls_sha256_free (mbedtls_sha256_context *ctx)
 Clear SHA-256 context. More...
 
void mbedtls_sha256_clone (mbedtls_sha256_context *dst, const mbedtls_sha256_context *src)
 Clone (the state of) a SHA-256 context. More...
 
void mbedtls_sha256_starts (mbedtls_sha256_context *ctx, int is224)
 SHA-256 context setup. More...
 
void mbedtls_sha256_update (mbedtls_sha256_context *ctx, const unsigned char *input, size_t ilen)
 SHA-256 process buffer. More...
 
void mbedtls_sha256_finish (mbedtls_sha256_context *ctx, unsigned char output[32])
 SHA-256 final digest. More...
 
void mbedtls_sha256_process (mbedtls_sha256_context *ctx, const unsigned char data[64])
 
void mbedtls_sha256 (const unsigned char *input, size_t ilen, unsigned char output[32], int is224)
 Output = SHA-256( input buffer ) More...
 
int mbedtls_sha256_self_test (int verbose)
 Checkup routine. More...
 

Description

SHA-224 and SHA-256 cryptographic hash function.

Copyright (C) 2006-2015, ARM Limited, All Rights Reserved 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.

This file is part of mbed TLS (https://tls.mbed.org)


Data Structure Documentation

struct mbedtls_sha256_context

SHA-256 context structure.

Data Fields
unsigned char buffer[64]

data block being processed

int is224

0 => SHA-256, else SHA-224

uint32_t state[8]

intermediate digest state

uint32_t total[2]

number of bytes processed

Function Documentation

void mbedtls_sha256 ( const unsigned char *  input,
size_t  ilen,
unsigned char  output[32],
int  is224 
)

Output = SHA-256( input buffer )

Parameters
inputbuffer holding the data
ilenlength of the input data
outputSHA-224/256 checksum result
is2240 = use SHA256, 1 = use SHA224
void mbedtls_sha256_clone ( mbedtls_sha256_context dst,
const mbedtls_sha256_context src 
)

Clone (the state of) a SHA-256 context.

Parameters
dstThe destination context
srcThe context to be cloned
void mbedtls_sha256_finish ( mbedtls_sha256_context ctx,
unsigned char  output[32] 
)

SHA-256 final digest.

Parameters
ctxSHA-256 context
outputSHA-224/256 checksum result
void mbedtls_sha256_free ( mbedtls_sha256_context ctx)

Clear SHA-256 context.

Parameters
ctxSHA-256 context to be cleared
void mbedtls_sha256_init ( mbedtls_sha256_context ctx)

Initialize SHA-256 context.

Parameters
ctxSHA-256 context to be initialized
int mbedtls_sha256_self_test ( int  verbose)

Checkup routine.

Returns
0 if successful, or 1 if the test failed
void mbedtls_sha256_starts ( mbedtls_sha256_context ctx,
int  is224 
)

SHA-256 context setup.

Parameters
ctxcontext to be initialized
is2240 = use SHA256, 1 = use SHA224
void mbedtls_sha256_update ( mbedtls_sha256_context ctx,
const unsigned char *  input,
size_t  ilen 
)

SHA-256 process buffer.

Parameters
ctxSHA-256 context
inputbuffer holding the data
ilenlength of the input data