SHA-1 cryptographic hash function. More...
#include "config.h"
#include <string.h>
#include <inttypes.h>
Go to the source code of this file.
Data Structures | |
struct | sha1_context |
SHA-1 context structure. More... | |
Defines | |
#define | POLARSSL_ERR_SHA1_FILE_IO_ERROR -0x0076 |
Read/write error in file. | |
Functions | |
void | sha1_starts (sha1_context *ctx) |
SHA-1 context setup. | |
void | sha1_update (sha1_context *ctx, const unsigned char *input, size_t ilen) |
SHA-1 process buffer. | |
void | sha1_finish (sha1_context *ctx, unsigned char output[20]) |
SHA-1 final digest. | |
void | sha1_process (sha1_context *ctx, const unsigned char data[64]) |
void | sha1 (const unsigned char *input, size_t ilen, unsigned char output[20]) |
Output = SHA-1( input buffer ). | |
int | sha1_file (const char *path, unsigned char output[20]) |
Output = SHA-1( file contents ). | |
void | sha1_hmac_starts (sha1_context *ctx, const unsigned char *key, size_t keylen) |
SHA-1 HMAC context setup. | |
void | sha1_hmac_update (sha1_context *ctx, const unsigned char *input, size_t ilen) |
SHA-1 HMAC process buffer. | |
void | sha1_hmac_finish (sha1_context *ctx, unsigned char output[20]) |
SHA-1 HMAC final digest. | |
void | sha1_hmac_reset (sha1_context *ctx) |
SHA-1 HMAC context reset. | |
void | sha1_hmac (const unsigned char *key, size_t keylen, const unsigned char *input, size_t ilen, unsigned char output[20]) |
Output = HMAC-SHA-1( hmac key, input buffer ). | |
int | sha1_self_test (int verbose) |
Checkup routine. |
SHA-1 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 sha1.h.
#define POLARSSL_ERR_SHA1_FILE_IO_ERROR -0x0076 |
Read/write error in file.
Definition at line 41 of file sha1.h.
Referenced by polarssl_strerror(), and sha1_file().
void sha1 | ( | const unsigned char * | input, | |
size_t | ilen, | |||
unsigned char | output[20] | |||
) |
Output = SHA-1( input buffer ).
input | buffer holding the data | |
ilen | length of the input data | |
output | SHA-1 checksum result |
Definition at line 319 of file sha1.c.
References sha1_finish(), sha1_starts(), and sha1_update().
Referenced by rsa_self_test(), sha1_hmac_starts(), ssl3_prf(), ssl_calc_finished_ssl(), ssl_calc_finished_tls(), ssl_calc_verify_ssl(), ssl_calc_verify_tls(), ssl_parse_server_key_exchange(), ssl_write_server_key_exchange(), test_suite_sha1(), x509write_crt_set_authority_key_identifier(), and x509write_crt_set_subject_key_identifier().
int sha1_file | ( | const char * | path, | |
unsigned char | output[20] | |||
) |
Output = SHA-1( file contents ).
path | input file name | |
output | SHA-1 checksum result |
Definition at line 334 of file sha1.c.
References POLARSSL_ERR_SHA1_FILE_IO_ERROR, sha1_finish(), sha1_starts(), and sha1_update().
Referenced by sha1_file_wrap(), and test_suite_sha1_file().
void sha1_finish | ( | sha1_context * | ctx, | |
unsigned char | output[20] | |||
) |
SHA-1 final digest.
ctx | SHA-1 context | |
output | SHA-1 checksum result |
Definition at line 288 of file sha1.c.
References PUT_UINT32_BE, sha1_padding, sha1_update(), sha1_context::state, and sha1_context::total.
Referenced by sha1(), sha1_file(), sha1_finish_wrap(), sha1_hmac_finish(), sha1_self_test(), ssl3_prf(), ssl_calc_finished_ssl(), ssl_calc_finished_tls(), ssl_calc_verify_ssl(), ssl_calc_verify_tls(), ssl_parse_server_key_exchange(), and ssl_write_server_key_exchange().
void sha1_hmac | ( | const unsigned char * | key, | |
size_t | keylen, | |||
const unsigned char * | input, | |||
size_t | ilen, | |||
unsigned char | output[20] | |||
) |
Output = HMAC-SHA-1( 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-1 result |
Definition at line 430 of file sha1.c.
References sha1_hmac_finish(), sha1_hmac_starts(), and sha1_hmac_update().
Referenced by test_suite_sha1_hmac(), and tls1_prf().
void sha1_hmac_finish | ( | sha1_context * | ctx, | |
unsigned char | output[20] | |||
) |
SHA-1 HMAC final digest.
ctx | HMAC context | |
output | SHA-1 HMAC checksum result |
Definition at line 405 of file sha1.c.
References sha1_context::opad, sha1_finish(), sha1_starts(), and sha1_update().
Referenced by sha1_hmac(), sha1_hmac_finish_wrap(), and sha1_self_test().
void sha1_hmac_reset | ( | sha1_context * | ctx | ) |
SHA-1 HMAC context reset.
ctx | HMAC context to be reset |
Definition at line 421 of file sha1.c.
References sha1_context::ipad, sha1_starts(), and sha1_update().
Referenced by sha1_hmac_reset_wrap().
void sha1_hmac_starts | ( | sha1_context * | ctx, | |
const unsigned char * | key, | |||
size_t | keylen | |||
) |
SHA-1 HMAC context setup.
ctx | HMAC context to be initialized | |
key | HMAC secret key | |
keylen | length of the HMAC key |
Definition at line 367 of file sha1.c.
References sha1_context::ipad, sha1_context::opad, sha1(), sha1_starts(), and sha1_update().
Referenced by sha1_hmac(), sha1_hmac_starts_wrap(), and sha1_self_test().
void sha1_hmac_update | ( | sha1_context * | ctx, | |
const unsigned char * | input, | |||
size_t | ilen | |||
) |
SHA-1 HMAC process buffer.
ctx | HMAC context | |
input | buffer holding the data | |
ilen | length of the input data |
Definition at line 397 of file sha1.c.
References sha1_update().
Referenced by sha1_hmac(), sha1_hmac_update_wrap(), and sha1_self_test().
void sha1_process | ( | sha1_context * | ctx, | |
const unsigned char | data[64] | |||
) |
Definition at line 81 of file sha1.c.
References A, GET_UINT32_BE, P, R, and sha1_context::state.
Referenced by sha1_process_wrap(), and sha1_update().
int sha1_self_test | ( | int | verbose | ) |
Checkup routine.
Definition at line 538 of file sha1.c.
References sha1_finish(), sha1_hmac_finish(), sha1_hmac_starts(), sha1_hmac_test_buf, sha1_hmac_test_buflen, sha1_hmac_test_key, sha1_hmac_test_keylen, sha1_hmac_test_sum, sha1_hmac_update(), sha1_starts(), sha1_test_buf, sha1_test_buflen, sha1_test_sum, and sha1_update().
Referenced by test_suite_sha1_selftest().
void sha1_starts | ( | sha1_context * | ctx | ) |
SHA-1 context setup.
ctx | context to be initialized |
Definition at line 69 of file sha1.c.
References sha1_context::state, and sha1_context::total.
Referenced by sha1(), sha1_file(), sha1_hmac_finish(), sha1_hmac_reset(), sha1_hmac_starts(), sha1_self_test(), sha1_starts_wrap(), ssl3_prf(), ssl_calc_finished_ssl(), ssl_calc_verify_ssl(), ssl_handshake_init(), ssl_parse_server_key_exchange(), and ssl_write_server_key_exchange().
void sha1_update | ( | sha1_context * | ctx, | |
const unsigned char * | input, | |||
size_t | ilen | |||
) |
SHA-1 process buffer.
ctx | SHA-1 context | |
input | buffer holding the data | |
ilen | length of the input data |
Definition at line 240 of file sha1.c.
References sha1_context::buffer, sha1_process(), and sha1_context::total.
Referenced by sha1(), sha1_file(), sha1_finish(), sha1_hmac_finish(), sha1_hmac_reset(), sha1_hmac_starts(), sha1_hmac_update(), sha1_self_test(), sha1_update_wrap(), ssl3_prf(), ssl_calc_finished_ssl(), ssl_calc_verify_ssl(), ssl_parse_server_key_exchange(), ssl_update_checksum_md5sha1(), ssl_update_checksum_start(), and ssl_write_server_key_exchange().