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

sha512.h File Reference

sha512.h File Reference

SHA-384 and SHA-512 cryptographic hash function. More...

Go to the source code of this file.

Data Structures

struct  sha512_context
 SHA-512 context structure. More...

Functions

void sha512_init (sha512_context *ctx)
 Initialize SHA-512 context.
void sha512_free (sha512_context *ctx)
 Clear SHA-512 context.
void sha512_starts (sha512_context *ctx, int is384)
 SHA-512 context setup.
void sha512_update (sha512_context *ctx, const unsigned char *input, size_t ilen)
 SHA-512 process buffer.
void sha512_finish (sha512_context *ctx, unsigned char output[64])
 SHA-512 final digest.
void sha512 (const unsigned char *input, size_t ilen, unsigned char output[64], int is384)
 Output = SHA-512( input buffer )
int sha512_file (const char *path, unsigned char output[64], int is384)
 Output = SHA-512( file contents )
void sha512_hmac_starts (sha512_context *ctx, const unsigned char *key, size_t keylen, int is384)
 SHA-512 HMAC context setup.
void sha512_hmac_update (sha512_context *ctx, const unsigned char *input, size_t ilen)
 SHA-512 HMAC process buffer.
void sha512_hmac_finish (sha512_context *ctx, unsigned char output[64])
 SHA-512 HMAC final digest.
void sha512_hmac_reset (sha512_context *ctx)
 SHA-512 HMAC context reset.
void sha512_hmac (const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[64], int is384)
 Output = HMAC-SHA-512( hmac key, input buffer )
int sha512_self_test (int verbose)
 Checkup routine.

Detailed Description

SHA-384 and SHA-512 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 sha512.h.


Function Documentation

void sha512 ( const unsigned char *  input,
size_t  ilen,
unsigned char  output[64],
int  is384 
)

Output = SHA-512( input buffer )

Parameters:
inputbuffer holding the data
ilenlength of the input data
outputSHA-384/512 checksum result
is3840 = use SHA512, 1 = use SHA384

Definition at line 355 of file sha512.c.

int sha512_file ( const char *  path,
unsigned char  output[64],
int  is384 
)

Output = SHA-512( file contents )

Parameters:
pathinput file name
outputSHA-384/512 checksum result
is3840 = use SHA512, 1 = use SHA384
Returns:
0 if successful, or POLARSSL_ERR_SHA512_FILE_IO_ERROR

Definition at line 371 of file sha512.c.

void sha512_finish ( sha512_context ctx,
unsigned char  output[64] 
)

SHA-512 final digest.

Parameters:
ctxSHA-512 context
outputSHA-384/512 checksum result

Definition at line 317 of file sha512.c.

void sha512_free ( sha512_context ctx )

Clear SHA-512 context.

Parameters:
ctxSHA-512 context to be cleared

Definition at line 149 of file sha512.c.

void sha512_hmac ( const unsigned char *  key,
size_t  keylen,
const unsigned char *  input,
size_t  ilen,
unsigned char  output[64],
int  is384 
)

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

Parameters:
keyHMAC secret key
keylenlength of the HMAC key
inputbuffer holding the data
ilenlength of the input data
outputHMAC-SHA-384/512 result
is3840 = use SHA512, 1 = use SHA384

Definition at line 473 of file sha512.c.

void sha512_hmac_finish ( sha512_context ctx,
unsigned char  output[64] 
)

SHA-512 HMAC final digest.

Parameters:
ctxHMAC context
outputSHA-384/512 HMAC checksum result

Definition at line 444 of file sha512.c.

void sha512_hmac_reset ( sha512_context ctx )

SHA-512 HMAC context reset.

Parameters:
ctxHMAC context to be reset

Definition at line 464 of file sha512.c.

void sha512_hmac_starts ( sha512_context ctx,
const unsigned char *  key,
size_t  keylen,
int  is384 
)

SHA-512 HMAC context setup.

Parameters:
ctxHMAC context to be initialized
is3840 = use SHA512, 1 = use SHA384
keyHMAC secret key
keylenlength of the HMAC key

Definition at line 404 of file sha512.c.

void sha512_hmac_update ( sha512_context ctx,
const unsigned char *  input,
size_t  ilen 
)

SHA-512 HMAC process buffer.

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

Definition at line 435 of file sha512.c.

void sha512_init ( sha512_context ctx )

Initialize SHA-512 context.

Parameters:
ctxSHA-512 context to be initialized

Definition at line 144 of file sha512.c.

int sha512_self_test ( int  verbose )

Checkup routine.

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

Definition at line 708 of file sha512.c.

void sha512_starts ( sha512_context ctx,
int  is384 
)

SHA-512 context setup.

Parameters:
ctxcontext to be initialized
is3840 = use SHA512, 1 = use SHA384

Definition at line 160 of file sha512.c.

void sha512_update ( sha512_context ctx,
const unsigned char *  input,
size_t  ilen 
)

SHA-512 process buffer.

Parameters:
ctxSHA-512 context
inputbuffer holding the data
ilenlength of the input data

Definition at line 265 of file sha512.c.