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 /* callbacks.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 #ifndef CYASSL_CALLBACKS_H
wolfSSL 0:1239e9b70ca2 24 #define CYASSL_CALLBACKS_H
wolfSSL 0:1239e9b70ca2 25
wolfSSL 0:1239e9b70ca2 26 #include <sys/time.h>
wolfSSL 0:1239e9b70ca2 27
wolfSSL 0:1239e9b70ca2 28 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 29 extern "C" {
wolfSSL 0:1239e9b70ca2 30 #endif
wolfSSL 0:1239e9b70ca2 31
wolfSSL 0:1239e9b70ca2 32
wolfSSL 0:1239e9b70ca2 33 enum { /* CALLBACK CONTSTANTS */
wolfSSL 0:1239e9b70ca2 34 MAX_PACKETNAME_SZ = 24,
wolfSSL 0:1239e9b70ca2 35 MAX_CIPHERNAME_SZ = 24,
wolfSSL 0:1239e9b70ca2 36 MAX_TIMEOUT_NAME_SZ = 24,
wolfSSL 0:1239e9b70ca2 37 MAX_PACKETS_HANDSHAKE = 14, /* 12 for client auth plus 2 alerts */
wolfSSL 0:1239e9b70ca2 38 MAX_VALUE_SZ = 128, /* all handshake packets but Cert should
wolfSSL 0:1239e9b70ca2 39 fit here */
wolfSSL 0:1239e9b70ca2 40 };
wolfSSL 0:1239e9b70ca2 41
wolfSSL 0:1239e9b70ca2 42
wolfSSL 0:1239e9b70ca2 43 typedef struct handShakeInfo_st {
wolfSSL 0:1239e9b70ca2 44 char cipherName[MAX_CIPHERNAME_SZ + 1]; /* negotiated cipher */
wolfSSL 0:1239e9b70ca2 45 char packetNames[MAX_PACKETS_HANDSHAKE][MAX_PACKETNAME_SZ + 1];
wolfSSL 0:1239e9b70ca2 46 /* SSL packet names */
wolfSSL 0:1239e9b70ca2 47 int numberPackets; /* actual # of packets */
wolfSSL 0:1239e9b70ca2 48 int negotiationError; /* cipher/parameter err */
wolfSSL 0:1239e9b70ca2 49 } HandShakeInfo;
wolfSSL 0:1239e9b70ca2 50
wolfSSL 0:1239e9b70ca2 51
wolfSSL 0:1239e9b70ca2 52 typedef struct timeval Timeval;
wolfSSL 0:1239e9b70ca2 53
wolfSSL 0:1239e9b70ca2 54
wolfSSL 0:1239e9b70ca2 55 typedef struct packetInfo_st {
wolfSSL 0:1239e9b70ca2 56 char packetName[MAX_PACKETNAME_SZ + 1]; /* SSL packet name */
wolfSSL 0:1239e9b70ca2 57 Timeval timestamp; /* when it occured */
wolfSSL 0:1239e9b70ca2 58 unsigned char value[MAX_VALUE_SZ]; /* if fits, it's here */
wolfSSL 0:1239e9b70ca2 59 unsigned char* bufferValue; /* otherwise here (non 0) */
wolfSSL 0:1239e9b70ca2 60 int valueSz; /* sz of value or buffer */
wolfSSL 0:1239e9b70ca2 61 } PacketInfo;
wolfSSL 0:1239e9b70ca2 62
wolfSSL 0:1239e9b70ca2 63
wolfSSL 0:1239e9b70ca2 64 typedef struct timeoutInfo_st {
wolfSSL 0:1239e9b70ca2 65 char timeoutName[MAX_TIMEOUT_NAME_SZ + 1]; /* timeout Name */
wolfSSL 0:1239e9b70ca2 66 int flags; /* for future use */
wolfSSL 0:1239e9b70ca2 67 int numberPackets; /* actual # of packets */
wolfSSL 0:1239e9b70ca2 68 PacketInfo packets[MAX_PACKETS_HANDSHAKE]; /* list of all packets */
wolfSSL 0:1239e9b70ca2 69 Timeval timeoutValue; /* timer that caused it */
wolfSSL 0:1239e9b70ca2 70 } TimeoutInfo;
wolfSSL 0:1239e9b70ca2 71
wolfSSL 0:1239e9b70ca2 72
wolfSSL 0:1239e9b70ca2 73
wolfSSL 0:1239e9b70ca2 74 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 75 } /* extern "C" */
wolfSSL 0:1239e9b70ca2 76 #endif
wolfSSL 0:1239e9b70ca2 77
wolfSSL 0:1239e9b70ca2 78
wolfSSL 0:1239e9b70ca2 79 #endif /* CYASSL_CALLBACKS_H */
wolfSSL 0:1239e9b70ca2 80
wolfSSL 0:1239e9b70ca2 81