A simple CyaSSL-based HMAC-MD5 implementation. Licensed under GPL v2.

Dependents:   RFrec_full RFtrans_full

The output will be base64-encoded, with trailing "==", like this:

j62o/jZsAZD9i9m+32lIuQ==

Example

#include "mbed.h"
#include "hmac_md5.h"

Serial pc(USBTX, USBRX); // tx, rx

void main(void)
{
    
    const char * key = "MySecretKey";
    
    const char * text = "message to be signed";
    
    char output[26];
    
    HMAC_MD5(key, text, output);

    printf("result = %s\n", output);

    while(true){}
}
Committer:
igrokhotkov
Date:
Wed Feb 06 20:35:03 2013 +0000
Revision:
0:83f3dcfa5c8f
initial revision

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igrokhotkov 0:83f3dcfa5c8f 1 /* settings.h
igrokhotkov 0:83f3dcfa5c8f 2 *
igrokhotkov 0:83f3dcfa5c8f 3 * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
igrokhotkov 0:83f3dcfa5c8f 4 *
igrokhotkov 0:83f3dcfa5c8f 5 * This file is part of CyaSSL.
igrokhotkov 0:83f3dcfa5c8f 6 *
igrokhotkov 0:83f3dcfa5c8f 7 * CyaSSL is free software; you can redistribute it and/or modify
igrokhotkov 0:83f3dcfa5c8f 8 * it under the terms of the GNU General Public License as published by
igrokhotkov 0:83f3dcfa5c8f 9 * the Free Software Foundation; either version 2 of the License, or
igrokhotkov 0:83f3dcfa5c8f 10 * (at your option) any later version.
igrokhotkov 0:83f3dcfa5c8f 11 *
igrokhotkov 0:83f3dcfa5c8f 12 * CyaSSL is distributed in the hope that it will be useful,
igrokhotkov 0:83f3dcfa5c8f 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
igrokhotkov 0:83f3dcfa5c8f 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
igrokhotkov 0:83f3dcfa5c8f 15 * GNU General Public License for more details.
igrokhotkov 0:83f3dcfa5c8f 16 *
igrokhotkov 0:83f3dcfa5c8f 17 * You should have received a copy of the GNU General Public License
igrokhotkov 0:83f3dcfa5c8f 18 * along with this program; if not, write to the Free Software
igrokhotkov 0:83f3dcfa5c8f 19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
igrokhotkov 0:83f3dcfa5c8f 20 */
igrokhotkov 0:83f3dcfa5c8f 21
igrokhotkov 0:83f3dcfa5c8f 22 /* Place OS specific preprocessor flags, defines, includes here, will be
igrokhotkov 0:83f3dcfa5c8f 23 included into every file because types.h includes it */
igrokhotkov 0:83f3dcfa5c8f 24
igrokhotkov 0:83f3dcfa5c8f 25
igrokhotkov 0:83f3dcfa5c8f 26 #ifndef CTAO_CRYPT_SETTINGS_H
igrokhotkov 0:83f3dcfa5c8f 27 #define CTAO_CRYPT_SETTINGS_H
igrokhotkov 0:83f3dcfa5c8f 28
igrokhotkov 0:83f3dcfa5c8f 29 #ifdef __cplusplus
igrokhotkov 0:83f3dcfa5c8f 30 extern "C" {
igrokhotkov 0:83f3dcfa5c8f 31 #endif
igrokhotkov 0:83f3dcfa5c8f 32
igrokhotkov 0:83f3dcfa5c8f 33 /* Uncomment next line if using IPHONE */
igrokhotkov 0:83f3dcfa5c8f 34 /* #define IPHONE */
igrokhotkov 0:83f3dcfa5c8f 35
igrokhotkov 0:83f3dcfa5c8f 36 /* Uncomment next line if using ThreadX */
igrokhotkov 0:83f3dcfa5c8f 37 /* #define THREADX */
igrokhotkov 0:83f3dcfa5c8f 38
igrokhotkov 0:83f3dcfa5c8f 39 /* Uncomment next line if using Micrium ucOS */
igrokhotkov 0:83f3dcfa5c8f 40 /* #define MICRIUM */
igrokhotkov 0:83f3dcfa5c8f 41
igrokhotkov 0:83f3dcfa5c8f 42 /* Uncomment next line if using Mbed */
igrokhotkov 0:83f3dcfa5c8f 43 #define MBED
igrokhotkov 0:83f3dcfa5c8f 44
igrokhotkov 0:83f3dcfa5c8f 45 /* Uncomment next line if using Microchip PIC32 ethernet starter kit */
igrokhotkov 0:83f3dcfa5c8f 46 /* #define MICROCHIP_PIC32 */
igrokhotkov 0:83f3dcfa5c8f 47
igrokhotkov 0:83f3dcfa5c8f 48 /* Uncomment next line if using FreeRTOS */
igrokhotkov 0:83f3dcfa5c8f 49 /* #define FREERTOS */
igrokhotkov 0:83f3dcfa5c8f 50
igrokhotkov 0:83f3dcfa5c8f 51 /* Uncomment next line if using FreeRTOS Windows Simulator */
igrokhotkov 0:83f3dcfa5c8f 52 /* #define FREERTOS_WINSIM */
igrokhotkov 0:83f3dcfa5c8f 53
igrokhotkov 0:83f3dcfa5c8f 54 /* Uncomment next line if using RTIP */
igrokhotkov 0:83f3dcfa5c8f 55 /* #define EBSNET */
igrokhotkov 0:83f3dcfa5c8f 56
igrokhotkov 0:83f3dcfa5c8f 57 /* Uncomment next line if using lwip */
igrokhotkov 0:83f3dcfa5c8f 58 /* #define CYASSL_LWIP */
igrokhotkov 0:83f3dcfa5c8f 59
igrokhotkov 0:83f3dcfa5c8f 60 /* Uncomment next line if building CyaSSL for a game console */
igrokhotkov 0:83f3dcfa5c8f 61 /* #define CYASSL_GAME_BUILD */
igrokhotkov 0:83f3dcfa5c8f 62
igrokhotkov 0:83f3dcfa5c8f 63 /* Uncomment next line if building CyaSSL for LSR */
igrokhotkov 0:83f3dcfa5c8f 64 /* #define CYASSL_LSR */
igrokhotkov 0:83f3dcfa5c8f 65
igrokhotkov 0:83f3dcfa5c8f 66 /* Uncomment next line if building CyaSSL for Freescale MQX/RTCS/MFS */
igrokhotkov 0:83f3dcfa5c8f 67 /* #define FREESCALE_MQX */
igrokhotkov 0:83f3dcfa5c8f 68
igrokhotkov 0:83f3dcfa5c8f 69 /* Uncomment next line if using STM32F2 */
igrokhotkov 0:83f3dcfa5c8f 70 /* #define CYASSL_STM32F2 */
igrokhotkov 0:83f3dcfa5c8f 71
igrokhotkov 0:83f3dcfa5c8f 72
igrokhotkov 0:83f3dcfa5c8f 73 #include "visibility.h"
igrokhotkov 0:83f3dcfa5c8f 74
igrokhotkov 0:83f3dcfa5c8f 75 /* stream ciphers except arc4 need 32bit alignment, intel ok without */
igrokhotkov 0:83f3dcfa5c8f 76 #if defined(__x86_64__) || defined(__ia64__) || defined(__i386__)
igrokhotkov 0:83f3dcfa5c8f 77 #define NO_XSTREAM_ALIGNMENT
igrokhotkov 0:83f3dcfa5c8f 78 #else
igrokhotkov 0:83f3dcfa5c8f 79 #define XSTREAM_ALIGNMENT
igrokhotkov 0:83f3dcfa5c8f 80 #endif
igrokhotkov 0:83f3dcfa5c8f 81
igrokhotkov 0:83f3dcfa5c8f 82 #ifdef IPHONE
igrokhotkov 0:83f3dcfa5c8f 83 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 84 #endif
igrokhotkov 0:83f3dcfa5c8f 85
igrokhotkov 0:83f3dcfa5c8f 86 #ifdef THREADX
igrokhotkov 0:83f3dcfa5c8f 87 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 88 #endif
igrokhotkov 0:83f3dcfa5c8f 89
igrokhotkov 0:83f3dcfa5c8f 90 #ifdef MICROCHIP_PIC32
igrokhotkov 0:83f3dcfa5c8f 91 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 92 #define SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 93 #define CYASSL_USER_IO
igrokhotkov 0:83f3dcfa5c8f 94 #define NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 95 #define NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 96 #define NO_FILESYSTEM
igrokhotkov 0:83f3dcfa5c8f 97 #define USE_FAST_MATH
igrokhotkov 0:83f3dcfa5c8f 98 #define TFM_TIMING_RESISTANT
igrokhotkov 0:83f3dcfa5c8f 99 #endif
igrokhotkov 0:83f3dcfa5c8f 100
igrokhotkov 0:83f3dcfa5c8f 101 #ifdef MBED
igrokhotkov 0:83f3dcfa5c8f 102 #define SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 103 #define CYASSL_USER_IO
igrokhotkov 0:83f3dcfa5c8f 104 #define NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 105 #define NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 106 #define NO_SHA512
igrokhotkov 0:83f3dcfa5c8f 107 #define NO_DH
igrokhotkov 0:83f3dcfa5c8f 108 #define NO_DSA
igrokhotkov 0:83f3dcfa5c8f 109 #define NO_HC128
igrokhotkov 0:83f3dcfa5c8f 110 #endif /* MBED */
igrokhotkov 0:83f3dcfa5c8f 111
igrokhotkov 0:83f3dcfa5c8f 112 #ifdef FREERTOS_WINSIM
igrokhotkov 0:83f3dcfa5c8f 113 #define FREERTOS
igrokhotkov 0:83f3dcfa5c8f 114 #define USE_WINDOWS_API
igrokhotkov 0:83f3dcfa5c8f 115 #endif
igrokhotkov 0:83f3dcfa5c8f 116
igrokhotkov 0:83f3dcfa5c8f 117
igrokhotkov 0:83f3dcfa5c8f 118 #ifdef CYASSL_LEANPSK
igrokhotkov 0:83f3dcfa5c8f 119 #include <stdlib.h>
igrokhotkov 0:83f3dcfa5c8f 120 #define XMALLOC(s, h, type) malloc((s))
igrokhotkov 0:83f3dcfa5c8f 121 #define XFREE(p, h, type) free((p))
igrokhotkov 0:83f3dcfa5c8f 122 #define XREALLOC(p, n, h, t) realloc((p), (n))
igrokhotkov 0:83f3dcfa5c8f 123 #endif
igrokhotkov 0:83f3dcfa5c8f 124
igrokhotkov 0:83f3dcfa5c8f 125
igrokhotkov 0:83f3dcfa5c8f 126 #ifdef FREERTOS
igrokhotkov 0:83f3dcfa5c8f 127 #define NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 128 #define NO_SHA512
igrokhotkov 0:83f3dcfa5c8f 129 #define NO_DH
igrokhotkov 0:83f3dcfa5c8f 130 #define NO_DSA
igrokhotkov 0:83f3dcfa5c8f 131 #define NO_HC128
igrokhotkov 0:83f3dcfa5c8f 132
igrokhotkov 0:83f3dcfa5c8f 133 #ifndef SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 134 #include "FreeRTOS.h"
igrokhotkov 0:83f3dcfa5c8f 135 #include "semphr.h"
igrokhotkov 0:83f3dcfa5c8f 136 #endif
igrokhotkov 0:83f3dcfa5c8f 137 #endif
igrokhotkov 0:83f3dcfa5c8f 138
igrokhotkov 0:83f3dcfa5c8f 139 #ifdef EBSNET
igrokhotkov 0:83f3dcfa5c8f 140 #include "rtip.h"
igrokhotkov 0:83f3dcfa5c8f 141
igrokhotkov 0:83f3dcfa5c8f 142 /* #define DEBUG_CYASSL */
igrokhotkov 0:83f3dcfa5c8f 143 #define NO_CYASSL_DIR /* tbd */
igrokhotkov 0:83f3dcfa5c8f 144
igrokhotkov 0:83f3dcfa5c8f 145 #if (POLLOS)
igrokhotkov 0:83f3dcfa5c8f 146 #define SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 147 #endif
igrokhotkov 0:83f3dcfa5c8f 148
igrokhotkov 0:83f3dcfa5c8f 149 #if (RTPLATFORM)
igrokhotkov 0:83f3dcfa5c8f 150 #if (!RTP_LITTLE_ENDIAN)
igrokhotkov 0:83f3dcfa5c8f 151 #define BIG_ENDIAN_ORDER
igrokhotkov 0:83f3dcfa5c8f 152 #endif
igrokhotkov 0:83f3dcfa5c8f 153 #else
igrokhotkov 0:83f3dcfa5c8f 154 #if (!KS_LITTLE_ENDIAN)
igrokhotkov 0:83f3dcfa5c8f 155 #define BIG_ENDIAN_ORDER
igrokhotkov 0:83f3dcfa5c8f 156 #endif
igrokhotkov 0:83f3dcfa5c8f 157 #endif
igrokhotkov 0:83f3dcfa5c8f 158
igrokhotkov 0:83f3dcfa5c8f 159 #if (WINMSP3)
igrokhotkov 0:83f3dcfa5c8f 160 #undef SIZEOF_LONG
igrokhotkov 0:83f3dcfa5c8f 161 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 162 #else
igrokhotkov 0:83f3dcfa5c8f 163 #sslpro: settings.h - please implement SIZEOF_LONG and SIZEOF_LONG_LONG
igrokhotkov 0:83f3dcfa5c8f 164 #endif
igrokhotkov 0:83f3dcfa5c8f 165
igrokhotkov 0:83f3dcfa5c8f 166 #define XMALLOC(s, h, type) ((void *)rtp_malloc((s), SSL_PRO_MALLOC))
igrokhotkov 0:83f3dcfa5c8f 167 #define XFREE(p, h, type) (rtp_free(p))
igrokhotkov 0:83f3dcfa5c8f 168 #define XREALLOC(p, n, h, t) realloc((p), (n))
igrokhotkov 0:83f3dcfa5c8f 169
igrokhotkov 0:83f3dcfa5c8f 170 #endif /* EBSNET */
igrokhotkov 0:83f3dcfa5c8f 171
igrokhotkov 0:83f3dcfa5c8f 172 #ifdef CYASSL_GAME_BUILD
igrokhotkov 0:83f3dcfa5c8f 173 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 174 #if defined(__PPU) || defined(__XENON)
igrokhotkov 0:83f3dcfa5c8f 175 #define BIG_ENDIAN_ORDER
igrokhotkov 0:83f3dcfa5c8f 176 #endif
igrokhotkov 0:83f3dcfa5c8f 177 #endif
igrokhotkov 0:83f3dcfa5c8f 178
igrokhotkov 0:83f3dcfa5c8f 179 #ifdef CYASSL_LSR
igrokhotkov 0:83f3dcfa5c8f 180 #define HAVE_WEBSERVER
igrokhotkov 0:83f3dcfa5c8f 181 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 182 #define CYASSL_LOW_MEMORY
igrokhotkov 0:83f3dcfa5c8f 183 #define NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 184 #define NO_SHA512
igrokhotkov 0:83f3dcfa5c8f 185 #define NO_DH
igrokhotkov 0:83f3dcfa5c8f 186 #define NO_DSA
igrokhotkov 0:83f3dcfa5c8f 187 #define NO_HC128
igrokhotkov 0:83f3dcfa5c8f 188 #define NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 189 #define NO_CYASSL_DIR
igrokhotkov 0:83f3dcfa5c8f 190 #define NO_RABBIT
igrokhotkov 0:83f3dcfa5c8f 191 #ifndef NO_FILESYSTEM
igrokhotkov 0:83f3dcfa5c8f 192 #define LSR_FS
igrokhotkov 0:83f3dcfa5c8f 193 #include "inc/hw_types.h"
igrokhotkov 0:83f3dcfa5c8f 194 #include "fs.h"
igrokhotkov 0:83f3dcfa5c8f 195 #endif
igrokhotkov 0:83f3dcfa5c8f 196 #define CYASSL_LWIP
igrokhotkov 0:83f3dcfa5c8f 197 #include <errno.h> /* for tcp errno */
igrokhotkov 0:83f3dcfa5c8f 198 #define CYASSL_SAFERTOS
igrokhotkov 0:83f3dcfa5c8f 199 #if defined(__IAR_SYSTEMS_ICC__)
igrokhotkov 0:83f3dcfa5c8f 200 /* enum uses enum */
igrokhotkov 0:83f3dcfa5c8f 201 #pragma diag_suppress=Pa089
igrokhotkov 0:83f3dcfa5c8f 202 #endif
igrokhotkov 0:83f3dcfa5c8f 203 #endif
igrokhotkov 0:83f3dcfa5c8f 204
igrokhotkov 0:83f3dcfa5c8f 205 #ifdef CYASSL_SAFERTOS
igrokhotkov 0:83f3dcfa5c8f 206 #ifndef SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 207 #include "SafeRTOS/semphr.h"
igrokhotkov 0:83f3dcfa5c8f 208 #endif
igrokhotkov 0:83f3dcfa5c8f 209
igrokhotkov 0:83f3dcfa5c8f 210 #include "SafeRTOS/heap.h"
igrokhotkov 0:83f3dcfa5c8f 211 #define XMALLOC(s, h, type) pvPortMalloc((s))
igrokhotkov 0:83f3dcfa5c8f 212 #define XFREE(p, h, type) vPortFree((p))
igrokhotkov 0:83f3dcfa5c8f 213 #define XREALLOC(p, n, h, t) pvPortRealloc((p), (n))
igrokhotkov 0:83f3dcfa5c8f 214 #endif
igrokhotkov 0:83f3dcfa5c8f 215
igrokhotkov 0:83f3dcfa5c8f 216 #ifdef CYASSL_LOW_MEMORY
igrokhotkov 0:83f3dcfa5c8f 217 #define RSA_LOW_MEM
igrokhotkov 0:83f3dcfa5c8f 218 #define CYASSL_SMALL_STACK
igrokhotkov 0:83f3dcfa5c8f 219 #define TFM_TIMING_RESISTANT
igrokhotkov 0:83f3dcfa5c8f 220 #endif
igrokhotkov 0:83f3dcfa5c8f 221
igrokhotkov 0:83f3dcfa5c8f 222 #ifdef FREESCALE_MQX
igrokhotkov 0:83f3dcfa5c8f 223 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 224 #define NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 225 #define NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 226 #define NO_RABBIT
igrokhotkov 0:83f3dcfa5c8f 227 #define NO_CYASSL_DIR
igrokhotkov 0:83f3dcfa5c8f 228 #define USE_FAST_MATH
igrokhotkov 0:83f3dcfa5c8f 229 #define TFM_TIMING_RESISTANT
igrokhotkov 0:83f3dcfa5c8f 230 #define FREESCALE_K70_RNGA
igrokhotkov 0:83f3dcfa5c8f 231 #ifndef NO_FILESYSTEM
igrokhotkov 0:83f3dcfa5c8f 232 #include "mfs.h"
igrokhotkov 0:83f3dcfa5c8f 233 #include "fio.h"
igrokhotkov 0:83f3dcfa5c8f 234 #endif
igrokhotkov 0:83f3dcfa5c8f 235 #ifndef SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 236 #include "mutex.h"
igrokhotkov 0:83f3dcfa5c8f 237 #endif
igrokhotkov 0:83f3dcfa5c8f 238
igrokhotkov 0:83f3dcfa5c8f 239 #define XMALLOC(s, h, type) (void *)_mem_alloc_system((s))
igrokhotkov 0:83f3dcfa5c8f 240 #define XFREE(p, h, type) _mem_free(p)
igrokhotkov 0:83f3dcfa5c8f 241 /* Note: MQX has no realloc, using fastmath above */
igrokhotkov 0:83f3dcfa5c8f 242 #endif
igrokhotkov 0:83f3dcfa5c8f 243
igrokhotkov 0:83f3dcfa5c8f 244 #ifdef CYASSL_STM32F2
igrokhotkov 0:83f3dcfa5c8f 245 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 246 #define NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 247 #define NO_CYASSL_DIR
igrokhotkov 0:83f3dcfa5c8f 248 #define NO_RABBIT
igrokhotkov 0:83f3dcfa5c8f 249 #define STM32F2_RNG
igrokhotkov 0:83f3dcfa5c8f 250 #define STM32F2_CRYPTO
igrokhotkov 0:83f3dcfa5c8f 251 #define KEIL_INTRINSICS
igrokhotkov 0:83f3dcfa5c8f 252 #endif
igrokhotkov 0:83f3dcfa5c8f 253
igrokhotkov 0:83f3dcfa5c8f 254 #ifdef MICRIUM
igrokhotkov 0:83f3dcfa5c8f 255
igrokhotkov 0:83f3dcfa5c8f 256 #include "stdlib.h"
igrokhotkov 0:83f3dcfa5c8f 257 #include "net_cfg.h"
igrokhotkov 0:83f3dcfa5c8f 258 #include "ssl_cfg.h"
igrokhotkov 0:83f3dcfa5c8f 259 #include "net_secure_os.h"
igrokhotkov 0:83f3dcfa5c8f 260
igrokhotkov 0:83f3dcfa5c8f 261 #define CYASSL_TYPES
igrokhotkov 0:83f3dcfa5c8f 262
igrokhotkov 0:83f3dcfa5c8f 263 typedef CPU_INT08U byte;
igrokhotkov 0:83f3dcfa5c8f 264 typedef CPU_INT16U word16;
igrokhotkov 0:83f3dcfa5c8f 265 typedef CPU_INT32U word32;
igrokhotkov 0:83f3dcfa5c8f 266
igrokhotkov 0:83f3dcfa5c8f 267 #if (NET_SECURE_MGR_CFG_WORD_SIZE == CPU_WORD_SIZE_32)
igrokhotkov 0:83f3dcfa5c8f 268 #define SIZEOF_LONG 4
igrokhotkov 0:83f3dcfa5c8f 269 #undef SIZEOF_LONG_LONG
igrokhotkov 0:83f3dcfa5c8f 270 #else
igrokhotkov 0:83f3dcfa5c8f 271 #undef SIZEOF_LONG
igrokhotkov 0:83f3dcfa5c8f 272 #define SIZEOF_LONG_LONG 8
igrokhotkov 0:83f3dcfa5c8f 273 #endif
igrokhotkov 0:83f3dcfa5c8f 274
igrokhotkov 0:83f3dcfa5c8f 275 #define STRING_USER
igrokhotkov 0:83f3dcfa5c8f 276
igrokhotkov 0:83f3dcfa5c8f 277 #define XSTRLEN(pstr) ((CPU_SIZE_T)Str_Len((CPU_CHAR *)(pstr)))
igrokhotkov 0:83f3dcfa5c8f 278 #define XSTRNCPY(pstr_dest, pstr_src, len_max) \
igrokhotkov 0:83f3dcfa5c8f 279 ((CPU_CHAR *)Str_Copy_N((CPU_CHAR *)(pstr_dest), \
igrokhotkov 0:83f3dcfa5c8f 280 (CPU_CHAR *)(pstr_src), (CPU_SIZE_T)(len_max)))
igrokhotkov 0:83f3dcfa5c8f 281 #define XSTRNCMP(pstr_1, pstr_2, len_max) \
igrokhotkov 0:83f3dcfa5c8f 282 ((CPU_INT16S)Str_Cmp_N((CPU_CHAR *)(pstr_1), \
igrokhotkov 0:83f3dcfa5c8f 283 (CPU_CHAR *)(pstr_2), (CPU_SIZE_T)(len_max)))
igrokhotkov 0:83f3dcfa5c8f 284 #define XSTRSTR(pstr, pstr_srch) \
igrokhotkov 0:83f3dcfa5c8f 285 ((CPU_CHAR *)Str_Str((CPU_CHAR *)(pstr), \
igrokhotkov 0:83f3dcfa5c8f 286 (CPU_CHAR *)(pstr_srch)))
igrokhotkov 0:83f3dcfa5c8f 287 #define XMEMSET(pmem, data_val, size) \
igrokhotkov 0:83f3dcfa5c8f 288 ((void)Mem_Set((void *)(pmem), (CPU_INT08U) (data_val), \
igrokhotkov 0:83f3dcfa5c8f 289 (CPU_SIZE_T)(size)))
igrokhotkov 0:83f3dcfa5c8f 290 #define XMEMCPY(pdest, psrc, size) ((void)Mem_Copy((void *)(pdest), \
igrokhotkov 0:83f3dcfa5c8f 291 (void *)(psrc), (CPU_SIZE_T)(size)))
igrokhotkov 0:83f3dcfa5c8f 292 #define XMEMCMP(pmem_1, pmem_2, size) \
igrokhotkov 0:83f3dcfa5c8f 293 (((CPU_BOOLEAN)Mem_Cmp((void *)(pmem_1), (void *)(pmem_2), \
igrokhotkov 0:83f3dcfa5c8f 294 (CPU_SIZE_T)(size))) ? DEF_NO : DEF_YES)
igrokhotkov 0:83f3dcfa5c8f 295 #define XMEMMOVE XMEMCPY
igrokhotkov 0:83f3dcfa5c8f 296
igrokhotkov 0:83f3dcfa5c8f 297 #if (NET_SECURE_MGR_CFG_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 298 #define MICRIUM_MALLOC
igrokhotkov 0:83f3dcfa5c8f 299 #define XMALLOC(s, h, type) ((void *)NetSecure_BlkGet((CPU_INT08U)(type), \
igrokhotkov 0:83f3dcfa5c8f 300 (CPU_SIZE_T)(s), (void *)0))
igrokhotkov 0:83f3dcfa5c8f 301 #define XFREE(p, h, type) (NetSecure_BlkFree((CPU_INT08U)(type), \
igrokhotkov 0:83f3dcfa5c8f 302 (p), (void *)0))
igrokhotkov 0:83f3dcfa5c8f 303 #define XREALLOC(p, n, h, t) realloc((p), (n))
igrokhotkov 0:83f3dcfa5c8f 304 #endif
igrokhotkov 0:83f3dcfa5c8f 305
igrokhotkov 0:83f3dcfa5c8f 306 #if (NET_SECURE_MGR_CFG_FS_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 307 #undef NO_FILESYSTEM
igrokhotkov 0:83f3dcfa5c8f 308 #else
igrokhotkov 0:83f3dcfa5c8f 309 #define NO_FILESYSTEM
igrokhotkov 0:83f3dcfa5c8f 310 #endif
igrokhotkov 0:83f3dcfa5c8f 311
igrokhotkov 0:83f3dcfa5c8f 312 #if (SSL_CFG_TRACE_LEVEL == CYASSL_TRACE_LEVEL_DBG)
igrokhotkov 0:83f3dcfa5c8f 313 #define DEBUG_CYASSL
igrokhotkov 0:83f3dcfa5c8f 314 #else
igrokhotkov 0:83f3dcfa5c8f 315 #undef DEBUG_CYASSL
igrokhotkov 0:83f3dcfa5c8f 316 #endif
igrokhotkov 0:83f3dcfa5c8f 317
igrokhotkov 0:83f3dcfa5c8f 318 #if (SSL_CFG_OPENSSL_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 319 #define OPENSSL_EXTRA
igrokhotkov 0:83f3dcfa5c8f 320 #else
igrokhotkov 0:83f3dcfa5c8f 321 #undef OPENSSL_EXTRA
igrokhotkov 0:83f3dcfa5c8f 322 #endif
igrokhotkov 0:83f3dcfa5c8f 323
igrokhotkov 0:83f3dcfa5c8f 324 #if (SSL_CFG_MULTI_THREAD_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 325 #undef SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 326 #else
igrokhotkov 0:83f3dcfa5c8f 327 #define SINGLE_THREADED
igrokhotkov 0:83f3dcfa5c8f 328 #endif
igrokhotkov 0:83f3dcfa5c8f 329
igrokhotkov 0:83f3dcfa5c8f 330 #if (SSL_CFG_DH_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 331 #undef NO_DH
igrokhotkov 0:83f3dcfa5c8f 332 #else
igrokhotkov 0:83f3dcfa5c8f 333 #define NO_DH
igrokhotkov 0:83f3dcfa5c8f 334 #endif
igrokhotkov 0:83f3dcfa5c8f 335
igrokhotkov 0:83f3dcfa5c8f 336 #if (SSL_CFG_DSA_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 337 #undef NO_DSA
igrokhotkov 0:83f3dcfa5c8f 338 #else
igrokhotkov 0:83f3dcfa5c8f 339 #define NO_DSA
igrokhotkov 0:83f3dcfa5c8f 340 #endif
igrokhotkov 0:83f3dcfa5c8f 341
igrokhotkov 0:83f3dcfa5c8f 342 #if (SSL_CFG_PSK_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 343 #undef NO_PSK
igrokhotkov 0:83f3dcfa5c8f 344 #else
igrokhotkov 0:83f3dcfa5c8f 345 #define NO_PSK
igrokhotkov 0:83f3dcfa5c8f 346 #endif
igrokhotkov 0:83f3dcfa5c8f 347
igrokhotkov 0:83f3dcfa5c8f 348 #if (SSL_CFG_3DES_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 349 #undef NO_DES
igrokhotkov 0:83f3dcfa5c8f 350 #else
igrokhotkov 0:83f3dcfa5c8f 351 #define NO_DES
igrokhotkov 0:83f3dcfa5c8f 352 #endif
igrokhotkov 0:83f3dcfa5c8f 353
igrokhotkov 0:83f3dcfa5c8f 354 #if (SSL_CFG_AES_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 355 #undef NO_AES
igrokhotkov 0:83f3dcfa5c8f 356 #else
igrokhotkov 0:83f3dcfa5c8f 357 #define NO_AES
igrokhotkov 0:83f3dcfa5c8f 358 #endif
igrokhotkov 0:83f3dcfa5c8f 359
igrokhotkov 0:83f3dcfa5c8f 360 #if (SSL_CFG_RC4_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 361 #undef NO_RC4
igrokhotkov 0:83f3dcfa5c8f 362 #else
igrokhotkov 0:83f3dcfa5c8f 363 #define NO_RC4
igrokhotkov 0:83f3dcfa5c8f 364 #endif
igrokhotkov 0:83f3dcfa5c8f 365
igrokhotkov 0:83f3dcfa5c8f 366 #if (SSL_CFG_RABBIT_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 367 #undef NO_RABBIT
igrokhotkov 0:83f3dcfa5c8f 368 #else
igrokhotkov 0:83f3dcfa5c8f 369 #define NO_RABBIT
igrokhotkov 0:83f3dcfa5c8f 370 #endif
igrokhotkov 0:83f3dcfa5c8f 371
igrokhotkov 0:83f3dcfa5c8f 372 #if (SSL_CFG_HC128_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 373 #undef NO_HC128
igrokhotkov 0:83f3dcfa5c8f 374 #else
igrokhotkov 0:83f3dcfa5c8f 375 #define NO_HC128
igrokhotkov 0:83f3dcfa5c8f 376 #endif
igrokhotkov 0:83f3dcfa5c8f 377
igrokhotkov 0:83f3dcfa5c8f 378 #if (CPU_CFG_ENDIAN_TYPE == CPU_ENDIAN_TYPE_BIG)
igrokhotkov 0:83f3dcfa5c8f 379 #define BIG_ENDIAN_ORDER
igrokhotkov 0:83f3dcfa5c8f 380 #else
igrokhotkov 0:83f3dcfa5c8f 381 #undef BIG_ENDIAN_ORDER
igrokhotkov 0:83f3dcfa5c8f 382 #define LITTLE_ENDIAN_ORDER
igrokhotkov 0:83f3dcfa5c8f 383 #endif
igrokhotkov 0:83f3dcfa5c8f 384
igrokhotkov 0:83f3dcfa5c8f 385 #if (SSL_CFG_MD4_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 386 #undef NO_MD4
igrokhotkov 0:83f3dcfa5c8f 387 #else
igrokhotkov 0:83f3dcfa5c8f 388 #define NO_MD4
igrokhotkov 0:83f3dcfa5c8f 389 #endif
igrokhotkov 0:83f3dcfa5c8f 390
igrokhotkov 0:83f3dcfa5c8f 391 #if (SSL_CFG_WRITEV_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 392 #undef NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 393 #else
igrokhotkov 0:83f3dcfa5c8f 394 #define NO_WRITEV
igrokhotkov 0:83f3dcfa5c8f 395 #endif
igrokhotkov 0:83f3dcfa5c8f 396
igrokhotkov 0:83f3dcfa5c8f 397 #if (SSL_CFG_USER_RNG_SEED_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 398 #define NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 399 #else
igrokhotkov 0:83f3dcfa5c8f 400 #undef NO_DEV_RANDOM
igrokhotkov 0:83f3dcfa5c8f 401 #endif
igrokhotkov 0:83f3dcfa5c8f 402
igrokhotkov 0:83f3dcfa5c8f 403 #if (SSL_CFG_USER_IO_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 404 #define CYASSL_USER_IO
igrokhotkov 0:83f3dcfa5c8f 405 #else
igrokhotkov 0:83f3dcfa5c8f 406 #undef CYASSL_USER_IO
igrokhotkov 0:83f3dcfa5c8f 407 #endif
igrokhotkov 0:83f3dcfa5c8f 408
igrokhotkov 0:83f3dcfa5c8f 409 #if (SSL_CFG_DYNAMIC_BUFFERS_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 410 #undef LARGE_STATIC_BUFFERS
igrokhotkov 0:83f3dcfa5c8f 411 #undef STATIC_CHUNKS_ONLY
igrokhotkov 0:83f3dcfa5c8f 412 #else
igrokhotkov 0:83f3dcfa5c8f 413 #define LARGE_STATIC_BUFFERS
igrokhotkov 0:83f3dcfa5c8f 414 #define STATIC_CHUNKS_ONLY
igrokhotkov 0:83f3dcfa5c8f 415 #endif
igrokhotkov 0:83f3dcfa5c8f 416
igrokhotkov 0:83f3dcfa5c8f 417 #if (SSL_CFG_DER_LOAD_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 418 #define CYASSL_DER_LOAD
igrokhotkov 0:83f3dcfa5c8f 419 #else
igrokhotkov 0:83f3dcfa5c8f 420 #undef CYASSL_DER_LOAD
igrokhotkov 0:83f3dcfa5c8f 421 #endif
igrokhotkov 0:83f3dcfa5c8f 422
igrokhotkov 0:83f3dcfa5c8f 423 #if (SSL_CFG_DTLS_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 424 #define CYASSL_DTLS
igrokhotkov 0:83f3dcfa5c8f 425 #else
igrokhotkov 0:83f3dcfa5c8f 426 #undef CYASSL_DTLS
igrokhotkov 0:83f3dcfa5c8f 427 #endif
igrokhotkov 0:83f3dcfa5c8f 428
igrokhotkov 0:83f3dcfa5c8f 429 #if (SSL_CFG_CALLBACKS_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 430 #define CYASSL_CALLBACKS
igrokhotkov 0:83f3dcfa5c8f 431 #else
igrokhotkov 0:83f3dcfa5c8f 432 #undef CYASSL_CALLBACKS
igrokhotkov 0:83f3dcfa5c8f 433 #endif
igrokhotkov 0:83f3dcfa5c8f 434
igrokhotkov 0:83f3dcfa5c8f 435 #if (SSL_CFG_FAST_MATH_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 436 #define USE_FAST_MATH
igrokhotkov 0:83f3dcfa5c8f 437 #else
igrokhotkov 0:83f3dcfa5c8f 438 #undef USE_FAST_MATH
igrokhotkov 0:83f3dcfa5c8f 439 #endif
igrokhotkov 0:83f3dcfa5c8f 440
igrokhotkov 0:83f3dcfa5c8f 441 #if (SSL_CFG_TFM_TIMING_RESISTANT_EN == DEF_ENABLED)
igrokhotkov 0:83f3dcfa5c8f 442 #define TFM_TIMING_RESISTANT
igrokhotkov 0:83f3dcfa5c8f 443 #else
igrokhotkov 0:83f3dcfa5c8f 444 #undef TFM_TIMING_RESISTANT
igrokhotkov 0:83f3dcfa5c8f 445 #endif
igrokhotkov 0:83f3dcfa5c8f 446
igrokhotkov 0:83f3dcfa5c8f 447 #endif /* MICRIUM */
igrokhotkov 0:83f3dcfa5c8f 448
igrokhotkov 0:83f3dcfa5c8f 449
igrokhotkov 0:83f3dcfa5c8f 450 #if !defined(XMALLOC_USER) && !defined(MICRIUM_MALLOC) && \
igrokhotkov 0:83f3dcfa5c8f 451 !defined(CYASSL_LEANPSK)
igrokhotkov 0:83f3dcfa5c8f 452 #define USE_CYASSL_MEMORY
igrokhotkov 0:83f3dcfa5c8f 453 #endif
igrokhotkov 0:83f3dcfa5c8f 454
igrokhotkov 0:83f3dcfa5c8f 455 /* Place any other flags or defines here */
igrokhotkov 0:83f3dcfa5c8f 456
igrokhotkov 0:83f3dcfa5c8f 457
igrokhotkov 0:83f3dcfa5c8f 458 #ifdef __cplusplus
igrokhotkov 0:83f3dcfa5c8f 459 } /* extern "C" */
igrokhotkov 0:83f3dcfa5c8f 460 #endif
igrokhotkov 0:83f3dcfa5c8f 461
igrokhotkov 0:83f3dcfa5c8f 462
igrokhotkov 0:83f3dcfa5c8f 463 #endif /* CTAO_CRYPT_SETTINGS_H */
igrokhotkov 0:83f3dcfa5c8f 464