forked from wolfSSL/wolfssl
Merge branch 'TI_hash' of https://github.com/kojo1/wolfssl into kojo-ti
This commit is contained in:
@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<workspace>
|
||||
<project>
|
||||
<path>$WS_DIR$\CyaSSL-Lib.ewp</path>
|
||||
</project>
|
||||
<project>
|
||||
<path>$WS_DIR$\wolfCrypt-benchmark.ewp</path>
|
||||
</project>
|
||||
<project>
|
||||
<path>$WS_DIR$\wolfCrypt-test.ewp</path>
|
||||
</project>
|
||||
<batchBuild/>
|
||||
</workspace>
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,32 +0,0 @@
|
||||
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x00000000;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x00000000;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x0007FFFF;
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x20000000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x2000;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x2000;
|
||||
/**** End of ICF editor section. ###ICF###*/
|
||||
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
//initialize by copy with packing = none { section __DLIB_PERTHREAD }; // Required in a multi-threaded application
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite,
|
||||
block CSTACK, block HEAP };
|
File diff suppressed because it is too large
Load Diff
@ -1,31 +0,0 @@
|
||||
/*###ICF### Section handled by ICF editor, don't touch! ****/
|
||||
/*-Editor annotation file-*/
|
||||
/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
|
||||
/*-Specials-*/
|
||||
define symbol __ICFEDIT_intvec_start__ = 0x0;
|
||||
/*-Memory Regions-*/
|
||||
define symbol __ICFEDIT_region_ROM_start__ = 0x0;
|
||||
define symbol __ICFEDIT_region_ROM_end__ = 0x000FFFFF;
|
||||
define symbol __ICFEDIT_region_RAM_start__ = 0x1FFF0000;
|
||||
define symbol __ICFEDIT_region_RAM_end__ = 0x2000FFFF;
|
||||
/*-Sizes-*/
|
||||
define symbol __ICFEDIT_size_cstack__ = 0x2000;
|
||||
define symbol __ICFEDIT_size_heap__ = 0x3000;
|
||||
/**** End of ICF editor section. ###ICF###*/
|
||||
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
|
||||
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
|
||||
|
||||
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
|
||||
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
|
||||
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
|
||||
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
|
||||
|
||||
place in ROM_region { readonly };
|
||||
place in RAM_region { readwrite,
|
||||
block CSTACK, block HEAP };
|
@ -19,7 +19,11 @@
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
|
||||
#include "stdio.h"
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
typedef struct func_args {
|
||||
int argc;
|
||||
@ -29,6 +33,7 @@ typedef struct func_args {
|
||||
|
||||
func_args args = { 0 } ;
|
||||
|
||||
extern double current_time(int reset) ;
|
||||
extern int benchmark_test(void *args) ;
|
||||
|
||||
main(void) {
|
||||
@ -37,4 +42,3 @@ main(void) {
|
||||
}
|
||||
|
||||
|
||||
|
66
IDE/IAR-EWARM/Projects/benchmark/current_time.c
Normal file
66
IDE/IAR-EWARM/Projects/benchmark/current_time.c
Normal file
@ -0,0 +1,66 @@
|
||||
/* current-time.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#ifdef WOLFSSL_TI_CURRTIME
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "inc/hw_ints.h"
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "inc/hw_timer.h"
|
||||
#include "driverlib/rom.h"
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/timer.h"
|
||||
|
||||
void InitTimer(void) {
|
||||
uint32_t ui32SysClock = ROM_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
|
||||
SYSCTL_OSC_MAIN |
|
||||
SYSCTL_USE_PLL |
|
||||
SYSCTL_CFG_VCO_480), 120000000);
|
||||
|
||||
printf("Clock=%dMHz\n", ui32SysClock/1000000) ;
|
||||
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
|
||||
ROM_TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
|
||||
ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, -1);
|
||||
ROM_TimerEnable(TIMER0_BASE, TIMER_A);
|
||||
}
|
||||
|
||||
static int initFlag = false ;
|
||||
double current_time(int reset)
|
||||
{
|
||||
if(!initFlag)InitTimer() ;
|
||||
initFlag = true ;
|
||||
if(reset)ROM_TimerLoadSet(TIMER0_BASE, TIMER_A, -1);
|
||||
return (double)(-(int)ROM_TimerValueGet(TIMER0_BASE, TIMER_A ))/120000000.0 ;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
double current_time(int reset) { return 0.0 ; }
|
||||
|
||||
#endif
|
File diff suppressed because it is too large
Load Diff
981
IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewp
Normal file
981
IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewp
Normal file
@ -0,0 +1,981 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<project>
|
||||
<fileVersion>2</fileVersion>
|
||||
<configuration>
|
||||
<name>Debug</name>
|
||||
<toolchain>
|
||||
<name>ARM</name>
|
||||
</toolchain>
|
||||
<debug>1</debug>
|
||||
<settings>
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>ExePath</name>
|
||||
<state>ewarm\Exe</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ObjPath</name>
|
||||
<state>ewarm\Obj</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ListPath</name>
|
||||
<state>ewarm\List</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Input variant</name>
|
||||
<version>3</version>
|
||||
<state>6</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Input description</name>
|
||||
<state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Output variant</name>
|
||||
<version>2</version>
|
||||
<state>2</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Output description</name>
|
||||
<state>Full formatting, without multibyte support.</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>4</version>
|
||||
<state>6</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GRuntimeLibSelect</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GRuntimeLibSelectSlave</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RTDescription</name>
|
||||
<state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGProductVersion</name>
|
||||
<state>5.11.0.50579</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.1.8463</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraVerbose</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGChipSelectEditMenu</name>
|
||||
<state>Default None</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GenLowLevelInterface</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianModeBE</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGBufferedTerminalOutput</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GenStdoutInterface</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraRules98</name>
|
||||
<version>0</version>
|
||||
<state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraVer</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraRules04</name>
|
||||
<version>0</version>
|
||||
<state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsis</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsisDspLib</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>ICCARM</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>31</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>CCDefines</name>
|
||||
<state>ewarm</state>
|
||||
<state>PART_TM4C129XNCZAD</state>
|
||||
<state>WOLFSSL_USER_SETTINGS</state>
|
||||
<state>TARGET_IS_SNOWFLAKE_RA0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocComments</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocLine</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListCFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListCMnemonics</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListCMessages</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListAssFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListAssSource</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCEnableRemarks</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagSuppress</name>
|
||||
<state>Pa050</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagRemark</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagWarning</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagError</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCObjPrefix</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCAllowList</name>
|
||||
<version>1</version>
|
||||
<state>11111110</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDebugInfo</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IEndianMode</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IExtraOptionsCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IExtraOptions</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCLangConformance</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCSignedPlainChar</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCRequirePrototypes</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCMultibyteSupport</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagWarnAreErr</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCCompilerRuntimeInfo</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IFpuProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OutputFile</name>
|
||||
<state>$FILE_BNAME$.o</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCLibConfigHeader</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>PreInclude</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCIncludePath2</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..</state>
|
||||
<state>$PROJ_DIR$\..</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\..</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCStdIncCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCCodeSection</name>
|
||||
<state>.text</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IInterwork2</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IProcessorMode2</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptLevel</name>
|
||||
<state>3</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategy</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptLevelSlave</name>
|
||||
<state>3</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraRules98</name>
|
||||
<version>0</version>
|
||||
<state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraRules04</name>
|
||||
<version>0</version>
|
||||
<state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRopi</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRwpi</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndNoDynInit</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccLang</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCDialect</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccAllowVLA</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCppDialect</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccExceptions</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccRTTI</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccStaticDestr</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCppInlineSemantics</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCmsis</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccFloatSemantics</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptimizationNoSizeConstraints</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCNoLiteralPool</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategySlave</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCGuardCalls</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>AARM</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>9</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>AObjPrefix</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AEndian</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ACaseSensitivity</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacroChars</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnEnable</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnWhat</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnOne</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnRange1</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnRange2</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ADebug</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AltRegisterNames</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ADefines</name>
|
||||
<state>ewarm</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AList</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AListHeader</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AListing</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Includes</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacDefs</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacExps</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacExec</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OnlyAssed</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MultiLine</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>PageLengthCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>PageLength</name>
|
||||
<state>80</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>TabSpacing</name>
|
||||
<state>8</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRef</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRefDefines</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRefInternal</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRefDual</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AFpuProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AOutputFile</name>
|
||||
<state>$FILE_BNAME$.o</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AMultibyteSupport</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ALimitErrorsCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ALimitErrorsEdit</name>
|
||||
<state>100</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AIgnoreStdInclude</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AUserIncludes</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AExtraOptionsCheckV2</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AExtraOptionsV2</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AsmNoLiteralPool</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>OBJCOPY</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data>
|
||||
<version>1</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>OOCOutputFormat</name>
|
||||
<version>2</version>
|
||||
<state>2</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCOutputOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCOutputFile</name>
|
||||
<state>wolfCrypt-benchmark.bin</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCCommandLineProducer</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCObjCopyEnable</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>CUSTOM</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<extensions></extensions>
|
||||
<cmdline></cmdline>
|
||||
<hasPrio>0</hasPrio>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>BICOMP</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data/>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>ILINK</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data>
|
||||
<version>16</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>IlinkLibIOConfig</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>XLinkMisraHandler</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkInputFileSlave</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOutputFile</name>
|
||||
<state>benchmark.out</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkDebugInfoEnable</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkKeepSymbols</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinaryFile</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinarySymbol</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinarySegment</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinaryAlign</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkDefines</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkConfigDefines</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkMapFile</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogInitialization</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogModule</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogSection</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogVeneer</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfOverride</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfFile</name>
|
||||
<state>$PROJ_DIR$\..\common\wolfssl.icf</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfFileSlave</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkEnableRemarks</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkSuppressDiags</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkTreatAsRem</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkTreatAsWarn</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkTreatAsErr</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkWarningsAreErrors</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkUseExtraOptions</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkExtraOptions</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLowLevelInterfaceSlave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkAutoLibEnable</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkAdditionalLibs</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOverrideProgramEntryLabel</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkProgramEntryLabelSelect</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkProgramEntryLabel</name>
|
||||
<state>__iar_program_start</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>DoFill</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FillerByte</name>
|
||||
<state>0xFF</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FillerStart</name>
|
||||
<state>0x0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FillerEnd</name>
|
||||
<state>0x0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcSize</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcAlign</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcPoly</name>
|
||||
<state>0x11021</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcCompl</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcBitOrder</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcInitialValue</name>
|
||||
<state>0x0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>DoCrc</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkBE8Slave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkBufferedTerminalOutput</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStdoutInterfaceSlave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcFullSize</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIElfToolPostProcess</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogAutoLibSelect</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogRedirSymbols</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogUnusedFragments</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkCrcReverseByteOrder</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkCrcUseAsInput</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptInline</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptExceptionsAllow</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptExceptionsForce</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkCmsis</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptMergeDuplSections</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptUseVfe</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptForceVfe</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStackAnalysisEnable</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStackControlFile</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStackCallGraphFile</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcAlgorithm</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcUnitSize</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkThreadsSlave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>IARCHIVE</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data>
|
||||
<version>0</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>IarchiveInputs</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IarchiveOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IarchiveOutput</name>
|
||||
<state>###Unitialized###</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>BILINK</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data/>
|
||||
</settings>
|
||||
</configuration>
|
||||
<group>
|
||||
<name>Config</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\user_settings.h</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>Lib</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\lib\ewarm\Exe\wolfSSL-Lib.a</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>Source</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\benchmark-main.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\benchmark\benchmark.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\current_time.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\common\minimum-startup.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
52
IDE/IAR-EWARM/Projects/common/minimum-startup.c
Normal file
52
IDE/IAR-EWARM/Projects/common/minimum-startup.c
Normal file
@ -0,0 +1,52 @@
|
||||
/* minimum-startup.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
||||
*/
|
||||
#include <stdint.h>
|
||||
#pragma language=extended
|
||||
|
||||
extern void __iar_program_start(void);
|
||||
static void Reset(void)
|
||||
{
|
||||
__iar_program_start();
|
||||
}
|
||||
|
||||
static void Nmi (void){ while(1) ; }
|
||||
static void Fault(void){ while(1) ; }
|
||||
|
||||
static unsigned long long Stack[256*4*16] @ ".noinit";
|
||||
|
||||
typedef union
|
||||
{
|
||||
void (*Handler)(void);
|
||||
uint32_t Ptr;
|
||||
} Vector;
|
||||
|
||||
__root const Vector __vector_table[100] @ ".intvec" =
|
||||
{
|
||||
{ .Ptr = (uint32_t)Stack + sizeof(Stack) },
|
||||
// stack top
|
||||
Reset, // reset
|
||||
Nmi, // NMI
|
||||
Fault, // hard fault
|
||||
Fault, // MPU fault
|
||||
Fault, // bus fault
|
||||
Fault, // usage fault
|
||||
};
|
||||
|
11
IDE/IAR-EWARM/Projects/common/wolfssl.icf
Normal file
11
IDE/IAR-EWARM/Projects/common/wolfssl.icf
Normal file
@ -0,0 +1,11 @@
|
||||
|
||||
define memory mem with size = 4G;
|
||||
define region FLASH = mem:[from 0x00000000 to 0x000fffff];
|
||||
define region SRAM = mem:[from 0x20000000 to 0x2003ffff];
|
||||
define block HEAP with alignment = 8, size = 0x00010000 { };
|
||||
initialize by copy { readwrite };
|
||||
do not initialize { section .noinit };
|
||||
place at start of FLASH { readonly section .intvec };
|
||||
place in FLASH { readonly };
|
||||
place at start of SRAM { section VTABLE };
|
||||
place in SRAM { readwrite, block HEAP };
|
@ -12,7 +12,7 @@
|
||||
<name>C-SPY</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>25</version>
|
||||
<version>26</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -81,7 +81,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OCProductVersion</name>
|
||||
<state>6.60.1.5099</state>
|
||||
<state>7.20.1.7306</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCDynDriverList</name>
|
||||
@ -89,7 +89,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OCLastSavedByProductVersion</name>
|
||||
<state>6.60.1.5099</state>
|
||||
<state>7.20.1.7306</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCDownloadAttachToProgram</name>
|
||||
@ -183,6 +183,30 @@
|
||||
<name>OCAllMTBOptions</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreNrOfCores</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreMaster</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticorePort</name>
|
||||
<state>53461</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreWorkspace</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreSlaveProject</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreSlaveConfiguration</name>
|
||||
<state></state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -257,7 +281,7 @@
|
||||
<name>CMSISDAP_ID</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>0</version>
|
||||
<version>2</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -332,7 +356,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchUndef</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchSWI</name>
|
||||
@ -340,11 +364,11 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchData</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchPrefetch</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchIRQ</name>
|
||||
@ -360,31 +384,31 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchMMERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchNOCPERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchCHKERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchSTATERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchBUSERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchINTERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchHARDERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchDummy</name>
|
||||
@ -398,6 +422,30 @@
|
||||
<name>CMSISDAPMultiCPUNumber</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCProbeCfgOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCProbeConfig</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CMSISDAPProbeConfigRadio</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CMSISDAPSelectedCPUBehaviour</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ICpuName</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCJetEmuParams</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -472,7 +520,7 @@
|
||||
<name>IJET_ID</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>2</version>
|
||||
<version>3</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
@ -666,6 +714,10 @@
|
||||
<name>ICpuName</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCJetEmuParams</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -677,7 +729,7 @@
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>JLinkSpeed</name>
|
||||
<state>32</state>
|
||||
<state>1000</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCJLinkDoLogfile</name>
|
||||
@ -697,7 +749,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>JLinkInitialSpeed</name>
|
||||
<state>32</state>
|
||||
<state>1000</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDoJlinkMultiTarget</name>
|
||||
@ -783,7 +835,7 @@
|
||||
<option>
|
||||
<name>CCJLinkResetList</name>
|
||||
<version>6</version>
|
||||
<state>7</state>
|
||||
<state>5</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCJLinkInterfaceCmdLine</name>
|
||||
@ -1207,7 +1259,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CCXds100InterfaceList</name>
|
||||
<version>1</version>
|
||||
<version>2</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1253,14 +1305,6 @@
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
@ -1269,6 +1313,10 @@
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
@ -1309,7 +1357,7 @@
|
||||
<name>C-SPY</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>25</version>
|
||||
<version>26</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -1378,7 +1426,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OCProductVersion</name>
|
||||
<state>6.60.1.5099</state>
|
||||
<state>7.20.1.7306</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCDynDriverList</name>
|
||||
@ -1480,6 +1528,30 @@
|
||||
<name>OCAllMTBOptions</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreNrOfCores</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreMaster</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticorePort</name>
|
||||
<state>53461</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreWorkspace</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreSlaveProject</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCMulticoreSlaveConfiguration</name>
|
||||
<state></state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1554,7 +1626,7 @@
|
||||
<name>CMSISDAP_ID</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>0</version>
|
||||
<version>2</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -1629,7 +1701,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchUndef</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchSWI</name>
|
||||
@ -1637,11 +1709,11 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchData</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchPrefetch</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RDICatchIRQ</name>
|
||||
@ -1657,31 +1729,31 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchMMERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchNOCPERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchCHKERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchSTATERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchBUSERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchINTERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchHARDERR</name>
|
||||
<state>0</state>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CatchDummy</name>
|
||||
@ -1695,6 +1767,30 @@
|
||||
<name>CMSISDAPMultiCPUNumber</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCProbeCfgOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCProbeConfig</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CMSISDAPProbeConfigRadio</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CMSISDAPSelectedCPUBehaviour</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ICpuName</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCJetEmuParams</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1769,7 +1865,7 @@
|
||||
<name>IJET_ID</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>2</version>
|
||||
<version>3</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -1963,6 +2059,10 @@
|
||||
<name>ICpuName</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCJetEmuParams</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1974,7 +2074,7 @@
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
<name>JLinkSpeed</name>
|
||||
<state>32</state>
|
||||
<state>1000</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCJLinkDoLogfile</name>
|
||||
@ -1994,7 +2094,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>JLinkInitialSpeed</name>
|
||||
<state>32</state>
|
||||
<state>1000</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDoJlinkMultiTarget</name>
|
||||
@ -2504,7 +2604,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CCXds100InterfaceList</name>
|
||||
<version>1</version>
|
||||
<version>2</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -2550,14 +2650,6 @@
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
@ -2566,6 +2658,10 @@
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>
|
||||
<loadFlag>0</loadFlag>
|
@ -17,20 +17,20 @@
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>ExePath</name>
|
||||
<state>Debug\Exe</state>
|
||||
<state>ewarm\Exe</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ObjPath</name>
|
||||
<state>Debug\Obj</state>
|
||||
<state>ewarm\Obj</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ListPath</name>
|
||||
<state>Debug\List</state>
|
||||
<state>ewarm\List</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>20</version>
|
||||
<state>38</state>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
@ -60,8 +60,8 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>2</version>
|
||||
<state>0</state>
|
||||
<version>4</version>
|
||||
<state>6</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
@ -87,7 +87,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>6.60.1.5099</state>
|
||||
<state>7.40.1.8463</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
@ -99,7 +99,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>OGChipSelectEditMenu</name>
|
||||
<state>MB9BF618T Fujitsu MB9BF618T</state>
|
||||
<state>Default None</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GenLowLevelInterface</name>
|
||||
@ -137,13 +137,13 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>20</version>
|
||||
<state>38</state>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>20</version>
|
||||
<state>38</state>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsis</name>
|
||||
@ -163,12 +163,15 @@
|
||||
<name>ICCARM</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>29</version>
|
||||
<version>31</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>CCDefines</name>
|
||||
<state></state>
|
||||
<state>WOLFSSL_USER_SETTINGS</state>
|
||||
<state>ewarm</state>
|
||||
<state>PART_TM4C129XNCZAD</state>
|
||||
<state>TARGET_IS_SNOWFLAKE_RA0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocFile</name>
|
||||
@ -208,7 +211,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagSuppress</name>
|
||||
<state>Pa050</state>
|
||||
<state>Pa050,Pa089,Pe177</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagRemark</name>
|
||||
@ -229,7 +232,7 @@
|
||||
<option>
|
||||
<name>CCAllowList</name>
|
||||
<version>1</version>
|
||||
<state>0000000</state>
|
||||
<state>11111110</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDebugInfo</name>
|
||||
@ -298,6 +301,8 @@
|
||||
<option>
|
||||
<name>CCIncludePath2</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..</state>
|
||||
<state>$PROJ_DIR$\..\</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\..</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCStdIncCheck</name>
|
||||
@ -317,16 +322,16 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptLevel</name>
|
||||
<state>0</state>
|
||||
<state>3</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategy</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
<state>2</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptLevelSlave</name>
|
||||
<state>0</state>
|
||||
<state>3</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraRules98</name>
|
||||
@ -398,6 +403,15 @@
|
||||
<name>CCNoLiteralPool</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategySlave</name>
|
||||
<version>0</version>
|
||||
<state>2</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCGuardCalls</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -602,6 +616,7 @@
|
||||
<data>
|
||||
<extensions></extensions>
|
||||
<cmdline></cmdline>
|
||||
<hasPrio>0</hasPrio>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -924,7 +939,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>IarchiveOutput</name>
|
||||
<state>C:\ROOT\CyaSSL-Release\IAR\IDE\IAR-EWARM\Projects\CyaSSL-Lib\Debug\Exe\CyaSSL-Lib.a</state>
|
||||
<state>C:\ROOT\CyaSSL-Support\TI\Staging-20150522\wolfssl\IDE\IAR-EWARM\Projects\lib\ewarm\Exe\wolfSSL-Lib.a</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
@ -961,7 +976,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>20</version>
|
||||
<version>21</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -992,7 +1007,7 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>2</version>
|
||||
<version>4</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1069,12 +1084,12 @@
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>20</version>
|
||||
<version>21</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>20</version>
|
||||
<version>21</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
@ -1095,7 +1110,7 @@
|
||||
<name>ICCARM</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>29</version>
|
||||
<version>31</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>0</debug>
|
||||
<option>
|
||||
@ -1161,7 +1176,7 @@
|
||||
<option>
|
||||
<name>CCAllowList</name>
|
||||
<version>1</version>
|
||||
<state>1111111</state>
|
||||
<state>11111110</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDebugInfo</name>
|
||||
@ -1330,6 +1345,15 @@
|
||||
<name>CCNoLiteralPool</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategySlave</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCGuardCalls</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1534,6 +1558,7 @@
|
||||
<data>
|
||||
<extensions></extensions>
|
||||
<cmdline></cmdline>
|
||||
<hasPrio>0</hasPrio>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
@ -1867,7 +1892,145 @@
|
||||
</settings>
|
||||
</configuration>
|
||||
<group>
|
||||
<name>CyaSSL</name>
|
||||
<name>Config</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfssl\wolfcrypt\settings.h</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\user_settings.h</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>wolfCrypt</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\aes.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\arc4.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\asm.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\asn.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\blake2b.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\camellia.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\chacha.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\chacha20_poly1305.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\coding.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\compress.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\curve25519.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\des3.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\dh.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\dsa.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\ecc.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\ecc_fp.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\ed25519.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\error.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\fe_operations.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\ge_operations.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\hash.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\hc128.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\hmac.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\integer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\logging.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\md2.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\md4.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\md5.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\memory.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\misc.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\pkcs7.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\poly1305.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\pwdbased.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\rabbit.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\random.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\ripemd.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\rsa.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\sha.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\sha256.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\sha512.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\tfm.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\src\wc_port.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>wolfSSL</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\src\crl.c</name>
|
||||
</file>
|
||||
@ -1893,108 +2056,6 @@
|
||||
<name>$PROJ_DIR$\..\..\..\..\src\tls.c</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>wolfCrypt</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\aes.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\arc4.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\asm.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\asn.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\blake2b.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\camellia.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\coding.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\compress.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\des3.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\dh.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\dsa.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\ecc.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\ecc_fp.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\error.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\hc128.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\hmac.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\integer.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\logging.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\md2.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\md4.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\md5.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\memory.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\misc.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\wc_port.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\pwdbased.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\rabbit.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\random.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\ripemd.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\rsa.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\sha.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\sha256.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\sha512.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\ctaocrypt\src\tfm.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
@ -28,9 +28,10 @@ typedef struct func_args {
|
||||
|
||||
func_args args = { 0 } ;
|
||||
|
||||
extern int ctaocrypt_test(void *args) ;
|
||||
extern int wolfcrypt_test(void *args) ;
|
||||
|
||||
main(void) {
|
||||
ctaocrypt_test(&args) ;
|
||||
wolfcrypt_test(&args) ;
|
||||
return 0;
|
||||
}
|
||||
|
1374
IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewd
Normal file
1374
IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewd
Normal file
File diff suppressed because it is too large
Load Diff
978
IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewp
Normal file
978
IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewp
Normal file
@ -0,0 +1,978 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<project>
|
||||
<fileVersion>2</fileVersion>
|
||||
<configuration>
|
||||
<name>Debug</name>
|
||||
<toolchain>
|
||||
<name>ARM</name>
|
||||
</toolchain>
|
||||
<debug>1</debug>
|
||||
<settings>
|
||||
<name>General</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<version>22</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>ExePath</name>
|
||||
<state>ewarm\Exe</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ObjPath</name>
|
||||
<state>ewarm\Obj</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ListPath</name>
|
||||
<state>ewarm\List</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Variant</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianMode</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Input variant</name>
|
||||
<version>3</version>
|
||||
<state>6</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Input description</name>
|
||||
<state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Output variant</name>
|
||||
<version>2</version>
|
||||
<state>4</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Output description</name>
|
||||
<state>No specifier a, A, without multibyte support.</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GOutputBinary</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FPU</name>
|
||||
<version>4</version>
|
||||
<state>6</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGCoreOrChip</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GRuntimeLibSelect</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GRuntimeLibSelectSlave</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RTDescription</name>
|
||||
<state>Use the normal configuration of the C/C++ runtime library. No locale interface, C locale, no file descriptor support, no multibytes in printf and scanf, and no hex floats in strtod.</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGProductVersion</name>
|
||||
<state>5.11.0.50579</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGLastSavedByProductVersion</name>
|
||||
<state>7.40.1.8463</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralEnableMisra</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraVerbose</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGChipSelectEditMenu</name>
|
||||
<state>Default None</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GenLowLevelInterface</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GEndianModeBE</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGBufferedTerminalOutput</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GenStdoutInterface</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraRules98</name>
|
||||
<version>0</version>
|
||||
<state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraVer</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GeneralMisraRules04</name>
|
||||
<version>0</version>
|
||||
<state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>RTConfigPath2</name>
|
||||
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GFPUCoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GBECoreSlave</name>
|
||||
<version>21</version>
|
||||
<state>40</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsis</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OGUseCmsisDspLib</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>GRuntimeLibThreads</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>ICCARM</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>31</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>CCDefines</name>
|
||||
<state>ewarm</state>
|
||||
<state>PART_TM4C129XNCZAD</state>
|
||||
<state>WOLFSSL_USER_SETTINGS</state>
|
||||
<state>TARGET_IS_SNOWFLAKE_RA0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocComments</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPreprocLine</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListCFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListCMnemonics</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListCMessages</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListAssFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCListAssSource</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCEnableRemarks</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagSuppress</name>
|
||||
<state>Pa050</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagRemark</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagWarning</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagError</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCObjPrefix</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCAllowList</name>
|
||||
<version>1</version>
|
||||
<state>11111110</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDebugInfo</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IEndianMode</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IExtraOptionsCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IExtraOptions</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCLangConformance</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCSignedPlainChar</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCRequirePrototypes</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCMultibyteSupport</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCDiagWarnAreErr</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCCompilerRuntimeInfo</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IFpuProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OutputFile</name>
|
||||
<state>$FILE_BNAME$.o</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCLibConfigHeader</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>PreInclude</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCIncludePath2</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..</state>
|
||||
<state>$PROJ_DIR$\..\</state>
|
||||
<state>$PROJ_DIR$\..\..\..\..\..</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCStdIncCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCCodeSection</name>
|
||||
<state>.text</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IInterwork2</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IProcessorMode2</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptLevel</name>
|
||||
<state>3</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategy</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptLevelSlave</name>
|
||||
<state>3</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraRules98</name>
|
||||
<version>0</version>
|
||||
<state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CompilerMisraRules04</name>
|
||||
<version>0</version>
|
||||
<state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRopi</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndRwpi</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCPosIndNoDynInit</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccLang</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCDialect</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccAllowVLA</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCppDialect</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccExceptions</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccRTTI</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccStaticDestr</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCppInlineSemantics</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccCmsis</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IccFloatSemantics</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptimizationNoSizeConstraints</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCNoLiteralPool</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCOptStrategySlave</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CCGuardCalls</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>AARM</name>
|
||||
<archiveVersion>2</archiveVersion>
|
||||
<data>
|
||||
<version>9</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>AObjPrefix</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AEndian</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ACaseSensitivity</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacroChars</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnEnable</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnWhat</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnOne</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnRange1</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AWarnRange2</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ADebug</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AltRegisterNames</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ADefines</name>
|
||||
<state>ewarm</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AList</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AListHeader</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AListing</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>Includes</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacDefs</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacExps</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MacExec</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OnlyAssed</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>MultiLine</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>PageLengthCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>PageLength</name>
|
||||
<state>80</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>TabSpacing</name>
|
||||
<state>8</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRef</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRefDefines</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRefInternal</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AXRefDual</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AFpuProcessor</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AOutputFile</name>
|
||||
<state>$FILE_BNAME$.o</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AMultibyteSupport</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ALimitErrorsCheck</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>ALimitErrorsEdit</name>
|
||||
<state>100</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AIgnoreStdInclude</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AUserIncludes</name>
|
||||
<state>$PROJ_DIR$\..\..\..\..</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AExtraOptionsCheckV2</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AExtraOptionsV2</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>AsmNoLiteralPool</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>OBJCOPY</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data>
|
||||
<version>1</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>OOCOutputFormat</name>
|
||||
<version>2</version>
|
||||
<state>2</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OCOutputOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCOutputFile</name>
|
||||
<state>wolfCrypt-test.bin</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCCommandLineProducer</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>OOCObjCopyEnable</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>CUSTOM</name>
|
||||
<archiveVersion>3</archiveVersion>
|
||||
<data>
|
||||
<extensions></extensions>
|
||||
<cmdline></cmdline>
|
||||
<hasPrio>0</hasPrio>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>BICOMP</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data/>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>BUILDACTION</name>
|
||||
<archiveVersion>1</archiveVersion>
|
||||
<data>
|
||||
<prebuild></prebuild>
|
||||
<postbuild></postbuild>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>ILINK</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data>
|
||||
<version>16</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>IlinkLibIOConfig</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>XLinkMisraHandler</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkInputFileSlave</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOutputFile</name>
|
||||
<state>test.out</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkDebugInfoEnable</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkKeepSymbols</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinaryFile</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinarySymbol</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinarySegment</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkRawBinaryAlign</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkDefines</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkConfigDefines</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkMapFile</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogFile</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogInitialization</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogModule</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogSection</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogVeneer</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfOverride</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfFile</name>
|
||||
<state>$PROJ_DIR$\..\common\wolfssl.icf</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIcfFileSlave</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkEnableRemarks</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkSuppressDiags</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkTreatAsRem</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkTreatAsWarn</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkTreatAsErr</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkWarningsAreErrors</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkUseExtraOptions</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkExtraOptions</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLowLevelInterfaceSlave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkAutoLibEnable</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkAdditionalLibs</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOverrideProgramEntryLabel</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkProgramEntryLabelSelect</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkProgramEntryLabel</name>
|
||||
<state>__iar_program_start</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>DoFill</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FillerByte</name>
|
||||
<state>0xFF</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FillerStart</name>
|
||||
<state>0x0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>FillerEnd</name>
|
||||
<state>0x0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcSize</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcAlign</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcPoly</name>
|
||||
<state>0x11021</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcCompl</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcBitOrder</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcInitialValue</name>
|
||||
<state>0x0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>DoCrc</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkBE8Slave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkBufferedTerminalOutput</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStdoutInterfaceSlave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcFullSize</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkIElfToolPostProcess</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogAutoLibSelect</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogRedirSymbols</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkLogUnusedFragments</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkCrcReverseByteOrder</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkCrcUseAsInput</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptInline</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptExceptionsAllow</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptExceptionsForce</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkCmsis</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptMergeDuplSections</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptUseVfe</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkOptForceVfe</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStackAnalysisEnable</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStackControlFile</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkStackCallGraphFile</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcAlgorithm</name>
|
||||
<version>0</version>
|
||||
<state>1</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>CrcUnitSize</name>
|
||||
<version>0</version>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IlinkThreadsSlave</name>
|
||||
<state>1</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>IARCHIVE</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data>
|
||||
<version>0</version>
|
||||
<wantNonLocal>1</wantNonLocal>
|
||||
<debug>1</debug>
|
||||
<option>
|
||||
<name>IarchiveInputs</name>
|
||||
<state></state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IarchiveOverride</name>
|
||||
<state>0</state>
|
||||
</option>
|
||||
<option>
|
||||
<name>IarchiveOutput</name>
|
||||
<state>###Unitialized###</state>
|
||||
</option>
|
||||
</data>
|
||||
</settings>
|
||||
<settings>
|
||||
<name>BILINK</name>
|
||||
<archiveVersion>0</archiveVersion>
|
||||
<data/>
|
||||
</settings>
|
||||
</configuration>
|
||||
<group>
|
||||
<name>Config</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\user_settings.h</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>Lib</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\lib\ewarm\Exe\wolfSSL-Lib.a</name>
|
||||
</file>
|
||||
</group>
|
||||
<group>
|
||||
<name>Source</name>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\common\minimum-startup.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\test-main.c</name>
|
||||
</file>
|
||||
<file>
|
||||
<name>$PROJ_DIR$\..\..\..\..\wolfcrypt\test\test.c</name>
|
||||
</file>
|
||||
</group>
|
||||
</project>
|
||||
|
||||
|
14
IDE/IAR-EWARM/Projects/user_settings.h
Normal file
14
IDE/IAR-EWARM/Projects/user_settings.h
Normal file
@ -0,0 +1,14 @@
|
||||
|
||||
#define NO_MAIN_DRIVER
|
||||
#define BENCH_EMBEDDED
|
||||
#define SINGLE_THREADED
|
||||
#define NO_FILESYSTEM
|
||||
#define NO_WRITEV
|
||||
#define WOLFSSL_USER_IO
|
||||
#define NO_DEV_RANDOM
|
||||
#define USE_CERT_BUFFERS_2048
|
||||
#define WOLFSSL_USER_CURRTIME
|
||||
|
||||
#define CUSTOM_RAND_GENERATE custom_rand_generate
|
||||
/* warning "write a real random seed!!!!, just for testing now" */
|
||||
static int custom_rand_generate(void) { return 0 ; }
|
224
IDE/IAR-EWARM/Projects/wolfssl.eww
Normal file
224
IDE/IAR-EWARM/Projects/wolfssl.eww
Normal file
@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
|
||||
<workspace>
|
||||
<project>
|
||||
<path>$WS_DIR$\benchmark\wolfCrypt-benchmark.ewp</path>
|
||||
</project>
|
||||
<project>
|
||||
<path>$WS_DIR$\test\wolfCrypt-test.ewp</path>
|
||||
</project>
|
||||
<project>
|
||||
<path>$WS_DIR$\lib\wolfSSL-Lib.ewp</path>
|
||||
</project>
|
||||
<batchBuild>
|
||||
<batchDefinition>
|
||||
<name>All Examples</name>
|
||||
<member>
|
||||
<project>driverlib</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>grlib</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usblib</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_cbc_decrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_cbc_encrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_ccm_decrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_ccm_encrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_cmac</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_ecb_decrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_ecb_encrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_gcm_decrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>aes128_gcm_encrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>bitband</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>blinky</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>boot_demo_uart</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>boot_demo_usb</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>calibrate</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>crc32</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>enet_io</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>enet_lwip</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>enet_uip</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>fontview</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>gpio_jtag</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>grlib_demo</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>hello</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>hello_widget</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>hibernate</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>interrupts</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>lang_demo</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>mpu_fault</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>qs_weather</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>scribble</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>sd_card</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>sha1_hash</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>sha1_hmac</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>synth</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>tamper</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>tdes_cbc_decrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>tdes_cbc_encrypt</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>timers</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>uart_echo</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>udma_demo</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_dev_bulk</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_dev_keyboard</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_dev_msc</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_host_hub</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_host_msc</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_otg_mouse</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_stick_demo</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>usb_stick_update</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
<member>
|
||||
<project>watchdog</project>
|
||||
<configuration>Debug</configuration>
|
||||
</member>
|
||||
</batchDefinition>
|
||||
</batchBuild>
|
||||
</workspace>
|
||||
|
||||
|
@ -7,38 +7,38 @@ In order to generate project for specific target MPU, take following steps.
|
||||
|
||||
Included Project Files
|
||||
-----------------------
|
||||
1. Workspace: CyaSSL-Lib.eww
|
||||
The workspace includes CyaSSL-Lib library and wolfCrypt-test, wolfCrypt-benchmark
|
||||
executable projects. The library project generates full set library of wolfCrypt
|
||||
and CyaSSL functions.
|
||||
1. Workspace: wolfssl.eww
|
||||
The workspace includes wolfSSL-Lib library and wolfCrypt-test, wolfCrypt-benchmark
|
||||
executable projects.
|
||||
|
||||
2. Test suites Project: wolfCrypt-test.ewp
|
||||
2. wolfSSL-Lib Project: lib/wolfSSL-lib.ewp
|
||||
generates full set library of wolfCrypt and wolfSSL functions.
|
||||
|
||||
3. Test suites Project: test/wolfCrypt-test.ewp
|
||||
generates test.out test suites executable
|
||||
|
||||
3. Benchmark Project: wolfCrypt-benchmark.ewp
|
||||
4. Benchmark Project: benchmark/wolfCrypt-benchmark.ewp
|
||||
generates benchmark.out benchmark executable
|
||||
|
||||
Set Up Steps
|
||||
------------
|
||||
0. Default Setting
|
||||
Default Target of the projects are set to Cortex-M3 Simulator.
|
||||
For check the projects, you can build and download to the simulator.
|
||||
user_settings.h includes default options for the projects.
|
||||
You can build and download the to the simulator.
|
||||
Open Terminal I/O window, by "view"->"Terminal I/O", and start execution.
|
||||
|
||||
1. Project option settings
|
||||
For each project,...
|
||||
General Options: Choose appropriate "Target" options
|
||||
|
||||
For executable projects,...
|
||||
2. For executable projects,...
|
||||
Add "SystemInit" and "startup" for your MPU
|
||||
Debugger: Choose your debug "Driver"
|
||||
|
||||
2. For benchmark project,...
|
||||
Write your own "current_time" benchmark timer under "defined(CYASSL_IAR_ARM)" in benchmark.c
|
||||
|
||||
3. settings.h
|
||||
Uncomment the "CYASSL_IAR_ARM" define located in:
|
||||
<cyassl_root>/cyassl/ctaocrypt/settings.
|
||||
3. For benchmark project,...
|
||||
Choose option for current_time function.
|
||||
Or write own "current_time" benchmark timer with WOLFSSL_USER_CURRTIME option.
|
||||
|
||||
4. Build and download
|
||||
Go to "Project->Make" and "Download and Debug" in Menu bar for EWARM build and download.
|
||||
|
@ -49,7 +49,8 @@ endif
|
||||
src_libwolfssl_la_SOURCES += \
|
||||
wolfcrypt/src/hmac.c \
|
||||
wolfcrypt/src/random.c \
|
||||
wolfcrypt/src/sha256.c
|
||||
wolfcrypt/src/sha256.c \
|
||||
wolfcrypt/src/hash.c
|
||||
|
||||
if BUILD_RSA
|
||||
src_libwolfssl_la_SOURCES += wolfcrypt/src/rsa.c
|
||||
|
125
src/internal.c
125
src/internal.c
@ -1841,11 +1841,30 @@ void SSL_ResourceFree(WOLFSSL* ssl)
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_TI_HASH
|
||||
static void HashFinal(WOLFSSL * ssl) {
|
||||
byte dummyHash[32] ;
|
||||
#ifndef NO_MD5
|
||||
wc_Md5Final(&(ssl->hsHashes->hashMd5), dummyHash) ;
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
wc_ShaFinal(&(ssl->hsHashes->hashSha), dummyHash) ;
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
wc_Sha256Final(&(ssl->hsHashes->hashSha256), dummyHash) ;
|
||||
#endif
|
||||
}
|
||||
#else
|
||||
|
||||
#define HashFinal(ssl)
|
||||
|
||||
#endif
|
||||
|
||||
/* Free any handshake resources no longer needed */
|
||||
void FreeHandshakeResources(WOLFSSL* ssl)
|
||||
{
|
||||
|
||||
HashFinal(ssl) ;
|
||||
#ifdef HAVE_SECURE_RENEGOTIATION
|
||||
if (ssl->secure_renegotiation && ssl->secure_renegotiation->enabled) {
|
||||
WOLFSSL_MSG("Secure Renegotiation needs to retain handshake resources");
|
||||
@ -2685,7 +2704,6 @@ void ShrinkInputBuffer(WOLFSSL* ssl, int forcedFree)
|
||||
ssl->buffers.inputBuffer.length = usedLength;
|
||||
}
|
||||
|
||||
|
||||
int SendBuffered(WOLFSSL* ssl)
|
||||
{
|
||||
if (ssl->ctx->CBIOSend == NULL) {
|
||||
@ -3023,14 +3041,14 @@ static void BuildMD5(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
wc_Md5Update(&ssl->hsHashes->hashMd5, sender, SIZEOF_SENDER);
|
||||
wc_Md5Update(&ssl->hsHashes->hashMd5, ssl->arrays->masterSecret,SECRET_LEN);
|
||||
wc_Md5Update(&ssl->hsHashes->hashMd5, PAD1, PAD_MD5);
|
||||
wc_Md5Final(&ssl->hsHashes->hashMd5, md5_result);
|
||||
wc_Md5GetHash(&ssl->hsHashes->hashMd5, md5_result);
|
||||
|
||||
/* make md5 outer */
|
||||
wc_Md5Update(&ssl->hsHashes->hashMd5, ssl->arrays->masterSecret,SECRET_LEN);
|
||||
wc_Md5Update(&ssl->hsHashes->hashMd5, PAD2, PAD_MD5);
|
||||
wc_Md5Update(&ssl->hsHashes->hashMd5, md5_result, MD5_DIGEST_SIZE);
|
||||
|
||||
wc_Md5Final(&ssl->hsHashes->hashMd5, hashes->md5);
|
||||
wc_Md5GetHash(&ssl->hsHashes->hashMd5, hashes->md5);
|
||||
}
|
||||
|
||||
|
||||
@ -3043,14 +3061,14 @@ static void BuildSHA(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
wc_ShaUpdate(&ssl->hsHashes->hashSha, sender, SIZEOF_SENDER);
|
||||
wc_ShaUpdate(&ssl->hsHashes->hashSha, ssl->arrays->masterSecret,SECRET_LEN);
|
||||
wc_ShaUpdate(&ssl->hsHashes->hashSha, PAD1, PAD_SHA);
|
||||
wc_ShaFinal(&ssl->hsHashes->hashSha, sha_result);
|
||||
wc_ShaGetHash(&ssl->hsHashes->hashSha, sha_result);
|
||||
|
||||
/* make sha outer */
|
||||
wc_ShaUpdate(&ssl->hsHashes->hashSha, ssl->arrays->masterSecret,SECRET_LEN);
|
||||
wc_ShaUpdate(&ssl->hsHashes->hashSha, PAD2, PAD_SHA);
|
||||
wc_ShaUpdate(&ssl->hsHashes->hashSha, sha_result, SHA_DIGEST_SIZE);
|
||||
|
||||
wc_ShaFinal(&ssl->hsHashes->hashSha, hashes->sha);
|
||||
wc_ShaGetHash(&ssl->hsHashes->hashSha, hashes->sha);
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -3060,33 +3078,10 @@ static int BuildFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
{
|
||||
int ret = 0;
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
Md5* md5 = (Md5*)XMALLOC(sizeof(Md5), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
Sha* sha = (Sha*)XMALLOC(sizeof(Sha), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
Sha256* sha256 = (Sha256*)XMALLOC(sizeof(Sha256), NULL,
|
||||
DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
Sha384* sha384 = (Sha384*)XMALLOC(sizeof(Sha384), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#else
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
Md5 md5[1];
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
Sha sha[1];
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
Sha256 sha256[1];
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
Sha384 sha384[1];
|
||||
#endif
|
||||
@ -3094,32 +3089,10 @@ static int BuildFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
if (ssl == NULL
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
|| md5 == NULL
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
|| sha == NULL
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
|| sha256 == NULL
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
|| sha384 == NULL
|
||||
#endif
|
||||
) {
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
XFREE(md5, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
XFREE(sha, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
XFREE(sha256, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
XFREE(sha384, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
@ -3128,17 +3101,6 @@ static int BuildFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
#endif
|
||||
|
||||
/* store current states, building requires get_digest which resets state */
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
md5[0] = ssl->hsHashes->hashMd5;
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
sha[0] = ssl->hsHashes->hashSha;
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
sha256[0] = ssl->hsHashes->hashSha256;
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
sha384[0] = ssl->hsHashes->hashSha384;
|
||||
#endif
|
||||
@ -3156,35 +3118,13 @@ static int BuildFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
#endif
|
||||
|
||||
/* restore */
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
ssl->hsHashes->hashMd5 = md5[0];
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
ssl->hsHashes->hashSha = sha[0];
|
||||
#endif
|
||||
#endif
|
||||
if (IsAtLeastTLSv1_2(ssl)) {
|
||||
#ifndef NO_SHA256
|
||||
ssl->hsHashes->hashSha256 = sha256[0];
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
ssl->hsHashes->hashSha384 = sha384[0];
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
#ifndef NO_OLD_TLS
|
||||
#ifndef NO_MD5
|
||||
XFREE(md5, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
XFREE(sha, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
XFREE(sha256, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
XFREE(sha384, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
@ -6700,6 +6640,7 @@ int ProcessReply(WOLFSSL* ssl)
|
||||
/* input exhausted? */
|
||||
if (ssl->buffers.inputBuffer.idx == ssl->buffers.inputBuffer.length)
|
||||
return 0;
|
||||
|
||||
/* more messages per record */
|
||||
else if ((ssl->buffers.inputBuffer.idx - startIdx) < ssl->curSize) {
|
||||
WOLFSSL_MSG("More messages in record");
|
||||
@ -6912,13 +6853,6 @@ static void BuildSHA_CertVerify(WOLFSSL* ssl, byte* digest)
|
||||
static int BuildCertHashes(WOLFSSL* ssl, Hashes* hashes)
|
||||
{
|
||||
/* store current states, building requires get_digest which resets state */
|
||||
#ifndef NO_OLD_TLS
|
||||
Md5 md5 = ssl->hsHashes->hashMd5;
|
||||
Sha sha = ssl->hsHashes->hashSha;
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
Sha256 sha256 = ssl->hsHashes->hashSha256;
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
Sha384 sha384 = ssl->hsHashes->hashSha384;
|
||||
#endif
|
||||
@ -6928,14 +6862,14 @@ static int BuildCertHashes(WOLFSSL* ssl, Hashes* hashes)
|
||||
|
||||
if (ssl->options.tls) {
|
||||
#if ! defined( NO_OLD_TLS )
|
||||
wc_Md5Final(&ssl->hsHashes->hashMd5, hashes->md5);
|
||||
wc_ShaFinal(&ssl->hsHashes->hashSha, hashes->sha);
|
||||
wc_Md5GetHash(&ssl->hsHashes->hashMd5, hashes->md5);
|
||||
wc_ShaGetHash(&ssl->hsHashes->hashSha, hashes->sha);
|
||||
#endif
|
||||
if (IsAtLeastTLSv1_2(ssl)) {
|
||||
int ret;
|
||||
|
||||
#ifndef NO_SHA256
|
||||
ret = wc_Sha256Final(&ssl->hsHashes->hashSha256,hashes->sha256);
|
||||
ret = wc_Sha256GetHash(&ssl->hsHashes->hashSha256,hashes->sha256);
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
#endif
|
||||
@ -6958,13 +6892,8 @@ static int BuildCertHashes(WOLFSSL* ssl, Hashes* hashes)
|
||||
}
|
||||
|
||||
/* restore */
|
||||
ssl->hsHashes->hashMd5 = md5;
|
||||
ssl->hsHashes->hashSha = sha;
|
||||
#endif
|
||||
if (IsAtLeastTLSv1_2(ssl)) {
|
||||
#ifndef NO_SHA256
|
||||
ssl->hsHashes->hashSha256 = sha256;
|
||||
#endif
|
||||
#ifdef WOLFSSL_SHA384
|
||||
ssl->hsHashes->hashSha384 = sha384;
|
||||
#endif
|
||||
|
@ -335,14 +335,14 @@ int BuildTlsFinished(WOLFSSL* ssl, Hashes* hashes, const byte* sender)
|
||||
word32 hashSz = FINISHED_SZ;
|
||||
|
||||
#ifndef NO_OLD_TLS
|
||||
wc_Md5Final(&ssl->hsHashes->hashMd5, handshake_hash);
|
||||
wc_ShaFinal(&ssl->hsHashes->hashSha, &handshake_hash[MD5_DIGEST_SIZE]);
|
||||
wc_Md5GetHash(&ssl->hsHashes->hashMd5, handshake_hash);
|
||||
wc_ShaGetHash(&ssl->hsHashes->hashSha, &handshake_hash[MD5_DIGEST_SIZE]);
|
||||
#endif
|
||||
|
||||
if (IsAtLeastTLSv1_2(ssl)) {
|
||||
#ifndef NO_SHA256
|
||||
if (ssl->specs.mac_algorithm <= sha256_mac) {
|
||||
int ret = wc_Sha256Final(&ssl->hsHashes->hashSha256,handshake_hash);
|
||||
int ret = wc_Sha256GetHash(&ssl->hsHashes->hashSha256,handshake_hash);
|
||||
|
||||
if (ret != 0)
|
||||
return ret;
|
||||
|
@ -1846,9 +1846,8 @@ void bench_ed25519KeySign(void)
|
||||
return ( ns / CLOCK * 2.0);
|
||||
}
|
||||
|
||||
#elif defined(WOLFSSL_IAR_ARM) || defined (WOLFSSL_MDK_ARM)
|
||||
#warning "Write your current_time()"
|
||||
double current_time(int reset) { return 0.0 ; }
|
||||
#elif defined(WOLFSSL_IAR_ARM_TIME) || defined (WOLFSSL_MDK_ARM) || defined(WOLFSSL_USER_CURRTIME)
|
||||
extern double current_time(int reset);
|
||||
|
||||
#elif defined FREERTOS
|
||||
|
||||
|
@ -174,6 +174,11 @@ void wc_AesFreeCavium(Aes* aes)
|
||||
}
|
||||
#endif
|
||||
#else /* HAVE_FIPS */
|
||||
|
||||
#ifdef WOLFSSL_TI_CRYPT
|
||||
#include <wolfcrypt/src/port/ti/ti-aes.c>
|
||||
#else
|
||||
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/logging.h>
|
||||
#ifdef NO_INLINE
|
||||
@ -1779,13 +1784,13 @@ int wc_AesCbcDecryptWithKey(byte* out, const byte* in, word32 inSz,
|
||||
/* Allow direct access to one block encrypt */
|
||||
void wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in)
|
||||
{
|
||||
return wc_AesEncrypt(aes, in, out);
|
||||
wc_AesEncrypt(aes, in, out);
|
||||
}
|
||||
|
||||
/* Allow direct access to one block decrypt */
|
||||
void wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in)
|
||||
{
|
||||
return wc_AesDecrypt(aes, in, out);
|
||||
wc_AesDecrypt(aes, in, out);
|
||||
}
|
||||
|
||||
#endif /* FREESCALE_MMCAU, AES direct block */
|
||||
@ -3885,6 +3890,8 @@ static int AesCaviumCbcDecrypt(Aes* aes, byte* out, const byte* in,
|
||||
|
||||
#endif /* HAVE_CAVIUM */
|
||||
|
||||
#endif /* WOLFSSL_TI_CRYPT */
|
||||
|
||||
#endif /* HAVE_FIPS */
|
||||
|
||||
#endif /* NO_AES */
|
||||
|
@ -129,6 +129,11 @@ void wc_Des3_FreeCavium(Des3* des3)
|
||||
|
||||
#endif /* HAVE_CAVIUM */
|
||||
#else /* build without fips */
|
||||
|
||||
#if defined(WOLFSSL_TI_CRYPT)
|
||||
#include <wolfcrypt/src/port/ti/ti-des3.c>
|
||||
#else
|
||||
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/logging.h>
|
||||
|
||||
@ -943,7 +948,7 @@ int wc_Des3_SetIV(Des3* des, const byte* iv);
|
||||
PIC32_DECRYPTION, PIC32_ALGO_TDES, PIC32_CRYPTOALGO_TCBC);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
#else /* CTaoCrypt software implementation */
|
||||
|
||||
/* permuted choice table (key) */
|
||||
@ -1668,5 +1673,6 @@ static int wc_Des3_CaviumCbcDecrypt(Des3* des3, byte* out, const byte* in,
|
||||
}
|
||||
|
||||
#endif /* HAVE_CAVIUM */
|
||||
#endif /* WOLFSSL_TI_CRYPT */
|
||||
#endif /* HAVE_FIPS */
|
||||
#endif /* NO_DES3 */
|
||||
|
74
wolfcrypt/src/hash.c
Normal file
74
wolfcrypt/src/hash.c
Normal file
@ -0,0 +1,74 @@
|
||||
/* hash.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#if !defined(WOLFSSL_TI_HASH)
|
||||
|
||||
#if !defined(NO_MD5)
|
||||
#include <wolfssl/wolfcrypt/md5.h>
|
||||
#endif
|
||||
#if !defined(NO_SHA)
|
||||
#include <wolfssl/wolfcrypt/sha.h>
|
||||
#endif
|
||||
#if !defined(NO_SHA256)
|
||||
#include <wolfssl/wolfcrypt/sha256.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/hash.h>
|
||||
|
||||
#if !defined(NO_MD5)
|
||||
void wc_Md5GetHash(Md5* md5, byte* hash)
|
||||
{
|
||||
Md5 save = *md5 ;
|
||||
wc_Md5Final(md5, hash) ;
|
||||
*md5 = save ;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(NO_SHA)
|
||||
int wc_ShaGetHash(Sha* sha, byte* hash)
|
||||
{
|
||||
int ret ;
|
||||
Sha save = *sha ;
|
||||
ret = wc_ShaFinal(sha, hash) ;
|
||||
*sha = save ;
|
||||
return ret ;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if !defined(NO_SHA256)
|
||||
int wc_Sha256GetHash(Sha256* sha256, byte* hash)
|
||||
{
|
||||
int ret ;
|
||||
Sha256 save = *sha256 ;
|
||||
ret = wc_Sha256Final(sha256, hash) ;
|
||||
*sha256 = save ;
|
||||
return ret ;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@ -38,3 +38,11 @@ EXTRA_DIST += \
|
||||
wolfcrypt/src/fp_sqr_comba_8.i \
|
||||
wolfcrypt/src/fp_sqr_comba_9.i \
|
||||
wolfcrypt/src/fp_sqr_comba_small_set.i
|
||||
|
||||
EXTRA_DIST += wolfcrypt/src/port/ti/ti-aes.c \
|
||||
wolfcrypt/src/port/ti/ti-des3.c \
|
||||
wolfcrypt/src/port/ti/ti-hash.c \
|
||||
wolfcrypt/src/port/ti/ti-ccm.c \
|
||||
wolfcrypt/src/port/pic32/pic32mz-hash.c
|
||||
|
||||
|
||||
|
@ -28,6 +28,10 @@
|
||||
|
||||
#if !defined(NO_MD5)
|
||||
|
||||
#if defined(WOLFSSL_TI_HASH)
|
||||
/* #include <wolfcrypt/src/port/ti/ti-hash.c> included by wc_port.c */
|
||||
#else
|
||||
|
||||
#ifdef WOLFSSL_PIC32MZ_HASH
|
||||
#define wc_InitMd5 wc_InitMd5_sw
|
||||
#define wc_Md5Update wc_Md5Update_sw
|
||||
@ -176,7 +180,6 @@
|
||||
|
||||
#endif /* WOLFSSL_HAVE_MIN */
|
||||
|
||||
|
||||
void wc_InitMd5(Md5* md5)
|
||||
{
|
||||
md5->digest[0] = 0x67452301L;
|
||||
@ -389,4 +392,6 @@ int wc_Md5Hash(const byte* data, word32 len, byte* hash)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* WOLFSSL_TI_HASH */
|
||||
|
||||
#endif /* NO_MD5 */
|
||||
|
548
wolfcrypt/src/port/ti/ti-aes.c
Normal file
548
wolfcrypt/src/port/ti/ti-aes.c
Normal file
@ -0,0 +1,548 @@
|
||||
/* port/ti/ti-aes.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#ifndef NO_AES
|
||||
|
||||
|
||||
#if defined(WOLFSSL_TI_CRYPT)
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <wolfssl/wolfcrypt/aes.h>
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/port/ti/ti-ccm.h>
|
||||
|
||||
#include "inc/hw_aes.h"
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "inc/hw_ints.h"
|
||||
#include "driverlib/aes.h"
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/rom_map.h"
|
||||
#include "driverlib/rom.h"
|
||||
|
||||
static int AesSetIV(Aes* aes, const byte* iv)
|
||||
{
|
||||
if (aes == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
if (iv)
|
||||
XMEMCPY(aes->reg, iv, AES_BLOCK_SIZE);
|
||||
else
|
||||
XMEMSET(aes->reg, 0, AES_BLOCK_SIZE);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_AesSetKey(Aes* aes, const byte* key, word32 len, const byte* iv,
|
||||
int dir)
|
||||
{
|
||||
if(!wolfSSL_TI_CCMInit())return 1 ;
|
||||
if ((aes == NULL) || (key == NULL) || (iv == NULL))
|
||||
return BAD_FUNC_ARG;
|
||||
if(!((dir == AES_ENCRYPTION) || (dir == AES_DECRYPTION)))
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
switch(len) {
|
||||
case 16: aes->keylen = AES_CFG_KEY_SIZE_128BIT ; break ;
|
||||
case 24: aes->keylen = AES_CFG_KEY_SIZE_192BIT ; break ;
|
||||
case 32: aes->keylen = AES_CFG_KEY_SIZE_256BIT ; break ;
|
||||
default: return BAD_FUNC_ARG;
|
||||
}
|
||||
|
||||
XMEMCPY(aes->key, key, len) ;
|
||||
#ifdef WOLFSSL_AES_COUNTER
|
||||
aes->left = 0;
|
||||
#endif /* WOLFSSL_AES_COUNTER */
|
||||
return AesSetIV(aes, iv);
|
||||
}
|
||||
|
||||
#define AES_CFG_MODE_CTR_NOCTR AES_CFG_MODE_CTR+100
|
||||
#define IS_ALIGN16(p) (((unsigned int)(p)&0xf) == 0)
|
||||
|
||||
static int AesAlign16(Aes* aes, byte* out, const byte* in, word32 sz, word32 dir, word32 mode)
|
||||
{
|
||||
wolfSSL_TI_lockCCM() ;
|
||||
ROM_AESReset(AES_BASE);
|
||||
ROM_AESConfigSet(AES_BASE, (aes->keylen | dir |
|
||||
(mode==AES_CFG_MODE_CTR_NOCTR ? AES_CFG_MODE_CTR : mode)));
|
||||
ROM_AESIVSet(AES_BASE, aes->reg);
|
||||
ROM_AESKey1Set(AES_BASE, aes->key, aes->keylen);
|
||||
if((dir == AES_CFG_DIR_DECRYPT)&& (mode == AES_CFG_MODE_CBC))
|
||||
/* if input and output same will overwrite input iv */
|
||||
XMEMCPY(aes->tmp, in + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
|
||||
ROM_AESDataProcess(AES_BASE, (uint32_t *)in, (uint32_t *)out, sz);
|
||||
wolfSSL_TI_unlockCCM() ;
|
||||
|
||||
/* store iv for next call */
|
||||
if(mode == AES_CFG_MODE_CBC){
|
||||
if(dir == AES_CFG_DIR_ENCRYPT)
|
||||
XMEMCPY(aes->reg, out + sz - AES_BLOCK_SIZE, AES_BLOCK_SIZE);
|
||||
else
|
||||
XMEMCPY(aes->reg, aes->tmp, AES_BLOCK_SIZE);
|
||||
}
|
||||
|
||||
if(mode == AES_CFG_MODE_CTR) {
|
||||
do {
|
||||
int i ;
|
||||
for (i = AES_BLOCK_SIZE - 1; i >= 0; i--) {
|
||||
if (++((byte *)aes->reg)[i])
|
||||
break ;
|
||||
}
|
||||
sz -= AES_BLOCK_SIZE ;
|
||||
} while((int)sz > 0) ;
|
||||
}
|
||||
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static int AesProcess(Aes* aes, byte* out, const byte* in, word32 sz, word32 dir, word32 mode)
|
||||
{
|
||||
const byte * in_p ; byte * out_p ;
|
||||
word32 size ;
|
||||
#define TI_BUFFSIZE 1024
|
||||
byte buff[TI_BUFFSIZE] ;
|
||||
|
||||
if ((aes == NULL) || (in == NULL) || (out == NULL))
|
||||
return BAD_FUNC_ARG;
|
||||
if(sz % AES_BLOCK_SIZE)
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
while(sz > 0) {
|
||||
size = sz ; in_p = in ; out_p = out ;
|
||||
if(!IS_ALIGN16(in)){
|
||||
size = sz>TI_BUFFSIZE ? TI_BUFFSIZE : sz ;
|
||||
XMEMCPY(buff, in, size) ;
|
||||
in_p = (const byte *)buff ;
|
||||
}
|
||||
if(!IS_ALIGN16(out)){
|
||||
size = sz>TI_BUFFSIZE ? TI_BUFFSIZE : sz ;
|
||||
out_p = buff ;
|
||||
}
|
||||
|
||||
AesAlign16(aes, out_p, in_p, size, dir, mode) ;
|
||||
|
||||
if(!IS_ALIGN16(out)){
|
||||
XMEMCPY(out, buff, size) ;
|
||||
}
|
||||
sz -= size ; in += size ; out += size ;
|
||||
}
|
||||
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_AesCbcEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
return AesProcess(aes, out, in, sz, AES_CFG_DIR_ENCRYPT, AES_CFG_MODE_CBC) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_AesCbcDecrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
return AesProcess(aes, out, in, sz, AES_CFG_DIR_DECRYPT, AES_CFG_MODE_CBC) ;
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_AES_COUNTER
|
||||
WOLFSSL_API void wc_AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
char out_block[AES_BLOCK_SIZE] ;
|
||||
int odd ;
|
||||
int even ;
|
||||
char *tmp ; /* (char *)aes->tmp, for short */
|
||||
|
||||
tmp = (char *)aes->tmp ;
|
||||
if(aes->left) {
|
||||
if((aes->left + sz) >= AES_BLOCK_SIZE){
|
||||
odd = AES_BLOCK_SIZE - aes->left ;
|
||||
} else {
|
||||
odd = sz ;
|
||||
}
|
||||
XMEMCPY(tmp+aes->left, in, odd) ;
|
||||
if((odd+aes->left) == AES_BLOCK_SIZE){
|
||||
AesProcess(aes, (byte *)out_block, (byte const *)tmp, AES_BLOCK_SIZE,
|
||||
AES_CFG_DIR_ENCRYPT, AES_CFG_MODE_CTR) ;
|
||||
XMEMCPY(out, out_block+aes->left, odd) ;
|
||||
aes->left = 0 ;
|
||||
XMEMSET(tmp, 0x0, AES_BLOCK_SIZE) ;
|
||||
}
|
||||
in += odd ;
|
||||
out+= odd ;
|
||||
sz -= odd ;
|
||||
}
|
||||
odd = sz % AES_BLOCK_SIZE ; /* if there is tail flagment */
|
||||
if(sz / AES_BLOCK_SIZE) {
|
||||
even = (sz/AES_BLOCK_SIZE)*AES_BLOCK_SIZE ;
|
||||
AesProcess(aes, out, in, even, AES_CFG_DIR_ENCRYPT, AES_CFG_MODE_CTR);
|
||||
out += even ;
|
||||
in += even ;
|
||||
}
|
||||
if(odd) {
|
||||
XMEMSET(tmp+aes->left, 0x0, AES_BLOCK_SIZE - aes->left) ;
|
||||
XMEMCPY(tmp+aes->left, in, odd) ;
|
||||
AesProcess(aes, (byte *)out_block, (byte const *)tmp, AES_BLOCK_SIZE,
|
||||
AES_CFG_DIR_ENCRYPT,
|
||||
AES_CFG_MODE_CTR_NOCTR /* Counter mode without counting IV */
|
||||
);
|
||||
XMEMCPY(out, out_block+aes->left,odd) ;
|
||||
aes->left += odd ;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* AES-DIRECT */
|
||||
#if defined(WOLFSSL_AES_DIRECT)
|
||||
WOLFSSL_API void wc_AesEncryptDirect(Aes* aes, byte* out, const byte* in)
|
||||
{
|
||||
AesProcess(aes, out, in, AES_BLOCK_SIZE, AES_CFG_DIR_ENCRYPT, AES_CFG_MODE_CBC) ;
|
||||
}
|
||||
WOLFSSL_API void wc_AesDecryptDirect(Aes* aes, byte* out, const byte* in)
|
||||
{
|
||||
AesProcess(aes, out, in, AES_BLOCK_SIZE, AES_CFG_DIR_DECRYPT, AES_CFG_MODE_CBC) ;
|
||||
}
|
||||
WOLFSSL_API int wc_AesSetKeyDirect(Aes* aes, const byte* key, word32 len,
|
||||
const byte* iv, int dir)
|
||||
{
|
||||
return(wc_AesSetKey(aes, key, len, iv, dir)) ;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(HAVE_AESGCM) || defined(HAVE_AESCCM)
|
||||
|
||||
static int AesAuthSetKey(Aes* aes, const byte* key, word32 keySz)
|
||||
{
|
||||
byte nonce[AES_BLOCK_SIZE];
|
||||
|
||||
if ((aes == NULL) || (key == NULL))
|
||||
return BAD_FUNC_ARG ;
|
||||
if (!((keySz == 16) || (keySz == 24) || (keySz == 32)))
|
||||
return BAD_FUNC_ARG ;
|
||||
|
||||
XMEMSET(nonce, 0, sizeof(nonce));
|
||||
return wc_AesSetKey(aes, key, keySz, nonce, AES_ENCRYPTION);
|
||||
}
|
||||
|
||||
|
||||
static int AesAuthArgCheck(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
const byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz, word32 *M, word32 *L)
|
||||
{
|
||||
if((aes == NULL)||(nonce == NULL)||(authTag== NULL)||(authIn == NULL))
|
||||
return BAD_FUNC_ARG;
|
||||
if((inSz != 0) && ((out == NULL)||(in == NULL)))
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
switch(authTagSz){
|
||||
case 4:
|
||||
*M = AES_CFG_CCM_M_4; break ;
|
||||
case 6:
|
||||
*M = AES_CFG_CCM_M_6; break ;
|
||||
case 8:
|
||||
*M = AES_CFG_CCM_M_8; break ;
|
||||
case 10:
|
||||
*M = AES_CFG_CCM_M_10; break ;
|
||||
case 12:
|
||||
*M = AES_CFG_CCM_M_12; break ;
|
||||
case 14:
|
||||
*M = AES_CFG_CCM_M_14; break ;
|
||||
case 16:
|
||||
*M = AES_CFG_CCM_M_16; break ;
|
||||
default:
|
||||
return 1 ;
|
||||
}
|
||||
|
||||
switch(nonceSz){
|
||||
case 7:
|
||||
*L = AES_CFG_CCM_L_8; break ;
|
||||
case 8:
|
||||
*L = AES_CFG_CCM_L_7; break ;
|
||||
case 9:
|
||||
*L = AES_CFG_CCM_L_6; break ;
|
||||
case 10:
|
||||
*L = AES_CFG_CCM_L_5; break ;
|
||||
case 11:
|
||||
*L = AES_CFG_CCM_L_4; break ;
|
||||
case 12:
|
||||
*L = AES_CFG_CCM_L_3; break ;
|
||||
case 13:
|
||||
*L = AES_CFG_CCM_L_2; break ;
|
||||
case 14:
|
||||
*L = AES_CFG_CCM_L_1; break ;
|
||||
default:
|
||||
return 1;
|
||||
}
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static void AesAuthSetIv(Aes *aes, const byte *nonce, word32 len, word32 L, int mode) {
|
||||
|
||||
if(mode == AES_CFG_MODE_CCM){
|
||||
XMEMSET(aes->reg, 0, 16) ;
|
||||
switch(L){
|
||||
case AES_CFG_CCM_L_8:
|
||||
aes->reg[0] = 0x7; break ;
|
||||
case AES_CFG_CCM_L_7:
|
||||
aes->reg[0] = 0x6; break ;
|
||||
case AES_CFG_CCM_L_6:
|
||||
aes->reg[0] = 0x5; break ;
|
||||
case AES_CFG_CCM_L_5:
|
||||
aes->reg[0] = 0x4; break ;
|
||||
case AES_CFG_CCM_L_4:
|
||||
aes->reg[0] = 0x3; break ;
|
||||
case AES_CFG_CCM_L_3:
|
||||
aes->reg[0] = 0x2; break ;
|
||||
case AES_CFG_CCM_L_2:
|
||||
aes->reg[0] = 0x1; break ;
|
||||
case AES_CFG_CCM_L_1:
|
||||
aes->reg[0] = 0x0; break ;
|
||||
}
|
||||
XMEMCPY(((byte *)aes->reg)+1, nonce, len) ;
|
||||
} else {
|
||||
byte *b = (byte *)aes->reg ;
|
||||
XMEMSET(aes->reg, 0, AES_BLOCK_SIZE);
|
||||
XMEMCPY(aes->reg, nonce, len);
|
||||
b[AES_BLOCK_SIZE-4] = 0 ;
|
||||
b[AES_BLOCK_SIZE-3] = 0 ;
|
||||
b[AES_BLOCK_SIZE-2] = 0 ;
|
||||
b[AES_BLOCK_SIZE-1] = 1 ;
|
||||
}
|
||||
}
|
||||
|
||||
#define RoundUp16(n) ((n+15)&0xfffffff0)
|
||||
#define FREE_ALL \
|
||||
if(in_save) XFREE(in_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);\
|
||||
if(out_save) XFREE(out_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);\
|
||||
if(authIn_save)XFREE(authIn_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);\
|
||||
if(nonce_save) XFREE(nonce_save, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
|
||||
static int AesAuthEncrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz, int mode)
|
||||
{
|
||||
word32 M, L ;
|
||||
byte *in_a, *in_save ;
|
||||
byte *out_a, *out_save ;
|
||||
byte *authIn_a, *authIn_save ;
|
||||
byte *nonce_a, *nonce_save ;
|
||||
word32 tmpTag[4] ;
|
||||
int ret ;
|
||||
|
||||
if(AesAuthArgCheck(aes, out, in, inSz, nonce, nonceSz, authTag, authTagSz, authIn, authInSz, &M, &L)
|
||||
== BAD_FUNC_ARG)return BAD_FUNC_ARG ;
|
||||
|
||||
/* 16 byte padding */
|
||||
in_save = NULL ; out_save = NULL ; authIn_save = NULL ; nonce_save = NULL ;
|
||||
if((inSz%16)==0){
|
||||
in_save = NULL ; in_a = (byte *)in ;
|
||||
out_save = NULL ; out_a = out ;
|
||||
} else {
|
||||
if((in_save = XMALLOC(RoundUp16(inSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E ; }
|
||||
in_a = in_save ; XMEMSET(in_a, 0, RoundUp16(inSz)) ; XMEMCPY(in_a, in, inSz) ;
|
||||
|
||||
if((out_save = XMALLOC(RoundUp16(inSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E ; }
|
||||
out_a = out_save ;
|
||||
}
|
||||
|
||||
if((authInSz%16)==0){
|
||||
authIn_save = NULL ; authIn_a = (byte *)authIn ;
|
||||
} else {
|
||||
if((authIn_save = XMALLOC(RoundUp16(authInSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E ; }
|
||||
authIn_a = authIn_save ; XMEMSET(authIn_a, 0, RoundUp16(authInSz)) ; XMEMCPY(authIn_a, authIn, authInSz) ;
|
||||
}
|
||||
|
||||
if((nonceSz%16)==0){
|
||||
nonce_save = NULL ; nonce_a = (byte *)nonce ;
|
||||
} else {
|
||||
if((nonce_save = XMALLOC(RoundUp16(nonceSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E; }
|
||||
nonce_a = nonce_save ; XMEMSET(nonce_a, 0, RoundUp16(nonceSz)) ; XMEMCPY(nonce_a, nonce, nonceSz) ;
|
||||
}
|
||||
|
||||
/* do aes-ccm */
|
||||
AesAuthSetIv(aes, nonce, nonceSz, L, mode) ;
|
||||
ROM_AESReset(AES_BASE);
|
||||
ROM_AESConfigSet(AES_BASE, (aes->keylen | AES_CFG_DIR_ENCRYPT |
|
||||
AES_CFG_CTR_WIDTH_128 |
|
||||
mode | ((mode== AES_CFG_MODE_CCM) ? (L | M) : 0 ))) ;
|
||||
ROM_AESIVSet(AES_BASE, aes->reg);
|
||||
ROM_AESKey1Set(AES_BASE, aes->key, aes->keylen);
|
||||
ret = ROM_AESDataProcessAuth(AES_BASE, (unsigned int*)in_a, (unsigned int *)out_a, inSz,
|
||||
(unsigned int*)authIn_a, authInSz, (unsigned int *)tmpTag);
|
||||
if(ret == false){
|
||||
XMEMSET(out, 0, inSz) ;
|
||||
XMEMSET(authTag, 0, authTagSz) ;
|
||||
} else {
|
||||
XMEMCPY(out, out_a, inSz) ;
|
||||
XMEMCPY(authTag, tmpTag, authTagSz) ;
|
||||
}
|
||||
|
||||
FREE_ALL;
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static int AesAuthDecrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
const byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz, int mode)
|
||||
{
|
||||
word32 M, L ;
|
||||
byte *in_a, *in_save ;
|
||||
byte *out_a, *out_save ;
|
||||
byte *authIn_a, *authIn_save ;
|
||||
byte *nonce_a, *nonce_save ;
|
||||
word32 tmpTag[4] ;
|
||||
bool ret ;
|
||||
|
||||
if(AesAuthArgCheck(aes, out, in, inSz, nonce, nonceSz, authTag, authTagSz, authIn, authInSz, &M, &L)
|
||||
== BAD_FUNC_ARG)return BAD_FUNC_ARG ;
|
||||
|
||||
/* 16 byte padding */
|
||||
in_save = NULL ; out_save = NULL ; authIn_save = NULL ; nonce_save = NULL ;
|
||||
if((inSz%16)==0){
|
||||
in_save = NULL ; in_a = (byte *)in ;
|
||||
out_save = NULL ; out_a = out ;
|
||||
} else {
|
||||
if((in_save = XMALLOC(RoundUp16(inSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E;}
|
||||
in_a = in_save ; XMEMSET(in_a, 0, RoundUp16(inSz)) ; XMEMCPY(in_a, in, inSz) ;
|
||||
|
||||
if((out_save = XMALLOC(RoundUp16(inSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E;}
|
||||
out_a = out_save ;
|
||||
}
|
||||
|
||||
if((authInSz%16)==0){
|
||||
authIn_save = NULL ; authIn_a = (byte *)authIn ;
|
||||
} else {
|
||||
if((authIn_save = XMALLOC(RoundUp16(authInSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E; }
|
||||
authIn_a = authIn_save ; XMEMSET(authIn_a, 0, RoundUp16(authInSz)) ; XMEMCPY(authIn_a, authIn, authInSz) ;
|
||||
}
|
||||
|
||||
if((nonceSz%16)==0){
|
||||
nonce_save = NULL ; nonce_a = (byte *)nonce ;
|
||||
} else {
|
||||
if((nonce_save = XMALLOC(RoundUp16(nonceSz), NULL, DYNAMIC_TYPE_TMP_BUFFER)) == NULL){
|
||||
FREE_ALL; return MEMORY_E; }
|
||||
nonce_a = nonce_save ; XMEMSET(nonce_a, 0, RoundUp16(nonceSz)) ; XMEMCPY(nonce_a, nonce, nonceSz) ;
|
||||
}
|
||||
|
||||
/* do aes-ccm */
|
||||
AesAuthSetIv(aes, nonce, nonceSz, L, mode) ;
|
||||
ROM_AESReset(AES_BASE);
|
||||
ROM_AESConfigSet(AES_BASE, (aes->keylen | AES_CFG_DIR_DECRYPT |
|
||||
AES_CFG_CTR_WIDTH_128 |
|
||||
mode | ((mode== AES_CFG_MODE_CCM) ? (L | M) : 0 ))) ;
|
||||
ROM_AESIVSet(AES_BASE, aes->reg);
|
||||
ROM_AESKey1Set(AES_BASE, aes->key, aes->keylen);
|
||||
ret = ROM_AESDataProcessAuth(AES_BASE, (unsigned int*)in_a, (unsigned int *)out_a, inSz,
|
||||
(unsigned int*)authIn_a, authInSz, (unsigned int *)tmpTag);
|
||||
if((ret == false) || (XMEMCMP(authTag, tmpTag, authTagSz) != 0)){
|
||||
XMEMSET(out, 0, inSz) ;
|
||||
ret = false ;
|
||||
} else {
|
||||
XMEMCPY(out, out_a, inSz) ;
|
||||
}
|
||||
|
||||
FREE_ALL ;
|
||||
return ret==true ? 0 : 1 ;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef HAVE_AESGCM
|
||||
WOLFSSL_API int wc_AesGcmSetKey(Aes* aes, const byte* key, word32 len)
|
||||
{
|
||||
return AesAuthSetKey(aes, key, len) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_AesGcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
||||
const byte* iv, word32 ivSz,
|
||||
byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz)
|
||||
{
|
||||
return AesAuthEncrypt(aes, out, in, sz, iv, ivSz, authTag, authTagSz,
|
||||
authIn, authInSz, AES_CFG_MODE_GCM_HY0CALC) ;
|
||||
}
|
||||
WOLFSSL_API int wc_AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
|
||||
const byte* iv, word32 ivSz,
|
||||
const byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz)
|
||||
{
|
||||
return AesAuthDecrypt(aes, out, in, sz, iv, ivSz, authTag, authTagSz,
|
||||
authIn, authInSz, AES_CFG_MODE_GCM_HY0CALC) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_GmacSetKey(Gmac* gmac, const byte* key, word32 len)
|
||||
{
|
||||
return AesAuthSetKey(&gmac->aes, key, len) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_GmacUpdate(Gmac* gmac, const byte* iv, word32 ivSz,
|
||||
const byte* authIn, word32 authInSz,
|
||||
byte* authTag, word32 authTagSz)
|
||||
{
|
||||
return AesAuthEncrypt(&gmac->aes, NULL, NULL, 0, iv, ivSz, authTag, authTagSz,
|
||||
authIn, authInSz, AES_CFG_MODE_GCM_HY0CALC) ;
|
||||
}
|
||||
|
||||
#endif /* HAVE_AESGCM */
|
||||
|
||||
#ifdef HAVE_AESCCM
|
||||
WOLFSSL_API void wc_AesCcmSetKey(Aes* aes, const byte* key, word32 keySz)
|
||||
{
|
||||
AesAuthSetKey(aes, key, keySz) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API void wc_AesCcmEncrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz)
|
||||
{
|
||||
AesAuthEncrypt(aes, out, in, inSz, nonce, nonceSz, authTag, authTagSz,
|
||||
authIn, authInSz, AES_CFG_MODE_CCM) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_AesCcmDecrypt(Aes* aes, byte* out, const byte* in, word32 inSz,
|
||||
const byte* nonce, word32 nonceSz,
|
||||
const byte* authTag, word32 authTagSz,
|
||||
const byte* authIn, word32 authInSz)
|
||||
{
|
||||
return AesAuthDecrypt(aes, out, in, inSz, nonce, nonceSz, authTag, authTagSz,
|
||||
authIn, authInSz, AES_CFG_MODE_CCM) ;
|
||||
}
|
||||
#endif /* HAVE_AESCCM */
|
||||
|
||||
#endif /* WOLFSSL_TI_CRYPT */
|
||||
|
||||
#endif /* NO_AES */
|
||||
|
||||
|
||||
|
82
wolfcrypt/src/port/ti/ti-ccm.c
Normal file
82
wolfcrypt/src/port/ti/ti-ccm.c
Normal file
@ -0,0 +1,82 @@
|
||||
/* port/ti/ti_ccm.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#if defined(WOLFSSL_TI_CRYPT) || defined(WOLFSSL_TI_HASH)
|
||||
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/rom_map.h"
|
||||
#include "driverlib/rom.h"
|
||||
|
||||
#ifndef SINGLE_THREADED
|
||||
#include <wolfssl/wolfcrypt/wc_port.h>
|
||||
static wolfSSL_Mutex TI_CCM_Mutex ;
|
||||
#endif
|
||||
|
||||
#define TIMEOUT 500000
|
||||
#define WAIT(stat) { volatile int i ; for(i=0; i<TIMEOUT; i++)if(stat)break ; if(i==TIMEOUT)return(false) ; }
|
||||
|
||||
static bool ccm_init = false ;
|
||||
bool wolfSSL_TI_CCMInit(void)
|
||||
{
|
||||
if(ccm_init)return true ;
|
||||
ccm_init = true ;
|
||||
|
||||
SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
|
||||
SYSCTL_OSC_MAIN |
|
||||
SYSCTL_USE_PLL |
|
||||
SYSCTL_CFG_VCO_480), 120000000);
|
||||
|
||||
if(!ROM_SysCtlPeripheralPresent(SYSCTL_PERIPH_CCM0))
|
||||
return false ;
|
||||
|
||||
ROM_SysCtlPeripheralEnable(SYSCTL_PERIPH_CCM0);
|
||||
WAIT(ROM_SysCtlPeripheralReady(SYSCTL_PERIPH_CCM0)) ;
|
||||
ROM_SysCtlPeripheralReset(SYSCTL_PERIPH_CCM0);
|
||||
WAIT(ROM_SysCtlPeripheralReady(SYSCTL_PERIPH_CCM0)) ;
|
||||
|
||||
#ifndef SINGLE_THREADED
|
||||
InitMutex(&TI_CCM_Mutex) ;
|
||||
#endif
|
||||
|
||||
return true ;
|
||||
}
|
||||
|
||||
#ifndef SINGLE_THREADED
|
||||
void wolfSSL_TI_lockCCM() {
|
||||
LockMutex(&TI_CCM_Mutex) ;
|
||||
}
|
||||
|
||||
void wolfSSL_TI_unlockCCM() {
|
||||
UnLockMutex(&TI_CCM_Mutex) ;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
181
wolfcrypt/src/port/ti/ti-des3.c
Normal file
181
wolfcrypt/src/port/ti/ti-des3.c
Normal file
@ -0,0 +1,181 @@
|
||||
/* port/ti/ti-des.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#ifndef NO_DES
|
||||
|
||||
#if defined(WOLFSSL_TI_CRYPT)
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <wolfssl/wolfcrypt/des3.h>
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/port/ti/ti-ccm.h>
|
||||
|
||||
#include "inc/hw_des.h"
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "inc/hw_ints.h"
|
||||
#include "driverlib/des.h"
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/rom_map.h"
|
||||
#include "driverlib/rom.h"
|
||||
|
||||
static int DesSetIV(Des* des, const byte* iv, int tri)
|
||||
{
|
||||
if (des == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
if (iv)
|
||||
XMEMCPY(des->reg, iv, tri == DES_CFG_TRIPLE ? DES3_IVLEN : DES_IVLEN);
|
||||
else
|
||||
XMEMSET(des->reg, 0, tri == DES_CFG_TRIPLE ? DES3_IVLEN : DES_IVLEN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int DesSetKey(Des* des, const byte* key, const byte* iv,int dir, int tri)
|
||||
{
|
||||
if(!wolfSSL_TI_CCMInit())return 1 ;
|
||||
if ((des == NULL) || (key == NULL) || (iv == NULL))
|
||||
return BAD_FUNC_ARG;
|
||||
if(!((dir == DES_ENCRYPTION) || (dir == DES_DECRYPTION)))
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
XMEMCPY(des->key, key, tri == DES_CFG_SINGLE ? DES_KEYLEN : DES3_KEYLEN) ;
|
||||
return DesSetIV(des, iv, tri);
|
||||
}
|
||||
|
||||
static int DesCbcAlign16(Des* des, byte* out, const byte* in, word32 sz, word32 dir, word32 tri)
|
||||
{
|
||||
|
||||
wolfSSL_TI_lockCCM() ;
|
||||
ROM_DESReset(DES_BASE);
|
||||
ROM_DESConfigSet(DES_BASE, (dir | DES_CFG_MODE_CBC | tri));
|
||||
ROM_DESIVSet(DES_BASE, des->reg);
|
||||
ROM_DESKeySet(DES_BASE, des->key);
|
||||
if(dir == DES_CFG_DIR_DECRYPT)
|
||||
/* if input and output same will overwrite input iv */
|
||||
XMEMCPY(des->tmp, in + sz - DES_BLOCK_SIZE, DES_BLOCK_SIZE);
|
||||
ROM_DESDataProcess(DES_BASE, (uint32_t *)in, (uint32_t *)out, sz);
|
||||
wolfSSL_TI_unlockCCM() ;
|
||||
|
||||
/* store iv for next call */
|
||||
if(dir == DES_CFG_DIR_ENCRYPT)
|
||||
XMEMCPY(des->reg, out + sz - DES_BLOCK_SIZE, DES_BLOCK_SIZE);
|
||||
else
|
||||
XMEMCPY(des->reg, des->tmp, DES_BLOCK_SIZE);
|
||||
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
#define IS_ALIGN16(p) (((unsigned int)(p)&0xf) == 0)
|
||||
|
||||
static int DesCbc(Des* des, byte* out, const byte* in, word32 sz, word32 dir, word32 tri)
|
||||
{
|
||||
const byte * in_p ; byte * out_p ;
|
||||
word32 size ;
|
||||
#define TI_BUFFSIZE 1024
|
||||
byte buff[TI_BUFFSIZE] ;
|
||||
if ((des == NULL) || (in == NULL) || (out == NULL))
|
||||
return BAD_FUNC_ARG;
|
||||
if(sz % DES_BLOCK_SIZE)
|
||||
return BAD_FUNC_ARG;
|
||||
|
||||
while(sz > 0) {
|
||||
size = sz ; in_p = in ; out_p = out ;
|
||||
if(!IS_ALIGN16(in)){
|
||||
size = sz>TI_BUFFSIZE ? TI_BUFFSIZE : sz ;
|
||||
XMEMCPY(buff, in, size) ;
|
||||
in_p = (const byte *)buff ;
|
||||
}
|
||||
if(!IS_ALIGN16(out)){
|
||||
size = sz>TI_BUFFSIZE ? TI_BUFFSIZE : sz ;
|
||||
out_p = (byte *)buff ;
|
||||
}
|
||||
|
||||
DesCbcAlign16(des, out_p, in_p, size, dir, tri) ;
|
||||
|
||||
if(!IS_ALIGN16(out)){
|
||||
XMEMCPY(out, buff, size) ;
|
||||
}
|
||||
sz -= size ; in += size ; out += size ;
|
||||
}
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des_SetKey(Des* des, const byte* key, const byte* iv,int dir)
|
||||
{
|
||||
return DesSetKey(des, key, iv, dir, DES_CFG_SINGLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API void wc_Des_SetIV(Des* des, const byte* iv)
|
||||
{
|
||||
DesSetIV(des, iv, DES_CFG_SINGLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des3_SetKey(Des3* des, const byte* key, const byte* iv,int dir)
|
||||
{
|
||||
return DesSetKey((Des *)des, key, iv, dir, DES_CFG_TRIPLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des3_SetIV(Des3* des, const byte* iv)
|
||||
{
|
||||
return DesSetIV((Des *)des, iv, DES_CFG_TRIPLE) ;
|
||||
}
|
||||
|
||||
|
||||
WOLFSSL_API int wc_Des_CbcEncrypt(Des* des, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
return DesCbc(des, out, in, sz, DES_CFG_DIR_ENCRYPT, DES_CFG_SINGLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des_CbcDecrypt(Des* des, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
return DesCbc(des, out, in, sz, DES_CFG_DIR_DECRYPT, DES_CFG_SINGLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des_CbcDecryptWithKey(byte* out, const byte* in, word32 sz,
|
||||
const byte* key, const byte* iv)
|
||||
{ return 0 ;}
|
||||
|
||||
WOLFSSL_API int wc_Des3_CbcEncrypt(Des3* des, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
return DesCbc((Des *)des, out, in, sz, DES_CFG_DIR_ENCRYPT, DES_CFG_TRIPLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des3_CbcDecrypt(Des3* des, byte* out, const byte* in, word32 sz)
|
||||
{
|
||||
return DesCbc((Des *)des, out, in, sz, DES_CFG_DIR_DECRYPT, DES_CFG_TRIPLE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Des3_CbcDecryptWithKey(byte* out, const byte* in, word32 sz,
|
||||
const byte* key, const byte* iv)
|
||||
{ return 0 ; }
|
||||
|
||||
|
||||
#endif /* WOLFSSL_TI_CRYPT */
|
||||
|
||||
#endif /* NO_DES */
|
271
wolfcrypt/src/port/ti/ti-hash.c
Normal file
271
wolfcrypt/src/port/ti/ti-hash.c
Normal file
@ -0,0 +1,271 @@
|
||||
/* port/ti/ti-hash.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#include <wolfssl/wolfcrypt/types.h>
|
||||
|
||||
#if defined(WOLFSSL_TI_HASH)
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdint.h>
|
||||
|
||||
#include <wolfssl/wolfcrypt/error-crypt.h>
|
||||
#include <wolfssl/wolfcrypt/md5.h>
|
||||
#include <wolfssl/wolfcrypt/sha.h>
|
||||
#include <wolfssl/wolfcrypt/sha256.h>
|
||||
#include <wolfssl/wolfcrypt/port/ti/ti-hash.h>
|
||||
#include <wolfssl/wolfcrypt/port/ti/ti-ccm.h>
|
||||
#include <wolfssl/wolfcrypt/logging.h>
|
||||
|
||||
#ifndef TI_DUMMY_BUILD
|
||||
#include "inc/hw_memmap.h"
|
||||
#include "inc/hw_shamd5.h"
|
||||
#include "inc/hw_ints.h"
|
||||
#include "driverlib/shamd5.h"
|
||||
#include "driverlib/sysctl.h"
|
||||
#include "driverlib/rom_map.h"
|
||||
#include "driverlib/rom.h"
|
||||
#else
|
||||
#define SHAMD5_ALGO_MD5 1
|
||||
#define SHAMD5_ALGO_SHA1 2
|
||||
#define SHAMD5_ALGO_SHA256 3
|
||||
bool wolfSSL_TI_CCMInit(void) { return true ; }
|
||||
#endif
|
||||
|
||||
static int hashInit(wolfssl_TI_Hash *hash) {
|
||||
hash->used = 0 ;
|
||||
hash->msg = 0 ;
|
||||
hash->len = 0 ;
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static int hashUpdate(wolfssl_TI_Hash *hash, const byte* data, word32 len)
|
||||
{
|
||||
void *p ;
|
||||
|
||||
if((hash== NULL) || (data == NULL))return BAD_FUNC_ARG;
|
||||
|
||||
if(hash->len < hash->used+len) {
|
||||
if(hash->msg == NULL) {
|
||||
p = XMALLOC(hash->used+len, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
} else {
|
||||
p = XREALLOC(hash->msg, hash->used+len, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
}
|
||||
if(p == 0)return 1 ;
|
||||
hash->msg = p ;
|
||||
hash->len = hash->used+len ;
|
||||
}
|
||||
XMEMCPY(hash->msg+hash->used, data, len) ;
|
||||
hash->used += len ;
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static int hashGetHash(wolfssl_TI_Hash *hash, byte* result, word32 algo, word32 hsize)
|
||||
{
|
||||
uint32_t h[16] ;
|
||||
#ifndef TI_DUMMY_BUILD
|
||||
wolfSSL_TI_lockCCM() ;
|
||||
ROM_SHAMD5Reset(SHAMD5_BASE);
|
||||
ROM_SHAMD5ConfigSet(SHAMD5_BASE, algo);
|
||||
ROM_SHAMD5DataProcess(SHAMD5_BASE,
|
||||
(uint32_t *)hash->msg, hash->used, h);
|
||||
wolfSSL_TI_unlockCCM() ;
|
||||
#else
|
||||
(void) hash ;
|
||||
(void) algo ;
|
||||
#endif
|
||||
XMEMCPY(result, h, hsize) ;
|
||||
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static int hashFinal(wolfssl_TI_Hash *hash, byte* result, word32 algo, word32 hsize)
|
||||
{
|
||||
hashGetHash(hash, result, algo, hsize) ;
|
||||
XFREE(hash->msg, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
hashInit(hash) ;
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
static int hashHash(const byte* data, word32 len, byte* hash, word32 algo, word32 hsize)
|
||||
{
|
||||
int ret = 0;
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
wolfssl_TI_Hash* hash_desc;
|
||||
#else
|
||||
wolfssl_TI_Hash hash_desc[1];
|
||||
#endif
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
hash_desc = (wolfssl_TI_Hash*)XMALLOC(sizeof(wolfssl_TI_Hash), NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
if (hash_desc == NULL)
|
||||
return MEMORY_E;
|
||||
#endif
|
||||
|
||||
if ((ret = hashInit(hash_desc)) != 0) {
|
||||
WOLFSSL_MSG("Hash Init failed");
|
||||
}
|
||||
else {
|
||||
hashUpdate(hash_desc, data, len);
|
||||
hashFinal(hash_desc, hash, algo, hsize);
|
||||
}
|
||||
|
||||
#ifdef WOLFSSL_SMALL_STACK
|
||||
XFREE(hash, NULL, DYNAMIC_TYPE_TMP_BUFFER);
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
#if !defined(NO_MD5)
|
||||
WOLFSSL_API void wc_InitMd5(Md5* md5)
|
||||
{
|
||||
if (md5 == NULL)
|
||||
return ;
|
||||
if(!wolfSSL_TI_CCMInit())return ;
|
||||
hashInit((wolfssl_TI_Hash *)md5) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API void wc_Md5Update(Md5* md5, const byte* data, word32 len)
|
||||
{
|
||||
hashUpdate((wolfssl_TI_Hash *)md5, data, len) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API void wc_Md5Final(Md5* md5, byte* hash)
|
||||
{
|
||||
hashFinal((wolfssl_TI_Hash *)md5, hash, SHAMD5_ALGO_MD5, MD5_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API void wc_Md5GetHash(Md5* md5, byte* hash)
|
||||
{
|
||||
hashGetHash(md5, hash, SHAMD5_ALGO_MD5, MD5_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Md5Hash(const byte*data, word32 len, byte*hash)
|
||||
{
|
||||
return hashHash(data, len, hash, SHAMD5_ALGO_MD5, MD5_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
#endif /* NO_MD5 */
|
||||
|
||||
#if !defined(NO_SHA)
|
||||
WOLFSSL_API int wc_InitSha(Sha* sha)
|
||||
{
|
||||
if (sha == NULL)
|
||||
return 1 ;
|
||||
if(!wolfSSL_TI_CCMInit())return 1 ;
|
||||
return hashInit((wolfssl_TI_Hash *)sha) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_ShaUpdate(Sha* sha, const byte* data, word32 len)
|
||||
{
|
||||
return hashUpdate((wolfssl_TI_Hash *)sha, data, len) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_ShaFinal(Sha* sha, byte* hash)
|
||||
{
|
||||
return hashFinal((wolfssl_TI_Hash *)sha, hash, SHAMD5_ALGO_SHA1, SHA_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_ShaGetHash(Sha* sha, byte* hash)
|
||||
{
|
||||
return hashGetHash(sha, hash, SHAMD5_ALGO_SHA1, SHA_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_ShaHash(const byte*data, word32 len, byte*hash)
|
||||
{
|
||||
return hashHash(data, len, hash, SHAMD5_ALGO_SHA1, SHA_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
#endif /* NO_SHA */
|
||||
|
||||
#if defined(HAVE_SHA224)
|
||||
WOLFSSL_API int wc_InitSha224(Sha224* sha224)
|
||||
{
|
||||
if (sha224 == NULL)
|
||||
return 1 ;
|
||||
if(!wolfSSL_TI_CCMInit())return 1 ;
|
||||
return hashInit((wolfssl_TI_Hash *)sha224) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha224Update(Sha224* sha224, const byte* data, word32 len)
|
||||
{
|
||||
return hashUpdate((wolfssl_TI_Hash *)sha224, data, len) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha224Final(Sha224* sha224, byte* hash)
|
||||
{
|
||||
return hashFinal((wolfssl_TI_Hash *)sha224, hash, SHAMD5_ALGO_SHA224, SHA224_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha224GetHash(Sha224* sha224, byte* hash)
|
||||
{
|
||||
return hashGetHash(sha224, hash, SHAMD5_ALGO_SHA224, SHA224_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha224Hash(const byte* data, word32 len, byte*hash)
|
||||
{
|
||||
return hashHash(data, len, hash, SHAMD5_ALGO_SHA224, SHA224_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
#endif /* HAVE_SHA224 */
|
||||
|
||||
#if !defined(NO_SHA256)
|
||||
WOLFSSL_API int wc_InitSha256(Sha256* sha256)
|
||||
{
|
||||
if (sha256 == NULL)
|
||||
return 1 ;
|
||||
if(!wolfSSL_TI_CCMInit())return 1 ;
|
||||
return hashInit((wolfssl_TI_Hash *)sha256) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha256Update(Sha256* sha256, const byte* data, word32 len)
|
||||
{
|
||||
return hashUpdate((wolfssl_TI_Hash *)sha256, data, len) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha256Final(Sha256* sha256, byte* hash)
|
||||
{
|
||||
return hashFinal((wolfssl_TI_Hash *)sha256, hash, SHAMD5_ALGO_SHA256, SHA256_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha256GetHash(Sha256* sha256, byte* hash)
|
||||
{
|
||||
return hashGetHash(sha256, hash, SHAMD5_ALGO_SHA256, SHA256_DIGEST_SIZE) ;
|
||||
}
|
||||
|
||||
WOLFSSL_API int wc_Sha256Hash(const byte* data, word32 len, byte*hash)
|
||||
{
|
||||
return hashHash(data, len, hash, SHAMD5_ALGO_SHA256, SHA256_DIGEST_SIZE) ;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
@ -64,6 +64,10 @@
|
||||
|
||||
#else /* else build without fips */
|
||||
|
||||
#if defined(WOLFSSL_TI_HASH)
|
||||
/* #include <wolfcrypt/src/port/ti/ti-hash.c> included by wc_port.c */
|
||||
#else
|
||||
|
||||
#ifdef WOLFSSL_PIC32MZ_HASH
|
||||
#define wc_InitSha wc_InitSha_sw
|
||||
#define wc_ShaUpdate wc_ShaUpdate_sw
|
||||
@ -447,6 +451,8 @@ int wc_ShaHash(const byte* data, word32 len, byte* hash)
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
#endif /* HAVE_FIPS */
|
||||
#endif /* WOLFSSL_TI_HASH */
|
||||
#endif /* NO_SHA */
|
||||
|
||||
|
7
wolfcrypt/src/sha256.c
Executable file → Normal file
7
wolfcrypt/src/sha256.c
Executable file → Normal file
@ -56,6 +56,10 @@ int wc_Sha256Hash(const byte* data, word32 len, byte* out)
|
||||
|
||||
#else /* else build without fips */
|
||||
|
||||
#if !defined(NO_SHA256) && defined(WOLFSSL_TI_HASH)
|
||||
/* #include <wolfcrypt/src/port/ti/ti-hash.c> included by wc_port.c */
|
||||
#else
|
||||
|
||||
#if !defined (ALIGN32)
|
||||
#if defined (__GNUC__)
|
||||
#define ALIGN32 __attribute__ ( (aligned (32)))
|
||||
@ -1753,7 +1757,10 @@ static int Transform_AVX2(Sha256* sha256)
|
||||
}
|
||||
|
||||
#endif /* HAVE_INTEL_AVX2 */
|
||||
|
||||
#endif /* HAVE_FIPS */
|
||||
|
||||
#endif /* WOLFSSL_TI_HAHS */
|
||||
|
||||
#endif /* NO_SHA256 */
|
||||
|
||||
|
@ -649,4 +649,8 @@ int UnLockMutex(wolfSSL_Mutex *m)
|
||||
#endif /* USE_WINDOWS_API */
|
||||
|
||||
#endif /* SINGLE_THREADED */
|
||||
|
||||
|
||||
#if defined(WOLFSSL_TI_CRYPT) || defined(WOLFSSL_TI_HASH)
|
||||
#include <wolfcrypt/src/port/ti/ti-ccm.c> /* initialize and Mutex for TI Crypt Engine */
|
||||
#include <wolfcrypt/src/port/ti/ti-hash.c> /* md5, sha1, sha224, sha256 */
|
||||
#endif
|
||||
|
@ -88,6 +88,8 @@
|
||||
#include <wolfssl/wolfcrypt/ripemd.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/hash.h>
|
||||
|
||||
#ifdef WOLFSSL_CALLBACKS
|
||||
#include <wolfssl/callbacks.h>
|
||||
#include <signal.h>
|
||||
|
@ -41,6 +41,13 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/socket.h>
|
||||
#include <ti/sysbios/knl/Task.h>
|
||||
struct hostent {
|
||||
char *h_name; /* official name of host */
|
||||
char **h_aliases; /* alias list */
|
||||
int h_addrtype; /* host address type */
|
||||
int h_length; /* length of address */
|
||||
char **h_addr_list; /* list of addresses from name server */
|
||||
};
|
||||
#define SOCKET_T int
|
||||
#else
|
||||
#include <string.h>
|
||||
@ -410,6 +417,8 @@ static INLINE void build_addr(SOCKADDR_IN_T* addr, const char* peer,
|
||||
#ifdef WOLFSSL_MDK_ARM
|
||||
int err;
|
||||
struct hostent* entry = gethostbyname(peer, &err);
|
||||
#elif defined(WOLFSSL_TIRTOS)
|
||||
struct hostent* entry = DNSGetHostByName(peer);
|
||||
#else
|
||||
struct hostent* entry = gethostbyname(peer);
|
||||
#endif
|
||||
@ -609,7 +618,7 @@ static INLINE void tcp_listen(SOCKET_T* sockfd, word16* port, int useAnyAddr,
|
||||
if (listen(*sockfd, 5) != 0)
|
||||
err_sys("tcp listen failed");
|
||||
}
|
||||
#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API)
|
||||
#if (defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API)) && !defined(WOLFSSL_TIRTOS)
|
||||
if (*port == 0) {
|
||||
socklen_t len = sizeof(addr);
|
||||
if (getsockname(*sockfd, (struct sockaddr*)&addr, &len) == 0) {
|
||||
@ -667,7 +676,7 @@ static INLINE void udp_accept(SOCKET_T* sockfd, SOCKET_T* clientfd,
|
||||
if (bind(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
|
||||
err_sys("tcp bind failed");
|
||||
|
||||
#if defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API)
|
||||
#if (defined(NO_MAIN_DRIVER) && !defined(USE_WINDOWS_API)) && !defined(WOLFSSL_TIRTOS)
|
||||
if (port == 0) {
|
||||
socklen_t len = sizeof(addr);
|
||||
if (getsockname(*sockfd, (struct sockaddr*)&addr, &len) == 0) {
|
||||
|
@ -113,6 +113,9 @@ typedef struct Aes {
|
||||
word32 iv_ce [AES_BLOCK_SIZE /sizeof(word32)] ;
|
||||
int keylen ;
|
||||
#endif
|
||||
#ifdef WOLFSSL_TI_CRYPT
|
||||
int keylen ;
|
||||
#endif
|
||||
} Aes;
|
||||
|
||||
|
||||
|
35
wolfssl/wolfcrypt/hash.h
Normal file
35
wolfssl/wolfcrypt/hash.h
Normal file
@ -0,0 +1,35 @@
|
||||
/* hash.h
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef WOLF_CRYPT_HASH_H
|
||||
#define WOLF_CRYPT_HASH_H
|
||||
|
||||
#ifndef NO_MD5
|
||||
WOLFSSL_API void wc_Md5GetHash(Md5*, byte*);
|
||||
#endif
|
||||
#ifndef NO_SHA
|
||||
WOLFSSL_API int wc_ShaGetHash(Sha*, byte*);
|
||||
#endif
|
||||
#ifndef NO_SHA256
|
||||
WOLFSSL_API int wc_Sha256GetHash(Sha256*, byte*);
|
||||
#endif
|
||||
|
||||
#endif
|
@ -20,6 +20,7 @@ nobase_include_HEADERS+= \
|
||||
wolfssl/wolfcrypt/ge_operations.h \
|
||||
wolfssl/wolfcrypt/error-crypt.h \
|
||||
wolfssl/wolfcrypt/fips_test.h \
|
||||
wolfssl/wolfcrypt/hash.h \
|
||||
wolfssl/wolfcrypt/hc128.h \
|
||||
wolfssl/wolfcrypt/hmac.h \
|
||||
wolfssl/wolfcrypt/integer.h \
|
||||
@ -52,5 +53,7 @@ nobase_include_HEADERS+= \
|
||||
wolfssl/wolfcrypt/mpi_superclass.h
|
||||
|
||||
noinst_HEADERS+= \
|
||||
wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h
|
||||
wolfssl/wolfcrypt/port/pic32/pic32mz-crypt.h \
|
||||
wolfssl/wolfcrypt/port/ti/ti-hash.h \
|
||||
wolfssl/wolfcrypt/port/ti/ti-ccm.h
|
||||
|
||||
|
@ -37,7 +37,6 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
/* in bytes */
|
||||
enum {
|
||||
#ifdef STM32F2_HASH
|
||||
@ -53,6 +52,8 @@ enum {
|
||||
#include "port/pic32/pic32mz-crypt.h"
|
||||
#endif
|
||||
|
||||
#ifndef WOLFSSL_TI_HASH
|
||||
|
||||
/* MD5 digest */
|
||||
typedef struct Md5 {
|
||||
word32 buffLen; /* in bytes */
|
||||
@ -67,12 +68,15 @@ typedef struct Md5 {
|
||||
#endif
|
||||
} Md5;
|
||||
|
||||
#else /* WOLFSSL_TI_HASH */
|
||||
#include "wolfssl/wolfcrypt/port/ti/ti-hash.h"
|
||||
#endif
|
||||
|
||||
WOLFSSL_API void wc_InitMd5(Md5*);
|
||||
WOLFSSL_API void wc_Md5Update(Md5*, const byte*, word32);
|
||||
WOLFSSL_API void wc_Md5Final(Md5*, byte*);
|
||||
WOLFSSL_API int wc_Md5Hash(const byte*, word32, byte*);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
40
wolfssl/wolfcrypt/port/ti/ti-ccm.h
Normal file
40
wolfssl/wolfcrypt/port/ti/ti-ccm.h
Normal file
@ -0,0 +1,40 @@
|
||||
/* port/ti/ti_ccm.c
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <wolfssl/wolfcrypt/settings.h>
|
||||
|
||||
#if defined(WOLFSSL_TI_CRYPT) || defined(WOLFSSL_TI_HASH)
|
||||
|
||||
bool wolfSSL_TI_CCMInit(void) ;
|
||||
|
||||
#ifndef SINGLE_THREADED
|
||||
void wolfSSL_TI_lockCCM() ;
|
||||
void wolfSSL_TI_unlockCCM() ;
|
||||
#else
|
||||
#define wolfSSL_TI_lockCCM()
|
||||
#define wolfSSL_TI_unlockCCM()
|
||||
#endif
|
||||
|
||||
#endif
|
64
wolfssl/wolfcrypt/port/ti/ti-hash.h
Normal file
64
wolfssl/wolfcrypt/port/ti/ti-hash.h
Normal file
@ -0,0 +1,64 @@
|
||||
/* port/ti/ti-hash.h
|
||||
*
|
||||
* Copyright (C) 2006-2015 wolfSSL Inc.
|
||||
*
|
||||
* This file is part of wolfSSL. (formerly known as CyaSSL)
|
||||
*
|
||||
* wolfSSL is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* wolfSSL is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
|
||||
*/
|
||||
|
||||
#ifndef WOLF_CRYPT_TI_HASH_H
|
||||
#define WOLF_CRYPT_TI_HASH_H
|
||||
|
||||
#include <wolfssl/wolfcrypt/types.h>
|
||||
|
||||
#ifndef WOLFSSL_TI_INITBUFF
|
||||
#define WOLFSSL_TI_INITBUFF 64
|
||||
#endif
|
||||
|
||||
#define WOLFSSL_MAX_HASH_SIZE 64
|
||||
|
||||
typedef struct {
|
||||
byte *msg ;
|
||||
word32 used ;
|
||||
word32 len ;
|
||||
byte hash[WOLFSSL_MAX_HASH_SIZE] ;
|
||||
} wolfssl_TI_Hash ;
|
||||
|
||||
|
||||
#ifndef TI_HASH_TEST
|
||||
#if !defined(NO_MD5)
|
||||
typedef wolfssl_TI_Hash Md5 ;
|
||||
|
||||
#endif
|
||||
#if !defined(NO_SHA)
|
||||
typedef wolfssl_TI_Hash Sha ;
|
||||
#endif
|
||||
#if !defined(NO_SHA256)
|
||||
typedef wolfssl_TI_Hash Sha256 ;
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SHA224)
|
||||
typedef wolfssl_TI_Hash Sha224 ;
|
||||
#define SHA224_DIGEST_SIZE 28
|
||||
|
||||
WOLFSSL_API int wc_InitSha224(Sha224* sha224) ;
|
||||
WOLFSSL_API int wc_Sha224Update(Sha224* sha224, const byte* data, word32 len) ;
|
||||
WOLFSSL_API int wc_Sha224Final(Sha224* sha224, byte* hash) ;
|
||||
WOLFSSL_API int wc_Sha224Hash(const byte* data, word32 len, byte*hash) ;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
#endif /* WOLF_CRYPT_TI_HASH_H */
|
@ -156,17 +156,6 @@
|
||||
#define NO_FILESYSTEM
|
||||
#endif
|
||||
|
||||
#if defined(WOLFSSL_IAR_ARM)
|
||||
#define NO_MAIN_DRIVER
|
||||
#define SINGLE_THREADED
|
||||
#define USE_CERT_BUFFERS_1024
|
||||
#define BENCH_EMBEDDED
|
||||
#define NO_FILESYSTEM
|
||||
#define NO_WRITEV
|
||||
#define WOLFSSL_USER_IO
|
||||
#define BENCH_EMBEDDED
|
||||
#endif
|
||||
|
||||
#ifdef MICROCHIP_PIC32
|
||||
/* #define WOLFSSL_MICROCHIP_PIC32MZ */
|
||||
#define SIZEOF_LONG_LONG 8
|
||||
|
@ -51,6 +51,8 @@ enum {
|
||||
#include "port/pic32/pic32mz-crypt.h"
|
||||
#endif
|
||||
|
||||
#ifndef WOLFSSL_TI_HASH
|
||||
|
||||
/* Sha digest */
|
||||
typedef struct Sha {
|
||||
word32 buffLen; /* in bytes */
|
||||
@ -64,6 +66,11 @@ typedef struct Sha {
|
||||
pic32mz_desc desc; /* Crypt Engine descripter */
|
||||
#endif
|
||||
} Sha;
|
||||
|
||||
#else /* WOLFSSL_TI_HASH */
|
||||
#include "wolfssl/wolfcrypt/port/ti/ti-hash.h"
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_FIPS */
|
||||
|
||||
WOLFSSL_API int wc_InitSha(Sha*);
|
||||
|
@ -51,6 +51,7 @@ enum {
|
||||
SHA256_PAD_SIZE = 56
|
||||
};
|
||||
|
||||
#ifndef WOLFSSL_TI_HASH
|
||||
|
||||
/* Sha256 digest */
|
||||
typedef struct Sha256 {
|
||||
@ -64,6 +65,10 @@ typedef struct Sha256 {
|
||||
#endif
|
||||
} Sha256;
|
||||
|
||||
#else /* WOLFSSL_TI_HASH */
|
||||
#include "wolfssl/wolfcrypt/port/ti/ti-hash.h"
|
||||
#endif
|
||||
|
||||
#endif /* HAVE_FIPS */
|
||||
|
||||
WOLFSSL_API int wc_InitSha256(Sha256*);
|
||||
|
Reference in New Issue
Block a user