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 /* arc4.h
wolfSSL 0:1239e9b70ca2 2 *
wolfSSL 0:1239e9b70ca2 3 * Copyright (C) 2006-2014 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 #ifndef CTAO_CRYPT_ARC4_H
wolfSSL 0:1239e9b70ca2 24 #define CTAO_CRYPT_ARC4_H
wolfSSL 0:1239e9b70ca2 25
wolfSSL 0:1239e9b70ca2 26
wolfSSL 0:1239e9b70ca2 27 #include <cyassl/ctaocrypt/types.h>
wolfSSL 0:1239e9b70ca2 28
wolfSSL 0:1239e9b70ca2 29
wolfSSL 0:1239e9b70ca2 30 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 31 extern "C" {
wolfSSL 0:1239e9b70ca2 32 #endif
wolfSSL 0:1239e9b70ca2 33
wolfSSL 0:1239e9b70ca2 34
wolfSSL 0:1239e9b70ca2 35 #define CYASSL_ARC4_CAVIUM_MAGIC 0xBEEF0001
wolfSSL 0:1239e9b70ca2 36
wolfSSL 0:1239e9b70ca2 37 enum {
wolfSSL 0:1239e9b70ca2 38 ARC4_ENC_TYPE = 4, /* cipher unique type */
wolfSSL 0:1239e9b70ca2 39 ARC4_STATE_SIZE = 256
wolfSSL 0:1239e9b70ca2 40 };
wolfSSL 0:1239e9b70ca2 41
wolfSSL 0:1239e9b70ca2 42 /* ARC4 encryption and decryption */
wolfSSL 0:1239e9b70ca2 43 typedef struct Arc4 {
wolfSSL 0:1239e9b70ca2 44 byte x;
wolfSSL 0:1239e9b70ca2 45 byte y;
wolfSSL 0:1239e9b70ca2 46 byte state[ARC4_STATE_SIZE];
wolfSSL 0:1239e9b70ca2 47 #ifdef HAVE_CAVIUM
wolfSSL 0:1239e9b70ca2 48 int devId; /* nitrox device id */
wolfSSL 0:1239e9b70ca2 49 word32 magic; /* using cavium magic */
wolfSSL 0:1239e9b70ca2 50 word64 contextHandle; /* nitrox context memory handle */
wolfSSL 0:1239e9b70ca2 51 #endif
wolfSSL 0:1239e9b70ca2 52 } Arc4;
wolfSSL 0:1239e9b70ca2 53
wolfSSL 0:1239e9b70ca2 54 CYASSL_API void Arc4Process(Arc4*, byte*, const byte*, word32);
wolfSSL 0:1239e9b70ca2 55 CYASSL_API void Arc4SetKey(Arc4*, const byte*, word32);
wolfSSL 0:1239e9b70ca2 56
wolfSSL 0:1239e9b70ca2 57 #ifdef HAVE_CAVIUM
wolfSSL 0:1239e9b70ca2 58 CYASSL_API int Arc4InitCavium(Arc4*, int);
wolfSSL 0:1239e9b70ca2 59 CYASSL_API void Arc4FreeCavium(Arc4*);
wolfSSL 0:1239e9b70ca2 60 #endif
wolfSSL 0:1239e9b70ca2 61
wolfSSL 0:1239e9b70ca2 62 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 63 } /* extern "C" */
wolfSSL 0:1239e9b70ca2 64 #endif
wolfSSL 0:1239e9b70ca2 65
wolfSSL 0:1239e9b70ca2 66
wolfSSL 0:1239e9b70ca2 67 #endif /* CTAO_CRYPT_ARC4_H */
wolfSSL 0:1239e9b70ca2 68
wolfSSL 0:1239e9b70ca2 69