Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

sha256.h File Reference

sha256.h File Reference

SHA-224 and SHA-256 cryptographic hash function. More...

Go to the source code of this file.

Data Structures

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

Functions

void sha256_init (sha256_context *ctx)
 Initialize SHA-256 context.
void sha256_free (sha256_context *ctx)
 Clear SHA-256 context.
void sha256_starts (sha256_context *ctx, int is224)
 SHA-256 context setup.
void sha256_update (sha256_context *ctx, const unsigned char *input, size_t ilen)
 SHA-256 process buffer.
void sha256_finish (sha256_context *ctx, unsigned char output[32])
 SHA-256 final digest.
void sha256 (const unsigned char *input, size_t ilen, unsigned char output[32], int is224)
 Output = SHA-256( input buffer )
int sha256_file (const char *path, unsigned char output[32], int is224)
 Output = SHA-256( file contents )
void sha256_hmac_starts (sha256_context *ctx, const unsigned char *key, size_t keylen, int is224)
 SHA-256 HMAC context setup.
void sha256_hmac_update (sha256_context *ctx, const unsigned char *input, size_t ilen)
 SHA-256 HMAC process buffer.
void sha256_hmac_finish (sha256_context *ctx, unsigned char output[32])
 SHA-256 HMAC final digest.
void sha256_hmac_reset (sha256_context *ctx)
 SHA-256 HMAC context reset.
void sha256_hmac (const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[32], int is224)
 Output = HMAC-SHA-256( hmac key, input buffer )
int sha256_self_test (int verbose)
 Checkup routine.

Detailed Description

SHA-224 and SHA-256 cryptographic hash function.

Copyright (C) 2006-2014, ARM Limited, All Rights Reserved

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

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file sha256.h.


Function Documentation

void 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

Definition at line 351 of file sha256.c.

int sha256_file ( const char *  path,
unsigned char  output[32],
int  is224 
)

Output = SHA-256( file contents )

Parameters:
pathinput file name
outputSHA-224/256 checksum result
is2240 = use SHA256, 1 = use SHA224
Returns:
0 if successful, or POLARSSL_ERR_SHA256_FILE_IO_ERROR

Definition at line 367 of file sha256.c.

void sha256_finish ( sha256_context ctx,
unsigned char  output[32] 
)

SHA-256 final digest.

Parameters:
ctxSHA-256 context
outputSHA-224/256 checksum result

Definition at line 315 of file sha256.c.

void sha256_free ( sha256_context ctx )

Clear SHA-256 context.

Parameters:
ctxSHA-256 context to be cleared

Definition at line 88 of file sha256.c.

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

Output = HMAC-SHA-256( hmac key, input buffer )

Parameters:
keyHMAC secret key
keylenlength of the HMAC key
inputbuffer holding the data
ilenlength of the input data
outputHMAC-SHA-224/256 result
is2240 = use SHA256, 1 = use SHA224

Definition at line 469 of file sha256.c.

void sha256_hmac_finish ( sha256_context ctx,
unsigned char  output[32] 
)

SHA-256 HMAC final digest.

Parameters:
ctxHMAC context
outputSHA-224/256 HMAC checksum result

Definition at line 440 of file sha256.c.

void sha256_hmac_reset ( sha256_context ctx )

SHA-256 HMAC context reset.

Parameters:
ctxHMAC context to be reset

Definition at line 460 of file sha256.c.

void sha256_hmac_starts ( sha256_context ctx,
const unsigned char *  key,
size_t  keylen,
int  is224 
)

SHA-256 HMAC context setup.

Parameters:
ctxHMAC context to be initialized
keyHMAC secret key
keylenlength of the HMAC key
is2240 = use SHA256, 1 = use SHA224

Definition at line 400 of file sha256.c.

void sha256_hmac_update ( sha256_context ctx,
const unsigned char *  input,
size_t  ilen 
)

SHA-256 HMAC process buffer.

Parameters:
ctxHMAC context
inputbuffer holding the data
ilenlength of the input data

Definition at line 431 of file sha256.c.

void sha256_init ( sha256_context ctx )

Initialize SHA-256 context.

Parameters:
ctxSHA-256 context to be initialized

Definition at line 83 of file sha256.c.

int sha256_self_test ( int  verbose )

Checkup routine.

Returns:
0 if successful, or 1 if the test failed

Definition at line 648 of file sha256.c.

void sha256_starts ( sha256_context ctx,
int  is224 
)

SHA-256 context setup.

Parameters:
ctxcontext to be initialized
is2240 = use SHA256, 1 = use SHA224

Definition at line 99 of file sha256.c.

void sha256_update ( 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

Definition at line 266 of file sha256.c.