SHA-224 and SHA-256 cryptographic hash function. More...
#include "config.h"#include <string.h>#include <inttypes.h>

Go to the source code of this file.
Data Structures | |
| struct | sha256_context |
| SHA-256 context structure. More... | |
Defines | |
| #define | POLARSSL_ERR_SHA256_FILE_IO_ERROR -0x0078 |
| Read/write error in file. | |
Functions | |
| 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_process (sha256_context *ctx, const unsigned char data[64]) |
| 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. | |
SHA-224 and SHA-256 cryptographic hash function.
Copyright (C) 2006-2013, Brainspark B.V.
This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
All rights reserved.
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.
| #define POLARSSL_ERR_SHA256_FILE_IO_ERROR -0x0078 |
Read/write error in file.
Definition at line 41 of file sha256.h.
Referenced by polarssl_strerror(), and sha256_file().
| void sha256 | ( | const unsigned char * | input, | |
| size_t | ilen, | |||
| unsigned char | output[32], | |||
| int | is224 | |||
| ) |
Output = SHA-256( input buffer ).
| input | buffer holding the data | |
| ilen | length of the input data | |
| output | SHA-224/256 checksum result | |
| is224 | 0 = use SHA256, 1 = use SHA224 |
Definition at line 320 of file sha256.c.
References sha256_finish(), sha256_starts(), and sha256_update().
Referenced by entropy_func(), entropy_update(), sha224_wrap(), sha256_hmac_starts(), sha256_wrap(), ssl_calc_finished_tls_sha256(), and ssl_calc_verify_tls_sha256().
| int sha256_file | ( | const char * | path, | |
| unsigned char | output[32], | |||
| int | is224 | |||
| ) |
Output = SHA-256( file contents ).
| path | input file name | |
| output | SHA-224/256 checksum result | |
| is224 | 0 = use SHA256, 1 = use SHA224 |
Definition at line 336 of file sha256.c.
References POLARSSL_ERR_SHA256_FILE_IO_ERROR, sha256_finish(), sha256_starts(), and sha256_update().
Referenced by sha224_file_wrap(), and sha256_file_wrap().
| void sha256_finish | ( | sha256_context * | ctx, | |
| unsigned char | output[32] | |||
| ) |
SHA-256 final digest.
| ctx | SHA-256 context | |
| output | SHA-224/256 checksum result |
Definition at line 284 of file sha256.c.
References sha256_context::is224, PUT_UINT32_BE, sha256_padding, sha256_update(), sha256_context::state, and sha256_context::total.
Referenced by entropy_func(), sha224_finish_wrap(), sha256(), sha256_file(), sha256_finish_wrap(), sha256_hmac_finish(), sha256_self_test(), ssl_calc_finished_tls_sha256(), and ssl_calc_verify_tls_sha256().
| 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 ).
| key | HMAC secret key | |
| keylen | length of the HMAC key | |
| input | buffer holding the data | |
| ilen | length of the input data | |
| output | HMAC-SHA-224/256 result | |
| is224 | 0 = use SHA256, 1 = use SHA224 |
Definition at line 437 of file sha256.c.
References sha256_hmac_finish(), sha256_hmac_starts(), and sha256_hmac_update().
Referenced by sha224_hmac_wrap(), sha256_hmac_wrap(), ssl_parse_ticket(), ssl_write_ticket(), and tls_prf_sha256().
| void sha256_hmac_finish | ( | sha256_context * | ctx, | |
| unsigned char | output[32] | |||
| ) |
SHA-256 HMAC final digest.
| ctx | HMAC context | |
| output | SHA-224/256 HMAC checksum result |
Definition at line 408 of file sha256.c.
References sha256_context::is224, sha256_context::opad, sha256_finish(), sha256_starts(), and sha256_update().
Referenced by sha224_hmac_finish_wrap(), sha256_hmac(), sha256_hmac_finish_wrap(), and sha256_self_test().
| void sha256_hmac_reset | ( | sha256_context * | ctx | ) |
SHA-256 HMAC context reset.
| ctx | HMAC context to be reset |
Definition at line 428 of file sha256.c.
References sha256_context::ipad, sha256_context::is224, sha256_starts(), and sha256_update().
Referenced by sha224_hmac_reset_wrap(), and sha256_hmac_reset_wrap().
| void sha256_hmac_starts | ( | sha256_context * | ctx, | |
| const unsigned char * | key, | |||
| size_t | keylen, | |||
| int | is224 | |||
| ) |
SHA-256 HMAC context setup.
| ctx | HMAC context to be initialized | |
| key | HMAC secret key | |
| keylen | length of the HMAC key | |
| is224 | 0 = use SHA256, 1 = use SHA224 |
Definition at line 369 of file sha256.c.
References sha256_context::ipad, sha256_context::opad, sha256(), sha256_starts(), and sha256_update().
Referenced by sha224_hmac_starts_wrap(), sha256_hmac(), sha256_hmac_starts_wrap(), and sha256_self_test().
| void sha256_hmac_update | ( | sha256_context * | ctx, | |
| const unsigned char * | input, | |||
| size_t | ilen | |||
| ) |
SHA-256 HMAC process buffer.
| ctx | HMAC context | |
| input | buffer holding the data | |
| ilen | length of the input data |
Definition at line 400 of file sha256.c.
References sha256_update().
Referenced by sha224_hmac_update_wrap(), sha256_hmac(), sha256_hmac_update_wrap(), and sha256_self_test().
| void sha256_process | ( | sha256_context * | ctx, | |
| const unsigned char | data[64] | |||
| ) |
Definition at line 102 of file sha256.c.
References A, F, GET_UINT32_BE, P, R, and sha256_context::state.
Referenced by sha224_process_wrap(), sha256_process_wrap(), and sha256_update().
| int sha256_self_test | ( | int | verbose | ) |
Checkup routine.
Definition at line 616 of file sha256.c.
References sha256_finish(), sha256_hmac_finish(), sha256_hmac_starts(), sha256_hmac_test_buf, sha256_hmac_test_buflen, sha256_hmac_test_key, sha256_hmac_test_keylen, sha256_hmac_test_sum, sha256_hmac_update(), sha256_starts(), sha256_test_buf, sha256_test_buflen, sha256_test_sum, and sha256_update().
| void sha256_starts | ( | sha256_context * | ctx, | |
| int | is224 | |||
| ) |
SHA-256 context setup.
| ctx | context to be initialized | |
| is224 | 0 = use SHA256, 1 = use SHA224 |
Definition at line 69 of file sha256.c.
References sha256_context::is224, sha256_context::state, and sha256_context::total.
Referenced by entropy_func(), entropy_init(), sha224_starts_wrap(), sha256(), sha256_file(), sha256_hmac_finish(), sha256_hmac_reset(), sha256_hmac_starts(), sha256_self_test(), sha256_starts_wrap(), and ssl_handshake_init().
| void sha256_update | ( | sha256_context * | ctx, | |
| const unsigned char * | input, | |||
| size_t | ilen | |||
| ) |
SHA-256 process buffer.
| ctx | SHA-256 context | |
| input | buffer holding the data | |
| ilen | length of the input data |
Definition at line 236 of file sha256.c.
References sha256_context::buffer, sha256_process(), and sha256_context::total.
Referenced by entropy_func(), entropy_update(), sha224_update_wrap(), sha256(), sha256_file(), sha256_finish(), sha256_hmac_finish(), sha256_hmac_reset(), sha256_hmac_starts(), sha256_hmac_update(), sha256_self_test(), sha256_update_wrap(), ssl_update_checksum_sha256(), and ssl_update_checksum_start().
1.6.1