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 /* des.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 /* des.h defines mini des 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_DES_H_
wolfSSL 0:1239e9b70ca2 29 #define CYASSL_DES_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_des.h"
wolfSSL 0:1239e9b70ca2 35 #endif
wolfSSL 0:1239e9b70ca2 36
wolfSSL 0:1239e9b70ca2 37
wolfSSL 0:1239e9b70ca2 38 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 39 extern "C" {
wolfSSL 0:1239e9b70ca2 40 #endif
wolfSSL 0:1239e9b70ca2 41
wolfSSL 0:1239e9b70ca2 42 typedef unsigned char CYASSL_DES_cblock[8];
wolfSSL 0:1239e9b70ca2 43 typedef /* const */ CYASSL_DES_cblock CYASSL_const_DES_cblock;
wolfSSL 0:1239e9b70ca2 44 typedef CYASSL_DES_cblock CYASSL_DES_key_schedule;
wolfSSL 0:1239e9b70ca2 45
wolfSSL 0:1239e9b70ca2 46
wolfSSL 0:1239e9b70ca2 47 enum {
wolfSSL 0:1239e9b70ca2 48 DES_ENCRYPT = 1,
wolfSSL 0:1239e9b70ca2 49 DES_DECRYPT = 0
wolfSSL 0:1239e9b70ca2 50 };
wolfSSL 0:1239e9b70ca2 51
wolfSSL 0:1239e9b70ca2 52
wolfSSL 0:1239e9b70ca2 53 CYASSL_API void CyaSSL_DES_set_key_unchecked(CYASSL_const_DES_cblock*,
wolfSSL 0:1239e9b70ca2 54 CYASSL_DES_key_schedule*);
wolfSSL 0:1239e9b70ca2 55 CYASSL_API int CyaSSL_DES_key_sched(CYASSL_const_DES_cblock* key,
wolfSSL 0:1239e9b70ca2 56 CYASSL_DES_key_schedule* schedule);
wolfSSL 0:1239e9b70ca2 57 CYASSL_API void CyaSSL_DES_cbc_encrypt(const unsigned char* input,
wolfSSL 0:1239e9b70ca2 58 unsigned char* output, long length,
wolfSSL 0:1239e9b70ca2 59 CYASSL_DES_key_schedule* schedule, CYASSL_DES_cblock* ivec,
wolfSSL 0:1239e9b70ca2 60 int enc);
wolfSSL 0:1239e9b70ca2 61 CYASSL_API void CyaSSL_DES_ncbc_encrypt(const unsigned char* input,
wolfSSL 0:1239e9b70ca2 62 unsigned char* output, long length,
wolfSSL 0:1239e9b70ca2 63 CYASSL_DES_key_schedule* schedule,
wolfSSL 0:1239e9b70ca2 64 CYASSL_DES_cblock* ivec, int enc);
wolfSSL 0:1239e9b70ca2 65
wolfSSL 0:1239e9b70ca2 66 CYASSL_API void CyaSSL_DES_set_odd_parity(CYASSL_DES_cblock*);
wolfSSL 0:1239e9b70ca2 67 CYASSL_API void CyaSSL_DES_ecb_encrypt(CYASSL_DES_cblock*, CYASSL_DES_cblock*,
wolfSSL 0:1239e9b70ca2 68 CYASSL_DES_key_schedule*, int);
wolfSSL 0:1239e9b70ca2 69
wolfSSL 0:1239e9b70ca2 70
wolfSSL 0:1239e9b70ca2 71 typedef CYASSL_DES_cblock DES_cblock;
wolfSSL 0:1239e9b70ca2 72 typedef CYASSL_const_DES_cblock const_DES_cblock;
wolfSSL 0:1239e9b70ca2 73 typedef CYASSL_DES_key_schedule DES_key_schedule;
wolfSSL 0:1239e9b70ca2 74
wolfSSL 0:1239e9b70ca2 75 #define DES_set_key_unchecked CyaSSL_DES_set_key_unchecked
wolfSSL 0:1239e9b70ca2 76 #define DES_key_sched CyaSSL_DES_key_sched
wolfSSL 0:1239e9b70ca2 77 #define DES_cbc_encrypt CyaSSL_DES_cbc_encrypt
wolfSSL 0:1239e9b70ca2 78 #define DES_ncbc_encrypt CyaSSL_DES_ncbc_encrypt
wolfSSL 0:1239e9b70ca2 79 #define DES_set_odd_parity CyaSSL_DES_set_odd_parity
wolfSSL 0:1239e9b70ca2 80 #define DES_ecb_encrypt CyaSSL_DES_ecb_encrypt
wolfSSL 0:1239e9b70ca2 81
wolfSSL 0:1239e9b70ca2 82 #ifdef __cplusplus
wolfSSL 0:1239e9b70ca2 83 } /* extern "C" */
wolfSSL 0:1239e9b70ca2 84 #endif
wolfSSL 0:1239e9b70ca2 85
wolfSSL 0:1239e9b70ca2 86
wolfSSL 0:1239e9b70ca2 87 #endif /* CYASSL_DES_H_ */
wolfSSL 0:1239e9b70ca2 88