adding sha512 to prf_tls12

This commit is contained in:
bg 2011-10-07 23:20:52 +02:00
parent a0b23b3327
commit 340ef70b85
2 changed files with 35 additions and 23 deletions

View File

@ -5,10 +5,10 @@ ALGO_NAME := PRF_TLS12
AUX += $(ALGO_NAME)
$(ALGO_NAME)_DIR := prf_tls12/
$(ALGO_NAME)_INCDIR := hmac/ sha1/ sha256/ hfal/
$(ALGO_NAME)_INCDIR := hmac/ sha512/ sha256/ hfal/
$(ALGO_NAME)_OBJ := prf_tls12.o
$(ALGO_NAME)_TESTBIN := main-prf_tls12-test.o $(CLI_STD) hfal_sha1.o hfal_sha256.o $(HFAL_STD) \
sha256.o sha1.o hfal-hmac.o
$(ALGO_NAME)_TESTBIN := main-prf_tls12-test.o $(CLI_STD) hfal_sha512.o hfal_sha256.o $(HFAL_STD) \
sha256.o sha512.o hfal-hmac.o
$(ALGO_NAME)_PERFORMANCE_TEST := performance

View File

@ -24,7 +24,7 @@
#include "main-test-common.h"
#include "prf_tls12.h"
#include <crypto/hashfunction_descriptor.h>
#include <crypto/hfal_sha1.h>
#include <crypto/hfal_sha512.h>
#include <crypto/hfal_sha256.h>
const char* algo_name = "PRF-TLS1.2";
@ -62,50 +62,62 @@ Output (100 bytes):
0060 87 34 7b 66 .4.f
*/
const uint8_t test_secret[] = {
0x9b, 0xbe, 0x43, 0x6b, 0xa9, 0x40, 0xf0, 0x17,
0xb1, 0x76, 0x52, 0x84, 0x9a, 0x71, 0xdb, 0x35
};
const uint8_t test_seed[] = {
0xa0, 0xba, 0x9f, 0x93, 0x6c, 0xda, 0x31, 0x18,
0x27, 0xa6, 0xf7, 0x96, 0xff, 0xd5, 0x19, 0x8c
};
const char test_label[] = "test label";
void test_prf(const hfdesc_t* hash){
void test_prf(const hfdesc_t* hash, const void* secret, const void* seed, uint16_t out_length){
prf_tls12_ctx_t ctx;
uint8_t buffer[100];
prf_tls12_init_w_label(&ctx, hash, test_secret, 16*8, test_label, strlen(test_label), test_seed, 16*8);
uint8_t buffer[out_length];
prf_tls12_init_w_label(&ctx, hash, secret, 16*8, test_label, strlen(test_label), seed, 16*8);
cli_putstr("\r\n== Testing PRF-TLSv1.2 with ");
cli_putstr(hash->name);
cli_putstr(" ==\r\n");
prf_tls12_fill(buffer, 100, &ctx);
cli_hexdump_block(buffer, 100, 4, 8);
prf_tls12_fill(buffer, out_length, &ctx);
cli_hexdump_block(buffer, out_length, 4, 8);
prf_tls12_free(&ctx);
}
void test_sha256(void){
test_prf(&sha256_desc);
const uint8_t secret[] = {
0x9b, 0xbe, 0x43, 0x6b, 0xa9, 0x40, 0xf0, 0x17,
0xb1, 0x76, 0x52, 0x84, 0x9a, 0x71, 0xdb, 0x35
};
const uint8_t seed[] = {
0xa0, 0xba, 0x9f, 0x93, 0x6c, 0xda, 0x31, 0x18,
0x27, 0xa6, 0xf7, 0x96, 0xff, 0xd5, 0x19, 0x8c
};
test_prf(&sha256_desc, secret, seed, 100);
}
void test_sha1(void){
test_prf(&sha1_desc);
void test_sha512(void){
const uint8_t secret[] = {
0xb0, 0x32, 0x35, 0x23, 0xc1, 0x85, 0x35, 0x99,
0x58, 0x4d, 0x88, 0x56, 0x8b, 0xbb, 0x05, 0xeb
};
const uint8_t seed[] = {
0xd4, 0x64, 0x0e, 0x12, 0xe4, 0xbc, 0xdb, 0xfb,
0x43, 0x7f, 0x03, 0xe6, 0xae, 0x41, 0x8e, 0xe5,
};
test_prf(&sha512_desc, secret, seed, 196);
}
/*****************************************************************************
* main *
*****************************************************************************/
const char echo_test_str[] = "echo-test";
const char test_sha256_str[] = "test-sha256";
const char test_sha1_str[] = "test-sha1";
const char test_sha512_str[] = "test-sha512";
//const char performance_str[] = "performance";
const char echo_str[] = "echo";
cmdlist_entry_t cmdlist[] = {
{ test_sha256_str, NULL, test_sha256 },
{ test_sha1_str, NULL, test_sha1 },
{ test_sha512_str, NULL, test_sha512 },
// { performance_str, NULL, testrun_performance_bigint },
{ echo_str, (void*)1, (void_fpt)echo_ctrl },
{ NULL, NULL, NULL }