diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/CyaSSL-Lib.eww b/IDE/IAR-EWARM/Projects/CyaSSL-Lib/CyaSSL-Lib.eww
deleted file mode 100644
index 9702cae02..000000000
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/CyaSSL-Lib.eww
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
- $WS_DIR$\CyaSSL-Lib.ewp
-
-
- $WS_DIR$\wolfCrypt-benchmark.ewp
-
-
- $WS_DIR$\wolfCrypt-test.ewp
-
-
-
-
-
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.ewp b/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.ewp
deleted file mode 100644
index d61e0a0e9..000000000
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.ewp
+++ /dev/null
@@ -1,1877 +0,0 @@
-
-
-
- 2
-
- Debug
-
- ARM
-
- 1
-
- General
- 3
-
- 22
- 1
- 1
-
- ExePath
- Debug\Exe
-
-
- ObjPath
- Debug\Obj
-
-
- ListPath
- Debug\List
-
-
- Variant
- 20
- 38
-
-
- GEndianMode
- 0
-
-
- Input variant
- 3
- 1
-
-
- Input description
- Full formatting.
-
-
- Output variant
- 2
- 1
-
-
- Output description
- Full formatting.
-
-
- GOutputBinary
- 0
-
-
- FPU
- 2
- 0
-
-
- OGCoreOrChip
- 0
-
-
- GRuntimeLibSelect
- 0
- 1
-
-
- GRuntimeLibSelectSlave
- 0
- 1
-
-
- RTDescription
- 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.
-
-
- OGProductVersion
- 5.10.0.159
-
-
- OGLastSavedByProductVersion
- 6.60.1.5099
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
- 0
-
-
- OGChipSelectEditMenu
- Default None
-
-
- GenLowLevelInterface
- 1
-
-
- GEndianModeBE
- 1
-
-
- OGBufferedTerminalOutput
- 0
-
-
- GenStdoutInterface
- 0
-
-
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- GeneralMisraVer
- 0
-
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- RTConfigPath2
- $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
-
-
- GFPUCoreSlave
- 20
- 38
-
-
- GBECoreSlave
- 20
- 38
-
-
- OGUseCmsis
- 0
-
-
- OGUseCmsisDspLib
- 0
-
-
- GRuntimeLibThreads
- 0
-
-
-
-
- ICCARM
- 2
-
- 29
- 1
- 1
-
- CCOptimizationNoSizeConstraints
- 0
-
-
- CCDefines
-
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
- 0
-
-
- CCDiagSuppress
- Pa050
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
- 1
-
-
- CCAllowList
- 1
- 0000000
-
-
- CCDebugInfo
- 1
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
- $FILE_BNAME$.o
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
- $PROJ_DIR$\..\..\..\..
-
-
- CCStdIncCheck
- 0
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 0
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 1
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 1
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- CCPosIndRopi
- 0
-
-
- CCPosIndRwpi
- 0
-
-
- CCPosIndNoDynInit
- 0
-
-
- IccLang
- 0
-
-
- IccCDialect
- 1
-
-
- IccAllowVLA
- 0
-
-
- IccCppDialect
- 1
-
-
- IccExceptions
- 1
-
-
- IccRTTI
- 1
-
-
- IccStaticDestr
- 1
-
-
- IccCppInlineSemantics
- 0
-
-
- IccCmsis
- 1
-
-
- IccFloatSemantics
- 0
-
-
- CCNoLiteralPool
- 0
-
-
-
-
- AARM
- 2
-
- 9
- 1
- 1
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 1
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
- $FILE_BNAME$.o
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AUserIncludes
-
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
- AsmNoLiteralPool
- 0
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 1
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
- c.srec
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 16
- 1
- 1
-
- IlinkOutputFile
- benchmark.out
-
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 1
-
-
- IlinkIcfFile
- $PROJ_DIR$\wolfCrypt-benchmark.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
- $PROJ_DIR$\Debug\Exe\CyaSSL-Lib.a
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
- __iar_program_start
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
- IlinkLogAutoLibSelect
- 0
-
-
- IlinkLogRedirSymbols
- 0
-
-
- IlinkLogUnusedFragments
- 0
-
-
- IlinkCrcReverseByteOrder
- 0
-
-
- IlinkCrcUseAsInput
- 1
-
-
- IlinkOptInline
- 0
-
-
- IlinkOptExceptionsAllow
- 1
-
-
- IlinkOptExceptionsForce
- 0
-
-
- IlinkCmsis
- 1
-
-
- IlinkOptMergeDuplSections
- 0
-
-
- IlinkOptUseVfe
- 1
-
-
- IlinkOptForceVfe
- 0
-
-
- IlinkStackAnalysisEnable
- 0
-
-
- IlinkStackControlFile
-
-
-
- IlinkStackCallGraphFile
-
-
-
- CrcAlgorithm
- 0
- 1
-
-
- CrcUnitSize
- 0
- 0
-
-
- IlinkThreadsSlave
- 1
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 1
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- ARM
-
- 0
-
- General
- 3
-
- 22
- 1
- 0
-
- ExePath
- Release\Exe
-
-
- ObjPath
- Release\Obj
-
-
- ListPath
- Release\List
-
-
- Variant
- 20
- 0
-
-
- GEndianMode
- 0
-
-
- Input variant
- 3
- 1
-
-
- Input description
- Full formatting.
-
-
- Output variant
- 2
- 1
-
-
- Output description
- Full formatting.
-
-
- GOutputBinary
- 0
-
-
- FPU
- 2
- 0
-
-
- OGCoreOrChip
- 0
-
-
- GRuntimeLibSelect
- 0
- 1
-
-
- GRuntimeLibSelectSlave
- 0
- 1
-
-
- RTDescription
- 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.
-
-
- OGProductVersion
- 5.10.0.159
-
-
- OGLastSavedByProductVersion
- 6.30.1.53141
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
- 0
-
-
- OGChipSelectEditMenu
- default None
-
-
- GenLowLevelInterface
- 0
-
-
- GEndianModeBE
- 0
-
-
- OGBufferedTerminalOutput
- 0
-
-
- GenStdoutInterface
- 0
-
-
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- GeneralMisraVer
- 0
-
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- RTConfigPath2
- $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
-
-
- GFPUCoreSlave
- 20
- 0
-
-
- GBECoreSlave
- 20
- 0
-
-
- OGUseCmsis
- 0
-
-
- OGUseCmsisDspLib
- 0
-
-
- GRuntimeLibThreads
- 0
-
-
-
-
- ICCARM
- 2
-
- 29
- 1
- 0
-
- CCOptimizationNoSizeConstraints
- 0
-
-
- CCDefines
- NDEBUG
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
- 0
-
-
- CCDiagSuppress
-
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
- 1
-
-
- CCAllowList
- 1
- 1111111
-
-
- CCDebugInfo
- 0
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
- $FILE_BNAME$.o
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
-
-
-
- CCStdIncCheck
- 0
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 1
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 3
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 3
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- CCPosIndRopi
- 0
-
-
- CCPosIndRwpi
- 0
-
-
- CCPosIndNoDynInit
- 0
-
-
- IccLang
- 0
-
-
- IccCDialect
- 1
-
-
- IccAllowVLA
- 0
-
-
- IccCppDialect
- 1
-
-
- IccExceptions
- 1
-
-
- IccRTTI
- 1
-
-
- IccStaticDestr
- 1
-
-
- IccCppInlineSemantics
- 0
-
-
- IccCmsis
- 1
-
-
- IccFloatSemantics
- 0
-
-
- CCNoLiteralPool
- 0
-
-
-
-
- AARM
- 2
-
- 9
- 1
- 0
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 0
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
- $FILE_BNAME$.o
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AUserIncludes
-
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
- AsmNoLiteralPool
- 0
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 0
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
- c.srec
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 16
- 1
- 0
-
- IlinkOutputFile
- c.out
-
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 0
-
-
- IlinkIcfFile
- $TOOLKIT_DIR$\CONFIG\generic.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
-
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
-
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
- IlinkLogAutoLibSelect
- 0
-
-
- IlinkLogRedirSymbols
- 0
-
-
- IlinkLogUnusedFragments
- 0
-
-
- IlinkCrcReverseByteOrder
- 0
-
-
- IlinkCrcUseAsInput
- 1
-
-
- IlinkOptInline
- 1
-
-
- IlinkOptExceptionsAllow
- 1
-
-
- IlinkOptExceptionsForce
- 0
-
-
- IlinkCmsis
- 1
-
-
- IlinkOptMergeDuplSections
- 0
-
-
- IlinkOptUseVfe
- 1
-
-
- IlinkOptForceVfe
- 0
-
-
- IlinkStackAnalysisEnable
- 0
-
-
- IlinkStackControlFile
-
-
-
- IlinkStackCallGraphFile
-
-
-
- CrcAlgorithm
- 0
- 1
-
-
- CrcUnitSize
- 0
- 0
-
-
- IlinkThreadsSlave
- 1
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 0
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- $PROJ_DIR$\benchmark-main.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\benchmark\benchmark.c
-
-
-
-
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.icf b/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.icf
deleted file mode 100644
index a4ab009ee..000000000
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.icf
+++ /dev/null
@@ -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 };
\ No newline at end of file
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.ewp b/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.ewp
deleted file mode 100644
index 60e146e43..000000000
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.ewp
+++ /dev/null
@@ -1,1877 +0,0 @@
-
-
-
- 2
-
- Debug
-
- ARM
-
- 1
-
- General
- 3
-
- 22
- 1
- 1
-
- ExePath
- Debug\Exe
-
-
- ObjPath
- Debug\Obj
-
-
- ListPath
- Debug\List
-
-
- Variant
- 20
- 38
-
-
- GEndianMode
- 0
-
-
- Input variant
- 3
- 1
-
-
- Input description
- Full formatting.
-
-
- Output variant
- 2
- 1
-
-
- Output description
- Full formatting.
-
-
- GOutputBinary
- 0
-
-
- FPU
- 2
- 0
-
-
- OGCoreOrChip
- 0
-
-
- GRuntimeLibSelect
- 0
- 2
-
-
- GRuntimeLibSelectSlave
- 0
- 2
-
-
- RTDescription
- Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.
-
-
- OGProductVersion
- 5.10.0.159
-
-
- OGLastSavedByProductVersion
- 6.60.1.5099
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
- 0
-
-
- OGChipSelectEditMenu
- Default None
-
-
- GenLowLevelInterface
- 1
-
-
- GEndianModeBE
- 1
-
-
- OGBufferedTerminalOutput
- 0
-
-
- GenStdoutInterface
- 0
-
-
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- GeneralMisraVer
- 0
-
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- RTConfigPath2
- $TOOLKIT_DIR$\INC\c\DLib_Config_Full.h
-
-
- GFPUCoreSlave
- 20
- 38
-
-
- GBECoreSlave
- 20
- 38
-
-
- OGUseCmsis
- 0
-
-
- OGUseCmsisDspLib
- 0
-
-
- GRuntimeLibThreads
- 0
-
-
-
-
- ICCARM
- 2
-
- 29
- 1
- 1
-
- CCOptimizationNoSizeConstraints
- 0
-
-
- CCDefines
-
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
- 0
-
-
- CCDiagSuppress
- Pa050
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
- 1
-
-
- CCAllowList
- 1
- 0000000
-
-
- CCDebugInfo
- 1
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
- $FILE_BNAME$.o
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
- $PROJ_DIR$\..\..\..\..
-
-
- CCStdIncCheck
- 0
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 0
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 1
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 1
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- CCPosIndRopi
- 0
-
-
- CCPosIndRwpi
- 0
-
-
- CCPosIndNoDynInit
- 0
-
-
- IccLang
- 0
-
-
- IccCDialect
- 1
-
-
- IccAllowVLA
- 0
-
-
- IccCppDialect
- 1
-
-
- IccExceptions
- 1
-
-
- IccRTTI
- 1
-
-
- IccStaticDestr
- 1
-
-
- IccCppInlineSemantics
- 0
-
-
- IccCmsis
- 1
-
-
- IccFloatSemantics
- 0
-
-
- CCNoLiteralPool
- 0
-
-
-
-
- AARM
- 2
-
- 9
- 1
- 1
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 1
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
- $FILE_BNAME$.o
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AUserIncludes
-
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
- AsmNoLiteralPool
- 0
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 1
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
- wolfCrypt-test.srec
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 16
- 1
- 1
-
- IlinkOutputFile
- test.out
-
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 1
-
-
- IlinkIcfFile
- $PROJ_DIR$\wolfCrypt-test.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
- $PROJ_DIR$\Debug\Exe\CyaSSL-Lib.a
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
- __iar_program_start
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
- IlinkLogAutoLibSelect
- 0
-
-
- IlinkLogRedirSymbols
- 0
-
-
- IlinkLogUnusedFragments
- 0
-
-
- IlinkCrcReverseByteOrder
- 0
-
-
- IlinkCrcUseAsInput
- 1
-
-
- IlinkOptInline
- 0
-
-
- IlinkOptExceptionsAllow
- 1
-
-
- IlinkOptExceptionsForce
- 0
-
-
- IlinkCmsis
- 1
-
-
- IlinkOptMergeDuplSections
- 0
-
-
- IlinkOptUseVfe
- 1
-
-
- IlinkOptForceVfe
- 0
-
-
- IlinkStackAnalysisEnable
- 0
-
-
- IlinkStackControlFile
-
-
-
- IlinkStackCallGraphFile
-
-
-
- CrcAlgorithm
- 0
- 1
-
-
- CrcUnitSize
- 0
- 0
-
-
- IlinkThreadsSlave
- 1
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 1
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- Release
-
- ARM
-
- 0
-
- General
- 3
-
- 22
- 1
- 0
-
- ExePath
- Release\Exe
-
-
- ObjPath
- Release\Obj
-
-
- ListPath
- Release\List
-
-
- Variant
- 20
- 0
-
-
- GEndianMode
- 0
-
-
- Input variant
- 3
- 1
-
-
- Input description
- Full formatting.
-
-
- Output variant
- 2
- 1
-
-
- Output description
- Full formatting.
-
-
- GOutputBinary
- 0
-
-
- FPU
- 2
- 0
-
-
- OGCoreOrChip
- 0
-
-
- GRuntimeLibSelect
- 0
- 1
-
-
- GRuntimeLibSelectSlave
- 0
- 1
-
-
- RTDescription
- 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.
-
-
- OGProductVersion
- 5.10.0.159
-
-
- OGLastSavedByProductVersion
- 6.30.1.53141
-
-
- GeneralEnableMisra
- 0
-
-
- GeneralMisraVerbose
- 0
-
-
- OGChipSelectEditMenu
- default None
-
-
- GenLowLevelInterface
- 0
-
-
- GEndianModeBE
- 0
-
-
- OGBufferedTerminalOutput
- 0
-
-
- GenStdoutInterface
- 0
-
-
- GeneralMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- GeneralMisraVer
- 0
-
-
- GeneralMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- RTConfigPath2
- $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
-
-
- GFPUCoreSlave
- 20
- 0
-
-
- GBECoreSlave
- 20
- 0
-
-
- OGUseCmsis
- 0
-
-
- OGUseCmsisDspLib
- 0
-
-
- GRuntimeLibThreads
- 0
-
-
-
-
- ICCARM
- 2
-
- 29
- 1
- 0
-
- CCOptimizationNoSizeConstraints
- 0
-
-
- CCDefines
- NDEBUG
-
-
- CCPreprocFile
- 0
-
-
- CCPreprocComments
- 0
-
-
- CCPreprocLine
- 0
-
-
- CCListCFile
- 0
-
-
- CCListCMnemonics
- 0
-
-
- CCListCMessages
- 0
-
-
- CCListAssFile
- 0
-
-
- CCListAssSource
- 0
-
-
- CCEnableRemarks
- 0
-
-
- CCDiagSuppress
-
-
-
- CCDiagRemark
-
-
-
- CCDiagWarning
-
-
-
- CCDiagError
-
-
-
- CCObjPrefix
- 1
-
-
- CCAllowList
- 1
- 1111111
-
-
- CCDebugInfo
- 0
-
-
- IEndianMode
- 1
-
-
- IProcessor
- 1
-
-
- IExtraOptionsCheck
- 0
-
-
- IExtraOptions
-
-
-
- CCLangConformance
- 0
-
-
- CCSignedPlainChar
- 1
-
-
- CCRequirePrototypes
- 0
-
-
- CCMultibyteSupport
- 0
-
-
- CCDiagWarnAreErr
- 0
-
-
- CCCompilerRuntimeInfo
- 0
-
-
- IFpuProcessor
- 1
-
-
- OutputFile
- $FILE_BNAME$.o
-
-
- CCLibConfigHeader
- 1
-
-
- PreInclude
-
-
-
- CompilerMisraOverride
- 0
-
-
- CCIncludePath2
-
-
-
- CCStdIncCheck
- 0
-
-
- CCCodeSection
- .text
-
-
- IInterwork2
- 1
-
-
- IProcessorMode2
- 1
-
-
- CCOptLevel
- 3
-
-
- CCOptStrategy
- 0
- 0
-
-
- CCOptLevelSlave
- 3
-
-
- CompilerMisraRules98
- 0
- 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
-
-
- CompilerMisraRules04
- 0
- 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
-
-
- CCPosIndRopi
- 0
-
-
- CCPosIndRwpi
- 0
-
-
- CCPosIndNoDynInit
- 0
-
-
- IccLang
- 0
-
-
- IccCDialect
- 1
-
-
- IccAllowVLA
- 0
-
-
- IccCppDialect
- 1
-
-
- IccExceptions
- 1
-
-
- IccRTTI
- 1
-
-
- IccStaticDestr
- 1
-
-
- IccCppInlineSemantics
- 0
-
-
- IccCmsis
- 1
-
-
- IccFloatSemantics
- 0
-
-
- CCNoLiteralPool
- 0
-
-
-
-
- AARM
- 2
-
- 9
- 1
- 0
-
- AObjPrefix
- 1
-
-
- AEndian
- 1
-
-
- ACaseSensitivity
- 1
-
-
- MacroChars
- 0
- 0
-
-
- AWarnEnable
- 0
-
-
- AWarnWhat
- 0
-
-
- AWarnOne
-
-
-
- AWarnRange1
-
-
-
- AWarnRange2
-
-
-
- ADebug
- 0
-
-
- AltRegisterNames
- 0
-
-
- ADefines
-
-
-
- AList
- 0
-
-
- AListHeader
- 1
-
-
- AListing
- 1
-
-
- Includes
- 0
-
-
- MacDefs
- 0
-
-
- MacExps
- 1
-
-
- MacExec
- 0
-
-
- OnlyAssed
- 0
-
-
- MultiLine
- 0
-
-
- PageLengthCheck
- 0
-
-
- PageLength
- 80
-
-
- TabSpacing
- 8
-
-
- AXRef
- 0
-
-
- AXRefDefines
- 0
-
-
- AXRefInternal
- 0
-
-
- AXRefDual
- 0
-
-
- AProcessor
- 1
-
-
- AFpuProcessor
- 1
-
-
- AOutputFile
- $FILE_BNAME$.o
-
-
- AMultibyteSupport
- 0
-
-
- ALimitErrorsCheck
- 0
-
-
- ALimitErrorsEdit
- 100
-
-
- AIgnoreStdInclude
- 0
-
-
- AUserIncludes
-
-
-
- AExtraOptionsCheckV2
- 0
-
-
- AExtraOptionsV2
-
-
-
- AsmNoLiteralPool
- 0
-
-
-
-
- OBJCOPY
- 0
-
- 1
- 1
- 0
-
- OOCOutputFormat
- 2
- 0
-
-
- OCOutputOverride
- 0
-
-
- OOCOutputFile
- c.srec
-
-
- OOCCommandLineProducer
- 1
-
-
- OOCObjCopyEnable
- 0
-
-
-
-
- CUSTOM
- 3
-
-
-
-
-
-
- BICOMP
- 0
-
-
-
- BUILDACTION
- 1
-
-
-
-
-
-
- ILINK
- 0
-
- 16
- 1
- 0
-
- IlinkOutputFile
- c.out
-
-
- IlinkLibIOConfig
- 1
-
-
- XLinkMisraHandler
- 0
-
-
- IlinkInputFileSlave
- 0
-
-
- IlinkDebugInfoEnable
- 1
-
-
- IlinkKeepSymbols
-
-
-
- IlinkRawBinaryFile
-
-
-
- IlinkRawBinarySymbol
-
-
-
- IlinkRawBinarySegment
-
-
-
- IlinkRawBinaryAlign
-
-
-
- IlinkDefines
-
-
-
- IlinkConfigDefines
-
-
-
- IlinkMapFile
- 0
-
-
- IlinkLogFile
- 0
-
-
- IlinkLogInitialization
- 0
-
-
- IlinkLogModule
- 0
-
-
- IlinkLogSection
- 0
-
-
- IlinkLogVeneer
- 0
-
-
- IlinkIcfOverride
- 0
-
-
- IlinkIcfFile
- $TOOLKIT_DIR$\CONFIG\generic.icf
-
-
- IlinkIcfFileSlave
-
-
-
- IlinkEnableRemarks
- 0
-
-
- IlinkSuppressDiags
-
-
-
- IlinkTreatAsRem
-
-
-
- IlinkTreatAsWarn
-
-
-
- IlinkTreatAsErr
-
-
-
- IlinkWarningsAreErrors
- 0
-
-
- IlinkUseExtraOptions
- 0
-
-
- IlinkExtraOptions
-
-
-
- IlinkLowLevelInterfaceSlave
- 1
-
-
- IlinkAutoLibEnable
- 1
-
-
- IlinkAdditionalLibs
-
-
-
- IlinkOverrideProgramEntryLabel
- 0
-
-
- IlinkProgramEntryLabelSelect
- 0
-
-
- IlinkProgramEntryLabel
-
-
-
- DoFill
- 0
-
-
- FillerByte
- 0xFF
-
-
- FillerStart
- 0x0
-
-
- FillerEnd
- 0x0
-
-
- CrcSize
- 0
- 1
-
-
- CrcAlign
- 1
-
-
- CrcPoly
- 0x11021
-
-
- CrcCompl
- 0
- 0
-
-
- CrcBitOrder
- 0
- 0
-
-
- CrcInitialValue
- 0x0
-
-
- DoCrc
- 0
-
-
- IlinkBE8Slave
- 1
-
-
- IlinkBufferedTerminalOutput
- 1
-
-
- IlinkStdoutInterfaceSlave
- 1
-
-
- CrcFullSize
- 0
-
-
- IlinkIElfToolPostProcess
- 0
-
-
- IlinkLogAutoLibSelect
- 0
-
-
- IlinkLogRedirSymbols
- 0
-
-
- IlinkLogUnusedFragments
- 0
-
-
- IlinkCrcReverseByteOrder
- 0
-
-
- IlinkCrcUseAsInput
- 1
-
-
- IlinkOptInline
- 1
-
-
- IlinkOptExceptionsAllow
- 1
-
-
- IlinkOptExceptionsForce
- 0
-
-
- IlinkCmsis
- 1
-
-
- IlinkOptMergeDuplSections
- 0
-
-
- IlinkOptUseVfe
- 1
-
-
- IlinkOptForceVfe
- 0
-
-
- IlinkStackAnalysisEnable
- 0
-
-
- IlinkStackControlFile
-
-
-
- IlinkStackCallGraphFile
-
-
-
- CrcAlgorithm
- 0
- 1
-
-
- CrcUnitSize
- 0
- 0
-
-
- IlinkThreadsSlave
- 1
-
-
-
-
- IARCHIVE
- 0
-
- 0
- 1
- 0
-
- IarchiveInputs
-
-
-
- IarchiveOverride
- 0
-
-
- IarchiveOutput
- ###Unitialized###
-
-
-
-
- BILINK
- 0
-
-
-
-
- $PROJ_DIR$\test-main.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\test\test.c
-
-
-
-
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.icf b/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.icf
deleted file mode 100644
index 211d253d4..000000000
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.icf
+++ /dev/null
@@ -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 };
\ No newline at end of file
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/benchmark-main.c b/IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c
similarity index 88%
rename from IDE/IAR-EWARM/Projects/CyaSSL-Lib/benchmark-main.c
rename to IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c
index 113fc4d23..d8f559d4c 100644
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/benchmark-main.c
+++ b/IDE/IAR-EWARM/Projects/benchmark/benchmark-main.c
@@ -19,7 +19,11 @@
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
-#include "stdio.h"
+#ifdef HAVE_CONFIG_H
+ #include
+#endif
+
+#include
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) {
}
-
diff --git a/IDE/IAR-EWARM/Projects/benchmark/current_time.c b/IDE/IAR-EWARM/Projects/benchmark/current_time.c
new file mode 100644
index 000000000..9a21fd740
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/benchmark/current_time.c
@@ -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
+#endif
+
+#include
+
+#ifdef WOLFSSL_TI_CURRTIME
+#include
+#include
+#include
+
+#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
\ No newline at end of file
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.ewd b/IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewd
similarity index 50%
rename from IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.ewd
rename to IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewd
index 0bf90e8eb..3f908a2d3 100644
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-benchmark.ewd
+++ b/IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewd
@@ -12,7 +12,7 @@
C-SPY
2
- 25
+ 26
1
1
@@ -77,11 +77,11 @@
OCDownloadVerifyAll
- 0
+ 1
OCProductVersion
- 6.60.1.5099
+ 5.11.0.50579
OCDynDriverList
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 6.60.1.5099
+ 7.40.1.8463
OCDownloadAttachToProgram
@@ -183,6 +183,30 @@
OCAllMTBOptions
1
+
+ OCMulticoreNrOfCores
+ 1
+
+
+ OCMulticoreMaster
+ 0
+
+
+ OCMulticorePort
+ 53461
+
+
+ OCMulticoreWorkspace
+
+
+
+ OCMulticoreSlaveProject
+
+
+
+ OCMulticoreSlaveConfiguration
+
+
@@ -245,7 +269,7 @@
AngelLogFile
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
OCDriverInfo
@@ -257,7 +281,7 @@
CMSISDAP_ID
2
- 0
+ 2
1
1
@@ -295,7 +319,7 @@
CMSISDAPInterfaceRadio
- 0
+ 1
CMSISDAPInterfaceCmdLine
@@ -332,7 +356,7 @@
RDICatchUndef
- 0
+ 1
RDICatchSWI
@@ -340,11 +364,11 @@
RDICatchData
- 0
+ 1
RDICatchPrefetch
- 0
+ 1
RDICatchIRQ
@@ -360,31 +384,31 @@
CatchMMERR
- 0
+ 1
CatchNOCPERR
- 0
+ 1
CatchCHKERR
- 0
+ 1
CatchSTATERR
- 0
+ 1
CatchBUSERR
- 0
+ 1
CatchINTERR
- 0
+ 1
CatchHARDERR
- 0
+ 1
CatchDummy
@@ -398,6 +422,30 @@
CMSISDAPMultiCPUNumber
0
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ CMSISDAPProbeConfigRadio
+ 0
+
+
+ CMSISDAPSelectedCPUBehaviour
+
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
@@ -421,7 +469,7 @@
LogFile
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
CCJTagBreakpointRadio
@@ -433,1305 +481,8 @@
CCJTagUpdateBreakpoints
- _call_main
-
-
-
-
- IARROM_ID
- 2
-
- 1
- 1
- 1
-
- CRomLogFileCheck
- 0
-
-
- CRomLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- CRomCommPort
- 0
- 0
-
-
- CRomCommBaud
- 0
- 7
-
-
- OCDriverInfo
- 1
-
-
-
-
- IJET_ID
- 2
-
- 2
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- IjetAttachSlave
- 1
-
-
- OCIarProbeScriptFile
- 1
-
-
- IjetResetList
- 1
- 10
-
-
- IjetHWResetDuration
- 300
-
-
- IjetHWResetDelay
- 200
-
-
- IjetPowerFromProbe
- 1
-
-
- IjetPowerRadio
- 0
-
-
- IjetDoLogfile
- 0
-
-
- IjetLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- IjetInterfaceRadio
- 0
-
-
- IjetInterfaceCmdLine
- 0
-
-
- IjetMultiTargetEnable
- 0
-
-
- IjetMultiTarget
- 0
-
-
- IjetScanChainNonARMDevices
- 0
-
-
- IjetIRLength
- 0
-
-
- IjetJtagSpeedList
- 0
- 0
-
-
- IjetProtocolRadio
- 0
-
-
- IjetSwoPin
- 0
-
-
- IjetCpuClockEdit
- 72.0
-
-
- IjetSwoPrescalerList
- 1
- 0
-
-
- IjetBreakpointRadio
- 0
-
-
- IjetRestoreBreakpointsCheck
- 0
-
-
- IjetUpdateBreakpointsEdit
- _call_main
-
-
- RDICatchReset
- 0
-
-
- RDICatchUndef
- 1
-
-
- RDICatchSWI
- 0
-
-
- RDICatchData
- 1
-
-
- RDICatchPrefetch
- 1
-
-
- RDICatchIRQ
- 0
-
-
- RDICatchFIQ
- 0
-
-
- CatchCORERESET
- 0
-
-
- CatchMMERR
- 1
-
-
- CatchNOCPERR
- 1
-
-
- CatchCHKERR
- 1
-
-
- CatchSTATERR
- 1
-
-
- CatchBUSERR
- 1
-
-
- CatchINTERR
- 1
-
-
- CatchHARDERR
- 1
-
-
- CatchDummy
- 0
-
-
- OCProbeCfgOverride
- 0
-
-
- OCProbeConfig
-
-
-
- IjetProbeConfigRadio
- 0
-
-
- IjetMultiCPUEnable
- 0
-
-
- IjetMultiCPUNumber
- 0
-
-
- IjetSelectedCPUBehaviour
- 0
-
-
- ICpuName
-
-
-
-
-
- JLINK_ID
- 2
-
- 15
- 1
- 1
-
- JLinkSpeed
- 32
-
-
- CCJLinkDoLogfile
- 0
-
-
- CCJLinkLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJLinkHWResetDelay
- 0
-
-
- OCDriverInfo
- 1
-
-
- JLinkInitialSpeed
- 32
-
-
- CCDoJlinkMultiTarget
- 0
-
-
- CCScanChainNonARMDevices
- 0
-
-
- CCJLinkMultiTarget
- 0
-
-
- CCJLinkIRLength
- 0
-
-
- CCJLinkCommRadio
- 0
-
-
- CCJLinkTCPIP
- aaa.bbb.ccc.ddd
-
-
- CCJLinkSpeedRadioV2
- 0
-
-
- CCUSBDevice
- 1
- 1
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- CCJLinkBreakpointRadio
- 0
-
-
- CCJLinkDoUpdateBreakpoints
- 0
-
-
- CCJLinkUpdateBreakpoints
- _call_main
-
-
- CCJLinkInterfaceRadio
- 0
-
-
- OCJLinkAttachSlave
- 1
-
-
- CCJLinkResetList
- 6
- 7
-
-
- CCJLinkInterfaceCmdLine
- 0
-
-
- CCCatchCORERESET
- 0
-
-
- CCCatchMMERR
- 0
-
-
- CCCatchNOCPERR
- 0
-
-
- CCCatchCHRERR
- 0
-
-
- CCCatchSTATERR
- 0
-
-
- CCCatchBUSERR
- 0
-
-
- CCCatchINTERR
- 0
-
-
- CCCatchHARDERR
- 0
-
-
- CCCatchDummy
- 0
-
-
- OCJLinkScriptFile
- 1
-
-
- CCJLinkUsbSerialNo
-
-
-
- CCTcpIpAlt
- 0
- 0
-
-
- CCJLinkTcpIpSerialNo
-
-
-
- CCCpuClockEdit
- 72.0
-
-
- CCSwoClockAuto
- 0
-
-
- CCSwoClockEdit
- 2000
-
-
- OCJLinkTraceSource
- 0
-
-
- OCJLinkTraceSourceDummy
- 0
-
-
- OCJLinkDeviceName
- 1
-
-
-
-
- LMIFTDI_ID
- 2
-
- 2
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- LmiftdiSpeed
- 500
-
-
- CCLmiftdiDoLogfile
- 0
-
-
- CCLmiftdiLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCLmiFtdiInterfaceRadio
- 0
-
-
- CCLmiFtdiInterfaceCmdLine
- 0
-
-
-
-
- MACRAIGOR_ID
- 2
-
- 3
- 1
- 1
-
- jtag
- 0
- 0
-
-
- EmuSpeed
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- DoEmuMultiTarget
- 0
-
-
- EmuMultiTarget
- 0@ARM7TDMI
-
-
- EmuHWReset
- 0
-
-
- CEmuCommBaud
- 0
- 4
-
-
- CEmuCommPort
- 0
- 0
-
-
- jtago
- 0
- 0
-
-
- OCDriverInfo
- 1
-
-
- UnusedAddr
- 0x00800000
-
-
- CCMacraigorHWResetDelay
-
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- _call_main
-
-
- CCMacraigorInterfaceRadio
- 0
-
-
- CCMacraigorInterfaceCmdLine
- 0
-
-
-
-
- PEMICRO_ID
- 2
-
- 1
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- OCPEMicroAttachSlave
- 1
-
-
- CCPEMicroInterfaceList
- 0
- 0
-
-
- CCPEMicroResetDelay
-
-
-
- CCPEMicroJtagSpeed
- 5000
-
-
- CCJPEMicroShowSettings
- 0
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCPEMicroUSBDevice
- 0
- 0
-
-
- CCPEMicroSerialPort
- 0
- 0
-
-
- CCJPEMicroTCPIPAutoScanNetwork
- 1
-
-
- CCPEMicroTCPIP
- 10.0.0.1
-
-
- CCPEMicroCommCmdLineProducer
- 0
-
-
- CCSTLinkInterfaceRadio
- 0
-
-
- CCSTLinkInterfaceCmdLine
- 0
-
-
-
-
- RDI_ID
- 2
-
- 2
- 1
- 1
-
- CRDIDriverDll
- ###Uninitialized###
-
-
- CRDILogFileCheck
- 0
-
-
- CRDILogFileEdit
- $PROJ_DIR$\cspycomm.log
-
-
- CCRDIHWReset
- 0
-
-
- CCRDICatchReset
- 0
-
-
- CCRDICatchUndef
- 0
-
-
- CCRDICatchSWI
- 0
-
-
- CCRDICatchData
- 0
-
-
- CCRDICatchPrefetch
- 0
-
-
- CCRDICatchIRQ
- 0
-
-
- CCRDICatchFIQ
- 0
-
-
- OCDriverInfo
- 1
-
-
-
-
- STLINK_ID
- 2
-
- 2
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- CCSTLinkInterfaceRadio
- 0
-
-
- CCSTLinkInterfaceCmdLine
- 0
-
-
- CCSTLinkResetList
- 1
- 0
-
-
- CCCpuClockEdit
- 72.0
-
-
- CCSwoClockAuto
- 0
-
-
- CCSwoClockEdit
- 2000
-
-
-
-
- THIRDPARTY_ID
- 2
-
- 0
- 1
- 1
-
- CThirdPartyDriverDll
- ###Uninitialized###
-
-
- CThirdPartyLogFileCheck
- 0
-
-
- CThirdPartyLogFileEditB
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
- XDS100_ID
- 2
-
- 2
- 1
- 1
-
- OCDriverInfo
- 1
-
-
- OCXDS100AttachSlave
- 1
-
-
- TIPackageOverride
- 0
-
-
- TIPackage
-
-
-
- CCXds100InterfaceList
- 1
- 0
-
-
- BoardFile
-
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
-
-
-
- $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
- 0
-
-
- $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
- 1
-
-
- $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
- 0
-
-
-
-
- Release
-
- ARM
-
- 0
-
- C-SPY
- 2
-
- 25
- 1
- 0
-
- CInput
- 1
-
-
- CEndian
- 1
-
-
- CProcessor
- 1
-
-
- OCVariant
- 0
-
-
- MacOverride
- 0
-
-
- MacFile
-
-
-
- MemOverride
- 0
-
-
- MemFile
-
-
-
- RunToEnable
- 1
-
-
- RunToName
main
-
- CExtraOptionsCheck
- 0
-
-
- CExtraOptions
-
-
-
- CFpuProcessor
- 1
-
-
- OCDDFArgumentProducer
-
-
-
- OCDownloadSuppressDownload
- 0
-
-
- OCDownloadVerifyAll
- 0
-
-
- OCProductVersion
- 6.60.1.5099
-
-
- OCDynDriverList
- ARMSIM_ID
-
-
- OCLastSavedByProductVersion
-
-
-
- OCDownloadAttachToProgram
- 0
-
-
- UseFlashLoader
- 0
-
-
- CLowLevel
- 1
-
-
- OCBE8Slave
- 1
-
-
- MacFile2
-
-
-
- CDevice
- 1
-
-
- FlashLoadersV3
-
-
-
- OCImagesSuppressCheck1
- 0
-
-
- OCImagesPath1
-
-
-
- OCImagesSuppressCheck2
- 0
-
-
- OCImagesPath2
-
-
-
- OCImagesSuppressCheck3
- 0
-
-
- OCImagesPath3
-
-
-
- OverrideDefFlashBoard
- 0
-
-
- OCImagesOffset1
-
-
-
- OCImagesOffset2
-
-
-
- OCImagesOffset3
-
-
-
- OCImagesUse1
- 0
-
-
- OCImagesUse2
- 0
-
-
- OCImagesUse3
- 0
-
-
- OCDeviceConfigMacroFile
- 1
-
-
- OCDebuggerExtraOption
- 1
-
-
- OCAllMTBOptions
- 1
-
-
-
-
- ARMSIM_ID
- 2
-
- 1
- 1
- 0
-
- OCSimDriverInfo
- 1
-
-
- OCSimEnablePSP
- 0
-
-
- OCSimPspOverrideConfig
- 0
-
-
- OCSimPspConfigFile
-
-
-
-
-
- ANGEL_ID
- 2
-
- 0
- 1
- 0
-
- CCAngelHeartbeat
- 1
-
-
- CAngelCommunication
- 1
-
-
- CAngelCommBaud
- 0
- 3
-
-
- CAngelCommPort
- 0
- 0
-
-
- ANGELTCPIP
- aaa.bbb.ccc.ddd
-
-
- DoAngelLogfile
- 0
-
-
- AngelLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- OCDriverInfo
- 1
-
-
-
-
- CMSISDAP_ID
- 2
-
- 0
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- CMSISDAPAttachSlave
- 1
-
-
- OCIarProbeScriptFile
- 1
-
-
- CMSISDAPResetList
- 1
- 10
-
-
- CMSISDAPHWResetDuration
- 300
-
-
- CMSISDAPHWResetDelay
- 200
-
-
- CMSISDAPDoLogfile
- 0
-
-
- CMSISDAPLogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CMSISDAPInterfaceRadio
- 0
-
-
- CMSISDAPInterfaceCmdLine
- 0
-
-
- CMSISDAPMultiTargetEnable
- 0
-
-
- CMSISDAPMultiTarget
- 0
-
-
- CMSISDAPJtagSpeedList
- 0
- 0
-
-
- CMSISDAPBreakpointRadio
- 0
-
-
- CMSISDAPRestoreBreakpointsCheck
- 0
-
-
- CMSISDAPUpdateBreakpointsEdit
- _call_main
-
-
- RDICatchReset
- 0
-
-
- RDICatchUndef
- 0
-
-
- RDICatchSWI
- 0
-
-
- RDICatchData
- 0
-
-
- RDICatchPrefetch
- 0
-
-
- RDICatchIRQ
- 0
-
-
- RDICatchFIQ
- 0
-
-
- CatchCORERESET
- 0
-
-
- CatchMMERR
- 0
-
-
- CatchNOCPERR
- 0
-
-
- CatchCHKERR
- 0
-
-
- CatchSTATERR
- 0
-
-
- CatchBUSERR
- 0
-
-
- CatchINTERR
- 0
-
-
- CatchHARDERR
- 0
-
-
- CatchDummy
- 0
-
-
- CMSISDAPMultiCPUEnable
- 0
-
-
- CMSISDAPMultiCPUNumber
- 0
-
-
-
-
- GDBSERVER_ID
- 2
-
- 0
- 1
- 0
-
- OCDriverInfo
- 1
-
-
- TCPIP
- aaa.bbb.ccc.ddd
-
-
- DoLogfile
- 0
-
-
- LogFile
- $PROJ_DIR$\cspycomm.log
-
-
- CCJTagBreakpointRadio
- 0
-
-
- CCJTagDoUpdateBreakpoints
- 0
-
-
- CCJTagUpdateBreakpoints
- _call_main
-
@@ -1740,14 +491,14 @@
1
1
- 0
+ 1
CRomLogFileCheck
0
CRomLogFileEditB
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
CRomCommPort
@@ -1769,9 +520,9 @@
IJET_ID
2
- 2
+ 6
1
- 0
+ 1
OCDriverInfo
1
@@ -1963,6 +714,28 @@
ICpuName
+
+ OCJetEmuParams
+ 1
+
+
+ IjetPreferETB
+ 1
+
+
+ IjetTraceSettingsList
+ 0
+ 0
+
+
+ IjetTraceSizeList
+ 0
+ 2
+
+
+ FlashBoardPathSlave
+ 0
+
@@ -1971,7 +744,7 @@
15
1
- 0
+ 1
JLinkSpeed
32
@@ -1982,7 +755,7 @@
CCJLinkLogFile
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
CCJLinkHWResetDelay
@@ -2067,7 +840,7 @@
CCJLinkUpdateBreakpoints
- _call_main
+ main
CCJLinkInterfaceRadio
@@ -2171,7 +944,7 @@
2
1
- 0
+ 1
OCDriverInfo
1
@@ -2186,7 +959,7 @@
CCLmiftdiLogFile
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
CCLmiFtdiInterfaceRadio
@@ -2204,7 +977,7 @@
3
1
- 0
+ 1
jtag
0
@@ -2224,7 +997,7 @@
LogFile
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
DoEmuMultiTarget
@@ -2275,7 +1048,7 @@
CCJTagUpdateBreakpoints
- _call_main
+ main
CCMacraigorInterfaceRadio
@@ -2293,7 +1066,7 @@
1
1
- 0
+ 1
OCDriverInfo
1
@@ -2365,10 +1138,10 @@
2
1
- 0
+ 1
CRDIDriverDll
- ###Uninitialized###
+ Browse to your RDI driver
CRDILogFileCheck
@@ -2376,7 +1149,7 @@
CRDILogFileEdit
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
CCRDIHWReset
@@ -2422,7 +1195,7 @@
2
1
- 0
+ 1
OCDriverInfo
1
@@ -2460,10 +1233,10 @@
0
1
- 0
+ 1
CThirdPartyDriverDll
- ###Uninitialized###
+ Browse to your third-party driver
CThirdPartyLogFileCheck
@@ -2471,7 +1244,7 @@
CThirdPartyLogFileEditB
- $PROJ_DIR$\cspycomm.log
+ $TOOLKIT_DIR$\cspycomm.log
OCDriverInfo
@@ -2485,7 +1258,7 @@
2
1
- 0
+ 1
OCDriverInfo
1
@@ -2504,7 +1277,7 @@
CCXds100InterfaceList
- 1
+ 2
0
@@ -2551,11 +1324,7 @@
0
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin
0
@@ -2566,6 +1335,10 @@
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
0
+
+ $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin
+ 0
+
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
0
diff --git a/IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewp b/IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewp
new file mode 100644
index 000000000..bbb9b30a4
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/benchmark/wolfCrypt-benchmark.ewp
@@ -0,0 +1,981 @@
+
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+ ExePath
+ ewarm\Exe
+
+
+ ObjPath
+ ewarm\Obj
+
+
+ ListPath
+ ewarm\List
+
+
+ Variant
+ 21
+ 40
+
+
+ GEndianMode
+ 0
+
+
+ Input variant
+ 3
+ 6
+
+
+ Input description
+ No specifier n, no float nor long long, no scan set, no assignment suppressing.
+
+
+ Output variant
+ 2
+ 2
+
+
+ Output description
+ Full formatting, without multibyte support.
+
+
+ GOutputBinary
+ 0
+
+
+ FPU
+ 4
+ 6
+
+
+ OGCoreOrChip
+ 0
+
+
+ GRuntimeLibSelect
+ 0
+ 1
+
+
+ GRuntimeLibSelectSlave
+ 0
+ 1
+
+
+ RTDescription
+ 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.
+
+
+ OGProductVersion
+ 5.11.0.50579
+
+
+ OGLastSavedByProductVersion
+ 7.40.1.8463
+
+
+ GeneralEnableMisra
+ 0
+
+
+ GeneralMisraVerbose
+ 0
+
+
+ OGChipSelectEditMenu
+ Default None
+
+
+ GenLowLevelInterface
+ 1
+
+
+ GEndianModeBE
+ 1
+
+
+ OGBufferedTerminalOutput
+ 0
+
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 21
+ 40
+
+
+ GBECoreSlave
+ 21
+ 40
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
+
+ GRuntimeLibThreads
+ 0
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+ CCDefines
+ ewarm
+ PART_TM4C129XNCZAD
+ WOLFSSL_USER_SETTINGS
+ TARGET_IS_SNOWFLAKE_RA0
+
+
+ CCPreprocFile
+ 0
+
+
+ CCPreprocComments
+ 0
+
+
+ CCPreprocLine
+ 0
+
+
+ CCListCFile
+ 0
+
+
+ CCListCMnemonics
+ 0
+
+
+ CCListCMessages
+ 0
+
+
+ CCListAssFile
+ 0
+
+
+ CCListAssSource
+ 0
+
+
+ CCEnableRemarks
+ 0
+
+
+ CCDiagSuppress
+ Pa050
+
+
+ CCDiagRemark
+
+
+
+ CCDiagWarning
+
+
+
+ CCDiagError
+
+
+
+ CCObjPrefix
+ 1
+
+
+ CCAllowList
+ 1
+ 11111110
+
+
+ CCDebugInfo
+ 1
+
+
+ IEndianMode
+ 1
+
+
+ IProcessor
+ 1
+
+
+ IExtraOptionsCheck
+ 0
+
+
+ IExtraOptions
+
+
+
+ CCLangConformance
+ 0
+
+
+ CCSignedPlainChar
+ 1
+
+
+ CCRequirePrototypes
+ 0
+
+
+ CCMultibyteSupport
+ 0
+
+
+ CCDiagWarnAreErr
+ 0
+
+
+ CCCompilerRuntimeInfo
+ 0
+
+
+ IFpuProcessor
+ 1
+
+
+ OutputFile
+ $FILE_BNAME$.o
+
+
+ CCLibConfigHeader
+ 1
+
+
+ PreInclude
+
+
+
+ CompilerMisraOverride
+ 0
+
+
+ CCIncludePath2
+ $PROJ_DIR$\..\..\..\..
+ $PROJ_DIR$\..
+ $PROJ_DIR$\..\..\..\..\..
+
+
+ CCStdIncCheck
+ 0
+
+
+ CCCodeSection
+ .text
+
+
+ IInterwork2
+ 0
+
+
+ IProcessorMode2
+ 1
+
+
+ CCOptLevel
+ 3
+
+
+ CCOptStrategy
+ 0
+ 1
+
+
+ CCOptLevelSlave
+ 3
+
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
+
+ CCOptimizationNoSizeConstraints
+ 0
+
+
+ CCNoLiteralPool
+ 0
+
+
+ CCOptStrategySlave
+ 0
+ 1
+
+
+ CCGuardCalls
+ 1
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+ AObjPrefix
+ 1
+
+
+ AEndian
+ 1
+
+
+ ACaseSensitivity
+ 1
+
+
+ MacroChars
+ 0
+ 0
+
+
+ AWarnEnable
+ 0
+
+
+ AWarnWhat
+ 0
+
+
+ AWarnOne
+
+
+
+ AWarnRange1
+
+
+
+ AWarnRange2
+
+
+
+ ADebug
+ 1
+
+
+ AltRegisterNames
+ 0
+
+
+ ADefines
+ ewarm
+
+
+ AList
+ 0
+
+
+ AListHeader
+ 1
+
+
+ AListing
+ 1
+
+
+ Includes
+ 0
+
+
+ MacDefs
+ 0
+
+
+ MacExps
+ 1
+
+
+ MacExec
+ 0
+
+
+ OnlyAssed
+ 0
+
+
+ MultiLine
+ 0
+
+
+ PageLengthCheck
+ 0
+
+
+ PageLength
+ 80
+
+
+ TabSpacing
+ 8
+
+
+ AXRef
+ 0
+
+
+ AXRefDefines
+ 0
+
+
+ AXRefInternal
+ 0
+
+
+ AXRefDual
+ 0
+
+
+ AProcessor
+ 1
+
+
+ AFpuProcessor
+ 1
+
+
+ AOutputFile
+ $FILE_BNAME$.o
+
+
+ AMultibyteSupport
+ 0
+
+
+ ALimitErrorsCheck
+ 0
+
+
+ ALimitErrorsEdit
+ 100
+
+
+ AIgnoreStdInclude
+ 0
+
+
+ AUserIncludes
+ $PROJ_DIR$\..\..\..\..
+
+
+ AExtraOptionsCheckV2
+ 0
+
+
+ AExtraOptionsV2
+
+
+
+ AsmNoLiteralPool
+ 0
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+ OOCOutputFormat
+ 2
+ 2
+
+
+ OCOutputOverride
+ 0
+
+
+ OOCOutputFile
+ wolfCrypt-benchmark.bin
+
+
+ OOCCommandLineProducer
+ 1
+
+
+ OOCObjCopyEnable
+ 1
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+ IlinkLibIOConfig
+ 1
+
+
+ XLinkMisraHandler
+ 0
+
+
+ IlinkInputFileSlave
+ 0
+
+
+ IlinkOutputFile
+ benchmark.out
+
+
+ IlinkDebugInfoEnable
+ 1
+
+
+ IlinkKeepSymbols
+
+
+
+ IlinkRawBinaryFile
+
+
+
+ IlinkRawBinarySymbol
+
+
+
+ IlinkRawBinarySegment
+
+
+
+ IlinkRawBinaryAlign
+
+
+
+ IlinkDefines
+
+
+
+ IlinkConfigDefines
+
+
+
+ IlinkMapFile
+ 1
+
+
+ IlinkLogFile
+ 0
+
+
+ IlinkLogInitialization
+ 0
+
+
+ IlinkLogModule
+ 0
+
+
+ IlinkLogSection
+ 0
+
+
+ IlinkLogVeneer
+ 0
+
+
+ IlinkIcfOverride
+ 1
+
+
+ IlinkIcfFile
+ $PROJ_DIR$\..\common\wolfssl.icf
+
+
+ IlinkIcfFileSlave
+
+
+
+ IlinkEnableRemarks
+ 0
+
+
+ IlinkSuppressDiags
+
+
+
+ IlinkTreatAsRem
+
+
+
+ IlinkTreatAsWarn
+
+
+
+ IlinkTreatAsErr
+
+
+
+ IlinkWarningsAreErrors
+ 0
+
+
+ IlinkUseExtraOptions
+ 0
+
+
+ IlinkExtraOptions
+
+
+
+ IlinkLowLevelInterfaceSlave
+ 1
+
+
+ IlinkAutoLibEnable
+ 1
+
+
+ IlinkAdditionalLibs
+
+
+
+ IlinkOverrideProgramEntryLabel
+ 1
+
+
+ IlinkProgramEntryLabelSelect
+ 0
+
+
+ IlinkProgramEntryLabel
+ __iar_program_start
+
+
+ DoFill
+ 0
+
+
+ FillerByte
+ 0xFF
+
+
+ FillerStart
+ 0x0
+
+
+ FillerEnd
+ 0x0
+
+
+ CrcSize
+ 0
+ 1
+
+
+ CrcAlign
+ 1
+
+
+ CrcPoly
+ 0x11021
+
+
+ CrcCompl
+ 0
+ 0
+
+
+ CrcBitOrder
+ 0
+ 0
+
+
+ CrcInitialValue
+ 0x0
+
+
+ DoCrc
+ 0
+
+
+ IlinkBE8Slave
+ 1
+
+
+ IlinkBufferedTerminalOutput
+ 1
+
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
+
+ IlinkStackAnalysisEnable
+ 0
+
+
+ IlinkStackControlFile
+
+
+
+ IlinkStackCallGraphFile
+
+
+
+ CrcAlgorithm
+ 0
+ 1
+
+
+ CrcUnitSize
+ 0
+ 0
+
+
+ IlinkThreadsSlave
+ 1
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+ IarchiveInputs
+
+
+
+ IarchiveOverride
+ 0
+
+
+ IarchiveOutput
+ ###Unitialized###
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Config
+
+ $PROJ_DIR$\..\user_settings.h
+
+
+
+ Lib
+
+ $PROJ_DIR$\..\lib\ewarm\Exe\wolfSSL-Lib.a
+
+
+
+ Source
+
+ $PROJ_DIR$\benchmark-main.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\benchmark\benchmark.c
+
+
+ $PROJ_DIR$\current_time.c
+
+
+ $PROJ_DIR$\..\common\minimum-startup.c
+
+
+
+
+
diff --git a/IDE/IAR-EWARM/Projects/common/minimum-startup.c b/IDE/IAR-EWARM/Projects/common/minimum-startup.c
new file mode 100644
index 000000000..0315d577e
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/common/minimum-startup.c
@@ -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
+#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
+};
+
diff --git a/IDE/IAR-EWARM/Projects/common/wolfssl.icf b/IDE/IAR-EWARM/Projects/common/wolfssl.icf
new file mode 100644
index 000000000..96a6f0860
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/common/wolfssl.icf
@@ -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 };
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.ewd b/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewd
similarity index 94%
rename from IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.ewd
rename to IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewd
index 6c2de8d14..69eb45f09 100644
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/wolfCrypt-test.ewd
+++ b/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewd
@@ -12,7 +12,7 @@
C-SPY
2
- 25
+ 26
1
1
@@ -81,7 +81,7 @@
OCProductVersion
- 6.60.1.5099
+ 7.20.1.7306
OCDynDriverList
@@ -89,7 +89,7 @@
OCLastSavedByProductVersion
- 6.60.1.5099
+ 7.20.1.7306
OCDownloadAttachToProgram
@@ -183,6 +183,30 @@
OCAllMTBOptions
1
+
+ OCMulticoreNrOfCores
+ 1
+
+
+ OCMulticoreMaster
+ 0
+
+
+ OCMulticorePort
+ 53461
+
+
+ OCMulticoreWorkspace
+
+
+
+ OCMulticoreSlaveProject
+
+
+
+ OCMulticoreSlaveConfiguration
+
+
@@ -257,7 +281,7 @@
CMSISDAP_ID
2
- 0
+ 2
1
1
@@ -332,7 +356,7 @@
RDICatchUndef
- 0
+ 1
RDICatchSWI
@@ -340,11 +364,11 @@
RDICatchData
- 0
+ 1
RDICatchPrefetch
- 0
+ 1
RDICatchIRQ
@@ -360,31 +384,31 @@
CatchMMERR
- 0
+ 1
CatchNOCPERR
- 0
+ 1
CatchCHKERR
- 0
+ 1
CatchSTATERR
- 0
+ 1
CatchBUSERR
- 0
+ 1
CatchINTERR
- 0
+ 1
CatchHARDERR
- 0
+ 1
CatchDummy
@@ -398,6 +422,30 @@
CMSISDAPMultiCPUNumber
0
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ CMSISDAPProbeConfigRadio
+ 0
+
+
+ CMSISDAPSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
@@ -472,7 +520,7 @@
IJET_ID
2
- 2
+ 3
1
1
@@ -666,6 +714,10 @@
ICpuName
+
+ OCJetEmuParams
+ 1
+
@@ -677,7 +729,7 @@
1
JLinkSpeed
- 32
+ 1000
CCJLinkDoLogfile
@@ -697,7 +749,7 @@
JLinkInitialSpeed
- 32
+ 1000
CCDoJlinkMultiTarget
@@ -783,7 +835,7 @@
CCJLinkResetList
6
- 7
+ 5
CCJLinkInterfaceCmdLine
@@ -1207,7 +1259,7 @@
CCXds100InterfaceList
- 1
+ 2
0
@@ -1253,14 +1305,6 @@
$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
-
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
- 0
-
$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
0
@@ -1269,6 +1313,10 @@
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
0
+
+ $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin
+ 0
+
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
0
@@ -1309,7 +1357,7 @@
C-SPY
2
- 25
+ 26
1
0
@@ -1378,7 +1426,7 @@
OCProductVersion
- 6.60.1.5099
+ 7.20.1.7306
OCDynDriverList
@@ -1480,6 +1528,30 @@
OCAllMTBOptions
1
+
+ OCMulticoreNrOfCores
+ 1
+
+
+ OCMulticoreMaster
+ 0
+
+
+ OCMulticorePort
+ 53461
+
+
+ OCMulticoreWorkspace
+
+
+
+ OCMulticoreSlaveProject
+
+
+
+ OCMulticoreSlaveConfiguration
+
+
@@ -1554,7 +1626,7 @@
CMSISDAP_ID
2
- 0
+ 2
1
0
@@ -1629,7 +1701,7 @@
RDICatchUndef
- 0
+ 1
RDICatchSWI
@@ -1637,11 +1709,11 @@
RDICatchData
- 0
+ 1
RDICatchPrefetch
- 0
+ 1
RDICatchIRQ
@@ -1657,31 +1729,31 @@
CatchMMERR
- 0
+ 1
CatchNOCPERR
- 0
+ 1
CatchCHKERR
- 0
+ 1
CatchSTATERR
- 0
+ 1
CatchBUSERR
- 0
+ 1
CatchINTERR
- 0
+ 1
CatchHARDERR
- 0
+ 1
CatchDummy
@@ -1695,6 +1767,30 @@
CMSISDAPMultiCPUNumber
0
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ CMSISDAPProbeConfigRadio
+ 0
+
+
+ CMSISDAPSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
@@ -1769,7 +1865,7 @@
IJET_ID
2
- 2
+ 3
1
0
@@ -1963,6 +2059,10 @@
ICpuName
+
+ OCJetEmuParams
+ 1
+
@@ -1974,7 +2074,7 @@
0
JLinkSpeed
- 32
+ 1000
CCJLinkDoLogfile
@@ -1994,7 +2094,7 @@
JLinkInitialSpeed
- 32
+ 1000
CCDoJlinkMultiTarget
@@ -2504,7 +2604,7 @@
CCXds100InterfaceList
- 1
+ 2
0
@@ -2550,14 +2650,6 @@
$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
0
-
- $TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin
- 0
-
-
- $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin
- 0
-
$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
0
@@ -2566,6 +2658,10 @@
$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
0
+
+ $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin
+ 0
+
$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
0
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/CyaSSL-Lib.ewp b/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp
similarity index 91%
rename from IDE/IAR-EWARM/Projects/CyaSSL-Lib/CyaSSL-Lib.ewp
rename to IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp
index bc278a468..3888c46f6 100644
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/CyaSSL-Lib.ewp
+++ b/IDE/IAR-EWARM/Projects/lib/wolfSSL-Lib.ewp
@@ -17,20 +17,20 @@
1
ExePath
- Debug\Exe
+ ewarm\Exe
ObjPath
- Debug\Obj
+ ewarm\Obj
ListPath
- Debug\List
+ ewarm\List
Variant
- 20
- 38
+ 21
+ 40
GEndianMode
@@ -60,8 +60,8 @@
FPU
- 2
- 0
+ 4
+ 6
OGCoreOrChip
@@ -87,7 +87,7 @@
OGLastSavedByProductVersion
- 6.60.1.5099
+ 7.40.1.8463
GeneralEnableMisra
@@ -99,7 +99,7 @@
OGChipSelectEditMenu
- MB9BF618T Fujitsu MB9BF618T
+ Default None
GenLowLevelInterface
@@ -137,13 +137,13 @@
GFPUCoreSlave
- 20
- 38
+ 21
+ 40
GBECoreSlave
- 20
- 38
+ 21
+ 40
OGUseCmsis
@@ -163,12 +163,15 @@
ICCARM
2
- 29
+ 31
1
1
CCDefines
-
+ WOLFSSL_USER_SETTINGS
+ ewarm
+ PART_TM4C129XNCZAD
+ TARGET_IS_SNOWFLAKE_RA0
CCPreprocFile
@@ -208,7 +211,7 @@
CCDiagSuppress
- Pa050
+ Pa050,Pa089,Pe177
CCDiagRemark
@@ -229,7 +232,7 @@
CCAllowList
1
- 0000000
+ 11111110
CCDebugInfo
@@ -298,6 +301,8 @@
CCIncludePath2
$PROJ_DIR$\..\..\..\..
+ $PROJ_DIR$\..\
+ $PROJ_DIR$\..\..\..\..\..
CCStdIncCheck
@@ -317,16 +322,16 @@
CCOptLevel
- 0
+ 3
CCOptStrategy
0
- 1
+ 2
CCOptLevelSlave
- 0
+ 3
CompilerMisraRules98
@@ -398,6 +403,15 @@
CCNoLiteralPool
0
+
+ CCOptStrategySlave
+ 0
+ 2
+
+
+ CCGuardCalls
+ 1
+
@@ -602,6 +616,7 @@
+ 0
@@ -924,7 +939,7 @@
IarchiveOutput
- C:\ROOT\CyaSSL-Release\IAR\IDE\IAR-EWARM\Projects\CyaSSL-Lib\Debug\Exe\CyaSSL-Lib.a
+ C:\ROOT\CyaSSL-Support\TI\Staging-20150522\wolfssl\IDE\IAR-EWARM\Projects\lib\ewarm\Exe\wolfSSL-Lib.a
@@ -961,7 +976,7 @@
Variant
- 20
+ 21
0
@@ -992,7 +1007,7 @@
FPU
- 2
+ 4
0
@@ -1069,12 +1084,12 @@
GFPUCoreSlave
- 20
+ 21
1
GBECoreSlave
- 20
+ 21
1
@@ -1095,7 +1110,7 @@
ICCARM
2
- 29
+ 31
1
0
@@ -1161,7 +1176,7 @@
CCAllowList
1
- 1111111
+ 11111110
CCDebugInfo
@@ -1330,6 +1345,15 @@
CCNoLiteralPool
0
+
+ CCOptStrategySlave
+ 0
+ 0
+
+
+ CCGuardCalls
+ 1
+
@@ -1534,6 +1558,7 @@
+ 0
@@ -1867,7 +1892,145 @@
- CyaSSL
+ Config
+
+ $PROJ_DIR$\..\..\..\..\wolfssl\wolfcrypt\settings.h
+
+
+ $PROJ_DIR$\..\user_settings.h
+
+
+
+ wolfCrypt
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\aes.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\arc4.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\asm.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\asn.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\blake2b.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\camellia.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\chacha.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\chacha20_poly1305.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\coding.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\compress.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\curve25519.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\des3.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\dh.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\dsa.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\ecc.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\ecc_fp.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\ed25519.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\error.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\fe_operations.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\ge_operations.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\hash.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\hc128.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\hmac.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\integer.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\logging.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\md2.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\md4.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\md5.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\memory.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\misc.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\pkcs7.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\poly1305.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\pwdbased.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\rabbit.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\random.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\ripemd.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\rsa.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\sha.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\sha256.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\sha512.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\tfm.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\src\wc_port.c
+
+
+
+ wolfSSL
$PROJ_DIR$\..\..\..\..\src\crl.c
@@ -1893,108 +2056,6 @@
$PROJ_DIR$\..\..\..\..\src\tls.c
-
- wolfCrypt
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\aes.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\arc4.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\asm.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\asn.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\blake2b.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\camellia.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\coding.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\compress.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\des3.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\dh.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\dsa.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\ecc.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\ecc_fp.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\error.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\hc128.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\hmac.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\integer.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\logging.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\md2.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\md4.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\md5.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\memory.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\misc.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\wc_port.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\pwdbased.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\rabbit.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\random.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\ripemd.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\rsa.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\sha.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\sha256.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\sha512.c
-
-
- $PROJ_DIR$\..\..\..\..\ctaocrypt\src\tfm.c
-
-
diff --git a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/test-main.c b/IDE/IAR-EWARM/Projects/test/test-main.c
similarity index 93%
rename from IDE/IAR-EWARM/Projects/CyaSSL-Lib/test-main.c
rename to IDE/IAR-EWARM/Projects/test/test-main.c
index 5ebfe3219..ad78746d5 100644
--- a/IDE/IAR-EWARM/Projects/CyaSSL-Lib/test-main.c
+++ b/IDE/IAR-EWARM/Projects/test/test-main.c
@@ -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;
}
+
diff --git a/IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewd b/IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewd
new file mode 100644
index 000000000..3f908a2d3
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewd
@@ -0,0 +1,1374 @@
+
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ C-SPY
+ 2
+
+ 26
+ 1
+ 1
+
+ CInput
+ 1
+
+
+ CEndian
+ 1
+
+
+ CProcessor
+ 1
+
+
+ OCVariant
+ 0
+
+
+ MacOverride
+ 0
+
+
+ MacFile
+
+
+
+ MemOverride
+ 0
+
+
+ MemFile
+
+
+
+ RunToEnable
+ 1
+
+
+ RunToName
+ main
+
+
+ CExtraOptionsCheck
+ 0
+
+
+ CExtraOptions
+
+
+
+ CFpuProcessor
+ 1
+
+
+ OCDDFArgumentProducer
+
+
+
+ OCDownloadSuppressDownload
+ 0
+
+
+ OCDownloadVerifyAll
+ 1
+
+
+ OCProductVersion
+ 5.11.0.50579
+
+
+ OCDynDriverList
+ ARMSIM_ID
+
+
+ OCLastSavedByProductVersion
+ 7.40.1.8463
+
+
+ OCDownloadAttachToProgram
+ 0
+
+
+ UseFlashLoader
+ 0
+
+
+ CLowLevel
+ 1
+
+
+ OCBE8Slave
+ 1
+
+
+ MacFile2
+
+
+
+ CDevice
+ 1
+
+
+ FlashLoadersV3
+ $TOOLKIT_DIR$\config\flashloader\
+
+
+ OCImagesSuppressCheck1
+ 0
+
+
+ OCImagesPath1
+
+
+
+ OCImagesSuppressCheck2
+ 0
+
+
+ OCImagesPath2
+
+
+
+ OCImagesSuppressCheck3
+ 0
+
+
+ OCImagesPath3
+
+
+
+ OverrideDefFlashBoard
+ 0
+
+
+ OCImagesOffset1
+
+
+
+ OCImagesOffset2
+
+
+
+ OCImagesOffset3
+
+
+
+ OCImagesUse1
+ 0
+
+
+ OCImagesUse2
+ 0
+
+
+ OCImagesUse3
+ 0
+
+
+ OCDeviceConfigMacroFile
+ 1
+
+
+ OCDebuggerExtraOption
+ 1
+
+
+ OCAllMTBOptions
+ 1
+
+
+ OCMulticoreNrOfCores
+ 1
+
+
+ OCMulticoreMaster
+ 0
+
+
+ OCMulticorePort
+ 53461
+
+
+ OCMulticoreWorkspace
+
+
+
+ OCMulticoreSlaveProject
+
+
+
+ OCMulticoreSlaveConfiguration
+
+
+
+
+
+ ARMSIM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+ OCSimDriverInfo
+ 1
+
+
+ OCSimEnablePSP
+ 0
+
+
+ OCSimPspOverrideConfig
+ 0
+
+
+ OCSimPspConfigFile
+
+
+
+
+
+ ANGEL_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ CCAngelHeartbeat
+ 1
+
+
+ CAngelCommunication
+ 1
+
+
+ CAngelCommBaud
+ 0
+ 3
+
+
+ CAngelCommPort
+ 0
+ 0
+
+
+ ANGELTCPIP
+ aaa.bbb.ccc.ddd
+
+
+ DoAngelLogfile
+ 0
+
+
+ AngelLogFile
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ CMSISDAP_ID
+ 2
+
+ 2
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ CMSISDAPAttachSlave
+ 1
+
+
+ OCIarProbeScriptFile
+ 1
+
+
+ CMSISDAPResetList
+ 1
+ 4
+
+
+ CMSISDAPHWResetDuration
+ 300
+
+
+ CMSISDAPHWResetDelay
+ 200
+
+
+ CMSISDAPDoLogfile
+ 0
+
+
+ CMSISDAPLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CMSISDAPInterfaceRadio
+ 1
+
+
+ CMSISDAPInterfaceCmdLine
+ 0
+
+
+ CMSISDAPMultiTargetEnable
+ 0
+
+
+ CMSISDAPMultiTarget
+ 0
+
+
+ CMSISDAPJtagSpeedList
+ 0
+ 0
+
+
+ CMSISDAPBreakpointRadio
+ 0
+
+
+ CMSISDAPRestoreBreakpointsCheck
+ 0
+
+
+ CMSISDAPUpdateBreakpointsEdit
+ _call_main
+
+
+ RDICatchReset
+ 0
+
+
+ RDICatchUndef
+ 1
+
+
+ RDICatchSWI
+ 0
+
+
+ RDICatchData
+ 1
+
+
+ RDICatchPrefetch
+ 1
+
+
+ RDICatchIRQ
+ 0
+
+
+ RDICatchFIQ
+ 0
+
+
+ CatchCORERESET
+ 0
+
+
+ CatchMMERR
+ 1
+
+
+ CatchNOCPERR
+ 1
+
+
+ CatchCHKERR
+ 1
+
+
+ CatchSTATERR
+ 1
+
+
+ CatchBUSERR
+ 1
+
+
+ CatchINTERR
+ 1
+
+
+ CatchHARDERR
+ 1
+
+
+ CatchDummy
+ 0
+
+
+ CMSISDAPMultiCPUEnable
+ 0
+
+
+ CMSISDAPMultiCPUNumber
+ 0
+
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ CMSISDAPProbeConfigRadio
+ 0
+
+
+ CMSISDAPSelectedCPUBehaviour
+
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
+
+
+
+ GDBSERVER_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ TCPIP
+ aaa.bbb.ccc.ddd
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ CCJTagBreakpointRadio
+ 0
+
+
+ CCJTagDoUpdateBreakpoints
+ 0
+
+
+ CCJTagUpdateBreakpoints
+ main
+
+
+
+
+ IARROM_ID
+ 2
+
+ 1
+ 1
+ 1
+
+ CRomLogFileCheck
+ 0
+
+
+ CRomLogFileEditB
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ CRomCommPort
+ 0
+ 0
+
+
+ CRomCommBaud
+ 0
+ 7
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ IJET_ID
+ 2
+
+ 6
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ IjetAttachSlave
+ 1
+
+
+ OCIarProbeScriptFile
+ 1
+
+
+ IjetResetList
+ 1
+ 10
+
+
+ IjetHWResetDuration
+ 300
+
+
+ IjetHWResetDelay
+ 200
+
+
+ IjetPowerFromProbe
+ 1
+
+
+ IjetPowerRadio
+ 0
+
+
+ IjetDoLogfile
+ 0
+
+
+ IjetLogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ IjetInterfaceRadio
+ 0
+
+
+ IjetInterfaceCmdLine
+ 0
+
+
+ IjetMultiTargetEnable
+ 0
+
+
+ IjetMultiTarget
+ 0
+
+
+ IjetScanChainNonARMDevices
+ 0
+
+
+ IjetIRLength
+ 0
+
+
+ IjetJtagSpeedList
+ 0
+ 0
+
+
+ IjetProtocolRadio
+ 0
+
+
+ IjetSwoPin
+ 0
+
+
+ IjetCpuClockEdit
+ 72.0
+
+
+ IjetSwoPrescalerList
+ 1
+ 0
+
+
+ IjetBreakpointRadio
+ 0
+
+
+ IjetRestoreBreakpointsCheck
+ 0
+
+
+ IjetUpdateBreakpointsEdit
+ _call_main
+
+
+ RDICatchReset
+ 0
+
+
+ RDICatchUndef
+ 1
+
+
+ RDICatchSWI
+ 0
+
+
+ RDICatchData
+ 1
+
+
+ RDICatchPrefetch
+ 1
+
+
+ RDICatchIRQ
+ 0
+
+
+ RDICatchFIQ
+ 0
+
+
+ CatchCORERESET
+ 0
+
+
+ CatchMMERR
+ 1
+
+
+ CatchNOCPERR
+ 1
+
+
+ CatchCHKERR
+ 1
+
+
+ CatchSTATERR
+ 1
+
+
+ CatchBUSERR
+ 1
+
+
+ CatchINTERR
+ 1
+
+
+ CatchHARDERR
+ 1
+
+
+ CatchDummy
+ 0
+
+
+ OCProbeCfgOverride
+ 0
+
+
+ OCProbeConfig
+
+
+
+ IjetProbeConfigRadio
+ 0
+
+
+ IjetMultiCPUEnable
+ 0
+
+
+ IjetMultiCPUNumber
+ 0
+
+
+ IjetSelectedCPUBehaviour
+ 0
+
+
+ ICpuName
+
+
+
+ OCJetEmuParams
+ 1
+
+
+ IjetPreferETB
+ 1
+
+
+ IjetTraceSettingsList
+ 0
+ 0
+
+
+ IjetTraceSizeList
+ 0
+ 2
+
+
+ FlashBoardPathSlave
+ 0
+
+
+
+
+ JLINK_ID
+ 2
+
+ 15
+ 1
+ 1
+
+ JLinkSpeed
+ 32
+
+
+ CCJLinkDoLogfile
+ 0
+
+
+ CCJLinkLogFile
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ CCJLinkHWResetDelay
+ 0
+
+
+ OCDriverInfo
+ 1
+
+
+ JLinkInitialSpeed
+ 32
+
+
+ CCDoJlinkMultiTarget
+ 0
+
+
+ CCScanChainNonARMDevices
+ 0
+
+
+ CCJLinkMultiTarget
+ 0
+
+
+ CCJLinkIRLength
+ 0
+
+
+ CCJLinkCommRadio
+ 0
+
+
+ CCJLinkTCPIP
+ aaa.bbb.ccc.ddd
+
+
+ CCJLinkSpeedRadioV2
+ 0
+
+
+ CCUSBDevice
+ 1
+ 1
+
+
+ CCRDICatchReset
+ 0
+
+
+ CCRDICatchUndef
+ 0
+
+
+ CCRDICatchSWI
+ 0
+
+
+ CCRDICatchData
+ 0
+
+
+ CCRDICatchPrefetch
+ 0
+
+
+ CCRDICatchIRQ
+ 0
+
+
+ CCRDICatchFIQ
+ 0
+
+
+ CCJLinkBreakpointRadio
+ 0
+
+
+ CCJLinkDoUpdateBreakpoints
+ 0
+
+
+ CCJLinkUpdateBreakpoints
+ main
+
+
+ CCJLinkInterfaceRadio
+ 0
+
+
+ OCJLinkAttachSlave
+ 1
+
+
+ CCJLinkResetList
+ 6
+ 5
+
+
+ CCJLinkInterfaceCmdLine
+ 0
+
+
+ CCCatchCORERESET
+ 0
+
+
+ CCCatchMMERR
+ 0
+
+
+ CCCatchNOCPERR
+ 0
+
+
+ CCCatchCHRERR
+ 0
+
+
+ CCCatchSTATERR
+ 0
+
+
+ CCCatchBUSERR
+ 0
+
+
+ CCCatchINTERR
+ 0
+
+
+ CCCatchHARDERR
+ 0
+
+
+ CCCatchDummy
+ 0
+
+
+ OCJLinkScriptFile
+ 1
+
+
+ CCJLinkUsbSerialNo
+
+
+
+ CCTcpIpAlt
+ 0
+ 0
+
+
+ CCJLinkTcpIpSerialNo
+
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
+
+ OCJLinkTraceSource
+ 0
+
+
+ OCJLinkTraceSourceDummy
+ 0
+
+
+ OCJLinkDeviceName
+ 1
+
+
+
+
+ LMIFTDI_ID
+ 2
+
+ 2
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ LmiftdiSpeed
+ 500
+
+
+ CCLmiftdiDoLogfile
+ 0
+
+
+ CCLmiftdiLogFile
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ CCLmiFtdiInterfaceRadio
+ 0
+
+
+ CCLmiFtdiInterfaceCmdLine
+ 0
+
+
+
+
+ MACRAIGOR_ID
+ 2
+
+ 3
+ 1
+ 1
+
+ jtag
+ 0
+ 0
+
+
+ EmuSpeed
+ 1
+
+
+ TCPIP
+ aaa.bbb.ccc.ddd
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ DoEmuMultiTarget
+ 0
+
+
+ EmuMultiTarget
+ 0@ARM7TDMI
+
+
+ EmuHWReset
+ 0
+
+
+ CEmuCommBaud
+ 0
+ 4
+
+
+ CEmuCommPort
+ 0
+ 0
+
+
+ jtago
+ 0
+ 0
+
+
+ OCDriverInfo
+ 1
+
+
+ UnusedAddr
+ 0x00800000
+
+
+ CCMacraigorHWResetDelay
+
+
+
+ CCJTagBreakpointRadio
+ 0
+
+
+ CCJTagDoUpdateBreakpoints
+ 0
+
+
+ CCJTagUpdateBreakpoints
+ main
+
+
+ CCMacraigorInterfaceRadio
+ 0
+
+
+ CCMacraigorInterfaceCmdLine
+ 0
+
+
+
+
+ PEMICRO_ID
+ 2
+
+ 1
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCPEMicroAttachSlave
+ 1
+
+
+ CCPEMicroInterfaceList
+ 0
+ 0
+
+
+ CCPEMicroResetDelay
+
+
+
+ CCPEMicroJtagSpeed
+ #UNINITIALIZED#
+
+
+ CCJPEMicroShowSettings
+ 0
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+ CCPEMicroUSBDevice
+ 0
+ 0
+
+
+ CCPEMicroSerialPort
+ 0
+ 0
+
+
+ CCJPEMicroTCPIPAutoScanNetwork
+ 1
+
+
+ CCPEMicroTCPIP
+ 10.0.0.1
+
+
+ CCPEMicroCommCmdLineProducer
+ 0
+
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+
+
+ RDI_ID
+ 2
+
+ 2
+ 1
+ 1
+
+ CRDIDriverDll
+ Browse to your RDI driver
+
+
+ CRDILogFileCheck
+ 0
+
+
+ CRDILogFileEdit
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ CCRDIHWReset
+ 0
+
+
+ CCRDICatchReset
+ 0
+
+
+ CCRDICatchUndef
+ 0
+
+
+ CCRDICatchSWI
+ 0
+
+
+ CCRDICatchData
+ 0
+
+
+ CCRDICatchPrefetch
+ 0
+
+
+ CCRDICatchIRQ
+ 0
+
+
+ CCRDICatchFIQ
+ 0
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ STLINK_ID
+ 2
+
+ 2
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ CCSTLinkInterfaceRadio
+ 0
+
+
+ CCSTLinkInterfaceCmdLine
+ 0
+
+
+ CCSTLinkResetList
+ 1
+ 0
+
+
+ CCCpuClockEdit
+ 72.0
+
+
+ CCSwoClockAuto
+ 0
+
+
+ CCSwoClockEdit
+ 2000
+
+
+
+
+ THIRDPARTY_ID
+ 2
+
+ 0
+ 1
+ 1
+
+ CThirdPartyDriverDll
+ Browse to your third-party driver
+
+
+ CThirdPartyLogFileCheck
+ 0
+
+
+ CThirdPartyLogFileEditB
+ $TOOLKIT_DIR$\cspycomm.log
+
+
+ OCDriverInfo
+ 1
+
+
+
+
+ XDS100_ID
+ 2
+
+ 2
+ 1
+ 1
+
+ OCDriverInfo
+ 1
+
+
+ OCXDS100AttachSlave
+ 1
+
+
+ TIPackageOverride
+ 0
+
+
+ TIPackage
+
+
+
+ CCXds100InterfaceList
+ 2
+ 0
+
+
+ BoardFile
+
+
+
+ DoLogfile
+ 0
+
+
+ LogFile
+ $PROJ_DIR$\cspycomm.log
+
+
+
+
+
+ $TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin
+ 0
+
+
+ $TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin
+ 1
+
+
+ $EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin
+ 0
+
+
+ $EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin
+ 1
+
+
+ $EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin
+ 0
+
+
+
+
+
+
diff --git a/IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewp b/IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewp
new file mode 100644
index 000000000..ec45ce948
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/test/wolfCrypt-test.ewp
@@ -0,0 +1,978 @@
+
+
+
+ 2
+
+ Debug
+
+ ARM
+
+ 1
+
+ General
+ 3
+
+ 22
+ 1
+ 1
+
+ ExePath
+ ewarm\Exe
+
+
+ ObjPath
+ ewarm\Obj
+
+
+ ListPath
+ ewarm\List
+
+
+ Variant
+ 21
+ 40
+
+
+ GEndianMode
+ 0
+
+
+ Input variant
+ 3
+ 6
+
+
+ Input description
+ No specifier n, no float nor long long, no scan set, no assignment suppressing.
+
+
+ Output variant
+ 2
+ 4
+
+
+ Output description
+ No specifier a, A, without multibyte support.
+
+
+ GOutputBinary
+ 0
+
+
+ FPU
+ 4
+ 6
+
+
+ OGCoreOrChip
+ 0
+
+
+ GRuntimeLibSelect
+ 0
+ 1
+
+
+ GRuntimeLibSelectSlave
+ 0
+ 1
+
+
+ RTDescription
+ 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.
+
+
+ OGProductVersion
+ 5.11.0.50579
+
+
+ OGLastSavedByProductVersion
+ 7.40.1.8463
+
+
+ GeneralEnableMisra
+ 0
+
+
+ GeneralMisraVerbose
+ 0
+
+
+ OGChipSelectEditMenu
+ Default None
+
+
+ GenLowLevelInterface
+ 1
+
+
+ GEndianModeBE
+ 1
+
+
+ OGBufferedTerminalOutput
+ 0
+
+
+ GenStdoutInterface
+ 0
+
+
+ GeneralMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ GeneralMisraVer
+ 0
+
+
+ GeneralMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ RTConfigPath2
+ $TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h
+
+
+ GFPUCoreSlave
+ 21
+ 40
+
+
+ GBECoreSlave
+ 21
+ 40
+
+
+ OGUseCmsis
+ 0
+
+
+ OGUseCmsisDspLib
+ 0
+
+
+ GRuntimeLibThreads
+ 0
+
+
+
+
+ ICCARM
+ 2
+
+ 31
+ 1
+ 1
+
+ CCDefines
+ ewarm
+ PART_TM4C129XNCZAD
+ WOLFSSL_USER_SETTINGS
+ TARGET_IS_SNOWFLAKE_RA0
+
+
+ CCPreprocFile
+ 0
+
+
+ CCPreprocComments
+ 0
+
+
+ CCPreprocLine
+ 0
+
+
+ CCListCFile
+ 0
+
+
+ CCListCMnemonics
+ 0
+
+
+ CCListCMessages
+ 0
+
+
+ CCListAssFile
+ 0
+
+
+ CCListAssSource
+ 0
+
+
+ CCEnableRemarks
+ 0
+
+
+ CCDiagSuppress
+ Pa050
+
+
+ CCDiagRemark
+
+
+
+ CCDiagWarning
+
+
+
+ CCDiagError
+
+
+
+ CCObjPrefix
+ 1
+
+
+ CCAllowList
+ 1
+ 11111110
+
+
+ CCDebugInfo
+ 1
+
+
+ IEndianMode
+ 1
+
+
+ IProcessor
+ 1
+
+
+ IExtraOptionsCheck
+ 0
+
+
+ IExtraOptions
+
+
+
+ CCLangConformance
+ 0
+
+
+ CCSignedPlainChar
+ 1
+
+
+ CCRequirePrototypes
+ 0
+
+
+ CCMultibyteSupport
+ 0
+
+
+ CCDiagWarnAreErr
+ 0
+
+
+ CCCompilerRuntimeInfo
+ 0
+
+
+ IFpuProcessor
+ 1
+
+
+ OutputFile
+ $FILE_BNAME$.o
+
+
+ CCLibConfigHeader
+ 1
+
+
+ PreInclude
+
+
+
+ CompilerMisraOverride
+ 0
+
+
+ CCIncludePath2
+ $PROJ_DIR$\..\..\..\..
+ $PROJ_DIR$\..\
+ $PROJ_DIR$\..\..\..\..\..
+
+
+ CCStdIncCheck
+ 0
+
+
+ CCCodeSection
+ .text
+
+
+ IInterwork2
+ 0
+
+
+ IProcessorMode2
+ 1
+
+
+ CCOptLevel
+ 3
+
+
+ CCOptStrategy
+ 0
+ 1
+
+
+ CCOptLevelSlave
+ 3
+
+
+ CompilerMisraRules98
+ 0
+ 1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111
+
+
+ CompilerMisraRules04
+ 0
+ 111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111
+
+
+ CCPosIndRopi
+ 0
+
+
+ CCPosIndRwpi
+ 0
+
+
+ CCPosIndNoDynInit
+ 0
+
+
+ IccLang
+ 0
+
+
+ IccCDialect
+ 1
+
+
+ IccAllowVLA
+ 0
+
+
+ IccCppDialect
+ 1
+
+
+ IccExceptions
+ 1
+
+
+ IccRTTI
+ 1
+
+
+ IccStaticDestr
+ 1
+
+
+ IccCppInlineSemantics
+ 1
+
+
+ IccCmsis
+ 1
+
+
+ IccFloatSemantics
+ 0
+
+
+ CCOptimizationNoSizeConstraints
+ 0
+
+
+ CCNoLiteralPool
+ 0
+
+
+ CCOptStrategySlave
+ 0
+ 1
+
+
+ CCGuardCalls
+ 1
+
+
+
+
+ AARM
+ 2
+
+ 9
+ 1
+ 1
+
+ AObjPrefix
+ 1
+
+
+ AEndian
+ 1
+
+
+ ACaseSensitivity
+ 1
+
+
+ MacroChars
+ 0
+ 0
+
+
+ AWarnEnable
+ 0
+
+
+ AWarnWhat
+ 0
+
+
+ AWarnOne
+
+
+
+ AWarnRange1
+
+
+
+ AWarnRange2
+
+
+
+ ADebug
+ 1
+
+
+ AltRegisterNames
+ 0
+
+
+ ADefines
+ ewarm
+
+
+ AList
+ 0
+
+
+ AListHeader
+ 1
+
+
+ AListing
+ 1
+
+
+ Includes
+ 0
+
+
+ MacDefs
+ 0
+
+
+ MacExps
+ 1
+
+
+ MacExec
+ 0
+
+
+ OnlyAssed
+ 0
+
+
+ MultiLine
+ 0
+
+
+ PageLengthCheck
+ 0
+
+
+ PageLength
+ 80
+
+
+ TabSpacing
+ 8
+
+
+ AXRef
+ 0
+
+
+ AXRefDefines
+ 0
+
+
+ AXRefInternal
+ 0
+
+
+ AXRefDual
+ 0
+
+
+ AProcessor
+ 1
+
+
+ AFpuProcessor
+ 1
+
+
+ AOutputFile
+ $FILE_BNAME$.o
+
+
+ AMultibyteSupport
+ 0
+
+
+ ALimitErrorsCheck
+ 0
+
+
+ ALimitErrorsEdit
+ 100
+
+
+ AIgnoreStdInclude
+ 0
+
+
+ AUserIncludes
+ $PROJ_DIR$\..\..\..\..
+
+
+ AExtraOptionsCheckV2
+ 0
+
+
+ AExtraOptionsV2
+
+
+
+ AsmNoLiteralPool
+ 0
+
+
+
+
+ OBJCOPY
+ 0
+
+ 1
+ 1
+ 1
+
+ OOCOutputFormat
+ 2
+ 2
+
+
+ OCOutputOverride
+ 0
+
+
+ OOCOutputFile
+ wolfCrypt-test.bin
+
+
+ OOCCommandLineProducer
+ 1
+
+
+ OOCObjCopyEnable
+ 1
+
+
+
+
+ CUSTOM
+ 3
+
+
+
+ 0
+
+
+
+ BICOMP
+ 0
+
+
+
+ BUILDACTION
+ 1
+
+
+
+
+
+
+ ILINK
+ 0
+
+ 16
+ 1
+ 1
+
+ IlinkLibIOConfig
+ 1
+
+
+ XLinkMisraHandler
+ 0
+
+
+ IlinkInputFileSlave
+ 0
+
+
+ IlinkOutputFile
+ test.out
+
+
+ IlinkDebugInfoEnable
+ 1
+
+
+ IlinkKeepSymbols
+
+
+
+ IlinkRawBinaryFile
+
+
+
+ IlinkRawBinarySymbol
+
+
+
+ IlinkRawBinarySegment
+
+
+
+ IlinkRawBinaryAlign
+
+
+
+ IlinkDefines
+
+
+
+ IlinkConfigDefines
+
+
+
+ IlinkMapFile
+ 1
+
+
+ IlinkLogFile
+ 0
+
+
+ IlinkLogInitialization
+ 0
+
+
+ IlinkLogModule
+ 0
+
+
+ IlinkLogSection
+ 0
+
+
+ IlinkLogVeneer
+ 0
+
+
+ IlinkIcfOverride
+ 1
+
+
+ IlinkIcfFile
+ $PROJ_DIR$\..\common\wolfssl.icf
+
+
+ IlinkIcfFileSlave
+
+
+
+ IlinkEnableRemarks
+ 0
+
+
+ IlinkSuppressDiags
+
+
+
+ IlinkTreatAsRem
+
+
+
+ IlinkTreatAsWarn
+
+
+
+ IlinkTreatAsErr
+
+
+
+ IlinkWarningsAreErrors
+ 0
+
+
+ IlinkUseExtraOptions
+ 0
+
+
+ IlinkExtraOptions
+
+
+
+ IlinkLowLevelInterfaceSlave
+ 1
+
+
+ IlinkAutoLibEnable
+ 1
+
+
+ IlinkAdditionalLibs
+
+
+
+ IlinkOverrideProgramEntryLabel
+ 1
+
+
+ IlinkProgramEntryLabelSelect
+ 0
+
+
+ IlinkProgramEntryLabel
+ __iar_program_start
+
+
+ DoFill
+ 0
+
+
+ FillerByte
+ 0xFF
+
+
+ FillerStart
+ 0x0
+
+
+ FillerEnd
+ 0x0
+
+
+ CrcSize
+ 0
+ 1
+
+
+ CrcAlign
+ 1
+
+
+ CrcPoly
+ 0x11021
+
+
+ CrcCompl
+ 0
+ 0
+
+
+ CrcBitOrder
+ 0
+ 0
+
+
+ CrcInitialValue
+ 0x0
+
+
+ DoCrc
+ 0
+
+
+ IlinkBE8Slave
+ 1
+
+
+ IlinkBufferedTerminalOutput
+ 1
+
+
+ IlinkStdoutInterfaceSlave
+ 1
+
+
+ CrcFullSize
+ 0
+
+
+ IlinkIElfToolPostProcess
+ 0
+
+
+ IlinkLogAutoLibSelect
+ 0
+
+
+ IlinkLogRedirSymbols
+ 0
+
+
+ IlinkLogUnusedFragments
+ 0
+
+
+ IlinkCrcReverseByteOrder
+ 0
+
+
+ IlinkCrcUseAsInput
+ 1
+
+
+ IlinkOptInline
+ 0
+
+
+ IlinkOptExceptionsAllow
+ 1
+
+
+ IlinkOptExceptionsForce
+ 0
+
+
+ IlinkCmsis
+ 1
+
+
+ IlinkOptMergeDuplSections
+ 0
+
+
+ IlinkOptUseVfe
+ 1
+
+
+ IlinkOptForceVfe
+ 0
+
+
+ IlinkStackAnalysisEnable
+ 0
+
+
+ IlinkStackControlFile
+
+
+
+ IlinkStackCallGraphFile
+
+
+
+ CrcAlgorithm
+ 0
+ 1
+
+
+ CrcUnitSize
+ 0
+ 0
+
+
+ IlinkThreadsSlave
+ 1
+
+
+
+
+ IARCHIVE
+ 0
+
+ 0
+ 1
+ 1
+
+ IarchiveInputs
+
+
+
+ IarchiveOverride
+ 0
+
+
+ IarchiveOutput
+ ###Unitialized###
+
+
+
+
+ BILINK
+ 0
+
+
+
+
+ Config
+
+ $PROJ_DIR$\..\user_settings.h
+
+
+
+ Lib
+
+ $PROJ_DIR$\..\lib\ewarm\Exe\wolfSSL-Lib.a
+
+
+
+ Source
+
+ $PROJ_DIR$\..\common\minimum-startup.c
+
+
+ $PROJ_DIR$\test-main.c
+
+
+ $PROJ_DIR$\..\..\..\..\wolfcrypt\test\test.c
+
+
+
+
+
diff --git a/IDE/IAR-EWARM/Projects/user_settings.h b/IDE/IAR-EWARM/Projects/user_settings.h
new file mode 100644
index 000000000..5e4f36e9a
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/user_settings.h
@@ -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 ; }
\ No newline at end of file
diff --git a/IDE/IAR-EWARM/Projects/wolfssl.eww b/IDE/IAR-EWARM/Projects/wolfssl.eww
new file mode 100644
index 000000000..b080e4115
--- /dev/null
+++ b/IDE/IAR-EWARM/Projects/wolfssl.eww
@@ -0,0 +1,224 @@
+
+
+
+
+ $WS_DIR$\benchmark\wolfCrypt-benchmark.ewp
+
+
+ $WS_DIR$\test\wolfCrypt-test.ewp
+
+
+ $WS_DIR$\lib\wolfSSL-Lib.ewp
+
+
+
+ All Examples
+
+ driverlib
+ Debug
+
+
+ grlib
+ Debug
+
+
+ usblib
+ Debug
+
+
+ aes128_cbc_decrypt
+ Debug
+
+
+ aes128_cbc_encrypt
+ Debug
+
+
+ aes128_ccm_decrypt
+ Debug
+
+
+ aes128_ccm_encrypt
+ Debug
+
+
+ aes128_cmac
+ Debug
+
+
+ aes128_ecb_decrypt
+ Debug
+
+
+ aes128_ecb_encrypt
+ Debug
+
+
+ aes128_gcm_decrypt
+ Debug
+
+
+ aes128_gcm_encrypt
+ Debug
+
+
+ bitband
+ Debug
+
+
+ blinky
+ Debug
+
+
+ boot_demo_uart
+ Debug
+
+
+ boot_demo_usb
+ Debug
+
+
+ calibrate
+ Debug
+
+
+ crc32
+ Debug
+
+
+ enet_io
+ Debug
+
+
+ enet_lwip
+ Debug
+
+
+ enet_uip
+ Debug
+
+
+ fontview
+ Debug
+
+
+ gpio_jtag
+ Debug
+
+
+ grlib_demo
+ Debug
+
+
+ hello
+ Debug
+
+
+ hello_widget
+ Debug
+
+
+ hibernate
+ Debug
+
+
+ interrupts
+ Debug
+
+
+ lang_demo
+ Debug
+
+
+ mpu_fault
+ Debug
+
+
+ qs_weather
+ Debug
+
+
+ scribble
+ Debug
+
+
+ sd_card
+ Debug
+
+
+ sha1_hash
+ Debug
+
+
+ sha1_hmac
+ Debug
+
+
+ synth
+ Debug
+
+
+ tamper
+ Debug
+
+
+ tdes_cbc_decrypt
+ Debug
+
+
+ tdes_cbc_encrypt
+ Debug
+
+
+ timers
+ Debug
+
+
+ uart_echo
+ Debug
+
+
+ udma_demo
+ Debug
+
+
+ usb_dev_bulk
+ Debug
+
+
+ usb_dev_keyboard
+ Debug
+
+
+ usb_dev_msc
+ Debug
+
+
+ usb_host_hub
+ Debug
+
+
+ usb_host_msc
+ Debug
+
+
+ usb_otg_mouse
+ Debug
+
+
+ usb_stick_demo
+ Debug
+
+
+ usb_stick_update
+ Debug
+
+
+ watchdog
+ Debug
+
+
+
+
+
+
diff --git a/IDE/IAR-EWARM/README b/IDE/IAR-EWARM/README
index f393cae30..2731104ea 100644
--- a/IDE/IAR-EWARM/README
+++ b/IDE/IAR-EWARM/README
@@ -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/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.
diff --git a/src/include.am b/src/include.am
index 8081e5e4c..80ed4de80 100644
--- a/src/include.am
+++ b/src/include.am
@@ -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
diff --git a/src/internal.c b/src/internal.c
index 1591acb3f..71553c263 100644
--- a/src/internal.c
+++ b/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
diff --git a/src/tls.c b/src/tls.c
index 754037bc3..f4c76d738 100644
--- a/src/tls.c
+++ b/src/tls.c
@@ -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;
diff --git a/wolfcrypt/benchmark/benchmark.c b/wolfcrypt/benchmark/benchmark.c
index 9c27980e7..f284774f3 100644
--- a/wolfcrypt/benchmark/benchmark.c
+++ b/wolfcrypt/benchmark/benchmark.c
@@ -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
diff --git a/wolfcrypt/src/aes.c b/wolfcrypt/src/aes.c
index 896ee147d..85f01a0d1 100644
--- a/wolfcrypt/src/aes.c
+++ b/wolfcrypt/src/aes.c
@@ -174,6 +174,11 @@ void wc_AesFreeCavium(Aes* aes)
}
#endif
#else /* HAVE_FIPS */
+
+#ifdef WOLFSSL_TI_CRYPT
+#include
+#else
+
#include
#include
#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 */
diff --git a/wolfcrypt/src/des3.c b/wolfcrypt/src/des3.c
index 5edb7f79e..f886ecdc7 100644
--- a/wolfcrypt/src/des3.c
+++ b/wolfcrypt/src/des3.c
@@ -129,6 +129,11 @@ void wc_Des3_FreeCavium(Des3* des3)
#endif /* HAVE_CAVIUM */
#else /* build without fips */
+
+#if defined(WOLFSSL_TI_CRYPT)
+ #include
+#else
+
#include
#include
@@ -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 */
diff --git a/wolfcrypt/src/hash.c b/wolfcrypt/src/hash.c
new file mode 100644
index 000000000..f275b50c1
--- /dev/null
+++ b/wolfcrypt/src/hash.c
@@ -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
+#endif
+
+#include
+
+#if !defined(WOLFSSL_TI_HASH)
+
+#if !defined(NO_MD5)
+#include
+#endif
+#if !defined(NO_SHA)
+#include
+#endif
+#if !defined(NO_SHA256)
+#include
+#endif
+
+#include
+
+#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
+
diff --git a/wolfcrypt/src/include.am b/wolfcrypt/src/include.am
index a6e815427..299921579 100644
--- a/wolfcrypt/src/include.am
+++ b/wolfcrypt/src/include.am
@@ -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
+
+
diff --git a/wolfcrypt/src/md5.c b/wolfcrypt/src/md5.c
index d2583bd9b..fbf732add 100644
--- a/wolfcrypt/src/md5.c
+++ b/wolfcrypt/src/md5.c
@@ -28,6 +28,10 @@
#if !defined(NO_MD5)
+#if defined(WOLFSSL_TI_HASH)
+ /* #include 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 */
diff --git a/wolfcrypt/src/port/ti/ti-aes.c b/wolfcrypt/src/port/ti/ti-aes.c
new file mode 100644
index 000000000..d38e7a3cb
--- /dev/null
+++ b/wolfcrypt/src/port/ti/ti-aes.c
@@ -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
+#endif
+
+#include
+
+#ifndef NO_AES
+
+
+#if defined(WOLFSSL_TI_CRYPT)
+#include
+#include
+
+#include
+#include
+#include
+
+#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 */
+
+
+
diff --git a/wolfcrypt/src/port/ti/ti-ccm.c b/wolfcrypt/src/port/ti/ti-ccm.c
new file mode 100644
index 000000000..09705cfb8
--- /dev/null
+++ b/wolfcrypt/src/port/ti/ti-ccm.c
@@ -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
+#endif
+
+#include
+
+#if defined(WOLFSSL_TI_CRYPT) || defined(WOLFSSL_TI_HASH)
+
+
+#include
+#include
+
+#include "driverlib/sysctl.h"
+#include "driverlib/rom_map.h"
+#include "driverlib/rom.h"
+
+#ifndef SINGLE_THREADED
+#include
+ static wolfSSL_Mutex TI_CCM_Mutex ;
+#endif
+
+#define TIMEOUT 500000
+#define WAIT(stat) { volatile int i ; for(i=0; i
+#endif
+
+#include
+
+#ifndef NO_DES
+
+#if defined(WOLFSSL_TI_CRYPT)
+#include
+#include
+
+#include
+#include
+#include
+
+#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 */
diff --git a/wolfcrypt/src/port/ti/ti-hash.c b/wolfcrypt/src/port/ti/ti-hash.c
new file mode 100644
index 000000000..98dbba870
--- /dev/null
+++ b/wolfcrypt/src/port/ti/ti-hash.c
@@ -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
+#endif
+
+#include
+
+#include
+
+#if defined(WOLFSSL_TI_HASH)
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#include
+#include
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#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
diff --git a/wolfcrypt/src/sha.c b/wolfcrypt/src/sha.c
index 0109b8363..be8cf17af 100644
--- a/wolfcrypt/src/sha.c
+++ b/wolfcrypt/src/sha.c
@@ -64,6 +64,10 @@
#else /* else build without fips */
+#if defined(WOLFSSL_TI_HASH)
+ /* #include 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 */
diff --git a/wolfcrypt/src/sha256.c b/wolfcrypt/src/sha256.c
old mode 100755
new mode 100644
index 2821166b4..f9f02b003
--- a/wolfcrypt/src/sha256.c
+++ b/wolfcrypt/src/sha256.c
@@ -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 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 */
diff --git a/wolfcrypt/src/wc_port.c b/wolfcrypt/src/wc_port.c
index 864ac2490..419033751 100644
--- a/wolfcrypt/src/wc_port.c
+++ b/wolfcrypt/src/wc_port.c
@@ -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 /* initialize and Mutex for TI Crypt Engine */
+ #include /* md5, sha1, sha224, sha256 */
+#endif
diff --git a/wolfssl/internal.h b/wolfssl/internal.h
index 65131fc05..99d3e9a95 100644
--- a/wolfssl/internal.h
+++ b/wolfssl/internal.h
@@ -88,6 +88,8 @@
#include
#endif
+#include
+
#ifdef WOLFSSL_CALLBACKS
#include
#include
diff --git a/wolfssl/test.h b/wolfssl/test.h
index 112c3301e..4c95d72c8 100644
--- a/wolfssl/test.h
+++ b/wolfssl/test.h
@@ -41,6 +41,13 @@
#include
#include
#include
+ 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
@@ -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) {
diff --git a/wolfssl/wolfcrypt/aes.h b/wolfssl/wolfcrypt/aes.h
index 5b6ad6a83..a94ad0801 100644
--- a/wolfssl/wolfcrypt/aes.h
+++ b/wolfssl/wolfcrypt/aes.h
@@ -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;
diff --git a/wolfssl/wolfcrypt/hash.h b/wolfssl/wolfcrypt/hash.h
new file mode 100644
index 000000000..bbc2d8b95
--- /dev/null
+++ b/wolfssl/wolfcrypt/hash.h
@@ -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
diff --git a/wolfssl/wolfcrypt/include.am b/wolfssl/wolfcrypt/include.am
index 2603f117c..1f3a726b8 100644
--- a/wolfssl/wolfcrypt/include.am
+++ b/wolfssl/wolfcrypt/include.am
@@ -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
diff --git a/wolfssl/wolfcrypt/md5.h b/wolfssl/wolfcrypt/md5.h
index ba8d89400..d0b134b6a 100644
--- a/wolfssl/wolfcrypt/md5.h
+++ b/wolfssl/wolfcrypt/md5.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
diff --git a/wolfssl/wolfcrypt/port/ti/ti-ccm.h b/wolfssl/wolfcrypt/port/ti/ti-ccm.h
new file mode 100644
index 000000000..f0fb24799
--- /dev/null
+++ b/wolfssl/wolfcrypt/port/ti/ti-ccm.h
@@ -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
+#endif
+
+#include
+
+#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
diff --git a/wolfssl/wolfcrypt/port/ti/ti-hash.h b/wolfssl/wolfcrypt/port/ti/ti-hash.h
new file mode 100644
index 000000000..505ccc498
--- /dev/null
+++ b/wolfssl/wolfcrypt/port/ti/ti-hash.h
@@ -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
+
+#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 */
diff --git a/wolfssl/wolfcrypt/settings.h b/wolfssl/wolfcrypt/settings.h
index 57c404a54..77212841a 100644
--- a/wolfssl/wolfcrypt/settings.h
+++ b/wolfssl/wolfcrypt/settings.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
diff --git a/wolfssl/wolfcrypt/sha.h b/wolfssl/wolfcrypt/sha.h
index 9fdabed39..80a2c9832 100644
--- a/wolfssl/wolfcrypt/sha.h
+++ b/wolfssl/wolfcrypt/sha.h
@@ -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*);
diff --git a/wolfssl/wolfcrypt/sha256.h b/wolfssl/wolfcrypt/sha256.h
index 5dbe2d74b..7cf6d8677 100644
--- a/wolfssl/wolfcrypt/sha256.h
+++ b/wolfssl/wolfcrypt/sha256.h
@@ -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*);