CyaSSL changed for NucleoF401RE board: implemented random and time functions for build. (Has trouble with wildcard domains like *.google.com, *.yahoo.com)

Fork of CyaSSL by wolf SSL

Committer:
Vanger
Date:
Wed Jan 14 22:07:14 2015 +0000
Revision:
4:e505054279ed
Parent:
0:1239e9b70ca2
Implemented some platform specific functions in the Cyassl library code: time functions, seed random functions, and also changed the settings.h file to define settings specific to the platform being used

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wolfSSL 0:1239e9b70ca2 1 /* hmac.h
wolfSSL 0:1239e9b70ca2 2 *
wolfSSL 0:1239e9b70ca2 3 * Copyright (C) 2013 wolfSSL Inc.
wolfSSL 0:1239e9b70ca2 4 *
wolfSSL 0:1239e9b70ca2 5 * This file is part of CyaSSL.
wolfSSL 0:1239e9b70ca2 6 *
wolfSSL 0:1239e9b70ca2 7 * CyaSSL is free software; you can redistribute it and/or modify
wolfSSL 0:1239e9b70ca2 8 * it under the terms of the GNU General Public License as published by
wolfSSL 0:1239e9b70ca2 9 * the Free Software Foundation; either version 2 of the License, or
wolfSSL 0:1239e9b70ca2 10 * (at your option) any later version.
wolfSSL 0:1239e9b70ca2 11 *
wolfSSL 0:1239e9b70ca2 12 * CyaSSL is distributed in the hope that it will be useful,
wolfSSL 0:1239e9b70ca2 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
wolfSSL 0:1239e9b70ca2 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
wolfSSL 0:1239e9b70ca2 15 * GNU General Public License for more details.
wolfSSL 0:1239e9b70ca2 16 *
wolfSSL 0:1239e9b70ca2 17 * You should have received a copy of the GNU General Public License
wolfSSL 0:1239e9b70ca2 18 * along with this program; if not, write to the Free Software
wolfSSL 0:1239e9b70ca2 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
wolfSSL 0:1239e9b70ca2 20 */
wolfSSL 0:1239e9b70ca2 21
wolfSSL 0:1239e9b70ca2 22
wolfSSL 0:1239e9b70ca2 23 /* hmac.h defines mini hamc openssl compatibility layer
wolfSSL 0:1239e9b70ca2 24 *
wolfSSL 0:1239e9b70ca2 25 */
wolfSSL 0:1239e9b70ca2 26
wolfSSL 0:1239e9b70ca2 27
wolfSSL 0:1239e9b70ca2 28 #ifndef CYASSL_HMAC_H_
wolfSSL 0:1239e9b70ca2 29 #define CYASSL_HMAC_H_
wolfSSL 0:1239e9b70ca2 30
wolfSSL 0:1239e9b70ca2 31 #include <cyassl/ctaocrypt/settings.h>
wolfSSL 0:1239e9b70ca2 32
wolfSSL 0:1239e9b70ca2 33 #ifdef YASSL_PREFIX
wolfSSL 0:1239e9b70ca2 34 #include "prefix_hmac.h"
wolfSSL 0:1239e9b70ca2 35 #endif
wolfSSL 0:1239e9b70ca2 36
wolfSSL 0:1239e9b70ca2 37 #include <cyassl/openssl/evp.h>
wolfSSL 0:1239e9b70ca2 38 #include <cyassl/ctaocrypt/hmac.h>
wolfSSL 0:1239e9b70ca2 39
wolfSSL 0:1239e9b70ca2 40 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 41 extern "C" {
wolfSSL 0:1239e9b70ca2 42 #endif
wolfSSL 0:1239e9b70ca2 43
wolfSSL 0:1239e9b70ca2 44
wolfSSL 0:1239e9b70ca2 45 CYASSL_API unsigned char* CyaSSL_HMAC(const CYASSL_EVP_MD* evp_md,
wolfSSL 0:1239e9b70ca2 46 const void* key, int key_len,
wolfSSL 0:1239e9b70ca2 47 const unsigned char* d, int n, unsigned char* md,
wolfSSL 0:1239e9b70ca2 48 unsigned int* md_len);
wolfSSL 0:1239e9b70ca2 49
wolfSSL 0:1239e9b70ca2 50
wolfSSL 0:1239e9b70ca2 51 typedef struct CYASSL_HMAC_CTX {
wolfSSL 0:1239e9b70ca2 52 Hmac hmac;
wolfSSL 0:1239e9b70ca2 53 int type;
wolfSSL 0:1239e9b70ca2 54 } CYASSL_HMAC_CTX;
wolfSSL 0:1239e9b70ca2 55
wolfSSL 0:1239e9b70ca2 56
wolfSSL 0:1239e9b70ca2 57 CYASSL_API void CyaSSL_HMAC_Init(CYASSL_HMAC_CTX* ctx, const void* key,
wolfSSL 0:1239e9b70ca2 58 int keylen, const EVP_MD* type);
wolfSSL 0:1239e9b70ca2 59 CYASSL_API void CyaSSL_HMAC_Update(CYASSL_HMAC_CTX* ctx,
wolfSSL 0:1239e9b70ca2 60 const unsigned char* data, int len);
wolfSSL 0:1239e9b70ca2 61 CYASSL_API void CyaSSL_HMAC_Final(CYASSL_HMAC_CTX* ctx, unsigned char* hash,
wolfSSL 0:1239e9b70ca2 62 unsigned int* len);
wolfSSL 0:1239e9b70ca2 63 CYASSL_API void CyaSSL_HMAC_cleanup(CYASSL_HMAC_CTX* ctx);
wolfSSL 0:1239e9b70ca2 64
wolfSSL 0:1239e9b70ca2 65
wolfSSL 0:1239e9b70ca2 66 typedef struct CYASSL_HMAC_CTX HMAC_CTX;
wolfSSL 0:1239e9b70ca2 67
wolfSSL 0:1239e9b70ca2 68 #define HMAC(a,b,c,d,e,f,g) CyaSSL_HMAC((a),(b),(c),(d),(e),(f),(g))
wolfSSL 0:1239e9b70ca2 69
wolfSSL 0:1239e9b70ca2 70 #define HMAC_Init CyaSSL_HMAC_Init
wolfSSL 0:1239e9b70ca2 71 #define HMAC_Update CyaSSL_HMAC_Update
wolfSSL 0:1239e9b70ca2 72 #define HMAC_Final CyaSSL_HMAC_Final
wolfSSL 0:1239e9b70ca2 73 #define HMAC_cleanup CyaSSL_HMAC_cleanup
wolfSSL 0:1239e9b70ca2 74
wolfSSL 0:1239e9b70ca2 75
wolfSSL 0:1239e9b70ca2 76 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 77 } /* extern "C" */
wolfSSL 0:1239e9b70ca2 78 #endif
wolfSSL 0:1239e9b70ca2 79
wolfSSL 0:1239e9b70ca2 80
wolfSSL 0:1239e9b70ca2 81 #endif /* CYASSL_HMAC_H_ */
wolfSSL 0:1239e9b70ca2 82