]> git.sur5r.net Git - freertos/commitdiff
Prepare for V7.2.0 release.
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 14 Aug 2012 12:14:48 +0000 (12:14 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Tue, 14 Aug 2012 12:14:48 +0000 (12:14 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@1771 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

1071 files changed:
FreeRTOS-Plus/CyaSSL/Makefile.am
FreeRTOS-Plus/CyaSSL/Makefile.in
FreeRTOS-Plus/CyaSSL/README
FreeRTOS-Plus/CyaSSL/certs/crl/cliCrl.pem [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/certs/crl/crl.pem
FreeRTOS-Plus/CyaSSL/certs/crl/crl.revoked [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/certs/crl/eccCliCRL.pem [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/certs/crl/eccSrvCRL.pem [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/certs/crl/include.am
FreeRTOS-Plus/CyaSSL/certs/include.am
FreeRTOS-Plus/CyaSSL/certs/server-ecc-rsa.pem [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/certs/taoCert.txt
FreeRTOS-Plus/CyaSSL/configure
FreeRTOS-Plus/CyaSSL/configure.ac
FreeRTOS-Plus/CyaSSL/ctaocrypt/benchmark/benchmark.c
FreeRTOS-Plus/CyaSSL/ctaocrypt/src/aes.c
FreeRTOS-Plus/CyaSSL/ctaocrypt/src/asn.c
FreeRTOS-Plus/CyaSSL/ctaocrypt/src/coding.c
FreeRTOS-Plus/CyaSSL/ctaocrypt/src/hmac.c
FreeRTOS-Plus/CyaSSL/ctaocrypt/src/integer.c
FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md2.c [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/ctaocrypt/test/test.c
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/aes.h
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/asn.h
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/error.h
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/hmac.h
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/include.am
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md2.h [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/misc.h
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/settings.h
FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/types.h
FreeRTOS-Plus/CyaSSL/cyassl/error.h
FreeRTOS-Plus/CyaSSL/cyassl/internal.h
FreeRTOS-Plus/CyaSSL/cyassl/ocsp.h
FreeRTOS-Plus/CyaSSL/cyassl/openssl/ssl.h
FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.h
FreeRTOS-Plus/CyaSSL/cyassl/sniffer_error.rc
FreeRTOS-Plus/CyaSSL/cyassl/ssl.h
FreeRTOS-Plus/CyaSSL/cyassl/test.h
FreeRTOS-Plus/CyaSSL/cyassl/version.h
FreeRTOS-Plus/CyaSSL/examples/client/client.c
FreeRTOS-Plus/CyaSSL/examples/echoclient/echoclient.c
FreeRTOS-Plus/CyaSSL/examples/echoserver/echoserver.c
FreeRTOS-Plus/CyaSSL/examples/server/server.c
FreeRTOS-Plus/CyaSSL/src/crl.c
FreeRTOS-Plus/CyaSSL/src/include.am
FreeRTOS-Plus/CyaSSL/src/internal.c
FreeRTOS-Plus/CyaSSL/src/io.c
FreeRTOS-Plus/CyaSSL/src/keys.c
FreeRTOS-Plus/CyaSSL/src/ocsp.c
FreeRTOS-Plus/CyaSSL/src/sniffer.c
FreeRTOS-Plus/CyaSSL/src/ssl.c
FreeRTOS-Plus/CyaSSL/src/tls.c
FreeRTOS-Plus/CyaSSL/sslSniffer/sslSnifferTest/snifftest.c
FreeRTOS-Plus/CyaSSL/tests/api.c
FreeRTOS-Plus/CyaSSL/tests/hash.c
FreeRTOS-Plus/CyaSSL/tests/include.am
FreeRTOS-Plus/CyaSSL/tests/suites.c
FreeRTOS-Plus/CyaSSL/tests/test-aesgcm-ecc.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-aesgcm-openssl.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-aesgcm.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-dtls.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-ecc.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-hc128.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-ntru.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-openssl.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test-psk.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/test.conf [new file with mode: 0644]
FreeRTOS-Plus/CyaSSL/tests/unit.c
FreeRTOS-Plus/CyaSSL/tests/unit.h
FreeRTOS-Plus/CyaSSL/testsuite/testsuite.c
FreeRTOS-Plus/Demo_Projects_Using_FreeRTOS_Simulator/FreeRTOS_Plus_CLI_with_Trace/CLI-commands.c
FreeRTOS/Demo/ARM7_AT91FR40008_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_AT91FR40008_GCC/Makefile
FreeRTOS/Demo/ARM7_AT91FR40008_GCC/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_AT91FR40008_GCC/main.c
FreeRTOS/Demo/ARM7_AT91FR40008_GCC/serial/serial.c
FreeRTOS/Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c
FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/USB/USBSample.c
FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/main.c
FreeRTOS/Demo/ARM7_AT91SAM7S64_IAR/serial/serial.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/Makefile
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USBSample.h
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/USB/USB_ISR.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/main.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/EMAC_ISR.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.c
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/SAM7_EMAC.h
FreeRTOS/Demo/ARM7_AT91SAM7X256_Eclipse/RTOSDemo/webserver/uIP_Task.h
FreeRTOS/Demo/ARM7_LPC2106_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_LPC2106_GCC/Makefile
FreeRTOS/Demo/ARM7_LPC2106_GCC/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_LPC2106_GCC/main.c
FreeRTOS/Demo/ARM7_LPC2106_GCC/serial/serial.c
FreeRTOS/Demo/ARM7_LPC2106_GCC/serial/serialISR.c
FreeRTOS/Demo/ARM7_LPC2129_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_LPC2129_IAR/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_LPC2129_IAR/main.c
FreeRTOS/Demo/ARM7_LPC2129_IAR/serial/serial.c
FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/main.c
FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/serial/serial.c
FreeRTOS/Demo/ARM7_LPC2129_Keil_RVDS/serial/serialISR.s
FreeRTOS/Demo/ARM7_LPC2138_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_LPC2138_Rowley/main.c
FreeRTOS/Demo/ARM7_LPC2138_Rowley/mainISR.c
FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/Makefile
FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/main.c
FreeRTOS/Demo/ARM7_LPC2368_Eclipse/RTOSDemo/webserver/uIP_Task.c
FreeRTOS/Demo/ARM7_LPC2368_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_LPC2368_Rowley/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_LPC2368_Rowley/main.c
FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/uIP_Task.c
FreeRTOS/Demo/ARM7_STR71x_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_STR71x_IAR/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_STR71x_IAR/main.c
FreeRTOS/Demo/ARM7_STR71x_IAR/serial/serial.c
FreeRTOS/Demo/ARM7_STR75x_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_STR75x_GCC/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_STR75x_GCC/main.c
FreeRTOS/Demo/ARM7_STR75x_GCC/serial/serial.c
FreeRTOS/Demo/ARM7_STR75x_GCC/serial/serialISR.c
FreeRTOS/Demo/ARM7_STR75x_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/ARM7_STR75x_IAR/ParTest/ParTest.c
FreeRTOS/Demo/ARM7_STR75x_IAR/main.c
FreeRTOS/Demo/ARM7_STR75x_IAR/serial/serial.c
FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/ParTest/ParTest.c
FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/main.c
FreeRTOS/Demo/ARM9_AT91SAM9XE_IAR/serial/serial.c
FreeRTOS/Demo/ARM9_STR91X_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/ARM9_STR91X_IAR/ParTest/ParTest.c
FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/include/lwIPWebServer/BasicWEB.h
FreeRTOS/Demo/ARM9_STR91X_IAR/lwip/lwipWebServer/BasicWEB.c
FreeRTOS/Demo/ARM9_STR91X_IAR/main.c
FreeRTOS/Demo/ARM9_STR91X_IAR/serial/serial.c
FreeRTOS/Demo/ARM9_STR91X_IAR/webserver/uIP_Task.c
FreeRTOS/Demo/AVR32_UC3/main.c
FreeRTOS/Demo/AVR_ATMega323_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/AVR_ATMega323_IAR/ParTest/ParTest.c
FreeRTOS/Demo/AVR_ATMega323_IAR/main.c
FreeRTOS/Demo/AVR_ATMega323_IAR/regtest.c
FreeRTOS/Demo/AVR_ATMega323_IAR/regtest.h
FreeRTOS/Demo/AVR_ATMega323_IAR/serial/serial.c
FreeRTOS/Demo/AVR_ATMega323_WinAVR/FreeRTOSConfig.h
FreeRTOS/Demo/AVR_ATMega323_WinAVR/ParTest/ParTest.c
FreeRTOS/Demo/AVR_ATMega323_WinAVR/main.c
FreeRTOS/Demo/AVR_ATMega323_WinAVR/regtest.c
FreeRTOS/Demo/AVR_ATMega323_WinAVR/regtest.h
FreeRTOS/Demo/AVR_ATMega323_WinAVR/serial/serial.c
FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/ParTest.c
FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/main-blinky.c
FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/main-full.c
FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/uIP_Task.c
FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/ParTest.c
FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/main-blinky.c
FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/main-full.c
FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/uIP_Task.c
FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/lcd_message.h
FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/main.c
FreeRTOS/Demo/CORTEX_AT91SAM3U256_IAR/serial/serial.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/ParTest.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/Serial.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/TimerTest.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_GCC/FreeRTOS_Demo.cydsn/main.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/ParTest.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/Serial.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/TimerTest.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_Keil/FreeRTOS_Demo.cydsn/main.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/ParTest.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/Serial.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/TimerTest.c
FreeRTOS/Demo/CORTEX_CY8C5588_PSoC_Creator_RVDS/FreeRTOS_Demo.cydsn/main.c
FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ParTest.c
FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/lcdtest.c
FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ledtest.c
FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/ledtest.h
FreeRTOS/Demo/CORTEX_EFMG890F128_IAR/main.c
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/ParTest.c
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/main-full.c
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/main_blinky.c
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/uIP_Task.c
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.c
FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/EMAC.h
FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo1/main.c
FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_GCC/Demo2/main.c
FreeRTOS/Demo/CORTEX_LM3S102_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_GCC/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_LM3S102_GCC/main.c
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo1/main.c
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/Demo2/main.c
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_LM3S102_KEIL/main.c
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/ParTest.c
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo1/main.c
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/ParTest.c
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo2/main.c
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/ParTest.c
FreeRTOS/Demo/CORTEX_LM3S102_Rowley/Demo3/main.c
FreeRTOS/Demo/CORTEX_LM3S316_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S316_IAR/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_LM3S316_IAR/commstest.c
FreeRTOS/Demo/CORTEX_LM3S316_IAR/commstest.h
FreeRTOS/Demo/CORTEX_LM3S316_IAR/main.c
FreeRTOS/Demo/CORTEX_LM3S811_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S811_GCC/main.c
FreeRTOS/Demo/CORTEX_LM3S811_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S811_IAR/main.c
FreeRTOS/Demo/CORTEX_LM3S811_KEIL/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3S811_KEIL/heap/heap_1.c
FreeRTOS/Demo/CORTEX_LM3S811_KEIL/main.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/Makefile
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/main.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/timertest.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/emac.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Eclipse/RTOSDemo/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/main.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/timertest.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/emac.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_IAR_Keil/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/main.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/timertest.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/emac.c
FreeRTOS/Demo/CORTEX_LM3Sxxxx_Rowley/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/main.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/emac.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/LED.h
FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/ParTest.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/main.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/emac.c
FreeRTOS/Demo/CORTEX_LPC1768_GCC_Rowley/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_LPC1768_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_LPC1768_IAR/LED.h
FreeRTOS/Demo/CORTEX_LPC1768_IAR/ParTest.c
FreeRTOS/Demo/CORTEX_LPC1768_IAR/main.c
FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/emac.c
FreeRTOS/Demo/CORTEX_LPC1768_IAR/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.c
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/IntQueueTimer.h
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/RegTest.c
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-blinky.c
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main-full.c
FreeRTOS/Demo/CORTEX_M0_LPC1114_LPCXpresso/RTOSDemo/Source/main.c
FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/ParTest.c
FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/RegTest.s
FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main-blinky.c
FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main-full.c
FreeRTOS/Demo/CORTEX_M0_STM32F0518_IAR/main.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_blinky.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_GCC_Atollic/src/main_full.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/RegTest.s
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_blinky.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_IAR/main_full.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/RegTest.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_blinky.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Keil/main_full.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_blinky.c
FreeRTOS/Demo/CORTEX_M4F_Infineon_XMC4500_Tasking/main_full.c
FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/ParTest.c
FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/RegTest.c
FreeRTOS/Demo/CORTEX_M4F_M0_LPC43xx_Keil/M4/main.c
FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/ParTest.c
FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/RegTest.s
FreeRTOS/Demo/CORTEX_M4F_STM32F407ZG-SK/main.c
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/comtest.c
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/Common-Demo-Source/include/demo_serial.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/ParTest.c
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main.c
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_blinky.c
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/main_full.c
FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/src/serial.c
FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/ParTest.c
FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/main-full.c
FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/main_blinky.c
FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/serial.c
FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/ParTest.c
FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/main-full.c
FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/main_blinky.c
FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/serial.c
FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_MPU_LM3Sxxxx_Rowley/main.c
FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_MPU_LPC1768_GCC_RedSuite/src/main.c
FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Simple_Demo_Source/main.c
FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.c
FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/Drivers/STM32_USART.h
FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_MCBSTM32.c
FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/ParTest/ParTest_ST_Eval.c
FreeRTOS/Demo/CORTEX_STM32F103_GCC_Rowley/main.c
FreeRTOS/Demo/CORTEX_STM32F103_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32F103_IAR/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_STM32F103_IAR/main.c
FreeRTOS/Demo/CORTEX_STM32F103_IAR/serial/serial.c
FreeRTOS/Demo/CORTEX_STM32F103_IAR/timertest.c
FreeRTOS/Demo/CORTEX_STM32F103_Keil/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32F103_Keil/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_STM32F103_Keil/main.c
FreeRTOS/Demo/CORTEX_STM32F103_Keil/serial/serial.c
FreeRTOS/Demo/CORTEX_STM32F103_Keil/timertest.c
FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/bitmap.h
FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/main.c
FreeRTOS/Demo/CORTEX_STM32F103_Primer_GCC/timertest.c
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/ParTest/ParTest.c
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/main.c
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/timertest.c
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.c
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/emac.h
FreeRTOS/Demo/CORTEX_STM32F107_GCC_Rowley/webserver/uIP_Task.c
FreeRTOS/Demo/CORTEX_STM32L152_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_STM32L152_IAR/ParTest.c
FreeRTOS/Demo/CORTEX_STM32L152_IAR/main.c
FreeRTOS/Demo/CORTEX_STM32L152_IAR/serial.c
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/7seg.c
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/7seg.h
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/FreeRTOSConfig.h
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/ParTest.c
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/RegTest.c
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/RegTest.h
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/demoGpio.h
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/main.c
FreeRTOS/Demo/CORTUS_APS3_GCC/Demo/serial.c
FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/FreeRTOSConfig.h
FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/ParTest/ParTest.c
FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/httpd/uIP_Task.c
FreeRTOS/Demo/ColdFire_MCF51CN128_CodeWarrior/Sources/main.c
FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOSConfig.h
FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/FreeRTOS_Tick_Setup.c
FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/ParTest/ParTest.c
FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/main.c
FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/sources/serial/serial.c
FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/main.c
FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/FEC.c
FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/uIP_Task.c
FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOSConfig.h
FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/FreeRTOS_Tick_Setup.c
FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.c
FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/HTTPDemo.h
FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/ParTest/ParTest.c
FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/main.c
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/FreeRTOS_Tick_Setup.c
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/IntQueueTimer.h
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/main.c
FreeRTOS/Demo/ColdFire_MCF5282_Eclipse/RTOSDemo/serial/serial.c
FreeRTOS/Demo/Common/Full/BlockQ.c
FreeRTOS/Demo/Common/Full/PollQ.c
FreeRTOS/Demo/Common/Full/comtest.c
FreeRTOS/Demo/Common/Full/death.c
FreeRTOS/Demo/Common/Full/dynamic.c
FreeRTOS/Demo/Common/Full/events.c
FreeRTOS/Demo/Common/Full/flash.c
FreeRTOS/Demo/Common/Full/flop.c
FreeRTOS/Demo/Common/Full/integer.c
FreeRTOS/Demo/Common/Full/print.c
FreeRTOS/Demo/Common/Full/semtest.c
FreeRTOS/Demo/Common/Minimal/AltBlckQ.c
FreeRTOS/Demo/Common/Minimal/AltBlock.c
FreeRTOS/Demo/Common/Minimal/AltPollQ.c
FreeRTOS/Demo/Common/Minimal/AltQTest.c
FreeRTOS/Demo/Common/Minimal/BlockQ.c
FreeRTOS/Demo/Common/Minimal/GenQTest.c
FreeRTOS/Demo/Common/Minimal/IntQueue.c
FreeRTOS/Demo/Common/Minimal/PollQ.c
FreeRTOS/Demo/Common/Minimal/QPeek.c
FreeRTOS/Demo/Common/Minimal/TimerDemo.c
FreeRTOS/Demo/Common/Minimal/blocktim.c
FreeRTOS/Demo/Common/Minimal/comtest.c
FreeRTOS/Demo/Common/Minimal/comtest_strings.c
FreeRTOS/Demo/Common/Minimal/countsem.c
FreeRTOS/Demo/Common/Minimal/crflash.c
FreeRTOS/Demo/Common/Minimal/crhook.c
FreeRTOS/Demo/Common/Minimal/death.c
FreeRTOS/Demo/Common/Minimal/dynamic.c
FreeRTOS/Demo/Common/Minimal/flash.c
FreeRTOS/Demo/Common/Minimal/flash_timer.c
FreeRTOS/Demo/Common/Minimal/flop.c
FreeRTOS/Demo/Common/Minimal/integer.c
FreeRTOS/Demo/Common/Minimal/recmutex.c
FreeRTOS/Demo/Common/Minimal/semtest.c
FreeRTOS/Demo/Common/Minimal/sp_flop.c
FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/MicroBlaze-Ethernet-Lite/ethernetif.c
FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/arch.c
FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/WinPCap/netif.h
FreeRTOS/Demo/Common/ethernet/lwip-1.4.0/ports/win32/ethernetif.c
FreeRTOS/Demo/Common/include/AltBlckQ.h
FreeRTOS/Demo/Common/include/AltBlock.h
FreeRTOS/Demo/Common/include/AltPollQ.h
FreeRTOS/Demo/Common/include/AltQTest.h
FreeRTOS/Demo/Common/include/BlockQ.h
FreeRTOS/Demo/Common/include/GenQTest.h
FreeRTOS/Demo/Common/include/IntQueue.h
FreeRTOS/Demo/Common/include/PollQ.h
FreeRTOS/Demo/Common/include/QPeek.h
FreeRTOS/Demo/Common/include/TimerDemo.h
FreeRTOS/Demo/Common/include/blocktim.h
FreeRTOS/Demo/Common/include/comtest.h
FreeRTOS/Demo/Common/include/comtest2.h
FreeRTOS/Demo/Common/include/comtest_strings.h
FreeRTOS/Demo/Common/include/countsem.h
FreeRTOS/Demo/Common/include/crflash.h
FreeRTOS/Demo/Common/include/crhook.h
FreeRTOS/Demo/Common/include/death.h
FreeRTOS/Demo/Common/include/dynamic.h
FreeRTOS/Demo/Common/include/fileIO.h
FreeRTOS/Demo/Common/include/flash.h
FreeRTOS/Demo/Common/include/flash_timer.h
FreeRTOS/Demo/Common/include/flop.h
FreeRTOS/Demo/Common/include/integer.h
FreeRTOS/Demo/Common/include/mevents.h
FreeRTOS/Demo/Common/include/partest.h
FreeRTOS/Demo/Common/include/print.h
FreeRTOS/Demo/Common/include/recmutex.h
FreeRTOS/Demo/Common/include/semtest.h
FreeRTOS/Demo/Common/include/serial.h
FreeRTOS/Demo/Cygnal/FreeRTOSConfig.h
FreeRTOS/Demo/Cygnal/Makefile
FreeRTOS/Demo/Cygnal/ParTest/ParTest.c
FreeRTOS/Demo/Cygnal/main.c
FreeRTOS/Demo/Cygnal/serial/serial.c
FreeRTOS/Demo/Flshlite/FRConfig.h
FreeRTOS/Demo/Flshlite/FileIO/fileIO.c
FreeRTOS/Demo/Flshlite/FreeRTOSConfig.h
FreeRTOS/Demo/Flshlite/ParTest/ParTest.c
FreeRTOS/Demo/Flshlite/main.c
FreeRTOS/Demo/Flshlite/serial/serial.c
FreeRTOS/Demo/H8S/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/H8S/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/H8S/RTOSDemo/main.c
FreeRTOS/Demo/H8S/RTOSDemo/serial/serial.c
FreeRTOS/Demo/HCS12_CodeWarrior_banked/FreeRTOSConfig.h
FreeRTOS/Demo/HCS12_CodeWarrior_banked/ParTest/ParTest.c
FreeRTOS/Demo/HCS12_CodeWarrior_banked/main.c
FreeRTOS/Demo/HCS12_CodeWarrior_banked/serial/serial.c
FreeRTOS/Demo/HCS12_CodeWarrior_small/FreeRTOSConfig.h
FreeRTOS/Demo/HCS12_CodeWarrior_small/ParTest/ParTest.c
FreeRTOS/Demo/HCS12_CodeWarrior_small/main.c
FreeRTOS/Demo/HCS12_CodeWarrior_small/serial/serial.c
FreeRTOS/Demo/HCS12_GCC_banked/FreeRTOSConfig.h
FreeRTOS/Demo/HCS12_GCC_banked/ParTest.c
FreeRTOS/Demo/HCS12_GCC_banked/main.c
FreeRTOS/Demo/HCS12_GCC_banked/startup.c
FreeRTOS/Demo/MB91460_Softune/SRC/FreeRTOSConfig.h
FreeRTOS/Demo/MB91460_Softune/SRC/crflash_modified.c
FreeRTOS/Demo/MB91460_Softune/SRC/main.c
FreeRTOS/Demo/MB91460_Softune/SRC/partest/partest.c
FreeRTOS/Demo/MB91460_Softune/SRC/serial/serial.c
FreeRTOS/Demo/MB91460_Softune/SRC/utility/taskutility.c
FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/FreeRTOSConfig.h
FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/crflash_sk16fx100mpc.c
FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/main.c
FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/partest/partest.c
FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/serial/serial.c
FreeRTOS/Demo/MB96340_Softune/FreeRTOS_96348hs_SK16FX100PMC/Src/utility/taskutility.c
FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DiceTask.c
FreeRTOS/Demo/MB96350_Softune_Dice_Kit/DiceTask.h
FreeRTOS/Demo/MB96350_Softune_Dice_Kit/FreeRTOSConfig.h
FreeRTOS/Demo/MB96350_Softune_Dice_Kit/ParTest/ParTest.c
FreeRTOS/Demo/MB96350_Softune_Dice_Kit/SegmentToggleTasks.c
FreeRTOS/Demo/MB96350_Softune_Dice_Kit/main.c
FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/FreeRTOSConfig.h
FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c
FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RegTest.asm
FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/RunTimeStatsConfig.c
FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/main.c
FreeRTOS/Demo/MSP430X_MSP430F5438_CCS/Demo_Source/serial.c
FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/ParTest.c
FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RegTest.s43
FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/RunTimeStatsConfig.c
FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/main.c
FreeRTOS/Demo/MSP430X_MSP430F5438_IAR/serial.c
FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h
FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c
FreeRTOS/Demo/MicroBlaze/main.c
FreeRTOS/Demo/MicroBlaze/serial/serial.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c
FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c
FreeRTOS/Demo/NEC_78K0R_IAR/ButtonISR.s26
FreeRTOS/Demo/NEC_78K0R_IAR/ButtonTask.c
FreeRTOS/Demo/NEC_78K0R_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/NEC_78K0R_IAR/RegTest.s26
FreeRTOS/Demo/NEC_78K0R_IAR/main.c
FreeRTOS/Demo/NEC_V850ES_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit.c
FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Fx3.c
FreeRTOS/Demo/NEC_V850ES_IAR/LowLevelInit/LowLevelInit_Hx2.c
FreeRTOS/Demo/NEC_V850ES_IAR/ParTest/ParTest_Fx3_App_Board.c
FreeRTOS/Demo/NEC_V850ES_IAR/ParTest/ParTest_Generic_Target_Board.c
FreeRTOS/Demo/NEC_V850ES_IAR/RegTest.s85
FreeRTOS/Demo/NEC_V850ES_IAR/main.c
FreeRTOS/Demo/NEC_V850ES_IAR/serial/serial.c
FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/main.c
FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/RTOSDemo/serial.c
FreeRTOS/Demo/PC/FRConfig.h
FreeRTOS/Demo/PC/FileIO/fileIO.c
FreeRTOS/Demo/PC/FreeRTOSConfig.h
FreeRTOS/Demo/PC/ParTest/ParTest.c
FreeRTOS/Demo/PC/main.c
FreeRTOS/Demo/PC/serial/serial.c
FreeRTOS/Demo/PIC18_MPLAB/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_MPLAB/ParTest/ParTest.c
FreeRTOS/Demo/PIC18_MPLAB/main1.c
FreeRTOS/Demo/PIC18_MPLAB/main2.c
FreeRTOS/Demo/PIC18_MPLAB/main3.c
FreeRTOS/Demo/PIC18_MPLAB/serial/serial.c
FreeRTOS/Demo/PIC18_WizC/Demo1/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo1/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo1/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo1/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo1/main.c
FreeRTOS/Demo/PIC18_WizC/Demo2/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo2/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo2/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo2/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo2/main.c
FreeRTOS/Demo/PIC18_WizC/Demo3/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo3/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo3/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo3/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo3/main.c
FreeRTOS/Demo/PIC18_WizC/Demo4/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo4/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo4/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo4/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo4/main.c
FreeRTOS/Demo/PIC18_WizC/Demo5/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo5/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo5/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo5/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo5/main.c
FreeRTOS/Demo/PIC18_WizC/Demo6/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo6/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo6/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo6/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo6/main.c
FreeRTOS/Demo/PIC18_WizC/Demo7/FreeRTOSConfig.h
FreeRTOS/Demo/PIC18_WizC/Demo7/WIZCmake.h
FreeRTOS/Demo/PIC18_WizC/Demo7/fuses.c
FreeRTOS/Demo/PIC18_WizC/Demo7/interrupt.c
FreeRTOS/Demo/PIC18_WizC/Demo7/main.c
FreeRTOS/Demo/PIC18_WizC/ParTest/ParTest.c
FreeRTOS/Demo/PIC18_WizC/serial/isrSerialRx.c
FreeRTOS/Demo/PIC18_WizC/serial/isrSerialTx.c
FreeRTOS/Demo/PIC18_WizC/serial/serial.c
FreeRTOS/Demo/PIC24_MPLAB/FreeRTOSConfig.h
FreeRTOS/Demo/PIC24_MPLAB/ParTest/ParTest.c
FreeRTOS/Demo/PIC24_MPLAB/lcd.c
FreeRTOS/Demo/PIC24_MPLAB/lcd.h
FreeRTOS/Demo/PIC24_MPLAB/main.c
FreeRTOS/Demo/PIC24_MPLAB/serial/serial.c
FreeRTOS/Demo/PIC24_MPLAB/timertest.c
FreeRTOS/Demo/PIC24_MPLAB/timertest.h
FreeRTOS/Demo/PIC32MX_MPLAB/FreeRTOSConfig.h
FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer.c
FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer.h
FreeRTOS/Demo/PIC32MX_MPLAB/IntQueueTimer_isr.S
FreeRTOS/Demo/PIC32MX_MPLAB/ParTest/ParTest.c
FreeRTOS/Demo/PIC32MX_MPLAB/RegisterTestTasks.S
FreeRTOS/Demo/PIC32MX_MPLAB/lcd.c
FreeRTOS/Demo/PIC32MX_MPLAB/lcd.h
FreeRTOS/Demo/PIC32MX_MPLAB/main.c
FreeRTOS/Demo/PIC32MX_MPLAB/main_blinky.c
FreeRTOS/Demo/PIC32MX_MPLAB/main_full.c
FreeRTOS/Demo/PIC32MX_MPLAB/serial/serial.c
FreeRTOS/Demo/PIC32MX_MPLAB/timertest.c
FreeRTOS/Demo/PIC32MX_MPLAB/timertest.h
FreeRTOS/Demo/PIC32MX_MPLAB/timertest_isr.S
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/main.c
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
FreeRTOS/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.c
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop-reg-test.h
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/flop/flop.c
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/main.c
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/partest/partest.c
FreeRTOS/Demo/PPC405_Xilinx_Virtex4_GCC/RTOSDemo/serial/serial.c
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.h
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c
FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c
FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/RegTest.s87
FreeRTOS/Demo/RL78_RL78G13_Promo_Board_IAR/main.c
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ButtonAndLCD.c
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/ButtonAndLCD.h
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/uIP_Task.c
FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/EMAC.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/ParTest.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/PriorityDefinitions.h
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/RegTest.s
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/main-blinky.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/main-full.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/uIP_Task.c
FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/EMAC.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/uIP_Task.c
FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/uIP_Task.c
FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/EMAC.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/ParTest.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/PriorityDefinitions.h
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/RegTest.s
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/main-blinky.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/main-full.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/uIP_Task.c
FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/EMAC.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/uIP_Task.c
FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/EMAC.c
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/include/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/HighFrequencyTimerTest.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/IntQueueTimer.h
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/ParTest.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-blinky.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/main-full.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/uIP_Task.c
FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/EMAC.c
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/ParTest/ParTest.c
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/flop.c
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/main.c
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/regtest.src
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/uIP_Task.c
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC.c
FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/EMAC_ISR.src
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/FreeRTOSConfig.h
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.c
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/InterruptNestTest.h
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/ParTest.c
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/main.c
FreeRTOS/Demo/TriCore_TC1782_TriBoard_GCC/RTOSDemo/serial.c
FreeRTOS/Demo/WIN32-MSVC/DemosModifiedForLowTickRate/recmutex.c
FreeRTOS/Demo/WIN32-MSVC/FreeRTOSConfig.h
FreeRTOS/Demo/WIN32-MSVC/main.c
FreeRTOS/Demo/WIN32-MingW/DemosModifiedForLowTickRate/recmutex.c
FreeRTOS/Demo/WIN32-MingW/FreeRTOSConfig.h
FreeRTOS/Demo/WIN32-MingW/main.c
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/FreeRTOSConfig.h
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.c
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/HTTP_Serv.h
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/Makefile
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCP.c
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCP.h
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/TCPISR.c
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/html_pages.h
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2c.c
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2c.h
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/i2cISR.c
FreeRTOS/Demo/WizNET_DEMO_GCC_ARM7/main.c
FreeRTOS/Demo/WizNET_DEMO_TERN_186/FreeRTOSConfig.h
FreeRTOS/Demo/WizNET_DEMO_TERN_186/HTTPTask.c
FreeRTOS/Demo/WizNET_DEMO_TERN_186/HTTPTask.h
FreeRTOS/Demo/WizNET_DEMO_TERN_186/main.c
FreeRTOS/Demo/WizNET_DEMO_TERN_186/serial/serial.c
FreeRTOS/Demo/dsPIC_MPLAB/FreeRTOSConfig.h
FreeRTOS/Demo/dsPIC_MPLAB/ParTest/ParTest.c
FreeRTOS/Demo/dsPIC_MPLAB/lcd.c
FreeRTOS/Demo/dsPIC_MPLAB/lcd.h
FreeRTOS/Demo/dsPIC_MPLAB/main.c
FreeRTOS/Demo/dsPIC_MPLAB/serial/serial.c
FreeRTOS/Demo/dsPIC_MPLAB/timertest.c
FreeRTOS/Demo/dsPIC_MPLAB/timertest.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/BasicWEB.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/EMAC/SAM7_EMAC_ISR.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/ParTest/ParTest.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USB-CDC.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/USBIsr.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/descriptors.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/USB/usb.h
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/main.c
FreeRTOS/Demo/lwIP_Demo_Rowley_ARM7/makefile
FreeRTOS/Demo/msp430_CrossWorks/FreeRTOSConfig.h
FreeRTOS/Demo/msp430_CrossWorks/ParTest/ParTest.c
FreeRTOS/Demo/msp430_CrossWorks/main.c
FreeRTOS/Demo/msp430_CrossWorks/serial/serial.c
FreeRTOS/Demo/msp430_CrossWorks/serial/serialASM.asm
FreeRTOS/Demo/msp430_GCC/FreeRTOSConfig.h
FreeRTOS/Demo/msp430_GCC/ParTest/ParTest.c
FreeRTOS/Demo/msp430_GCC/main.c
FreeRTOS/Demo/msp430_GCC/makefile
FreeRTOS/Demo/msp430_GCC/serial/serial.c
FreeRTOS/Demo/msp430_IAR/FreeRTOSConfig.h
FreeRTOS/Demo/msp430_IAR/ParTest/ParTest.c
FreeRTOS/Demo/msp430_IAR/main.c
FreeRTOS/Demo/msp430_IAR/serial/serial.c
FreeRTOS/Demo/msp430_IAR/serial/serialASM.s43
FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/EMAClISR.s79
FreeRTOS/Demo/uIP_Demo_IAR_ARM7/EMAC/SAM7_EMAC.c
FreeRTOS/Demo/uIP_Demo_IAR_ARM7/FreeRTOSConfig.h
FreeRTOS/Demo/uIP_Demo_IAR_ARM7/ParTest/ParTest.c
FreeRTOS/Demo/uIP_Demo_IAR_ARM7/main.c
FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/FreeRTOSConfig.h
FreeRTOS/Demo/uIP_Demo_Rowley_ARM7/main.c
FreeRTOS/Source/croutine.c
FreeRTOS/Source/include/FreeRTOS.h
FreeRTOS/Source/include/StackMacros.h
FreeRTOS/Source/include/croutine.h
FreeRTOS/Source/include/list.h
FreeRTOS/Source/include/mpu_wrappers.h
FreeRTOS/Source/include/portable.h
FreeRTOS/Source/include/projdefs.h
FreeRTOS/Source/include/queue.h
FreeRTOS/Source/include/semphr.h
FreeRTOS/Source/include/task.h
FreeRTOS/Source/include/timers.h
FreeRTOS/Source/list.c
FreeRTOS/Source/portable/BCC/16BitDOS/Flsh186/port.c
FreeRTOS/Source/portable/BCC/16BitDOS/Flsh186/prtmacro.h
FreeRTOS/Source/portable/BCC/16BitDOS/PC/port.c
FreeRTOS/Source/portable/BCC/16BitDOS/PC/prtmacro.h
FreeRTOS/Source/portable/BCC/16BitDOS/common/portasm.h
FreeRTOS/Source/portable/BCC/16BitDOS/common/portcomn.c
FreeRTOS/Source/portable/CCS/MSP430X/data_model.h
FreeRTOS/Source/portable/CCS/MSP430X/port.c
FreeRTOS/Source/portable/CCS/MSP430X/portext.asm
FreeRTOS/Source/portable/CCS/MSP430X/portmacro.h
FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/port.c
FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/portasm.S
FreeRTOS/Source/portable/CodeWarrior/ColdFire_V1/portmacro.h
FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/port.c
FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/portasm.S
FreeRTOS/Source/portable/CodeWarrior/ColdFire_V2/portmacro.h
FreeRTOS/Source/portable/CodeWarrior/HCS12/port.c
FreeRTOS/Source/portable/CodeWarrior/HCS12/portmacro.h
FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/port.c
FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/portISR.c
FreeRTOS/Source/portable/GCC/ARM7_AT91FR40008/portmacro.h
FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/port.c
FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/portISR.c
FreeRTOS/Source/portable/GCC/ARM7_AT91SAM7S/portmacro.h
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/port.c
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portISR.c
FreeRTOS/Source/portable/GCC/ARM7_LPC2000/portmacro.h
FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/port.c
FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/portISR.c
FreeRTOS/Source/portable/GCC/ARM7_LPC23xx/portmacro.h
FreeRTOS/Source/portable/GCC/ARM_CM0/port.c
FreeRTOS/Source/portable/GCC/ARM_CM0/portmacro.h
FreeRTOS/Source/portable/GCC/ARM_CM3/port.c
FreeRTOS/Source/portable/GCC/ARM_CM3/portmacro.h
FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/portmacro.h
FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c
FreeRTOS/Source/portable/GCC/ARM_CM4F/portmacro.h
FreeRTOS/Source/portable/GCC/ATMega323/port.c
FreeRTOS/Source/portable/GCC/ATMega323/portmacro.h
FreeRTOS/Source/portable/GCC/AVR32_UC3/port.c
FreeRTOS/Source/portable/GCC/AVR32_UC3/portmacro.h
FreeRTOS/Source/portable/GCC/CORTUS_APS3/port.c
FreeRTOS/Source/portable/GCC/CORTUS_APS3/portmacro.h
FreeRTOS/Source/portable/GCC/ColdFire_V2/port.c
FreeRTOS/Source/portable/GCC/ColdFire_V2/portasm.S
FreeRTOS/Source/portable/GCC/ColdFire_V2/portmacro.h
FreeRTOS/Source/portable/GCC/H8S2329/port.c
FreeRTOS/Source/portable/GCC/H8S2329/portmacro.h
FreeRTOS/Source/portable/GCC/HCS12/port.c
FreeRTOS/Source/portable/GCC/HCS12/portmacro.h
FreeRTOS/Source/portable/GCC/MSP430F449/port.c
FreeRTOS/Source/portable/GCC/MSP430F449/portmacro.h
FreeRTOS/Source/portable/GCC/MicroBlaze/port.c
FreeRTOS/Source/portable/GCC/MicroBlaze/portasm.s
FreeRTOS/Source/portable/GCC/MicroBlaze/portmacro.h
FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c
FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c
FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S
FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h
FreeRTOS/Source/portable/GCC/NiosII/port.c
FreeRTOS/Source/portable/GCC/NiosII/port_asm.S
FreeRTOS/Source/portable/GCC/NiosII/portmacro.h
FreeRTOS/Source/portable/GCC/PPC405_Xilinx/FPU_Macros.h
FreeRTOS/Source/portable/GCC/PPC405_Xilinx/port.c
FreeRTOS/Source/portable/GCC/PPC405_Xilinx/portasm.S
FreeRTOS/Source/portable/GCC/PPC405_Xilinx/portmacro.h
FreeRTOS/Source/portable/GCC/PPC440_Xilinx/FPU_Macros.h
FreeRTOS/Source/portable/GCC/PPC440_Xilinx/port.c
FreeRTOS/Source/portable/GCC/PPC440_Xilinx/portasm.S
FreeRTOS/Source/portable/GCC/PPC440_Xilinx/portmacro.h
FreeRTOS/Source/portable/GCC/RX600/port.c
FreeRTOS/Source/portable/GCC/RX600/portmacro.h
FreeRTOS/Source/portable/GCC/STR75x/port.c
FreeRTOS/Source/portable/GCC/STR75x/portISR.c
FreeRTOS/Source/portable/GCC/STR75x/portmacro.h
FreeRTOS/Source/portable/GCC/TriCore_1782/port.c
FreeRTOS/Source/portable/GCC/TriCore_1782/portmacro.h
FreeRTOS/Source/portable/GCC/TriCore_1782/porttrap.c
FreeRTOS/Source/portable/IAR/78K0R/ISR_Support.h
FreeRTOS/Source/portable/IAR/78K0R/port.c
FreeRTOS/Source/portable/IAR/78K0R/portasm.s26
FreeRTOS/Source/portable/IAR/78K0R/portmacro.h
FreeRTOS/Source/portable/IAR/ARM_CM0/port.c
FreeRTOS/Source/portable/IAR/ARM_CM0/portasm.s
FreeRTOS/Source/portable/IAR/ARM_CM0/portmacro.h
FreeRTOS/Source/portable/IAR/ARM_CM3/port.c
FreeRTOS/Source/portable/IAR/ARM_CM3/portasm.s
FreeRTOS/Source/portable/IAR/ARM_CM3/portmacro.h
FreeRTOS/Source/portable/IAR/ARM_CM4F/port.c
FreeRTOS/Source/portable/IAR/ARM_CM4F/portasm.s
FreeRTOS/Source/portable/IAR/ARM_CM4F/portmacro.h
FreeRTOS/Source/portable/IAR/ATMega323/port.c
FreeRTOS/Source/portable/IAR/ATMega323/portmacro.h
FreeRTOS/Source/portable/IAR/ATMega323/portmacro.s90
FreeRTOS/Source/portable/IAR/AVR32_UC3/port.c
FreeRTOS/Source/portable/IAR/AVR32_UC3/portmacro.h
FreeRTOS/Source/portable/IAR/AtmelSAM7S64/ISR_Support.h
FreeRTOS/Source/portable/IAR/AtmelSAM7S64/port.c
FreeRTOS/Source/portable/IAR/AtmelSAM7S64/portasm.s79
FreeRTOS/Source/portable/IAR/AtmelSAM7S64/portmacro.h
FreeRTOS/Source/portable/IAR/AtmelSAM9XE/port.c
FreeRTOS/Source/portable/IAR/AtmelSAM9XE/portmacro.h
FreeRTOS/Source/portable/IAR/LPC2000/ISR_Support.h
FreeRTOS/Source/portable/IAR/LPC2000/port.c
FreeRTOS/Source/portable/IAR/LPC2000/portasm.s79
FreeRTOS/Source/portable/IAR/LPC2000/portmacro.h
FreeRTOS/Source/portable/IAR/MSP430/port.c
FreeRTOS/Source/portable/IAR/MSP430/portasm.h
FreeRTOS/Source/portable/IAR/MSP430/portext.s43
FreeRTOS/Source/portable/IAR/MSP430/portmacro.h
FreeRTOS/Source/portable/IAR/MSP430X/data_model.h
FreeRTOS/Source/portable/IAR/MSP430X/port.c
FreeRTOS/Source/portable/IAR/MSP430X/portext.s43
FreeRTOS/Source/portable/IAR/MSP430X/portmacro.h
FreeRTOS/Source/portable/IAR/RL78/ISR_Support.h
FreeRTOS/Source/portable/IAR/RL78/port.c
FreeRTOS/Source/portable/IAR/RL78/portasm.s87
FreeRTOS/Source/portable/IAR/RL78/portmacro.h
FreeRTOS/Source/portable/IAR/RX600/port.c
FreeRTOS/Source/portable/IAR/RX600/port_asm.s
FreeRTOS/Source/portable/IAR/RX600/portmacro.h
FreeRTOS/Source/portable/IAR/STR71x/ISR_Support.h
FreeRTOS/Source/portable/IAR/STR71x/port.c
FreeRTOS/Source/portable/IAR/STR71x/portasm.s79
FreeRTOS/Source/portable/IAR/STR71x/portmacro.h
FreeRTOS/Source/portable/IAR/STR75x/ISR_Support.h
FreeRTOS/Source/portable/IAR/STR75x/port.c
FreeRTOS/Source/portable/IAR/STR75x/portasm.s79
FreeRTOS/Source/portable/IAR/STR75x/portmacro.h
FreeRTOS/Source/portable/IAR/STR91x/ISR_Support.h
FreeRTOS/Source/portable/IAR/STR91x/port.c
FreeRTOS/Source/portable/IAR/STR91x/portasm.s79
FreeRTOS/Source/portable/IAR/STR91x/portmacro.h
FreeRTOS/Source/portable/IAR/V850ES/ISR_Support.h
FreeRTOS/Source/portable/IAR/V850ES/port.c
FreeRTOS/Source/portable/IAR/V850ES/portasm.s85
FreeRTOS/Source/portable/IAR/V850ES/portasm_Fx3.s85
FreeRTOS/Source/portable/IAR/V850ES/portasm_Hx2.s85
FreeRTOS/Source/portable/IAR/V850ES/portmacro.h
FreeRTOS/Source/portable/MPLAB/PIC18F/port.c
FreeRTOS/Source/portable/MPLAB/PIC18F/portmacro.h
FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/port.c
FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portasm_PIC24.S
FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portasm_dsPIC.S
FreeRTOS/Source/portable/MPLAB/PIC24_dsPIC/portmacro.h
FreeRTOS/Source/portable/MPLAB/PIC32MX/ISR_Support.h
FreeRTOS/Source/portable/MPLAB/PIC32MX/port.c
FreeRTOS/Source/portable/MPLAB/PIC32MX/port_asm.S
FreeRTOS/Source/portable/MPLAB/PIC32MX/portmacro.h
FreeRTOS/Source/portable/MSVC-MingW/port.c
FreeRTOS/Source/portable/MSVC-MingW/portmacro.h
FreeRTOS/Source/portable/MemMang/heap_1.c
FreeRTOS/Source/portable/MemMang/heap_2.c
FreeRTOS/Source/portable/MemMang/heap_3.c
FreeRTOS/Source/portable/MemMang/heap_4.c
FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/port.c
FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/portasm.h
FreeRTOS/Source/portable/Paradigm/Tern_EE/large_untested/portmacro.h
FreeRTOS/Source/portable/Paradigm/Tern_EE/small/port.c
FreeRTOS/Source/portable/Paradigm/Tern_EE/small/portasm.h
FreeRTOS/Source/portable/Paradigm/Tern_EE/small/portmacro.h
FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/port.c
FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portASM.s
FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portmacro.h
FreeRTOS/Source/portable/RVDS/ARM7_LPC21xx/portmacro.inc
FreeRTOS/Source/portable/RVDS/ARM_CM3/port.c
FreeRTOS/Source/portable/RVDS/ARM_CM3/portmacro.h
FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c
FreeRTOS/Source/portable/RVDS/ARM_CM4F/portmacro.h
FreeRTOS/Source/portable/Renesas/RX200/port.c
FreeRTOS/Source/portable/Renesas/RX200/port_asm.src
FreeRTOS/Source/portable/Renesas/RX200/portmacro.h
FreeRTOS/Source/portable/Renesas/RX600/port.c
FreeRTOS/Source/portable/Renesas/RX600/port_asm.src
FreeRTOS/Source/portable/Renesas/RX600/portmacro.h
FreeRTOS/Source/portable/Renesas/SH2A_FPU/ISR_Support.inc
FreeRTOS/Source/portable/Renesas/SH2A_FPU/port.c
FreeRTOS/Source/portable/Renesas/SH2A_FPU/portasm.src
FreeRTOS/Source/portable/Renesas/SH2A_FPU/portmacro.h
FreeRTOS/Source/portable/Rowley/MSP430F449/port.c
FreeRTOS/Source/portable/Rowley/MSP430F449/portasm.h
FreeRTOS/Source/portable/Rowley/MSP430F449/portext.asm
FreeRTOS/Source/portable/Rowley/MSP430F449/portmacro.h
FreeRTOS/Source/portable/SDCC/Cygnal/port.c
FreeRTOS/Source/portable/SDCC/Cygnal/portmacro.h
FreeRTOS/Source/portable/Softune/MB91460/port.c
FreeRTOS/Source/portable/Softune/MB91460/portmacro.h
FreeRTOS/Source/portable/Softune/MB96340/port.c
FreeRTOS/Source/portable/Softune/MB96340/portmacro.h
FreeRTOS/Source/portable/Tasking/ARM_CM4F/port.c
FreeRTOS/Source/portable/Tasking/ARM_CM4F/port_asm.asm
FreeRTOS/Source/portable/Tasking/ARM_CM4F/portmacro.h
FreeRTOS/Source/portable/WizC/PIC18/Drivers/Tick/Tick.c
FreeRTOS/Source/portable/WizC/PIC18/Drivers/Tick/isrTick.c
FreeRTOS/Source/portable/WizC/PIC18/Install.bat
FreeRTOS/Source/portable/WizC/PIC18/addFreeRTOS.h
FreeRTOS/Source/portable/WizC/PIC18/port.c
FreeRTOS/Source/portable/WizC/PIC18/portmacro.h
FreeRTOS/Source/portable/oWatcom/16BitDOS/Flsh186/port.c
FreeRTOS/Source/portable/oWatcom/16BitDOS/Flsh186/portmacro.h
FreeRTOS/Source/portable/oWatcom/16BitDOS/PC/port.c
FreeRTOS/Source/portable/oWatcom/16BitDOS/PC/portmacro.h
FreeRTOS/Source/portable/oWatcom/16BitDOS/common/portasm.h
FreeRTOS/Source/portable/oWatcom/16BitDOS/common/portcomn.c
FreeRTOS/Source/queue.c
FreeRTOS/Source/tasks.c
FreeRTOS/Source/timers.c

index 95d4ead563cc91779f4bc8e4679e55304aaca2c9..83626653036bbb69d2ade5d0ac874baab5802eb2 100644 (file)
@@ -21,10 +21,6 @@ exampledir = $(docdir)/@PACKAGE@/example
 example_DATA=
 EXTRA_DIST+= $(example_DATA)
 
-certsdir = $(sysconfdir)/ssl/certs
-certs_DATA=
-EXTRA_DIST+= $(certs_DATA)
-
 EXTRA_DIST+= $(doc_DATA)
 
 ACLOCAL_AMFLAGS= -I m4 --install
index 42db534395f0945937c6d6134e749765640645c2..f40b3da910fa4ca457ea54235421f743836df836 100644 (file)
@@ -134,16 +134,19 @@ DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
        config/config.sub config/depcomp config/install-sh \
        config/ltmain.sh config/missing
 @BUILD_AESNI_TRUE@am__append_1 = ctaocrypt/src/aes_asm.s
-@BUILD_RIPEMD_TRUE@am__append_2 = ctaocrypt/src/ripemd.c
-@BUILD_SHA512_TRUE@am__append_3 = ctaocrypt/src/sha512.c
-@BUILD_SNIFFER_TRUE@am__append_4 = src/sniffer.c
-@BUILD_HC128_TRUE@am__append_5 = ctaocrypt/src/hc128.c
-@BUILD_NOINLINE_TRUE@am__append_6 = ctaocrypt/src/misc.c
-@BUILD_FASTMATH_TRUE@am__append_7 = ctaocrypt/src/tfm.c
-@BUILD_FASTMATH_FALSE@am__append_8 = ctaocrypt/src/integer.c
-@BUILD_ECC_TRUE@am__append_9 = ctaocrypt/src/ecc.c
-@BUILD_OCSP_TRUE@am__append_10 = src/ocsp.c
-@BUILD_CRL_TRUE@am__append_11 = src/crl.c
+@BUILD_MD2_TRUE@am__append_2 = ctaocrypt/src/md2.c
+@BUILD_RIPEMD_TRUE@am__append_3 = ctaocrypt/src/ripemd.c
+@BUILD_SHA512_TRUE@am__append_4 = ctaocrypt/src/sha512.c
+@BUILD_SNIFFER_TRUE@am__append_5 = src/sniffer.c
+@BUILD_HC128_TRUE@am__append_6 = ctaocrypt/src/hc128.c
+@BUILD_NOINLINE_TRUE@am__append_7 = ctaocrypt/src/misc.c
+@BUILD_FASTMATH_TRUE@am__append_8 = ctaocrypt/src/tfm.c
+@BUILD_FASTMATH_FALSE@am__append_9 = ctaocrypt/src/integer.c
+@BUILD_ECC_TRUE@am__append_10 = ctaocrypt/src/ecc.c
+@BUILD_OCSP_TRUE@am__append_11 = src/ocsp.c
+@BUILD_CRL_TRUE@am__append_12 = src/crl.c
+@BUILD_CRL_MONITOR_TRUE@am__append_13 = $(PTHREAD_CFLAGS)
+@BUILD_CRL_MONITOR_TRUE@am__append_14 = $(PTHREAD_LIBS)
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_pthread.m4 \
@@ -166,13 +169,14 @@ am__vpath_adj = case $$p in \
   esac;
 am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
-       "$(DESTDIR)$(certsdir)" "$(DESTDIR)$(docdir)" \
-       "$(DESTDIR)$(exampledir)" "$(DESTDIR)$(includedir)" \
-       "$(DESTDIR)$(includedir)"
+       "$(DESTDIR)$(docdir)" "$(DESTDIR)$(exampledir)" \
+       "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"
 libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
-src_libcyassl_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
+@BUILD_CRL_MONITOR_TRUE@am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+src_libcyassl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+       $(am__DEPENDENCIES_2)
 am__src_libcyassl_la_SOURCES_DIST = src/internal.c src/io.c src/keys.c \
        src/ssl.c src/tls.c ctaocrypt/src/asn.c ctaocrypt/src/coding.c \
        ctaocrypt/src/des3.c ctaocrypt/src/hmac.c ctaocrypt/src/md5.c \
@@ -181,28 +185,30 @@ am__src_libcyassl_la_SOURCES_DIST = src/internal.c src/io.c src/keys.c \
        ctaocrypt/src/dh.c ctaocrypt/src/dsa.c ctaocrypt/src/arc4.c \
        ctaocrypt/src/rabbit.c ctaocrypt/src/pwdbased.c \
        ctaocrypt/src/logging.c ctaocrypt/src/memory.c \
-       ctaocrypt/src/aes_asm.s ctaocrypt/src/ripemd.c \
-       ctaocrypt/src/sha512.c src/sniffer.c ctaocrypt/src/hc128.c \
-       ctaocrypt/src/misc.c ctaocrypt/src/tfm.c \
+       ctaocrypt/src/aes_asm.s ctaocrypt/src/md2.c \
+       ctaocrypt/src/ripemd.c ctaocrypt/src/sha512.c src/sniffer.c \
+       ctaocrypt/src/hc128.c ctaocrypt/src/misc.c ctaocrypt/src/tfm.c \
        ctaocrypt/src/integer.c ctaocrypt/src/ecc.c src/ocsp.c \
        src/crl.c
 am__dirstamp = $(am__leading_dot)dirstamp
 @BUILD_AESNI_TRUE@am__objects_1 = ctaocrypt/src/aes_asm.lo
-@BUILD_RIPEMD_TRUE@am__objects_2 =  \
+@BUILD_MD2_TRUE@am__objects_2 = ctaocrypt/src/src_libcyassl_la-md2.lo
+@BUILD_RIPEMD_TRUE@am__objects_3 =  \
 @BUILD_RIPEMD_TRUE@    ctaocrypt/src/src_libcyassl_la-ripemd.lo
-@BUILD_SHA512_TRUE@am__objects_3 =  \
+@BUILD_SHA512_TRUE@am__objects_4 =  \
 @BUILD_SHA512_TRUE@    ctaocrypt/src/src_libcyassl_la-sha512.lo
-@BUILD_SNIFFER_TRUE@am__objects_4 = src/src_libcyassl_la-sniffer.lo
-@BUILD_HC128_TRUE@am__objects_5 =  \
+@BUILD_SNIFFER_TRUE@am__objects_5 = src/src_libcyassl_la-sniffer.lo
+@BUILD_HC128_TRUE@am__objects_6 =  \
 @BUILD_HC128_TRUE@     ctaocrypt/src/src_libcyassl_la-hc128.lo
-@BUILD_NOINLINE_TRUE@am__objects_6 =  \
+@BUILD_NOINLINE_TRUE@am__objects_7 =  \
 @BUILD_NOINLINE_TRUE@  ctaocrypt/src/src_libcyassl_la-misc.lo
-@BUILD_FASTMATH_TRUE@am__objects_7 =  \
+@BUILD_FASTMATH_TRUE@am__objects_8 =  \
 @BUILD_FASTMATH_TRUE@  ctaocrypt/src/src_libcyassl_la-tfm.lo
-@BUILD_FASTMATH_FALSE@am__objects_8 = ctaocrypt/src/src_libcyassl_la-integer.lo
-@BUILD_ECC_TRUE@am__objects_9 = ctaocrypt/src/src_libcyassl_la-ecc.lo
-@BUILD_OCSP_TRUE@am__objects_10 = src/src_libcyassl_la-ocsp.lo
-@BUILD_CRL_TRUE@am__objects_11 = src/src_libcyassl_la-crl.lo
+@BUILD_FASTMATH_FALSE@am__objects_9 = ctaocrypt/src/src_libcyassl_la-integer.lo
+@BUILD_ECC_TRUE@am__objects_10 =  \
+@BUILD_ECC_TRUE@       ctaocrypt/src/src_libcyassl_la-ecc.lo
+@BUILD_OCSP_TRUE@am__objects_11 = src/src_libcyassl_la-ocsp.lo
+@BUILD_CRL_TRUE@am__objects_12 = src/src_libcyassl_la-crl.lo
 am_src_libcyassl_la_OBJECTS = src/src_libcyassl_la-internal.lo \
        src/src_libcyassl_la-io.lo src/src_libcyassl_la-keys.lo \
        src/src_libcyassl_la-ssl.lo src/src_libcyassl_la-tls.lo \
@@ -227,7 +233,7 @@ am_src_libcyassl_la_OBJECTS = src/src_libcyassl_la-internal.lo \
        $(am__objects_2) $(am__objects_3) $(am__objects_4) \
        $(am__objects_5) $(am__objects_6) $(am__objects_7) \
        $(am__objects_8) $(am__objects_9) $(am__objects_10) \
-       $(am__objects_11)
+       $(am__objects_11) $(am__objects_12)
 src_libcyassl_la_OBJECTS = $(am_src_libcyassl_la_OBJECTS)
 src_libcyassl_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_libcyassl_la_CFLAGS) \
@@ -261,7 +267,9 @@ sslSniffer_sslSnifferTest_snifftest_OBJECTS =  \
 am_tests_unit_OBJECTS = tests/tests_unit-unit.$(OBJEXT) \
        tests/tests_unit-api.$(OBJEXT) \
        tests/tests_unit-suites.$(OBJEXT) \
-       tests/tests_unit-hash.$(OBJEXT)
+       tests/tests_unit-hash.$(OBJEXT) \
+       examples/client/tests_unit-client.$(OBJEXT) \
+       examples/server/tests_unit-server.$(OBJEXT)
 tests_unit_OBJECTS = $(am_tests_unit_OBJECTS)
 tests_unit_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
        $(LIBTOOLFLAGS) --mode=link $(CCLD) $(tests_unit_CFLAGS) \
@@ -311,10 +319,9 @@ DIST_SOURCES = $(am__src_libcyassl_la_SOURCES_DIST) \
        $(examples_server_server_SOURCES) \
        $(sslSniffer_sslSnifferTest_snifftest_SOURCES) \
        $(tests_unit_SOURCES) $(testsuite_testsuite_SOURCES)
-certsDATA_INSTALL = $(INSTALL_DATA)
 docDATA_INSTALL = $(INSTALL_DATA)
 exampleDATA_INSTALL = $(INSTALL_DATA)
-DATA = $(certs_DATA) $(doc_DATA) $(example_DATA)
+DATA = $(doc_DATA) $(example_DATA)
 includeHEADERS_INSTALL = $(INSTALL_HEADER)
 nobase_includeHEADERS_INSTALL = $(install_sh_DATA)
 HEADERS = $(include_HEADERS) $(nobase_include_HEADERS) \
@@ -483,19 +490,19 @@ nobase_include_HEADERS = cyassl/ctaocrypt/aes.h \
        cyassl/ctaocrypt/dsa.h cyassl/ctaocrypt/ecc.h \
        cyassl/ctaocrypt/error.h cyassl/ctaocrypt/hc128.h \
        cyassl/ctaocrypt/hmac.h cyassl/ctaocrypt/integer.h \
-       cyassl/ctaocrypt/md4.h cyassl/ctaocrypt/md5.h \
-       cyassl/ctaocrypt/misc.h cyassl/ctaocrypt/pwdbased.h \
-       cyassl/ctaocrypt/rabbit.h cyassl/ctaocrypt/random.h \
-       cyassl/ctaocrypt/ripemd.h cyassl/ctaocrypt/rsa.h \
-       cyassl/ctaocrypt/settings.h cyassl/ctaocrypt/sha256.h \
-       cyassl/ctaocrypt/sha512.h cyassl/ctaocrypt/sha.h \
-       cyassl/ctaocrypt/tfm.h cyassl/ctaocrypt/types.h \
-       cyassl/ctaocrypt/visibility.h cyassl/ctaocrypt/logging.h \
-       cyassl/ctaocrypt/memory.h cyassl/ctaocrypt/mpi_class.h \
-       cyassl/ctaocrypt/mpi_superclass.h cyassl/openssl/asn1.h \
-       cyassl/openssl/bio.h cyassl/openssl/bn.h cyassl/openssl/conf.h \
-       cyassl/openssl/crypto.h cyassl/openssl/des.h \
-       cyassl/openssl/dh.h cyassl/openssl/dsa.h \
+       cyassl/ctaocrypt/md2.h cyassl/ctaocrypt/md4.h \
+       cyassl/ctaocrypt/md5.h cyassl/ctaocrypt/misc.h \
+       cyassl/ctaocrypt/pwdbased.h cyassl/ctaocrypt/rabbit.h \
+       cyassl/ctaocrypt/random.h cyassl/ctaocrypt/ripemd.h \
+       cyassl/ctaocrypt/rsa.h cyassl/ctaocrypt/settings.h \
+       cyassl/ctaocrypt/sha256.h cyassl/ctaocrypt/sha512.h \
+       cyassl/ctaocrypt/sha.h cyassl/ctaocrypt/tfm.h \
+       cyassl/ctaocrypt/types.h cyassl/ctaocrypt/visibility.h \
+       cyassl/ctaocrypt/logging.h cyassl/ctaocrypt/memory.h \
+       cyassl/ctaocrypt/mpi_class.h cyassl/ctaocrypt/mpi_superclass.h \
+       cyassl/openssl/asn1.h cyassl/openssl/bio.h cyassl/openssl/bn.h \
+       cyassl/openssl/conf.h cyassl/openssl/crypto.h \
+       cyassl/openssl/des.h cyassl/openssl/dh.h cyassl/openssl/dsa.h \
        cyassl/openssl/ecdsa.h cyassl/openssl/ec.h \
        cyassl/openssl/engine.h cyassl/openssl/err.h \
        cyassl/openssl/evp.h cyassl/openssl/hmac.h \
@@ -513,13 +520,25 @@ nobase_include_HEADERS = cyassl/ctaocrypt/aes.h \
        cyassl/version.h cyassl/ocsp.h cyassl/crl.h
 EXTRA_HEADERS = 
 BUILT_SOURCES = 
-EXTRA_DIST = $(example_DATA) $(certs_DATA) $(doc_DATA) lib/dummy \
-       cyassl-ntru.vcproj cyassl.vcproj \
-       cyassl-iphone.xcodeproj/project.pbxproj cyassl-ntru.sln \
-       cyassl.sln cyassl/sniffer_error.rc ${certs_DATA} \
-       certs/ntru-key.raw ${certs_DATA} swig/PythonBuild.sh \
-       swig/README swig/cyassl.i swig/cyassl_adds.c \
-       swig/python_cyassl.vcproj swig/rsasign.py swig/runme.py \
+EXTRA_DIST = $(example_DATA) $(doc_DATA) lib/dummy cyassl-ntru.vcproj \
+       cyassl.vcproj cyassl-iphone.xcodeproj/project.pbxproj \
+       cyassl-ntru.sln cyassl.sln cyassl/sniffer_error.rc \
+       certs/ca-cert.pem certs/ca-key.pem certs/client-cert.pem \
+       certs/client-keyEnc.pem certs/client-key.pem certs/ecc-key.pem \
+       certs/ecc-keyPkcs8.pem certs/ecc-client-key.pem \
+       certs/client-ecc-cert.pem certs/ntru-cert.pem certs/dh2048.pem \
+       certs/server-cert.pem certs/server-ecc.pem \
+       certs/server-ecc-rsa.pem certs/server-keyEnc.pem \
+       certs/server-key.pem certs/server-keyPkcs8Enc12.pem \
+       certs/server-keyPkcs8Enc2.pem certs/server-keyPkcs8Enc.pem \
+       certs/server-keyPkcs8.pem certs/ca-key.der \
+       certs/client-cert.der certs/client-key.der certs/dh2048.der \
+       certs/rsa2048.der certs/dsa2048.der certs/ecc-key.der \
+       certs/ntru-key.raw certs/crl/crl.pem certs/crl/cliCrl.pem \
+       certs/crl/eccSrvCRL.pem certs/crl/eccCliCRL.pem \
+       certs/crl/crl.revoked swig/PythonBuild.sh swig/README \
+       swig/cyassl.i swig/cyassl_adds.c swig/python_cyassl.vcproj \
+       swig/rsasign.py swig/runme.py \
        ctaocrypt/benchmark/benchmark.sln \
        ctaocrypt/benchmark/benchmark.vcproj ctaocrypt/src/misc.c \
        ctaocrypt/src/asm.c ctaocrypt/src/ecc_fp.c \
@@ -557,25 +576,18 @@ EXTRA_DIST = $(example_DATA) $(certs_DATA) $(doc_DATA) lib/dummy \
        examples/echoserver/echoserver-ntru.vcproj \
        examples/echoserver/echoserver.vcproj testsuite/testsuite.sln \
        testsuite/testsuite-ntru.vcproj testsuite/testsuite.vcproj \
-       input quit tests/unit.h sslSniffer/sslSniffer.vcproj \
+       input quit tests/unit.h tests/test.conf \
+       tests/test-openssl.conf tests/test-hc128.conf \
+       tests/test-psk.conf tests/test-ntru.conf tests/test-ecc.conf \
+       tests/test-aesgcm.conf tests/test-aesgcm-ecc.conf \
+       tests/test-aesgcm-openssl.conf tests/test-dtls.conf \
+       sslSniffer/sslSniffer.vcproj \
        sslSniffer/sslSnifferTest/sslSniffTest.vcproj
 doc_DATA = certs/taoCert.txt doc/README.txt
 exampledir = $(docdir)/@PACKAGE@/example
 example_DATA = examples/client/client.c examples/server/server.c \
        examples/echoclient/echoclient.c \
        examples/echoserver/echoserver.c
-certsdir = $(sysconfdir)/ssl/certs
-certs_DATA = certs/ca-cert.pem certs/ca-key.pem certs/client-cert.pem \
-       certs/client-keyEnc.pem certs/client-key.pem certs/ecc-key.pem \
-       certs/ecc-keyPkcs8.pem certs/ecc-client-key.pem \
-       certs/client-ecc-cert.pem certs/ntru-cert.pem certs/dh2048.pem \
-       certs/server-cert.pem certs/server-ecc.pem \
-       certs/server-keyEnc.pem certs/server-key.pem \
-       certs/server-keyPkcs8Enc12.pem certs/server-keyPkcs8Enc2.pem \
-       certs/server-keyPkcs8Enc.pem certs/server-keyPkcs8.pem \
-       certs/ca-key.der certs/client-cert.der certs/client-key.der \
-       certs/dh2048.der certs/rsa2048.der certs/dsa2048.der \
-       certs/ecc-key.der certs/crl/crl.pem
 ACLOCAL_AMFLAGS = -I m4 --install
 src_libcyassl_la_SOURCES = src/internal.c src/io.c src/keys.c \
        src/ssl.c src/tls.c ctaocrypt/src/asn.c ctaocrypt/src/coding.c \
@@ -588,10 +600,11 @@ src_libcyassl_la_SOURCES = src/internal.c src/io.c src/keys.c \
        $(am__append_2) $(am__append_3) $(am__append_4) \
        $(am__append_5) $(am__append_6) $(am__append_7) \
        $(am__append_8) $(am__append_9) $(am__append_10) \
-       $(am__append_11)
+       $(am__append_11) $(am__append_12)
 src_libcyassl_la_LDFLAGS = ${AM_LDFLAGS} -no-undefined -version-info ${CYASSL_LIBRARY_VERSION}
-src_libcyassl_la_LIBADD = $(LIBM)
-src_libcyassl_la_CFLAGS = -DBUILDING_CYASSL $(AM_CFLAGS)
+src_libcyassl_la_LIBADD = $(LIBM) $(am__append_14)
+src_libcyassl_la_CFLAGS = -DBUILDING_CYASSL $(AM_CFLAGS) \
+       $(am__append_13)
 src_libcyassl_la_CPPFLAGS = -DBUILDING_CYASSL $(AM_CPPFLAGS)
 ctaocrypt_benchmark_benchmark_SOURCES = ctaocrypt/benchmark/benchmark.c
 ctaocrypt_benchmark_benchmark_LDADD = src/libcyassl.la
@@ -626,9 +639,11 @@ tests_unit_SOURCES = \
                              tests/unit.c \
                              tests/api.c \
                              tests/suites.c \
-                  tests/hash.c
+                  tests/hash.c \
+                             examples/client/client.c \
+                             examples/server/server.c
 
-tests_unit_CFLAGS = $(AM_CFLAGS) $(PTHREAD_CFLAGS)
+tests_unit_CFLAGS = -DNO_MAIN_DRIVER $(AM_CFLAGS) $(PTHREAD_CFLAGS)
 tests_unit_LDADD = src/libcyassl.la  $(PTHREAD_LIBS)
 tests_unit_DEPENDENCIES = src/libcyassl.la
 sslSniffer_sslSnifferTest_snifftest_SOURCES = sslSniffer/sslSnifferTest/snifftest.c
@@ -798,6 +813,8 @@ ctaocrypt/src/src_libcyassl_la-memory.lo:  \
        ctaocrypt/src/$(DEPDIR)/$(am__dirstamp)
 ctaocrypt/src/aes_asm.lo: ctaocrypt/src/$(am__dirstamp) \
        ctaocrypt/src/$(DEPDIR)/$(am__dirstamp)
+ctaocrypt/src/src_libcyassl_la-md2.lo: ctaocrypt/src/$(am__dirstamp) \
+       ctaocrypt/src/$(DEPDIR)/$(am__dirstamp)
 ctaocrypt/src/src_libcyassl_la-ripemd.lo:  \
        ctaocrypt/src/$(am__dirstamp) \
        ctaocrypt/src/$(DEPDIR)/$(am__dirstamp)
@@ -961,6 +978,12 @@ tests/tests_unit-suites.$(OBJEXT): tests/$(am__dirstamp) \
        tests/$(DEPDIR)/$(am__dirstamp)
 tests/tests_unit-hash.$(OBJEXT): tests/$(am__dirstamp) \
        tests/$(DEPDIR)/$(am__dirstamp)
+examples/client/tests_unit-client.$(OBJEXT):  \
+       examples/client/$(am__dirstamp) \
+       examples/client/$(DEPDIR)/$(am__dirstamp)
+examples/server/tests_unit-server.$(OBJEXT):  \
+       examples/server/$(am__dirstamp) \
+       examples/server/$(DEPDIR)/$(am__dirstamp)
 tests/unit$(EXEEXT): $(tests_unit_OBJECTS) $(tests_unit_DEPENDENCIES) tests/$(am__dirstamp)
        @rm -f tests/unit$(EXEEXT)
        $(tests_unit_LINK) $(tests_unit_OBJECTS) $(tests_unit_LDADD) $(LIBS)
@@ -1020,6 +1043,8 @@ mostlyclean-compile:
        -rm -f ctaocrypt/src/src_libcyassl_la-integer.lo
        -rm -f ctaocrypt/src/src_libcyassl_la-logging.$(OBJEXT)
        -rm -f ctaocrypt/src/src_libcyassl_la-logging.lo
+       -rm -f ctaocrypt/src/src_libcyassl_la-md2.$(OBJEXT)
+       -rm -f ctaocrypt/src/src_libcyassl_la-md2.lo
        -rm -f ctaocrypt/src/src_libcyassl_la-md4.$(OBJEXT)
        -rm -f ctaocrypt/src/src_libcyassl_la-md4.lo
        -rm -f ctaocrypt/src/src_libcyassl_la-md5.$(OBJEXT)
@@ -1049,12 +1074,14 @@ mostlyclean-compile:
        -rm -f ctaocrypt/test/test.$(OBJEXT)
        -rm -f ctaocrypt/test/testsuite_testsuite-test.$(OBJEXT)
        -rm -f examples/client/client.$(OBJEXT)
+       -rm -f examples/client/tests_unit-client.$(OBJEXT)
        -rm -f examples/client/testsuite_testsuite-client.$(OBJEXT)
        -rm -f examples/echoclient/echoclient.$(OBJEXT)
        -rm -f examples/echoclient/testsuite_testsuite-echoclient.$(OBJEXT)
        -rm -f examples/echoserver/echoserver.$(OBJEXT)
        -rm -f examples/echoserver/testsuite_testsuite-echoserver.$(OBJEXT)
        -rm -f examples/server/server.$(OBJEXT)
+       -rm -f examples/server/tests_unit-server.$(OBJEXT)
        -rm -f examples/server/testsuite_testsuite-server.$(OBJEXT)
        -rm -f src/src_libcyassl_la-crl.$(OBJEXT)
        -rm -f src/src_libcyassl_la-crl.lo
@@ -1095,6 +1122,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-hmac.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-integer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-logging.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md2.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md4.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md5.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-memory.Plo@am__quote@
@@ -1111,12 +1139,14 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/test/$(DEPDIR)/test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/client/$(DEPDIR)/client.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@examples/client/$(DEPDIR)/tests_unit-client.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/client/$(DEPDIR)/testsuite_testsuite-client.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/echoclient/$(DEPDIR)/echoclient.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/echoclient/$(DEPDIR)/testsuite_testsuite-echoclient.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/echoserver/$(DEPDIR)/echoserver.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/echoserver/$(DEPDIR)/testsuite_testsuite-echoserver.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/server/$(DEPDIR)/server.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@examples/server/$(DEPDIR)/tests_unit-server.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@examples/server/$(DEPDIR)/testsuite_testsuite-server.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-crl.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_libcyassl_la-internal.Plo@am__quote@
@@ -1318,6 +1348,13 @@ ctaocrypt/src/src_libcyassl_la-memory.lo: ctaocrypt/src/memory.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-memory.lo `test -f 'ctaocrypt/src/memory.c' || echo '$(srcdir)/'`ctaocrypt/src/memory.c
 
+ctaocrypt/src/src_libcyassl_la-md2.lo: ctaocrypt/src/md2.c
+@am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-md2.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md2.Tpo -c -o ctaocrypt/src/src_libcyassl_la-md2.lo `test -f 'ctaocrypt/src/md2.c' || echo '$(srcdir)/'`ctaocrypt/src/md2.c
+@am__fastdepCC_TRUE@   mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md2.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-md2.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='ctaocrypt/src/md2.c' object='ctaocrypt/src/src_libcyassl_la-md2.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -c -o ctaocrypt/src/src_libcyassl_la-md2.lo `test -f 'ctaocrypt/src/md2.c' || echo '$(srcdir)/'`ctaocrypt/src/md2.c
+
 ctaocrypt/src/src_libcyassl_la-ripemd.lo: ctaocrypt/src/ripemd.c
 @am__fastdepCC_TRUE@   $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libcyassl_la_CPPFLAGS) $(CPPFLAGS) $(src_libcyassl_la_CFLAGS) $(CFLAGS) -MT ctaocrypt/src/src_libcyassl_la-ripemd.lo -MD -MP -MF ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Tpo -c -o ctaocrypt/src/src_libcyassl_la-ripemd.lo `test -f 'ctaocrypt/src/ripemd.c' || echo '$(srcdir)/'`ctaocrypt/src/ripemd.c
 @am__fastdepCC_TRUE@   mv -f ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Tpo ctaocrypt/src/$(DEPDIR)/src_libcyassl_la-ripemd.Plo
@@ -1444,6 +1481,34 @@ tests/tests_unit-hash.obj: tests/hash.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o tests/tests_unit-hash.obj `if test -f 'tests/hash.c'; then $(CYGPATH_W) 'tests/hash.c'; else $(CYGPATH_W) '$(srcdir)/tests/hash.c'; fi`
 
+examples/client/tests_unit-client.o: examples/client/client.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT examples/client/tests_unit-client.o -MD -MP -MF examples/client/$(DEPDIR)/tests_unit-client.Tpo -c -o examples/client/tests_unit-client.o `test -f 'examples/client/client.c' || echo '$(srcdir)/'`examples/client/client.c
+@am__fastdepCC_TRUE@   mv -f examples/client/$(DEPDIR)/tests_unit-client.Tpo examples/client/$(DEPDIR)/tests_unit-client.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='examples/client/client.c' object='examples/client/tests_unit-client.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o examples/client/tests_unit-client.o `test -f 'examples/client/client.c' || echo '$(srcdir)/'`examples/client/client.c
+
+examples/client/tests_unit-client.obj: examples/client/client.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT examples/client/tests_unit-client.obj -MD -MP -MF examples/client/$(DEPDIR)/tests_unit-client.Tpo -c -o examples/client/tests_unit-client.obj `if test -f 'examples/client/client.c'; then $(CYGPATH_W) 'examples/client/client.c'; else $(CYGPATH_W) '$(srcdir)/examples/client/client.c'; fi`
+@am__fastdepCC_TRUE@   mv -f examples/client/$(DEPDIR)/tests_unit-client.Tpo examples/client/$(DEPDIR)/tests_unit-client.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='examples/client/client.c' object='examples/client/tests_unit-client.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o examples/client/tests_unit-client.obj `if test -f 'examples/client/client.c'; then $(CYGPATH_W) 'examples/client/client.c'; else $(CYGPATH_W) '$(srcdir)/examples/client/client.c'; fi`
+
+examples/server/tests_unit-server.o: examples/server/server.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT examples/server/tests_unit-server.o -MD -MP -MF examples/server/$(DEPDIR)/tests_unit-server.Tpo -c -o examples/server/tests_unit-server.o `test -f 'examples/server/server.c' || echo '$(srcdir)/'`examples/server/server.c
+@am__fastdepCC_TRUE@   mv -f examples/server/$(DEPDIR)/tests_unit-server.Tpo examples/server/$(DEPDIR)/tests_unit-server.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='examples/server/server.c' object='examples/server/tests_unit-server.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o examples/server/tests_unit-server.o `test -f 'examples/server/server.c' || echo '$(srcdir)/'`examples/server/server.c
+
+examples/server/tests_unit-server.obj: examples/server/server.c
+@am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -MT examples/server/tests_unit-server.obj -MD -MP -MF examples/server/$(DEPDIR)/tests_unit-server.Tpo -c -o examples/server/tests_unit-server.obj `if test -f 'examples/server/server.c'; then $(CYGPATH_W) 'examples/server/server.c'; else $(CYGPATH_W) '$(srcdir)/examples/server/server.c'; fi`
+@am__fastdepCC_TRUE@   mv -f examples/server/$(DEPDIR)/tests_unit-server.Tpo examples/server/$(DEPDIR)/tests_unit-server.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      source='examples/server/server.c' object='examples/server/tests_unit-server.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@      DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@  $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(tests_unit_CFLAGS) $(CFLAGS) -c -o examples/server/tests_unit-server.obj `if test -f 'examples/server/server.c'; then $(CYGPATH_W) 'examples/server/server.c'; else $(CYGPATH_W) '$(srcdir)/examples/server/server.c'; fi`
+
 ctaocrypt/test/testsuite_testsuite-test.o: ctaocrypt/test/test.c
 @am__fastdepCC_TRUE@   $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testsuite_testsuite_CFLAGS) $(CFLAGS) -MT ctaocrypt/test/testsuite_testsuite-test.o -MD -MP -MF ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Tpo -c -o ctaocrypt/test/testsuite_testsuite-test.o `test -f 'ctaocrypt/test/test.c' || echo '$(srcdir)/'`ctaocrypt/test/test.c
 @am__fastdepCC_TRUE@   mv -f ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Tpo ctaocrypt/test/$(DEPDIR)/testsuite_testsuite-test.Po
@@ -1547,23 +1612,6 @@ clean-libtool:
 
 distclean-libtool:
        -rm -f libtool
-install-certsDATA: $(certs_DATA)
-       @$(NORMAL_INSTALL)
-       test -z "$(certsdir)" || $(MKDIR_P) "$(DESTDIR)$(certsdir)"
-       @list='$(certs_DATA)'; for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
-         echo " $(certsDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(certsdir)/$$f'"; \
-         $(certsDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(certsdir)/$$f"; \
-       done
-
-uninstall-certsDATA:
-       @$(NORMAL_UNINSTALL)
-       @list='$(certs_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
-         echo " rm -f '$(DESTDIR)$(certsdir)/$$f'"; \
-         rm -f "$(DESTDIR)$(certsdir)/$$f"; \
-       done
 install-docDATA: $(doc_DATA)
        @$(NORMAL_INSTALL)
        test -z "$(docdir)" || $(MKDIR_P) "$(DESTDIR)$(docdir)"
@@ -1891,7 +1939,7 @@ all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(DATA) $(HEADERS) \
 install-binPROGRAMS: install-libLTLIBRARIES
 
 installdirs:
-       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(certsdir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(exampledir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
+       for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(docdir)" "$(DESTDIR)$(exampledir)" "$(DESTDIR)$(includedir)" "$(DESTDIR)$(includedir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: $(BUILT_SOURCES)
@@ -1967,7 +2015,7 @@ info: info-am
 
 info-am:
 
-install-data-am: install-certsDATA install-docDATA install-exampleDATA \
+install-data-am: install-docDATA install-exampleDATA \
        install-includeHEADERS install-nobase_includeHEADERS
 
 install-dvi: install-dvi-am
@@ -2006,10 +2054,9 @@ ps: ps-am
 
 ps-am:
 
-uninstall-am: uninstall-binPROGRAMS uninstall-certsDATA \
-       uninstall-docDATA uninstall-exampleDATA \
-       uninstall-includeHEADERS uninstall-libLTLIBRARIES \
-       uninstall-nobase_includeHEADERS
+uninstall-am: uninstall-binPROGRAMS uninstall-docDATA \
+       uninstall-exampleDATA uninstall-includeHEADERS \
+       uninstall-libLTLIBRARIES uninstall-nobase_includeHEADERS
 
 .MAKE: install-am install-strip
 
@@ -2021,19 +2068,18 @@ uninstall-am: uninstall-binPROGRAMS uninstall-certsDATA \
        distclean-compile distclean-generic distclean-hdr \
        distclean-libtool distclean-tags distcleancheck distdir \
        distuninstallcheck dvi dvi-am html html-am info info-am \
-       install install-am install-binPROGRAMS install-certsDATA \
-       install-data install-data-am install-docDATA install-dvi \
-       install-dvi-am install-exampleDATA install-exec \
-       install-exec-am install-html install-html-am \
-       install-includeHEADERS install-info install-info-am \
-       install-libLTLIBRARIES install-man \
+       install install-am install-binPROGRAMS install-data \
+       install-data-am install-docDATA install-dvi install-dvi-am \
+       install-exampleDATA install-exec install-exec-am install-html \
+       install-html-am install-includeHEADERS install-info \
+       install-info-am install-libLTLIBRARIES install-man \
        install-nobase_includeHEADERS install-pdf install-pdf-am \
        install-ps install-ps-am install-strip installcheck \
        installcheck-am installdirs maintainer-clean \
        maintainer-clean-generic mostlyclean mostlyclean-compile \
        mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
        tags uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-certsDATA uninstall-docDATA uninstall-exampleDATA \
+       uninstall-docDATA uninstall-exampleDATA \
        uninstall-includeHEADERS uninstall-libLTLIBRARIES \
        uninstall-nobase_includeHEADERS
 
index 20fe9e40ffe5fb3a7399d62d504f5b566dae9f7f..a88a90ab91f2c102d88c1b6b80aea3e35649c313 100644 (file)
@@ -34,7 +34,26 @@ before calling SSL_new();  Though it's not recommended.
 
 *** end Note ***
 
-CyaSSL Release 2.2.0 (5/18/2012)
+CyaSSL Release 2.3.0 (8/10/2012)
+
+Release 2.3.0 CyaSSL has bug fixes and a few new features including:
+- AES-GCM crypto and cipher suites
+- make test cipher suite checks
+- Subject AltName processing
+- Command line support for client/server examples
+- Sniffer SessionTicket support
+- SHA-384 cipher suites
+- Verify cipher suite validity when user overrides
+- CRL dir monitoring
+- DTLS Cookie support, reliability coming soon
+
+The CyaSSL manual is available at:
+http://www.yassl.com/documentation/CyaSSL-Manual.pdf.  For build instructions 
+and comments about the new features please check the manual.
+
+
+
+***************CyaSSL Release 2.2.0 (5/18/2012)
 
 Release 2.2.0 CyaSSL has bug fixes and a few new features including:
 - Initial CRL support (--enable-crl)
diff --git a/FreeRTOS-Plus/CyaSSL/certs/crl/cliCrl.pem b/FreeRTOS-Plus/CyaSSL/certs/crl/cliCrl.pem
new file mode 100644 (file)
index 0000000..67a5713
--- /dev/null
@@ -0,0 +1,39 @@
+Certificate Revocation List (CRL):
+        Version 2 (0x1)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: /C=US/ST=Oregon/L=Portland/O=yaSSL/OU=Programming/CN=www.yassl.com/emailAddress=info@yassl.com
+        Last Update: Aug 10 18:01:01 2012 GMT
+        Next Update: Dec  8 18:01:01 2012 GMT
+        CRL extensions:
+            X509v3 CRL Number: 
+                62
+No Revoked Certificates.
+    Signature Algorithm: sha1WithRSAEncryption
+        1e:69:b2:c4:72:a7:b2:c9:e1:b9:ac:06:40:2c:c5:66:9a:07:
+        6c:91:2e:17:09:c7:86:b4:62:2d:0f:1f:a3:a3:1c:93:ce:45:
+        53:d5:57:94:a6:77:af:51:da:86:e4:1e:6f:57:c8:cc:5f:07:
+        8d:a5:db:bd:b3:f7:cf:e2:11:3c:e2:51:79:7e:b3:a9:47:f7:
+        c1:17:12:5b:7c:e5:c3:71:17:d2:ce:59:d4:0d:dc:45:ff:bc:
+        fe:a7:76:7b:92:88:52:0c:a5:e0:79:75:86:50:27:15:2a:01:
+        66:a6:ba:96:d4:9a:14:1d:92:7d:63:72:5f:25:9b:05:72:cb:
+        ed:6d:7c:92:1f:4f:3e:64:cb:5d:80:9e:ad:c8:47:83:88:5b:
+        3d:07:3f:d3:6a:2c:dd:c9:f7:09:bb:05:2f:9a:f4:73:15:f4:
+        61:b1:47:87:9c:bf:c9:61:42:19:14:b8:67:9c:c5:c1:86:f1:
+        e8:63:71:40:6c:2f:b1:c1:0c:1f:f4:c4:80:e2:d0:cb:88:6b:
+        51:1e:e9:b0:06:19:7c:6d:85:cf:05:7f:fe:3d:35:79:9e:f0:
+        5b:f4:06:63:d4:eb:d2:e2:70:29:a9:02:b4:c1:b4:bd:53:f4:
+        8f:b3:df:37:91:44:d5:e8:c4:10:86:76:0e:49:2b:ba:9a:a4:
+        dd:33:0e:7e
+-----BEGIN X509 CRL-----
+MIIB6DCB0QIBATANBgkqhkiG9w0BAQUFADCBjjELMAkGA1UEBhMCVVMxDzANBgNV
+BAgTBk9yZWdvbjERMA8GA1UEBxMIUG9ydGxhbmQxDjAMBgNVBAoTBXlhU1NMMRQw
+EgYDVQQLEwtQcm9ncmFtbWluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEdMBsG
+CSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20XDTEyMDgxMDE4MDEwMVoXDTEyMTIw
+ODE4MDEwMVqgDjAMMAoGA1UdFAQDAgE+MA0GCSqGSIb3DQEBBQUAA4IBAQAeabLE
+cqeyyeG5rAZALMVmmgdskS4XCceGtGItDx+joxyTzkVT1VeUpnevUdqG5B5vV8jM
+XweNpdu9s/fP4hE84lF5frOpR/fBFxJbfOXDcRfSzlnUDdxF/7z+p3Z7kohSDKXg
+eXWGUCcVKgFmprqW1JoUHZJ9Y3JfJZsFcsvtbXySH08+ZMtdgJ6tyEeDiFs9Bz/T
+aizdyfcJuwUvmvRzFfRhsUeHnL/JYUIZFLhnnMXBhvHoY3FAbC+xwQwf9MSA4tDL
+iGtRHumwBhl8bYXPBX/+PTV5nvBb9AZj1OvS4nApqQK0wbS9U/SPs983kUTV6MQQ
+hnYOSSu6mqTdMw5+
+-----END X509 CRL-----
index 90af3b8ec7463b8572486bee7564a93eac949713..b68ff3f4b642f92eba6220b3305caf536940bbd3 100644 (file)
@@ -2,40 +2,38 @@ Certificate Revocation List (CRL):
         Version 2 (0x1)
         Signature Algorithm: sha1WithRSAEncryption
         Issuer: /C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com
-        Last Update: May 15 23:51:25 2012 GMT
-        Next Update: Jun 14 23:51:25 2012 GMT
+        Last Update: Aug 10 18:01:01 2012 GMT
+        Next Update: Dec  8 18:01:01 2012 GMT
         CRL extensions:
             X509v3 CRL Number: 
-                4
-Revoked Certificates:
-    Serial Number: 02
-        Revocation Date: May  4 17:06:05 2012 GMT
+                60
+No Revoked Certificates.
     Signature Algorithm: sha1WithRSAEncryption
-        aa:e4:44:9b:6b:c9:0b:d3:6f:ba:09:3d:90:93:ae:96:86:73:
-        f6:90:28:ba:93:3b:95:0c:91:c9:10:53:f1:15:fd:43:9a:ba:
-        4e:dc:8e:e8:10:4d:d8:8b:be:a8:a2:12:4c:19:c1:13:9f:3c:
-        fe:54:60:32:b7:45:77:17:2a:40:f2:16:52:9e:68:fe:be:03:
-        99:9c:b1:d3:4b:be:87:5b:f4:12:3c:9e:3d:59:c8:b9:a2:2c:
-        78:94:9c:cd:b0:17:d0:b3:bd:86:99:2b:1d:38:b5:03:d8:d1:
-        0d:8f:1a:8c:97:ff:87:01:4f:91:22:30:c2:a5:10:bb:e3:fb:
-        31:b7:44:8a:5a:82:e1:e5:30:69:84:d1:4b:c2:d3:07:bf:21:
-        d5:33:2d:ad:4b:e4:6f:83:c1:66:16:74:31:7d:f9:d6:1e:10:
-        66:fd:7d:ad:66:3c:32:cc:a3:98:75:63:16:5c:df:e1:37:3d:
-        e9:08:d2:7b:05:dd:4c:31:92:53:0c:f1:ea:8e:be:31:d1:eb:
-        ac:37:a8:cd:c4:30:c5:91:cc:38:a3:55:4a:51:01:39:cf:7d:
-        50:57:d2:f2:47:4a:1d:7f:3a:32:16:89:e8:5a:1b:f8:64:33:
-        48:e5:b8:ef:ba:2e:f3:52:7e:ba:28:0e:9b:f7:07:b8:b6:38:
-        f9:d0:dd:78
+        26:1c:06:6a:42:ff:8b:18:71:4e:ef:7c:02:74:43:6f:7b:83:
+        99:2f:e1:4e:74:0f:f9:99:62:a1:90:88:11:1b:d8:59:3b:1e:
+        34:dd:f4:92:81:6f:49:2c:9a:5f:ba:21:6f:11:95:19:6e:da:
+        38:a4:4e:a0:7e:4a:fb:7c:c6:9f:c8:26:2d:9b:cd:e8:30:14:
+        10:38:56:63:89:bf:a7:eb:11:0f:7c:81:60:d7:c3:ab:07:ef:
+        6c:af:81:4d:b9:cd:6e:91:c6:42:13:01:d8:1a:62:cb:52:fd:
+        44:0b:fa:9f:34:de:75:ba:5a:3d:df:d4:b1:7e:a0:b9:3f:f5:
+        ed:a3:e6:ef:ef:20:95:45:3c:75:8c:a8:5c:ae:8c:e9:3c:f1:
+        e6:34:fd:65:bb:9a:f9:5f:8c:96:7c:32:12:50:43:2b:30:94:
+        4e:8a:f0:c3:5e:c9:e2:49:08:83:64:7a:3b:f3:d5:30:f3:78:
+        4b:20:3c:51:d0:da:37:14:f4:c8:f2:ab:41:d2:c3:b9:7a:7f:
+        42:17:42:79:a4:10:67:4e:84:d4:e9:a9:e8:dd:46:5d:b2:f4:
+        e8:3d:1c:24:3c:81:e7:56:bb:43:11:e2:d9:a2:9d:ce:b5:78:
+        ad:19:14:7c:d7:37:e8:bf:f7:30:fc:4d:05:a9:33:6b:12:9f:
+        24:19:39:35
 -----BEGIN X509 CRL-----
-MIICADCB6QIBATANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCVVMxEDAOBgNV
+MIIB6jCB0wIBATANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCVVMxEDAOBgNV
 BAgTB01vbnRhbmExEDAOBgNVBAcTB0JvemVtYW4xETAPBgNVBAoTCFNhd3Rvb3Ro
 MRMwEQYDVQQLEwpDb25zdWx0aW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0w
-GwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbRcNMTIwNTE1MjM1MTI1WhcNMTIw
-NjE0MjM1MTI1WjAUMBICAQIXDTEyMDUwNDE3MDYwNVqgDjAMMAoGA1UdFAQDAgEE
-MA0GCSqGSIb3DQEBBQUAA4IBAQCq5ESba8kL02+6CT2Qk66WhnP2kCi6kzuVDJHJ
-EFPxFf1DmrpO3I7oEE3Yi76oohJMGcETnzz+VGAyt0V3FypA8hZSnmj+vgOZnLHT
-S76HW/QSPJ49Wci5oix4lJzNsBfQs72GmSsdOLUD2NENjxqMl/+HAU+RIjDCpRC7
-4/sxt0SKWoLh5TBphNFLwtMHvyHVMy2tS+Rvg8FmFnQxffnWHhBm/X2tZjwyzKOY
-dWMWXN/hNz3pCNJ7Bd1MMZJTDPHqjr4x0eusN6jNxDDFkcw4o1VKUQE5z31QV9Ly
-R0odfzoyFonoWhv4ZDNI5bjvui7zUn66KA6b9we4tjj50N14
+GwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbRcNMTIwODEwMTgwMTAxWhcNMTIx
+MjA4MTgwMTAxWqAOMAwwCgYDVR0UBAMCATwwDQYJKoZIhvcNAQEFBQADggEBACYc
+BmpC/4sYcU7vfAJ0Q297g5kv4U50D/mZYqGQiBEb2Fk7HjTd9JKBb0ksml+6IW8R
+lRlu2jikTqB+Svt8xp/IJi2bzegwFBA4VmOJv6frEQ98gWDXw6sH72yvgU25zW6R
+xkITAdgaYstS/UQL+p803nW6Wj3f1LF+oLk/9e2j5u/vIJVFPHWMqFyujOk88eY0
+/WW7mvlfjJZ8MhJQQyswlE6K8MNeyeJJCINkejvz1TDzeEsgPFHQ2jcU9Mjyq0HS
+w7l6f0IXQnmkEGdOhNTpqejdRl2y9Og9HCQ8gedWu0MR4tminc61eK0ZFHzXN+i/
+9zD8TQWpM2sSnyQZOTU=
 -----END X509 CRL-----
diff --git a/FreeRTOS-Plus/CyaSSL/certs/crl/crl.revoked b/FreeRTOS-Plus/CyaSSL/certs/crl/crl.revoked
new file mode 100644 (file)
index 0000000..cf6ec55
--- /dev/null
@@ -0,0 +1,41 @@
+Certificate Revocation List (CRL):
+        Version 2 (0x1)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: /C=US/ST=Montana/L=Bozeman/O=Sawtooth/OU=Consulting/CN=www.yassl.com/emailAddress=info@yassl.com
+        Last Update: Aug 10 18:01:01 2012 GMT
+        Next Update: Dec  8 18:01:01 2012 GMT
+        CRL extensions:
+            X509v3 CRL Number: 
+                61
+Revoked Certificates:
+    Serial Number: 02
+        Revocation Date: Aug 10 18:01:01 2012 GMT
+    Signature Algorithm: sha1WithRSAEncryption
+        5c:eb:53:33:02:74:bb:c1:37:37:81:1a:36:9c:eb:d0:28:87:
+        12:56:1a:d8:ec:ae:8e:ef:42:d0:61:07:f0:f0:b5:e8:2a:16:
+        5e:78:ab:e9:ad:62:f3:6c:c5:fe:7a:b5:c7:0e:8a:e3:0a:2d:
+        63:b5:ec:c4:c1:1f:1e:c3:77:b7:24:10:4b:09:b1:d8:ea:40:
+        4f:74:6a:9a:d7:57:bd:b9:d3:e2:42:81:81:b2:5c:42:d8:d3:
+        21:3f:f2:05:e2:11:8f:ce:60:cc:3b:76:55:e6:5f:6d:71:13:
+        b1:7e:2c:50:d2:29:fe:f2:ad:96:f9:ee:8f:5c:c3:0a:73:e7:
+        78:c5:8f:6e:0d:35:66:64:4a:76:05:93:9f:eb:05:b2:c3:a1:
+        f5:d5:4c:4b:6e:79:f2:8d:51:90:7c:9d:a9:f5:94:7f:93:fe:
+        39:da:c1:fb:8c:94:66:1d:d4:40:a9:48:ee:3b:91:14:83:4e:
+        b4:ea:93:07:f6:be:48:4a:ec:4c:26:61:2d:a2:66:01:c5:d8:
+        d3:18:f6:d0:1b:d2:94:13:c9:94:84:54:e4:44:10:01:66:25:
+        47:ee:b2:19:4a:65:e3:79:42:9e:12:af:a7:4a:a4:66:35:e3:
+        1a:db:2c:80:ff:a4:9c:2e:6e:32:8e:50:5d:ec:7e:de:1a:01:
+        a9:08:fc:a2
+-----BEGIN X509 CRL-----
+MIICADCB6QIBATANBgkqhkiG9w0BAQUFADCBkDELMAkGA1UEBhMCVVMxEDAOBgNV
+BAgTB01vbnRhbmExEDAOBgNVBAcTB0JvemVtYW4xETAPBgNVBAoTCFNhd3Rvb3Ro
+MRMwEQYDVQQLEwpDb25zdWx0aW5nMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0w
+GwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbRcNMTIwODEwMTgwMTAxWhcNMTIx
+MjA4MTgwMTAxWjAUMBICAQIXDTEyMDgxMDE4MDEwMVqgDjAMMAoGA1UdFAQDAgE9
+MA0GCSqGSIb3DQEBBQUAA4IBAQBc61MzAnS7wTc3gRo2nOvQKIcSVhrY7K6O70LQ
+YQfw8LXoKhZeeKvprWLzbMX+erXHDorjCi1jtezEwR8ew3e3JBBLCbHY6kBPdGqa
+11e9udPiQoGBslxC2NMhP/IF4hGPzmDMO3ZV5l9tcROxfixQ0in+8q2W+e6PXMMK
+c+d4xY9uDTVmZEp2BZOf6wWyw6H11UxLbnnyjVGQfJ2p9ZR/k/452sH7jJRmHdRA
+qUjuO5EUg0606pMH9r5ISuxMJmEtomYBxdjTGPbQG9KUE8mUhFTkRBABZiVH7rIZ
+SmXjeUKeEq+nSqRmNeMa2yyA/6ScLm4yjlBd7H7eGgGpCPyi
+-----END X509 CRL-----
diff --git a/FreeRTOS-Plus/CyaSSL/certs/crl/eccCliCRL.pem b/FreeRTOS-Plus/CyaSSL/certs/crl/eccCliCRL.pem
new file mode 100644 (file)
index 0000000..a407948
--- /dev/null
@@ -0,0 +1,24 @@
+Certificate Revocation List (CRL):
+        Version 2 (0x1)
+        Signature Algorithm: ecdsa-with-SHA1
+        Issuer: /C=US/ST=Oregon/L=Salem/O=Client ECC/OU=Fast/CN=www.yassl.com/emailAddress=info@yassl.com
+        Last Update: Aug 10 18:01:01 2012 GMT
+        Next Update: Dec  8 18:01:01 2012 GMT
+        CRL extensions:
+            X509v3 CRL Number: 
+                63
+No Revoked Certificates.
+    Signature Algorithm: ecdsa-with-SHA1
+        30:44:02:20:7f:8d:d7:28:61:96:4c:b7:a8:17:0a:7f:9d:cf:
+        fa:29:e1:1d:cb:30:61:1b:b3:6b:f0:61:68:15:25:76:62:32:
+        02:20:55:ca:fc:37:b4:4c:f9:78:99:b3:c9:d4:1a:e1:fa:f7:
+        8a:4a:94:ce:31:ed:b0:1f:dc:64:d7:2a:59:47:b9:2d
+-----BEGIN X509 CRL-----
+MIIBHzCByAIBATAJBgcqhkjOPQQBMIGJMQswCQYDVQQGEwJVUzEPMA0GA1UECBMG
+T3JlZ29uMQ4wDAYDVQQHEwVTYWxlbTETMBEGA1UEChMKQ2xpZW50IEVDQzENMAsG
+A1UECxMERmFzdDEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEdMBsGCSqGSIb3DQEJ
+ARYOaW5mb0B5YXNzbC5jb20XDTEyMDgxMDE4MDEwMVoXDTEyMTIwODE4MDEwMVqg
+DjAMMAoGA1UdFAQDAgE/MAkGByqGSM49BAEDRwAwRAIgf43XKGGWTLeoFwp/nc/6
+KeEdyzBhG7Nr8GFoFSV2YjICIFXK/De0TPl4mbPJ1Brh+veKSpTOMe2wH9xk1ypZ
+R7kt
+-----END X509 CRL-----
diff --git a/FreeRTOS-Plus/CyaSSL/certs/crl/eccSrvCRL.pem b/FreeRTOS-Plus/CyaSSL/certs/crl/eccSrvCRL.pem
new file mode 100644 (file)
index 0000000..16d8b56
--- /dev/null
@@ -0,0 +1,24 @@
+Certificate Revocation List (CRL):
+        Version 2 (0x1)
+        Signature Algorithm: ecdsa-with-SHA1
+        Issuer: /C=US/ST=Washington/L=Seattle/O=Eliptic/OU=ECC/CN=www.yassl.com/emailAddress=info@yassl.com
+        Last Update: Aug 10 18:01:01 2012 GMT
+        Next Update: Dec  8 18:01:01 2012 GMT
+        CRL extensions:
+            X509v3 CRL Number: 
+                64
+No Revoked Certificates.
+    Signature Algorithm: ecdsa-with-SHA1
+        30:44:02:20:59:42:06:a7:73:69:03:08:05:e8:4b:95:ca:cf:
+        f1:30:9e:84:4b:3c:52:c8:10:b9:c8:36:c8:07:64:65:fd:bf:
+        02:20:71:60:a7:35:d6:8c:52:c2:df:06:dc:40:52:c5:ef:4c:
+        8b:ec:96:4b:72:b0:c4:36:3e:c8:9d:62:5e:49:f2:5f
+-----BEGIN X509 CRL-----
+MIIBITCBygIBATAJBgcqhkjOPQQBMIGLMQswCQYDVQQGEwJVUzETMBEGA1UECBMK
+V2FzaGluZ3RvbjEQMA4GA1UEBxMHU2VhdHRsZTEQMA4GA1UEChMHRWxpcHRpYzEM
+MAoGA1UECxMDRUNDMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0wGwYJKoZIhvcN
+AQkBFg5pbmZvQHlhc3NsLmNvbRcNMTIwODEwMTgwMTAxWhcNMTIxMjA4MTgwMTAx
+WqAOMAwwCgYDVR0UBAMCAUAwCQYHKoZIzj0EAQNHADBEAiBZQganc2kDCAXoS5XK
+z/EwnoRLPFLIELnINsgHZGX9vwIgcWCnNdaMUsLfBtxAUsXvTIvslktysMQ2Psid
+Yl5J8l8=
+-----END X509 CRL-----
index da58bbb8af7fea3b84961de477c02373673f6626..7adca3225529a34ea1ead6168c466530445d7ac1 100644 (file)
@@ -2,8 +2,13 @@
 # All paths should be given relative to the root
 #
 
-certs_DATA+= \
-            certs/crl/crl.pem
+EXTRA_DIST += \
+            certs/crl/crl.pem \
+            certs/crl/cliCrl.pem \
+            certs/crl/eccSrvCRL.pem \
+            certs/crl/eccCliCRL.pem
+
+EXTRA_DIST += \
+            certs/crl/crl.revoked
 
-EXTRA_DIST+= ${certs_DATA}
 
index b32c2aaf08c8c851c7e18cd1291a5480d528f200..fcedd005bd837f277d7aecfc5ef6c1af0e2790fb 100644 (file)
@@ -2,7 +2,7 @@
 # All paths should be given relative to the root
 #
 
-certs_DATA+= \
+EXTRA_DIST += \
             certs/ca-cert.pem \
             certs/ca-key.pem \
             certs/client-cert.pem \
@@ -16,6 +16,7 @@ certs_DATA+= \
             certs/dh2048.pem \
             certs/server-cert.pem \
             certs/server-ecc.pem \
+            certs/server-ecc-rsa.pem \
             certs/server-keyEnc.pem \
             certs/server-key.pem \
             certs/server-keyPkcs8Enc12.pem \
@@ -23,7 +24,7 @@ certs_DATA+= \
             certs/server-keyPkcs8Enc.pem \
             certs/server-keyPkcs8.pem
 
-certs_DATA+= \
+EXTRA_DIST += \
             certs/ca-key.der \
             certs/client-cert.der \
             certs/client-key.der \
@@ -32,7 +33,6 @@ certs_DATA+= \
             certs/dsa2048.der \
             certs/ecc-key.der
 
-EXTRA_DIST+= ${certs_DATA}
 
 doc_DATA+= certs/taoCert.txt
 
diff --git a/FreeRTOS-Plus/CyaSSL/certs/server-ecc-rsa.pem b/FreeRTOS-Plus/CyaSSL/certs/server-ecc-rsa.pem
new file mode 100644 (file)
index 0000000..5f25d9d
--- /dev/null
@@ -0,0 +1,54 @@
+Certificate:
+    Data:
+        Version: 1 (0x0)
+        Serial Number: 9 (0x9)
+        Signature Algorithm: sha1WithRSAEncryption
+        Issuer: C=US, ST=Montana, L=Bozeman, O=Sawtooth, OU=Consulting, CN=www.yassl.com/emailAddress=info@yassl.com
+        Validity
+            Not Before: Aug  8 21:58:29 2012 GMT
+            Not After : May  5 21:58:29 2015 GMT
+        Subject: C=US, ST=Washington, L=Seattle, O=Elliptic - RSAsig, OU=ECC-RSAsig, CN=www.yassl.com/emailAddress=info@yassl.com
+        Subject Public Key Info:
+            Public Key Algorithm: id-ecPublicKey
+            EC Public Key:
+                pub: 
+                    04:bb:33:ac:4c:27:50:4a:c6:4a:a5:04:c3:3c:de:
+                    9f:36:db:72:2d:ce:94:ea:2b:fa:cb:20:09:39:2c:
+                    16:e8:61:02:e9:af:4d:d3:02:93:9a:31:5b:97:92:
+                    21:7f:f0:cf:18:da:91:11:02:34:86:e8:20:58:33:
+                    0b:80:34:89:d8
+                ASN1 OID: prime256v1
+    Signature Algorithm: sha1WithRSAEncryption
+        a0:1c:de:98:e8:61:c8:fb:0a:0e:af:ea:99:4b:c0:49:e6:66:
+        68:5e:7a:18:b8:0c:e3:0f:16:86:bc:b5:86:79:02:69:1c:b7:
+        e7:ff:53:d9:05:5d:27:39:24:54:67:14:de:ef:8e:c2:a0:11:
+        ca:c8:27:99:b9:d6:e9:71:1f:86:c9:8f:b1:74:a2:9f:93:6a:
+        0c:74:cf:17:77:8c:26:08:6e:a8:ac:69:d4:55:15:a2:95:87:
+        43:7a:ab:72:93:73:40:58:c2:bb:9c:89:f2:73:20:69:df:f1:
+        f3:65:08:9c:00:67:97:a6:71:00:2b:31:84:10:ac:bd:54:ac:
+        fd:b3:eb:12:36:77:f6:0a:e3:9a:96:d2:a6:22:bc:1d:6b:ce:
+        3c:0d:7b:d9:1c:1d:f1:ee:ec:ce:83:c8:98:c9:65:3e:06:31:
+        c3:b2:87:da:09:b4:90:0b:e2:6b:29:0e:d6:ae:53:1d:10:98:
+        e2:dc:f9:63:38:a1:a2:af:46:23:a4:4c:ab:0c:0b:08:be:cd:
+        a4:a6:6d:46:f0:f8:e0:31:99:85:39:10:4a:a0:04:54:3b:21:
+        e1:e9:b4:f3:a5:06:cd:37:ae:2c:ca:5d:ac:90:b5:ab:92:81:
+        aa:bf:2d:3f:8e:ee:4d:12:81:0a:8e:a4:ca:87:93:af:b0:25:
+        7e:e2:07:f7
+-----BEGIN CERTIFICATE-----
+MIIC1zCCAb8CAQkwDQYJKoZIhvcNAQEFBQAwgZAxCzAJBgNVBAYTAlVTMRAwDgYD
+VQQIEwdNb250YW5hMRAwDgYDVQQHEwdCb3plbWFuMREwDwYDVQQKEwhTYXd0b290
+aDETMBEGA1UECxMKQ29uc3VsdGluZzEWMBQGA1UEAxMNd3d3Lnlhc3NsLmNvbTEd
+MBsGCSqGSIb3DQEJARYOaW5mb0B5YXNzbC5jb20wHhcNMTIwODA4MjE1ODI5WhcN
+MTUwNTA1MjE1ODI5WjCBnDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCldhc2hpbmd0
+b24xEDAOBgNVBAcTB1NlYXR0bGUxGjAYBgNVBAoTEUVsbGlwdGljIC0gUlNBc2ln
+MRMwEQYDVQQLEwpFQ0MtUlNBc2lnMRYwFAYDVQQDEw13d3cueWFzc2wuY29tMR0w
+GwYJKoZIhvcNAQkBFg5pbmZvQHlhc3NsLmNvbTBZMBMGByqGSM49AgEGCCqGSM49
+AwEHA0IABLszrEwnUErGSqUEwzzenzbbci3OlOor+ssgCTksFuhhAumvTdMCk5ox
+W5eSIX/wzxjakRECNIboIFgzC4A0idgwDQYJKoZIhvcNAQEFBQADggEBAKAc3pjo
+Ycj7Cg6v6plLwEnmZmheehi4DOMPFoa8tYZ5Amkct+f/U9kFXSc5JFRnFN7vjsKg
+EcrIJ5m51ulxH4bJj7F0op+Tagx0zxd3jCYIbqisadRVFaKVh0N6q3KTc0BYwruc
+ifJzIGnf8fNlCJwAZ5emcQArMYQQrL1UrP2z6xI2d/YK45qW0qYivB1rzjwNe9kc
+HfHu7M6DyJjJZT4GMcOyh9oJtJAL4mspDtauUx0QmOLc+WM4oaKvRiOkTKsMCwi+
+zaSmbUbw+OAxmYU5EEqgBFQ7IeHptPOlBs03rizKXayQtauSgaq/LT+O7k0SgQqO
+pMqHk6+wJX7iB/c=
+-----END CERTIFICATE-----
index 7dddffa6a28ade0ae18941b580f2289927d11835..f0bb921019be6b01bb867b6bf7b14b52dfdc1ede 100644 (file)
@@ -112,7 +112,7 @@ openssl dhparam -in dh2048.param -text > dh2048.pem
 
 1) create a crl
 
-a) openssl ca -gencrl -out crl.pem -keyfile ./ca-key.pem -cert ./ca-cert.pem
+a) openssl ca -gencrl -crldays 120 -out crl.pem -keyfile ./ca-key.pem -cert ./ca-cert.pem
 
 Error No ./CA root/index.txt so:
 
index 4987e0227fce378ca5c52611956e3a985addc70a..aff17db4ab02392ebe4a371a810c4089585514ea 100644 (file)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for cyassl 2.2.0.
+# Generated by GNU Autoconf 2.61 for cyassl 2.3.0.
 #
 # Report bugs to <http://www.yassl.com>.
 #
@@ -594,8 +594,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='cyassl'
 PACKAGE_TARNAME='cyassl'
-PACKAGE_VERSION='2.2.0'
-PACKAGE_STRING='cyassl 2.2.0'
+PACKAGE_VERSION='2.3.0'
+PACKAGE_STRING='cyassl 2.3.0'
 PACKAGE_BUGREPORT='http://www.yassl.com'
 
 # Factoring default headers for most tests.
@@ -765,8 +765,12 @@ BUILD_FASTMATH_TRUE
 BUILD_FASTMATH_FALSE
 BUILD_SNIFFER_TRUE
 BUILD_SNIFFER_FALSE
+BUILD_AESGCM_TRUE
+BUILD_AESGCM_FALSE
 BUILD_AESNI_TRUE
 BUILD_AESNI_FALSE
+BUILD_MD2_TRUE
+BUILD_MD2_FALSE
 BUILD_RIPEMD_TRUE
 BUILD_RIPEMD_FALSE
 BUILD_SHA512_TRUE
@@ -781,6 +785,8 @@ BUILD_OCSP_TRUE
 BUILD_OCSP_FALSE
 BUILD_CRL_TRUE
 BUILD_CRL_FALSE
+BUILD_CRL_MONITOR_TRUE
+BUILD_CRL_MONITOR_FALSE
 BUILD_NTRU_TRUE
 BUILD_NTRU_FALSE
 ax_pthread_config
@@ -1309,7 +1315,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures cyassl 2.2.0 to adapt to many kinds of systems.
+\`configure' configures cyassl 2.3.0 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1380,7 +1386,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of cyassl 2.2.0:";;
+     short | recursive ) echo "Configuration of cyassl 2.3.0:";;
    esac
   cat <<\_ACEOF
 
@@ -1408,9 +1414,11 @@ Optional Features:
   --enable-hugecache      Enable huge session cache (default: disabled)
   --enable-smallcache     Enable small session cache (default: disabled)
   --enable-sniffer        Enable CyaSSL sniffer support (default: disabled)
+  --enable-aesgcm         Enable CyaSSL AES-GCM support (default: disabled)
   --enable-aesni          Enable CyaSSL AES-NI support (default: disabled)
+  --enable-md2            Enable CyaSSL MD2 support (default: disabled)
   --enable-ripemd         Enable CyaSSL RIPEMD-160 support (default: disabled)
-  --enable-sha512         Enable CyaSSL SHA-160 support (default: disabled)
+  --enable-sha512         Enable CyaSSL SHA-512 support (default: disabled)
   --enable-sessioncerts   Enable session cert storing (default: disabled)
   --enable-keygen         Enable key generation (default: disabled)
   --enable-certgen        Enable cert generation (default: disabled)
@@ -1422,6 +1430,7 @@ Optional Features:
   --enable-ecc            Enable ECC (default: disabled)
   --enable-ocsp           Enable OCSP (default: disabled)
   --enable-crl            Enable CRL (default: disabled)
+  --enable-crl-monitor    Enable CRL Monitor (default: disabled)
   --enable-ntru           Enable NTRU (default: disabled)
   --enable-testcert       Enable Test Cert (default: disabled)
   --enable-gcc-lots-o-warnings
@@ -1517,7 +1526,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-cyassl configure 2.2.0
+cyassl configure 2.3.0
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1531,7 +1540,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by cyassl $as_me 2.2.0, which was
+It was created by cyassl $as_me 2.3.0, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2353,7 +2362,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='cyassl'
- VERSION='2.2.0'
+ VERSION='2.3.0'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -21826,6 +21835,48 @@ else
 fi
 
 
+# AES-GCM
+# Check whether --enable-aesgcm was given.
+if test "${enable_aesgcm+set}" = set; then
+  enableval=$enable_aesgcm;  ENABLED_AESGCM=$enableval
+else
+   ENABLED_AESGCM=no
+
+fi
+
+
+if test "$ENABLED_AESGCM" = "word32"
+then
+    AM_CFLAGS="$AM_CFLAGS -DGCM_WORD32"
+    ENABLED_AESGCM=yes
+fi
+
+if test "$ENABLED_AESGCM" = "small"
+then
+    AM_CFLAGS="$AM_CFLAGS -DGCM_SMALL"
+    ENABLED_AESGCM=yes
+fi
+
+if test "$ENABLED_AESGCM" = "table"
+then
+    AM_CFLAGS="$AM_CFLAGS -DGCM_TABLE"
+    ENABLED_AESGCM=yes
+fi
+
+if test "$ENABLED_AESGCM" = "yes"
+then
+    AM_CFLAGS="$AM_CFLAGS -DHAVE_AESGCM -DCYASSL_SHA384 -DCYASSL_SHA512"
+fi
+
+ if test "x$ENABLED_AESGCM" = "xyes"; then
+  BUILD_AESGCM_TRUE=
+  BUILD_AESGCM_FALSE='#'
+else
+  BUILD_AESGCM_TRUE='#'
+  BUILD_AESGCM_FALSE=
+fi
+
+
 # AES-NI
 # Check whether --enable-aesni was given.
 if test "${enable_aesni+set}" = set; then
 
 
 
+# MD2
+# Check whether --enable-md2 was given.
+if test "${enable_md2+set}" = set; then
+  enableval=$enable_md2;  ENABLED_MD2=$enableval
+else
+   ENABLED_MD2=no
+
+fi
+
+
+if test "$ENABLED_BUMP" = "yes"
+then
+    ENABLED_MD2="yes"
+fi
+
+if test "$ENABLED_MD2" = "yes"
+then
+    AM_CFLAGS="$AM_CFLAGS -DCYASSL_MD2"
+fi
+
+ if test "x$ENABLED_MD2" = "xyes"; then
+  BUILD_MD2_TRUE=
+  BUILD_MD2_FALSE='#'
+else
+  BUILD_MD2_TRUE='#'
+  BUILD_MD2_FALSE=
+fi
+
+
+
 # RIPEMD
 # Check whether --enable-ripemd was given.
 if test "${enable_ripemd+set}" = set; then
@@ -21901,6 +21982,11 @@ then
     ENABLED_SHA512="yes"
 fi
 
+if test "$ENABLED_AESGCM" = "yes"
+then
+    ENABLED_SHA512="yes"
+fi
+
 
  if test "x$ENABLED_SHA512" = "xyes"; then
   BUILD_SHA512_TRUE=
 
 
 
+# CRL Monitor
+# Check whether --enable-crl-monitor was given.
+if test "${enable_crl_monitor+set}" = set; then
+  enableval=$enable_crl_monitor;  ENABLED_CRL_MONITOR=$enableval
+else
+   ENABLED_CRL_MONITOR=no
+fi
+
+
+if test "$ENABLED_CRL_MONITOR" = "yes"
+then
+    AM_CFLAGS="$AM_CFLAGS -DHAVE_CRL_MONITOR"
+fi
+
+ if test "x$ENABLED_CRL_MONITOR" = "xyes"; then
+  BUILD_CRL_MONITOR_TRUE=
+  BUILD_CRL_MONITOR_FALSE='#'
+else
+  BUILD_CRL_MONITOR_TRUE='#'
+  BUILD_CRL_MONITOR_FALSE=
+fi
+
+
+
 # NTRU
 ntruHome=`pwd`/NTRU_algorithm
 ntruInclude=$ntruHome/cryptolib
 
 
 
-GCCWARNINGS="-Wall -fno-strict-aliasing -W -Wfloat-equal -Wundef        \
+GCCWARNINGS="-Wall -fno-strict-aliasing -W -Wfloat-equal -Wundef          \
   -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes                \
   -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment           \
   -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls     \
   -Wnested-externs -Wbad-function-cast -Wswitch-enum -Winit-self          \
   -Wmissing-field-initializers -Wdeclaration-after-statement              \
   -Wold-style-definition -Waddress -Wmissing-noreturn -Wnormalized=id     \
-  -Woverride-init -Wstrict-overflow=1 -Wextra -Warray-bounds              \
-  -Wstack-protector -Wformat -Wformat-security -Wpointer-sign -Wshadow    \
-  -Wswitch-default"
+  -Woverride-init -Wstrict-overflow=1 -Wextra -Wstack-protector -Wformat  \
+  -Wformat-security -Wpointer-sign -Wshadow -Wswitch-default"
+
+case "$host_os" in
+  *linux*)
+GCCWARNINGS="$GCCWARNINGS -Warray-bounds"
+  ;;
+esac
 
 # Check whether --enable-gcc-lots-o-warnings was given.
 if test "${enable_gcc_lots_o_warnings+set}" = set; then
@@ -23298,6 +23413,13 @@ echo "$as_me: error: conditional \"BUILD_SNIFFER\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${BUILD_AESGCM_TRUE}" && test -z "${BUILD_AESGCM_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"BUILD_AESGCM\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"BUILD_AESGCM\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${BUILD_AESNI_TRUE}" && test -z "${BUILD_AESNI_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"BUILD_AESNI\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -23305,6 +23427,13 @@ echo "$as_me: error: conditional \"BUILD_AESNI\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${BUILD_MD2_TRUE}" && test -z "${BUILD_MD2_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"BUILD_MD2\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"BUILD_MD2\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${BUILD_RIPEMD_TRUE}" && test -z "${BUILD_RIPEMD_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"BUILD_RIPEMD\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -23354,6 +23483,13 @@ echo "$as_me: error: conditional \"BUILD_CRL\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${BUILD_CRL_MONITOR_TRUE}" && test -z "${BUILD_CRL_MONITOR_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"BUILD_CRL_MONITOR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"BUILD_CRL_MONITOR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${BUILD_NTRU_TRUE}" && test -z "${BUILD_NTRU_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"BUILD_NTRU\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -23661,7 +23797,7 @@ exec 6>&1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by cyassl $as_me 2.2.0, which was
+This file was extended by cyassl $as_me 2.3.0, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -23714,7 +23850,7 @@ Report bugs to <bug-autoconf@gnu.org>."
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-cyassl config.status 2.2.0
+cyassl config.status 2.3.0
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -24431,8 +24567,12 @@ BUILD_FASTMATH_TRUE!$BUILD_FASTMATH_TRUE$ac_delim
 BUILD_FASTMATH_FALSE!$BUILD_FASTMATH_FALSE$ac_delim
 BUILD_SNIFFER_TRUE!$BUILD_SNIFFER_TRUE$ac_delim
 BUILD_SNIFFER_FALSE!$BUILD_SNIFFER_FALSE$ac_delim
+BUILD_AESGCM_TRUE!$BUILD_AESGCM_TRUE$ac_delim
+BUILD_AESGCM_FALSE!$BUILD_AESGCM_FALSE$ac_delim
 BUILD_AESNI_TRUE!$BUILD_AESNI_TRUE$ac_delim
 BUILD_AESNI_FALSE!$BUILD_AESNI_FALSE$ac_delim
+BUILD_MD2_TRUE!$BUILD_MD2_TRUE$ac_delim
+BUILD_MD2_FALSE!$BUILD_MD2_FALSE$ac_delim
 BUILD_RIPEMD_TRUE!$BUILD_RIPEMD_TRUE$ac_delim
 BUILD_RIPEMD_FALSE!$BUILD_RIPEMD_FALSE$ac_delim
 BUILD_SHA512_TRUE!$BUILD_SHA512_TRUE$ac_delim
@@ -24447,6 +24587,8 @@ BUILD_OCSP_TRUE!$BUILD_OCSP_TRUE$ac_delim
 BUILD_OCSP_FALSE!$BUILD_OCSP_FALSE$ac_delim
 BUILD_CRL_TRUE!$BUILD_CRL_TRUE$ac_delim
 BUILD_CRL_FALSE!$BUILD_CRL_FALSE$ac_delim
+BUILD_CRL_MONITOR_TRUE!$BUILD_CRL_MONITOR_TRUE$ac_delim
+BUILD_CRL_MONITOR_FALSE!$BUILD_CRL_MONITOR_FALSE$ac_delim
 BUILD_NTRU_TRUE!$BUILD_NTRU_TRUE$ac_delim
 BUILD_NTRU_FALSE!$BUILD_NTRU_FALSE$ac_delim
 ax_pthread_config!$ax_pthread_config$ac_delim
@@ -24459,7 +24601,7 @@ AM_LDFLAGS!$AM_LDFLAGS$ac_delim
 LTLIBOBJS!$LTLIBOBJS$ac_delim
 _ACEOF
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 58; then
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 64; then
     break
   elif $ac_last_try; then
     { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
index 6bb2c4da6570382984281ae5995bf9236b5be673..88a368dec67e6a05934fc7f6acf6c9bdd37e2a30 100644 (file)
@@ -1,12 +1,12 @@
 # configure.ac
 #
-# Copyright (C) 2006-2011 Sawtooth Consulting Ltd.
+# Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
 #
 # This file is part of CyaSSL.
 #
 #
 
-AC_INIT([cyassl],[2.2.0],[http://www.yassl.com])
+AC_INIT([cyassl],[2.3.0],[http://www.yassl.com])
 
 AC_CONFIG_AUX_DIR(config)
 
@@ -289,6 +289,38 @@ fi
 
 AM_CONDITIONAL([BUILD_SNIFFER], [test "x$ENABLED_SNIFFER" = "xyes"])
 
+# AES-GCM
+AC_ARG_ENABLE(aesgcm,
+    [  --enable-aesgcm         Enable CyaSSL AES-GCM support (default: disabled)],
+    [ ENABLED_AESGCM=$enableval ],
+    [ ENABLED_AESGCM=no ]
+    )
+
+if test "$ENABLED_AESGCM" = "word32"
+then
+    AM_CFLAGS="$AM_CFLAGS -DGCM_WORD32"
+    ENABLED_AESGCM=yes
+fi
+
+if test "$ENABLED_AESGCM" = "small"
+then
+    AM_CFLAGS="$AM_CFLAGS -DGCM_SMALL"
+    ENABLED_AESGCM=yes
+fi
+
+if test "$ENABLED_AESGCM" = "table"
+then
+    AM_CFLAGS="$AM_CFLAGS -DGCM_TABLE"
+    ENABLED_AESGCM=yes
+fi
+
+if test "$ENABLED_AESGCM" = "yes"
+then
+    AM_CFLAGS="$AM_CFLAGS -DHAVE_AESGCM -DCYASSL_SHA384 -DCYASSL_SHA512"
+fi
+
+AM_CONDITIONAL([BUILD_AESGCM], [test "x$ENABLED_AESGCM" = "xyes"])
+
 # AES-NI
 AC_ARG_ENABLE(aesni,
     [  --enable-aesni          Enable CyaSSL AES-NI support (default: disabled)],
@@ -309,6 +341,26 @@ fi
 AM_CONDITIONAL([BUILD_AESNI], [test "x$ENABLED_AESNI" = "xyes"])
 
 
+# MD2
+AC_ARG_ENABLE(md2,
+    [  --enable-md2            Enable CyaSSL MD2 support (default: disabled)],
+    [ ENABLED_MD2=$enableval ],
+    [ ENABLED_MD2=no ]
+    )
+
+if test "$ENABLED_BUMP" = "yes"
+then
+    ENABLED_MD2="yes"
+fi
+
+if test "$ENABLED_MD2" = "yes"
+then
+    AM_CFLAGS="$AM_CFLAGS -DCYASSL_MD2"
+fi
+
+AM_CONDITIONAL([BUILD_MD2], [test "x$ENABLED_MD2" = "xyes"])
+
+
 # RIPEMD
 AC_ARG_ENABLE(ripemd,
     [  --enable-ripemd         Enable CyaSSL RIPEMD-160 support (default: disabled)],
@@ -326,7 +378,7 @@ AM_CONDITIONAL([BUILD_RIPEMD], [test "x$ENABLED_RIPEMD" = "xyes"])
 
 # SHA512
 AC_ARG_ENABLE(sha512,
-    [  --enable-sha512         Enable CyaSSL SHA-160 support (default: disabled)],
+    [  --enable-sha512         Enable CyaSSL SHA-512 support (default: disabled)],
     [ ENABLED_SHA512=$enableval ],
     [ ENABLED_SHA512=no ]
     )
@@ -341,6 +393,11 @@ then
     ENABLED_SHA512="yes"
 fi
 
+if test "$ENABLED_AESGCM" = "yes"
+then
+    ENABLED_SHA512="yes"
+fi
+
 
 AM_CONDITIONAL([BUILD_SHA512], [test "x$ENABLED_SHA512" = "xyes"])
 
@@ -506,6 +563,21 @@ fi
 AM_CONDITIONAL([BUILD_CRL], [test "x$ENABLED_CRL" = "xyes"])
 
 
+# CRL Monitor
+AC_ARG_ENABLE(crl-monitor,
+    [  --enable-crl-monitor    Enable CRL Monitor (default: disabled)],
+    [ ENABLED_CRL_MONITOR=$enableval ],
+    [ ENABLED_CRL_MONITOR=no ],
+    )
+
+if test "$ENABLED_CRL_MONITOR" = "yes"
+then
+    AM_CFLAGS="$AM_CFLAGS -DHAVE_CRL_MONITOR"
+fi
+
+AM_CONDITIONAL([BUILD_CRL_MONITOR], [test "x$ENABLED_CRL_MONITOR" = "xyes"])
+
+
 # NTRU
 ntruHome=`pwd`/NTRU_algorithm
 ntruInclude=$ntruHome/cryptolib
@@ -610,16 +682,21 @@ AX_PTHREAD([
 LIB_SOCKET_NSL
 
 dnl Various GCC warnings that should never fire for release quality code
-GCCWARNINGS="-Wall -fno-strict-aliasing -W -Wfloat-equal -Wundef        \
+GCCWARNINGS="-Wall -fno-strict-aliasing -W -Wfloat-equal -Wundef          \
   -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes                \
   -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment           \
   -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls     \
   -Wnested-externs -Wbad-function-cast -Wswitch-enum -Winit-self          \
   -Wmissing-field-initializers -Wdeclaration-after-statement              \
   -Wold-style-definition -Waddress -Wmissing-noreturn -Wnormalized=id     \
-  -Woverride-init -Wstrict-overflow=1 -Wextra -Warray-bounds              \
-  -Wstack-protector -Wformat -Wformat-security -Wpointer-sign -Wshadow    \
-  -Wswitch-default"
+  -Woverride-init -Wstrict-overflow=1 -Wextra -Wstack-protector -Wformat  \
+  -Wformat-security -Wpointer-sign -Wshadow -Wswitch-default"
+
+case "$host_os" in
+  *linux*)
+GCCWARNINGS="$GCCWARNINGS -Warray-bounds"
+  ;;
+esac
 
 AC_ARG_ENABLE(gcc-lots-o-warnings,
 AS_HELP_STRING(--enable-gcc-lots-o-warnings, Enable lots of gcc warnings (default: disabled)),
index 701061e40cd8e3aabff03fcbabb4dfb0c1df4ec9..b1e662034f4c9ddd7b1b37ae609460a48233ad65 100644 (file)
@@ -54,6 +54,7 @@ void bench_arc4();
 void bench_hc128();
 void bench_rabbit();
 void bench_aes(int);
+void bench_aesgcm();
 
 void bench_md5();
 void bench_sha();
@@ -78,6 +79,9 @@ int main(int argc, char** argv)
 #ifndef NO_AES
     bench_aes(0);
     bench_aes(1);
+#endif
+#ifdef HAVE_AESGCM
+    bench_aesgcm();
 #endif
     bench_arc4();
 #ifdef HAVE_HC128
@@ -171,6 +175,34 @@ void bench_aes(int show)
 #endif
 
 
+byte additional[13];
+byte tag[16];
+
+
+#ifdef HAVE_AESGCM
+void bench_aesgcm()
+{
+    Aes    enc;
+    double start, total, persec;
+    int    i;
+
+    AesGcmSetKey(&enc, key, 16, iv);
+    AesGcmSetExpIV(&enc, iv+4);
+    start = current_time();
+
+    for(i = 0; i < megs; i++)
+        AesGcmEncrypt(&enc, cipher, plain, sizeof(plain),
+                        tag, 16, additional, 13);
+
+    total = current_time() - start;
+
+    persec = 1 / total * megs;
+    printf("AES-GCM  %d megs took %5.3f seconds, %6.2f MB/s\n", megs, total,
+                                                                    persec);
+}
+#endif
+
+
 #ifndef NO_DES3
 void bench_des()
 {
index ca1afb14011f33a33e7fe71b0addf8cc879fc4df..9d21024889ecc5aa1f65bf02b87c18535887d2e9 100644 (file)
@@ -1404,5 +1404,753 @@ void AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz)
 
 #endif /* CYASSL_AES_COUNTER */
 
+
+#ifdef HAVE_AESGCM
+
+/*
+ * The IV for AES GCM, stored in struct Aes's member reg, is comprised of
+ * three parts in order:
+ *   1. The implicit IV. This is generated from the PRF using the shared
+ *      secrets between endpoints. It is 4 bytes long.
+ *   2. The explicit IV. This is set by the user of the AES. It needs to be
+ *      unique for each call to encrypt. The explicit IV is shared with the
+ *      other end of the transaction in the clear.
+ *   3. The counter. Each block of data is encrypted with its own sequence
+ *      number counter.
+ */
+
+enum {
+    IMPLICIT_IV_SZ = 4,
+    EXPLICIT_IV_SZ = 8,
+    CTR_SZ = 4
+};
+
+
+static INLINE void InitGcmCounter(byte* inOutCtr)
+{
+    inOutCtr[AES_BLOCK_SIZE - 4] = 0;
+    inOutCtr[AES_BLOCK_SIZE - 3] = 0;
+    inOutCtr[AES_BLOCK_SIZE - 2] = 0;
+    inOutCtr[AES_BLOCK_SIZE - 1] = 1;
+}
+
+
+static INLINE void IncrementGcmCounter(byte* inOutCtr)
+{
+    int i;
+
+    /* in network byte order so start at end and work back */
+    for (i = AES_BLOCK_SIZE - 1; i >= AES_BLOCK_SIZE - CTR_SZ; i--) {
+        if (++inOutCtr[i])  /* we're done unless we overflow */
+            return;
+    }
+}
+
+
+/*
+ * The explicit IV is set by the caller. A common practice is to treat it as
+ * a sequence number seeded with a random number. The caller manages
+ * incrementing the explicit IV when appropriate.
+ */
+
+void AesGcmSetExpIV(Aes* aes, const byte* iv)
+{
+    XMEMCPY((byte*)aes->reg + IMPLICIT_IV_SZ, iv, EXPLICIT_IV_SZ);
+}
+
+
+void AesGcmGetExpIV(Aes* aes, byte* iv)
+{
+    XMEMCPY(iv, (byte*)aes->reg + IMPLICIT_IV_SZ, EXPLICIT_IV_SZ);
+}
+
+
+void AesGcmIncExpIV(Aes* aes)
+{
+    int i;
+    byte* iv = (byte*)aes->reg + IMPLICIT_IV_SZ;
+
+    for (i = EXPLICIT_IV_SZ - 1; i >= 0; i--) {
+        if (++iv[i])
+            return;
+    }
+}
+
+
+#if defined(GCM_SMALL) || defined(GCM_TABLE)
+
+static INLINE void FlattenSzInBits(byte* buf, word32 sz)
+{
+    /* Multiply the sz by 8 */
+    word32 szHi = (sz >> (8*sizeof(sz) - 3));
+    sz <<= 3;
+
+    /* copy over the words of the sz into the destination buffer */
+    buf[0] = (szHi >> 24) & 0xff;
+    buf[1] = (szHi >> 16) & 0xff;
+    buf[2] = (szHi >>  8) & 0xff;
+    buf[3] = szHi & 0xff;
+    buf[4] = (sz >> 24) & 0xff;
+    buf[5] = (sz >> 16) & 0xff;
+    buf[6] = (sz >>  8) & 0xff;
+    buf[7] = sz & 0xff;
+}
+
+
+static INLINE void RIGHTSHIFTX(byte* x)
+{
+    int i;
+    int carryOut = 0;
+    int carryIn = 0;
+    int borrow = x[15] & 0x01;
+
+    for (i = 0; i < AES_BLOCK_SIZE; i++) {
+        carryOut = x[i] & 0x01;
+        x[i] = (x[i] >> 1) | (carryIn ? 0x80 : 0);
+        carryIn = carryOut;
+    }
+    if (borrow) x[0] ^= 0xE1;
+}
+
+#endif /* defined(GCM_SMALL) || defined(GCM_TABLE) */
+
+
+#ifdef GCM_TABLE
+
+static void GenerateM0(Aes* aes)
+{
+    int i, j;
+    byte (*m)[AES_BLOCK_SIZE] = aes->M0;
+
+    XMEMCPY(m[128], aes->H, AES_BLOCK_SIZE);
+
+    for (i = 64; i > 0; i /= 2) {
+        XMEMCPY(m[i], m[i*2], AES_BLOCK_SIZE);
+        RIGHTSHIFTX(m[i]);
+    }
+
+    for (i = 2; i < 256; i *= 2) {
+        for (j = 1; j < i; j++) {
+            XMEMCPY(m[i+j], m[i], AES_BLOCK_SIZE);
+            xorbuf(m[i+j], m[j], AES_BLOCK_SIZE);
+        }
+    }
+
+    XMEMSET(m[0], 0, AES_BLOCK_SIZE);
+}
+
+#endif /* GCM_TABLE */
+
+
+void AesGcmSetKey(Aes* aes, const byte* key, word32 len,
+                                                    const byte* implicitIV)
+{
+    byte fullIV[AES_BLOCK_SIZE];
+
+    XMEMSET(fullIV, 0, AES_BLOCK_SIZE);
+    XMEMCPY(fullIV, implicitIV, IMPLICIT_IV_SZ);
+    AesSetKey(aes, key, len, fullIV, AES_ENCRYPTION);
+
+    XMEMSET(fullIV, 0, AES_BLOCK_SIZE);
+    AesEncrypt(aes, fullIV, aes->H);
+#ifdef GCM_TABLE
+    GenerateM0(aes);
+#endif /* GCM_TABLE */
+}
+
+
+#if defined(GCM_SMALL)
+
+static void GMULT(byte* X, byte* Y)
+{
+    byte Z[AES_BLOCK_SIZE];
+    byte V[AES_BLOCK_SIZE];
+    int i, j;
+
+    XMEMSET(Z, 0, AES_BLOCK_SIZE);
+    XMEMCPY(V, X, AES_BLOCK_SIZE);
+    for (i = 0; i < AES_BLOCK_SIZE; i++)
+    {
+        byte y = Y[i];
+        for (j = 0; j < 8; j++)
+        {
+            if (y & 0x80) {
+                xorbuf(Z, V, AES_BLOCK_SIZE);
+            }
+
+            RIGHTSHIFTX(V);
+            y = y << 1;
+        }
+    }
+    XMEMCPY(X, Z, AES_BLOCK_SIZE);
+}
+
+
+static void GHASH(Aes* aes, const byte* a, word32 aSz,
+                                const byte* c, word32 cSz, byte* s, word32 sSz)
+{
+    byte x[AES_BLOCK_SIZE];
+    byte scratch[AES_BLOCK_SIZE];
+    word32 blocks, partial;
+    byte* h = aes->H;
+
+    XMEMSET(x, 0, AES_BLOCK_SIZE);
+
+    /* Hash in A, the Additional Authentication Data */
+    if (aSz != 0 && a != NULL) {
+        blocks = aSz / AES_BLOCK_SIZE;
+        partial = aSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            xorbuf(x, a, AES_BLOCK_SIZE);
+            GMULT(x, h);
+            a += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(scratch, 0, AES_BLOCK_SIZE);
+            XMEMCPY(scratch, a, partial);
+            xorbuf(x, scratch, AES_BLOCK_SIZE);
+            GMULT(x, h);
+        }
+    }
+
+    /* Hash in C, the Ciphertext */
+    if (cSz != 0 && c != NULL) {
+        blocks = cSz / AES_BLOCK_SIZE;
+        partial = cSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            xorbuf(x, c, AES_BLOCK_SIZE);
+            GMULT(x, h);
+            c += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(scratch, 0, AES_BLOCK_SIZE);
+            XMEMCPY(scratch, c, partial);
+            xorbuf(x, scratch, AES_BLOCK_SIZE);
+            GMULT(x, h);
+        }
+    }
+
+    /* Hash in the lengths of A and C in bits */
+    FlattenSzInBits(&scratch[0], aSz);
+    FlattenSzInBits(&scratch[8], cSz);
+    xorbuf(x, scratch, AES_BLOCK_SIZE);
+    GMULT(x, h);
+
+    /* Copy the result into s. */
+    XMEMCPY(s, x, sSz);
+}
+
+/* end GCM_SMALL */
+#elif defined(GCM_TABLE)
+
+static const byte R[256][2] = {
+    {0x00, 0x00}, {0x01, 0xc2}, {0x03, 0x84}, {0x02, 0x46},
+    {0x07, 0x08}, {0x06, 0xca}, {0x04, 0x8c}, {0x05, 0x4e},
+    {0x0e, 0x10}, {0x0f, 0xd2}, {0x0d, 0x94}, {0x0c, 0x56},
+    {0x09, 0x18}, {0x08, 0xda}, {0x0a, 0x9c}, {0x0b, 0x5e},
+    {0x1c, 0x20}, {0x1d, 0xe2}, {0x1f, 0xa4}, {0x1e, 0x66},
+    {0x1b, 0x28}, {0x1a, 0xea}, {0x18, 0xac}, {0x19, 0x6e},
+    {0x12, 0x30}, {0x13, 0xf2}, {0x11, 0xb4}, {0x10, 0x76},
+    {0x15, 0x38}, {0x14, 0xfa}, {0x16, 0xbc}, {0x17, 0x7e},
+    {0x38, 0x40}, {0x39, 0x82}, {0x3b, 0xc4}, {0x3a, 0x06},
+    {0x3f, 0x48}, {0x3e, 0x8a}, {0x3c, 0xcc}, {0x3d, 0x0e},
+    {0x36, 0x50}, {0x37, 0x92}, {0x35, 0xd4}, {0x34, 0x16},
+    {0x31, 0x58}, {0x30, 0x9a}, {0x32, 0xdc}, {0x33, 0x1e},
+    {0x24, 0x60}, {0x25, 0xa2}, {0x27, 0xe4}, {0x26, 0x26},
+    {0x23, 0x68}, {0x22, 0xaa}, {0x20, 0xec}, {0x21, 0x2e},
+    {0x2a, 0x70}, {0x2b, 0xb2}, {0x29, 0xf4}, {0x28, 0x36},
+    {0x2d, 0x78}, {0x2c, 0xba}, {0x2e, 0xfc}, {0x2f, 0x3e},
+    {0x70, 0x80}, {0x71, 0x42}, {0x73, 0x04}, {0x72, 0xc6},
+    {0x77, 0x88}, {0x76, 0x4a}, {0x74, 0x0c}, {0x75, 0xce},
+    {0x7e, 0x90}, {0x7f, 0x52}, {0x7d, 0x14}, {0x7c, 0xd6},
+    {0x79, 0x98}, {0x78, 0x5a}, {0x7a, 0x1c}, {0x7b, 0xde},
+    {0x6c, 0xa0}, {0x6d, 0x62}, {0x6f, 0x24}, {0x6e, 0xe6},
+    {0x6b, 0xa8}, {0x6a, 0x6a}, {0x68, 0x2c}, {0x69, 0xee},
+    {0x62, 0xb0}, {0x63, 0x72}, {0x61, 0x34}, {0x60, 0xf6},
+    {0x65, 0xb8}, {0x64, 0x7a}, {0x66, 0x3c}, {0x67, 0xfe},
+    {0x48, 0xc0}, {0x49, 0x02}, {0x4b, 0x44}, {0x4a, 0x86},
+    {0x4f, 0xc8}, {0x4e, 0x0a}, {0x4c, 0x4c}, {0x4d, 0x8e},
+    {0x46, 0xd0}, {0x47, 0x12}, {0x45, 0x54}, {0x44, 0x96},
+    {0x41, 0xd8}, {0x40, 0x1a}, {0x42, 0x5c}, {0x43, 0x9e},
+    {0x54, 0xe0}, {0x55, 0x22}, {0x57, 0x64}, {0x56, 0xa6},
+    {0x53, 0xe8}, {0x52, 0x2a}, {0x50, 0x6c}, {0x51, 0xae},
+    {0x5a, 0xf0}, {0x5b, 0x32}, {0x59, 0x74}, {0x58, 0xb6},
+    {0x5d, 0xf8}, {0x5c, 0x3a}, {0x5e, 0x7c}, {0x5f, 0xbe},
+    {0xe1, 0x00}, {0xe0, 0xc2}, {0xe2, 0x84}, {0xe3, 0x46},
+    {0xe6, 0x08}, {0xe7, 0xca}, {0xe5, 0x8c}, {0xe4, 0x4e},
+    {0xef, 0x10}, {0xee, 0xd2}, {0xec, 0x94}, {0xed, 0x56},
+    {0xe8, 0x18}, {0xe9, 0xda}, {0xeb, 0x9c}, {0xea, 0x5e},
+    {0xfd, 0x20}, {0xfc, 0xe2}, {0xfe, 0xa4}, {0xff, 0x66},
+    {0xfa, 0x28}, {0xfb, 0xea}, {0xf9, 0xac}, {0xf8, 0x6e},
+    {0xf3, 0x30}, {0xf2, 0xf2}, {0xf0, 0xb4}, {0xf1, 0x76},
+    {0xf4, 0x38}, {0xf5, 0xfa}, {0xf7, 0xbc}, {0xf6, 0x7e},
+    {0xd9, 0x40}, {0xd8, 0x82}, {0xda, 0xc4}, {0xdb, 0x06},
+    {0xde, 0x48}, {0xdf, 0x8a}, {0xdd, 0xcc}, {0xdc, 0x0e},
+    {0xd7, 0x50}, {0xd6, 0x92}, {0xd4, 0xd4}, {0xd5, 0x16},
+    {0xd0, 0x58}, {0xd1, 0x9a}, {0xd3, 0xdc}, {0xd2, 0x1e},
+    {0xc5, 0x60}, {0xc4, 0xa2}, {0xc6, 0xe4}, {0xc7, 0x26},
+    {0xc2, 0x68}, {0xc3, 0xaa}, {0xc1, 0xec}, {0xc0, 0x2e},
+    {0xcb, 0x70}, {0xca, 0xb2}, {0xc8, 0xf4}, {0xc9, 0x36},
+    {0xcc, 0x78}, {0xcd, 0xba}, {0xcf, 0xfc}, {0xce, 0x3e},
+    {0x91, 0x80}, {0x90, 0x42}, {0x92, 0x04}, {0x93, 0xc6},
+    {0x96, 0x88}, {0x97, 0x4a}, {0x95, 0x0c}, {0x94, 0xce},
+    {0x9f, 0x90}, {0x9e, 0x52}, {0x9c, 0x14}, {0x9d, 0xd6},
+    {0x98, 0x98}, {0x99, 0x5a}, {0x9b, 0x1c}, {0x9a, 0xde},
+    {0x8d, 0xa0}, {0x8c, 0x62}, {0x8e, 0x24}, {0x8f, 0xe6},
+    {0x8a, 0xa8}, {0x8b, 0x6a}, {0x89, 0x2c}, {0x88, 0xee},
+    {0x83, 0xb0}, {0x82, 0x72}, {0x80, 0x34}, {0x81, 0xf6},
+    {0x84, 0xb8}, {0x85, 0x7a}, {0x87, 0x3c}, {0x86, 0xfe},
+    {0xa9, 0xc0}, {0xa8, 0x02}, {0xaa, 0x44}, {0xab, 0x86},
+    {0xae, 0xc8}, {0xaf, 0x0a}, {0xad, 0x4c}, {0xac, 0x8e},
+    {0xa7, 0xd0}, {0xa6, 0x12}, {0xa4, 0x54}, {0xa5, 0x96},
+    {0xa0, 0xd8}, {0xa1, 0x1a}, {0xa3, 0x5c}, {0xa2, 0x9e},
+    {0xb5, 0xe0}, {0xb4, 0x22}, {0xb6, 0x64}, {0xb7, 0xa6},
+    {0xb2, 0xe8}, {0xb3, 0x2a}, {0xb1, 0x6c}, {0xb0, 0xae},
+    {0xbb, 0xf0}, {0xba, 0x32}, {0xb8, 0x74}, {0xb9, 0xb6},
+    {0xbc, 0xf8}, {0xbd, 0x3a}, {0xbf, 0x7c}, {0xbe, 0xbe} };
+
+
+static void GMULT(byte *x, byte m[256][AES_BLOCK_SIZE])
+{
+    int i, j;
+    byte Z[AES_BLOCK_SIZE];
+    byte a;
+
+    XMEMSET(Z, 0, sizeof(Z));
+
+    for (i = 15; i > 0; i--) {
+        xorbuf(Z, m[x[i]], AES_BLOCK_SIZE);
+        a = Z[15];
+
+        for (j = 15; j > 0; j--) {
+            Z[j] = Z[j-1];
+        }
+
+        Z[0] = R[a][0];
+        Z[1] ^= R[a][1];
+    }
+    xorbuf(Z, m[x[0]], AES_BLOCK_SIZE);
+
+    XMEMCPY(x, Z, AES_BLOCK_SIZE);
+}
+
+
+static void GHASH(Aes* aes, const byte* a, word32 aSz,
+                                const byte* c, word32 cSz, byte* s, word32 sSz)
+{
+    byte x[AES_BLOCK_SIZE];
+    byte scratch[AES_BLOCK_SIZE];
+    word32 blocks, partial;
+
+    XMEMSET(x, 0, AES_BLOCK_SIZE);
+
+    /* Hash in A, the Additional Authentication Data */
+    if (aSz != 0 && a != NULL) {
+        blocks = aSz / AES_BLOCK_SIZE;
+        partial = aSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            xorbuf(x, a, AES_BLOCK_SIZE);
+            GMULT(x, aes->M0);
+            a += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(scratch, 0, AES_BLOCK_SIZE);
+            XMEMCPY(scratch, a, partial);
+            xorbuf(x, scratch, AES_BLOCK_SIZE);
+            GMULT(x, aes->M0);
+        }
+    }
+
+    /* Hash in C, the Ciphertext */
+    if (cSz != 0 && c != NULL) {
+        blocks = cSz / AES_BLOCK_SIZE;
+        partial = cSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            xorbuf(x, c, AES_BLOCK_SIZE);
+            GMULT(x, aes->M0);
+            c += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(scratch, 0, AES_BLOCK_SIZE);
+            XMEMCPY(scratch, c, partial);
+            xorbuf(x, scratch, AES_BLOCK_SIZE);
+            GMULT(x, aes->M0);
+        }
+    }
+
+    /* Hash in the lengths of A and C in bits */
+    FlattenSzInBits(&scratch[0], aSz);
+    FlattenSzInBits(&scratch[8], cSz);
+    xorbuf(x, scratch, AES_BLOCK_SIZE);
+    GMULT(x, aes->M0);
+
+    /* Copy the result into s. */
+    XMEMCPY(s, x, sSz);
+}
+
+/* end GCM_TABLE */
+#elif defined(WORD64_AVAILABLE) && !defined(GCM_WORD32)
+
+static void GMULT(word64* X, word64* Y)
+{
+    word64 Z[2] = {0,0};
+    word64 V[2] = {X[0], X[1]};
+    int i, j;
+
+    for (i = 0; i < 2; i++)
+    {
+        word64 y = Y[i];
+        for (j = 0; j < 64; j++)
+        {
+            if (y & 0x8000000000000000) {
+                Z[0] ^= V[0];
+                Z[1] ^= V[1];
+            }
+
+            if (V[1] & 0x0000000000000001) {
+                V[1] >>= 1;
+                V[1] |= ((V[0] & 0x0000000000000001) ? 0x8000000000000000 : 0);
+                V[0] >>= 1;
+                V[0] ^= 0xE100000000000000;
+            }
+            else {
+                V[1] >>= 1;
+                V[1] |= ((V[0] & 0x0000000000000001) ? 0x8000000000000000 : 0);
+                V[0] >>= 1;
+            }
+            y <<= 1;
+        }
+    }
+    X[0] = Z[0];
+    X[1] = Z[1];
+}
+
+
+static void GHASH(Aes* aes, const byte* a, word32 aSz,
+                                const byte* c, word32 cSz, byte* s, word32 sSz)
+{
+    word64 x[2] = {0,0};
+    word32 blocks, partial;
+    word64 bigH[2];
+
+    XMEMCPY(bigH, aes->H, AES_BLOCK_SIZE);
+    #ifdef LITTLE_ENDIAN_ORDER
+        ByteReverseWords64(bigH, bigH, AES_BLOCK_SIZE); 
+    #endif
+
+    /* Hash in A, the Additional Authentication Data */
+    if (aSz != 0 && a != NULL) {
+        word64 bigA[2];
+        blocks = aSz / AES_BLOCK_SIZE;
+        partial = aSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            XMEMCPY(bigA, a, AES_BLOCK_SIZE);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords64(bigA, bigA, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigA[0];
+            x[1] ^= bigA[1];
+            GMULT(x, bigH);
+            a += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(bigA, 0, AES_BLOCK_SIZE);
+            XMEMCPY(bigA, a, partial);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords64(bigA, bigA, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigA[0];
+            x[1] ^= bigA[1];
+            GMULT(x, bigH);
+        }
+    }
+
+    /* Hash in C, the Ciphertext */
+    if (cSz != 0 && c != NULL) {
+        word64 bigC[2];
+        blocks = cSz / AES_BLOCK_SIZE;
+        partial = cSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            XMEMCPY(bigC, c, AES_BLOCK_SIZE);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords64(bigC, bigC, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigC[0];
+            x[1] ^= bigC[1];
+            GMULT(x, bigH);
+            c += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(bigC, 0, AES_BLOCK_SIZE);
+            XMEMCPY(bigC, c, partial);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords64(bigC, bigC, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigC[0];
+            x[1] ^= bigC[1];
+            GMULT(x, bigH);
+        }
+    }
+
+    /* Hash in the lengths in bits of A and C */
+    {
+        word64 len[2] = {aSz, cSz};
+
+        /* Lengths are in bytes. Convert to bits. */
+        len[0] *= 8;
+        len[1] *= 8;
+
+        x[0] ^= len[0];
+        x[1] ^= len[1];
+        GMULT(x, bigH);
+    }
+    #ifdef LITTLE_ENDIAN_ORDER
+        ByteReverseWords64(x, x, AES_BLOCK_SIZE);
+    #endif
+    XMEMCPY(s, x, sSz);
+}
+
+/* end defined(WORD64_AVAILABLE) && !defined(GCM_WORD32) */
+#else /* GCM_WORD32 */
+
+static void GMULT(word32* X, word32* Y)
+{
+    word32 Z[4] = {0,0,0,0};
+    word32 V[4] = {X[0], X[1], X[2], X[3]};
+    int i, j;
+
+    for (i = 0; i < 4; i++)
+    {
+        word32 y = Y[i];
+        for (j = 0; j < 32; j++)
+        {
+            if (y & 0x80000000) {
+                Z[0] ^= V[0];
+                Z[1] ^= V[1];
+                Z[2] ^= V[2];
+                Z[3] ^= V[3];
+            }
+
+            if (V[3] & 0x00000001) {
+                V[3] >>= 1;
+                V[3] |= ((V[2] & 0x00000001) ? 0x80000000 : 0);
+                V[2] >>= 1;
+                V[2] |= ((V[1] & 0x00000001) ? 0x80000000 : 0);
+                V[1] >>= 1;
+                V[1] |= ((V[0] & 0x00000001) ? 0x80000000 : 0);
+                V[0] >>= 1;
+                V[0] ^= 0xE1000000;
+            } else {
+                V[3] >>= 1;
+                V[3] |= ((V[2] & 0x00000001) ? 0x80000000 : 0);
+                V[2] >>= 1;
+                V[2] |= ((V[1] & 0x00000001) ? 0x80000000 : 0);
+                V[1] >>= 1;
+                V[1] |= ((V[0] & 0x00000001) ? 0x80000000 : 0);
+                V[0] >>= 1;
+            }
+            y <<= 1;
+        }
+    }
+    X[0] = Z[0];
+    X[1] = Z[1];
+    X[2] = Z[2];
+    X[3] = Z[3];
+}
+
+
+static void GHASH(Aes* aes, const byte* a, word32 aSz,
+                                const byte* c, word32 cSz, byte* s, word32 sSz)
+{
+    word32 x[4] = {0,0,0,0};
+    word32 blocks, partial;
+    word32 bigH[4];
+
+    XMEMCPY(bigH, aes->H, AES_BLOCK_SIZE);
+    #ifdef LITTLE_ENDIAN_ORDER
+        ByteReverseWords(bigH, bigH, AES_BLOCK_SIZE); 
+    #endif
+
+    /* Hash in A, the Additional Authentication Data */
+    if (aSz != 0 && a != NULL) {
+        word32 bigA[4];
+        blocks = aSz / AES_BLOCK_SIZE;
+        partial = aSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            XMEMCPY(bigA, a, AES_BLOCK_SIZE);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords(bigA, bigA, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigA[0];
+            x[1] ^= bigA[1];
+            x[2] ^= bigA[2];
+            x[3] ^= bigA[3];
+            GMULT(x, bigH);
+            a += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(bigA, 0, AES_BLOCK_SIZE);
+            XMEMCPY(bigA, a, partial);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords(bigA, bigA, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigA[0];
+            x[1] ^= bigA[1];
+            x[2] ^= bigA[2];
+            x[3] ^= bigA[3];
+            GMULT(x, bigH);
+        }
+    }
+
+    /* Hash in C, the Ciphertext */
+    if (cSz != 0 && c != NULL) {
+        word32 bigC[4];
+        blocks = cSz / AES_BLOCK_SIZE;
+        partial = cSz % AES_BLOCK_SIZE;
+        while (blocks--) {
+            XMEMCPY(bigC, c, AES_BLOCK_SIZE);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords(bigC, bigC, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigC[0];
+            x[1] ^= bigC[1];
+            x[2] ^= bigC[2];
+            x[3] ^= bigC[3];
+            GMULT(x, bigH);
+            c += AES_BLOCK_SIZE;
+        }
+        if (partial != 0) {
+            XMEMSET(bigC, 0, AES_BLOCK_SIZE);
+            XMEMCPY(bigC, c, partial);
+            #ifdef LITTLE_ENDIAN_ORDER
+                ByteReverseWords(bigC, bigC, AES_BLOCK_SIZE);
+            #endif
+            x[0] ^= bigC[0];
+            x[1] ^= bigC[1];
+            x[2] ^= bigC[2];
+            x[3] ^= bigC[3];
+            GMULT(x, bigH);
+        }
+    }
+
+    /* Hash in the lengths in bits of A and C */
+    {
+        word32 len[4];
+
+        /* Lengths are in bytes. Convert to bits. */
+        len[0] = (aSz >> (8*sizeof(aSz) - 3));
+        len[1] = aSz << 3;
+        len[2] = (cSz >> (8*sizeof(cSz) - 3));
+        len[3] = cSz << 3;
+
+        x[0] ^= len[0];
+        x[1] ^= len[1];
+        x[2] ^= len[2];
+        x[3] ^= len[3];
+        GMULT(x, bigH);
+    }
+    #ifdef LITTLE_ENDIAN_ORDER
+        ByteReverseWords(x, x, AES_BLOCK_SIZE);
+    #endif
+    XMEMCPY(s, x, sSz);
+}
+
+#endif /* end GCM_WORD32 */
+
+
+void AesGcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
+                   byte* authTag, word32 authTagSz,
+                   const byte* authIn, word32 authInSz)
+{
+    word32 blocks = sz / AES_BLOCK_SIZE;
+    word32 partial = sz % AES_BLOCK_SIZE;
+    const byte* p = in;
+    byte* c = out;
+    byte ctr[AES_BLOCK_SIZE];
+    byte scratch[AES_BLOCK_SIZE];
+
+    CYASSL_ENTER("AesGcmEncrypt");
+
+    /* Initialize the counter with the MS 96 bits of IV, and the counter
+     * portion set to "1". */
+    XMEMCPY(ctr, aes->reg, AES_BLOCK_SIZE);
+    InitGcmCounter(ctr);
+
+    while (blocks--) {
+        IncrementGcmCounter(ctr);
+        AesEncrypt(aes, ctr, scratch);
+        xorbuf(scratch, p, AES_BLOCK_SIZE);
+        XMEMCPY(c, scratch, AES_BLOCK_SIZE);
+
+        p += AES_BLOCK_SIZE;
+        c += AES_BLOCK_SIZE;
+    }
+    if (partial != 0) {
+        IncrementGcmCounter(ctr);
+        AesEncrypt(aes, ctr, scratch);
+        xorbuf(scratch, p, partial);
+        XMEMCPY(c, scratch, partial);
+    }
+    GHASH(aes, authIn, authInSz, out, sz, authTag, authTagSz);
+    InitGcmCounter(ctr);
+    AesEncrypt(aes, ctr, scratch);
+    xorbuf(authTag, scratch, authTagSz);
+}
+
+
+int  AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
+                   const byte* authTag, word32 authTagSz,
+                   const byte* authIn, word32 authInSz)
+{
+    word32 blocks = sz / AES_BLOCK_SIZE;
+    word32 partial = sz % AES_BLOCK_SIZE;
+    const byte* c = in;
+    byte* p = out;
+    byte ctr[AES_BLOCK_SIZE];
+    byte scratch[AES_BLOCK_SIZE];
+
+    CYASSL_ENTER("AesGcmDecrypt");
+
+    /* Initialize the counter with the MS 96 bits of IV, and the counter
+     * portion set to "1". */
+    XMEMCPY(ctr, aes->reg, AES_BLOCK_SIZE);
+    InitGcmCounter(ctr);
+
+    /* Calculate the authTag again using the received auth data and the
+     * cipher text. */
+    {
+        byte Tprime[AES_BLOCK_SIZE];
+        byte EKY0[AES_BLOCK_SIZE];
+
+        GHASH(aes, authIn, authInSz, in, sz, Tprime, sizeof(Tprime));
+        AesEncrypt(aes, ctr, EKY0);
+        xorbuf(Tprime, EKY0, sizeof(Tprime));
+        if (XMEMCMP(authTag, Tprime, authTagSz) != 0) {
+            return AES_GCM_AUTH_E;
+        }
+    }
+
+    while (blocks--) {
+        IncrementGcmCounter(ctr);
+        AesEncrypt(aes, ctr, scratch);
+        xorbuf(scratch, c, AES_BLOCK_SIZE);
+        XMEMCPY(p, scratch, AES_BLOCK_SIZE);
+
+        p += AES_BLOCK_SIZE;
+        c += AES_BLOCK_SIZE;
+    }
+    if (partial != 0) {
+        IncrementGcmCounter(ctr);
+        AesEncrypt(aes, ctr, scratch);
+        xorbuf(scratch, c, partial);
+        XMEMCPY(p, scratch, partial);
+    }
+
+    return 0;
+}
+
+#endif /* HAVE_AESGCM */
+
+
 #endif /* NO_AES */
 
index db1e0e1ec5f5e6acb5876eccef8113481a764c91..87ece4bf436ebb8bdab2f89ee6e18ce48f6215af 100644 (file)
 #include <cyassl/ctaocrypt/coding.h>
 #include <cyassl/ctaocrypt/sha.h>
 #include <cyassl/ctaocrypt/md5.h>
+#include <cyassl/ctaocrypt/md2.h>
 #include <cyassl/ctaocrypt/error.h>
 #include <cyassl/ctaocrypt/pwdbased.h>
 #include <cyassl/ctaocrypt/des3.h>
 #include <cyassl/ctaocrypt/sha256.h>
 #include <cyassl/ctaocrypt/sha512.h>
 #include <cyassl/ctaocrypt/logging.h>
+#include <cyassl/ctaocrypt/random.h>
 
 #ifdef HAVE_NTRU
     #include "crypto_ntru.h"
@@ -62,6 +64,16 @@ enum {
 #endif
 
 
+#ifndef min
+
+    static INLINE word32 min(word32 a, word32 b)
+    {
+        return a > b ? b : a;
+    }
+
+#endif /* min */
+
+
 #ifdef THREADX
     /* uses parital <time.h> structures */
     #define XTIME(tl)  (0)
@@ -1047,6 +1059,8 @@ void InitDecodedCert(DecodedCert* cert, byte* source, word32 inSz, void* heap)
     cert->signature       = 0;
     cert->subjectCN       = 0;
     cert->subjectCNLen    = 0;
+    cert->subjectCNStored = 0;
+    cert->altNames        = NULL;
     cert->issuer[0]       = '\0';
     cert->subject[0]      = '\0';
     cert->source          = source;  /* don't own */
@@ -1086,12 +1100,28 @@ void InitDecodedCert(DecodedCert* cert, byte* source, word32 inSz, void* heap)
 }
 
 
+void FreeAltNames(DNS_entry* altNames, void* heap)
+{
+    (void)heap;
+
+    while (altNames) {
+        DNS_entry* tmp = altNames->next;
+
+        XFREE(altNames->name, heap, DYNAMIC_TYPE_ALTNAME);
+        XFREE(altNames,       heap, DYNAMIC_TYPE_ALTNAME);
+        altNames = tmp;
+    }
+}
+
+
 void FreeDecodedCert(DecodedCert* cert)
 {
-    if (cert->subjectCNLen == 0)  /* 0 means no longer pointer to raw, we own */
+    if (cert->subjectCNStored == 1)
         XFREE(cert->subjectCN, cert->heap, DYNAMIC_TYPE_SUBJECT_CN);
     if (cert->pubKeyStored == 1)
         XFREE(cert->publicKey, cert->heap, DYNAMIC_TYPE_PUBLIC_KEY);
+    if (cert->altNames)
+        FreeAltNames(cert->altNames, cert->heap);
 }
 
 
@@ -1286,7 +1316,7 @@ static int GetName(DecodedCert* cert, int nameType)
     int    length;  /* length of all distinguished names */
     int    dummy;
     char* full = (nameType == ISSUER) ? cert->issuer : cert->subject;
-    word32 idx = 0;
+    word32 idx;
 
     if (cert->source[cert->srcIdx] == ASN_OBJECT_ID) {
         CYASSL_MSG("Trying optional prefix...");
@@ -1298,17 +1328,22 @@ static int GetName(DecodedCert* cert, int nameType)
         CYASSL_MSG("Got optional prefix");
     }
 
+    /* For OCSP, RFC2560 section 4.1.1 states the issuer hash should be
+     * calculated over the entire DER encoding of the Name field, including
+     * the tag and length. */
+    idx = cert->srcIdx;
     if (GetSequence(cert->source, &cert->srcIdx, &length, cert->maxIdx) < 0)
         return ASN_PARSE_E;
 
     InitSha(&sha);
-    ShaUpdate(&sha, &cert->source[cert->srcIdx], length);
+    ShaUpdate(&sha, &cert->source[idx], length + cert->srcIdx - idx);
     if (nameType == ISSUER)
         ShaFinal(&sha, cert->issuerHash);
     else
         ShaFinal(&sha, cert->subjectHash);
 
     length += cert->srcIdx;
+    idx = 0;
 
     while (cert->srcIdx < (word32)length) {
         byte   b;
@@ -1346,10 +1381,6 @@ static int GetName(DecodedCert* cert, int nameType)
                           cert->maxIdx) < 0)
                 return ASN_PARSE_E;
 
-            if (strLen == 0) {
-                CYASSL_MSG("Zero length name"); 
-                return ASN_PARSE_E;
-            }
             if (strLen > (int)(ASN_NAME_MAX - idx))
                 return ASN_PARSE_E; 
 
@@ -1537,7 +1568,7 @@ static INLINE int DateLessThan(const struct tm* a, const struct tm* b)
 
 /* like atoi but only use first byte */
 /* Make sure before and after dates are valid */
-static int ValidateDate(const byte* date, byte format, int dateType)
+int ValidateDate(const byte* date, byte format, int dateType)
 {
     time_t ltime;
     struct tm  certTime;
@@ -1910,10 +1941,12 @@ word32 EncodeSignature(byte* out, const byte* digest, word32 digSz, int hashOID)
     return encDigSz + algoSz + seqSz;
 }
                            
-
+#include <stdio.h>
 /* return true (1) for Confirmation */
-static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz,
-                            word32 keyOID)
+static int ConfirmSignature(const byte* buf, word32 bufSz,
+    const byte* key, word32 keySz, word32 keyOID,
+    const byte* sig, word32 sigSz, word32 sigOID,
+    void* heap)
 {
 #ifdef CYASSL_SHA512
     byte digest[SHA512_DIGEST_SIZE]; /* max size */
@@ -1924,57 +1957,62 @@ static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz,
 #endif
     int  typeH, digestSz, ret;
 
-    if (cert->signatureOID == CTC_MD5wRSA) {
+    if (sigOID == CTC_MD5wRSA) {
         Md5 md5;
         InitMd5(&md5);
-        Md5Update(&md5, cert->source + cert->certBegin,
-                  cert->sigIndex - cert->certBegin);
+        Md5Update(&md5, buf, bufSz);
         Md5Final(&md5, digest);
         typeH    = MD5h;
         digestSz = MD5_DIGEST_SIZE;
     }
-    else if (cert->signatureOID == CTC_SHAwRSA ||
-             cert->signatureOID == CTC_SHAwDSA ||
-             cert->signatureOID == CTC_SHAwECDSA) {
+#ifdef CYASSL_MD2
+    else if (sigOID == CTC_MD2wRSA) {
+        Md2 md2;
+        InitMd2(&md2);
+        Md2Update(&md2, buf, bufSz);
+        Md2Final(&md2, digest);
+        typeH    = MD2h;
+        digestSz = MD2_DIGEST_SIZE;
+    }
+#endif
+    else if (sigOID == CTC_SHAwRSA ||
+             sigOID == CTC_SHAwDSA ||
+             sigOID == CTC_SHAwECDSA) {
         Sha sha;
         InitSha(&sha);
-        ShaUpdate(&sha, cert->source + cert->certBegin,
-                  cert->sigIndex - cert->certBegin);
+        ShaUpdate(&sha, buf, bufSz);
         ShaFinal(&sha, digest);
         typeH    = SHAh;
         digestSz = SHA_DIGEST_SIZE;
     }
 #ifndef NO_SHA256
-    else if (cert->signatureOID == CTC_SHA256wRSA ||
-             cert->signatureOID == CTC_SHA256wECDSA) {
+    else if (sigOID == CTC_SHA256wRSA ||
+             sigOID == CTC_SHA256wECDSA) {
         Sha256 sha256;
         InitSha256(&sha256);
-        Sha256Update(&sha256, cert->source + cert->certBegin,
-                  cert->sigIndex - cert->certBegin);
+        Sha256Update(&sha256, buf, bufSz);
         Sha256Final(&sha256, digest);
         typeH    = SHA256h;
         digestSz = SHA256_DIGEST_SIZE;
     }
 #endif
 #ifdef CYASSL_SHA512
-    else if (cert->signatureOID == CTC_SHA512wRSA ||
-             cert->signatureOID == CTC_SHA512wECDSA) {
+    else if (sigOID == CTC_SHA512wRSA ||
+             sigOID == CTC_SHA512wECDSA) {
         Sha512 sha512;
         InitSha512(&sha512);
-        Sha512Update(&sha512, cert->source + cert->certBegin,
-                  cert->sigIndex - cert->certBegin);
+        Sha512Update(&sha512, buf, bufSz);
         Sha512Final(&sha512, digest);
         typeH    = SHA512h;
         digestSz = SHA512_DIGEST_SIZE;
     }
 #endif
 #ifdef CYASSL_SHA384
-    else if (cert->signatureOID == CTC_SHA384wRSA ||
-             cert->signatureOID == CTC_SHA384wECDSA) {
+    else if (sigOID == CTC_SHA384wRSA ||
+             sigOID == CTC_SHA384wECDSA) {
         Sha384 sha384;
         InitSha384(&sha384);
-        Sha384Update(&sha384, cert->source + cert->certBegin,
-                  cert->sigIndex - cert->certBegin);
+        Sha384Update(&sha384, buf, bufSz);
         Sha384Final(&sha384, digest);
         typeH    = SHA384h;
         digestSz = SHA384_DIGEST_SIZE;
@@ -1990,30 +2028,32 @@ static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz,
         byte   encodedSig[MAX_ENCODED_SIG_SZ];
         byte   plain[MAX_ENCODED_SIG_SZ];
         word32 idx = 0;
-        int    sigSz, verifySz;
+        int    encodedSigSz, verifySz;
         byte*  out;
 
-        if (cert->sigLength > MAX_ENCODED_SIG_SZ) {
+        if (sigSz > MAX_ENCODED_SIG_SZ) {
             CYASSL_MSG("Verify Signautre is too big");
             return 0;
         }
             
-        InitRsaKey(&pubKey, cert->heap);
+        InitRsaKey(&pubKey, heap);
         if (RsaPublicKeyDecode(key, &idx, &pubKey, keySz) < 0) {
             CYASSL_MSG("ASN Key decode error RSA");
             ret = 0;
         }
         else {
-            XMEMCPY(plain, cert->signature, cert->sigLength);
-            if ( (verifySz = RsaSSL_VerifyInline(plain, cert->sigLength, &out,
+            XMEMCPY(plain, sig, sigSz);
+            if ( (verifySz = RsaSSL_VerifyInline(plain, sigSz, &out,
                                            &pubKey)) < 0) {
                 CYASSL_MSG("Rsa SSL verify error");
                 ret = 0;
             }
             else {
                 /* make sure we're right justified */
-                sigSz = EncodeSignature(encodedSig, digest, digestSz, typeH);
-                if (sigSz != verifySz || XMEMCMP(out, encodedSig, sigSz) != 0){
+                encodedSigSz =
+                        EncodeSignature(encodedSig, digest, digestSz, typeH);
+                if (encodedSigSz != verifySz ||
+                                XMEMCMP(out, encodedSig, encodedSigSz) != 0) {
                     CYASSL_MSG("Rsa SSL verify match encode error");
                     ret = 0;
                 }
@@ -2024,7 +2064,7 @@ static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz,
                 {
                 int x;
                 printf("cyassl encodedSig:\n");
-                for (x = 0; x < sigSz; x++) {
+                for (x = 0; x < encodedSigSz; x++) {
                     printf("%02x ", encodedSig[x]);
                     if ( (x % 16) == 15)
                         printf("\n");
@@ -2054,8 +2094,7 @@ static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz,
             return 0;
         }
     
-        ret = ecc_verify_hash(cert->signature, cert->sigLength, digest,
-                              digestSz, &verify, &pubKey);
+        ret = ecc_verify_hash(sig, sigSz, digest, digestSz, &verify, &pubKey);
         ecc_free(&pubKey);
         if (ret == 0 && verify == 1)
             return 1;  /* match */
@@ -2071,6 +2110,62 @@ static int ConfirmSignature(DecodedCert* cert, const byte* key, word32 keySz,
 }
 
 
+static void DecodeAltNames(byte* input, int sz, DecodedCert* cert)
+{
+    word32 idx = 0;
+    int length = 0;
+
+    CYASSL_ENTER("DecodeAltNames");
+
+    if (GetSequence(input, &idx, &length, sz) < 0) {
+        CYASSL_MSG("\tBad Sequence");
+        return;
+    }
+
+    while (length > 0) {
+        DNS_entry* entry;
+        int        strLen;
+        byte       b = input[idx++];
+
+        length--;
+
+        if (b != (ASN_CONTEXT_SPECIFIC | ASN_DNS_TYPE)) {
+            CYASSL_MSG("\tNot DNS type");
+            return;
+        }
+
+        if (GetLength(input, &idx, &strLen, sz) < 0) {
+            CYASSL_MSG("\tfail: str length");
+            return;
+        }
+
+        entry = (DNS_entry*)XMALLOC(sizeof(DNS_entry), cert->heap,
+                                    DYNAMIC_TYPE_ALTNAME);
+        if (entry == NULL) {
+            CYASSL_MSG("\tOut of Memory");
+            return;
+        }
+
+        entry->name = (char*)XMALLOC(strLen + 1, cert->heap,
+                                     DYNAMIC_TYPE_ALTNAME);
+        if (entry->name == NULL) {
+            CYASSL_MSG("\tOut of Memory");
+            XFREE(entry, cert->heap, DYNAMIC_TYPE_ALTNAME);
+            return;
+        }
+
+        XMEMCPY(entry->name, &input[idx], strLen);
+        entry->name[strLen] = '\0';
+
+        entry->next    = cert->altNames;
+        cert->altNames = entry;
+
+        length -= strLen;
+        idx    += strLen;
+    }   
+}
+
+
 static void DecodeBasicCaConstraint(byte* input, int sz, DecodedCert* cert)
 {
     word32 idx = 0;
@@ -2079,6 +2174,10 @@ static void DecodeBasicCaConstraint(byte* input, int sz, DecodedCert* cert)
     CYASSL_ENTER("DecodeBasicCaConstraint");
     if (GetSequence(input, &idx, &length, sz) < 0) return;
 
+    if (length == 0) return;
+    /* If the basic ca constraint is false, this extension may be named, but
+     * left empty. So, if the length is 0, just return. */
+
     if (input[idx++] != ASN_BOOLEAN)
     {
         CYASSL_MSG("\tfail: constraint not BOOLEAN");
@@ -2237,7 +2336,7 @@ static void DecodeCertExtensions(DecodedCert* cert)
 
     if (input == NULL || sz == 0) return;
 
-    if (input[idx++] != ASN_EXTENSIONS)return;
+    if (input[idx++] != ASN_EXTENSIONS) return;
 
     if (GetLength(input, &idx, &length, sz) < 0) return;
 
@@ -2285,6 +2384,9 @@ static void DecodeCertExtensions(DecodedCert* cert)
                 DecodeAuthInfo(&input[idx], length, cert);
                 break;
 
+            case ALT_NAMES_OID:
+                DecodeAltNames(&input[idx], length, cert);
+
             default:
                 CYASSL_MSG("\tExtension type not handled, skipping");
                 break;
@@ -2313,7 +2415,7 @@ int ParseCert(DecodedCert* cert, int type, int verify, void* cm)
         XMEMCPY(ptr, cert->subjectCN, cert->subjectCNLen);
         ptr[cert->subjectCNLen] = '\0';
         cert->subjectCN = ptr;
-        cert->subjectCNLen = 0;
+        cert->subjectCNStored = 1;
     }
 
     if (cert->keyOID == RSAk && cert->pubKeySize > 0) {
@@ -2390,8 +2492,11 @@ int ParseCertRelative(DecodedCert* cert, int type, int verify, void* cm)
             }
 #endif /* HAVE_OCSP */
             /* try to confirm/verify signature */
-            if (!ConfirmSignature(cert, ca->publicKey,
-                                  ca->pubKeySize, ca->keyOID)) {
+            if (!ConfirmSignature(cert->source + cert->certBegin,
+                        cert->sigIndex - cert->certBegin,
+                    ca->publicKey, ca->pubKeySize, ca->keyOID,
+                    cert->signature, cert->sigLength, cert->signatureOID,
+                    cert->heap)) {
                 CYASSL_MSG("Confirm signature failed");
                 return ASN_SIG_CONFIRM_E;
             }
@@ -2677,6 +2782,10 @@ void CTaoCryptErrorString(int error, char* buffer)
         XSTRNCPY(buffer, "Alt Name problem, too big", max);
         break;
 
+    case AES_GCM_AUTH_E:
+        XSTRNCPY(buffer, "AES-GCM Authentication check fail", max);
+        break;
+
     default:
         XSTRNCPY(buffer, "unknown error number", max);
 
@@ -2699,7 +2808,7 @@ static int SetMyVersion(word32 version, byte* output, int header)
     }
     output[i++] = ASN_INTEGER;
     output[i++] = 0x01;
-    output[i++] = version;
+    output[i++] = (byte)version;
 
     return i;
 }
@@ -3172,8 +3281,6 @@ static const char* GetOneName(CertName* name, int idx)
     default:
        return 0;
     }
-
-    return 0;
 }
 
 
@@ -3209,8 +3316,6 @@ static byte GetNameId(int idx)
     default:
        return 0;
     }
-
-    return 0;
 }
 
 
@@ -3497,7 +3602,8 @@ static int WriteCertBody(DerCert* der, byte* buffer)
     idx += der->publicKeySz;
     if (der->extensionsSz) {
         /* extensions */
-        XMEMCPY(buffer + idx, der->extensions, der->extensionsSz);
+        XMEMCPY(buffer + idx, der->extensions, min(der->extensionsSz,
+                                                   sizeof(der->extensions)));
         idx += der->extensionsSz;
     }
 
@@ -4074,6 +4180,36 @@ int EccPrivateKeyDecode(const byte* input, word32* inOutIdx, ecc_key* key,
 #endif  /* HAVE_ECC */
 
 
+#if defined(HAVE_OCSP) || defined(HAVE_CRL)
+
+/* Get raw Date only, no processing, 0 on success */
+static int GetBasicDate(const byte* source, word32* idx, byte* date,
+                        byte* format, int maxIdx)
+{
+    int    length;
+
+    CYASSL_ENTER("GetBasicDate");
+
+    *format = source[*idx];
+    *idx += 1;
+    if (*format != ASN_UTC_TIME && *format != ASN_GENERALIZED_TIME)
+        return ASN_TIME_E;
+
+    if (GetLength(source, idx, &length, maxIdx) < 0)
+        return ASN_PARSE_E;
+
+    if (length > MAX_DATE_SIZE || length < MIN_DATE_SIZE)
+        return ASN_DATE_SZ_E;
+
+    XMEMCPY(date, &source[*idx], length);
+    *idx += length;
+
+    return 0;
+}
+
+#endif
+
+
 #ifdef HAVE_OCSP
 
 static int GetEnumerated(const byte* input, word32* inOutIdx, int *value)
@@ -4081,6 +4217,8 @@ static int GetEnumerated(const byte* input, word32* inOutIdx, int *value)
     word32 idx = *inOutIdx;
     word32 len;
 
+    CYASSL_ENTER("GetEnumerated");
+
     *value = 0;
 
     if (input[idx++] != ASN_ENUMERATED)
@@ -4103,165 +4241,264 @@ static int GetEnumerated(const byte* input, word32* inOutIdx, int *value)
 static int DecodeSingleResponse(byte* source,
                             word32* ioIndex, OcspResponse* resp, word32 size)
 {
-    word32 index = *ioIndex, prevIndex, oid, mpi_len;
-    int length, remainder, qty = 0;
-    mp_int mpi;
-    byte serialTmp[EXTERNAL_SERIAL_SIZE];
+    word32 index = *ioIndex, prevIndex, oid;
+    int length, wrapperSz;
+    CertStatus* cs = resp->status;
+
+    CYASSL_ENTER("DecodeSingleResponse");
 
     /* Outer wrapper of the SEQUENCE OF Single Responses. */
+    if (GetSequence(source, &index, &wrapperSz, size) < 0)
+        return ASN_PARSE_E;
+
+    prevIndex = index;
+
+    /* When making a request, we only request one status on one certificate
+     * at a time. There should only be one SingleResponse */
+
+    /* Wrapper around the Single Response */
+    if (GetSequence(source, &index, &length, size) < 0)
+        return ASN_PARSE_E;
+
+    /* Wrapper around the CertID */
     if (GetSequence(source, &index, &length, size) < 0)
         return ASN_PARSE_E;
-    remainder = length;
+    /* Skip the hash algorithm */
+    if (GetAlgoId(source, &index, &oid, size) < 0)
+        return ASN_PARSE_E;
+    /* Save reference to the hash of CN */
+    if (source[index++] != ASN_OCTET_STRING)
+        return ASN_PARSE_E;
+    if (GetLength(source, &index, &length, size) < 0)
+        return ASN_PARSE_E;
+    resp->issuerHash = source + index;
+    index += length;
+    /* Save reference to the hash of the issuer public key */
+    if (source[index++] != ASN_OCTET_STRING)
+        return ASN_PARSE_E;
+    if (GetLength(source, &index, &length, size) < 0)
+        return ASN_PARSE_E;
+    resp->issuerKeyHash = source + index;
+    index += length;
 
-    /* First Single Response */
-    while (remainder != 0 && qty < STATUS_LIST_SIZE)
+    /* Read the serial number, it is handled as a string, not as a 
+     * proper number. Just XMEMCPY the data over, rather than load it
+     * as an mp_int. */
+    if (source[index++] != ASN_INTEGER)
+        return ASN_PARSE_E;
+    if (GetLength(source, &index, &length, size) < 0)
+        return ASN_PARSE_E;
+    if (length <= EXTERNAL_SERIAL_SIZE)
     {
-        prevIndex = index;
-        /* Wrapper around the Single Response */
-        if (GetSequence(source, &index, &length, size) < 0)
-            return ASN_PARSE_E;
+        if (source[index] == 0)
+        {
+            index++;
+            length--;
+        }
+        XMEMCPY(cs->serial, source + index, length);
+        cs->serialSz = length;
+    }
+    else
+    {
+        return ASN_GETINT_E;
+    }
+    index += length;
 
-        /* Wrapper around the CertID */
-        if (GetSequence(source, &index, &length, size) < 0)
-            return ASN_PARSE_E;
-        /* Skip the hash algorithm */
-        if (GetAlgoId(source, &index, &oid, size) < 0)
-            return ASN_PARSE_E;
-        /* Skip the hash of CN */
-        if (source[index++] != ASN_OCTET_STRING)
+    /* CertStatus */
+    switch (source[index++])
+    {
+        case (ASN_CONTEXT_SPECIFIC | CERT_GOOD):
+            cs->status = CERT_GOOD;
+            index++;
+            break;
+        case (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | CERT_REVOKED):
+            cs->status = CERT_REVOKED;
+            GetLength(source, &index, &length, size);
+            index += length;
+            break;
+        case (ASN_CONTEXT_SPECIFIC | CERT_UNKNOWN):
+            cs->status = CERT_UNKNOWN;
+            index++;
+            break;
+        default:
             return ASN_PARSE_E;
+    }
+
+    if (GetBasicDate(source, &index, cs->thisDate,
+                                                &cs->thisDateFormat, size) < 0)
+        return ASN_PARSE_E;
+    if (!ValidateDate(cs->thisDate, cs->thisDateFormat, BEFORE))
+        return ASN_BEFORE_DATE_E;
+    
+    /* The following items are optional. Only check for them if there is more
+     * unprocessed data in the singleResponse wrapper. */
+    
+    if ((index - prevIndex < wrapperSz) &&
+        (source[index] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 0)))
+    {
+        index++;
         if (GetLength(source, &index, &length, size) < 0)
             return ASN_PARSE_E;
-        index += length;
-        /* Skip the hash of the issuer public key */
-        if (source[index++] != ASN_OCTET_STRING)
+        if (GetBasicDate(source, &index, cs->nextDate,
+                                                &cs->nextDateFormat, size) < 0)
             return ASN_PARSE_E;
+    }
+    if ((index - prevIndex < wrapperSz) &&
+        (source[index] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 1)))
+    {
+        index++;
         if (GetLength(source, &index, &length, size) < 0)
             return ASN_PARSE_E;
         index += length;
+    }
+
+    *ioIndex = index;
+
+    return 0;
+}
+
+static int DecodeOcspRespExtensions(byte* source,
+                            word32* ioIndex, OcspResponse* resp, word32 sz)
+{
+    word32 idx = *ioIndex;
+    int length;
+    int ext_bound; /* boundary index for the sequence of extensions */
+    word32 oid;
+
+    CYASSL_ENTER("DecodeOcspRespExtensions");
 
-        /* Read the serial number */
-        if (GetInt(&mpi, source, &index, size) < 0)
+    if (source[idx++] != (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 1))
+        return ASN_PARSE_E;
+
+    if (GetLength(source, &idx, &length, sz) < 0) return ASN_PARSE_E;
+
+    if (GetSequence(source, &idx, &length, sz) < 0) return ASN_PARSE_E;
+   
+    ext_bound = idx + length;
+
+    while (idx < (word32)ext_bound) {
+        if (GetSequence(source, &idx, &length, sz) < 0) {
+            CYASSL_MSG("\tfail: should be a SEQUENCE");
             return ASN_PARSE_E;
-        mpi_len = mp_unsigned_bin_size(&mpi);
-        if (mpi_len < (int)sizeof(serialTmp)) {
-            if (mp_to_unsigned_bin(&mpi, serialTmp) == MP_OKAY) {
-                if (mpi_len > EXTERNAL_SERIAL_SIZE)
-                    mpi_len = EXTERNAL_SERIAL_SIZE;
-                XMEMCPY(resp->certSN[qty], serialTmp, mpi_len);
-                resp->certSNsz[qty] = mpi_len;
-            }
         }
-        mp_clear(&mpi);
 
-        /* CertStatus */
-        switch (source[index++])
-        {
-            case (ASN_CONTEXT_SPECIFIC | CERT_GOOD):
-                resp->certStatus[qty] = CERT_GOOD;
-                index++;
-                break;
-            case (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | CERT_REVOKED):
-                resp->certStatus[qty] = CERT_REVOKED;
-                GetLength(source, &index, &length, size);
-                index += length;
-                break;
-            case (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | CERT_UNKNOWN):
-                resp->certStatus[qty] = CERT_UNKNOWN;
-                index++;
-                break;
-            default:
-                return ASN_PARSE_E;
+        oid = 0;
+        if (GetObjectId(source, &idx, &oid, sz) < 0) {
+            CYASSL_MSG("\tfail: OBJECT ID");
+            return ASN_PARSE_E;
+        }
+
+        /* check for critical flag */
+        if (source[idx] == ASN_BOOLEAN) {
+            CYASSL_MSG("\tfound optional critical flag, moving past");
+            idx += (ASN_BOOL_SIZE + 1);
         }
 
-        if (source[index++] != ASN_GENERALIZED_TIME)
+        /* process the extension based on the OID */
+        if (source[idx++] != ASN_OCTET_STRING) {
+            CYASSL_MSG("\tfail: should be an OCTET STRING");
             return ASN_PARSE_E;
+        }
 
-        if (GetLength(source, &index, &length, size) < 0)
+        if (GetLength(source, &idx, &length, sz) < 0) {
+            CYASSL_MSG("\tfail: extension data length");
             return ASN_PARSE_E;
-        index += length;
+        }
 
-        remainder = remainder + prevIndex - index;
-        qty++;
-    }
-    resp->certStatusCount = qty;
+        if (oid == OCSP_NONCE_OID) {
+            resp->nonce = source + idx;
+            resp->nonceSz = length;
+        }
 
-    *ioIndex = index;
+        idx += length;
+    }
 
+    *ioIndex = idx;
     return 0;
 }
 
+
 static int DecodeResponseData(byte* source,
                             word32* ioIndex, OcspResponse* resp, word32 size)
 {
-    word32 index = *ioIndex;
-    int length, result;
+    word32 idx = *ioIndex, prev_idx;
+    int length;
     int version;
     word32 responderId = 0;
 
-    if (GetSequence(source, &index, &length, size) < 0)
+    CYASSL_ENTER("DecodeResponseData");
+
+    resp->response = source + idx;
+    prev_idx = idx;
+    if (GetSequence(source, &idx, &length, size) < 0)
         return ASN_PARSE_E;
-    resp->respBegin = index;
-    resp->respLength = length;
+    resp->responseSz = length + idx - prev_idx;
 
     /* Get version. It is an EXPLICIT[0] DEFAULT(0) value. If this
      * item isn't an EXPLICIT[0], then set version to zero and move
      * onto the next item.
      */
-    if (source[index] == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED))
+    if (source[idx] == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED))
     {    
-        index += 2; /* Eat the value and length */
-        if (GetMyVersion(source, &index, &version) < 0)
+        idx += 2; /* Eat the value and length */
+        if (GetMyVersion(source, &idx, &version) < 0)
             return ASN_PARSE_E;
     } else
         version = 0;
 
-    responderId = source[index++];
+    responderId = source[idx++];
     if ((responderId == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | 1)) ||
         (responderId == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | 2)))
     {
-        if (GetLength(source, &index, &length, size) < 0)
+        if (GetLength(source, &idx, &length, size) < 0)
             return ASN_PARSE_E;
-        index += length;
+        idx += length;
     }
     else
         return ASN_PARSE_E;
     
-    /* Skip GeneralizedTime */
-    if (source[index++] != ASN_GENERALIZED_TIME)
+    /* save pointer to the producedAt time */
+    if (GetBasicDate(source, &idx, resp->producedDate,
+                                        &resp->producedDateFormat, size) < 0)
         return ASN_PARSE_E;
-    if (GetLength(source, &index, &length, size) < 0)
-        return ASN_PARSE_E;
-    index += length;
+    if (!ValidateDate(resp->producedDate, resp->producedDateFormat, BEFORE))
+        return ASN_BEFORE_DATE_E;
+    idx += length;
 
-    if (DecodeSingleResponse(source, &index, resp, size) < 0)
+    if (DecodeSingleResponse(source, &idx, resp, size) < 0)
         return ASN_PARSE_E;
 
-    /* Skip the extensions */
-    if (source[index++] == (ASN_CONTEXT_SPECIFIC | ASN_CONSTRUCTED | 1))
-    {
-        if (GetLength(source, &index, &length, size) < 0)
-            return ASN_PARSE_E;
-        index += length;
-    }
+    if (DecodeOcspRespExtensions(source, &idx, resp, size) < 0)
+        return ASN_PARSE_E;
 
-    *ioIndex = index;
+    *ioIndex = idx;
     return 0;
 }
 
+
 static int DecodeCerts(byte* source,
                             word32* ioIndex, OcspResponse* resp, word32 size)
 {
-    word32 index = *ioIndex;
-    if (source[index++] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC))
+    word32 idx = *ioIndex;
+
+    CYASSL_ENTER("DecodeCerts");
+
+    if (source[idx++] == (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC))
     {
         int length;
 
-        if (GetLength(source, &index, &length, size) < 0)
+        if (GetLength(source, &idx, &length, size) < 0)
             return ASN_PARSE_E;
-        index += length;
+
+        if (GetSequence(source, &idx, &length, size) < 0)
+            return ASN_PARSE_E;
+
+        resp->cert = source + idx;
+        resp->certSz = length;
+
+        idx += length;
     }
-    *ioIndex = index;
+    *ioIndex = idx;
     return 0;
 }
 
@@ -4269,101 +4506,137 @@ static int DecodeBasicOcspResponse(byte* source,
                             word32* ioIndex, OcspResponse* resp, word32 size)
 {
     int length;
-    word32 index = *ioIndex;
+    word32 idx = *ioIndex;
     word32 end_index;
 
-    if (GetSequence(source, &index, &length, size) < 0)
+    CYASSL_ENTER("DecodeBasicOcspResponse");
+
+    if (GetSequence(source, &idx, &length, size) < 0)
         return ASN_PARSE_E;
 
-    if (index + length > size)
+    if (idx + length > size)
         return ASN_INPUT_E;
-    end_index = index + length;
+    end_index = idx + length;
 
-    if (DecodeResponseData(source, &index, resp, size) < 0)
+    if (DecodeResponseData(source, &idx, resp, size) < 0)
         return ASN_PARSE_E;
     
     /* Get the signature algorithm */
-    if (GetAlgoId(source, &index, &resp->sigOID, size) < 0)
+    if (GetAlgoId(source, &idx, &resp->sigOID, size) < 0)
         return ASN_PARSE_E;
 
     /* Obtain pointer to the start of the signature, and save the size */
-    if (source[index++] == ASN_BIT_STRING)
+    if (source[idx++] == ASN_BIT_STRING)
     {
         int sigLength = 0;
-        if (GetLength(source, &index, &sigLength, size) < 0)
+        if (GetLength(source, &idx, &sigLength, size) < 0)
             return ASN_PARSE_E;
-        resp->sigLength = sigLength;
-        resp->sigIndex = index;
-        index += sigLength;
+        resp->sigSz = sigLength;
+        resp->sig = source + idx;
+        idx += sigLength;
     }
 
     /*
      * Check the length of the BasicOcspResponse against the current index to
      * see if there are certificates, they are optional.
      */
-    if (index < end_index)
-        return DecodeCerts(source, &index, resp, size);
+    if (idx < end_index)
+    {
+        DecodedCert cert;
+        int ret;
 
-    *ioIndex = index;
+        if (DecodeCerts(source, &idx, resp, size) < 0)
+            return ASN_PARSE_E;
+
+        InitDecodedCert(&cert, resp->cert, resp->certSz, 0);
+        ret = ParseCertRelative(&cert, CA_TYPE, NO_VERIFY, 0);
+        if (ret < 0)
+            return ret;
+
+        ret = ConfirmSignature(resp->response, resp->responseSz,
+                            cert.publicKey, cert.pubKeySize, cert.keyOID,
+                            resp->sig, resp->sigSz, resp->sigOID, NULL);
+        FreeDecodedCert(&cert);
+
+        if (ret == 0)
+        {
+            CYASSL_MSG("\tConfirm signature failed");
+            return ASN_SIG_CONFIRM_E;
+        }
+    }
+
+    *ioIndex = idx;
     return 0;
 }
 
 
-void InitOcspResponse(OcspResponse* resp, byte* source, word32 inSz, void* heap)
+void InitOcspResponse(OcspResponse* resp, CertStatus* status,
+                                                    byte* source, word32 inSz)
 {
-    XMEMSET(resp, 0, sizeof(*resp));
+    CYASSL_ENTER("InitOcspResponse");
+
+    resp->responseStatus = -1;
+    resp->response = NULL;
+    resp->responseSz = 0;
+    resp->producedDateFormat = 0;
+    resp->issuerHash = NULL;
+    resp->issuerKeyHash = NULL;
+    resp->sig = NULL;
+    resp->sigSz = 0;
+    resp->sigOID = 0;
+    resp->status = status;
+    resp->nonce = NULL;
+    resp->nonceSz = 0;
     resp->source = source;
     resp->maxIdx = inSz;
-    resp->heap = heap;
 }
 
 
-void FreeOcspResponse(OcspResponse* resp) {}
-
-
 int OcspResponseDecode(OcspResponse* resp)
 {
     int length = 0;
-    word32 index = 0;
+    word32 idx = 0;
     byte* source = resp->source;
     word32 size = resp->maxIdx;
     word32 oid;
 
+    CYASSL_ENTER("OcspResponseDecode");
+
     /* peel the outer SEQUENCE wrapper */
-    if (GetSequence(source, &index, &length, size) < 0)
+    if (GetSequence(source, &idx, &length, size) < 0)
         return ASN_PARSE_E;
     
     /* First get the responseStatus, an ENUMERATED */
-    if (GetEnumerated(source, &index, &resp->responseStatus) < 0)
+    if (GetEnumerated(source, &idx, &resp->responseStatus) < 0)
         return ASN_PARSE_E;
 
     if (resp->responseStatus != OCSP_SUCCESSFUL)
         return 0;
 
     /* Next is an EXPLICIT record called ResponseBytes, OPTIONAL */
-    if (index >= size)
+    if (idx >= size)
         return ASN_INPUT_E;
-    if (source[index++] != (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC))
+    if (source[idx++] != (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC))
         return ASN_PARSE_E;
-    if (GetLength(source, &index, &length, size) < 0)
+    if (GetLength(source, &idx, &length, size) < 0)
         return ASN_PARSE_E;
 
     /* Get the responseBytes SEQUENCE */
-    if (GetSequence(source, &index, &length, size) < 0)
+    if (GetSequence(source, &idx, &length, size) < 0)
         return ASN_PARSE_E;
 
     /* Check ObjectID for the resposeBytes */
-    if (GetObjectId(source, &index, &oid, size) < 0)
+    if (GetObjectId(source, &idx, &oid, size) < 0)
         return ASN_PARSE_E;
     if (oid != OCSP_BASIC_OID)
         return ASN_PARSE_E;
-    if (source[index++] != ASN_OCTET_STRING)
+    if (source[idx++] != ASN_OCTET_STRING)
         return ASN_PARSE_E;
 
-    if (GetLength(source, &index, &length, size) < 0)
+    if (GetLength(source, &idx, &length, size) < 0)
         return ASN_PARSE_E;
 
-    if (DecodeBasicOcspResponse(source, &index, resp, size) < 0)
+    if (DecodeBasicOcspResponse(source, &idx, resp, size) < 0)
         return ASN_PARSE_E;
     
     return 0;
@@ -4374,6 +4647,8 @@ static int SetSerialNumber(const byte* sn, word32 snSz, byte* output)
 {
     int result = 0;
 
+    CYASSL_ENTER("SetSerialNumber");
+
     if (snSz <= EXTERNAL_SERIAL_SIZE) {
         output[0] = ASN_INTEGER;
         output[1] = snSz + 1;
@@ -4385,7 +4660,60 @@ static int SetSerialNumber(const byte* sn, word32 snSz, byte* output)
 }
 
 
-int EncodeOcspRequest(DecodedCert* cert, byte* output, word32 outputSz)
+static word32 SetOcspReqExtensions(word32 extSz, byte* output,
+                                            const byte* nonce, word32 nonceSz)
+{
+    static const byte NonceObjId[] = { 0x2b, 0x06, 0x01, 0x05, 0x05, 0x07,
+                                       0x30, 0x01, 0x02 };
+    byte seqArray[5][MAX_SEQ_SZ];
+    word32 seqSz[5], totalSz;
+
+    CYASSL_ENTER("SetOcspReqExtensions");
+
+    if (nonce == NULL || nonceSz == 0) return 0;
+    
+    seqArray[0][0] = ASN_OCTET_STRING;
+    seqSz[0] = 1 + SetLength(nonceSz, &seqArray[0][1]);
+
+    seqArray[1][0] = ASN_OBJECT_ID;
+    seqSz[1] = 1 + SetLength(sizeof(NonceObjId), &seqArray[1][1]);
+
+    totalSz = seqSz[0] + seqSz[1] + nonceSz + sizeof(NonceObjId);
+
+    seqSz[2] = SetSequence(totalSz, seqArray[2]);
+    totalSz += seqSz[2];
+
+    seqSz[3] = SetSequence(totalSz, seqArray[3]);
+    totalSz += seqSz[3];
+
+    seqArray[4][0] = (ASN_CONSTRUCTED | ASN_CONTEXT_SPECIFIC | 2);
+    seqSz[4] = 1 + SetLength(totalSz, &seqArray[4][1]);
+    totalSz += seqSz[4];
+
+    if (totalSz < extSz)
+    {
+        totalSz = 0;
+        XMEMCPY(output + totalSz, seqArray[4], seqSz[4]);
+        totalSz += seqSz[4];
+        XMEMCPY(output + totalSz, seqArray[3], seqSz[3]);
+        totalSz += seqSz[3];
+        XMEMCPY(output + totalSz, seqArray[2], seqSz[2]);
+        totalSz += seqSz[2];
+        XMEMCPY(output + totalSz, seqArray[1], seqSz[1]);
+        totalSz += seqSz[1];
+        XMEMCPY(output + totalSz, NonceObjId, sizeof(NonceObjId));
+        totalSz += sizeof(NonceObjId);
+        XMEMCPY(output + totalSz, seqArray[0], seqSz[0]);
+        totalSz += seqSz[0];
+        XMEMCPY(output + totalSz, nonce, nonceSz);
+        totalSz += nonceSz;
+    }
+
+    return totalSz;
+}
+
+
+int EncodeOcspRequest(OcspRequest* req)
 {
     byte seqArray[5][MAX_SEQ_SZ];
     /* The ASN.1 of the OCSP Request is an onion of sequences */
@@ -4393,20 +4721,43 @@ int EncodeOcspRequest(DecodedCert* cert, byte* output, word32 outputSz)
     byte issuerArray[MAX_ENCODED_DIG_SZ];
     byte issuerKeyArray[MAX_ENCODED_DIG_SZ];
     byte snArray[MAX_SN_SZ];
-
-    word32 seqSz[5], algoSz, issuerSz, issuerKeySz, snSz, totalSz;
+    byte extArray[MAX_OCSP_EXT_SZ];
+    byte* output = req->dest;
+    word32 outputSz = req->destSz;
+    RNG rng;
+    word32 seqSz[5], algoSz, issuerSz, issuerKeySz, snSz, extSz, totalSz;
     int i;
 
+    CYASSL_ENTER("EncodeOcspRequest");
+
     algoSz = SetAlgoID(SHAh, algoArray, hashType);
-    issuerSz = SetDigest(cert->issuerHash, SHA_SIZE, issuerArray);
-    issuerKeySz = SetDigest(cert->issuerKeyHash, SHA_SIZE, issuerKeyArray);
-    snSz = SetSerialNumber(cert->serial, cert->serialSz, snArray);
+
+    req->issuerHash = req->cert->issuerHash;
+    issuerSz = SetDigest(req->cert->issuerHash, SHA_SIZE, issuerArray);
+    
+    req->issuerKeyHash = req->cert->issuerKeyHash;
+    issuerKeySz = SetDigest(req->cert->issuerKeyHash, SHA_SIZE, issuerKeyArray);
+
+    req->serial = req->cert->serial;
+    req->serialSz = req->cert->serialSz;
+    snSz = SetSerialNumber(req->cert->serial, req->cert->serialSz, snArray);
+
+    if (InitRng(&rng) != 0) {
+        CYASSL_MSG("\tCannot initialize RNG. Skipping the OSCP Nonce.");
+        extSz = 0;
+    } else {
+        req->nonceSz = MAX_OCSP_NONCE_SZ;
+        RNG_GenerateBlock(&rng, req->nonce, req->nonceSz);
+        extSz = SetOcspReqExtensions(MAX_OCSP_EXT_SZ, extArray,
+                                                    req->nonce, req->nonceSz);
+    }
 
     totalSz = algoSz + issuerSz + issuerKeySz + snSz;
 
     for (i = 4; i >= 0; i--) {
         seqSz[i] = SetSequence(totalSz, seqArray[i]);
         totalSz += seqSz[i];
+        if (i == 2) totalSz += extSz;
     }
     totalSz = 0;
     for (i = 0; i < 5; i++) {
@@ -4421,10 +4772,93 @@ int EncodeOcspRequest(DecodedCert* cert, byte* output, word32 outputSz)
     totalSz += issuerKeySz;
     XMEMCPY(output + totalSz, snArray, snSz);
     totalSz += snSz;
+    if (extSz != 0) {
+        XMEMCPY(output + totalSz, extArray, extSz);
+        totalSz += extSz;
+    }
 
     return totalSz;
 }
 
+
+void InitOcspRequest(OcspRequest* req, DecodedCert* cert,
+                                                    byte* dest, word32 destSz)
+{
+    CYASSL_ENTER("InitOcspRequest");
+
+    req->cert = cert;
+    req->nonceSz = 0;
+    req->issuerHash = NULL;
+    req->issuerKeyHash = NULL;
+    req->serial = NULL;
+    req->dest = dest;
+    req->destSz = destSz;
+}
+
+
+int CompareOcspReqResp(OcspRequest* req, OcspResponse* resp)
+{
+    int cmp;
+
+    CYASSL_ENTER("CompareOcspReqResp");
+
+    if (req == NULL)
+    {
+        CYASSL_MSG("\tReq missing");
+        return -1;
+    }
+
+    if (resp == NULL)
+    {
+        CYASSL_MSG("\tResp missing");
+        return 1;
+    }
+
+    cmp = req->nonceSz - resp->nonceSz;
+    if (cmp != 0)
+    {
+        CYASSL_MSG("\tnonceSz mismatch");
+        return cmp;
+    }
+
+    cmp = XMEMCMP(req->nonce, resp->nonce, req->nonceSz);
+    if (cmp != 0)
+    {
+        CYASSL_MSG("\tnonce mismatch");
+        return cmp;
+    }
+
+    cmp = XMEMCMP(req->issuerHash, resp->issuerHash, SHA_DIGEST_SIZE);
+    if (cmp != 0)
+    {
+        CYASSL_MSG("\tissuerHash mismatch");
+        return cmp;
+    }
+
+    cmp = XMEMCMP(req->issuerKeyHash, resp->issuerKeyHash, SHA_DIGEST_SIZE);
+    if (cmp != 0)
+    {
+        CYASSL_MSG("\tissuerKeyHash mismatch");
+        return cmp;
+    }
+
+    cmp = req->serialSz - resp->status->serialSz;
+    if (cmp != 0)
+    {
+        CYASSL_MSG("\tserialSz mismatch");
+        return cmp;
+    }
+
+    cmp = XMEMCMP(req->serial, resp->status->serial, req->serialSz);
+    if (cmp != 0)
+    {
+        CYASSL_MSG("\tserial mismatch");
+        return cmp;
+    }
+
+    return 0;
+}
+
 #endif
 
 
@@ -4464,6 +4898,7 @@ static int GetNameHash(const byte* source, word32* idx, byte* hash, int maxIdx)
 {
     Sha    sha;
     int    length;  /* length of all distinguished names */
+    word32 dummy;
 
     CYASSL_ENTER("GetNameHash");
 
@@ -4477,11 +4912,15 @@ static int GetNameHash(const byte* source, word32* idx, byte* hash, int maxIdx)
         CYASSL_MSG("Got optional prefix");
     }
 
+    /* For OCSP, RFC2560 section 4.1.1 states the issuer hash should be
+     * calculated over the entire DER encoding of the Name field, including
+     * the tag and length. */
+    dummy = *idx;
     if (GetSequence(source, idx, &length, maxIdx) < 0)
         return ASN_PARSE_E;
 
     InitSha(&sha);
-    ShaUpdate(&sha, &source[*idx], length);
+    ShaUpdate(&sha, source + dummy, length + *idx - dummy);
     ShaFinal(&sha, hash);
 
     *idx += length;
@@ -4490,31 +4929,6 @@ static int GetNameHash(const byte* source, word32* idx, byte* hash, int maxIdx)
 }
 
 
-/* Get raw Date only, no processing, 0 on success */
-static int GetBasicDate(const byte* source, word32* idx, byte* date, int maxIdx)
-{
-    int    length;
-    byte   b = source[*idx];
-
-    CYASSL_ENTER("GetBasicDate");
-
-    *idx += 1;
-    if (b != ASN_UTC_TIME && b != ASN_GENERALIZED_TIME)
-        return ASN_TIME_E;
-
-    if (GetLength(source, idx, &length, maxIdx) < 0)
-        return ASN_PARSE_E;
-
-    if (length > MAX_DATE_SIZE || length < MIN_DATE_SIZE)
-        return ASN_DATE_SZ_E;
-
-    XMEMCPY(date, &source[*idx], length);
-    *idx += length;
-
-    return 0;
-}
-
-
 /* Get Revoked Cert list, 0 on success */
 static int GetRevoked(const byte* buff, word32* idx, DecodedCRL* dcrl,
                       int maxIdx)
@@ -4548,7 +4962,7 @@ static int GetRevoked(const byte* buff, word32* idx, DecodedCRL* dcrl,
         return ASN_PARSE_E;
     }
 
-    rc = XMALLOC(sizeof(RevokedCert), NULL, DYNAMIC_TYPE_CRL);
+    rc = (RevokedCert*)XMALLOC(sizeof(RevokedCert), NULL, DYNAMIC_TYPE_CRL);
     if (rc == NULL) {
         CYASSL_MSG("Alloc Revoked Cert failed");
         return MEMORY_E;
@@ -4620,11 +5034,12 @@ static int GetCRL_Signature(const byte* source, word32* idx, DecodedCRL* dcrl,
 
 
 /* prase crl buffer into decoded state, 0 on success */
-int ParseCRL(DecodedCRL* dcrl, const byte* buff, long sz)
+int ParseCRL(DecodedCRL* dcrl, const byte* buff, long sz, void* cm)
 {
-    int version, len;
-    word32 oid, idx = 0;
-    Md5 md5;
+    int     version, len;
+    word32  oid, idx = 0;
+    Md5     md5;
+    Signer* ca;
 
     CYASSL_MSG("ParseCRL");
 
@@ -4654,12 +5069,17 @@ int ParseCRL(DecodedCRL* dcrl, const byte* buff, long sz)
     if (GetNameHash(buff, &idx, dcrl->issuerHash, sz) < 0)
         return ASN_PARSE_E;
 
-    if (GetBasicDate(buff, &idx, dcrl->lastDate, sz) < 0)
+    if (GetBasicDate(buff, &idx, dcrl->lastDate, &dcrl->lastDateFormat, sz) < 0)
         return ASN_PARSE_E;
 
-    if (GetBasicDate(buff, &idx, dcrl->nextDate, sz) < 0)
+    if (GetBasicDate(buff, &idx, dcrl->nextDate, &dcrl->nextDateFormat, sz) < 0)
         return ASN_PARSE_E;
 
+    if (!XVALIDATE_DATE(dcrl->nextDate, dcrl->nextDateFormat, AFTER)) {
+        CYASSL_MSG("CRL after date is no longer valid");
+        return ASN_AFTER_DATE_E;
+    }
+
     if (idx != dcrl->sigIndex && buff[idx] != CRL_EXTENSIONS) {
         if (GetSequence(buff, &idx, &len, sz) < 0)
             return ASN_PARSE_E;
@@ -4681,6 +5101,25 @@ int ParseCRL(DecodedCRL* dcrl, const byte* buff, long sz)
     if (GetCRL_Signature(buff, &idx, dcrl, sz) < 0)
         return ASN_PARSE_E;
 
+    ca = GetCA(cm, dcrl->issuerHash);
+    CYASSL_MSG("About to verify CRL signature");
+
+    if (ca) {
+        CYASSL_MSG("Found CRL issuer CA");
+        /* try to confirm/verify signature */
+        if (!ConfirmSignature(buff + dcrl->certBegin,
+                dcrl->sigIndex - dcrl->certBegin,
+                ca->publicKey, ca->pubKeySize, ca->keyOID,
+                dcrl->signature, dcrl->sigLength, dcrl->signatureOID, NULL)) {
+            CYASSL_MSG("CRL Confirm signature failed");
+            return ASN_SIG_CONFIRM_E;
+        }
+    }
+    else {
+        CYASSL_MSG("Did NOT find CRL issuer CA");
+        return ASN_SIG_CONFIRM_E;
+    }
+
     return 0;
 }
 
index f72a56467dcf10bfd041f103a8b6db6af57a4fa8..63edc6a6632199b27e9d0c75b20212c2b2c9840f 100644 (file)
@@ -54,6 +54,7 @@ int Base64_Decode(const byte* in, word32 inLen, byte* out, word32* outLen)
     word32 i = 0;
     word32 j = 0;
     word32 plainSz = inLen - ((inLen + (PEM_LINE_SZ - 1)) / PEM_LINE_SZ );
+    const byte maxIdx = (byte)sizeof(base64Decode) + 0x2B - 1;
 
     plainSz = (plainSz * 3 + 3) / 4;
     if (plainSz > *outLen) return BAD_FUNC_ARG;
@@ -75,6 +76,16 @@ int Base64_Decode(const byte* in, word32 inLen, byte* out, word32* outLen)
         if (e4 == PAD)
             pad4 = 1;
 
+        if (e1 < 0x2B || e2 < 0x2B || e3 < 0x2B || e4 < 0x2B) {
+            CYASSL_MSG("Bad Base64 Decode data, too small");
+            return ASN_INPUT_E;
+        }
+
+        if (e1 > maxIdx || e2 > maxIdx || e3 > maxIdx || e4 > maxIdx) {
+            CYASSL_MSG("Bad Base64 Decode data, too big");
+            return ASN_INPUT_E;
+        }
+
         e1 = base64Decode[e1 - 0x2B];
         e2 = base64Decode[e2 - 0x2B];
         e3 = (e3 == PAD) ? 0 : base64Decode[e3 - 0x2B];
index 1f777ab5bd7f8b86f2ba58ced56b491739141c11..880581e8cf6604a4aa0a7fa7acdac1ef2351b333 100644 (file)
@@ -34,7 +34,7 @@ static int InitHmac(Hmac* hmac, int type)
     hmac->innerHashKeyed = 0;
     hmac->macType = (byte)type;
 
-    if (!(type == MD5 || type == SHA || type == SHA256))
+    if (!(type == MD5 || type == SHA || type == SHA256 || type == SHA384))
         return BAD_FUNC_ARG;
 
     if (type == MD5)
@@ -45,6 +45,10 @@ static int InitHmac(Hmac* hmac, int type)
     else if (type == SHA256)
         InitSha256(&hmac->hash.sha256);
 #endif
+#ifdef CYASSL_SHA384
+    else if (type == SHA384)
+        InitSha384(&hmac->hash.sha384);
+#endif
 
     return 0;
 }
@@ -54,34 +58,60 @@ void HmacSetKey(Hmac* hmac, int type, const byte* key, word32 length)
 {
     byte*  ip = (byte*) hmac->ipad;
     byte*  op = (byte*) hmac->opad;
-    word32 i;
+    word32 i, hmac_block_size = MD5_BLOCK_SIZE;
 
     InitHmac(hmac, type);
 
-    if (length <= HMAC_BLOCK_SIZE)
-        XMEMCPY(ip, key, length);
-    else {
-        if (hmac->macType == MD5) {
+    if (hmac->macType == MD5) {
+        if (length <= MD5_BLOCK_SIZE) {
+            XMEMCPY(ip, key, length);
+        }
+        else {
             Md5Update(&hmac->hash.md5, key, length);
             Md5Final(&hmac->hash.md5, ip);
             length = MD5_DIGEST_SIZE;
         }
-        else if (hmac->macType == SHA) {
+    }
+    else if (hmac->macType == SHA) {
+               hmac_block_size = SHA_BLOCK_SIZE;
+        if (length <= SHA_BLOCK_SIZE) {
+            XMEMCPY(ip, key, length);
+        }
+        else {
             ShaUpdate(&hmac->hash.sha, key, length);
             ShaFinal(&hmac->hash.sha, ip);
             length = SHA_DIGEST_SIZE;
         }
+    }
 #ifndef NO_SHA256
-        else if (hmac->macType == SHA256) {
+    else if (hmac->macType == SHA256) {
+               hmac_block_size = SHA256_BLOCK_SIZE;
+        if (length <= SHA256_BLOCK_SIZE) {
+            XMEMCPY(ip, key, length);
+        }
+        else {
             Sha256Update(&hmac->hash.sha256, key, length);
             Sha256Final(&hmac->hash.sha256, ip);
             length = SHA256_DIGEST_SIZE;
         }
+    }
 #endif
+#ifdef CYASSL_SHA384
+    else if (hmac->macType == SHA384) {
+        hmac_block_size = SHA384_BLOCK_SIZE;
+        if (length <= SHA384_BLOCK_SIZE) {
+            XMEMCPY(ip, key, length);
+        }
+        else {
+            Sha384Update(&hmac->hash.sha384, key, length);
+            Sha384Final(&hmac->hash.sha384, ip);
+            length = SHA384_DIGEST_SIZE;
+        }
     }
-    XMEMSET(ip + length, 0, HMAC_BLOCK_SIZE - length);
+#endif
+    XMEMSET(ip + length, 0, hmac_block_size - length);
 
-    for(i = 0; i < HMAC_BLOCK_SIZE; i++) {
+    for(i = 0; i < hmac_block_size; i++) {
         op[i] = ip[i] ^ OPAD;
         ip[i] ^= IPAD;
     }
@@ -91,12 +121,16 @@ void HmacSetKey(Hmac* hmac, int type, const byte* key, word32 length)
 static void HmacKeyInnerHash(Hmac* hmac)
 {
     if (hmac->macType == MD5)
-        Md5Update(&hmac->hash.md5, (byte*) hmac->ipad, HMAC_BLOCK_SIZE);
+        Md5Update(&hmac->hash.md5, (byte*) hmac->ipad, MD5_BLOCK_SIZE);
     else if (hmac->macType == SHA)
-        ShaUpdate(&hmac->hash.sha, (byte*) hmac->ipad, HMAC_BLOCK_SIZE);
+        ShaUpdate(&hmac->hash.sha, (byte*) hmac->ipad, SHA_BLOCK_SIZE);
 #ifndef NO_SHA256
     else if (hmac->macType == SHA256)
-        Sha256Update(&hmac->hash.sha256, (byte*) hmac->ipad, HMAC_BLOCK_SIZE);
+        Sha256Update(&hmac->hash.sha256, (byte*) hmac->ipad, SHA256_BLOCK_SIZE);
+#endif
+#ifdef CYASSL_SHA384
+    else if (hmac->macType == SHA384)
+        Sha384Update(&hmac->hash.sha384, (byte*) hmac->ipad, SHA384_BLOCK_SIZE);
 #endif
 
     hmac->innerHashKeyed = 1;
@@ -116,6 +150,10 @@ void HmacUpdate(Hmac* hmac, const byte* msg, word32 length)
     else if (hmac->macType == SHA256)
         Sha256Update(&hmac->hash.sha256, msg, length);
 #endif
+#ifdef CYASSL_SHA384
+    else if (hmac->macType == SHA384)
+        Sha384Update(&hmac->hash.sha384, msg, length);
+#endif
 
 }
 
@@ -128,30 +166,41 @@ void HmacFinal(Hmac* hmac, byte* hash)
     if (hmac->macType == MD5) {
         Md5Final(&hmac->hash.md5, (byte*) hmac->innerHash);
 
-        Md5Update(&hmac->hash.md5, (byte*) hmac->opad, HMAC_BLOCK_SIZE);
+        Md5Update(&hmac->hash.md5, (byte*) hmac->opad, MD5_BLOCK_SIZE);
         Md5Update(&hmac->hash.md5, (byte*) hmac->innerHash, MD5_DIGEST_SIZE);
 
         Md5Final(&hmac->hash.md5, hash);
     }
-    else if (hmac->macType ==SHA) {
+    else if (hmac->macType == SHA) {
         ShaFinal(&hmac->hash.sha, (byte*) hmac->innerHash);
 
-        ShaUpdate(&hmac->hash.sha, (byte*) hmac->opad, HMAC_BLOCK_SIZE);
+        ShaUpdate(&hmac->hash.sha, (byte*) hmac->opad, SHA_BLOCK_SIZE);
         ShaUpdate(&hmac->hash.sha, (byte*) hmac->innerHash, SHA_DIGEST_SIZE);
 
         ShaFinal(&hmac->hash.sha, hash);
     }
 #ifndef NO_SHA256
-    else if (hmac->macType ==SHA256) {
+    else if (hmac->macType == SHA256) {
         Sha256Final(&hmac->hash.sha256, (byte*) hmac->innerHash);
 
-        Sha256Update(&hmac->hash.sha256, (byte*) hmac->opad, HMAC_BLOCK_SIZE);
+        Sha256Update(&hmac->hash.sha256, (byte*) hmac->opad, SHA256_BLOCK_SIZE);
         Sha256Update(&hmac->hash.sha256, (byte*) hmac->innerHash,
                      SHA256_DIGEST_SIZE);
 
         Sha256Final(&hmac->hash.sha256, hash);
     }
 #endif
+#ifdef CYASSL_SHA384
+    else if (hmac->macType == SHA384) {
+        Sha384Final(&hmac->hash.sha384, (byte*) hmac->innerHash);
+
+        Sha384Update(&hmac->hash.sha384, (byte*) hmac->opad, SHA384_BLOCK_SIZE);
+        Sha384Update(&hmac->hash.sha384, (byte*) hmac->innerHash,
+                     SHA384_DIGEST_SIZE);
+
+        Sha384Final(&hmac->hash.sha384, hash);
+    }
+#endif
 
     hmac->innerHashKeyed = 0;
 }
index 996dad0628027439a20e4e17e8c2629e726e3fb7..72f443ffcd7c13bea0c130f8b21614713394c277 100644 (file)
@@ -2762,6 +2762,9 @@ int fast_s_mp_sqr (mp_int * a, mp_int * b)
     }
   }
 
+  if (pa > MP_WARRAY)
+    return MP_RANGE;  /* TAO range check */
+
 #ifdef CYASSL_SMALL_STACK
   W = (mp_digit*)XMALLOC(sizeof(mp_digit) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT);
   if (W == NULL)    
@@ -2878,6 +2881,8 @@ int fast_s_mp_mul_digs (mp_int * a, mp_int * b, mp_int * c, int digs)
 
   /* number of output digits to produce */
   pa = MIN(digs, a->used + b->used);
+  if (pa > MP_WARRAY)
+    return MP_RANGE;  /* TAO range check */
 
 #ifdef CYASSL_SMALL_STACK
   W = (mp_digit*)XMALLOC(sizeof(mp_digit) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT);
@@ -3598,6 +3603,9 @@ int fast_s_mp_mul_high_digs (mp_int * a, mp_int * b, mp_int * c, int digs)
     }
   }
 
+  if (pa > MP_WARRAY)
+    return MP_RANGE;  /* TAO range check */
+  
 #ifdef CYASSL_SMALL_STACK
   W = (mp_digit*)XMALLOC(sizeof(mp_digit) * MP_WARRAY, 0, DYNAMIC_TYPE_BIGINT);
   if (W == NULL)    
diff --git a/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md2.c b/FreeRTOS-Plus/CyaSSL/ctaocrypt/src/md2.c
new file mode 100644 (file)
index 0000000..0c1bb9c
--- /dev/null
@@ -0,0 +1,129 @@
+/* md2.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL 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.
+ *
+ * CyaSSL is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+    #include <config.h>
+#endif
+
+#ifdef CYASSL_MD2
+
+#include <cyassl/ctaocrypt/md2.h>
+#ifdef NO_INLINE
+    #include <cyassl/ctaocrypt/misc.h>
+#else
+    #include <ctaocrypt/src/misc.c>
+#endif
+
+
+void InitMd2(Md2* md2)
+{
+    XMEMSET(md2->X, 0, MD2_X_SIZE);
+    XMEMSET(md2->C, 0, MD2_BLOCK_SIZE);
+    XMEMSET(md2->buffer, 0, MD2_BLOCK_SIZE);
+    md2->count = 0;
+}
+
+
+void Md2Update(Md2* md2, const byte* data, word32 len)
+{
+    static const byte S[256] = 
+    {
+        41, 46, 67, 201, 162, 216, 124, 1, 61, 54, 84, 161, 236, 240, 6,
+        19, 98, 167, 5, 243, 192, 199, 115, 140, 152, 147, 43, 217, 188,
+        76, 130, 202, 30, 155, 87, 60, 253, 212, 224, 22, 103, 66, 111, 24,
+        138, 23, 229, 18, 190, 78, 196, 214, 218, 158, 222, 73, 160, 251,
+        245, 142, 187, 47, 238, 122, 169, 104, 121, 145, 21, 178, 7, 63,
+        148, 194, 16, 137, 11, 34, 95, 33, 128, 127, 93, 154, 90, 144, 50,
+        39, 53, 62, 204, 231, 191, 247, 151, 3, 255, 25, 48, 179, 72, 165,
+        181, 209, 215, 94, 146, 42, 172, 86, 170, 198, 79, 184, 56, 210,
+        150, 164, 125, 182, 118, 252, 107, 226, 156, 116, 4, 241, 69, 157,
+        112, 89, 100, 113, 135, 32, 134, 91, 207, 101, 230, 45, 168, 2, 27,
+        96, 37, 173, 174, 176, 185, 246, 28, 70, 97, 105, 52, 64, 126, 15,
+        85, 71, 163, 35, 221, 81, 175, 58, 195, 92, 249, 206, 186, 197,
+        234, 38, 44, 83, 13, 110, 133, 40, 132, 9, 211, 223, 205, 244, 65,
+        129, 77, 82, 106, 220, 55, 200, 108, 193, 171, 250, 36, 225, 123,
+        8, 12, 189, 177, 74, 120, 136, 149, 139, 227, 99, 232, 109, 233,
+        203, 213, 254, 59, 0, 29, 57, 242, 239, 183, 14, 102, 88, 208, 228,
+        166, 119, 114, 248, 235, 117, 75, 10, 49, 68, 80, 180, 143, 237,
+        31, 26, 219, 153, 141, 51, 159, 17, 131, 20
+    };
+
+    while (len) {
+        word32 L = (MD2_PAD_SIZE - md2->count) < len ?
+                   (MD2_PAD_SIZE - md2->count) : len;
+        XMEMCPY(md2->buffer + md2->count, data, L);
+        md2->count += L;
+        data += L;
+        len  -= L;
+
+        if (md2->count == MD2_PAD_SIZE) {
+            int  i;
+            byte t;
+
+            md2->count = 0;
+            XMEMCPY(md2->X + MD2_PAD_SIZE, md2->buffer, MD2_PAD_SIZE);
+            t = md2->C[15];
+
+            for(i = 0; i < MD2_PAD_SIZE; i++) {
+                md2->X[32 + i] = md2->X[MD2_PAD_SIZE + i] ^ md2->X[i];
+                t = md2->C[i] ^= S[md2->buffer[i] ^ t];
+            }
+
+            t=0;
+            for(i = 0; i < 18; i++) {
+                int j;
+                for(j = 0; j < MD2_X_SIZE; j += 8) {
+                    t = md2->X[j+0] ^= S[t];
+                    t = md2->X[j+1] ^= S[t];
+                    t = md2->X[j+2] ^= S[t];
+                    t = md2->X[j+3] ^= S[t];
+                    t = md2->X[j+4] ^= S[t];
+                    t = md2->X[j+5] ^= S[t];
+                    t = md2->X[j+6] ^= S[t];
+                    t = md2->X[j+7] ^= S[t];
+                }
+                t = (t + i) & 0xFF;
+            }
+        }
+    }
+}
+
+
+void Md2Final(Md2* md2, byte* hash)
+{
+    byte   padding[MD2_BLOCK_SIZE];
+    word32 padLen = MD2_PAD_SIZE - md2->count;
+    word32 i;
+
+    for (i = 0; i < padLen; i++)
+        padding[i] = (byte)padLen;
+
+    Md2Update(md2, padding, padLen);
+    Md2Update(md2, md2->C, MD2_BLOCK_SIZE);
+
+    XMEMCPY(hash, md2->X, MD2_DIGEST_SIZE);
+
+    InitMd2(md2);
+}
+
+
+#endif /* CYASSL_MD2 */
index 065de670e72247c7af9c8f0a915fdce8b35e9df5..ddb3e0149635aef1ceabefc984e014f6740d21a4 100644 (file)
@@ -32,6 +32,7 @@
 #else
     #include <cyassl/ctaocrypt/asn_public.h>
 #endif
+#include <cyassl/ctaocrypt/md2.h>
 #include <cyassl/ctaocrypt/md5.h>
 #include <cyassl/ctaocrypt/md4.h>
 #include <cyassl/ctaocrypt/sha.h>
@@ -86,6 +87,7 @@ typedef struct testVector {
     size_t outLen;
 } testVector;
 
+int  md2_test();
 int  md5_test();
 int  md4_test();
 int  sha_test();
@@ -99,6 +101,7 @@ int  rabbit_test();
 int  des_test();
 int  des3_test();
 int  aes_test();
+int  aesgcm_test();
 int  rsa_test();
 int  dh_test();
 int  dsa_test();
@@ -148,6 +151,13 @@ void ctaocrypt_test(void* args)
     else
         printf( "MD5      test passed!\n");
 
+#ifdef CYASSL_MD2
+    if ( (ret = md2_test()) ) 
+        err_sys("MD2      test failed!\n", ret);
+    else
+        printf( "MD2      test passed!\n");
+#endif
+
 #ifndef NO_MD4
     if ( (ret = md4_test()) ) 
         err_sys("MD4      test failed!\n", ret);
@@ -233,6 +243,13 @@ void ctaocrypt_test(void* args)
         err_sys("AES      test failed!\n", ret);
     else
         printf( "AES      test passed!\n");
+
+#ifdef HAVE_AESGCM
+    if ( (ret = aesgcm_test()) )
+        err_sys("AES-GCM  test failed!\n", ret);
+    else
+        printf( "AES-GCM  test passed!\n");
+#endif
 #endif
 
     if ( (ret = random_test()) )
@@ -301,6 +318,83 @@ void ctaocrypt_test(void* args)
 #endif /* NO_MAIN_DRIVER */
 
 
+#ifdef CYASSL_MD2
+int md2_test()
+{
+    Md2  md2;
+    byte hash[MD2_DIGEST_SIZE];
+
+    testVector a, b, c, d, e, f, g;
+    testVector test_md2[7];
+    int times = sizeof(test_md2) / sizeof(testVector), i;
+
+    a.input  = "";
+    a.output = "\x83\x50\xe5\xa3\xe2\x4c\x15\x3d\xf2\x27\x5c\x9f\x80\x69"
+               "\x27\x73";
+    a.inLen  = strlen(a.input);
+    a.outLen = strlen(a.output);
+
+    b.input  = "a";
+    b.output = "\x32\xec\x01\xec\x4a\x6d\xac\x72\xc0\xab\x96\xfb\x34\xc0"
+               "\xb5\xd1";
+    b.inLen  = strlen(b.input);
+    b.outLen = strlen(b.output);
+
+    c.input  = "abc";
+    c.output = "\xda\x85\x3b\x0d\x3f\x88\xd9\x9b\x30\x28\x3a\x69\xe6\xde"
+               "\xd6\xbb";
+    c.inLen  = strlen(c.input);
+    c.outLen = strlen(c.output);
+
+    d.input  = "message digest";
+    d.output = "\xab\x4f\x49\x6b\xfb\x2a\x53\x0b\x21\x9f\xf3\x30\x31\xfe"
+               "\x06\xb0";
+    d.inLen  = strlen(d.input);
+    d.outLen = strlen(d.output);
+
+    e.input  = "abcdefghijklmnopqrstuvwxyz";
+    e.output = "\x4e\x8d\xdf\xf3\x65\x02\x92\xab\x5a\x41\x08\xc3\xaa\x47"
+               "\x94\x0b";
+    e.inLen  = strlen(e.input);
+    e.outLen = strlen(e.output);
+
+    f.input  = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012345"
+               "6789";
+    f.output = "\xda\x33\xde\xf2\xa4\x2d\xf1\x39\x75\x35\x28\x46\xc3\x03"
+               "\x38\xcd";
+    f.inLen  = strlen(f.input);
+    f.outLen = strlen(f.output);
+
+    g.input  = "1234567890123456789012345678901234567890123456789012345678"
+               "9012345678901234567890";
+    g.output = "\xd5\x97\x6f\x79\xd8\x3d\x3a\x0d\xc9\x80\x6c\x3c\x66\xf3"
+               "\xef\xd8";
+    g.inLen  = strlen(g.input);
+    g.outLen = strlen(g.output);
+
+    test_md2[0] = a;
+    test_md2[1] = b;
+    test_md2[2] = c;
+    test_md2[3] = d;
+    test_md2[4] = e;
+    test_md2[5] = f;
+    test_md2[6] = g;
+
+    InitMd2(&md2);
+
+    for (i = 0; i < times; ++i) {
+        Md2Update(&md2, (byte*)test_md2[i].input, (word32)test_md2[i].inLen);
+        Md2Final(&md2, hash);
+
+        if (memcmp(hash, test_md2[i].output, MD2_DIGEST_SIZE) != 0)
+            return -155 - i;
+    }
+
+    return 0;
+}
+#endif 
+
+
 int md5_test()
 {
     Md5  md5;
@@ -1146,6 +1240,99 @@ int aes_test()
 
     return 0;
 }
+
+#ifdef HAVE_AESGCM
+int aesgcm_test()
+{
+    Aes enc;
+
+    /*
+     * This is Test Case 16 from the document Galois/
+     * Counter Mode of Operation (GCM) by McGrew and
+     * Viega.
+     */
+    const byte k[] =
+    {
+        0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
+        0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08,
+        0xfe, 0xff, 0xe9, 0x92, 0x86, 0x65, 0x73, 0x1c,
+        0x6d, 0x6a, 0x8f, 0x94, 0x67, 0x30, 0x83, 0x08
+    };
+
+    const byte iv[] =
+    {
+        0xca, 0xfe, 0xba, 0xbe, 0xfa, 0xce, 0xdb, 0xad,
+        0xde, 0xca, 0xf8, 0x88, 0x00, 0x00, 0x00, 0x00
+    };
+    
+    const byte p[] =
+    {
+        0xd9, 0x31, 0x32, 0x25, 0xf8, 0x84, 0x06, 0xe5,
+        0xa5, 0x59, 0x09, 0xc5, 0xaf, 0xf5, 0x26, 0x9a,
+        0x86, 0xa7, 0xa9, 0x53, 0x15, 0x34, 0xf7, 0xda,
+        0x2e, 0x4c, 0x30, 0x3d, 0x8a, 0x31, 0x8a, 0x72,
+        0x1c, 0x3c, 0x0c, 0x95, 0x95, 0x68, 0x09, 0x53,
+        0x2f, 0xcf, 0x0e, 0x24, 0x49, 0xa6, 0xb5, 0x25,
+        0xb1, 0x6a, 0xed, 0xf5, 0xaa, 0x0d, 0xe6, 0x57,
+        0xba, 0x63, 0x7b, 0x39
+    };
+    
+    const byte a[] =
+    {
+        0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+        0xfe, 0xed, 0xfa, 0xce, 0xde, 0xad, 0xbe, 0xef,
+        0xab, 0xad, 0xda, 0xd2
+    };
+    
+    const byte c[] =
+    {
+        0x52, 0x2d, 0xc1, 0xf0, 0x99, 0x56, 0x7d, 0x07,
+        0xf4, 0x7f, 0x37, 0xa3, 0x2a, 0x84, 0x42, 0x7d,
+        0x64, 0x3a, 0x8c, 0xdc, 0xbf, 0xe5, 0xc0, 0xc9,
+        0x75, 0x98, 0xa2, 0xbd, 0x25, 0x55, 0xd1, 0xaa,
+        0x8c, 0xb0, 0x8e, 0x48, 0x59, 0x0d, 0xbb, 0x3d,
+        0xa7, 0xb0, 0x8b, 0x10, 0x56, 0x82, 0x88, 0x38,
+        0xc5, 0xf6, 0x1e, 0x63, 0x93, 0xba, 0x7a, 0x0a,
+        0xbc, 0xc9, 0xf6, 0x62
+    };
+
+    const byte t[] =
+    {
+        0x76, 0xfc, 0x6e, 0xce, 0x0f, 0x4e, 0x17, 0x68,
+        0xcd, 0xdf, 0x88, 0x53, 0xbb, 0x2d, 0x55, 0x1b
+    };
+
+    byte t2[16];
+    byte p2[60];
+    byte c2[60];
+
+    int result;
+
+    memset(t2, 0, 16);
+    memset(c2, 0, 60);
+    memset(p2, 0, 60);
+
+    AesGcmSetKey(&enc, k, sizeof(k), iv);
+    AesGcmSetExpIV(&enc, iv + /*AES_GCM_IMP_IV_SZ*/ 4);
+    /* AES-GCM encrypt and decrypt both use AES encrypt internally */
+    AesGcmEncrypt(&enc, c2, p, sizeof(c2), t2, sizeof(t2), a, sizeof(a));
+    if (memcmp(c, c2, sizeof(c2)))
+        return -68;
+    if (memcmp(t, t2, sizeof(t2)))
+        return -69;
+
+    result = AesGcmDecrypt(&enc,
+                        p2, c2, sizeof(p2), t2, sizeof(t2), a, sizeof(a));
+    if (result != 0)
+        return -70;
+    if (memcmp(p, p2, sizeof(p2)))
+        return -71;
+
+    return 0;
+}
+#endif /* HAVE_AESGCM */
+
+
 #endif /* NO_AES */
 
 
index c3356de4a4d26028f1011e621ec20324f15e0d63..9ab625dfc965218318edce9d4a3736fff24540d9 100644 (file)
@@ -68,6 +68,14 @@ typedef struct Aes {
 
     ALIGN16 word32 reg[AES_BLOCK_SIZE / sizeof(word32)];      /* for CBC mode */
     ALIGN16 word32 tmp[AES_BLOCK_SIZE / sizeof(word32)];      /* same         */
+
+#ifdef HAVE_AESGCM
+    ALIGN16 byte H[AES_BLOCK_SIZE];
+#ifdef GCM_TABLE
+    /* key-based fast multiplication table. */
+    ALIGN16 byte M0[256][AES_BLOCK_SIZE];
+#endif /* GCM_TABLE */
+#endif /* HAVE_AESGCM */
 } Aes;
 
 
@@ -80,6 +88,20 @@ CYASSL_API void AesCtrEncrypt(Aes* aes, byte* out, const byte* in, word32 sz);
 CYASSL_API void AesEncryptDirect(Aes* aes, byte* out, const byte* in);
 CYASSL_API void AesDecryptDirect(Aes* aes, byte* out, const byte* in);
 
+#ifdef HAVE_AESGCM
+CYASSL_API void AesGcmSetKey(Aes* aes, const byte* key, word32 len,
+                              const byte* implicitIV);
+CYASSL_API void AesGcmSetExpIV(Aes* aes, const byte* iv);
+CYASSL_API void AesGcmGetExpIV(Aes* aes, byte* iv);
+CYASSL_API void AesGcmIncExpIV(Aes* aes);
+CYASSL_API void AesGcmEncrypt(Aes* aes, byte* out, const byte* in, word32 sz,
+                              byte* authTag, word32 authTagSz,
+                              const byte* authIn, word32 authInSz);
+CYASSL_API int  AesGcmDecrypt(Aes* aes, byte* out, const byte* in, word32 sz,
+                              const byte* authTag, word32 authTagSz,
+                              const byte* authIn, word32 authInSz);
+#endif /* HAVE_AESGCM */
+
 
 #ifdef __cplusplus
     } /* extern "C" */
index eaf06a79472b835a60f43bebef77e27b030b5b87..cf2ac1cb723381a9b397e93c69b8d2b4fb8466f6 100644 (file)
@@ -61,6 +61,7 @@ enum ASN_Tags {
     ASN_SEQUENCE          = 0x10,
     ASN_SET               = 0x11,
     ASN_UTC_TIME          = 0x17,
+    ASN_DNS_TYPE          = 0x02,
     ASN_GENERALIZED_TIME  = 0x18,
     CRL_EXTENSIONS        = 0xa0,
     ASN_EXTENSIONS        = 0xa3,
@@ -138,6 +139,8 @@ enum Misc_ASN {
     #endif
                                    /* Max total extensions, id + len + others */
 #endif
+    MAX_OCSP_EXT_SZ     = 58,      /* Max OCSP Extension length */
+    MAX_OCSP_NONCE_SZ   = 18,      /* OCSP Nonce size           */
     MAX_PUBLIC_KEY_SZ   = MAX_NTRU_ENC_SZ + MAX_ALGO_SZ + MAX_SEQ_SZ * 2
                                    /* use bigger NTRU size */
 };
@@ -198,6 +201,13 @@ enum VerifyType {
 };
 
 
+typedef struct DNS_entry   DNS_entry;
+
+struct DNS_entry {
+    DNS_entry* next;   /* next on DNS list */
+    char*      name;   /* actual DNS name */
+};
+
 typedef struct DecodedCert DecodedCert;
 typedef struct Signer      Signer;
 
@@ -211,6 +221,7 @@ struct DecodedCert {
     word32  sigLength;               /* length of signature              */
     word32  signatureOID;            /* sum of algorithm object id       */
     word32  keyOID;                  /* sum of key algo  object id       */
+    DNS_entry* altNames;             /* alt names list of dns entries    */
     byte    subjectHash[SHA_SIZE];   /* hash of all Names                */
     byte    issuerHash[SHA_SIZE];    /* hash of all Names                */
 #ifdef HAVE_OCSP
@@ -219,6 +230,7 @@ struct DecodedCert {
     byte*   signature;               /* not owned, points into raw cert  */
     char*   subjectCN;               /* CommonName                       */
     int     subjectCNLen;
+    int     subjectCNStored;         /* have we saved a copy we own      */
     char    issuer[ASN_NAME_MAX];    /* full name including common name  */
     char    subject[ASN_NAME_MAX];   /* full name including common name  */
     int     verify;                  /* Default to yes, but could be off */
@@ -278,6 +290,7 @@ struct Signer {
     #define CYASSL_TEST_API CYASSL_LOCAL
 #endif
 
+CYASSL_TEST_API void FreeAltNames(DNS_entry*, void*);
 CYASSL_TEST_API void InitDecodedCert(DecodedCert*, byte*, word32, void*);
 CYASSL_TEST_API void FreeDecodedCert(DecodedCert*);
 CYASSL_TEST_API int  ParseCert(DecodedCert*, int type, int verify, void* cm);
@@ -295,6 +308,7 @@ CYASSL_LOCAL void    FreeSigners(Signer*, void*);
 CYASSL_LOCAL int ToTraditional(byte* buffer, word32 length);
 CYASSL_LOCAL int ToTraditionalEnc(byte* buffer, word32 length,const char*, int);
 
+CYASSL_LOCAL int ValidateDate(const byte* date, byte format, int dateType);
 
 #ifdef HAVE_ECC
     /* ASN sig helpers */
@@ -321,6 +335,10 @@ enum cert_enums {
 #endif /* CYASSL_CERT_GEN */
 
 
+
+/* for pointer use */
+typedef struct CertStatus CertStatus;
+
 #ifdef HAVE_OCSP
 
 enum Ocsp_Response_Status {
@@ -341,47 +359,82 @@ enum Ocsp_Cert_Status {
 
 
 enum Ocsp_Sums {
-    OCSP_BASIC_OID = 117
+    OCSP_BASIC_OID = 117,
+    OCSP_NONCE_OID = 118
 };
 
 
-#define STATUS_LIST_SIZE 5
+typedef struct OcspRequest  OcspRequest;
+typedef struct OcspResponse OcspResponse;
 
 
-typedef struct OcspResponse OcspResponse;
+struct CertStatus {
+    CertStatus* next;
+
+    byte serial[EXTERNAL_SERIAL_SIZE];
+    int serialSz;
+
+    int status;
+
+    byte thisDate[MAX_DATE_SIZE];
+    byte nextDate[MAX_DATE_SIZE];
+    byte thisDateFormat;
+    byte nextDateFormat;
+};
 
 
 struct OcspResponse {
     int     responseStatus;  /* return code from Responder */
 
-    word32  respBegin;       /* index to beginning of OCSP Response */
-    word32  respLength;      /* length of the OCSP Response */
+    byte*   response;        /* Pointer to beginning of OCSP Response */
+    word32  responseSz;      /* length of the OCSP Response */
+
+    byte    producedDate[MAX_DATE_SIZE];
+                                                        /* Date at which this response was signed */
+    byte    producedDateFormat; /* format of the producedDate */
+    byte*   issuerHash;
+    byte*   issuerKeyHash;
 
-    int     version;         /* Response version number */
+    byte*   cert;
+    word32  certSz;
 
-    word32  sigIndex;        /* Index into source for start of sig */
-    word32  sigLength;       /* Length in octets for the sig */
+    byte*   sig;             /* Pointer to sig in source */
+    word32  sigSz;           /* Length in octets for the sig */
     word32  sigOID;          /* OID for hash used for sig */
 
-    int     certStatusCount; /* Count of certificate statuses, Note
-                              * 1:1 correspondence between certStatus
-                              * and certSerialNumber */
-    byte    certSN[STATUS_LIST_SIZE][EXTERNAL_SERIAL_SIZE];
-    int     certSNsz[STATUS_LIST_SIZE];
-                             /* Certificate serial number array. */
-    word32  certStatus[STATUS_LIST_SIZE];
-                             /* Certificate status array */
+    CertStatus* status;      /* certificate status to fill out */
+
+    byte*   nonce;           /* pointer to nonce inside ASN.1 response */
+    int     nonceSz;         /* length of the nonce string */
 
     byte*   source;          /* pointer to source buffer, not owned */
     word32  maxIdx;          /* max offset based on init size */
-    void*   heap;            /* for user memory overrides */
 };
 
 
-CYASSL_LOCAL void InitOcspResponse(OcspResponse*, byte*, word32, void*);
-CYASSL_LOCAL void FreeOcspResponse(OcspResponse*);
+struct OcspRequest {
+    DecodedCert* cert;
+
+    byte    nonce[MAX_OCSP_NONCE_SZ];
+    int     nonceSz;
+
+    byte*   issuerHash;      /* pointer to issuerHash in source cert */
+    byte*   issuerKeyHash;   /* pointer to issuerKeyHash in source cert */
+    byte*   serial;          /* pointer to serial number in source cert */
+    int     serialSz;        /* length of the serial number */
+
+    byte*   dest;            /* pointer to the destination ASN.1 buffer */
+    word32  destSz;          /* length of the destination buffer */
+};
+
+
+CYASSL_LOCAL void InitOcspResponse(OcspResponse*, CertStatus*, byte*, word32);
 CYASSL_LOCAL int  OcspResponseDecode(OcspResponse*);
-CYASSL_LOCAL int  EncodeOcspRequest(DecodedCert*, byte*, word32);
+
+CYASSL_LOCAL void InitOcspRequest(OcspRequest*, DecodedCert*, byte*, word32);
+CYASSL_LOCAL int  EncodeOcspRequest(OcspRequest*);
+
+CYASSL_LOCAL int  CompareOcspReqResp(OcspRequest*, OcspResponse*);
 
 
 #endif /* HAVE_OCSP */
@@ -410,12 +463,14 @@ struct DecodedCRL {
     byte    crlHash[MD5_DIGEST_SIZE];     /* raw crl data hash           */ 
     byte    lastDate[MAX_DATE_SIZE]; /* last date updated  */
     byte    nextDate[MAX_DATE_SIZE]; /* next update date   */
+    byte    lastDateFormat;          /* format of last date */
+    byte    nextDateFormat;          /* format of next date */
     RevokedCert* certs;              /* revoked cert list  */
     int          totalCerts;         /* number on list     */
 };
 
 CYASSL_LOCAL void InitDecodedCRL(DecodedCRL*);
-CYASSL_LOCAL int  ParseCRL(DecodedCRL*, const byte* buff, long sz);
+CYASSL_LOCAL int  ParseCRL(DecodedCRL*, const byte* buff, long sz, void* cm);
 CYASSL_LOCAL void FreeDecodedCRL(DecodedCRL*);
 
 
index 59298bbc6a2c09b16fae0ee9c9a7c55652ee5c6b..8a0d586280e368f73dbe1ffc5ea7cf6a55844ce7 100644 (file)
@@ -98,6 +98,8 @@ enum {
     NO_PASSWORD        = -176,  /* no password provided by user */
     ALT_NAME_E         = -177,  /* alt name size problem, too big */
 
+    AES_GCM_AUTH_E     = -180,  /* AES-GCM Authentication check failure */
+
     MIN_CODE_E         = -200   /* errors -101 - -199 */
 };
 
index 6f022748ba45d746d05334c6e97aee06153de240..ee11669d0216b6870f5d1cf12f4b9fb4aa52a994 100644 (file)
     #include <cyassl/ctaocrypt/sha256.h>
 #endif
 
+#ifdef CYASSL_SHA384
+    #include <cyassl/ctaocrypt/sha512.h>
+#endif
+
 #ifdef __cplusplus
     extern "C" {
 #endif
 enum {
     IPAD    = 0x36,
     OPAD    = 0x5C,
-#ifndef NO_SHA256
+#if defined(CYASSL_SHA384)
+    INNER_HASH_SIZE = SHA384_DIGEST_SIZE,
+    HMAC_BLOCK_SIZE = SHA384_BLOCK_SIZE
+#elif !defined(NO_SHA256)
     INNER_HASH_SIZE = SHA256_DIGEST_SIZE,
+    HMAC_BLOCK_SIZE = SHA256_BLOCK_SIZE,
+    SHA384          = 5
 #else
     INNER_HASH_SIZE = SHA_DIGEST_SIZE,
+    HMAC_BLOCK_SIZE = SHA_BLOCK_SIZE,
     SHA256          = 2,                     /* hash type unique */
+    SHA384          = 5
 #endif
-    HMAC_BLOCK_SIZE = MD5_BLOCK_SIZE
 };
 
 
@@ -57,6 +67,9 @@ typedef union {
     #ifndef NO_SHA256
         Sha256 sha256;
     #endif
+    #ifdef CYASSL_SHA384
+        Sha384 sha384;
+    #endif
 } Hash;
 
 /* Hmac digest */
index a268bb95fd62ebffec16099336d86bbaa3822add..6b27ff13bf27788aa8c81a00d6fd38d585758cd0 100644 (file)
@@ -15,6 +15,7 @@ nobase_include_HEADERS+= \
                          cyassl/ctaocrypt/hc128.h \
                          cyassl/ctaocrypt/hmac.h \
                          cyassl/ctaocrypt/integer.h \
+                         cyassl/ctaocrypt/md2.h \
                          cyassl/ctaocrypt/md4.h \
                          cyassl/ctaocrypt/md5.h \
                          cyassl/ctaocrypt/misc.h \
diff --git a/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md2.h b/FreeRTOS-Plus/CyaSSL/cyassl/ctaocrypt/md2.h
new file mode 100644 (file)
index 0000000..a57a92f
--- /dev/null
@@ -0,0 +1,64 @@
+/* md2.h
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL 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.
+ *
+ * CyaSSL 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 CYASSL_MD2
+
+#ifndef CTAO_CRYPT_MD2_H
+#define CTAO_CRYPT_MD2_H
+
+#include <cyassl/ctaocrypt/types.h>
+
+#ifdef __cplusplus
+    extern "C" {
+#endif
+
+
+/* in bytes */
+enum {
+    MD2             =  6,    /* hash type unique */
+    MD2_BLOCK_SIZE  = 16,
+    MD2_DIGEST_SIZE = 16,
+    MD2_PAD_SIZE    = 16,
+    MD2_X_SIZE      = 48
+};
+
+
+/* Md2 digest */
+typedef struct Md2 {
+    word32  count;   /* bytes % PAD_SIZE  */
+    byte    X[MD2_X_SIZE];
+    byte    C[MD2_BLOCK_SIZE];
+    byte    buffer[MD2_BLOCK_SIZE];
+} Md2;
+
+
+CYASSL_API void InitMd2(Md2*);
+CYASSL_API void Md2Update(Md2*, const byte*, word32);
+CYASSL_API void Md2Final(Md2*, byte*);
+
+
+#ifdef __cplusplus
+    } /* extern "C" */
+#endif
+
+#endif /* CTAO_CRYPT_MD2_H */
+#endif /* CYASSL_MD2 */
index 19aade3f98becca8024e7bb544d1e355fa50ae06..41e236828c732f065e2309d3ad86d3e37be42c30 100644 (file)
@@ -49,6 +49,19 @@ CYASSL_LOCAL
 void XorWords(word*, const word*, word32);
 CYASSL_LOCAL
 void xorbuf(byte*, const byte*, word32);
+
+#ifdef WORD64_AVAILABLE
+CYASSL_LOCAL
+word64 rotlFixed64(word64, word64);
+CYASSL_LOCAL
+word64 rotrFixed64(word64, word64);
+
+CYASSL_LOCAL
+word64 ByteReverseWord64(word64);
+CYASSL_LOCAL
+void   ByteReverseWords64(word64*, const word64*, word32);
+#endif /* WORD64_AVAILABLE */
+
 #endif /* NO_INLINE */
 
 
index 9fd7bc561e58336c482b50e5763d31a6a380c090..ef60087aaba804512cae9da9c8ee0ddb50f4a402 100644 (file)
     #define NO_HC128
 #endif /* MBED */
 
-#ifdef FREERTOS 
+#ifdef FREERTOS_WINSIM
+    #define FREERTOS
+    #define USE_WINDOWS_API
+#endif
+
+#ifdef FREERTOS
     #define NO_WRITEV
     #define NO_SHA512
     #define NO_DH
     #define NO_DSA
     #define NO_HC128
-#endif
 
-#ifdef FREERTOS_WINSIM
-    #define FREERTOS
-    #define USE_WINDOWS_API
+    #ifndef SINGLE_THREADED
+        #include "FreeRTOS.h"
+        #include "semphr.h"
+    #endif
 #endif
 
 #ifdef CYASSL_GAME_BUILD
index 6514496d823cf44f262d52af20f345fe252fd401..d93df712a7657ac9ac6402a1df13ecee96979236 100644 (file)
@@ -157,6 +157,8 @@ enum {
 
 #ifndef STRING_USER
     #include <string.h>
+    char* mystrnstr(const char* s1, const char* s2, unsigned int n);
+
     #define XMEMCPY(d,s,l)    memcpy((d),(s),(l))
     #define XMEMSET(b,c,l)    memset((b),(c),(l))
     #define XMEMCMP(s1,s2,n)  memcmp((s1),(s2),(n))
@@ -167,6 +169,7 @@ enum {
     /* strstr, strncmp, and strncat only used by CyaSSL proper, not required for
        CTaoCrypt only */
     #define XSTRSTR(s1,s2)    strstr((s1),(s2))
+    #define XSTRNSTR(s1,s2,n) mystrnstr((s1),(s2),(n))
     #define XSTRNCMP(s1,s2,n) strncmp((s1),(s2),(n))
     #define XSTRNCAT(s1,s2,n) strncat((s1),(s2),(n))
 #endif
@@ -205,7 +208,11 @@ enum {
     DYNAMIC_TYPE_CRL        = 22,
     DYNAMIC_TYPE_REVOKED    = 23,
     DYNAMIC_TYPE_CRL_ENTRY  = 24,
-    DYNAMIC_TYPE_CERT_MANAGER = 25
+    DYNAMIC_TYPE_CERT_MANAGER = 25,
+    DYNAMIC_TYPE_CRL_MONITOR  = 26,
+    DYNAMIC_TYPE_OCSP_STATUS  = 27,
+    DYNAMIC_TYPE_OCSP_ENTRY   = 28,
+    DYNAMIC_TYPE_ALTNAME      = 29
 };
 
 /* stack protection */
index fd6781c196abce9b70aeeec6d85838939d4ced01..ed96361ec8597377f8fde173620244310f70e951 100644 (file)
@@ -92,14 +92,21 @@ enum CyaSSL_ErrorCodes {
     NOT_CA_ERROR           = -257,            /* Not a CA cert error */
     BAD_PATH_ERROR         = -258,            /* Bad path for opendir */
     BAD_CERT_MANAGER_ERROR = -259,            /* Bad Cert Manager */
-    OCSP_CERT_REVOKED      = -260,
+    OCSP_CERT_REVOKED      = -260,            /* OCSP Certificate revoked */
     CRL_CERT_REVOKED       = -261,            /* CRL Certificate revoked */
     CRL_MISSING            = -262,            /* CRL Not loaded */
+    MONITOR_RUNNING_E      = -263,            /* CRL Monitor already running */
+    THREAD_CREATE_E        = -264,            /* Thread Create Error */
+    OCSP_NEED_URL          = -265,            /* OCSP need an URL for lookup */
+    OCSP_CERT_UNKNOWN      = -266,            /* OCSP responder doesn't know */
+    OCSP_LOOKUP_FAIL       = -267,            /* OCSP lookup not successful */
+    MAX_CHAIN_ERROR        = -268,            /* max chain depth exceeded */
+    COOKIE_ERROR           = -269,            /* dtls cookie error */
     /* add strings to SetErrorString !!!!! */
 
     /* begin negotiation parameter errors */
-    UNSUPPORTED_SUITE      = -270,            /* unsupported cipher suite */
-    MATCH_SUITE_ERROR      = -271             /* can't match cipher suite */
+    UNSUPPORTED_SUITE      = -290,            /* unsupported cipher suite */
+    MATCH_SUITE_ERROR      = -291             /* can't match cipher suite */
     /* end negotiation parameter errors only 10 for now */
     /* add strings to SetErrorString !!!!! */
 };
index e63549bf37fd1a2d5d2ad5f07aed6462d6dfb404..372ca4a826c0a03c26dd6c8a8b215dcf061dbc6e 100644 (file)
@@ -44,6 +44,9 @@
 #ifdef HAVE_OCSP
     #include <cyassl/ocsp.h>
 #endif
+#ifdef CYASSL_SHA512
+    #include <cyassl/ctaocrypt/sha512.h>
+#endif
 
 #ifdef CYASSL_CALLBACKS
     #include <cyassl/openssl/cyassl_callbacks.h>
             #include <winsock2.h>
         #endif
         #include <windows.h>
-        #if defined(FREERTOS_WINSIM) && !defined(SINGLE_THREADED)
-            #include "FreeRTOS.h"
-            #include "semphr.h"
-        #endif
     #endif
 #elif defined(THREADX)
     #ifndef SINGLE_THREADED
 #elif defined(MICRIUM)
     /* do nothing, just don't pick Unix */
 #elif defined(FREERTOS)
-    #ifndef SINGLE_THREADED
-               #include "FreeRTOS.h"
-               #include "semphr.h"
-    #endif
+    /* do nothing */
 #else
     #ifndef SINGLE_THREADED
         #define CYASSL_PTHREADS
@@ -156,6 +152,10 @@ void c32to24(word32 in, word24 out);
         #define BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256
         #define BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256
     #endif
+    #if defined (HAVE_AESGCM)
+        #define BUILD_TLS_RSA_WITH_AES_128_GCM_SHA256
+        #define BUILD_TLS_RSA_WITH_AES_256_GCM_SHA384
+    #endif
 #endif
 
 #if !defined(NO_HC128) && !defined(NO_TLS)
@@ -173,6 +173,10 @@ void c32to24(word32 in, word24 out);
     #if !defined (NO_SHA256)
         #define BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
         #define BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
+        #if defined (HAVE_AESGCM)
+            #define BUILD_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
+            #define BUILD_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
+        #endif
     #endif
 #endif
 
@@ -187,6 +191,18 @@ void c32to24(word32 in, word24 out);
         #define BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
         #define BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
         #define BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
+
+        #if defined (HAVE_AESGCM)
+            #define BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+            #define BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+            #define BUILD_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
+            #define BUILD_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
+
+            #define BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+            #define BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+            #define BUILD_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
+            #define BUILD_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
+        #endif
     #endif
     #if !defined(NO_RC4)
         #define BUILD_TLS_ECDHE_RSA_WITH_RC4_128_SHA
@@ -219,6 +235,10 @@ void c32to24(word32 in, word24 out);
     #define BUILD_AES
 #endif
 
+#if defined(BUILD_TLS_RSA_WITH_AES_128_GCM_SHA256)
+    #define BUILD_AESGCM
+#endif
+
 #if defined(BUILD_TLS_RSA_WITH_HC_128_CBC_SHA) || \
     defined(BUILD_TLS_RSA_WITH_HC_128_CBC_MD5)
     #define BUILD_HC128
@@ -284,7 +304,23 @@ enum {
     TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x6b,
     TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x67,
     TLS_RSA_WITH_AES_256_CBC_SHA256     = 0x3d,
-    TLS_RSA_WITH_AES_128_CBC_SHA256     = 0x3c
+    TLS_RSA_WITH_AES_128_CBC_SHA256     = 0x3c,
+
+    /* AES-GCM */
+    TLS_RSA_WITH_AES_128_GCM_SHA256          = 0x9c,
+    TLS_RSA_WITH_AES_256_GCM_SHA384          = 0x9d,
+    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256      = 0x9e,
+    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384      = 0x9f,
+
+    /* ECC AES-GCM, first byte is 0xC0 (ECC_BYTE) */
+    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256  = 0x2b,
+    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384  = 0x2c,
+    TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256   = 0x2d,
+    TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384   = 0x2e,
+    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256    = 0x2f,
+    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384    = 0x30,
+    TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256     = 0x31,
+    TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384     = 0x32
 };
 
 
@@ -306,12 +342,15 @@ enum Misc {
     TLSv1_2_MINOR   = 3,        /* TLSv1_2 minor version number */
     NO_COMPRESSION  =  0,
     ZLIB_COMPRESSION = 221,     /* CyaSSL zlib compression */
+    HELLO_EXT_SIG_ALGO = 13,    /* ID for the sig_algo hello extension */
     SECRET_LEN      = 48,       /* pre RSA and all master */
     ENCRYPT_LEN     = 512,      /* allow 4096 bit static buffer */
     SIZEOF_SENDER   =  4,       /* clnt or srvr           */
     FINISHED_SZ     = MD5_DIGEST_SIZE + SHA_DIGEST_SIZE,
     MAX_RECORD_SIZE = 16384,    /* 2^14, max size by standard */
-    MAX_MSG_EXTRA   = 68,       /* max added to msg, mac + pad */
+    MAX_MSG_EXTRA   = 70,       /* max added to msg, mac + pad  from */
+                                /* RECORD_HEADER_SZ + BLOCK_SZ (pad) + SHA_256
+                                   digest sz + BLOC_SZ (iv) + pad byte (1) */
     MAX_COMP_EXTRA  = 1024,     /* max compression extra */
     MAX_MTU         = 1500,     /* max expected MTU */
     MAX_UDP_SIZE    = MAX_MTU - 100,   /* don't exceed MTU w/ 100 byte header */
@@ -335,6 +374,7 @@ enum Misc {
     SEED_LEN     = RAN_LEN * 2, /* tls prf seed length    */
     ID_LEN       = 32,         /* session id length       */
     MAX_COOKIE_LEN = 32,       /* max dtls cookie size    */
+    COOKIE_SZ    = 20,         /* use a 20 byte cookie    */
     SUITE_LEN    =  2,         /* cipher suite sz length  */
     ENUM_LEN     =  1,         /* always a byte           */
     COMP_LEN     =  1,         /* compression length      */
@@ -345,6 +385,10 @@ enum Misc {
     CERT_HEADER_SZ      = 3,   /* always 3 bytes          */
     REQ_HEADER_SZ       = 2,   /* cert request header sz  */
     HINT_LEN_SZ         = 2,   /* length of hint size field */
+    HELLO_EXT_SZ        = 14,  /* total length of the lazy hello extensions */
+    HELLO_EXT_LEN       = 12,  /* length of the lazy hello extensions */
+    HELLO_EXT_SIGALGO_SZ  = 8, /* length of signature algo extension  */
+    HELLO_EXT_SIGALGO_LEN = 6, /* number of items in the signature algo list */
 
     DTLS_HANDSHAKE_HEADER_SZ = 12, /* normal + seq(2) + offset(3) + length(3) */
     DTLS_RECORD_HEADER_SZ    = 13, /* normal + epoch(2) + seq_num(6) */
@@ -368,8 +412,19 @@ enum Misc {
     AES_256_KEY_SIZE    = 32,  /* for 256 bit             */
     AES_192_KEY_SIZE    = 24,  /* for 192 bit             */
     AES_IV_SIZE         = 16,  /* always block size       */
+    AES_GCM_IMP_IV_SZ   = 4,   /* Implicit part of IV     */
+    AES_GCM_EXP_IV_SZ   = 8,   /* Explicit part of IV     */
+    AES_GCM_CTR_IV_SZ   = 4,   /* Counter part of IV      */
     AES_128_KEY_SIZE    = 16,  /* for 128 bit             */
 
+    AEAD_SEQ_OFFSET     = 4,        /* Auth Data: Sequence number */
+    AEAD_TYPE_OFFSET    = 8,        /* Auth Data: Type            */
+    AEAD_VMAJ_OFFSET    = 9,        /* Auth Data: Major Version   */
+    AEAD_VMIN_OFFSET    = 10,       /* Auth Data: Minor Version   */
+    AEAD_LEN_OFFSET     = 11,       /* Auth Data: Length          */
+    AEAD_AUTH_TAG_SZ    = 16,       /* Size of the authentication tag   */
+    AEAD_AUTH_DATA_SZ   = 13,       /* Size of the data to authenticate */
+
     HC_128_KEY_SIZE     = 16,  /* 128 bits                */
     HC_128_IV_SIZE      = 16,  /* also 128 bits           */
 
@@ -394,7 +449,7 @@ enum Misc {
     MAX_EX_DATA        =   3,  /* allow for three items of ex_data */
     MAX_CHAIN_DEPTH    =   9,  /* max cert chain peer depth, FORTRESS option */
 #else
-    MAX_CHAIN_DEPTH    =   4,  /* max cert chain peer depth */
+    MAX_CHAIN_DEPTH    =   6,  /* max cert chain peer depth */
 #endif
     MAX_X509_SIZE      = 2048, /* max static x509 buffer size */
     CERT_MIN_SIZE      =  256, /* min PEM cert size with header/footer */
@@ -484,9 +539,6 @@ struct CYASSL_BIO {
 struct CYASSL_METHOD {
     ProtocolVersion version;
     byte            side;         /* connection side, server or client */
-    byte            verifyPeer;   /* request or send certificate       */
-    byte            verifyNone;   /* whether to verify certificate     */
-    byte            failNoCert;   /* fail if no certificate            */
     byte            downgrade;    /* whether to downgrade version, default no */
 };
 
@@ -520,9 +572,9 @@ enum {
     #define COMP_EXTRA 0
 #endif
 
-/* only the sniffer needs space in the buffer for an extra MTU record */
+/* only the sniffer needs space in the buffer for extra MTU record(s) */
 #ifdef CYASSL_SNIFFER
-    #define MTU_EXTRA MAX_MTU
+    #define MTU_EXTRA MAX_MTU * 3 
 #else
     #define MTU_EXTRA 0
 #endif
@@ -599,6 +651,8 @@ int  SetCipherList(Suites*, const char* list);
 #endif
 
 #ifdef CYASSL_DTLS
+    CYASSL_LOCAL
+    int EmbedGenerateCookie(byte *buf, int sz, void *ctx);
     CYASSL_LOCAL
     int IsUDP(void*);
 #endif
@@ -613,7 +667,7 @@ struct CYASSL_CIPHER {
 #ifdef SINGLE_THREADED
     typedef int CyaSSL_Mutex;
 #else /* MULTI_THREADED */
-    /* Comes first to enable use of FreeRTOS Windows simulator only. */
+    /* FREERTOS comes first to enable use of FreeRTOS Windows simulator only */
     #ifdef FREERTOS
         typedef xSemaphoreHandle CyaSSL_Mutex;
     #elif defined(USE_WINDOWS_API)
@@ -636,6 +690,28 @@ CYASSL_LOCAL int UnLockMutex(CyaSSL_Mutex*);
 
 
 
+typedef struct OCSP_Entry OCSP_Entry;
+
+struct OCSP_Entry {
+    OCSP_Entry* next;                       /* next entry             */
+    byte    issuerHash[SHA_DIGEST_SIZE];    /* issuer hash            */ 
+    byte    issuerKeyHash[SHA_DIGEST_SIZE]; /* issuer public key hash */
+    CertStatus* status;                     /* OCSP response list     */
+    int         totalStatus;                /* number on list         */
+};
+
+
+/* CyaSSL OCSP controller */
+struct CYASSL_OCSP {
+    byte enabled;
+    byte useOverrideUrl;
+    char overrideName[80];
+    char overridePath[80];
+    int  overridePort;
+    OCSP_Entry* ocspList;
+};
+
+
 typedef struct CRL_Entry CRL_Entry;
 
 /* Complete CRL */
@@ -645,16 +721,31 @@ struct CRL_Entry {
     byte    crlHash[MD5_DIGEST_SIZE];     /* raw crl data hash           */ 
     byte    lastDate[MAX_DATE_SIZE]; /* last date updated  */
     byte    nextDate[MAX_DATE_SIZE]; /* next update date   */
+    byte    lastDateFormat;          /* last date format */
+    byte    nextDateFormat;          /* next date format */
     RevokedCert* certs;              /* revoked cert list  */
     int          totalCerts;         /* number on list     */
 };
 
 
+typedef struct CRL_Monitor CRL_Monitor;
+
+/* CRL directory monitor */
+struct CRL_Monitor {
+    char* path;      /* full dir path, if valid pointer we're using */
+    int   type;      /* PEM or ASN1 type */
+};
+
+
 /* CyaSSL CRL controller */
 struct CYASSL_CRL {
     CYASSL_CERT_MANAGER* cm;            /* pointer back to cert manager */
     CRL_Entry*           crlList;       /* our CRL list */
     CyaSSL_Mutex         crlLock;       /* CRL list lock */
+    CRL_Monitor          monitors[2];   /* PEM and DER possible */
+#ifdef HAVE_CRL_MONITOR
+    pthread_t            tid;           /* monitoring thread */
+#endif
 };
 
 
@@ -693,7 +784,7 @@ struct CYASSL_CTX {
     byte        sendVerify;       /* for client side */
     byte        haveDH;           /* server DH parms set by user */
     byte        haveNTRU;         /* server private NTRU  key loaded */
-    byte        haveECDSA;        /* server cert signed w/ ECDSA loaded */
+    byte        haveECDSAsig;     /* server cert signed w/ ECDSA */
     byte        haveStaticECC;    /* static server ECC private key */
     byte        partialWrite;     /* only one msg per write call */
     byte        quietShutdown;    /* don't send close notify */
@@ -741,7 +832,7 @@ int AlreadySigner(CYASSL_CERT_MANAGER* cm, byte* hash);
 /* All cipher suite related info */
 typedef struct CipherSpecs {
     byte bulk_cipher_algorithm;
-    byte cipher_type;               /* block or stream */
+    byte cipher_type;               /* block, stream, or aead */
     byte mac_algorithm;
     byte kea;                       /* key exchange algo */
     byte sig_algo;
@@ -765,6 +856,7 @@ enum BulkCipherAlgorithm {
     des40,
     idea,
     aes,
+    aes_gcm,
     hc128,                  /* CyaSSL extensions */
     rabbit
 };
@@ -772,7 +864,7 @@ enum BulkCipherAlgorithm {
 
 /* Supported Message Authentication Codes from page 43 */
 enum MACAlgorithm { 
-    no_mac = 0,
+    no_mac,
     md5_mac,
     sha_mac,
     sha224_mac,
@@ -785,19 +877,20 @@ enum MACAlgorithm {
 
 /* Supported Key Exchange Protocols */
 enum KeyExchangeAlgorithm { 
-    no_kea = 0,
+    no_kea,
     rsa_kea, 
     diffie_hellman_kea, 
     fortezza_kea,
     psk_kea,
     ntru_kea,
-    ecc_diffie_hellman_kea
+    ecc_diffie_hellman_kea,
+    ecc_static_diffie_hellman_kea       /* for verify suite only */
 };
 
 
 /* Supported Authentication Schemes */
 enum SignatureAlgorithm {
-    anonymous_sa_algo = 0,
+    anonymous_sa_algo,
     rsa_sa_algo,
     dsa_sa_algo,
     ecc_dsa_sa_algo
@@ -834,7 +927,7 @@ enum ClientCertificateType {
 };
 
 
-enum CipherType { stream, block };
+enum CipherType { stream, block, aead };
 
 
 /* keys and secrets */
@@ -1011,7 +1104,7 @@ typedef struct Options {
     byte            usingCompression;   /* are we using compression */
     byte            haveDH;             /* server DH parms set by user */
     byte            haveNTRU;           /* server NTRU  private key loaded */
-    byte            haveECDSA;          /* server ECDSA signed cert */
+    byte            haveECDSAsig;       /* server ECDSA signed cert */
     byte            haveStaticECC;      /* static server ECC private key */
     byte            havePeerCert;       /* do we have peer's cert */
     byte            usingPSK_cipher;    /* whether we're using psk as cipher */
@@ -1037,6 +1130,7 @@ typedef struct Arrays {
     byte            masterSecret[SECRET_LEN];
 #ifdef CYASSL_DTLS
     byte            cookie[MAX_COOKIE_LEN];
+    byte            cookieSz;
 #endif
 #ifndef NO_PSK
     char            client_identity[MAX_PSK_ID_LEN];
@@ -1061,6 +1155,8 @@ struct CYASSL_X509 {
     byte             serial[EXTERNAL_SERIAL_SIZE];
     char             subjectCN[ASN_NAME_MAX];        /* common name short cut */
     buffer           derCert;                        /* may need  */
+    DNS_entry*       altNames;                       /* alt names list */
+    DNS_entry*       altNamesNext;                   /* hint for retrieval */
 };
 
 
@@ -1104,6 +1200,9 @@ struct CYASSL {
     Sha             hashSha;            /* sha hash of handshake msgs */
 #ifndef NO_SHA256
     Sha256          hashSha256;         /* sha256 hash of handshake msgs */
+#endif
+#ifdef CYASSL_SHA384
+    Sha384          hashSha384;         /* sha384 hash of handshake msgs */
 #endif
     Hashes          verifyHashes;
     Hashes          certHashes;         /* for cert verify */
@@ -1241,6 +1340,7 @@ enum HandShakeType {
     client_hello        = 1, 
     server_hello        = 2,
     hello_verify_request = 3,       /* DTLS addition */
+    session_ticket      =  4,
     certificate         = 11, 
     server_key_exchange = 12,
     certificate_request = 13, 
index ee8af1534c79c021f564912ad8989aca423da19a..2cfd46e259d61be927c1df71094d66ff23db4cf2 100644 (file)
 #define CYASSL_OCSP_H
 
 
+#include <cyassl/ssl.h>
 #include <cyassl/ctaocrypt/asn.h>
 
-
 #ifdef __cplusplus
     extern "C" {
 #endif
 
 typedef struct CYASSL_OCSP CYASSL_OCSP;
-typedef struct CertStatus CertStatus;
-
-struct CertStatus {
-    byte issuerHash[SHA_SIZE];
-    byte issuerKeyHash[SHA_SIZE];
-    byte serial[EXTERNAL_SERIAL_SIZE];
-    int serialSz;
-    int status;
-};
-
-struct CYASSL_OCSP {
-    byte enabled;
-    byte useOverrideUrl;
-    char overrideName[80];
-    char overridePath[80];
-    int  overridePort;
-    int statusLen;
-    CertStatus status[1];
-};
-
-
 
 CYASSL_LOCAL int  CyaSSL_OCSP_Init(CYASSL_OCSP*);
 CYASSL_LOCAL void CyaSSL_OCSP_Cleanup(CYASSL_OCSP*);
+
 CYASSL_LOCAL int  CyaSSL_OCSP_set_override_url(CYASSL_OCSP*, const char*);
 CYASSL_LOCAL int  CyaSSL_OCSP_Lookup_Cert(CYASSL_OCSP*, DecodedCert*);
 
index 2440b0d586e92e1405445731e8944d776a7a4a5a..f268b6a37a683bff3436b70584e79f2ec8382600 100644 (file)
@@ -37,8 +37,6 @@
 #ifdef _WIN32
     /* wincrypt.h clashes */
     #undef X509_NAME
-    #undef OCSP_REQUEST 
-    #undef OCSP_RESPONSE
 #endif
 
 
index ecd2e77a2d3aa027d2d3835fba9a2fb169e6ce0b..4882c7dd839e611425a94a7a12dd6f4ca6b6ce52 100644 (file)
 #define OUT_OF_ORDER_STR 57
 #define OVERLAP_DUPLICATE_STR 58
 #define OVERLAP_REASSEMBLY_BEGIN_STR 59
-
 #define OVERLAP_REASSEMBLY_END_STR 60
+
 #define MISSED_CLIENT_HELLO_STR 61
+#define GOT_HELLO_REQUEST_STR 62
+#define GOT_SESSION_TICKET_STR 63
+#define BAD_INPUT_STR 64
+#define BAD_DECRYPT_TYPE 65
+#define BAD_FINISHED_MSG 66
+#define BAD_COMPRESSION_STR 67
 
 /* !!!! also add to msgTable in sniffer.c and .rc file !!!! */
 
index 89b12e2e9af6aa875dbd2ab5a533eb1c6afe64dd..f4af8ee5b987da26bb88fe2303fa51a96c7789ff 100644 (file)
@@ -74,5 +74,12 @@ STRINGTABLE
     60, "Received an Overlap Reassembly End Duplicate Packet"
     
     61, "Missed the Client Hello Entirely"
+    62, "Got Hello Request msg"
+    63, "Got Session Ticket msg"
+    64, "Bad Input"
+    65, "Bad Decrypt Type"
+
+    66, "Bad Finished Message Processing"
+    67, "Bad Compression Type"
 }
 
index 88f4838eab9c350c2b2e2e93378d1fb1139cc27f..b861813808d94b7c95371addce62112f742f95df 100644 (file)
     #define CYASSL_VERSION LIBCYASSL_VERSION_STRING
 #endif
 
+#ifdef _WIN32
+    /* wincrypt.h clashes */
+    #undef OCSP_REQUEST
+    #undef OCSP_RESPONSE
+#endif
+
 
 
 #ifdef __cplusplus
@@ -686,6 +692,8 @@ CYASSL_API const unsigned char* CyaSSL_X509_get_der(CYASSL_X509*, int*);
 
 CYASSL_API int CyaSSL_cmp_peer_cert_to_file(CYASSL*, const char*);
 
+CYASSL_API char* CyaSSL_X509_get_next_altname(CYASSL_X509*);
+
 /* connect enough to get peer cert */
 CYASSL_API int  CyaSSL_connect_cert(CYASSL* ssl);
 
@@ -763,10 +771,15 @@ CYASSL_API void CyaSSL_SetIOWriteCtx(CYASSL* ssl, void *ctx);
 
 /* CA cache callbacks */
 enum {
+    CYASSL_SSLV3    = 0,
+    CYASSL_TLSV1    = 1,
+    CYASSL_TLSV1_1  = 2,
+    CYASSL_TLSV1_2  = 3,
     CYASSL_USER_CA  = 1,          /* user added as trusted */
     CYASSL_CHAIN_CA = 2           /* added to cache from trusted chain */
 };
 
+CYASSL_API int CyaSSL_SetVersion(CYASSL* ssl, int version);
 CYASSL_API int CyaSSL_KeyPemToDer(const unsigned char*, int sz, unsigned char*,
                                   int, const char*);
 
@@ -783,6 +796,8 @@ CYASSL_API int CyaSSL_CertManagerLoadCA(CYASSL_CERT_MANAGER*, const char* f,
                                         const char* d);
 CYASSL_API int CyaSSL_CertManagerVerify(CYASSL_CERT_MANAGER*, const char* f,
                                         int format);
+CYASSL_API int CyaSSL_CertManagerVerifyBuffer(CYASSL_CERT_MANAGER* cm,
+                                 const unsigned char* buff, int sz, int format);
 CYASSL_API int CyaSSL_CertManagerCheckCRL(CYASSL_CERT_MANAGER*, unsigned char*,
                                           int sz);
 CYASSL_API int CyaSSL_CertManagerEnableCRL(CYASSL_CERT_MANAGER*, int options);
@@ -801,7 +816,8 @@ CYASSL_API int CyaSSL_CTX_DisableCRL(CYASSL_CTX* ctx);
 CYASSL_API int CyaSSL_CTX_LoadCRL(CYASSL_CTX*, const char*, int, int);
 CYASSL_API int CyaSSL_CTX_SetCRL_Cb(CYASSL_CTX*, CbMissingCRL);
 
-
+#define CYASSL_CRL_MONITOR   0x01   /* monitor this dir flag */
+#define CYASSL_CRL_START_MON 0x02   /* start monitoring flag */
 
 #ifdef CYASSL_CALLBACKS
 
index d68ad64b7a5d9d6b019173e8b5c1b37615a0bebb..82cee429e80620cccfe314da989eb91f519a3b39 100644 (file)
@@ -7,6 +7,7 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <ctype.h>
+#include <cyassl/ssl.h>
 #include <cyassl/ctaocrypt/types.h>
 
 #ifdef USE_WINDOWS_API 
@@ -44,6 +45,7 @@
     #pragma warning(disable:4244 4996)
 #endif
 
+
 #if defined(__MACH__) || defined(USE_WINDOWS_API)
     #ifndef _SOCKLEN_T
         typedef int socklen_t;
 #endif
    
 
+#define SERVER_DEFAULT_VERSION 3
+#define CLIENT_DEFAULT_VERSION 3
+
 /* all certs relative to CyaSSL home directory now */
-static const char* caCert   = "./certs/ca-cert.pem";
-static const char* eccCert  = "./certs/server-ecc.pem";
-static const char* eccKey   = "./certs/ecc-key.pem";
-static const char* svrCert  = "./certs/server-cert.pem";
-static const char* svrKey   = "./certs/server-key.pem";
-static const char* cliCert  = "./certs/client-cert.pem";
-static const char* cliKey   = "./certs/client-key.pem";
-static const char* ntruCert = "./certs/ntru-cert.pem";
-static const char* ntruKey  = "./certs/ntru-key.raw";
-static const char* dhParam  = "./certs/dh2048.pem";
-static const char* cliEccKey  = "./certs/ecc-client-key.pem";
-static const char* cliEccCert = "./certs/client-ecc-cert.pem";
-static const char* crlPemDir  = "./certs/crl";
+#define caCert     "./certs/ca-cert.pem"
+#define eccCert    "./certs/server-ecc.pem"
+#define eccKey     "./certs/ecc-key.pem"
+#define svrCert    "./certs/server-cert.pem"
+#define svrKey     "./certs/server-key.pem"
+#define cliCert    "./certs/client-cert.pem"
+#define cliKey     "./certs/client-key.pem"
+#define ntruCert   "./certs/ntru-cert.pem"
+#define ntruKey    "./certs/ntru-key.raw"
+#define dhParam    "./certs/dh2048.pem"
+#define cliEccKey  "./certs/ecc-client-key.pem"
+#define cliEccCert "./certs/client-ecc-cert.pem"
+#define crlPemDir  "./certs/crl"
 
 typedef struct tcp_ready {
     int ready;              /* predicate */
@@ -131,6 +136,7 @@ typedef struct func_args {
     tcp_ready* signal;
 } func_args;
 
+void wait_tcp_ready(func_args*);
 
 typedef THREAD_RETURN CYASSL_THREAD THREAD_FUNC(void*);
 
@@ -149,9 +155,77 @@ static INLINE void err_sys(const char* msg)
 }
 
 
+#define MY_EX_USAGE 2
+
+extern int   myoptind;
+extern char* myoptarg;
+
+static INLINE int mygetopt(int argc, char** argv, char* optstring)
+{
+    static char* next = NULL;
+
+    char  c;
+    char* cp;
+
+    if (myoptind == 0)
+        next = NULL;   /* we're starting new/over */
+
+    if (next == NULL || *next == '\0') {
+        if (myoptind == 0)
+            myoptind++;
+
+        if (myoptind >= argc || argv[myoptind][0] != '-' ||
+                                argv[myoptind][1] == '\0') {
+            myoptarg = NULL;
+            if (myoptind < argc)
+                myoptarg = argv[myoptind];
+
+            return -1;
+        }
+
+        if (strcmp(argv[myoptind], "--") == 0) {
+            myoptind++;
+            myoptarg = NULL;
+
+            if (myoptind < argc)
+                myoptarg = argv[myoptind];
+
+            return -1;
+        }
+
+        next = argv[myoptind];
+        next++;                  /* skip - */
+        myoptind++;
+    }
+
+    c  = *next++;
+    cp = strchr(optstring, c);
+
+    if (cp == NULL || c == ':') 
+        return '?';
+
+    cp++;
+
+    if (*cp == ':') {
+        if (*next != '\0') {
+            myoptarg = next;
+            next     = NULL;
+        }
+        else if (myoptind < argc) {
+            myoptarg = argv[myoptind];
+            myoptind++;
+        }
+        else 
+            return '?';
+    }
+
+    return c;
+}
+
+
 #ifdef OPENSSL_EXTRA
 
-static int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
+static INLINE int PasswordCallBack(char* passwd, int sz, int rw, void* userdata)
 {
     strncpy(passwd, "yassl123", sz);
     return 8;
@@ -167,6 +241,7 @@ static INLINE void showPeer(CYASSL* ssl)
     CYASSL_CIPHER* cipher;
     CYASSL_X509*   peer = CyaSSL_get_peer_certificate(ssl);
     if (peer) {
+        char* altName;
         char* issuer  = CyaSSL_X509_NAME_oneline(
                                        CyaSSL_X509_get_issuer_name(peer), 0, 0);
         char* subject = CyaSSL_X509_NAME_oneline(
@@ -177,6 +252,10 @@ static INLINE void showPeer(CYASSL* ssl)
         
         printf("peer's cert info:\n issuer : %s\n subject: %s\n", issuer,
                                                                   subject);
+
+        while ( (altName = CyaSSL_X509_get_next_altname(peer)) )
+            printf(" altname = %s\n", altName);
+
         ret = CyaSSL_X509_get_serial_number(peer, serial, &sz);
         if (ret == 0) {
             int  i;
@@ -204,8 +283,8 @@ static INLINE void showPeer(CYASSL* ssl)
 
 #if defined(SESSION_CERTS) && defined(SHOW_CERTS)
     {
-        X509_CHAIN* chain = CyaSSL_get_peer_chain(ssl);
-        int         count = CyaSSL_get_chain_count(chain);
+        CYASSL_X509_CHAIN* chain = CyaSSL_get_peer_chain(ssl);
+        int                count = CyaSSL_get_chain_count(chain);
         int i;
 
         for (i = 0; i < count; i++) {
@@ -223,7 +302,7 @@ static INLINE void showPeer(CYASSL* ssl)
 
 
 static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
-                              const char* peer, word16 port)
+                              const char* peer, word16 port, int udp)
 {
 #ifndef TEST_IPV6
     const char* host = peer;
@@ -244,11 +323,10 @@ static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
     }
 #endif
 
-#ifdef CYASSL_DTLS
-    *sockfd = socket(AF_INET_V, SOCK_DGRAM, 0);
-#else
-    *sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
-#endif
+    if (udp)
+        *sockfd = socket(AF_INET_V, SOCK_DGRAM, 0);
+    else
+        *sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
     memset(addr, 0, sizeof(SOCKADDR_IN_T));
 
 #ifndef TEST_IPV6
@@ -275,7 +353,8 @@ static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
     }
 #endif
 
-#if defined(TCP_NODELAY) && !defined(CYASSL_DTLS)
+#if defined(TCP_NODELAY)
+    if (!udp)
     {
         int       on = 1;
         socklen_t len = sizeof(on);
@@ -288,27 +367,28 @@ static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
 }
 
 
-static INLINE void tcp_connect(SOCKET_T* sockfd, const char* ip, word16 port)
+static INLINE void tcp_connect(SOCKET_T* sockfd, const char* ip, word16 port,
+                               int udp)
 {
     SOCKADDR_IN_T addr;
-    tcp_socket(sockfd, &addr, ip, port);
+    tcp_socket(sockfd, &addr, ip, port, udp);
 
     if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
         err_sys("tcp connect failed");
 }
 
 
-static INLINE void tcp_listen(SOCKET_T* sockfd)
+static INLINE void tcp_listen(SOCKET_T* sockfd, int port, int useAnyAddr,
+                              int udp)
 {
     SOCKADDR_IN_T addr;
 
     /* don't use INADDR_ANY by default, firewall may block, make user switch
        on */
-#ifdef USE_ANY_ADDR
-    tcp_socket(sockfd, &addr, INADDR_ANY, yasslPort);
-#else
-    tcp_socket(sockfd, &addr, yasslIP, yasslPort);
-#endif
+    if (useAnyAddr)
+        tcp_socket(sockfd, &addr, INADDR_ANY, port, udp);
+    else
+        tcp_socket(sockfd, &addr, yasslIP, port, udp);
 
 #ifndef USE_WINDOWS_API 
     {
@@ -320,10 +400,10 @@ static INLINE void tcp_listen(SOCKET_T* sockfd)
 
     if (bind(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
         err_sys("tcp bind failed");
-#ifndef CYASSL_DTLS
-    if (listen(*sockfd, 5) != 0)
-        err_sys("tcp listen failed");
-#endif
+    if (!udp) {
+        if (listen(*sockfd, 5) != 0)
+            err_sys("tcp listen failed");
+    }
 }
 
 
@@ -351,7 +431,7 @@ static INLINE void udp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args)
 {
     SOCKADDR_IN_T addr;
 
-    tcp_socket(sockfd, &addr, yasslIP, yasslPort);
+    tcp_socket(sockfd, &addr, yasslIP, yasslPort, 1);
 
 
 #ifndef USE_WINDOWS_API 
@@ -379,17 +459,18 @@ static INLINE void udp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args)
     *clientfd = udp_read_connect(*sockfd);
 }
 
-static INLINE void tcp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args)
+static INLINE void tcp_accept(SOCKET_T* sockfd, int* clientfd, func_args* args,
+                              int port, int useAnyAddr, int udp)
 {
     SOCKADDR_IN_T client;
     socklen_t client_len = sizeof(client);
 
-    #ifdef CYASSL_DTLS
+    if (udp) {
         udp_accept(sockfd, clientfd, args);
         return;
-    #endif
+    }
 
-    tcp_listen(sockfd);
+    tcp_listen(sockfd, port, useAnyAddr, udp);
 
 #if defined(_POSIX_THREADS) && defined(NO_MAIN_DRIVER)
     /* signal ready to tcp_accept */
@@ -545,7 +626,7 @@ static INLINE unsigned int my_psk_server_cb(CYASSL* ssl, const char* identity,
 
 #ifdef VERIFY_CALLBACK
 
-static int myVerify(int preverify, CYASSL_X509_STORE_CTX* store)
+static INLINE int myVerify(int preverify, CYASSL_X509_STORE_CTX* store)
 {
     char buffer[80];
 
@@ -577,7 +658,7 @@ static int myVerify(int preverify, CYASSL_X509_STORE_CTX* store)
 
 #ifdef HAVE_CRL
 
-static void CRL_CallBack(char* url)
+static void INLINE CRL_CallBack(const char* url)
 {
     printf("CRL callback url = %s\n", url);
 }
index 83dbee1590128e926d3bcc6208f773ed3e264f19..eff5b718d7ff898c8b383cadcdfdc6db138c8d5d 100644 (file)
@@ -26,8 +26,8 @@
 extern "C" {
 #endif
 
-#define LIBCYASSL_VERSION_STRING "2.2.0"
-#define LIBCYASSL_VERSION_HEX 0x02002000
+#define LIBCYASSL_VERSION_STRING "2.3.0"
+#define LIBCYASSL_VERSION_HEX 0x02003000
 
 #ifdef __cplusplus
 }
index 7e5abcdb9d5b408974e9419f9a09be697f335172..9559810400af04b43fa7774de40f4a8fa0ea78d2 100644 (file)
@@ -38,7 +38,7 @@
 #endif
 
 #if defined(NON_BLOCKING) || defined(CYASSL_CALLBACKS)
-    void NonBlockingSSL_Connect(CyaSSL* ssl)
+    void NonBlockingSSL_Connect(CYASSL* ssl)
     {
 #ifndef CYASSL_CALLBACKS
         int ret = CyaSSL_connect(ssl);
 #endif
 
 
+static void Usage(void)
+{
+    printf("client "    LIBCYASSL_VERSION_STRING
+           " NOTE: All files relative to CyaSSL home dir\n");
+    printf("-?          Help, print this usage\n");
+    printf("-h <host>   Host to connect to, default %s\n", yasslIP);
+    printf("-p <num>    Port to connect on, default %d\n", yasslPort);
+    printf("-v <num>    SSL version [0-3], SSLv3(0) - TLS1.2(3)), default %d\n",
+                                 CLIENT_DEFAULT_VERSION);
+    printf("-l <str>    Cipher list\n");
+    printf("-c <file>   Certificate file,           default %s\n", cliCert);
+    printf("-k <file>   Key file,                   default %s\n", cliKey);
+    printf("-A <file>   Certificate Authority file, default %s\n", caCert);
+    printf("-b <num>    Benchmark <num> connections and print stats\n");
+    printf("-s          Use pre Shared keys\n");
+    printf("-d          Disable peer checks\n");
+    printf("-g          Send server HTTP GET\n");
+    printf("-u          Use UDP DTLS\n");
+    printf("-m          Match domain name in cert\n");
+}
+
+
 void client_test(void* args)
 {
     SOCKET_T sockfd = 0;
@@ -90,22 +112,149 @@ void client_test(void* args)
     int  input;
     int  msgSz = strlen(msg);
 
+    int   port   = yasslPort;
+    char* host   = (char*)yasslIP;
+    char* domain = "www.yassl.com";
+
+    int    ch;
+    int    version = CLIENT_DEFAULT_VERSION;
+    int    usePsk   = 0;
+    int    sendGET  = 0;
+    int    benchmark = 0;
+    int    doDTLS    = 0;
+    int    matchName = 0;
+    int    doPeerCheck = 1;
+    char*  cipherList = NULL;
+    char*  verifyCert = (char*)caCert;
+    char*  ourCert    = (char*)cliCert;
+    char*  ourKey     = (char*)cliKey;
+
     int     argc = ((func_args*)args)->argc;
     char**  argv = ((func_args*)args)->argv;
 
     ((func_args*)args)->return_code = -1; /* error state */
 
-#if defined(CYASSL_DTLS)
-    method  = CyaDTLSv1_client_method();
-#elif  !defined(NO_TLS)
-    method  = CyaSSLv23_client_method();
-#else
-    method  = CyaSSLv3_client_method();
+    while ((ch = mygetopt(argc, argv, "?gdusmh:p:v:l:A:c:k:b:")) != -1) {
+        switch (ch) {
+            case '?' :
+                Usage();
+                exit(EXIT_SUCCESS);
+
+            case 'g' :
+                sendGET = 1;
+                break;
+
+            case 'd' :
+                doPeerCheck = 0;
+                break;
+
+            case 'u' :
+                doDTLS  = 1;
+                version = -1;  /* DTLS flag */
+                break;
+
+            case 's' :
+                usePsk = 1;
+                break;
+
+            case 'm' :
+                matchName = 1;
+                break;
+
+            case 'h' :
+                host   = myoptarg;
+                domain = myoptarg;
+                break;
+
+            case 'p' :
+                port = atoi(myoptarg);
+                break;
+
+            case 'v' :
+                version = atoi(myoptarg);
+                if (version < 0 || version > 3) {
+                    Usage();
+                    exit(MY_EX_USAGE);
+                }
+                if (doDTLS)
+                    version = -1;   /* DTLS flag */
+                break;
+
+            case 'l' :
+                cipherList = myoptarg;
+                break;
+
+            case 'A' :
+                verifyCert = myoptarg;
+                break;
+
+            case 'c' :
+                ourCert = myoptarg;
+                break;
+
+            case 'k' :
+                ourKey = myoptarg;
+                break;
+
+            case 'b' :
+                benchmark = atoi(myoptarg);
+                if (benchmark < 0 || benchmark > 1000000) {
+                    Usage();
+                    exit(MY_EX_USAGE);
+                }
+                break;
+
+            default:
+                Usage();
+                exit(MY_EX_USAGE);
+        }
+    }
+
+    argc -= myoptind;
+    argv += myoptind;
+    myoptind = 0;      /* reset for test cases */
+
+    switch (version) {
+        case 0:
+            method = CyaSSLv3_client_method();
+            break;
+
+        case 1:
+            method = CyaTLSv1_client_method();
+            break;
+
+        case 2:
+            method = CyaTLSv1_1_client_method();
+            break;
+
+        case 3:
+            method = CyaTLSv1_2_client_method();
+            break;
+
+#ifdef CYASSL_DTLS
+        case -1:
+            method = CyaDTLSv1_client_method();
+            break;
 #endif
-    ctx     = CyaSSL_CTX_new(method);
+
+        default:
+            err_sys("Bad SSL version");
+    }
+
+    if (method == NULL)
+        err_sys("unable to get method");
+
+    ctx = CyaSSL_CTX_new(method);
+    if (ctx == NULL)
+        err_sys("unable to get ctx");
+
+    if (cipherList)
+        if (CyaSSL_CTX_set_cipher_list(ctx, cipherList) != SSL_SUCCESS)
+            err_sys("can't set cipher list");
 
 #ifndef NO_PSK
-    CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
+    if (usePsk)
+        CyaSSL_CTX_set_psk_client_callback(ctx, my_psk_client_cb);
 #endif
 
 #ifdef OPENSSL_EXTRA
@@ -114,76 +263,44 @@ void client_test(void* args)
 
 #if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
     /* don't use EDH, can't sniff tmp keys */
-    CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA");
+    if (cipherList == NULL)
+        if (CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA") != SSL_SUCCESS)
+            err_sys("can't set cipher list");
 #endif
 
 #ifdef USER_CA_CB
     CyaSSL_CTX_SetCACb(ctx, CaCb);
 #endif
 
-#ifndef NO_FILESYSTEM
-    if (CyaSSL_CTX_load_verify_locations(ctx, caCert, 0) != SSL_SUCCESS)
-        err_sys("can't load ca file, Please run from CyaSSL home dir");
-    #ifdef HAVE_ECC
-        if (CyaSSL_CTX_load_verify_locations(ctx, eccCert, 0) != SSL_SUCCESS)
-            err_sys("can't load ca file, Please run from CyaSSL home dir");
-    #endif
-#else
-    load_buffer(ctx, caCert, CYASSL_CA);
-#endif
-
 #ifdef VERIFY_CALLBACK
     CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_PEER, myVerify);
 #endif
 
+    if (CyaSSL_CTX_use_certificate_file(ctx, ourCert, SSL_FILETYPE_PEM)
+                                     != SSL_SUCCESS)
+        err_sys("can't load client cert file, check file and run from"
+                " CyaSSL home dir");
 
-    if (argc == 3) {
-        /*  ./client server securePort  */
-        CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);  /* TODO: add ca cert */
-                    /* this is just to allow easy testing of other servers */
-        tcp_connect(&sockfd, argv[1], (short)atoi(argv[2]));
-    }
-    else if (argc == 1) {
-        /* ./client          // plain mode */
-        /* for client cert authentication if server requests */
-#ifndef NO_FILESYSTEM
-    #ifdef HAVE_ECC
-        if (CyaSSL_CTX_use_certificate_file(ctx, cliEccCert, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load ecc client cert file, "
-                    "Please run from CyaSSL home dir");
-
-        if (CyaSSL_CTX_use_PrivateKey_file(ctx, cliEccKey, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load ecc client key file, "
-                    "Please run from CyaSSL home dir");
-    #else
-        if (CyaSSL_CTX_use_certificate_file(ctx, cliCert, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load client cert file, "
-                    "Please run from CyaSSL home dir");
-
-        if (CyaSSL_CTX_use_PrivateKey_file(ctx, cliKey, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load client key file, "
-                    "Please run from CyaSSL home dir");
-    #endif /* HAVE_ECC */
-#else
-        load_buffer(ctx, cliCert, CYASSL_CERT);
-        load_buffer(ctx, cliKey, CYASSL_KEY);
-#endif
+    if (CyaSSL_CTX_use_PrivateKey_file(ctx, ourKey, SSL_FILETYPE_PEM)
+                                     != SSL_SUCCESS)
+        err_sys("can't load client cert file, check file and run from"
+                " CyaSSL home dir");    
 
-        tcp_connect(&sockfd, yasslIP, yasslPort);
-    }
-    else if (argc == 2) {
+    if (CyaSSL_CTX_load_verify_locations(ctx, verifyCert, 0) != SSL_SUCCESS)
+            err_sys("can't load ca file, Please run from CyaSSL home dir");
+
+    if (doPeerCheck == 0)
+        CyaSSL_CTX_set_verify(ctx, SSL_VERIFY_NONE, 0);
+
+    if (benchmark) {
         /* time passed in number of connects give average */
-        int times = atoi(argv[1]);
+        int times = benchmark;
         int i = 0;
 
         double start = current_time(), avg;
 
         for (i = 0; i < times; i++) {
-            tcp_connect(&sockfd, yasslIP, yasslPort);
+            tcp_connect(&sockfd, host, port, doDTLS);
             ssl = CyaSSL_new(ctx);
             CyaSSL_set_fd(ssl, sockfd);
             if (CyaSSL_connect(ssl) != SSL_SUCCESS)
@@ -195,25 +312,30 @@ void client_test(void* args)
         }
         avg = current_time() - start;
         avg /= times;
-        avg *= 1000;    /* milliseconds */  
-        printf("SSL_connect avg took:%6.3f milliseconds\n", avg);
+        avg *= 1000;   /* milliseconds */
+        printf("CyaSSL_connect avg took: %8.3f milliseconds\n", avg);
 
         CyaSSL_CTX_free(ctx);
         ((func_args*)args)->return_code = 0;
-        return;
+
+        exit(EXIT_SUCCESS);
     }
-    else
-        err_sys("usage: ./client server securePort");
 
+    tcp_connect(&sockfd, host, port, doDTLS);
     ssl = CyaSSL_new(ctx);
+    if (ssl == NULL)
+        err_sys("unable to get SSL object");
     CyaSSL_set_fd(ssl, sockfd);
 #ifdef HAVE_CRL
-    CyaSSL_EnableCRL(ssl, 0);
-    CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, 0);
-    CyaSSL_SetCRL_Cb(ssl, CRL_CallBack);
+    if (CyaSSL_EnableCRL(ssl, CYASSL_CRL_CHECKALL) != SSL_SUCCESS)
+        err_sys("can't enable crl check");
+    if (CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, 0) != SSL_SUCCESS)
+        err_sys("can't load crl, check crlfile and date validity");
+    if (CyaSSL_SetCRL_Cb(ssl, CRL_CallBack) != SSL_SUCCESS)
+        err_sys("can't set crl callback");
 #endif
-    if (argc != 3)
-        CyaSSL_check_domain_name(ssl, "www.yassl.com");
+    if (matchName && doPeerCheck)
+        CyaSSL_check_domain_name(ssl, domain);
 #ifdef NON_BLOCKING
     tcp_set_nonblocking(&sockfd);
     NonBlockingSSL_Connect(ssl);
@@ -233,7 +355,7 @@ void client_test(void* args)
 #endif
     showPeer(ssl);
     
-    if (argc == 3) {
+    if (sendGET) {
         printf("SSL connect ok, sending GET...\n");
         msgSz = 28;
         strncpy(msg, "GET /index.html HTTP/1.0\r\n\r\n", msgSz);
@@ -246,7 +368,7 @@ void client_test(void* args)
         reply[input] = 0;
         printf("Server response: %s\n", reply);
 
-        if (argc == 3) {  /* get html */
+        if (sendGET) {  /* get html */
             while (1) {
                 input = CyaSSL_read(ssl, reply, sizeof(reply));
                 if (input > 0) {
@@ -260,12 +382,12 @@ void client_test(void* args)
     }
   
 #ifdef TEST_RESUME
-    #ifdef CYASSL_DTLS
+    if (doDTLS) {
         strncpy(msg, "break", 6);
         msgSz = (int)strlen(msg);
         /* try to send session close */
         CyaSSL_write(ssl, msg, msgSz);
-    #endif
+    }
     session   = CyaSSL_get_session(ssl);
     sslResume = CyaSSL_new(ctx);
 #endif
@@ -275,17 +397,14 @@ void client_test(void* args)
     CloseSocket(sockfd);
 
 #ifdef TEST_RESUME
-    #ifdef CYASSL_DTLS
+    if (doDTLS) {
         #ifdef USE_WINDOWS_API 
             Sleep(500);
         #else
             sleep(1);
         #endif
-    #endif
-    if (argc == 3)
-        tcp_connect(&sockfd, argv[1], (short)atoi(argv[2]));
-    else
-        tcp_connect(&sockfd, yasslIP, yasslPort);
+    }
+    tcp_connect(&sockfd, host, port);
     CyaSSL_set_fd(sslResume, sockfd);
     CyaSSL_set_session(sslResume, session);
    
@@ -347,6 +466,9 @@ void client_test(void* args)
         return args.return_code;
     }
 
+    int myoptind = 0;
+    char* myoptarg = NULL;
+
 #endif /* NO_MAIN_DRIVER */
 
 
index a800555ecfb8a82f5ba7975b0ea6c5a0b3ab77d3..d93ca3fe26077534523a3a7668f7bbf6f6e15f1f 100644 (file)
@@ -44,6 +44,7 @@ void echoclient_test(void* args)
     SSL_CTX*    ctx    = 0;
     SSL*        ssl    = 0;
 
+    int doDTLS = 0;
     int sendSz;
     int argc    = 0;
     char** argv = 0;
@@ -64,12 +65,16 @@ void echoclient_test(void* args)
     if (!fin)  err_sys("can't open input file");
     if (!fout) err_sys("can't open output file");
 
-    tcp_connect(&sockfd, yasslIP, yasslPort);
+#ifdef CYASSL_DTLS
+    doDTLS  = 1;
+#endif
+
+    tcp_connect(&sockfd, yasslIP, yasslPort, doDTLS);
 
 #if defined(CYASSL_DTLS)
     method  = DTLSv1_client_method();
 #elif  !defined(NO_TLS)
-    method = TLSv1_client_method();
+    method = CyaSSLv23_client_method();
 #else
     method = SSLv3_client_method();
 #endif
@@ -105,7 +110,7 @@ void echoclient_test(void* args)
 
     while (fgets(send, sizeof(send), fin)) {
 
-        sendSz = (int)strlen(send) + 1;
+        sendSz = (int)strlen(send);
 
         if (SSL_write(ssl, send, sendSz) != sendSz)
             err_sys("SSL_write failed");
@@ -115,7 +120,7 @@ void echoclient_test(void* args)
             break;
         }
 
-        if (strncmp(send, "break", 4) == 0) {
+        if (strncmp(send, "break", 5) == 0) {
             fputs("sending server session close: break!\n", fout);
             break;
         }
@@ -123,6 +128,7 @@ void echoclient_test(void* args)
         while (sendSz) {
             int got;
             if ( (got = SSL_read(ssl, reply, sizeof(reply))) > 0) {
+                reply[got] = 0;
                 fputs(reply, fout);
                 sendSz -= got;
             }
@@ -165,6 +171,9 @@ void echoclient_test(void* args)
         args.argv = argv;
 
         CyaSSL_Init();
+#ifdef DEBUG_CYASSL
+        CyaSSL_Debugging_ON();
+#endif
         if (CurrentDir("echoclient") || CurrentDir("build"))
             ChangeDirBack(2);
         echoclient_test(&args);
@@ -173,6 +182,9 @@ void echoclient_test(void* args)
         return args.return_code;
     }
 
+    int myoptind = 0;
+    char* myoptarg = NULL;
+
 #endif /* NO_MAIN_DRIVER */
 
 
index 9f7fceee17b90d7cea4b6fbc03b402c71c5b60fe..3bf51bc9f1d1886147aa31630d7d07e5fe3b0f08 100644 (file)
@@ -56,8 +56,10 @@ THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
     CYASSL_METHOD* method = 0;
     CYASSL_CTX*    ctx    = 0;
 
+    int    doDTLS = 0;
     int    outCreated = 0;
     int    shutdown = 0;
+    int    useAnyAddr = 0;
     int    argc = ((func_args*)args)->argc;
     char** argv = ((func_args*)args)->argv;
 
@@ -72,7 +74,11 @@ THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
 
     ((func_args*)args)->return_code = -1; /* error state */
 
-    tcp_listen(&sockfd);
+#ifdef CYASSL_DTLS
+    doDTLS  = 1;
+#endif
+
+    tcp_listen(&sockfd, yasslPort, useAnyAddr, doDTLS);
 
 #if defined(CYASSL_DTLS)
     method  = CyaDTLSv1_server_method();
@@ -128,6 +134,11 @@ THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
     load_buffer(ctx, svrKey,  CYASSL_KEY);
 #endif
 
+#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
+    /* don't use EDH, can't sniff tmp keys */
+    CyaSSL_CTX_set_cipher_list(ctx, "AES256-SHA");
+#endif
+
     SignalReady(args);
 
     while (!shutdown) {
@@ -231,7 +242,7 @@ THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
         CyaSSL_free(ssl);
         CloseSocket(clientfd);
 #ifdef CYASSL_DTLS
-        tcp_listen(&sockfd);
+        tcp_listen(&sockfd, yasslPort, useAnyAddr, doDTLS);
         SignalReady(args);
 #endif
     }
@@ -273,6 +284,9 @@ THREAD_RETURN CYASSL_THREAD echoserver_test(void* args)
         return args.return_code;
     }
 
+    int myoptind = 0;
+    char* myoptarg = NULL;
+
 #endif /* NO_MAIN_DRIVER */
 
 
index c7fe1f965999a6ef65b832b364ae535fd7f08864..a33a4efb9fc281431a0650ee4b18149c02af43e7 100644 (file)
 #endif
 
 
+static void Usage(void)
+{
+    printf("server "    LIBCYASSL_VERSION_STRING
+           " NOTE: All files relative to CyaSSL home dir\n");
+    printf("-?          Help, print this usage\n");
+    printf("-p <num>    Port to listen on, default %d\n", yasslPort);
+    printf("-v <num>    SSL version [0-3], SSLv3(0) - TLS1.2(3)), default %d\n",
+                                 SERVER_DEFAULT_VERSION);
+    printf("-l <str>    Cipher list\n");
+    printf("-c <file>   Certificate file,           default %s\n", svrCert);
+    printf("-k <file>   Key file,                   default %s\n", svrKey);
+    printf("-A <file>   Certificate Authority file, default %s\n", cliCert);
+    printf("-d          Disable client cert check\n");
+    printf("-b          Bind to any interface instead of localhost only\n");
+    printf("-s          Use pre Shared keys\n");
+    printf("-u          Use UDP DTLS\n");
+}
+
+
 THREAD_RETURN CYASSL_THREAD server_test(void* args)
 {
     SOCKET_T sockfd   = 0;
@@ -72,85 +91,194 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args)
     SSL_CTX*    ctx    = 0;
     SSL*        ssl    = 0;
 
-    char msg[] = "I hear you fa shizzle!";
-    char input[1024];
-    int  idx;
-   
+    char   msg[] = "I hear you fa shizzle!";
+    char   input[1024];
+    int    idx;
+    int    ch;
+    int    version = SERVER_DEFAULT_VERSION;
+    int    doCliCertCheck = 1;
+    int    useAnyAddr = 0;
+    int    port = yasslPort;
+    int    usePsk = 0;
+    int    doDTLS = 0;
+    int    useNtruKey = 0;
+    char*  cipherList = NULL;
+    char*  verifyCert = (char*)cliCert;
+    char*  ourCert    = (char*)svrCert;
+    char*  ourKey     = (char*)svrKey;
+    int    argc = ((func_args*)args)->argc;
+    char** argv = ((func_args*)args)->argv;
+
     ((func_args*)args)->return_code = -1; /* error state */
-#if defined(CYASSL_DTLS)
-    method  = DTLSv1_server_method();
-#elif  !defined(NO_TLS)
-    method = SSLv23_server_method();
-#else
-    method = SSLv3_server_method();
-#endif
-    ctx    = SSL_CTX_new(method);
 
-#ifndef NO_PSK
-    /* do PSK */
-    SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
-    SSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
-    SSL_CTX_set_cipher_list(ctx, "PSK-AES256-CBC-SHA");
-#else
-    /* not using PSK, verify peer with certs */
-    SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER | SSL_VERIFY_FAIL_IF_NO_PEER_CERT,0);
-#endif
+    while ((ch = mygetopt(argc, argv, "?dbsnup:v:l:A:c:k:")) != -1) {
+        switch (ch) {
+            case '?' :
+                Usage();
+                exit(EXIT_SUCCESS);
+
+            case 'd' :
+                doCliCertCheck = 0;
+                break;
+
+            case 'b' :
+                useAnyAddr = 1;
+                break;
+
+            case 's' :
+                usePsk = 1;
+                break;
+
+            case 'n' :
+                useNtruKey = 1;
+                break;
+
+            case 'u' :
+                doDTLS  = 1;
+                version = -1;  /* DTLS flag */
+                break;
+
+            case 'p' :
+                port = atoi(myoptarg);
+                break;
+
+            case 'v' :
+                version = atoi(myoptarg);
+                if (version < 0 || version > 3) {
+                    Usage();
+                    exit(MY_EX_USAGE);
+                }
+                if (doDTLS)
+                    version = -1;  /* stay with DTLS */
+                break;
+
+            case 'l' :
+                cipherList = myoptarg;
+                break;
+
+            case 'A' :
+                verifyCert = myoptarg;
+                break;
+
+            case 'c' :
+                ourCert = myoptarg;
+                break;
+
+            case 'k' :
+                ourKey = myoptarg;
+                break;
+
+            default:
+                Usage();
+                exit(MY_EX_USAGE);
+        }
+    }
 
-#ifdef OPENSSL_EXTRA
-    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
+    argc -= myoptind;
+    argv += myoptind;
+    myoptind = 0;      /* reset for test cases */
+
+    switch (version) {
+        case 0:
+            method = SSLv3_server_method();
+            break;
+
+        case 1:
+            method = TLSv1_server_method();
+            break;
+
+        case 2:
+            method = TLSv1_1_server_method();
+            break;
+
+        case 3:
+            method = TLSv1_2_server_method();
+            break;
+
+#ifdef CYASSL_DTLS
+        case -1:
+            method = DTLSv1_server_method();
+            break;
 #endif
 
-#ifndef NO_FILESYSTEM
-    /* for client auth */
-    if (SSL_CTX_load_verify_locations(ctx, cliCert, 0) != SSL_SUCCESS)
-        err_sys("can't load ca file, Please run from CyaSSL home dir");
+        default:
+            err_sys("Bad SSL version");
+    }
 
-    #ifdef HAVE_ECC
-        if (SSL_CTX_use_certificate_file(ctx, eccCert, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load server ecc cert file, "
-                    "Please run from CyaSSL home dir");
+    if (method == NULL)
+        err_sys("unable to get method");
 
-        if (SSL_CTX_use_PrivateKey_file(ctx, eccKey, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load server ecc key file, "
-                    "Please run from CyaSSL home dir");
-        /* for client auth */
-        if (SSL_CTX_load_verify_locations(ctx, cliEccCert, 0) != SSL_SUCCESS)
-            err_sys("can't load ecc ca file, Please run from CyaSSL home dir");
-
-    #elif HAVE_NTRU
-        if (SSL_CTX_use_certificate_file(ctx, ntruCert, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load ntru cert file, "
-                    "Please run from CyaSSL home dir");
+    ctx = SSL_CTX_new(method);
+    if (ctx == NULL)
+        err_sys("unable to get ctx");
+
+    if (cipherList)
+        if (SSL_CTX_set_cipher_list(ctx, cipherList) != SSL_SUCCESS)
+            err_sys("can't set cipher list");
+
+    if (SSL_CTX_use_certificate_file(ctx, ourCert, SSL_FILETYPE_PEM)
+                                     != SSL_SUCCESS)
+        err_sys("can't load server cert file, check file and run from"
+                " CyaSSL home dir");
 
-        if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ntruKey)
-                != SSL_SUCCESS)
+
+#ifdef HAVE_NTRU
+    if (useNtruKey) {
+        if (CyaSSL_CTX_use_NTRUPrivateKey_file(ctx, ourKey)
+                                               != SSL_SUCCESS)
             err_sys("can't load ntru key file, "
                     "Please run from CyaSSL home dir");
-    #else  /* normal */
-        if (SSL_CTX_use_certificate_file(ctx, svrCert, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load server cert chain file, "
-                    "Please run from CyaSSL home dir");
+    }
+#endif
 
-        if (SSL_CTX_use_PrivateKey_file(ctx, svrKey, SSL_FILETYPE_PEM)
-                != SSL_SUCCESS)
-            err_sys("can't load server key file, "
-                    "Please run from CyaSSL home dir");
-    #endif /* NTRU */
-#else
-    load_buffer(ctx, cliCert, CYASSL_CA);
-    load_buffer(ctx, svrCert, CYASSL_CERT);
-    load_buffer(ctx, svrKey,  CYASSL_KEY);
-#endif /* NO_FILESYSTEM */
+    if (!useNtruKey) {
+        if (SSL_CTX_use_PrivateKey_file(ctx, ourKey, SSL_FILETYPE_PEM)
+                                         != SSL_SUCCESS)
+            err_sys("can't load server cert file, check file and run from"
+                " CyaSSL home dir");
+    }
+
+#ifndef NO_PSK
+    if (usePsk) {
+        SSL_CTX_set_psk_server_callback(ctx, my_psk_server_cb);
+        SSL_CTX_use_psk_identity_hint(ctx, "cyassl server");
+        if (cipherList == NULL)
+            if (SSL_CTX_set_cipher_list(ctx,"PSK-AES256-CBC-SHA") !=SSL_SUCCESS)
+                err_sys("can't set cipher list");
+    }
+#endif
+
+    /* if not using PSK, verify peer with certs */
+    if (doCliCertCheck && usePsk == 0) {
+        SSL_CTX_set_verify(ctx, SSL_VERIFY_PEER |
+                                SSL_VERIFY_FAIL_IF_NO_PEER_CERT,0);
+        if (SSL_CTX_load_verify_locations(ctx, verifyCert, 0) != SSL_SUCCESS)
+            err_sys("can't load ca file, Please run from CyaSSL home dir");
+    }
+
+#ifdef OPENSSL_EXTRA
+    SSL_CTX_set_default_passwd_cb(ctx, PasswordCallBack);
+#endif
+
+#if defined(CYASSL_SNIFFER) && !defined(HAVE_NTRU) && !defined(HAVE_ECC)
+    /* don't use EDH, can't sniff tmp keys */
+    if (SSL_CTX_set_cipher_list(ctx, "AES256-SHA") != SSL_SUCCESS)
+        err_sys("can't set cipher list");
+#endif
 
     ssl = SSL_new(ctx);
-    tcp_accept(&sockfd, &clientfd, (func_args*)args);
-#ifndef CYASSL_DTLS
-    CloseSocket(sockfd);
+    if (ssl == NULL)
+        err_sys("unable to get SSL");
+
+#ifdef HAVE_CRL
+    CyaSSL_EnableCRL(ssl, 0);
+    CyaSSL_LoadCRL(ssl, crlPemDir, SSL_FILETYPE_PEM, CYASSL_CRL_MONITOR |
+                                                     CYASSL_CRL_START_MON);
+    CyaSSL_SetCRL_Cb(ssl, CRL_CallBack);
 #endif
+    tcp_accept(&sockfd, &clientfd, (func_args*)args, port, useAnyAddr, doDTLS);
+    if (!doDTLS) 
+        CloseSocket(sockfd);
 
     SSL_set_fd(ssl, clientfd);
 #ifdef NO_PSK
@@ -222,6 +350,9 @@ THREAD_RETURN CYASSL_THREAD server_test(void* args)
         return args.return_code;
     }
 
+    int myoptind = 0;
+    char* myoptarg = NULL;
+
 #endif /* NO_MAIN_DRIVER */
 
 
index 561d573bf1940b1254d153a6914d2ef7bc112ead..40759a4f1d1ce5cd7c9ba5a95e980b24de2a8463 100644 (file)
 /* Initialze CRL members */
 int InitCRL(CYASSL_CRL* crl, CYASSL_CERT_MANAGER* cm)
 {
-       CYASSL_ENTER("InitCRL");
-
-       crl->cm = cm;
-       crl->crlList = NULL;
-       if (InitMutex(&crl->crlLock) != 0)
-               return BAD_MUTEX_ERROR; 
+    CYASSL_ENTER("InitCRL");
+
+    crl->cm = cm;
+    crl->crlList = NULL;
+    crl->monitors[0].path = NULL;
+    crl->monitors[1].path = NULL;
+#ifdef HAVE_CRL_MONITOR
+    crl->tid = 0;
+#endif
+    if (InitMutex(&crl->crlLock) != 0)
+        return BAD_MUTEX_ERROR; 
 
-       return 0;
+    return 0;
 }
 
 
 /* Initialze CRL Entry */
 static int InitCRL_Entry(CRL_Entry* crle, DecodedCRL* dcrl)
 {
-       CYASSL_ENTER("FreeCRL_Entry");
+    CYASSL_ENTER("InitCRL_Entry");
 
-       XMEMCPY(crle->issuerHash, dcrl->issuerHash, SHA_DIGEST_SIZE);
-       XMEMCPY(crle->crlHash, dcrl->crlHash, MD5_DIGEST_SIZE);
-       XMEMCPY(crle->lastDate, dcrl->lastDate, MAX_DATE_SIZE);
-       XMEMCPY(crle->nextDate, dcrl->nextDate, MAX_DATE_SIZE);
+    XMEMCPY(crle->issuerHash, dcrl->issuerHash, SHA_DIGEST_SIZE);
+    XMEMCPY(crle->crlHash, dcrl->crlHash, MD5_DIGEST_SIZE);
+    XMEMCPY(crle->lastDate, dcrl->lastDate, MAX_DATE_SIZE);
+    XMEMCPY(crle->nextDate, dcrl->nextDate, MAX_DATE_SIZE);
+    crle->lastDateFormat = dcrl->lastDateFormat;
+    crle->nextDateFormat = dcrl->nextDateFormat;
 
-       crle->certs = dcrl->certs;   /* take ownsership */
-       dcrl->certs = NULL;
-       crle->totalCerts = dcrl->totalCerts;
+    crle->certs = dcrl->certs;   /* take ownsership */
+    dcrl->certs = NULL;
+    crle->totalCerts = dcrl->totalCerts;
 
-       return 0;
+    return 0;
 }
 
 
 /* Free all CRL Entry resources */
 static void FreeCRL_Entry(CRL_Entry* crle)
 {
-       RevokedCert* tmp = crle->certs; 
+    RevokedCert* tmp = crle->certs; 
 
-       CYASSL_ENTER("FreeCRL_Entry");
+    CYASSL_ENTER("FreeCRL_Entry");
 
     while(tmp) {
         RevokedCert* next = tmp->next;
@@ -84,9 +91,15 @@ static void FreeCRL_Entry(CRL_Entry* crle)
 /* Free all CRL resources */
 void FreeCRL(CYASSL_CRL* crl)
 {
-       CRL_Entry* tmp = crl->crlList;
+    CRL_Entry* tmp = crl->crlList;
+
+    CYASSL_ENTER("FreeCRL");
 
-       CYASSL_ENTER("FreeCRL");
+    if (crl->monitors[0].path)
+        XFREE(crl->monitors[0].path, NULL, DYNAMIC_TYPE_CRL_MONITOR);
+
+    if (crl->monitors[1].path)
+        XFREE(crl->monitors[1].path, NULL, DYNAMIC_TYPE_CRL_MONITOR);
 
     while(tmp) {
         CRL_Entry* next = tmp->next;
@@ -95,6 +108,12 @@ void FreeCRL(CYASSL_CRL* crl)
         tmp = next;
     }  
 
+#ifdef HAVE_CRL_MONITOR
+    if (crl->tid != 0) {
+        CYASSL_MSG("Canceling monitor thread");
+        pthread_cancel(crl->tid);
+    }
+#endif
     FreeMutex(&crl->crlLock);
 }
 
@@ -102,202 +121,456 @@ void FreeCRL(CYASSL_CRL* crl)
 /* Is the cert ok with CRL, return 0 on success */
 int CheckCertCRL(CYASSL_CRL* crl, DecodedCert* cert)
 {
-       CRL_Entry* crle;
-       int        foundEntry = 0;
-       int        revoked = 0;
-       int        ret = 0;
-
-       CYASSL_ENTER("CheckCertCRL");
-
-       if (LockMutex(&crl->crlLock) != 0) {
-               CYASSL_MSG("LockMutex failed");
-               return BAD_MUTEX_ERROR;
-       }
-
-       crle = crl->crlList;
-
-       while (crle) {
-               if (XMEMCMP(crle->issuerHash, cert->issuerHash, SHA_DIGEST_SIZE) == 0) {
-                       CYASSL_MSG("Found CRL Entry on list");
-                       foundEntry = 1;
-                       break;
-               }
-               crle = crle->next;
-       }
-
-       if (foundEntry) {
-               RevokedCert* rc = crle->certs;
-
-               while (rc) {
-                       if (XMEMCMP(rc->serialNumber, cert->serial, rc->serialSz) == 0) {
-                               CYASSL_MSG("Cert revoked");
-                               revoked = 1;
-                               ret = CRL_CERT_REVOKED;
-                               break;
-                       }
-                       rc = rc->next;  
-               }
-       }
-
-       UnLockMutex(&crl->crlLock);
-
-       if (foundEntry == 0) {
-               CYASSL_MSG("Couldn't find CRL for status check");
-               ret = CRL_MISSING;
-               if (crl->cm->cbMissingCRL) {
-                       char url[256];
-
-                       CYASSL_MSG("Issuing missing CRL callback");
-                       url[0] = '\0';
-                       if (cert->extCrlInfoSz < (int)sizeof(url) -1 ) {
-                               XMEMCPY(url, cert->extCrlInfo, cert->extCrlInfoSz);
-                               url[cert->extCrlInfoSz] = '\0';
-                       }
-                       else  {
-                               CYASSL_MSG("CRL url too long");
+    CRL_Entry* crle;
+    int        foundEntry = 0;
+    int        revoked = 0;
+    int        ret = 0;
+
+    CYASSL_ENTER("CheckCertCRL");
+
+    if (LockMutex(&crl->crlLock) != 0) {
+        CYASSL_MSG("LockMutex failed");
+        return BAD_MUTEX_ERROR;
+    }
+
+    crle = crl->crlList;
+
+    while (crle) {
+        if (XMEMCMP(crle->issuerHash, cert->issuerHash, SHA_DIGEST_SIZE) == 0) {
+            CYASSL_MSG("Found CRL Entry on list");
+            CYASSL_MSG("Checking next date validity");
+
+            if (!ValidateDate(crle->nextDate, crle->nextDateFormat, AFTER)) {
+                CYASSL_MSG("CRL next date is no longer valid");
+                ret = ASN_AFTER_DATE_E;
             }
-                       crl->cm->cbMissingCRL(url);
-               }
-       }
+            else
+                foundEntry = 1;
+            break;
+        }
+        crle = crle->next;
+    }
+
+    if (foundEntry) {
+        RevokedCert* rc = crle->certs;
+
+        while (rc) {
+            if (XMEMCMP(rc->serialNumber, cert->serial, rc->serialSz) == 0) {
+                CYASSL_MSG("Cert revoked");
+                revoked = 1;
+                ret = CRL_CERT_REVOKED;
+                break;
+            }
+            rc = rc->next;     
+        }
+    }
 
+    UnLockMutex(&crl->crlLock);
 
-       return ret;     
+    if (foundEntry == 0) {
+        CYASSL_MSG("Couldn't find CRL for status check");
+        ret = CRL_MISSING;
+        if (crl->cm->cbMissingCRL) {
+            char url[256];
+
+            CYASSL_MSG("Issuing missing CRL callback");
+            url[0] = '\0';
+            if (cert->extCrlInfoSz < (int)sizeof(url) -1 ) {
+                XMEMCPY(url, cert->extCrlInfo, cert->extCrlInfoSz);
+                url[cert->extCrlInfoSz] = '\0';
+            }
+            else  {
+                CYASSL_MSG("CRL url too long");
+            }
+            crl->cm->cbMissingCRL(url);
+        }
+    }
+
+
+    return ret;        
 }
 
 
 /* Add Decoded CRL, 0 on success */
 static int AddCRL(CYASSL_CRL* crl, DecodedCRL* dcrl)
 {
-       CRL_Entry* crle;
-
-       CYASSL_ENTER("AddCRL");
-
-       crle = (CRL_Entry*)XMALLOC(sizeof(CRL_Entry), NULL, DYNAMIC_TYPE_CRL_ENTRY);
-       if (crle == NULL) {
-               CYASSL_MSG("alloc CRL Entry failed");
-               return -1;
-       }
-
-       if (InitCRL_Entry(crle, dcrl) < 0) {
-               CYASSL_MSG("Init CRL Entry failed");
-               return -1;
-       }
-
-       if (LockMutex(&crl->crlLock) != 0) {
-               CYASSL_MSG("LockMutex failed");
-               FreeCRL_Entry(crle);
-               return BAD_MUTEX_ERROR;
-       }
-       crle->next = crl->crlList;
-       crl->crlList = crle;
-       UnLockMutex(&crl->crlLock);
-
-       return 0;
+    CRL_Entry* crle;
+
+    CYASSL_ENTER("AddCRL");
+
+    crle = (CRL_Entry*)XMALLOC(sizeof(CRL_Entry), NULL, DYNAMIC_TYPE_CRL_ENTRY);
+    if (crle == NULL) {
+        CYASSL_MSG("alloc CRL Entry failed");
+        return -1;
+    }
+
+    if (InitCRL_Entry(crle, dcrl) < 0) {
+        CYASSL_MSG("Init CRL Entry failed");
+        XFREE(crle, NULL, DYNAMIC_TYPE_CRL_ENTRY);
+        return -1;
+    }
+
+    if (LockMutex(&crl->crlLock) != 0) {
+        CYASSL_MSG("LockMutex failed");
+        FreeCRL_Entry(crle);
+        XFREE(crle, NULL, DYNAMIC_TYPE_CRL_ENTRY);
+        return BAD_MUTEX_ERROR;
+    }
+    crle->next = crl->crlList;
+    crl->crlList = crle;
+    UnLockMutex(&crl->crlLock);
+
+    return 0;
 }
 
 
 /* Load CRL File of type, SSL_SUCCESS on ok */
 int BufferLoadCRL(CYASSL_CRL* crl, const byte* buff, long sz, int type)
 {
-       int          ret = SSL_SUCCESS;
-       const byte*  myBuffer = buff;    /* if DER ok, otherwise switch */
-       buffer       der;
-       DecodedCRL   dcrl;
-
-       der.buffer = NULL;
-
-       CYASSL_ENTER("BufferLoadCRL");
-
-       if (crl == NULL || buff == NULL || sz == 0)
-               return BAD_FUNC_ARG;
-
-       if (type == SSL_FILETYPE_PEM) {
-               int eccKey = 0;   /* not used */
-               EncryptedInfo info;
-               info.ctx = NULL;
-
-               ret = PemToDer(buff, sz, CRL_TYPE, &der, NULL, &info, &eccKey);
-               if (ret == 0) {
-                       myBuffer = der.buffer;
-                       sz = der.length;
-               }
-               else {
-                       CYASSL_MSG("Pem to Der failed");
-                       return -1;
-               }
-       }
-
-       InitDecodedCRL(&dcrl);
-       ret = ParseCRL(&dcrl, myBuffer, sz);
-       if (ret != 0) {
-               CYASSL_MSG("ParseCRL error");
-       }
-       else {
-               ret = AddCRL(crl, &dcrl);
-               if (ret != 0) {
-                       CYASSL_MSG("AddCRL error");
+    int          ret = SSL_SUCCESS;
+    const byte*  myBuffer = buff;    /* if DER ok, otherwise switch */
+    buffer       der;
+    DecodedCRL   dcrl;
+
+    der.buffer = NULL;
+
+    CYASSL_ENTER("BufferLoadCRL");
+
+    if (crl == NULL || buff == NULL || sz == 0)
+        return BAD_FUNC_ARG;
+
+    if (type == SSL_FILETYPE_PEM) {
+        int eccKey = 0;   /* not used */
+        EncryptedInfo info;
+        info.ctx = NULL;
+
+        ret = PemToDer(buff, sz, CRL_TYPE, &der, NULL, &info, &eccKey);
+        if (ret == 0) {
+            myBuffer = der.buffer;
+            sz = der.length;
+        }
+        else {
+            CYASSL_MSG("Pem to Der failed");
+            return -1;
+        }
+    }
+
+    InitDecodedCRL(&dcrl);
+    ret = ParseCRL(&dcrl, myBuffer, sz, crl->cm);
+    if (ret != 0) {
+        CYASSL_MSG("ParseCRL error");
+    }
+    else {
+        ret = AddCRL(crl, &dcrl);
+        if (ret != 0) {
+            CYASSL_MSG("AddCRL error");
+        }
+    }
+    FreeDecodedCRL(&dcrl);
+
+    if (der.buffer)
+        XFREE(der.buffer, NULL, DYNAMIC_TYPE_CRL);
+
+    if (ret == 0)
+        return SSL_SUCCESS;  /* convert */
+    return ret;
+}
+
+
+#ifdef HAVE_CRL_MONITOR
+
+
+/* read in new CRL entries and save new list */
+static int SwapLists(CYASSL_CRL* crl)
+{
+    int        ret;
+    CYASSL_CRL tmp;
+    CRL_Entry* newList;
+
+    if (InitCRL(&tmp, crl->cm) < 0) {
+        CYASSL_MSG("Init tmp CRL failed");
+        return -1;
+    }
+
+    if (crl->monitors[0].path) {
+        ret = LoadCRL(&tmp, crl->monitors[0].path, SSL_FILETYPE_PEM, 0);
+        if (ret != SSL_SUCCESS) {
+            CYASSL_MSG("PEM LoadCRL on dir change failed");
+            FreeCRL(&tmp);
+            return -1;
         }
-       }
-       FreeDecodedCRL(&dcrl);
+    }
+
+    if (crl->monitors[1].path) {
+        ret = LoadCRL(&tmp, crl->monitors[1].path, SSL_FILETYPE_ASN1, 0);
+        if (ret != SSL_SUCCESS) {
+            CYASSL_MSG("DER LoadCRL on dir change failed");
+            FreeCRL(&tmp);
+            return -1;
+        }
+    }
+
+    if (LockMutex(&crl->crlLock) != 0) {
+        CYASSL_MSG("LockMutex failed");
+        FreeCRL(&tmp);
+        return -1;
+    }
+
+    newList = tmp.crlList;
+
+    /* swap lists */
+    tmp.crlList  = crl->crlList;
+    crl->crlList = newList;
 
-       if (der.buffer)
-               XFREE(der.buffer, NULL, DYNAMIC_TYPE_CRL);
+    UnLockMutex(&crl->crlLock);
 
-       if (ret == 0)
-               return SSL_SUCCESS;  /* convert */
-       return ret;
+    FreeCRL(&tmp);
+
+    return 0;
 }
 
 
+#ifdef __MACH__
+
+#include <sys/event.h>
+#include <sys/time.h>
+#include <fcntl.h>
+
+/* OS X  monitoring */
+static void* DoMonitor(void* arg)
+{
+    int fPEM, fDER, kq;
+    struct kevent change;
+
+    CYASSL_CRL* crl = (CYASSL_CRL*)arg;
+
+    CYASSL_ENTER("DoMonitor");
+
+    kq = kqueue();
+    if (kq == -1) {
+        CYASSL_MSG("kqueue failed");
+        return NULL;
+    }
+
+    fPEM = -1;
+    fDER = -1;
+
+    if (crl->monitors[0].path) {
+        fPEM = open(crl->monitors[0].path, O_EVTONLY);
+        if (fPEM == -1) {
+            CYASSL_MSG("PEM event dir open failed");
+            return NULL;
+        }
+    }
+
+    if (crl->monitors[1].path) {
+        fDER = open(crl->monitors[1].path, O_EVTONLY);
+        if (fDER == -1) {
+            CYASSL_MSG("DER event dir open failed");
+            return NULL;
+        }
+    }
+
+    if (fPEM != -1)
+        EV_SET(&change, fPEM, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT,
+                NOTE_DELETE | NOTE_EXTEND | NOTE_WRITE | NOTE_ATTRIB, 0, 0);
+
+    if (fDER != -1)
+        EV_SET(&change, fDER, EVFILT_VNODE, EV_ADD | EV_ENABLE | EV_ONESHOT,
+                NOTE_DELETE | NOTE_EXTEND | NOTE_WRITE | NOTE_ATTRIB, 0, 0);
+
+    for (;;) {
+        struct kevent event;
+        int           numEvents = kevent(kq, &change, 1, &event, 1, NULL);
+       
+        CYASSL_MSG("Got kevent");
+
+        if (numEvents == -1) {
+            CYASSL_MSG("kevent problem, continue");
+            continue;
+        }
+
+        if (SwapLists(crl) < 0) {
+            CYASSL_MSG("SwapLists problem, continue");
+        }
+    }
+
+    return NULL;
+}
+
+
+#elif __linux__
+
+#include <sys/types.h>
+#include <sys/inotify.h>
+#include <unistd.h>
+
+/* linux monitoring */
+static void* DoMonitor(void* arg)
+{
+    int         notifyFd;
+    int         wd;
+    CYASSL_CRL* crl = (CYASSL_CRL*)arg;
+
+    CYASSL_ENTER("DoMonitor");
+
+    notifyFd = inotify_init();
+    if (notifyFd < 0) {
+        CYASSL_MSG("inotify failed");
+        return NULL;
+    }
+
+    if (crl->monitors[0].path) {
+        wd = inotify_add_watch(notifyFd, crl->monitors[0].path, IN_CLOSE_WRITE |
+                                                                IN_DELETE);
+        if (wd < 0) {
+            CYASSL_MSG("PEM notify add watch failed");
+            return NULL;
+        }
+    }
+
+    if (crl->monitors[1].path) {
+        wd = inotify_add_watch(notifyFd, crl->monitors[1].path, IN_CLOSE_WRITE |
+                                                                IN_DELETE);
+        if (wd < 0) {
+            CYASSL_MSG("DER notify add watch failed");
+            return NULL;
+        }
+    }
+
+    for (;;) {
+        char          buffer[8192];
+        int           length = read(notifyFd, buffer, sizeof(buffer));
+       
+        CYASSL_MSG("Got notify event");
+
+        if (length < 0) {
+            CYASSL_MSG("notify read problem, continue");
+            continue;
+        } 
+
+        if (SwapLists(crl) < 0) {
+            CYASSL_MSG("SwapLists problem, continue");
+        }
+    }
+
+    return NULL;
+}
+
+
+
+#endif /* MACH or linux */
+
+
+/* Start Monitoring the CRL path(s) in a thread */
+static int StartMonitorCRL(CYASSL_CRL* crl)
+{
+    pthread_attr_t attr;
+
+    CYASSL_ENTER("StartMonitorCRL");
+
+    if (crl == NULL) 
+        return BAD_FUNC_ARG;
+
+    if (crl->tid != 0) {
+        CYASSL_MSG("Monitor thread already running");
+        return MONITOR_RUNNING_E;
+    }
+
+    pthread_attr_init(&attr);
+
+    if (pthread_create(&crl->tid, &attr, DoMonitor, crl) != 0) {
+        CYASSL_MSG("Thread creation error");
+        return THREAD_CREATE_E;
+    }
+
+    return SSL_SUCCESS;
+}
+
+
+#else /* HAVE_CRL_MONITOR */
+
+static int StartMonitorCRL(CYASSL_CRL* crl)
+{
+    CYASSL_ENTER("StartMonitorCRL");
+    CYASSL_MSG("Not compiled in");
+
+    return NOT_COMPILED_IN;
+}
+
+#endif  /* HAVE_CRL_MONITOR */
+
+
 /* Load CRL path files of type, SSL_SUCCESS on ok */ 
 int LoadCRL(CYASSL_CRL* crl, const char* path, int type, int monitor)
 {
-       struct dirent* entry;
-       DIR*   dir;
-       int    ret = SSL_SUCCESS;
-
-       CYASSL_ENTER("LoadCRL");
-       if (crl == NULL)
-               return BAD_FUNC_ARG;
-
-       dir = opendir(path);
-       if (dir == NULL) {
-               CYASSL_MSG("opendir path crl load failed");
-               return BAD_PATH_ERROR;
-       }
-       while ( ret == SSL_SUCCESS && (entry = readdir(dir)) != NULL) {
-               if (entry->d_type & DT_REG) {
-                       char name[MAX_FILENAME_SZ];
-
-                       if (type == SSL_FILETYPE_PEM) {
-                               if (strstr(entry->d_name, ".pem") == NULL) {
-                                       CYASSL_MSG("not .pem file, skipping");
-                                       continue;
-                               }
-                       }
-                       else {
-                               if (strstr(entry->d_name, ".der") == NULL &&
-                                       strstr(entry->d_name, ".crl") == NULL) {
-
-                                       CYASSL_MSG("not .der or .crl file, skipping");
-                                       continue;
-                               }
-                       }
-
-                       XMEMSET(name, 0, sizeof(name));
-                       XSTRNCPY(name, path, MAX_FILENAME_SZ/2 - 2);
-                       XSTRNCAT(name, "/", 1);
-                       XSTRNCAT(name, entry->d_name, MAX_FILENAME_SZ/2);
-
-                       ret = ProcessFile(NULL, name, type, CRL_TYPE, NULL, 0, crl);
-               }
-       }
-
-    if (monitor) {
+    struct dirent* entry;
+    DIR*   dir;
+    int    ret = SSL_SUCCESS;
+
+    CYASSL_ENTER("LoadCRL");
+    if (crl == NULL)
+        return BAD_FUNC_ARG;
+
+    dir = opendir(path);
+    if (dir == NULL) {
+        CYASSL_MSG("opendir path crl load failed");
+        return BAD_PATH_ERROR;
+    }
+    while ( (entry = readdir(dir)) != NULL) {
+        if (entry->d_type & DT_REG) {
+            char name[MAX_FILENAME_SZ];
+
+            if (type == SSL_FILETYPE_PEM) {
+                if (strstr(entry->d_name, ".pem") == NULL) {
+                    CYASSL_MSG("not .pem file, skipping");
+                    continue;
+                }
+            }
+            else {
+                if (strstr(entry->d_name, ".der") == NULL &&
+                    strstr(entry->d_name, ".crl") == NULL) {
+
+                    CYASSL_MSG("not .der or .crl file, skipping");
+                    continue;
+                }
+            }
+
+            XMEMSET(name, 0, sizeof(name));
+            XSTRNCPY(name, path, MAX_FILENAME_SZ/2 - 2);
+            XSTRNCAT(name, "/", 1);
+            XSTRNCAT(name, entry->d_name, MAX_FILENAME_SZ/2);
+
+            if (ProcessFile(NULL, name, type, CRL_TYPE, NULL, 0, crl)
+                                                               != SSL_SUCCESS) {
+                CYASSL_MSG("CRL file load failed, continuing");
+            }
+        }
+    }
+
+    if (monitor & CYASSL_CRL_MONITOR) {
         CYASSL_MSG("monitor path requested");
+
+        if (type == SSL_FILETYPE_PEM) {
+            crl->monitors[0].path = strdup(path);
+            crl->monitors[0].type = SSL_FILETYPE_PEM;
+            if (crl->monitors[0].path == NULL)
+                ret = MEMORY_E;
+        } else {
+            crl->monitors[1].path = strdup(path);
+            crl->monitors[1].type = SSL_FILETYPE_ASN1;
+            if (crl->monitors[1].path == NULL)
+                ret = MEMORY_E;
+        }
+      
+        if (monitor & CYASSL_CRL_START_MON) {
+            CYASSL_MSG("start monitoring requested");
+    
+            ret = StartMonitorCRL(crl);
+       } 
     }
 
-       return SSL_SUCCESS;
+    return ret;
 }
 
 #endif /* HAVE_CRL */
index 9890a8f7ec655cac81bbe18cb44833512d2c86d1..c6ce57491b2caab66722cd7dd4c61315fe2ef84c 100644 (file)
@@ -36,6 +36,10 @@ if BUILD_AESNI
 src_libcyassl_la_SOURCES += ctaocrypt/src/aes_asm.s
 endif
 
+if BUILD_MD2
+src_libcyassl_la_SOURCES += ctaocrypt/src/md2.c
+endif
+
 if BUILD_RIPEMD
 src_libcyassl_la_SOURCES += ctaocrypt/src/ripemd.c
 endif
@@ -74,3 +78,8 @@ if BUILD_CRL
 src_libcyassl_la_SOURCES += src/crl.c
 endif
 
+if BUILD_CRL_MONITOR
+src_libcyassl_la_CFLAGS += $(PTHREAD_CFLAGS)
+src_libcyassl_la_LIBADD += $(PTHREAD_LIBS)
+endif
+
index beb73aeca7a1ad42fc43364503339239e3aa626f..ff73e0bfdec08edc312732d30592c248c7e9b618 100644 (file)
@@ -55,7 +55,7 @@
 
 #ifndef NO_CYASSL_CLIENT
     static int DoHelloVerifyRequest(CYASSL* ssl, const byte* input, word32*);
-    static int DoServerHello(CYASSL* ssl, const byte* input, word32*);
+    static int DoServerHello(CYASSL* ssl, const byte* input, word32*, word32);
     static int DoCertificateRequest(CYASSL* ssl, const byte* input, word32*);
     static int DoServerKeyExchange(CYASSL* ssl, const byte* input, word32*);
 #endif
@@ -239,7 +239,8 @@ static INLINE void ato32(const byte* c, word32* u32)
         ssl->c_stream.zfree  = (free_func)myFree;
         ssl->c_stream.opaque = (voidpf)ssl->heap;
 
-        if (deflateInit(&ssl->c_stream, 8) != Z_OK) return ZLIB_INIT_ERROR;
+        if (deflateInit(&ssl->c_stream, Z_DEFAULT_COMPRESSION) != Z_OK)
+            return ZLIB_INIT_ERROR;
 
         ssl->didStreamInit = 1;
 
@@ -268,11 +269,6 @@ static INLINE void ato32(const byte* c, word32* u32)
         int    err;
         int    currTotal = ssl->c_stream.total_out;
 
-        /* put size in front of compression */
-        c16toa((word16)inSz, out);
-        out   += 2;
-        outSz -= 2;
-
         ssl->c_stream.next_in   = in;
         ssl->c_stream.avail_in  = inSz;
         ssl->c_stream.next_out  = out;
@@ -281,7 +277,7 @@ static INLINE void ato32(const byte* c, word32* u32)
         err = deflate(&ssl->c_stream, Z_SYNC_FLUSH);
         if (err != Z_OK && err != Z_STREAM_END) return ZLIB_COMPRESS_ERROR;
 
-        return ssl->c_stream.total_out - currTotal + sizeof(word16);
+        return ssl->c_stream.total_out - currTotal;
     }
         
 
@@ -290,12 +286,6 @@ static INLINE void ato32(const byte* c, word32* u32)
     {
         int    err;
         int    currTotal = ssl->d_stream.total_out;
-        word16 len;
-
-        /* find size in front of compression */
-        ato16(in, &len);
-        in   += 2;
-        inSz -= 2;
 
         ssl->d_stream.next_in   = in;
         ssl->d_stream.avail_in  = inSz;
@@ -315,9 +305,6 @@ void InitSSL_Method(CYASSL_METHOD* method, ProtocolVersion pv)
 {
     method->version    = pv;
     method->side       = CLIENT_END;
-    method->verifyPeer = 0;
-    method->verifyNone = 0;
-    method->failNoCert = 0;
     method->downgrade  = 0;
 }
 
@@ -334,7 +321,7 @@ int InitSSL_Ctx(CYASSL_CTX* ctx, CYASSL_METHOD* method)
     ctx->serverDH_G.buffer  = 0;
     ctx->haveDH             = 0;
     ctx->haveNTRU           = 0;    /* start off */
-    ctx->haveECDSA          = 0;    /* start off */
+    ctx->haveECDSAsig       = 0;    /* start off */
     ctx->haveStaticECC      = 0;    /* start off */
     ctx->heap               = ctx;  /* defaults to self */
 #ifndef NO_PSK
@@ -373,14 +360,14 @@ int InitSSL_Ctx(CYASSL_CTX* ctx, CYASSL_METHOD* method)
 #endif
 #ifdef HAVE_ECC
     if (method->side == CLIENT_END) {
-        ctx->haveECDSA     = 1;        /* always on cliet side */
+        ctx->haveECDSAsig  = 1;        /* always on cliet side */
         ctx->haveStaticECC = 1;        /* server can turn on by loading key */
     }
 #endif
     ctx->suites.setSuites = 0;  /* user hasn't set yet */
     /* remove DH later if server didn't set, add psk later */
     InitSuites(&ctx->suites, method->version, TRUE, FALSE, ctx->haveNTRU,
-               ctx->haveECDSA, ctx->haveStaticECC, method->side);  
+               ctx->haveECDSAsig, ctx->haveStaticECC, method->side);  
     ctx->verifyPeer = 0;
     ctx->verifyNone = 0;
     ctx->failNoCert = 0;
@@ -449,12 +436,13 @@ void FreeSSL_Ctx(CYASSL_CTX* ctx)
 
     
 void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
-                byte haveNTRU, byte haveStaticECC, byte haveECDSA, int side)
+                byte haveNTRU, byte haveECDSAsig, byte haveStaticECC, int side)
 {
     word16 idx = 0;
     int    tls    = pv.major == SSLv3_MAJOR && pv.minor >= TLSv1_MINOR;
     int    tls1_2 = pv.major == SSLv3_MAJOR && pv.minor >= TLSv1_2_MINOR;
     int    haveRSA = 1;
+    int    haveRSAsig = 1;
 
     (void)tls;  /* shut up compiler */
     (void)haveDH;
@@ -465,8 +453,11 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     if (suites->setSuites)
         return;      /* trust user settings, don't override */
 
-    if (side == SERVER_END && haveECDSA)
-        haveRSA = 0;   /* can't do RSA with ECDSA cert */
+    if (side == SERVER_END && haveStaticECC)
+        haveRSA = 0;   /* can't do RSA with ECDSA key */
+
+    if (side == SERVER_END && haveECDSAsig)
+        haveRSAsig = 0;  /* can't have RSA sig if signed by ECDSA */
 
 #ifdef CYASSL_DTLS
     if (pv.major == DTLS_MAJOR && pv.minor == DTLS_MINOR)
@@ -501,62 +492,97 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     }
 #endif
 
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+    if (tls1_2 && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
-    if (tls && haveECDSA) {
+    if (tls && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA;
     }
 #endif
 
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
+    if (tls1_2 && haveECDSAsig && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
-    if (tls && haveECDSA && haveStaticECC) {
+    if (tls && haveECDSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA;
     }
 #endif
 
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+    if (tls1_2 && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
-    if (tls && haveECDSA) {
+    if (tls && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA;
     }
 #endif
 
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
+    if (tls1_2 && haveECDSAsig && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
-    if (tls && haveECDSA && haveStaticECC) {
+    if (tls && haveECDSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA;
     }
 #endif
 
 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
-    if (tls && haveECDSA) {
+    if (tls && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_RC4_128_SHA;
     }
 #endif
 
 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
-    if (tls && haveECDSA && haveStaticECC) {
+    if (tls && haveECDSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_RC4_128_SHA;
     }
 #endif
 
 #ifdef BUILD_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
-    if (tls && haveECDSA) {
+    if (tls && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA;
     }
 #endif
 
 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
-    if (tls && haveECDSA && haveStaticECC) {
+    if (tls && haveECDSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA;
     }
 #endif
 
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+    if (tls1_2 && haveRSA) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
     if (tls && haveRSA) {
         suites->suites[idx++] = ECC_BYTE; 
@@ -564,13 +590,27 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     }
 #endif
 
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
+    if (tls1_2 && haveRSAsig && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
-    if (tls && haveRSA && haveStaticECC) {
+    if (tls && haveRSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_RSA_WITH_AES_256_CBC_SHA;
     }
 #endif
 
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+    if (tls1_2 && haveRSA) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
     if (tls && haveRSA) {
         suites->suites[idx++] = ECC_BYTE; 
@@ -578,8 +618,15 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     }
 #endif
 
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
+    if (tls1_2 && haveRSAsig && haveStaticECC) {
+        suites->suites[idx++] = ECC_BYTE;
+        suites->suites[idx++] = TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256;
+    }
+#endif
+
 #ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
-    if (tls && haveRSA && haveStaticECC) {
+    if (tls && haveRSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_RSA_WITH_AES_128_CBC_SHA;
     }
@@ -593,7 +640,7 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
 #endif
 
 #ifdef BUILD_TLS_ECDH_RSA_WITH_RC4_128_SHA
-    if (tls && haveRSA && haveStaticECC) {
+    if (tls && haveRSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_RSA_WITH_RC4_128_SHA;
     }
@@ -607,12 +654,19 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
 #endif
 
 #ifdef BUILD_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
-    if (tls && haveRSA && haveStaticECC) {
+    if (tls && haveRSAsig && haveStaticECC) {
         suites->suites[idx++] = ECC_BYTE; 
         suites->suites[idx++] = TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA;
     }
 #endif
 
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
+    if (tls1_2 && haveDH && haveRSA) {
+        suites->suites[idx++] = 0;
+        suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_256_GCM_SHA384;
+    }
+#endif
+
 #ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
     if (tls1_2 && haveDH && haveRSA) {
         suites->suites[idx++] = 0; 
@@ -620,6 +674,13 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     }
 #endif
 
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
+    if (tls1_2 && haveDH && haveRSA) {
+        suites->suites[idx++] = 0;
+        suites->suites[idx++] = TLS_DHE_RSA_WITH_AES_128_GCM_SHA256;
+    }
+#endif
+
 #ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
     if (tls1_2 && haveDH && haveRSA) {
         suites->suites[idx++] = 0; 
@@ -641,6 +702,13 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     }
 #endif
 
+#ifdef BUILD_TLS_RSA_WITH_AES_256_GCM_SHA384
+    if (tls1_2 && haveRSA) {
+        suites->suites[idx++] = 0;
+        suites->suites[idx++] = TLS_RSA_WITH_AES_256_GCM_SHA384;
+    }
+#endif
+
 #ifdef BUILD_TLS_RSA_WITH_AES_256_CBC_SHA256
     if (tls1_2 && haveRSA) {
         suites->suites[idx++] = 0; 
@@ -648,6 +716,13 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
     }
 #endif
 
+#ifdef BUILD_TLS_RSA_WITH_AES_128_GCM_SHA256
+    if (tls1_2 && haveRSA) {
+        suites->suites[idx++] = 0;
+        suites->suites[idx++] = TLS_RSA_WITH_AES_128_GCM_SHA256;
+    }
+#endif
+
 #ifdef BUILD_TLS_RSA_WITH_AES_128_CBC_SHA256
     if (tls1_2 && haveRSA) {
         suites->suites[idx++] = 0; 
@@ -729,6 +804,8 @@ void InitSuites(Suites* suites, ProtocolVersion pv, byte haveDH, byte havePSK,
 }
 
 
+/* init everything to 0, NULL, default values before calling anything that may
+   fail so that desctructor has a "good" state to cleanup */
 int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
 {
     int  ret;
@@ -766,7 +843,9 @@ int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
     ssl->buffers.plainSz                   = 0;
 
 #ifdef OPENSSL_EXTRA
-    ssl->peerCert.derCert.buffer = 0;
+    ssl->peerCert.derCert.buffer = NULL;
+    ssl->peerCert.altNames     = NULL;
+    ssl->peerCert.altNamesNext = NULL;
 #endif
 
 #ifdef HAVE_ECC
@@ -790,21 +869,13 @@ int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
     ssl->IOCB_ReadCtx  = &ssl->rfd;   /* prevent invalid pointer acess if not */
     ssl->IOCB_WriteCtx = &ssl->wfd;   /* correctly set */
 
-    /* increment CTX reference count */
-    if (LockMutex(&ctx->countMutex) != 0) {
-        CYASSL_MSG("Couldn't lock CTX count mutex");
-        return BAD_MUTEX_ERROR;
-    }
-    ctx->refCount++;
-    UnLockMutex(&ctx->countMutex);
-
-    if ( (ret = InitRng(&ssl->rng)) != 0)
-        return ret;
-
     InitMd5(&ssl->hashMd5);
     InitSha(&ssl->hashSha);
 #ifndef NO_SHA256
     InitSha256(&ssl->hashSha256);
+#endif
+#ifdef CYASSL_SHA384
+    InitSha384(&ssl->hashSha384);
 #endif
     InitRsaKey(&ssl->peerRsaKey, ctx->heap);
 
@@ -822,8 +893,8 @@ int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
         ssl->options.haveDH = ctx->haveDH;
     else
         ssl->options.haveDH = 0;
-    ssl->options.haveNTRU  = ctx->haveNTRU;
-    ssl->options.haveECDSA = ctx->haveECDSA;
+    ssl->options.haveNTRU      = ctx->haveNTRU;
+    ssl->options.haveECDSAsig  = ctx->haveECDSAsig;
     ssl->options.haveStaticECC = ctx->haveStaticECC;
     ssl->options.havePeerCert  = 0; 
     ssl->options.usingPSK_cipher = 0;
@@ -848,6 +919,7 @@ int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
     ssl->keys.dtls_handshake_number      = 0;
     ssl->keys.dtls_epoch      = 0;
     ssl->keys.dtls_peer_epoch = 0;
+    ssl->arrays.cookieSz = 0;
 #endif
     ssl->keys.encryptionOn = 0;     /* initially off */
     ssl->options.sessionCacheOff      = ctx->sessionCacheOff;
@@ -886,13 +958,23 @@ int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
     ssl->peerCert.issuer.sz    = 0;
     ssl->peerCert.subject.sz   = 0;
 #endif
-   
-    /* make sure server has cert and key unless using PSK */
-    if (ssl->options.side == SERVER_END && !havePSK)
-        if (!ssl->buffers.certificate.buffer || !ssl->buffers.key.buffer) {
-            CYASSL_MSG("Server missing certificate and/or private key"); 
-            return NO_PRIVATE_KEY;
-        }
+  
+#ifdef SESSION_CERTS
+    ssl->session.chain.count = 0;
+#endif
+
+    ssl->cipher.ssl = ssl;
+
+#ifdef FORTRESS
+    ssl->ex_data[0] = 0;
+    ssl->ex_data[1] = 0;
+    ssl->ex_data[2] = 0;
+#endif
+
+#ifdef CYASSL_CALLBACKS
+    ssl->hsInfoOn = 0;
+    ssl->toInfoOn = 0;
+#endif
 
 #ifndef NO_PSK
     ssl->arrays.client_identity[0] = 0;
@@ -904,33 +986,35 @@ int InitSSL(CYASSL* ssl, CYASSL_CTX* ctx)
         ssl->arrays.server_hint[0] = 0;
 #endif /* NO_PSK */
 
-#ifdef CYASSL_CALLBACKS
-    ssl->hsInfoOn = 0;
-    ssl->toInfoOn = 0;
-#endif
+    /* all done with init, now can return errors, call other stuff */
+
+    /* increment CTX reference count */
+    if (LockMutex(&ctx->countMutex) != 0) {
+        CYASSL_MSG("Couldn't lock CTX count mutex");
+        return BAD_MUTEX_ERROR;
+    }
+    ctx->refCount++;
+    UnLockMutex(&ctx->countMutex);
+
+    if ( (ret = InitRng(&ssl->rng)) != 0)
+        return ret;
+
+    /* make sure server has cert and key unless using PSK */
+    if (ssl->options.side == SERVER_END && !havePSK)
+        if (!ssl->buffers.certificate.buffer || !ssl->buffers.key.buffer) {
+            CYASSL_MSG("Server missing certificate and/or private key"); 
+            return NO_PRIVATE_KEY;
+        }
 
     /* make sure server has DH parms, and add PSK if there, add NTRU too */
     if (ssl->options.side == SERVER_END) 
         InitSuites(&ssl->suites, ssl->version,ssl->options.haveDH, havePSK,
-                   ssl->options.haveNTRU, ssl->options.haveECDSA,
-                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+                   ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                   ssl->options.haveStaticECC, ssl->options.side);
     else 
         InitSuites(&ssl->suites, ssl->version, TRUE, havePSK,
-                   ssl->options.haveNTRU, ssl->options.haveECDSA,
-                   ssl->options.haveStaticECC, ssl->ctx->method->side);
-
-
-#ifdef SESSION_CERTS
-    ssl->session.chain.count = 0;
-#endif
-
-    ssl->cipher.ssl = ssl;
-
-#ifdef FORTRESS
-    ssl->ex_data[0] = 0;
-    ssl->ex_data[1] = 0;
-    ssl->ex_data[2] = 0;
-#endif
+                   ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                   ssl->options.haveStaticECC, ssl->options.side);
 
     return 0;
 }
@@ -942,7 +1026,7 @@ void SSL_ResourceFree(CYASSL* ssl)
     XFREE(ssl->buffers.serverDH_Priv.buffer, ssl->heap, DYNAMIC_TYPE_DH);
     XFREE(ssl->buffers.serverDH_Pub.buffer, ssl->heap, DYNAMIC_TYPE_DH);
     /* parameters (p,g) may be owned by ctx */
-    if (ssl->buffers.weOwnDH) {
+    if (ssl->buffers.weOwnDH || ssl->options.side == CLIENT_END) {
         XFREE(ssl->buffers.serverDH_G.buffer, ssl->heap, DYNAMIC_TYPE_DH);
         XFREE(ssl->buffers.serverDH_P.buffer, ssl->heap, DYNAMIC_TYPE_DH);
     }
@@ -961,6 +1045,8 @@ void SSL_ResourceFree(CYASSL* ssl)
         ShrinkOutputBuffer(ssl);
 #if defined(OPENSSL_EXTRA) || defined(GOAHEAD_WS)
     XFREE(ssl->peerCert.derCert.buffer, ssl->heap, DYNAMIC_TYPE_CERT);
+    if (ssl->peerCert.altNames)
+        FreeAltNames(ssl->peerCert.altNames, ssl->heap);
     CyaSSL_BIO_free(ssl->biord);
     if (ssl->biord != ssl->biowr)        /* in case same as write */
         CyaSSL_BIO_free(ssl->biowr);
@@ -1096,10 +1182,14 @@ static void HashOutput(CYASSL* ssl, const byte* output, int sz, int ivSz)
 
     Md5Update(&ssl->hashMd5, adj, sz);
     ShaUpdate(&ssl->hashSha, adj, sz);
+    if (IsAtLeastTLSv1_2(ssl)) {
 #ifndef NO_SHA256
-    if (IsAtLeastTLSv1_2(ssl))
         Sha256Update(&ssl->hashSha256, adj, sz);
 #endif
+#ifdef CYASSL_SHA384
+        Sha384Update(&ssl->hashSha384, adj, sz);
+#endif
+    }
 }
 
 
@@ -1118,10 +1208,14 @@ static void HashInput(CYASSL* ssl, const byte* input, int sz)
 
     Md5Update(&ssl->hashMd5, adj, sz);
     ShaUpdate(&ssl->hashSha, adj, sz);
+    if (IsAtLeastTLSv1_2(ssl)) {
 #ifndef NO_SHA256
-    if (IsAtLeastTLSv1_2(ssl))
         Sha256Update(&ssl->hashSha256, adj, sz);
 #endif
+#ifdef CYASSL_SHA384
+        Sha384Update(&ssl->hashSha384, adj, sz);
+#endif
+    }
 }
 
 
@@ -1539,10 +1633,21 @@ static void BuildFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
     Sha sha = ssl->hashSha;
 #ifndef NO_SHA256
     Sha256 sha256;
+#endif
+#ifdef CYASSL_SHA384
+    Sha384 sha384;
+#endif
+
+#ifndef NO_SHA256
     InitSha256(&sha256);
     if (IsAtLeastTLSv1_2(ssl))
         sha256 = ssl->hashSha256;
 #endif
+#ifdef CYASSL_SHA384
+    InitSha384(&sha384);
+    if (IsAtLeastTLSv1_2(ssl))
+        sha384 = ssl->hashSha384;
+#endif
 
     if (ssl->options.tls)
         BuildTlsFinished(ssl, hashes, sender);
@@ -1554,10 +1659,14 @@ static void BuildFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
     /* restore */
     ssl->hashMd5 = md5;
     ssl->hashSha = sha;
+    if (IsAtLeastTLSv1_2(ssl)) {
 #ifndef NO_SHA256
-    if (IsAtLeastTLSv1_2(ssl))
         ssl->hashSha256 = sha256;
 #endif
+#ifdef CYASSL_SHA384
+        ssl->hashSha384 = sha384;
+#endif
+    }
 }
 
 
@@ -1586,7 +1695,7 @@ static int DoCertificate(CYASSL* ssl, byte* input, word32* inOutIdx)
         word32 certSz;
 
         if (totalCerts >= MAX_CHAIN_DEPTH)
-            return BUFFER_E;
+            return MAX_CHAIN_ERROR;
 
         c24to32(&input[i], &certSz);
         i += CERT_HEADER_SZ;
@@ -1628,11 +1737,9 @@ static int DoCertificate(CYASSL* ssl, byte* input, word32* inOutIdx)
                                 ssl->ctx->cm);
         if (ret == 0 && dCert.isCA == 0) {
             CYASSL_MSG("Chain cert is not a CA, not adding as one");
-            (void)ret;
         }
         else if (ret == 0 && ssl->options.verifyNone) {
             CYASSL_MSG("Chain cert not verified by option, not adding as CA");
-            (void)ret;
         }
         else if (ret == 0 && !AlreadySigner(ssl->ctx->cm, dCert.subjectHash)) {
             buffer add;
@@ -1651,13 +1758,22 @@ static int DoCertificate(CYASSL* ssl, byte* input, word32* inOutIdx)
         }
         else if (ret != 0) {
             CYASSL_MSG("Failed to verify CA from chain");
-            (void)ret;
         }
         else {
             CYASSL_MSG("Verified CA from chain and already had it");
-            (void)ret;
         }
 
+#ifdef HAVE_CRL
+        if (ret == 0 && ssl->ctx->cm->crlEnabled && ssl->ctx->cm->crlCheckAll) {
+            CYASSL_MSG("Doing Non Leaf CRL check");
+            ret = CheckCertCRL(ssl->ctx->cm->crl, &dCert);
+
+            if (ret != 0) {
+                CYASSL_MSG("\tCRL check not ok");
+            }
+        }
+#endif /* HAVE_CRL */
+
         if (ret != 0 && anyError == 0)
             anyError = ret;   /* save error from last time */
 
@@ -1697,15 +1813,16 @@ static int DoCertificate(CYASSL* ssl, byte* input, word32* inOutIdx)
         }
 
 #ifdef HAVE_OCSP
-        if (CyaSSL_OCSP_Lookup_Cert(&ssl->ctx->ocsp, &dCert) == CERT_REVOKED) {
-            CYASSL_MSG("\tOCSP Lookup returned revoked");
-            ret = OCSP_CERT_REVOKED;
+        ret = CyaSSL_OCSP_Lookup_Cert(&ssl->ctx->ocsp, &dCert);
+        if (ret != 0) {
+            CYASSL_MSG("\tOCSP Lookup not ok");
             fatal = 0;
         }
 #endif
 
 #ifdef HAVE_CRL
-        if (ssl->ctx->cm->crlEnabled) {
+        if (fatal == 0 && ssl->ctx->cm->crlEnabled) {
+            CYASSL_MSG("Doing Leaf CRL check");
             ret = CheckCertCRL(ssl->ctx->cm->crl, &dCert);
 
             if (ret != 0) {
@@ -1737,10 +1854,18 @@ static int DoCertificate(CYASSL* ssl, byte* input, word32* inOutIdx)
         /* store cert for potential retrieval */
         ssl->peerCert.derCert.buffer = (byte*)XMALLOC(myCert.length, ssl->heap,
                                                       DYNAMIC_TYPE_CERT);
-        if (ssl->peerCert.derCert.buffer == NULL)
-            return MEMORY_E;
-        XMEMCPY(ssl->peerCert.derCert.buffer, myCert.buffer, myCert.length);
-        ssl->peerCert.derCert.length = myCert.length;
+        if (ssl->peerCert.derCert.buffer == NULL) {
+            ret   = MEMORY_E;
+            fatal = 1;
+        }
+        else {
+            XMEMCPY(ssl->peerCert.derCert.buffer, myCert.buffer, myCert.length);
+            ssl->peerCert.derCert.length = myCert.length;
+        }
+
+        ssl->peerCert.altNames = dCert.altNames;
+        dCert.altNames = NULL;     /* takes ownership */
+        ssl->peerCert.altNamesNext = ssl->peerCert.altNames;  /* index hint */
 #endif    
 
         if (fatal) {
@@ -1928,23 +2053,28 @@ int DoFinished(CYASSL* ssl, const byte* input, word32* inOutIdx, int sniff)
         }
     }
 
-    ssl->hmac(ssl, verifyMAC, input + idx - headerSz, macSz,
-         handshake, 1);
-    idx += finishedSz;
+    if (ssl->specs.cipher_type != aead) {
+        ssl->hmac(ssl, verifyMAC, input + idx - headerSz, macSz,
+             handshake, 1);
+        idx += finishedSz;
 
-    /* read mac and fill */
-    mac = input + idx;
-    idx += ssl->specs.hash_size;
+        /* read mac and fill */
+        mac = input + idx;
+        idx += ssl->specs.hash_size;
 
-    if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
-        padSz -= ssl->specs.block_size;
+        if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
+            padSz -= ssl->specs.block_size;
 
-    idx += padSz;
+        idx += padSz;
 
-    /* verify mac */
-    if (XMEMCMP(mac, verifyMAC, ssl->specs.hash_size)) {
-        CYASSL_MSG("Verify finished error on mac");
-        return VERIFY_MAC_ERROR;
+        /* verify mac */
+        if (XMEMCMP(mac, verifyMAC, ssl->specs.hash_size)) {
+            CYASSL_MSG("Verify finished error on mac");
+            return VERIFY_MAC_ERROR;
+        }
+    }
+    else {
+        idx += (finishedSz + AEAD_AUTH_TAG_SZ);
     }
 
     if (ssl->options.side == CLIENT_END) {
@@ -2004,7 +2134,7 @@ static int DoHandShakeMsg(CYASSL* ssl, byte* input, word32* inOutIdx,
             
     case server_hello:
         CYASSL_MSG("processing server hello");
-        ret = DoServerHello(ssl, input, inOutIdx);
+        ret = DoServerHello(ssl, input, inOutIdx, size);
         break;
 
     case certificate_request:
@@ -2067,6 +2197,15 @@ static int DoHandShakeMsg(CYASSL* ssl, byte* input, word32* inOutIdx,
 }
 
 
+static INLINE word32 GetSEQIncrement(CYASSL* ssl, int verify)
+{
+    if (verify)
+        return ssl->keys.peer_sequence_number++; 
+    else
+        return ssl->keys.sequence_number++; 
+}
+
+
 static INLINE void Encrypt(CYASSL* ssl, byte* out, const byte* input, word32 sz)
 {
     switch (ssl->specs.bulk_cipher_algorithm) {
@@ -2097,6 +2236,35 @@ static INLINE void Encrypt(CYASSL* ssl, byte* out, const byte* input, word32 sz)
                 break;
         #endif
 
+        #ifdef BUILD_AESGCM
+            case aes_gcm:
+                {
+                    byte additional[AES_BLOCK_SIZE];
+
+                    XMEMSET(additional, 0, AES_BLOCK_SIZE);
+
+                    /* sequence number field is 64-bits, we only use 32-bits */
+                    c32toa(GetSEQIncrement(ssl, 0),
+                                            additional + AEAD_SEQ_OFFSET);
+
+                    /* Store the type, version. Unfortunately, they are in
+                     * the input buffer ahead of the plaintext. */
+                    XMEMCPY(additional + AEAD_TYPE_OFFSET, input - 5, 3);
+
+                    /* Store the length of the plain text minus the explicit
+                     * IV length minus the authentication tag size. */
+                    c16toa(sz - AES_GCM_EXP_IV_SZ - AEAD_AUTH_TAG_SZ,
+                                                additional + AEAD_LEN_OFFSET);
+                    AesGcmEncrypt(&ssl->encrypt.aes,
+                        out + AES_GCM_EXP_IV_SZ, input + AES_GCM_EXP_IV_SZ,
+                            sz - AES_GCM_EXP_IV_SZ - AEAD_AUTH_TAG_SZ,
+                        out + sz - AEAD_AUTH_TAG_SZ, AEAD_AUTH_TAG_SZ,
+                        additional, AEAD_AUTH_DATA_SZ);
+                    AesGcmIncExpIV(&ssl->encrypt.aes);
+                }
+                break;
+        #endif
+
         #ifdef HAVE_HC128
             case hc128:
                 Hc128_Process(&ssl->encrypt.hc128, out, input, sz);
@@ -2115,7 +2283,7 @@ static INLINE void Encrypt(CYASSL* ssl, byte* out, const byte* input, word32 sz)
 }
 
 
-static INLINE void Decrypt(CYASSL* ssl, byte* plain, const byte* input,
+static INLINE int Decrypt(CYASSL* ssl, byte* plain, const byte* input,
                            word32 sz)
 {
     switch (ssl->specs.bulk_cipher_algorithm) {
@@ -2137,6 +2305,36 @@ static INLINE void Decrypt(CYASSL* ssl, byte* plain, const byte* input,
                 break;
         #endif
 
+        #ifdef BUILD_AESGCM
+            case aes_gcm:
+            {
+                byte additional[AES_BLOCK_SIZE];
+
+                AesGcmSetExpIV(&ssl->decrypt.aes, input);
+                XMEMSET(additional, 0, AES_BLOCK_SIZE);
+
+                /* sequence number field is 64-bits, we only use 32-bits */
+                c32toa(GetSEQIncrement(ssl, 1), additional + AEAD_SEQ_OFFSET);
+                
+                additional[AEAD_TYPE_OFFSET] = ssl->curRL.type;
+                additional[AEAD_VMAJ_OFFSET] = ssl->curRL.version.major;
+                additional[AEAD_VMIN_OFFSET] = ssl->curRL.version.minor;
+
+                c16toa(sz - AES_GCM_EXP_IV_SZ - AEAD_AUTH_TAG_SZ,
+                                        additional + AEAD_LEN_OFFSET);
+                if (AesGcmDecrypt(&ssl->decrypt.aes,
+                            plain + AES_GCM_EXP_IV_SZ,
+                            input + AES_GCM_EXP_IV_SZ,
+                                sz - AES_GCM_EXP_IV_SZ - AEAD_AUTH_TAG_SZ,
+                            input + sz - AEAD_AUTH_TAG_SZ, AEAD_AUTH_TAG_SZ,
+                            additional, AEAD_AUTH_DATA_SZ) < 0) {
+                    SendAlert(ssl, alert_fatal, bad_record_mac);
+                    return VERIFY_MAC_ERROR;
+                }
+                break;
+            }
+        #endif
+
         #ifdef HAVE_HC128
             case hc128:
                 Hc128_Process(&ssl->decrypt.hc128, plain, input, sz);
@@ -2152,27 +2350,25 @@ static INLINE void Decrypt(CYASSL* ssl, byte* plain, const byte* input,
             default:
                 CYASSL_MSG("CyaSSL Decrypt programming error");
     }
+    return 0;
 }
 
 
 /* decrypt input message in place */
 static int DecryptMessage(CYASSL* ssl, byte* input, word32 sz, word32* idx)
 {
-    Decrypt(ssl, input, input, sz);
-    ssl->keys.encryptSz = sz;
-    if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
-        *idx += ssl->specs.block_size;  /* go past TLSv1.1 IV */
-
-    return 0;
-}
+    int decryptResult = Decrypt(ssl, input, input, sz);
 
+    if (decryptResult == 0)
+    {
+        ssl->keys.encryptSz = sz;
+        if (ssl->options.tls1_1 && ssl->specs.cipher_type == block)
+            *idx += ssl->specs.block_size;  /* go past TLSv1.1 IV */
+        if (ssl->specs.cipher_type == aead)
+            *idx += AES_GCM_EXP_IV_SZ;
+    }
 
-static INLINE word32 GetSEQIncrement(CYASSL* ssl, int verify)
-{
-    if (verify)
-        return ssl->keys.peer_sequence_number++; 
-    else
-        return ssl->keys.sequence_number++; 
+    return decryptResult;
 }
 
 
@@ -2199,6 +2395,10 @@ int DoApplicationData(CYASSL* ssl, byte* input, word32* inOutIdx)
         pad = *(input + idx + msgSz - ivExtra - 1);
         padByte = 1;
     }
+    if (ssl->specs.cipher_type == aead) {
+        ivExtra = AES_GCM_EXP_IV_SZ;
+        digestSz = AEAD_AUTH_TAG_SZ;
+    }
 
     dataSz = msgSz - ivExtra - digestSz - pad - padByte;
     if (dataSz < 0) {
@@ -2210,7 +2410,8 @@ int DoApplicationData(CYASSL* ssl, byte* input, word32* inOutIdx)
     if (dataSz) {
         int    rawSz   = dataSz;       /* keep raw size for hmac */
 
-        ssl->hmac(ssl, verify, rawData, rawSz, application_data, 1);
+        if (ssl->specs.cipher_type != aead)
+            ssl->hmac(ssl, verify, rawData, rawSz, application_data, 1);
 
 #ifdef HAVE_LIBZ
         if (ssl->options.usingCompression) {
@@ -2236,14 +2437,9 @@ int DoApplicationData(CYASSL* ssl, byte* input, word32* inOutIdx)
     if (padByte)
         idx++;
 
-#ifdef HAVE_LIBZ
-    if (ssl->options.usingCompression)
-        XMEMMOVE(rawData, decomp, dataSz);
-#endif
-
     /* verify */
     if (dataSz) {
-        if (XMEMCMP(mac, verify, digestSz)) {
+        if (ssl->specs.cipher_type != aead && XMEMCMP(mac, verify, digestSz)) {
             CYASSL_MSG("App data verify mac error"); 
             return VERIFY_MAC_ERROR;
         }
@@ -2251,6 +2447,12 @@ int DoApplicationData(CYASSL* ssl, byte* input, word32* inOutIdx)
     else 
         GetSEQIncrement(ssl, 1);  /* even though no data, increment verify */
 
+#ifdef HAVE_LIBZ
+    /* decompress could be bigger, overwrite after verify */
+    if (ssl->options.usingCompression)
+        XMEMMOVE(rawData, decomp, dataSz);
+#endif
+
     *inOutIdx = idx;
     return 0;
 }
@@ -2280,21 +2482,26 @@ static int DoAlert(CYASSL* ssl, byte* input, word32* inOutIdx, int* type)
     CYASSL_ERROR(*type);
 
     if (ssl->keys.encryptionOn) {
-        int         aSz = ALERT_SIZE;
-        const byte* mac;
-        byte        verify[SHA256_DIGEST_SIZE];
-        int         padSz = ssl->keys.encryptSz - aSz - ssl->specs.hash_size;
-        
-        ssl->hmac(ssl, verify, input + *inOutIdx - aSz, aSz, alert, 1);
+        if (ssl->specs.cipher_type != aead) {
+            int     aSz = ALERT_SIZE;
+            const byte* mac;
+            byte    verify[SHA256_DIGEST_SIZE];
+            int     padSz = ssl->keys.encryptSz - aSz - ssl->specs.hash_size;
 
-        /* read mac and fill */
-        mac = input + *inOutIdx;
-        *inOutIdx += (ssl->specs.hash_size + padSz);
-
-        /* verify */
-        if (XMEMCMP(mac, verify, ssl->specs.hash_size)) {
-            CYASSL_MSG("    alert verify mac error");
-            return VERIFY_MAC_ERROR;
+            ssl->hmac(ssl, verify, input + *inOutIdx - aSz, aSz, alert, 1);
+    
+            /* read mac and fill */
+            mac = input + *inOutIdx;
+            *inOutIdx += (ssl->specs.hash_size + padSz);
+    
+            /* verify */
+            if (XMEMCMP(mac, verify, ssl->specs.hash_size)) {
+                CYASSL_MSG("    alert verify mac error");
+                return VERIFY_MAC_ERROR;
+            }
+        }
+        else {
+            *inOutIdx += AEAD_AUTH_TAG_SZ;
         }
     }
 
@@ -2812,12 +3019,19 @@ static int BuildMessage(CYASSL* ssl, byte* output, const byte* input, int inSz,
         sz += pad;
     }
 
+#ifdef BUILD_AESGCM
+    if (ssl->specs.cipher_type == aead) {
+        ivSz = AES_GCM_EXP_IV_SZ;
+        sz += (ivSz + 16 - digestSz);
+        AesGcmGetExpIV(&ssl->encrypt.aes, iv);
+    }
+#endif
     size = (word16)(sz - headerSz);    /* include mac and digest */
     AddRecordHeader(output, size, (byte)type, ssl);    
 
     /* write to output */
     if (ivSz) {
-        XMEMCPY(output + idx, iv, ivSz);
+        XMEMCPY(output + idx, iv, min(ivSz, sizeof(iv)));
         idx += ivSz;
     }
     XMEMCPY(output + idx, input, inSz);
@@ -2825,8 +3039,10 @@ static int BuildMessage(CYASSL* ssl, byte* output, const byte* input, int inSz,
 
     if (type == handshake)
         HashOutput(ssl, output, headerSz + inSz, ivSz);
-    ssl->hmac(ssl, output+idx, output + headerSz + ivSz, inSz, type, 0);
-    idx += digestSz;
+    if (ssl->specs.cipher_type != aead) {
+        ssl->hmac(ssl, output+idx, output + headerSz + ivSz, inSz, type, 0);
+        idx += digestSz;
+    }
 
     if (ssl->specs.cipher_type == block)
         for (i = 0; i <= pad; i++)
@@ -3530,6 +3746,34 @@ void SetErrorString(int error, char* str)
         XSTRNCPY(str, "CRL missing, not loaded", max);
         break;
 
+    case MONITOR_RUNNING_E:
+        XSTRNCPY(str, "CRL monitor already running", max);
+        break;
+
+    case THREAD_CREATE_E:
+        XSTRNCPY(str, "Thread creation problem", max);
+        break;
+
+    case OCSP_NEED_URL:
+        XSTRNCPY(str, "OCSP need URL", max);
+        break;
+
+    case OCSP_CERT_UNKNOWN:
+        XSTRNCPY(str, "OCSP Cert unknown", max);
+        break;
+
+    case OCSP_LOOKUP_FAIL:
+        XSTRNCPY(str, "OCSP Responder lookup fail", max);
+        break;
+
+    case MAX_CHAIN_ERROR:
+        XSTRNCPY(str, "Maximum Chain Depth Exceeded", max);
+        break;
+
+    case COOKIE_ERROR:
+        XSTRNCPY(str, "DTLS Cookie Error", max);
+        break;
+
     default :
         XSTRNCPY(str, "unknown error number", max);
     }
@@ -3683,7 +3927,55 @@ const char* const cipher_names[] =
 #endif
 
 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
-    "ECDH-ECDSA-DES-CBC3-SHA"
+    "ECDH-ECDSA-DES-CBC3-SHA",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_GCM_SHA256
+    "AES128-GCM-SHA256",
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_GCM_SHA384
+    "AES256-GCM-SHA384",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
+    "DHE-RSA-AES128-GCM-SHA256",
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
+    "DHE-RSA-AES256-GCM-SHA384",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+    "ECDHE-RSA-AES128-GCM-SHA256",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+    "ECDHE-RSA-AES256-GCM-SHA384",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+    "ECDHE-ECDSA-AES128-GCM-SHA256",
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+    "ECDHE-ECDSA-AES256-GCM-SHA384",
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
+    "ECDH-RSA-AES128-GCM-SHA256",
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
+    "ECDH-RSA-AES256-GCM-SHA384",
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
+    "ECDH-ECDSA-AES128-GCM-SHA256",
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
+    "ECDH-ECDSA-AES256-GCM-SHA384"
 #endif
 
 };
@@ -3835,7 +4127,55 @@ int cipher_name_idx[] =
 #endif
 
 #ifdef BUILD_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
-    TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
+    TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_128_GCM_SHA256
+    TLS_RSA_WITH_AES_128_GCM_SHA256,
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_GCM_SHA384
+    TLS_RSA_WITH_AES_256_GCM_SHA384,
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
+    TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
+    TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+    TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+    TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+    TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+    TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
+    TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
+    TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
+    TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
+    TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
 #endif
 
 };
@@ -4057,13 +4397,17 @@ int SetCipherList(Suites* s, const char* list)
         length = sizeof(ProtocolVersion) + RAN_LEN
                + idSz + ENUM_LEN                      
                + ssl->suites.suiteSz + SUITE_LEN
-               + COMP_LEN  + ENUM_LEN;
+               + COMP_LEN + ENUM_LEN;
+
+        if (IsAtLeastTLSv1_2(ssl))
+            length += HELLO_EXT_SZ;
 
         sendSz = length + HANDSHAKE_HEADER_SZ + RECORD_HEADER_SZ;
 
 #ifdef CYASSL_DTLS
         if (ssl->options.dtls) {
             length += ENUM_LEN;   /* cookie */
+            if (ssl->arrays.cookieSz != 0) length += ssl->arrays.cookieSz;
             sendSz  = length + DTLS_HANDSHAKE_HEADER_SZ + DTLS_RECORD_HEADER_SZ;
             idx    += DTLS_HANDSHAKE_EXTRA + DTLS_RECORD_EXTRA;
         }
@@ -4108,7 +4452,13 @@ int SetCipherList(Suites* s, const char* list)
             /* then DTLS cookie */
 #ifdef CYASSL_DTLS
         if (ssl->options.dtls) {
-            output[idx++] = 0;
+            byte cookieSz = ssl->arrays.cookieSz;
+
+            output[idx++] = cookieSz;
+            if (cookieSz) {
+                XMEMCPY(&output[idx], ssl->arrays.cookie, cookieSz);
+                idx += cookieSz;
+            }
         }
 #endif
             /* then cipher suites */
@@ -4123,7 +4473,29 @@ int SetCipherList(Suites* s, const char* list)
             output[idx++] = ZLIB_COMPRESSION;
         else
             output[idx++] = NO_COMPRESSION;
-            
+
+        if (IsAtLeastTLSv1_2(ssl))
+        {
+            /* add in the extensions length */
+            c16toa(HELLO_EXT_LEN, output + idx);
+            idx += 2;
+
+            c16toa(HELLO_EXT_SIG_ALGO, output + idx);
+            idx += 2;
+            c16toa(HELLO_EXT_SIGALGO_SZ, output + idx);
+            idx += 2;
+            /* This is a lazy list setup. Eventually, we'll need to support
+             * using other hash types or even other extensions. */
+            c16toa(HELLO_EXT_SIGALGO_LEN, output + idx);
+            idx += 2;
+            output[idx++] = sha_mac;
+            output[idx++] = rsa_sa_algo;
+            output[idx++] = sha_mac;
+            output[idx++] = dsa_sa_algo;
+            output[idx++] = sha_mac;
+            output[idx++] = ecc_dsa_sa_algo;
+        }
+
         HashOutput(ssl, output, sendSz, 0);
 
         ssl->options.clientState = CLIENT_HELLO_COMPLETE;
@@ -4157,20 +4529,29 @@ int SetCipherList(Suites* s, const char* list)
         
         cookieSz = input[(*inOutIdx)++];
         
-        if (cookieSz)
-            *inOutIdx += cookieSz;   /* skip for now */
+        if (cookieSz) {
+#ifdef CYASSL_DTLS
+            if (cookieSz < MAX_COOKIE_LEN) {
+                XMEMCPY(ssl->arrays.cookie, input + *inOutIdx, cookieSz);
+                ssl->arrays.cookieSz = cookieSz;
+            }
+#endif
+            *inOutIdx += cookieSz;
+        }
         
         ssl->options.serverState = SERVER_HELLOVERIFYREQUEST_COMPLETE;
         return 0;
     }
 
 
-    static int DoServerHello(CYASSL* ssl, const byte* input, word32* inOutIdx)
+    static int DoServerHello(CYASSL* ssl, const byte* input, word32* inOutIdx,
+                             word32 helloSz)
     {
         byte b;
         byte compression;
         ProtocolVersion pv;
         word32 i = *inOutIdx;
+        word32 begin = i;
 
 #ifdef CYASSL_CALLBACKS
         if (ssl->hsInfoOn) AddPacketName("ServerHello", &ssl->handShakeInfo);
@@ -4210,7 +4591,7 @@ int SetCipherList(Suites* s, const char* list)
         i += RAN_LEN;
         b = input[i++];
         if (b) {
-            XMEMCPY(ssl->arrays.sessionID, input + i, b);
+            XMEMCPY(ssl->arrays.sessionID, input + i, min(b, ID_LEN));
             i += b;
             ssl->options.haveSessionId = 1;
         }
@@ -4222,7 +4603,11 @@ int SetCipherList(Suites* s, const char* list)
             CYASSL_MSG("Server refused compression, turning off"); 
             ssl->options.usingCompression = 0;  /* turn off if server refused */
         }
-        
+
+        *inOutIdx = i;
+        if ( (i - begin) < helloSz)
+            *inOutIdx = begin + helloSz;  /* skip extensions */
+
         ssl->options.serverState = SERVER_HELLO_COMPLETE;
 
         *inOutIdx = i;
@@ -4481,7 +4866,7 @@ int SetCipherList(Suites* s, const char* list)
                 encSigSz = EncodeSignature(encodedSig, digest, digestSz, typeH);
 
                 if (encSigSz != (word32)ret || XMEMCMP(out, encodedSig,
-                                                       encSigSz) != 0)
+                                        min(encSigSz, MAX_ENCODED_SIG_SZ)) != 0)
                     return VERIFY_SIGN_ERROR;
             }
             else { 
@@ -4648,7 +5033,7 @@ int SetCipherList(Suites* s, const char* list)
 
             /* precede export with 1 byte length */
             ret = ecc_export_x963(&myKey, encSecret + 1, &size);
-            encSecret[0] = size;
+            encSecret[0] = (byte)size;
             encSz = size + 1;
 
             if (ret != 0)
@@ -5429,10 +5814,389 @@ int SetCipherList(Suites* s, const char* list)
     }
 
 
+    /* cipher requirements */
+    enum {
+        REQUIRES_RSA,
+        REQUIRES_DHE,
+        REQUIRES_ECC_DSA,
+        REQUIRES_ECC_STATIC,
+        REQUIRES_PSK,
+        REQUIRES_NTRU,
+        REQUIRES_RSA_SIG
+    };
+
+
+
+    /* Does this cipher suite (first, second) have the requirement
+       an ephemeral key exchange will still require the key for signing
+       the key exchange so ECHDE_RSA requires an rsa key thus rsa_kea */
+    static int CipherRequires(byte first, byte second, int requirement)
+    {
+        /* ECC extensions */
+        if (first == ECC_BYTE) {
+        
+        switch (second) {
+
+        case TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_RSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            if (requirement == REQUIRES_RSA_SIG)
+                return 1;
+            break;
+
+        case TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            if (requirement == REQUIRES_RSA_SIG)
+                return 1;
+            break;
+
+        case TLS_ECDHE_RSA_WITH_RC4_128_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_RSA_WITH_RC4_128_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            if (requirement == REQUIRES_RSA_SIG)
+                return 1;
+            break;
+
+        case TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA :
+            if (requirement == REQUIRES_ECC_DSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            break;
+
+        case TLS_ECDHE_ECDSA_WITH_RC4_128_SHA :
+            if (requirement == REQUIRES_ECC_DSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_ECDSA_WITH_RC4_128_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            break;
+
+        case TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_RSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            if (requirement == REQUIRES_RSA_SIG)
+                return 1;
+            break;
+
+        case TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_ECC_DSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            break;
+
+        case TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_ECC_DSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            break;
+
+        case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 :
+            if (requirement == REQUIRES_ECC_DSA)
+                return 1;
+            break;
+
+        case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 :
+            if (requirement == REQUIRES_ECC_DSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            break;
+
+        case TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            break;
+
+        case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            if (requirement == REQUIRES_RSA_SIG)
+                return 1;
+            break;
+
+        case TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 :
+            if (requirement == REQUIRES_ECC_STATIC)
+                return 1;
+            if (requirement == REQUIRES_RSA_SIG)
+                return 1;
+            break;
+
+        default:
+            CYASSL_MSG("Unsupported cipher suite, CipherRequires ECC");
+            return 0;
+        }   /* switch */
+        }   /* if     */
+        if (first != ECC_BYTE) {   /* normal suites */
+        switch (second) {
+
+        case SSL_RSA_WITH_RC4_128_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_NTRU_RSA_WITH_RC4_128_SHA :
+            if (requirement == REQUIRES_NTRU)
+                return 1;
+            break;
+
+        case SSL_RSA_WITH_RC4_128_MD5 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case SSL_RSA_WITH_3DES_EDE_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA :
+            if (requirement == REQUIRES_NTRU)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_AES_128_CBC_SHA256 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_NTRU_RSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_NTRU)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_AES_256_CBC_SHA256 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_NTRU_RSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_NTRU)
+                return 1;
+            break;
+
+        case TLS_PSK_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_PSK)
+                return 1;
+            break;
+
+        case TLS_PSK_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_PSK)
+                return 1;
+            break;
+
+        case TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            if (requirement == REQUIRES_DHE)
+                return 1;
+            break;
+
+        case TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            if (requirement == REQUIRES_DHE)
+                return 1;
+            break;
+
+        case TLS_DHE_RSA_WITH_AES_128_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            if (requirement == REQUIRES_DHE)
+                return 1;
+            break;
+
+        case TLS_DHE_RSA_WITH_AES_256_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            if (requirement == REQUIRES_DHE)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_HC_128_CBC_MD5 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+                
+        case TLS_RSA_WITH_HC_128_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_RABBIT_CBC_SHA :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_RSA_WITH_AES_128_GCM_SHA256 :
+        case TLS_RSA_WITH_AES_256_GCM_SHA384 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            break;
+
+        case TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 :
+        case TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 :
+            if (requirement == REQUIRES_RSA)
+                return 1;
+            if (requirement == REQUIRES_DHE)
+                return 1;
+            break;
+
+        default:
+            CYASSL_MSG("Unsupported cipher suite, CipherRequires");
+            return 0;
+        }  /* switch */
+        }  /* if ECC / Normal suites else */
+
+        return 0;
+    }
+
+
+
+
+
+    /* Make sure cert/key are valid for this suite, true on success */
+    static int VerifySuite(CYASSL* ssl, word16 idx)
+    {
+        int  haveRSA = !ssl->options.haveStaticECC;
+        int  havePSK = 0;
+        byte first   = ssl->suites.suites[idx];
+        byte second  = ssl->suites.suites[idx+1];
+
+        CYASSL_ENTER("VerifySuite");
+
+        #ifndef NO_PSK
+            havePSK = ssl->options.havePSK;
+        #endif
+
+        if (ssl->options.haveNTRU)
+            haveRSA = 0;
+
+        if (CipherRequires(first, second, REQUIRES_RSA)) {
+            CYASSL_MSG("Requires RSA");
+            if (haveRSA == 0) {
+                CYASSL_MSG("Don't have RSA");
+                return 0;
+            }
+        }
+
+        if (CipherRequires(first, second, REQUIRES_DHE)) {
+            CYASSL_MSG("Requires DHE");
+            if (ssl->options.haveDH == 0) {
+                CYASSL_MSG("Don't have DHE");
+                return 0;
+            }
+        }
+
+        if (CipherRequires(first, second, REQUIRES_ECC_DSA)) {
+            CYASSL_MSG("Requires ECCDSA");
+            if (ssl->options.haveECDSAsig == 0) {
+                CYASSL_MSG("Don't have ECCDSA");
+                return 0;
+            }
+        }
+
+        if (CipherRequires(first, second, REQUIRES_ECC_STATIC)) {
+            CYASSL_MSG("Requires static ECC");
+            if (ssl->options.haveStaticECC == 0) {
+                CYASSL_MSG("Don't have static ECC");
+                return 0;
+            }
+        }
+
+        if (CipherRequires(first, second, REQUIRES_PSK)) {
+            CYASSL_MSG("Requires PSK");
+            if (havePSK == 0) {
+                CYASSL_MSG("Don't have PSK");
+                return 0;
+            }
+        }
+
+        if (CipherRequires(first, second, REQUIRES_NTRU)) {
+            CYASSL_MSG("Requires NTRU");
+            if (ssl->options.haveNTRU == 0) {
+                CYASSL_MSG("Don't have NTRU");
+                return 0;
+            }
+        }
+
+        if (CipherRequires(first, second, REQUIRES_RSA_SIG)) {
+            CYASSL_MSG("Requires RSA Signature");
+            if (ssl->options.side == SERVER_END && ssl->options.haveECDSAsig == 1) {
+                CYASSL_MSG("Don't have RSA Signature");
+                return 0;
+            }
+        }
+
+        /* ECCDHE is always supported if ECC on */
+
+        return 1;
+    }
+
+
     static int MatchSuite(CYASSL* ssl, Suites* peerSuites)
     {
         word16 i, j;
 
+        CYASSL_ENTER("MatchSuite");
+
         /* & 0x1 equivalent % 2 */
         if (peerSuites->suiteSz == 0 || peerSuites->suiteSz & 0x1)
             return MATCH_SUITE_ERROR;
@@ -5443,9 +6207,15 @@ int SetCipherList(Suites* s, const char* list)
                 if (ssl->suites.suites[i]   == peerSuites->suites[j] &&
                     ssl->suites.suites[i+1] == peerSuites->suites[j+1] ) {
 
-                    ssl->options.cipherSuite0 = ssl->suites.suites[i];
-                    ssl->options.cipherSuite  = ssl->suites.suites[i+1];
-                    return SetCipherSpecs(ssl);
+                    if (VerifySuite(ssl, i)) {
+                        CYASSL_MSG("Verified suite validity");
+                        ssl->options.cipherSuite0 = ssl->suites.suites[i];
+                        ssl->options.cipherSuite  = ssl->suites.suites[i+1];
+                        return SetCipherSpecs(ssl);
+                    }
+                    else {
+                        CYASSL_MSG("Coult not verify suite validity, continue");
+                    }
                 }
 
         return MATCH_SUITE_ERROR;
@@ -5516,8 +6286,8 @@ int SetCipherList(Suites* s, const char* list)
 #endif
 
             InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
-                       ssl->options.haveNTRU, ssl->options.haveECDSA,
-                       ssl->options.haveStaticECC, ssl->ctx->method->side);
+                       ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                       ssl->options.haveStaticECC, ssl->options.side);
         }
 
         /* suite size */
@@ -5647,8 +6417,8 @@ int SetCipherList(Suites* s, const char* list)
             havePSK = ssl->options.havePSK;
 #endif
             InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
-                       ssl->options.haveNTRU, ssl->options.haveECDSA,
-                       ssl->options.haveStaticECC, ssl->ctx->method->side);
+                       ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                       ssl->options.haveStaticECC, ssl->options.side);
         }
         /* random */
         XMEMCPY(ssl->arrays.clientRandom, input + i, RAN_LEN);
@@ -5679,11 +6449,16 @@ int SetCipherList(Suites* s, const char* list)
             if (ssl->options.dtls) {
                 b = input[i++];
                 if (b) {
+                    byte cookie[MAX_COOKIE_LEN];
+                    byte cookieSz;
+
                     if (b > MAX_COOKIE_LEN)
                         return BUFFER_ERROR;
                     if (i + b > totalSz)
                         return INCOMPLETE_DATA;
-                    XMEMCPY(ssl->arrays.cookie, input + i, b);
+                    cookieSz = EmbedGenerateCookie(cookie, COOKIE_SZ, ssl);
+                    if ((b != cookieSz) || XMEMCMP(cookie, input + i, b) != 0)
+                        return COOKIE_ERROR;
                     i += b;
                 }
             }
@@ -5809,12 +6584,13 @@ int SetCipherList(Suites* s, const char* list)
 
                 sigSz = EncodeSignature(encodedSig, digest, digestSz, typeH);
 
-                if (outLen == (int)sigSz && XMEMCMP(out, encodedSig,sigSz) == 0)
+                if (outLen == (int)sigSz && XMEMCMP(out, encodedSig,
+                                           min(sigSz, MAX_ENCODED_SIG_SZ)) == 0)
                     ret = 0;  /* verified */
             }
             else {
                 if (outLen == sizeof(ssl->certHashes) && XMEMCMP(out,
-                             ssl->certHashes.md5, sizeof(ssl->certHashes)) == 0)
+                                &ssl->certHashes, sizeof(ssl->certHashes)) == 0)
                     ret = 0;  /* verified */
             }
         }
@@ -5871,11 +6647,12 @@ int SetCipherList(Suites* s, const char* list)
         return SendBuffered(ssl);
     }
 
-
+#ifdef CYASSL_DTLS
     int SendHelloVerifyRequest(CYASSL* ssl)
     {
         byte* output;
-        int   length = VERSION_SZ + ENUM_LEN;
+        byte  cookieSz = COOKIE_SZ;
+        int   length = VERSION_SZ + ENUM_LEN + cookieSz;
         int   idx    = DTLS_RECORD_HEADER_SZ + DTLS_HANDSHAKE_HEADER_SZ;
         int   sendSz = length + idx;
         int   ret;
@@ -5892,7 +6669,10 @@ int SetCipherList(Suites* s, const char* list)
 
         XMEMCPY(output + idx, &ssl->chVersion, VERSION_SZ);
         idx += VERSION_SZ;
-        output[idx++] = 0;     /* no cookie for now */
+
+        output[idx++] = cookieSz;
+        if ((ret = EmbedGenerateCookie(output + idx, cookieSz, ssl)) < 0)
+            return ret;
 
         HashOutput(ssl, output, sendSz, 0);
 #ifdef CYASSL_CALLBACKS
@@ -5908,7 +6688,7 @@ int SetCipherList(Suites* s, const char* list)
 
         return SendBuffered(ssl);
     }
-
+#endif
 
     static int DoClientKeyExchange(CYASSL* ssl, byte* input,
                                    word32* inOutIdx)
@@ -6126,19 +6906,19 @@ int UnLockMutex(CyaSSL_Mutex* m)
 }
 
 #else /* MULTI_THREAD */
-    
+
     #if defined(FREERTOS)
 
         int InitMutex(CyaSSL_Mutex* m)
         {
             int iReturn;
-            
+
             *m = ( CyaSSL_Mutex ) xSemaphoreCreateMutex();
             if( *m != NULL )
                 iReturn = 0;
             else
                 iReturn = BAD_MUTEX_ERROR;
-            
+
             return iReturn;
         }
 
@@ -6148,7 +6928,6 @@ int UnLockMutex(CyaSSL_Mutex* m)
             return 0;
         }
 
-        
         int LockMutex(CyaSSL_Mutex* m)
         {
             /* Assume an infinite block, or should there be zero block? */
@@ -6156,7 +6935,6 @@ int UnLockMutex(CyaSSL_Mutex* m)
             return 0;
         }
 
-
         int UnLockMutex(CyaSSL_Mutex* m)
         {
             xSemaphoreGive( *m );
index 865a2486b7142c1852518be5cbb1b6f1fbf4b746..9316defb52003aa2a1c54a87b8a6eefd2b2e6408 100644 (file)
@@ -200,6 +200,52 @@ int EmbedSend(char *buf, int sz, void *ctx)
 }
 
 
+#ifdef CYASSL_DTLS
+
+#include <cyassl/ctaocrypt/sha.h>
+
+/* The DTLS Generate Cookie callback
+ *  return : number of bytes copied into buf, or error
+ */
+int EmbedGenerateCookie(byte *buf, int sz, void *ctx)
+{
+    CYASSL* ssl = (CYASSL*)ctx;
+    int sd = ssl->wfd;
+    struct sockaddr_storage peer;
+    socklen_t peerSz = sizeof(peer);
+    byte cookieSrc[sizeof(struct in6_addr) + sizeof(int)];
+    int cookieSrcSz = 0;
+    Sha sha;
+
+    getpeername(sd, (struct sockaddr*)&peer, &peerSz);
+    
+    if (peer.ss_family == AF_INET) {
+        struct sockaddr_in *s = (struct sockaddr_in*)&peer;
+
+        cookieSrcSz = sizeof(struct in_addr) + sizeof(s->sin_port);
+        XMEMCPY(cookieSrc, &s->sin_port, sizeof(s->sin_port));
+        XMEMCPY(cookieSrc + sizeof(s->sin_port),
+                                     &s->sin_addr, sizeof(struct in_addr));
+    }
+    else if (peer.ss_family == AF_INET6) {
+        struct sockaddr_in6 *s = (struct sockaddr_in6*)&peer;
+
+        cookieSrcSz = sizeof(struct in6_addr) + sizeof(s->sin6_port);
+        XMEMCPY(cookieSrc, &s->sin6_port, sizeof(s->sin6_port));
+        XMEMCPY(cookieSrc + sizeof(s->sin6_port),
+                                    &s->sin6_addr, sizeof(struct in6_addr));
+    }
+
+    InitSha(&sha);
+    ShaUpdate(&sha, cookieSrc, cookieSrcSz);
+    ShaFinal(&sha, buf);
+
+    return SHA_DIGEST_SIZE;
+}
+
+#endif /* CYASSL_DTLS */
+
+
 #endif /* CYASSL_USER_IO */
 
 CYASSL_API void CyaSSL_SetIORecv(CYASSL_CTX *ctx, CallbackIORecv CBIORecv)
index 3fb4c8a603d37f55988431eb8022cae6c0afee75..0e4bc047482ac78475c0419f80211bf0a18142b1 100644 (file)
@@ -311,6 +311,142 @@ int SetCipherSpecs(CYASSL* ssl)
         break;
 #endif
 
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
+    case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
+    case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha384_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA384_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
+    case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
+    case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha384_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA384_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
+    case TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
+    case TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha384_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA384_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
+    case TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
+    case TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha384_mac;
+        ssl->specs.kea                   = ecc_diffie_hellman_kea;
+        ssl->specs.sig_algo              = ecc_dsa_sa_algo;
+        ssl->specs.hash_size             = SHA384_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 1;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
     default:
         CYASSL_MSG("Unsupported cipher suite, SetCipherSpecs ECC");
         return UNSUPPORTED_SUITE;
@@ -646,6 +782,74 @@ int SetCipherSpecs(CYASSL* ssl)
         break;
 #endif
 
+#ifdef BUILD_TLS_RSA_WITH_AES_128_GCM_SHA256
+    case TLS_RSA_WITH_AES_128_GCM_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_RSA_WITH_AES_256_GCM_SHA384
+    case TLS_RSA_WITH_AES_256_GCM_SHA384 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha384_mac;
+        ssl->specs.kea                   = rsa_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA384_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
+    case TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha256_mac;
+        ssl->specs.kea                   = diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA256_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_128_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
+#ifdef BUILD_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
+    case TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 :
+        ssl->specs.bulk_cipher_algorithm = aes_gcm;
+        ssl->specs.cipher_type           = aead;
+        ssl->specs.mac_algorithm         = sha384_mac;
+        ssl->specs.kea                   = diffie_hellman_kea;
+        ssl->specs.sig_algo              = rsa_sa_algo;
+        ssl->specs.hash_size             = SHA384_DIGEST_SIZE;
+        ssl->specs.pad_size              = PAD_SHA;
+        ssl->specs.static_ecdh           = 0;
+        ssl->specs.key_size              = AES_256_KEY_SIZE;
+        ssl->specs.block_size            = AES_BLOCK_SIZE;
+        ssl->specs.iv_size               = AES_GCM_IMP_IV_SZ;
+
+        break;
+#endif
+
     default:
         CYASSL_MSG("Unsupported cipher suite, SetCipherSpecs");
         return UNSUPPORTED_SUITE;
@@ -802,6 +1006,23 @@ static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
     }
 #endif
 
+#ifdef BUILD_AESGCM
+    if (specs->bulk_cipher_algorithm == aes_gcm) {
+        if (side == CLIENT_END) {
+            AesGcmSetKey(&enc->aes, keys->client_write_key, specs->key_size,
+                        keys->client_write_IV);
+            AesGcmSetKey(&dec->aes, keys->server_write_key, specs->key_size,
+                        keys->server_write_IV);
+        }
+        else {
+            AesGcmSetKey(&enc->aes, keys->server_write_key, specs->key_size,
+                        keys->server_write_IV);
+            AesGcmSetKey(&dec->aes, keys->client_write_key, specs->key_size,
+                        keys->client_write_IV);
+        }
+    }
+#endif
+
     keys->sequence_number      = 0;
     keys->peer_sequence_number = 0;
     keys->encryptionOn         = 0;
@@ -813,12 +1034,24 @@ static int SetKeys(Ciphers* enc, Ciphers* dec, Keys* keys, CipherSpecs* specs,
 /* TLS can call too */
 int StoreKeys(CYASSL* ssl, const byte* keyData)
 {
-    int sz = ssl->specs.hash_size, i;
+    int sz, i = 0;
+
+    if (ssl->specs.cipher_type != aead) {
+        sz = ssl->specs.hash_size;
+        XMEMCPY(ssl->keys.client_write_MAC_secret,&keyData[i], sz);
+        i += sz;
+        XMEMCPY(ssl->keys.server_write_MAC_secret,&keyData[i], sz);
+        i += sz;
+    }
+#ifdef BUILD_AESGCM
+    else if (ssl->specs.bulk_cipher_algorithm == aes_gcm) {
+        byte iv[AES_GCM_EXP_IV_SZ];
 
-    XMEMCPY(ssl->keys.client_write_MAC_secret, keyData, sz);
-    i = sz;
-    XMEMCPY(ssl->keys.server_write_MAC_secret,&keyData[i], sz);
-    i += sz;
+        /* Initialize the AES-GCM explicit IV to a random number. */
+        RNG_GenerateBlock(&ssl->rng, iv, sizeof(iv));
+        AesGcmSetExpIV(&ssl->encrypt.aes, iv);
+    }
+#endif
 
     sz = ssl->specs.key_size;
     XMEMCPY(ssl->keys.client_write_key, &keyData[i], sz);
index 3422c5aa654aa4909d44bf6ac6f6a6dc6dcbffba..3b3dea968185f4bc4b4acaf833a1a8504dae29b6 100644 (file)
@@ -23,6 +23,8 @@
     #include <config.h>
 #endif
 
+#ifdef HAVE_OCSP
+
 #include <cyassl/error.h>
 #include <cyassl/ocsp.h>
 #include <cyassl/internal.h>
@@ -40,7 +42,6 @@
 #include <sys/socket.h>
 
 
-#ifdef HAVE_OCSP
 CYASSL_API int ocsp_test(unsigned char* buf, int sz);
 #define CYASSL_OCSP_ENABLE       0x0001 /* Enable OCSP lookups */
 #define CYASSL_OCSP_URL_OVERRIDE 0x0002 /* Use the override URL instead of URL
@@ -51,29 +52,6 @@ typedef struct sockaddr_in  SOCKADDR_IN_T;
 #define SOCKET_T unsigned int
    
 
-int ocsp_test(unsigned char* buf, int sz)
-{
-    CYASSL_OCSP ocsp;
-    OcspResponse resp;
-    int result;
-    
-    CyaSSL_OCSP_Init(&ocsp);
-    InitOcspResponse(&resp, buf, sz, NULL);
-
-    ocsp.enabled = 1;
-    ocsp.useOverrideUrl = 1;
-    CyaSSL_OCSP_set_override_url(&ocsp, "http://ocsp.example.com:8080/bob");
-    CyaSSL_OCSP_Lookup_Cert(&ocsp, NULL);
-
-    result = OcspResponseDecode(&resp);
-    
-    FreeOcspResponse(&resp);
-    CyaSSL_OCSP_Cleanup(&ocsp);
-
-    return result;
-}
-
-
 int CyaSSL_OCSP_Init(CYASSL_OCSP* ocsp)
 {
     if (ocsp != NULL) {
@@ -85,62 +63,105 @@ int CyaSSL_OCSP_Init(CYASSL_OCSP* ocsp)
 }
 
 
+static void FreeOCSP_Entry(OCSP_Entry* ocspe)
+{
+    CertStatus* tmp = ocspe->status;
+
+    CYASSL_ENTER("FreeOCSP_Entry");
+
+    while (tmp) {
+        CertStatus* next = tmp->next;
+        XFREE(tmp, NULL, DYNAMIC_TYPE_OCSP_STATUS);
+        tmp = next;
+    }
+}
+
+
 void CyaSSL_OCSP_Cleanup(CYASSL_OCSP* ocsp)
 {
+    OCSP_Entry* tmp = ocsp->ocspList;
+
     ocsp->enabled = 0;
+    while (tmp) {
+        OCSP_Entry* next = tmp->next;
+        FreeOCSP_Entry(tmp);
+        XFREE(tmp, NULL, DYNAMIC_TYPE_OCSP_ENTRY);
+        tmp = next;
+    }
 }
 
 
-int CyaSSL_OCSP_set_override_url(CYASSL_OCSP* ocsp, const char* url)
+static int decode_url(const char* url, int urlSz,
+    char* outName, char* outPath, int* outPort)
 {
-    if (ocsp != NULL && url != NULL) {
-        int i, cur, hostname;
-
-        /* need to break the url down into scheme, address, and port */
-        /* "http://example.com:8080/" */
-        if (XSTRNCMP(url, "http://", 7) == 0) {
-            cur = 7;
-        } else cur = 0;
-
-        i = 0;
-        while (url[cur] != 0 && url[cur] != ':' && url[cur] != '/') {
-            ocsp->overrideName[i++] = url[cur++];
+    if (outName != NULL && outPath != NULL && outPort != NULL)
+    {
+        if (url == NULL || urlSz == 0)
+        {
+            *outName = 0;
+            *outPath = 0;
+            *outPort = 0;
         }
-        ocsp->overrideName[i] = 0;
-        /* Need to pick out the path after the domain name */
-
-        if (url[cur] == ':') {
-            char port[6];
-            int j;
+        else
+        {
+            int i, cur;
+    
+            /* need to break the url down into scheme, address, and port */
+            /* "http://example.com:8080/" */
+            if (XSTRNCMP(url, "http://", 7) == 0) {
+                cur = 7;
+            } else cur = 0;
+    
             i = 0;
-            cur++;
-            while (url[cur] != 0 && url[cur] != '/' && i < 6) {
-                port[i++] = url[cur++];
+            while (url[cur] != 0 && url[cur] != ':' && url[cur] != '/') {
+                outName[i++] = url[cur++];
             }
-
-            ocsp->overridePort = 0;
-            for (j = 0; j < i; j++) {
-                if (port[j] < '0' || port[j] > '9') return -1;
-                ocsp->overridePort = 
-                            (ocsp->overridePort * 10) + (port[j] - '0');
+            outName[i] = 0;
+            /* Need to pick out the path after the domain name */
+    
+            if (cur < urlSz && url[cur] == ':') {
+                char port[6];
+                int j;
+                i = 0;
+                cur++;
+                while (cur < urlSz && url[cur] != 0 && url[cur] != '/' &&
+                        i < 6) {
+                    port[i++] = url[cur++];
+                }
+    
+                *outPort = 0;
+                for (j = 0; j < i; j++) {
+                    if (port[j] < '0' || port[j] > '9') return -1;
+                    *outPort = (*outPort * 10) + (port[j] - '0');
+                }
             }
-        }
-        else
-            ocsp->overridePort = 80;
-
-        if (url[cur] == '/') {
-            i = 0;
-            while (url[cur] != 0 && i < 80) {
-                ocsp->overridePath[i++] = url[cur++];
+            else
+                *outPort = 80;
+    
+            if (cur < urlSz && url[cur] == '/') {
+                i = 0;
+                while (cur < urlSz && url[cur] != 0 && i < 80) {
+                    outPath[i++] = url[cur++];
+                }
+                outPath[i] = 0;
+            }
+            else {
+                outPath[0] = '/';
+                outPath[1] = 0;
             }
-            ocsp->overridePath[i] = 0;
-        }
-        else {
-            ocsp->overridePath[0] = '/';
-            ocsp->overridePath[1] = 0;
         }
-            
+    }
+
+    return 0;
+}
 
+
+int CyaSSL_OCSP_set_override_url(CYASSL_OCSP* ocsp, const char* url)
+{
+    if (ocsp != NULL) {
+        int urlSz = strlen(url);
+        decode_url(url, urlSz,
+            ocsp->overrideName, ocsp->overridePath, &ocsp->overridePort);
         return 1;
     }
 
@@ -164,8 +185,9 @@ static INLINE void tcp_socket(SOCKET_T* sockfd, SOCKADDR_IN_T* addr,
                    entry->h_length);
             host = inet_ntoa(tmp.sin_addr);
         }
-        else
+        else {
             CYASSL_MSG("no entry for host");
+        }
     }
 
     *sockfd = socket(AF_INET_V, SOCK_STREAM, 0);
@@ -185,13 +207,14 @@ static INLINE void tcp_connect(SOCKET_T* sockfd, const char* ip, word16 port)
     SOCKADDR_IN_T addr;
     tcp_socket(sockfd, &addr, ip, port);
 
-    if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0)
+    if (connect(*sockfd, (const struct sockaddr*)&addr, sizeof(addr)) != 0) {
         CYASSL_MSG("tcp connect failed");
+    }
 }
 
 
-static int build_http_request(CYASSL_OCSP* ocsp, int ocspReqSz,
-                                                        byte* buf, int bufSize)
+static int build_http_request(const char* domainName, const char* path,
+                                    int ocspReqSz, byte* buf, int bufSize)
 {
     return snprintf((char*)buf, bufSize,
         "POST %s HTTP/1.1\r\n"
@@ -199,47 +222,27 @@ static int build_http_request(CYASSL_OCSP* ocsp, int ocspReqSz,
         "Content-Length: %d\r\n"
         "Content-Type: application/ocsp-request\r\n"
         "\r\n", 
-        ocsp->overridePath, ocsp->overrideName, ocspReqSz);
+        path, domainName, ocspReqSz);
 }
 
-#if 0
-static const char foo[] = \
-        "\x30\x81\xB7\x30\x81\xB4\x30\x81\x8C\x30\x44\x30\x42\x30\x09\x06\x05\x2B\x0E\x03" \
-        "\x02\x1A\x05\x00\x04\x14\x49\x2D\x52\x83\x4B\x40\x37\xF5\xA9\x9E\x26\xA2\x3E\x48" \
-        "\x2F\x2E\x37\x34\xC9\x54\x04\x14\x21\xA2\x25\xEE\x57\x38\x34\x5A\x24\x9D\xF3\x7C" \
-        "\x18\x60\x59\x7A\x04\x3D\xF5\x69\x02\x09\x00\x89\x5A\xA2\xBD\xFE\x26\x8B\xEE\x30" \
-        "\x44\x30\x42\x30\x09\x06\x05\x2B\x0E\x03\x02\x1A\x05\x00\x04\x14\x49\x2D\x52\x83" \
-        "\x4B\x40\x37\xF5\xA9\x9E\x26\xA2\x3E\x48\x2F\x2E\x37\x34\xC9\x54\x04\x14\x21\xA2" \
-        "\x25\xEE\x57\x38\x34\x5A\x24\x9D\xF3\x7C\x18\x60\x59\x7A\x04\x3D\xF5\x69\x02\x09" \
-        "\x00\x89\x5A\xA2\xBD\xFE\x26\x8B\xEF\xA2\x23\x30\x21\x30\x1F\x06\x09\x2B\x06\x01" \
-        "\x05\x05\x07\x30\x01\x02\x04\x12\x04\x10\x20\x56\x47\x19\x65\x33\xB6\xB5\xAD\x39" \
-        "\x1F\x21\x65\xE0\x44\x1E";
-
-
-static int build_ocsp_request(CYASSL_OCSP* ocsp, byte* buf, int bufSz)
-{
-    memcpy(buf, foo, sizeof(foo));
-    return sizeof(foo) - 1;
-}
-#endif
 
-static byte* decode_http_response(byte* httpBuf, int httpBufSz, int* ocspRespSz)
+static int decode_http_response(byte* httpBuf, int httpBufSz, byte** dst)
 {
     int idx = 0;
     int stop = 0;
+    int len = 0;
     byte* contentType = NULL;
     byte* contentLength = NULL;
-    byte* content = NULL;
     char* buf = (char*)httpBuf; /* kludge so I'm not constantly casting */
 
     if (strncasecmp(buf, "HTTP/1", 6) != 0)
-        return NULL;
+        return 0;
     
     idx = 9; /* sets to the first byte after "HTTP/1.X ", which should be the
               * HTTP result code */
 
      if (strncasecmp(&buf[idx], "200 OK", 6) != 0)
-        return NULL;
+        return 0;
     
     idx += 8;
 
@@ -254,18 +257,16 @@ static byte* decode_http_response(byte* httpBuf, int httpBufSz, int* ocspRespSz)
                 idx += 13;
                 if (buf[idx] == ' ') idx++;
                 if (strncasecmp(&buf[idx], "application/ocsp-response", 25) != 0)
-                    return NULL;
+                    return 0;
                 idx += 27;
             } else if (contentLength == NULL &&
                 strncasecmp(&buf[idx], "Content-Length:", 15) == 0) {
-                int len = 0;
                 idx += 15;
                 if (buf[idx] == ' ') idx++;
-                while (buf[idx] > '0' && buf[idx] < '9' && idx < httpBufSz) {
+                while (buf[idx] >= '0' && buf[idx] <= '9' && idx < httpBufSz) {
                     len = (len * 10) + (buf[idx] - '0');
                     idx++;
                 }
-                *ocspRespSz = len;
                 idx += 2; /* skip the crlf */
             } else {
                 /* Advance idx past the next \r\n */
@@ -275,78 +276,251 @@ static byte* decode_http_response(byte* httpBuf, int httpBufSz, int* ocspRespSz)
             }
         }
     }
-    return &httpBuf[idx];
+    
+    if (len > 0) {
+        *dst = (byte*)XMALLOC(len, NULL, DYNAMIC_TYPE_IN_BUFFER);
+        XMEMCPY(*dst, httpBuf + idx, len);
+    }
+
+    return len;
 }
 
 
-#define SCRATCH_BUFFER_SIZE 2048
+static int InitOCSP_Entry(OCSP_Entry* ocspe, DecodedCert* cert)
+{
+    CYASSL_ENTER("InitOCSP_Entry");
 
-int CyaSSL_OCSP_Lookup_Cert(CYASSL_OCSP* ocsp, DecodedCert* cert)
+    ocspe->next = NULL;
+    XMEMCPY(ocspe->issuerHash, cert->issuerHash, SHA_DIGEST_SIZE);
+    XMEMCPY(ocspe->issuerKeyHash, cert->issuerKeyHash, SHA_DIGEST_SIZE);
+    ocspe->status = NULL;
+    ocspe->totalStatus = 0;
+
+    return 0;
+}
+
+
+static OCSP_Entry* find_ocsp_entry(CYASSL_OCSP* ocsp, DecodedCert* cert)
 {
-    SOCKET_T sfd = -1;
-    byte buf[SCRATCH_BUFFER_SIZE];
-    byte* httpBuf = &buf[0];
-    int httpBufSz = SCRATCH_BUFFER_SIZE/4;
-    byte* ocspReqBuf = &buf[httpBufSz];
-    int ocspReqSz = SCRATCH_BUFFER_SIZE - httpBufSz;
-    OcspResponse ocspResponse;
-    int result = CERT_UNKNOWN;
+    OCSP_Entry* entry = ocsp->ocspList;
+
+    while (entry)
+    {
+        if (XMEMCMP(entry->issuerHash, cert->issuerHash, SHA_DIGEST_SIZE) == 0
+            && XMEMCMP(entry->issuerKeyHash, cert->issuerKeyHash,
+                                                        SHA_DIGEST_SIZE) == 0)
+        {
+            CYASSL_MSG("Found OCSP responder");
+            break;
+        }
+        else
+        {
+            entry = entry->next;
+        }
+    }
 
-    /* If OCSP lookups are disabled, return success. */
-    if (!ocsp->enabled) {
-        CYASSL_MSG("OCSP lookup disabled, assuming CERT_GOOD");
-        return CERT_GOOD;
+    if (entry == NULL)
+    {
+        CYASSL_MSG("Add a new OCSP entry");
+        entry = (OCSP_Entry*)XMALLOC(sizeof(OCSP_Entry),
+                                                NULL, DYNAMIC_TYPE_OCSP_ENTRY);
+        if (entry != NULL)
+        {
+            InitOCSP_Entry(entry, cert);
+            entry->next = ocsp->ocspList;
+            ocsp->ocspList = entry;
+        }
     }
 
-    /* If OCSP lookups are enabled, but URL Override is disabled, return 
-    ** a failure. Need to have an override URL for right now. */
-    if (!ocsp->useOverrideUrl || cert == NULL) {
-        CYASSL_MSG("OCSP lookup enabled, but URL Override disabled");
-        return CERT_UNKNOWN;
+    return entry;
+}
+
+
+static CertStatus* find_cert_status(OCSP_Entry* ocspe, DecodedCert* cert)
+{
+    CertStatus* stat = ocspe->status;
+
+    while (stat)
+    {
+        if(stat->serialSz == cert->serialSz &&
+            (XMEMCMP(stat->serial, cert->serial, cert->serialSz) == 0))
+        {
+            break;
+        }
+        else
+        {
+            stat = stat->next;
+        }
+    }
+    if (stat == NULL)
+    {
+        stat = (CertStatus*)XMALLOC(sizeof(CertStatus),
+                                            NULL, DYNAMIC_TYPE_OCSP_STATUS);
+        if (stat != NULL)
+        {
+            XMEMCPY(stat->serial, cert->serial, cert->serialSz);
+            stat->serialSz = cert->serialSz;
+            stat->status = -1;
+            stat->nextDate[0] = 0;
+            ocspe->totalStatus++;
+
+            stat->next = ocspe->status;
+            ocspe->status = stat;
+        }
     }
 
-    XMEMCPY(ocsp->status[0].issuerHash, cert->issuerHash, SHA_SIZE);
-    XMEMCPY(ocsp->status[0].issuerKeyHash, cert->issuerKeyHash, SHA_SIZE);
-    XMEMCPY(ocsp->status[0].serial, cert->serial, cert->serialSz);
-    ocsp->status[0].serialSz = cert->serialSz;
-    ocsp->statusLen = 1;
+    return stat;
+}
+
+
+#define SCRATCH_BUFFER_SIZE 2048
+
+static int http_ocsp_transaction(CYASSL_OCSP* ocsp, DecodedCert* cert,
+                        byte* ocspReqBuf, int ocspReqSz, byte** ocspRespBuf)
+{
+    SOCKET_T sfd = -1;
+    byte httpBuf[SCRATCH_BUFFER_SIZE];
+    int httpBufSz = SCRATCH_BUFFER_SIZE;
+    char domainName[80], path[80];
+    int port, ocspRespSz;
+
+    if (ocsp->useOverrideUrl || cert->extAuthInfo == NULL) {
+        if (ocsp->overrideName != NULL) {
+            XMEMCPY(domainName, ocsp->overrideName, 80);
+            XMEMCPY(path, ocsp->overridePath, 80);
+            port = ocsp->overridePort;
+        } else
+            return OCSP_NEED_URL;
+    } else {
+        if (!decode_url((const char*)cert->extAuthInfo, cert->extAuthInfoSz,
+                                                    domainName, path, &port))
+            return OCSP_NEED_URL;
+    }
 
-    /*ocspReqSz = build_ocsp_request(ocsp, ocspReqBuf, ocspReqSz);*/
-    ocspReqSz = EncodeOcspRequest(cert, ocspReqBuf, ocspReqSz);
-    httpBufSz = build_http_request(ocsp, ocspReqSz, httpBuf, httpBufSz);
+    httpBufSz = build_http_request(domainName, path, ocspReqSz,
+                                                        httpBuf, httpBufSz);
 
-    tcp_connect(&sfd, ocsp->overrideName, ocsp->overridePort);
+    tcp_connect(&sfd, domainName, port);
     if (sfd > 0) {
         int written;
         written = write(sfd, httpBuf, httpBufSz);
         if (written == httpBufSz) {
             written = write(sfd, ocspReqBuf, ocspReqSz);
             if (written == ocspReqSz) {
-                httpBufSz = read(sfd, buf, SCRATCH_BUFFER_SIZE);
+                httpBufSz = read(sfd, httpBuf, SCRATCH_BUFFER_SIZE);
                 if (httpBufSz > 0) {
-                    ocspReqBuf = decode_http_response(buf, httpBufSz,
-                        &ocspReqSz);
+                    ocspRespSz = decode_http_response(httpBuf, httpBufSz,
+                        ocspRespBuf);
                 }
             }
         }
         close(sfd);
-        if (ocspReqBuf == NULL) {
+        if (ocspRespSz == 0) {
             CYASSL_MSG("HTTP response was not OK, no OCSP response");
-            return CERT_UNKNOWN;
+            return OCSP_LOOKUP_FAIL;
         }
     } else {
         CYASSL_MSG("OCSP Responder connection failed");
-        return CERT_UNKNOWN;
+        return OCSP_LOOKUP_FAIL;
     }
 
-    InitOcspResponse(&ocspResponse, ocspReqBuf, ocspReqSz, NULL);
+    return ocspRespSz;
+}
+
+
+static int xstat2err(int stat)
+{
+    switch (stat) {
+        case CERT_GOOD:
+            return 0;
+            break;
+        case CERT_REVOKED:
+            return OCSP_CERT_REVOKED;
+            break;
+        default:
+            return OCSP_CERT_UNKNOWN;
+            break;
+    }
+}
+
+
+int CyaSSL_OCSP_Lookup_Cert(CYASSL_OCSP* ocsp, DecodedCert* cert)
+{
+    byte ocspReqBuf[SCRATCH_BUFFER_SIZE];
+    int ocspReqSz = SCRATCH_BUFFER_SIZE;
+    byte* ocspRespBuf = NULL;
+    int ocspRespSz;
+    OcspRequest ocspRequest;
+    OcspResponse ocspResponse;
+    int result = 0;
+    OCSP_Entry* ocspe;
+    CertStatus* certStatus;
+
+    /* If OCSP lookups are disabled, return success. */
+    if (!ocsp->enabled) {
+        CYASSL_MSG("OCSP lookup disabled, assuming CERT_GOOD");
+        return 0;
+    }
+
+    ocspe = find_ocsp_entry(ocsp, cert);
+    if (ocspe == NULL) {
+        CYASSL_MSG("alloc OCSP entry failed");
+        return MEMORY_ERROR;
+    }
+
+    certStatus = find_cert_status(ocspe, cert);
+    if (certStatus == NULL)
+    {
+        CYASSL_MSG("alloc OCSP cert status failed");
+        return MEMORY_ERROR;
+    }
+
+    if (certStatus->status != -1)
+    {
+        if (!ValidateDate(certStatus->thisDate,
+                                        certStatus->thisDateFormat, BEFORE) ||
+            (certStatus->nextDate[0] == 0) ||
+            !ValidateDate(certStatus->nextDate,
+                                        certStatus->nextDateFormat, AFTER))
+        {
+            CYASSL_MSG("\tinvalid status date, looking up cert");
+            certStatus->status = -1;
+        }
+        else
+        {
+            CYASSL_MSG("\tusing cached status");
+            result = xstat2err(certStatus->status);
+            return result;
+        }
+    }
+    
+    InitOcspRequest(&ocspRequest, cert, ocspReqBuf, ocspReqSz);
+    ocspReqSz = EncodeOcspRequest(&ocspRequest);
+    result = http_ocsp_transaction(ocsp, cert,
+                                        ocspReqBuf, ocspReqSz, &ocspRespBuf);
+    if (result < 0) return result;
+        /* If the transaction failed, return that result. */
+
+    InitOcspResponse(&ocspResponse, certStatus, ocspRespBuf, ocspRespSz);
     OcspResponseDecode(&ocspResponse);
+
     if (ocspResponse.responseStatus != OCSP_SUCCESSFUL) {
         CYASSL_MSG("OCSP Responder failure");
+        result = OCSP_LOOKUP_FAIL;
     } else {
-        result = ocspResponse.certStatus[0];
+        if (CompareOcspReqResp(&ocspRequest, &ocspResponse) == 0)
+        {
+            result = xstat2err(ocspResponse.status->status);
+        }
+        else
+        {
+            CYASSL_MSG("OCSP Response incorrect for Request");
+            result = OCSP_LOOKUP_FAIL;
+        }
+    }
+    if (ocspReqBuf != NULL) {
+        XFREE(ocspRespBuf, NULL, DYNAMIC_TYPE_IN_BUFFER);
     }
-    FreeOcspResponse(&ocspResponse);
 
     return result;
 }
index d94f9ab9e922bf3449c3e9255173dddce89df48b..037d52896bb2b9a2ad48751a533fb53ece7611fb 100644 (file)
 #include <cyassl/sniffer.h>
 #include <cyassl/sniffer_error.h>
 
+
+#ifndef min
+
+static INLINE word32 min(word32 a, word32 b)
+{
+    return a > b ? b : a;
+}
+
+#endif
+
+
 /* Misc constants */
 enum {
     MAX_SERVER_ADDRESS = 128, /* maximum server address length */
@@ -61,6 +72,9 @@ enum {
     PSEUDO_HDR_SZ      = 12,  /* TCP Pseudo Header size in bytes */
     FATAL_ERROR_STATE  =  1,  /* SnifferSession fatal error state */
     SNIFFER_TIMEOUT    = 900, /* Cache unclosed Sessions for 15 minutes */
+    TICKET_HINT_LEN    = 4,   /* Session Ticket Hint length */
+    EXT_TYPE_SZ        = 2,   /* Extension length */
+    TICKET_EXT_ID      = 0x23 /* Session Ticket Extension ID */
 };
 
 
@@ -196,6 +210,14 @@ static const char* const msgTable[] =
 
     /* 61 */
     "Missed the Client Hello Entirely",
+    "Got Hello Request msg",
+    "Got Session Ticket msg",
+    "Bad Input",
+    "Bad Decrypt Type",
+
+    /* 66 */
+    "Bad Finished Message Processing",
+    "Bad Compression Type"
 };
 
 
@@ -248,7 +270,7 @@ typedef struct Flags {
     byte           cached;          /* have we cached this session yet */
     byte           clientHello;     /* processed client hello yet, for SSLv2 */
     byte           finCount;        /* get both FINs before removing */
-    byte           fatalError;      /* fatal error state */    
+    byte           fatalError;      /* fatal error state */
 } Flags;
 
 
@@ -279,7 +301,8 @@ typedef struct SnifferSession {
     time_t         bornOn;          /* born on ticks */
     PacketBuffer*  cliReassemblyList; /* client out of order packets */
     PacketBuffer*  srvReassemblyList; /* server out of order packets */
-    struct SnifferSession* next;    /* for hash table list */
+    struct SnifferSession* next;      /* for hash table list */
+    byte*          ticketID;          /* mac ID of session ticket */
 } SnifferSession;
 
 
@@ -347,6 +370,8 @@ static void FreeSnifferSession(SnifferSession* session)
         
         FreePacketList(session->cliReassemblyList);
         FreePacketList(session->srvReassemblyList);
+
+        free(session->ticketID);
     }
     free(session);
 }
@@ -442,6 +467,7 @@ static void InitSession(SnifferSession* session)
     session->cliReassemblyList = 0;
     session->srvReassemblyList = 0;
     session->next           = 0;
+    session->ticketID       = 0;
     
     InitFlags(&session->flags);
     InitFinCapture(&session->finCaputre);
@@ -1041,7 +1067,7 @@ static int ProcessClientKeyExchange(const byte* input, int* sslBytes,
         FreeRsaKey(&key);
         return -1;
     }
-    
+
     MakeMasterSecret(session->sslServer);
     MakeMasterSecret(session->sslClient);
 #ifdef SHOW_SECRETS
@@ -1067,6 +1093,39 @@ static int ProcessClientKeyExchange(const byte* input, int* sslBytes,
 }
 
 
+/* Process Session Ticket */
+static int ProcessSessionTicket(const byte* input, int* sslBytes,
+                                SnifferSession* session, char* error)
+{
+    word16 len;
+
+    /* make sure can read through hint and len */
+    if (TICKET_HINT_LEN + LENGTH_SZ > *sslBytes) {
+        SetError(BAD_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    
+    input     += TICKET_HINT_LEN;  /* skip over hint */
+    *sslBytes -= TICKET_HINT_LEN;
+
+    len = (input[0] << 8) | input[1];
+    input     += LENGTH_SZ;
+    *sslBytes -= LENGTH_SZ;
+
+    /* make sure can read through ticket */
+    if (len > *sslBytes || len < ID_LEN) {
+        SetError(BAD_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+
+    /* store session with macID as sessionID */
+    session->sslServer->options.haveSessionId = 1;
+    XMEMCPY(session->sslServer->arrays.sessionID, input + len - ID_LEN, ID_LEN);
+    
+    return 0;
+}
+
+
 /* Process Server Hello */
 static int ProcessServerHello(const byte* input, int* sslBytes,
                               SnifferSession* session, char* error)
@@ -1074,6 +1133,7 @@ static int ProcessServerHello(const byte* input, int* sslBytes,
     ProtocolVersion pv;
     byte            b;
     int             toRead = sizeof(ProtocolVersion) + RAN_LEN + ENUM_LEN;
+    int             doResume     = 0;
     
     /* make sure we didn't miss ClientHello */
     if (session->flags.clientHello == 0) {
@@ -1107,19 +1167,44 @@ static int ProcessServerHello(const byte* input, int* sslBytes,
         SetError(SERVER_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
         return -1;
     }
-    XMEMCPY(session->sslServer->arrays.sessionID, input, ID_LEN);
+    if (b) {
+        XMEMCPY(session->sslServer->arrays.sessionID, input, ID_LEN);
+        session->sslServer->options.haveSessionId = 1;
+    }
     input     += b;
     *sslBytes -= b;
-    
+   
+    /* cipher suite */ 
     (void)*input++;  /* eat first byte, always 0 */
     b = *input++;
     session->sslServer->options.cipherSuite = b;
     session->sslClient->options.cipherSuite = b;
     *sslBytes -= SUITE_LEN;
-    
-    if (XMEMCMP(session->sslServer->arrays.sessionID,
-               session->sslClient->arrays.sessionID, ID_LEN) == 0) {
-        /* resuming */
+
+    /* compression */
+    b = *input++;
+    *sslBytes -= ENUM_LEN;
+
+    if (b) {
+        SetError(BAD_COMPRESSION_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+   
+    if (session->sslServer->options.haveSessionId &&
+            XMEMCMP(session->sslServer->arrays.sessionID,
+                    session->sslClient->arrays.sessionID, ID_LEN) == 0)
+        doResume = 1;
+    else if (session->sslClient->options.haveSessionId == 0 &&
+             session->sslServer->options.haveSessionId == 0 &&
+             session->ticketID)
+        doResume = 1;
+
+    if (session->ticketID && doResume) {
+        /* use ticketID to retrieve from session */
+        XMEMCPY(session->sslServer->arrays.sessionID, session->ticketID,ID_LEN);
+    }
+
+    if (doResume ) {
         SSL_SESSION* resume = GetSession(session->sslServer,
                                        session->sslServer->arrays.masterSecret);
         if (resume == NULL) {
@@ -1170,8 +1255,9 @@ static int ProcessServerHello(const byte* input, int* sslBytes,
 static int ProcessClientHello(const byte* input, int* sslBytes, 
                               SnifferSession* session, char* error)
 {
-    byte sessionLen;
-    int  toRead = sizeof(ProtocolVersion) + RAN_LEN + ENUM_LEN;
+    byte   bLen;
+    word16 len;
+    int    toRead = sizeof(ProtocolVersion) + RAN_LEN + ENUM_LEN;
     
     session->flags.clientHello = 1;  /* don't process again */
     
@@ -1192,14 +1278,16 @@ static int ProcessClientHello(const byte* input, int* sslBytes,
     *sslBytes -= RAN_LEN;
     
     /* store session in case trying to resume */
-    sessionLen = *input++;
-    if (sessionLen) {
+    bLen = *input++;
+    *sslBytes -= ENUM_LEN;
+    if (bLen) {
         if (ID_LEN > *sslBytes) {
             SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
             return -1;
         }
         Trace(CLIENT_RESUME_TRY_STR);
         XMEMCPY(session->sslClient->arrays.sessionID, input, ID_LEN);
+        session->sslClient->options.haveSessionId = 1;
     }
 #ifdef SHOW_SECRETS
     {
@@ -1210,11 +1298,142 @@ static int ProcessClientHello(const byte* input, int* sslBytes,
         printf("\n");
     }
 #endif
+
+    input     += bLen;
+    *sslBytes -= bLen;
+
+    /* skip cipher suites */
+    /* make sure can read len */
+    if (SUITE_LEN > *sslBytes) {
+        SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    len = (input[0] << 8) | input[1];
+    input     += SUITE_LEN;
+    *sslBytes -= SUITE_LEN;
+    /* make sure can read suites + comp len */
+    if (len + ENUM_LEN > *sslBytes) {
+        SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    input     += len;
+    *sslBytes -= len;
+
+    /* skip compression */
+    bLen       = *input++;
+    *sslBytes -= ENUM_LEN;
+    /* make sure can read len */
+    if (bLen > *sslBytes) {
+        SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    input     += bLen;
+    *sslBytes -= bLen;
+  
+    if (*sslBytes == 0) {
+        /* no extensions */
+        return 0;
+    }
     
+    /* skip extensions until session ticket */
+    /* make sure can read len */
+    if (SUITE_LEN > *sslBytes) {
+        SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+    len = (input[0] << 8) | input[1];
+    input     += SUITE_LEN;
+    *sslBytes -= SUITE_LEN;
+    /* make sure can read through all extensions */
+    if (len > *sslBytes) {
+        SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+        return -1;
+    }
+
+    while (len > EXT_TYPE_SZ + LENGTH_SZ) {
+        byte   extType[EXT_TYPE_SZ];
+        word16 extLen;
+
+        extType[0] = input[0];
+        extType[1] = input[1];
+        input     += EXT_TYPE_SZ;
+        *sslBytes -= EXT_TYPE_SZ;
+
+        extLen = (input[0] << 8) | input[1];
+        input     += LENGTH_SZ;
+        *sslBytes -= LENGTH_SZ;
+
+        /* make sure can read through individual extension */
+        if (extLen > *sslBytes) {
+            SetError(CLIENT_HELLO_INPUT_STR, error, session, FATAL_ERROR_STATE);
+            return -1;
+        }
+
+        if (extType[0] == 0x00 && extType[1] == TICKET_EXT_ID) {
+
+            /* make sure can read through ticket if there is a non blank one */
+            if (extLen && extLen < ID_LEN) {
+                SetError(CLIENT_HELLO_INPUT_STR, error, session,
+                         FATAL_ERROR_STATE);
+                return -1;
+            }
+
+            if (extLen) {
+                if (session->ticketID == 0) {
+                    session->ticketID = (byte*)malloc(ID_LEN);
+                    if (session->ticketID == 0) {
+                        SetError(MEMORY_STR, error, session,
+                                 FATAL_ERROR_STATE);
+                        return -1;
+                    }
+                }
+                XMEMCPY(session->ticketID, input + extLen - ID_LEN, ID_LEN);
+            }
+        }
+
+        input     += extLen;
+        *sslBytes -= extLen;
+        len       -= extLen + EXT_TYPE_SZ + LENGTH_SZ;
+    }
+
     return 0;
 }
 
 
+/* Process Finished */
+static int ProcessFinished(const byte* input, int* sslBytes, 
+                           SnifferSession* session, char* error)
+{
+    SSL*   ssl;
+    word32 inOutIdx = 0;
+    int    ret;
+                
+    if (session->flags.side == SERVER_END)
+        ssl = session->sslServer;
+    else
+        ssl = session->sslClient;
+    ret = DoFinished(ssl, input, &inOutIdx, SNIFF);
+    *sslBytes -= (int)inOutIdx;
+
+    if (ret < 0) {
+        SetError(BAD_FINISHED_MSG, error, session, FATAL_ERROR_STATE);
+        return ret;
+    }
+                
+    if (ret == 0 && session->flags.cached == 0) {
+        if (session->sslServer->options.haveSessionId) {
+            CYASSL_SESSION* sess = GetSession(session->sslServer, NULL);
+            if (sess == NULL)
+                AddSession(session->sslServer);  /* don't re add */
+            session->flags.cached = 1;
+         }
+    }
+
+
+    return ret;
+}
+
+
 /* Process HandShake input */
 static int DoHandShake(const byte* input, int* sslBytes,
                        SnifferSession* session, char* error)
@@ -1242,6 +1461,13 @@ static int DoHandShake(const byte* input, int* sslBytes,
         case hello_verify_request:
             Trace(GOT_HELLO_VERIFY_STR);
             break;
+        case hello_request:
+            Trace(GOT_HELLO_REQUEST_STR);
+            break;
+        case session_ticket:
+            Trace(GOT_SESSION_TICKET_STR);
+            ret = ProcessSessionTicket(input, sslBytes, session, error);
+            break;
         case server_hello:
             Trace(GOT_SERVER_HELLO_STR);
             ret = ProcessServerHello(input, sslBytes, session, error);
@@ -1251,6 +1477,9 @@ static int DoHandShake(const byte* input, int* sslBytes,
             break;
         case server_key_exchange:
             Trace(GOT_SERVER_KEY_EX_STR);
+            /* can't know temp key passively */
+            SetError(BAD_CIPHER_SPEC_STR, error, session, FATAL_ERROR_STATE);
+            ret = -1;
             break;
         case certificate:
             Trace(GOT_CERT_STR);
@@ -1260,21 +1489,7 @@ static int DoHandShake(const byte* input, int* sslBytes,
             break;
         case finished:
             Trace(GOT_FINISHED_STR);
-            {
-                SSL*   ssl;
-                word32 inOutIdx = 0;
-                
-                if (session->flags.side == SERVER_END)
-                    ssl = session->sslServer;
-                else
-                    ssl = session->sslClient;
-                ret = DoFinished(ssl, input, &inOutIdx, SNIFF);
-                
-                if (ret == 0 && session->flags.cached == 0) {
-                    AddSession(session->sslServer);
-                    session->flags.cached = 1;
-                }
-            }
+            ret = ProcessFinished(input, sslBytes, session, error);
             break;
         case client_hello:
             Trace(GOT_CLIENT_HELLO_STR);
@@ -1329,6 +1544,10 @@ static void Decrypt(SSL* ssl, byte* output, const byte* input, word32 sz)
             RabbitProcess(&ssl->decrypt.rabbit, output, input, sz);
             break;
         #endif
+
+        default:
+            Trace(BAD_DECRYPT_TYPE);
+            break;
     }
 }
 
@@ -1644,16 +1863,6 @@ static int CheckSession(IpInfo* ipInfo, TcpInfo* tcpInfo, int sslBytes,
 }
 
 
-#ifndef min
-
-static INLINE word32 min(word32 a, word32 b)
-{
-    return a > b ? b : a;
-}
-
-#endif
-
-
 /* Create a Packet Buffer from *begin - end, adjust new *begin and bytesLeft */
 static PacketBuffer* CreateBuffer(word32* begin, word32 end, const byte* data,
                                   int* bytesLeft)
index 143c413da79e5c09cb6e1d147aa51f444aea7268..8456c5839262c173bab93f7179e8eb4dd762c790 100644 (file)
 #endif /* min */
 
 
+char* mystrnstr(const char* s1, const char* s2, unsigned int n)
+{
+    unsigned int s2_len = XSTRLEN(s2);
+
+    if (s2_len == 0)
+        return (char*)s1;
+
+    while (n >= s2_len && s1[0]) {
+        if (s1[0] == s2[0])
+            if (XMEMCMP(s1, s2, s2_len) == 0)
+                return (char*)s1;
+        s1++;
+        n--;
+    }
+
+    return NULL;
+}
+
 
 CYASSL_CTX* CyaSSL_CTX_new(CYASSL_METHOD* method)
 {
@@ -227,8 +245,8 @@ int CyaSSL_SetTmpDH(CYASSL* ssl, const unsigned char* p, int pSz,
         havePSK = ssl->options.havePSK;
     #endif
     InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH,
-               havePSK, ssl->options.haveNTRU, ssl->options.haveECDSA,
-               ssl->options.haveStaticECC, ssl->ctx->method->side);
+               havePSK, ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+               ssl->options.haveStaticECC, ssl->options.side);
 
     CYASSL_LEAVE("CyaSSL_SetTmpDH", 0);
     return 0;
@@ -473,6 +491,53 @@ int CyaSSL_set_group_messages(CYASSL* ssl)
 }
 
 
+int CyaSSL_SetVersion(CYASSL* ssl, int version)
+{
+    byte havePSK = 0;
+
+    CYASSL_ENTER("CyaSSL_SetVersion");
+
+    if (ssl == NULL) {
+        CYASSL_MSG("Bad function argument");
+        return BAD_FUNC_ARG;
+    }
+
+    switch (version) {
+        case CYASSL_SSLV3:
+            ssl->version = MakeSSLv3();
+            break;
+
+#ifndef NO_TLS
+        case CYASSL_TLSV1:
+            ssl->version = MakeTLSv1();
+            break;
+
+        case CYASSL_TLSV1_1:
+            ssl->version = MakeTLSv1_1();
+            break;
+
+        case CYASSL_TLSV1_2:
+            ssl->version = MakeTLSv1_2();
+            break;
+#endif
+
+        default:
+            CYASSL_MSG("Bad function argument");
+            return BAD_FUNC_ARG;
+    }
+
+    #ifndef NO_PSK
+        havePSK = ssl->options.havePSK;
+    #endif
+
+    InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
+                ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                ssl->options.haveStaticECC, ssl->options.side);
+
+    return SSL_SUCCESS;
+}
+
+
 /* does CA already exist on signer list */
 int AlreadySigner(CYASSL_CERT_MANAGER* cm, byte* hash)
 {
@@ -674,12 +739,12 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
         }
 
         /* find header */
-        headerEnd = XSTRSTR((char*)buff, header);
+        headerEnd = XSTRNSTR((char*)buff, header, sz);
         if (!headerEnd && type == PRIVATEKEY_TYPE) {  /* may be pkcs8 */
             XSTRNCPY(header, "-----BEGIN PRIVATE KEY-----", sizeof(header));
             XSTRNCPY(footer, "-----END PRIVATE KEY-----", sizeof(footer));
         
-            headerEnd = XSTRSTR((char*)buff, header);
+            headerEnd = XSTRNSTR((char*)buff, header, sz);
             if (headerEnd)
                 pkcs8 = 1;
             else {
@@ -688,7 +753,7 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
                 XSTRNCPY(footer, "-----END ENCRYPTED PRIVATE KEY-----",
                         sizeof(footer));
 
-                headerEnd = XSTRSTR((char*)buff, header);
+                headerEnd = XSTRNSTR((char*)buff, header, sz);
                 if (headerEnd)
                     pkcs8Enc = 1;
             }
@@ -697,7 +762,7 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
             XSTRNCPY(header, "-----BEGIN EC PRIVATE KEY-----", sizeof(header));
             XSTRNCPY(footer, "-----END EC PRIVATE KEY-----", sizeof(footer));
         
-            headerEnd = XSTRSTR((char*)buff, header);
+            headerEnd = XSTRNSTR((char*)buff, header, sz);
             if (headerEnd)
                 *eccKey = 1;
         }
@@ -705,7 +770,7 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
             XSTRNCPY(header, "-----BEGIN DSA PRIVATE KEY-----", sizeof(header));
             XSTRNCPY(footer, "-----END DSA PRIVATE KEY-----", sizeof(footer));
         
-            headerEnd = XSTRSTR((char*)buff, header);
+            headerEnd = XSTRNSTR((char*)buff, header, sz);
         }
         if (!headerEnd)
             return SSL_BAD_FILE;
@@ -723,28 +788,28 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
     {
         /* remove encrypted header if there */
         char encHeader[] = "Proc-Type";
-        char* line = XSTRSTR((char*)buff, encHeader);
+        char* line = XSTRNSTR((char*)buff, encHeader, PEM_LINE_LEN);
         if (line) {
             char* newline;
             char* finish;
-            char* start  = XSTRSTR(line, "DES");
+            char* start  = XSTRNSTR(line, "DES", PEM_LINE_LEN);
     
             if (!start)
-                start = XSTRSTR(line, "AES");
+                start = XSTRNSTR(line, "AES", PEM_LINE_LEN);
             
             if (!start) return SSL_BAD_FILE;
             if (!info)  return SSL_BAD_FILE;
             
-            finish = XSTRSTR(start, ",");
+            finish = XSTRNSTR(start, ",", PEM_LINE_LEN);
 
             if (start && finish && (start < finish)) {
-                newline = XSTRSTR(finish, "\r");
+                newline = XSTRNSTR(finish, "\r", PEM_LINE_LEN);
 
                 XMEMCPY(info->name, start, finish - start);
                 info->name[finish - start] = 0;
                 XMEMCPY(info->iv, finish + 1, sizeof(info->iv));
 
-                if (!newline) newline = XSTRSTR(finish, "\n");
+                if (!newline) newline = XSTRNSTR(finish, "\n", PEM_LINE_LEN);
                 if (newline && (newline > finish)) {
                     info->ivSz = (word32)(newline - (finish + 1));
                     info->set = 1;
@@ -764,7 +829,7 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
 #endif /* OPENSSL_EXTRA || HAVE_WEBSERVER */
 
         /* find footer */
-        footerEnd = XSTRSTR((char*)buff, footer);
+        footerEnd = XSTRNSTR((char*)buff, footer, sz);
         if (!footerEnd) return SSL_BAD_FILE;
 
         consumedEnd = footerEnd + XSTRLEN(footer);
@@ -1085,9 +1150,9 @@ int AddCA(CYASSL_CERT_MANAGER* cm, buffer der, int type, int verify)
                 case CTC_SHA384wECDSA:
                 case CTC_SHA512wECDSA:
                     CYASSL_MSG("ECDSA cert signature");
-                    ctx->haveECDSA = 1;
+                    ctx->haveECDSAsig = 1;
                     if (ssl)
-                        ssl->options.haveECDSA = 1;
+                        ssl->options.haveECDSAsig = 1;
                     break;
                 default:
                     CYASSL_MSG("Not ECDSA cert signature");
@@ -1280,28 +1345,64 @@ int CyaSSL_CTX_load_verify_locations(CYASSL_CTX* ctx, const char* file,
 }
 
 
+/* Verify the ceritficate, 1 for success, < 0 for error */
+int CyaSSL_CertManagerVerifyBuffer(CYASSL_CERT_MANAGER* cm, const byte* buff,
+                                   int sz, int format)
+{
+    int ret = 0;
+    int eccKey = 0;  /* not used */
+
+    DecodedCert cert;
+    buffer      der;
+
+    CYASSL_ENTER("CyaSSL_CertManagerVerifyBuffer");
+
+    der.buffer = NULL;
+
+    if (format == SSL_FILETYPE_PEM) { 
+        EncryptedInfo info;
+            
+        info.set      = 0;
+        info.ctx      = NULL;
+        info.consumed = 0;
+        ret = PemToDer(buff, sz, CERT_TYPE, &der, cm->heap, &info, &eccKey);
+        InitDecodedCert(&cert, der.buffer, der.length, cm->heap);
+    }
+    else
+        InitDecodedCert(&cert, (byte*)buff, sz, cm->heap);
+
+    if (ret == 0)
+        ret = ParseCertRelative(&cert, CERT_TYPE, 1, cm);
+#ifdef HAVE_CRL
+    if (ret == 0 && cm->crlEnabled)
+        ret = CheckCertCRL(cm->crl, &cert);
+#endif
+
+    FreeDecodedCert(&cert);
+    XFREE(der.buffer, cm->heap, DYNAMIC_TYPE_CERT);
+
+    return ret;
+}
+
+
 /* Verify the ceritficate, 1 for success, < 0 for error */
 int CyaSSL_CertManagerVerify(CYASSL_CERT_MANAGER* cm, const char* fname,
                              int format)
 {
-    int           ret = SSL_FATAL_ERROR;
-    int           eccKey = 0;  /* not used */
-    DecodedCert   cert;
-
+    int    ret = SSL_FATAL_ERROR;
     byte   staticBuffer[FILE_BUFFER_SIZE];
     byte*  myBuffer = staticBuffer;
     int    dynamic = 0;
     long   sz = 0;
-    buffer der;
     XFILE* file = XFOPEN(fname, "rb"); 
 
+    CYASSL_ENTER("CyaSSL_CertManagerVerify");
+
     if (!file) return SSL_BAD_FILE;
     XFSEEK(file, 0, XSEEK_END);
     sz = XFTELL(file);
     XREWIND(file);
 
-    der.buffer = NULL;
-
     if (sz > (long)sizeof(staticBuffer)) {
         CYASSL_MSG("Getting dynamic buffer");
         myBuffer = (byte*) XMALLOC(sz, cm->heap, DYNAMIC_TYPE_FILE);
@@ -1314,32 +1415,9 @@ int CyaSSL_CertManagerVerify(CYASSL_CERT_MANAGER* cm, const char* fname,
 
     if ( (ret = XFREAD(myBuffer, sz, 1, file)) < 0)
         ret = SSL_BAD_FILE;
-    else {
-        ret = 0;  /* ok */
-        if (format == SSL_FILETYPE_PEM) { 
-            EncryptedInfo info;
-            
-            info.set       = 0;
-            info.ctx      = NULL;
-            info.consumed = 0;
-            ret = PemToDer(myBuffer, sz, CERT_TYPE, &der, cm->heap, &info,
-                           &eccKey);
-            InitDecodedCert(&cert, der.buffer, der.length, cm->heap);
-
-        }
-        else
-            InitDecodedCert(&cert, myBuffer, sz, cm->heap);
+    else 
+        ret = CyaSSL_CertManagerVerifyBuffer(cm, myBuffer, sz, format);
 
-        if (ret == 0)
-            ret = ParseCertRelative(&cert, CERT_TYPE, 1, cm);
-#ifdef HAVE_CRL
-        if (ret == 0 && cm->crlEnabled)
-            ret = CheckCertCRL(cm->crl, &cert);
-#endif
-    }
-
-    FreeDecodedCert(&cert);
-    XFREE(der.buffer, cm->heap, DYNAMIC_TYPE_CERT);
     XFCLOSE(file);
     if (dynamic) XFREE(myBuffer, cm->heap, DYNAMIC_TYPE_FILE);
 
@@ -1432,6 +1510,15 @@ int CyaSSL_CertManagerDisableCRL(CYASSL_CERT_MANAGER* cm)
 }
 
 
+int CyaSSL_CTX_check_private_key(CYASSL_CTX* ctx)
+{
+    /* TODO: check private against public for RSA match */
+    (void)ctx; 
+    CYASSL_ENTER("SSL_CTX_check_private_key");
+    return SSL_SUCCESS;
+}
+
+
 #ifdef HAVE_CRL
 
 
@@ -1474,7 +1561,7 @@ int CyaSSL_CertManagerCheckCRL(CYASSL_CERT_MANAGER* cm, byte* der, int sz)
 
 int CyaSSL_CertManagerSetCRL_Cb(CYASSL_CERT_MANAGER* cm, CbMissingCRL cb)
 {
-    CYASSL_ENTER("CyaSSL_CertManagerLoadCRL");
+    CYASSL_ENTER("CyaSSL_CertManagerSetCRL_Cb");
     if (cm == NULL)
         return BAD_FUNC_ARG;
 
@@ -2050,8 +2137,8 @@ int CyaSSL_set_cipher_list(CYASSL* ssl, const char* list)
         #endif
 
         InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
-                   ssl->options.haveNTRU, ssl->options.haveECDSA,
-                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+                   ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                   ssl->options.haveStaticECC, ssl->options.side);
 
         return SSL_SUCCESS;
     }
@@ -3074,8 +3161,8 @@ int CyaSSL_set_compression(CYASSL* ssl)
         ssl->options.client_psk_cb = cb;
 
         InitSuites(&ssl->suites, ssl->version,TRUE,TRUE, ssl->options.haveNTRU,
-                   ssl->options.haveECDSA, ssl->options.haveStaticECC,
-                   ssl->ctx->method->side);
+                   ssl->options.haveECDSAsig, ssl->options.haveStaticECC,
+                   ssl->options.side);
     }
 
 
@@ -3095,8 +3182,8 @@ int CyaSSL_set_compression(CYASSL* ssl)
         ssl->options.server_psk_cb = cb;
 
         InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, TRUE,
-                   ssl->options.haveNTRU, ssl->options.haveECDSA,
-                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+                   ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                   ssl->options.haveStaticECC, ssl->options.side);
     }
 
 
@@ -3244,15 +3331,6 @@ int CyaSSL_set_compression(CYASSL* ssl)
     }
 
 
-    int CyaSSL_CTX_check_private_key(CYASSL_CTX* ctx)
-    {
-        /* TODO: check private against public for RSA match */
-        (void)ctx; 
-        CYASSL_ENTER("SSL_CTX_check_private_key");
-        return SSL_SUCCESS;
-    }
-
-
     void CyaSSL_set_bio(CYASSL* ssl, CYASSL_BIO* rd, CYASSL_BIO* wr)
     {
         CYASSL_ENTER("SSL_set_bio");
@@ -3329,8 +3407,8 @@ int CyaSSL_set_compression(CYASSL* ssl)
         havePSK = ssl->options.havePSK;
 #endif
         InitSuites(&ssl->suites, ssl->version, ssl->options.haveDH, havePSK,
-                   ssl->options.haveNTRU, ssl->options.haveECDSA,
-                   ssl->options.haveStaticECC, ssl->ctx->method->side);
+                   ssl->options.haveNTRU, ssl->options.haveECDSAsig,
+                   ssl->options.haveStaticECC, ssl->options.side);
     }
 
    
@@ -3407,6 +3485,27 @@ int CyaSSL_set_compression(CYASSL* ssl)
     }
 
 
+    /* return the next, if any, altname from the peer cert */
+    char* CyaSSL_X509_get_next_altname(CYASSL_X509* cert)
+    {
+        char* ret = NULL;
+        CYASSL_ENTER("CyaSSL_X509_get_next_altname");
+
+        /* don't have any to work with */
+        if (cert == NULL || cert->altNames == NULL)
+            return NULL;
+
+        /* already went through them */
+        if (cert->altNamesNext == NULL)
+            return NULL;
+
+        ret = cert->altNamesNext->name;
+        cert->altNamesNext = cert->altNamesNext->next;
+
+        return ret;
+    }
+
+
     CYASSL_X509_NAME* CyaSSL_X509_get_issuer_name(CYASSL_X509* cert)
     {
         CYASSL_ENTER("X509_get_issuer_name");
@@ -4942,6 +5041,23 @@ int CyaSSL_set_compression(CYASSL* ssl)
                 case TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA :
                     return "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA";
 
+                case TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 :
+                    return "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256";
+                case TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 :
+                    return "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384";
+                case TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 :
+                    return "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256";
+                case TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 :
+                    return "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384";
+                case TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 :
+                    return "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256";
+                case TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 :
+                    return "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384";
+                case TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 :
+                    return "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256";
+                case TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 :
+                    return "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384";
+
                 default:
                     return "NONE";
             }
@@ -4990,6 +5106,14 @@ int CyaSSL_set_compression(CYASSL* ssl)
                     return "TLS_NTRU_RSA_WITH_AES_128_CBC_SHA";
                 case TLS_NTRU_RSA_WITH_AES_256_CBC_SHA :
                     return "TLS_NTRU_RSA_WITH_AES_256_CBC_SHA";
+                case TLS_RSA_WITH_AES_128_GCM_SHA256 :
+                    return "TLS_RSA_WITH_AES_128_GCM_SHA256";
+                case TLS_RSA_WITH_AES_256_GCM_SHA384 :
+                    return "TLS_RSA_WITH_AES_256_GCM_SHA384";
+                case TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 :
+                    return "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256";
+                case TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 :
+                    return "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384";
                 default:
                     return "NONE";
             }  /* switch */
@@ -7695,25 +7819,34 @@ const byte* CyaSSL_get_sessionID(const CYASSL_SESSION* session)
 #endif /* SESSION_CERTS */
 
 
-#ifdef HAVE_OCSP
-
 long CyaSSL_CTX_OCSP_set_options(CYASSL_CTX* ctx, long options)
 {
     CYASSL_ENTER("CyaSSL_CTX_OCSP_set_options");
+#ifdef HAVE_OCSP
     if (ctx != NULL) {
-        ctx->ocsp.enabled = (options && CYASSL_OCSP_ENABLE) != 0;
-        ctx->ocsp.useOverrideUrl = (options && CYASSL_OCSP_URL_OVERRIDE) != 0;
+        ctx->ocsp.enabled = (options & CYASSL_OCSP_ENABLE) != 0;
+        ctx->ocsp.useOverrideUrl = (options & CYASSL_OCSP_URL_OVERRIDE) != 0;
         return 1;
     }
     return 0;
+#else
+    (void)ctx;
+    (void)options;
+    return NOT_COMPILED_IN;
+#endif
 }
 
 
 int CyaSSL_CTX_OCSP_set_override_url(CYASSL_CTX* ctx, const char* url)
 {
     CYASSL_ENTER("CyaSSL_CTX_OCSP_set_override_url");
+#ifdef HAVE_OCSP
     return CyaSSL_OCSP_set_override_url(&ctx->ocsp, url);
+#else
+    (void)ctx;
+    (void)url;
+    return NOT_COMPILED_IN;
+#endif
 }
 
-#endif
 
index dfeab8147fec946d595e61048803fe2d31b305d4..f5ef46007c518b57e2955613bb18c038a41dab96 100644 (file)
 #ifndef NO_TLS
 
 
+#ifndef min
+
+    static INLINE word32 min(word32 a, word32 b)
+    {
+        return a > b ? b : a;
+    }
+
+#endif /* min */
+
+
 /* calculate XOR for TLSv1 PRF */
 static INLINE void get_xor(byte *digest, word32 digLen, byte* md5, byte* sha)
 {
@@ -43,28 +53,51 @@ static INLINE void get_xor(byte *digest, word32 digLen, byte* md5, byte* sha)
 }
 
 
+#ifdef CYASSL_SHA384
+    #define PHASH_MAX_DIGEST_SIZE SHA384_DIGEST_SIZE
+#else
+    #define PHASH_MAX_DIGEST_SIZE SHA256_DIGEST_SIZE
+#endif
 
-/* compute p_hash for MD5, SHA-1, or SHA-256 for TLSv1 PRF */
+/* compute p_hash for MD5, SHA-1, SHA-256, or SHA-384 for TLSv1 PRF */
 static void p_hash(byte* result, word32 resLen, const byte* secret,
                    word32 secLen, const byte* seed, word32 seedLen, int hash)
 {
-    word32   len = hash == md5_mac ? MD5_DIGEST_SIZE : hash == sha_mac ?
-                                           SHA_DIGEST_SIZE : SHA256_DIGEST_SIZE;
-    word32   times = resLen / len;
-    word32   lastLen = resLen % len;
+    word32   len = MD5_DIGEST_SIZE;
+    word32   times;
+    word32   lastLen;
     word32   lastTime;
     word32   i;
     word32   idx = 0;
-    byte     previous[SHA256_DIGEST_SIZE];  /* max size */
-    byte     current[SHA256_DIGEST_SIZE];   /* max size */
+    byte     previous[PHASH_MAX_DIGEST_SIZE];  /* max size */
+    byte     current[PHASH_MAX_DIGEST_SIZE];   /* max size */
 
     Hmac hmac;
 
+    if (hash == md5_mac) {
+        hash = MD5;
+    }
+    else if (hash == sha_mac) {
+        len = SHA_DIGEST_SIZE;
+        hash = SHA;
+    } else if (hash == sha256_mac) {
+        len = SHA256_DIGEST_SIZE;
+        hash = SHA256;
+    }
+#ifdef CYASSL_SHA384
+    else if (hash == sha384_mac)
+    {
+        len = SHA384_DIGEST_SIZE;
+        hash = SHA384;
+    }
+#endif
+
+    times = resLen / len;
+    lastLen = resLen % len;
     if (lastLen) times += 1;
     lastTime = times - 1;
 
-    HmacSetKey(&hmac, hash == md5_mac ? MD5 : hash == sha_mac ? SHA : SHA256,
-               secret, secLen);
+    HmacSetKey(&hmac, hash, secret, secLen);
     HmacUpdate(&hmac, seed, seedLen);       /* A0 = seed */
     HmacFinal(&hmac, previous);             /* A1 */
 
@@ -74,7 +107,7 @@ static void p_hash(byte* result, word32 resLen, const byte* secret,
         HmacFinal(&hmac, current);
 
         if ( (i == lastTime) && lastLen)
-            XMEMCPY(&result[idx], current, lastLen);
+            XMEMCPY(&result[idx], current, min(lastLen, sizeof(current)));
         else {
             XMEMCPY(&result[idx], current, len);
             idx += len;
@@ -89,7 +122,7 @@ static void p_hash(byte* result, word32 resLen, const byte* secret,
 /* compute TLSv1 PRF (pseudo random function using HMAC) */
 static void PRF(byte* digest, word32 digLen, const byte* secret, word32 secLen,
             const byte* label, word32 labLen, const byte* seed, word32 seedLen,
-            int useSha256)
+            int useAtLeastSha256, int hash_type)
 {
     word32 half = (secLen + 1) / 2;
 
@@ -112,9 +145,13 @@ static void PRF(byte* digest, word32 digLen, const byte* secret, word32 secLen,
     XMEMCPY(labelSeed, label, labLen);
     XMEMCPY(labelSeed + labLen, seed, seedLen);
 
-    if (useSha256) {
+    if (useAtLeastSha256) {
+        /* If a cipher suite wants an algorithm better than sha256, it
+         * should use better. */
+        if (hash_type < sha256_mac)
+            hash_type = sha256_mac;
         p_hash(digest, digLen, secret, secLen, labelSeed, labLen + seedLen,
-               sha256_mac);
+               hash_type);
         return;
     }
 
@@ -126,20 +163,35 @@ static void PRF(byte* digest, word32 digLen, const byte* secret, word32 secLen,
 }
 
 
+#ifdef CYASSL_SHA384
+    #define HSHASH_SZ SHA384_DIGEST_SIZE
+#else
+    #define HSHASH_SZ FINISHED_SZ
+#endif
+
+
 void BuildTlsFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
 {
     const byte* side;
-    byte        handshake_hash[FINISHED_SZ];
+    byte        handshake_hash[HSHASH_SZ];
     word32      hashSz = FINISHED_SZ;
 
     Md5Final(&ssl->hashMd5, handshake_hash);
     ShaFinal(&ssl->hashSha, &handshake_hash[MD5_DIGEST_SIZE]);
-#ifndef NO_SHA256
     if (IsAtLeastTLSv1_2(ssl)) {
-        Sha256Final(&ssl->hashSha256, handshake_hash);
-        hashSz = SHA256_DIGEST_SIZE;
-    }
+#ifndef NO_SHA256
+        if (ssl->specs.mac_algorithm <= sha256_mac) {
+            Sha256Final(&ssl->hashSha256, handshake_hash);
+            hashSz = SHA256_DIGEST_SIZE;
+        }
 #endif
+#ifdef CYASSL_SHA384
+        if (ssl->specs.mac_algorithm == sha384_mac) {
+            Sha384Final(&ssl->hashSha384, handshake_hash);
+            hashSz = SHA384_DIGEST_SIZE;
+        }
+#endif
+    }
    
     if ( XSTRNCMP((const char*)sender, (const char*)client, SIZEOF_SENDER) == 0)
         side = tls_client;
@@ -147,7 +199,8 @@ void BuildTlsFinished(CYASSL* ssl, Hashes* hashes, const byte* sender)
         side = tls_server;
 
     PRF(hashes->md5, TLS_FINISHED_SZ, ssl->arrays.masterSecret, SECRET_LEN,
-        side, FINISHED_LABEL_SZ, handshake_hash, hashSz, IsAtLeastTLSv1_2(ssl));
+        side, FINISHED_LABEL_SZ, handshake_hash, hashSz, IsAtLeastTLSv1_2(ssl),
+        ssl->specs.mac_algorithm);
 }
 
 
@@ -197,7 +250,8 @@ int DeriveTlsKeys(CYASSL* ssl)
     XMEMCPY(&seed[RAN_LEN], ssl->arrays.clientRandom, RAN_LEN);
 
     PRF(key_data, length, ssl->arrays.masterSecret, SECRET_LEN, key_label,
-        KEY_LABEL_SZ, seed, SEED_LEN, IsAtLeastTLSv1_2(ssl));
+        KEY_LABEL_SZ, seed, SEED_LEN, IsAtLeastTLSv1_2(ssl),
+        ssl->specs.mac_algorithm);
 
     return StoreKeys(ssl, key_data);
 }
@@ -213,7 +267,7 @@ int MakeTlsMasterSecret(CYASSL* ssl)
     PRF(ssl->arrays.masterSecret, SECRET_LEN,
         ssl->arrays.preMasterSecret, ssl->arrays.preMasterSz,
         master_label, MASTER_LABEL_SZ, 
-        seed, SEED_LEN, IsAtLeastTLSv1_2(ssl));
+        seed, SEED_LEN, IsAtLeastTLSv1_2(ssl), ssl->specs.mac_algorithm);
 
 #ifdef SHOW_SECRETS
     {
index d304ad1d53c33426e4896db1a22d582d18be755b..a132538b6fe5d44468be24e637a62facd74d583e 100644 (file)
@@ -49,6 +49,7 @@ int main()
 #include <pcap/pcap.h>     /* pcap stuff */
 #include <stdio.h>         /* printf */
 #include <stdlib.h>        /* EXIT_SUCCESS */
+#include <string.h>        /* strcmp */
 #include <signal.h>        /* signal */
 
 #include <cyassl/sniffer.h>
@@ -62,7 +63,7 @@ typedef unsigned char byte;
 
 enum {
     ETHER_IF_FRAME_LEN = 14,   /* ethernet interface frame length */
-    LOCAL_IF_FRAME_LEN =  4,   /* localhost interface frame length  */
+    NULL_IF_FRAME_LEN =   4,   /* no link interface frame length  */
 };
 
 
@@ -71,7 +72,7 @@ pcap_if_t *alldevs;
 
 static void sig_handler(const int sig) 
 {
-    printf("SIGINT handled.\n");
+    printf("SIGINT handled = %d.\n", sig);
     if (pcap)
         pcap_close(pcap);
        pcap_freealldevs(alldevs);
@@ -82,7 +83,7 @@ static void sig_handler(const int sig)
 }
 
 
-void err_sys(const char* msg)
+static void err_sys(const char* msg)
 {
        fprintf(stderr, "%s\n", msg);
        exit(EXIT_FAILURE);
@@ -96,7 +97,7 @@ void err_sys(const char* msg)
 #endif
 
 
-char* iptos(unsigned int addr)
+static char* iptos(unsigned int addr)
 {
        static char    output[32];
        byte *p = (byte*)&addr;
@@ -112,11 +113,12 @@ int main(int argc, char** argv)
     int          ret;
        int                  inum;
        int                  port;
+    int          saveFile = 0;
        int                  i = 0;
+    int          frame = ETHER_IF_FRAME_LEN; 
     char         err[PCAP_ERRBUF_SIZE];
        char         filter[32];
-       char         loopback = 0;
-       char        *server = NULL;
+       const char  *server = NULL;
        struct       bpf_program fp;
        pcap_if_t   *d;
        pcap_addr_t *a;
@@ -124,87 +126,124 @@ int main(int argc, char** argv)
     signal(SIGINT, sig_handler);
 
 #ifndef _WIN32
-    ssl_InitSniffer();
+    ssl_InitSniffer();   /* dll load on Windows */
 #endif
     ssl_Trace("./tracefile.txt", err);
 
-       if (pcap_findalldevs(&alldevs, err) == -1)
-               err_sys("Error in pcap_findalldevs");
+    if (argc == 1) {
+        /* normal case, user chooses device and port */
 
-       for (d = alldevs; d; d=d->next) {
-               printf("%d. %s", ++i, d->name);
-               if (d->description)
-                       printf(" (%s)\n", d->description);
-               else
-                       printf(" (No description available)\n");
-       }
+           if (pcap_findalldevs(&alldevs, err) == -1)
+                   err_sys("Error in pcap_findalldevs");
 
-       if (i == 0)
-               err_sys("No interfaces found! Make sure pcap or WinPcap is installed "
-                "correctly and you have sufficient permissions");
+           for (d = alldevs; d; d=d->next) {
+                   printf("%d. %s", ++i, d->name);
+                   if (d->description)
+                           printf(" (%s)\n", d->description);
+                   else
+                           printf(" (No description available)\n");
+           }
 
-       printf("Enter the interface number (1-%d): ", i);
-       scanf("%d", &inum);
+           if (i == 0)
+                   err_sys("No interfaces found! Make sure pcap or WinPcap is"
+                    " installed correctly and you have sufficient permissions");
 
-       if (inum < 1 || inum > i)
-               err_sys("Interface number out of range");
+           printf("Enter the interface number (1-%d): ", i);
+           scanf("%d", &inum);
 
-       /* Jump to the selected adapter */
-       for (d = alldevs, i = 0; i < inum - 1; d = d->next, i++);
+           if (inum < 1 || inum > i)
+                   err_sys("Interface number out of range");
 
-       pcap = pcap_create(d->name, err);
+           /* Jump to the selected adapter */
+           for (d = alldevs, i = 0; i < inum - 1; d = d->next, i++);
 
-    if (pcap == NULL) printf("pcap_create failed %s\n", err);
+           pcap = pcap_create(d->name, err);
 
-       if (d->flags & PCAP_IF_LOOPBACK)
-               loopback = 1;
+        if (pcap == NULL) printf("pcap_create failed %s\n", err);
 
-       /* get an IPv4 address */
-       for (a = d->addresses; a; a = a->next) {
-               switch(a->addr->sa_family)
-               {
-                       case AF_INET:
-                               server =iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr);
-                               printf("server = %s\n", server);
-                               break;
-               }
-       }
-       if (server == NULL)
-               err_sys("Unable to get device IPv4 address");
+           /* get an IPv4 address */
+           for (a = d->addresses; a; a = a->next) {
+                   switch(a->addr->sa_family)
+                   {
+                           case AF_INET:
+                                   server = 
+                        iptos(((struct sockaddr_in *)a->addr)->sin_addr.s_addr);
+                                   printf("server = %s\n", server);
+                                   break;
 
-    ret = pcap_set_snaplen(pcap, 65536);
-    if (ret != 0) printf("pcap_set_snaplen failed %s\n", pcap_geterr(pcap));
+                default:
+                    break;
+                   }
+           }
+           if (server == NULL)
+                   err_sys("Unable to get device IPv4 address");
 
-    ret = pcap_set_timeout(pcap, 1000); 
-    if (ret != 0) printf("pcap_set_timeout failed %s\n", pcap_geterr(pcap));
+        ret = pcap_set_snaplen(pcap, 65536);
+        if (ret != 0) printf("pcap_set_snaplen failed %s\n", pcap_geterr(pcap));
 
-    ret = pcap_set_buffer_size(pcap, 1000000); 
-    if (ret != 0)
-               printf("pcap_set_buffer_size failed %s\n", pcap_geterr(pcap));
+        ret = pcap_set_timeout(pcap, 1000); 
+        if (ret != 0) printf("pcap_set_timeout failed %s\n", pcap_geterr(pcap));
+
+        ret = pcap_set_buffer_size(pcap, 1000000); 
+        if (ret != 0)
+                   printf("pcap_set_buffer_size failed %s\n", pcap_geterr(pcap));
+
+        ret = pcap_set_promisc(pcap, 1); 
+        if (ret != 0) printf("pcap_set_promisc failed %s\n", pcap_geterr(pcap));
+
+
+        ret = pcap_activate(pcap);
+        if (ret != 0) printf("pcap_activate failed %s\n", pcap_geterr(pcap));
+
+           printf("Enter the port to scan: ");
+           scanf("%d", &port);
 
-    ret = pcap_set_promisc(pcap, 1); 
-    if (ret != 0) printf("pcap_set_promisc failed %s\n", pcap_geterr(pcap));
+           SNPRINTF(filter, sizeof(filter), "tcp and port %d", port);
 
+           ret = pcap_compile(pcap, &fp, filter, 0, 0);
+        if (ret != 0) printf("pcap_compile failed %s\n", pcap_geterr(pcap));
 
-    ret = pcap_activate(pcap);
-    if (ret != 0) printf("pcap_activate failed %s\n", pcap_geterr(pcap));
+        ret = pcap_setfilter(pcap, &fp);
+        if (ret != 0) printf("pcap_setfilter failed %s\n", pcap_geterr(pcap));
 
-       printf("Enter the port to scan: ");
-       scanf("%d", &port);
+        ret = ssl_SetPrivateKey(server, port, "../../certs/server-key.pem",
+                               FILETYPE_PEM, NULL, err);
+    }
+    else if (argc >= 3) {
+        saveFile = 1;
+        pcap = pcap_open_offline(argv[1], err);
+        if (pcap == NULL) {
+            printf("pcap_open_offline failed %s\n", err);
+            ret = -1;
+        }
+        else {
+            /* defaults for server and port */
+            port = 443;
+            server = "127.0.0.1";
 
-       SNPRINTF(filter, sizeof(filter), "tcp and port %d", port);
+            if (argc >= 4)
+                server = argv[3];
 
-       ret = pcap_compile(pcap, &fp, filter, 0, 0);
-    if (ret != 0) printf("pcap_compile failed %s\n", pcap_geterr(pcap));
+            if (argc >= 5)
+                port = atoi(argv[4]);
 
-    ret = pcap_setfilter(pcap, &fp);
-    if (ret != 0) printf("pcap_setfilter failed %s\n", pcap_geterr(pcap));
+            ret = ssl_SetPrivateKey(server, port, argv[2],
+                                    FILETYPE_PEM, NULL, err);
+        }
+    }
+    else {
+        /* usage error */
+        printf(
+             "usage: ./snifftest or ./snifftest dump pemKey [server] [port]\n");
+        exit(EXIT_FAILURE);
+    }
 
-    ret = ssl_SetPrivateKey(server, port, "../../certs/server-key.pem",
-                            FILETYPE_PEM, NULL, err);
     if (ret != 0)
         err_sys(err);
 
+    if (pcap_datalink(pcap) == DLT_NULL) 
+        frame = NULL_IF_FRAME_LEN;
+
     while (1) {
         struct pcap_pkthdr header;
         const unsigned char* packet = pcap_next(pcap, &header);
@@ -213,9 +252,6 @@ int main(int argc, char** argv)
             byte data[65535];
 
             if (header.caplen > 40)  { /* min ip(20) + min tcp(20) */
-                               int frame = ETHER_IF_FRAME_LEN;
-                               if (loopback)
-                                       frame = LOCAL_IF_FRAME_LEN;
                                packet        += frame;
                                header.caplen -= frame;                                 
             }
@@ -230,6 +266,8 @@ int main(int argc, char** argv)
                                printf("SSL App Data:%s\n", data);
             }
         }
+        else if (saveFile)
+            break;      /* we're done reading file */
     }
 
     return EXIT_SUCCESS;
index c0067b9f53c8036cd85eba4c2642671f36f962cb..102dc09a57357c49b1360e279fe4458af6de802e 100644 (file)
@@ -21,9 +21,8 @@
 
 #include <stdlib.h>
 #include <cyassl/ssl.h>
-#define NO_MAIN_DRIVER
 #include <cyassl/test.h>
-#include "unit.h"
+#include <tests/unit.h>
 
 #define TEST_FAIL       (-1)
 #define TEST_SUCCESS    (0)
@@ -54,7 +53,6 @@ static int test_lvl(CYASSL_CTX *ctx, const char* file, const char* path,
 
 THREAD_RETURN CYASSL_THREAD test_server_nofail(void*);
 void test_client_nofail(void*);
-void wait_tcp_ready(func_args*);
 #endif
 
 static const char* bogusFile  = "/dev/null";
@@ -603,10 +601,8 @@ THREAD_RETURN CYASSL_THREAD test_server_nofail(void* args)
         return 0;
     }
     ssl = CyaSSL_new(ctx);
-    tcp_accept(&sockfd, &clientfd, (func_args*)args);
-#ifndef CYASSL_DTLS
+    tcp_accept(&sockfd, &clientfd, (func_args*)args, yasslPort, 0, 0);
     CloseSocket(sockfd);
-#endif
 
     CyaSSL_set_fd(ssl, clientfd);
 
@@ -691,7 +687,7 @@ void test_client_nofail(void* args)
         return;
     }
 
-    tcp_connect(&sockfd, yasslIP, yasslPort);
+    tcp_connect(&sockfd, yasslIP, yasslPort, 0);
 
     ssl = CyaSSL_new(ctx);
     CyaSSL_set_fd(ssl, sockfd);
@@ -723,61 +719,7 @@ void test_client_nofail(void* args)
 
 
 
-void wait_tcp_ready(func_args* args)
-{
-#ifdef _POSIX_THREADS
-    pthread_mutex_lock(&args->signal->mutex);
-    
-    if (!args->signal->ready)
-        pthread_cond_wait(&args->signal->cond, &args->signal->mutex);
-    args->signal->ready = 0; /* reset */
-
-    pthread_mutex_unlock(&args->signal->mutex);
-#endif
-}
-
-
-void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
-{
-#ifdef _POSIX_THREADS
-    pthread_create(thread, 0, fun, args);
-    return;
-#else
-    *thread = (THREAD_TYPE)_beginthreadex(0, 0, fun, args, 0, 0);
-#endif
-}
-
-
-void join_thread(THREAD_TYPE thread)
-{
-#ifdef _POSIX_THREADS
-    pthread_join(thread, 0);
-#else
-    int res = WaitForSingleObject(thread, INFINITE);
-    assert(res == WAIT_OBJECT_0);
-    res = CloseHandle(thread);
-    assert(res);
-#endif
-}
-
 
-void InitTcpReady(tcp_ready* ready)
-{
-    ready->ready = 0;
-#ifdef _POSIX_THREADS
-      pthread_mutex_init(&ready->mutex, 0);
-      pthread_cond_init(&ready->cond, 0);
-#endif
-}
-
-
-void FreeTcpReady(tcp_ready* ready)
-{
-#ifdef _POSIX_THREADS
-    pthread_mutex_destroy(&ready->mutex);
-    pthread_cond_destroy(&ready->cond);
-#endif
-}
 #endif /* NO_FILESYSTEM */
 
 
index 70dd00f4eab7fd2ab0ed71ccf83c232908c414e8..b3a6cc9623ac9cb71071fcb249d4df7f57faec6b 100644 (file)
@@ -33,7 +33,7 @@
 #include <cyassl/ctaocrypt/ripemd.h>
 #include <cyassl/ctaocrypt/hmac.h>
 
-#include "unit.h"
+#include <tests/unit.h>
 
 typedef struct testVector {
     char*  input;
@@ -55,6 +55,8 @@ int HashTest(void)
 {
     int ret = 0;
 
+    printf(" Begin HASH Tests\n");
+
 #ifndef NO_MD4
     if ( (ret = md4_test()) ) {
         printf( "   MD4      test failed!\n");
@@ -114,6 +116,8 @@ int HashTest(void)
     } else
         printf( "   HMAC     test passed!\n");
 #endif
+
+    printf(" End HASH Tests\n");
     
     return 0;
 }
index 812b593a230a45e50d5f48b4981b95b458879012..d62e3f98a90ccfd53dfef7d6610dfad2cf3b3ea5 100644 (file)
@@ -9,8 +9,20 @@ tests_unit_SOURCES = \
                              tests/unit.c \
                              tests/api.c \
                              tests/suites.c \
-                  tests/hash.c
-tests_unit_CFLAGS       = $(AM_CFLAGS) $(PTHREAD_CFLAGS)
+                  tests/hash.c \
+                             examples/client/client.c \
+                             examples/server/server.c
+tests_unit_CFLAGS       = -DNO_MAIN_DRIVER $(AM_CFLAGS) $(PTHREAD_CFLAGS)
 tests_unit_LDADD        = src/libcyassl.la  $(PTHREAD_LIBS)
 tests_unit_DEPENDENCIES = src/libcyassl.la
-EXTRA_DIST+=tests/unit.h
+EXTRA_DIST += tests/unit.h
+EXTRA_DIST += tests/test.conf \
+              tests/test-openssl.conf \
+              tests/test-hc128.conf \
+              tests/test-psk.conf \
+              tests/test-ntru.conf \
+              tests/test-ecc.conf \
+              tests/test-aesgcm.conf \
+              tests/test-aesgcm-ecc.conf \
+              tests/test-aesgcm-openssl.conf \
+              tests/test-dtls.conf
index 322a39ae46a2f547e0d1b17be21e970d0448e395..6e59ed8afb7cb49815f89c8f87272c2d40111b24 100644 (file)
@@ -1 +1,343 @@
-/* suites.c cipher suite unit tests */
+/* suites.c
+ *
+ * Copyright (C) 2006-2012 Sawtooth Consulting Ltd.
+ *
+ * This file is part of CyaSSL.
+ *
+ * CyaSSL 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.
+ *
+ * CyaSSL 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 <stdlib.h>
+#include <stdio.h>
+#include <cyassl/ssl.h>
+#include <tests/unit.h>
+
+
+#define MAX_ARGS 40
+#define MAX_COMMAND_SZ 240
+
+
+void client_test(void*);
+THREAD_RETURN CYASSL_THREAD server_test(void*);
+
+
+static void execute_test_case(int svr_argc, char** svr_argv,
+                              int cli_argc, char** cli_argv)
+{
+    func_args cliArgs = {cli_argc, cli_argv, 0, NULL};
+    func_args svrArgs = {svr_argc, svr_argv, 0, NULL};
+
+    tcp_ready   ready;
+    THREAD_TYPE serverThread;
+    char        commandLine[MAX_COMMAND_SZ];
+    int         i;
+    static      int tests = 1;
+
+    commandLine[0] = '\0';
+    for (i = 0; i < svr_argc; i++) {
+        strcat(commandLine, svr_argv[i]);
+        strcat(commandLine, " ");
+    }
+    printf("trying server command line[%d]: %s\n", tests, commandLine);
+
+    commandLine[0] = '\0';
+    for (i = 0; i < cli_argc; i++) {
+        strcat(commandLine, cli_argv[i]);
+        strcat(commandLine, " ");
+    }
+    printf("trying client command line[%d]: %s\n", tests++, commandLine);
+
+    InitTcpReady(&ready);
+
+    /* start server */
+    svrArgs.signal = &ready;
+    start_thread(server_test, &svrArgs, &serverThread);
+    wait_tcp_ready(&svrArgs);
+
+    /* start client */
+    client_test(&cliArgs);
+
+    /* verify results */ 
+    if (cliArgs.return_code != 0) {
+        printf("client_test failed\n");
+        exit(EXIT_FAILURE);
+    }
+
+    join_thread(serverThread);
+    if (svrArgs.return_code != 0) { 
+        printf("server_test failed\n");
+        exit(EXIT_FAILURE);
+    }
+
+    FreeTcpReady(&ready);
+
+}
+
+void test_harness(void* vargs)
+{
+    func_args* args = (func_args*)vargs;
+    char* script;
+    long  sz, len;
+    int   cliMode = 0;   /* server or client command flag, server first */
+    FILE* file;
+    char* svrArgs[MAX_ARGS];
+    int   svrArgsSz;
+    char* cliArgs[MAX_ARGS];
+    int   cliArgsSz;
+    char* cursor;
+    char* comment;
+    char* fname = "tests/test.conf";
+
+
+    if (args->argc == 1) {
+        printf("notice: using default file %s\n", fname);
+    }
+    else if(args->argc != 2) {
+        printf("usage: harness [FILE]\n");
+        args->return_code = 1;
+        return;
+    }
+    else {
+        fname = args->argv[1];
+    }
+
+    file = fopen(fname, "r");
+    if (file == NULL) {
+        fprintf(stderr, "unable to open %s\n", fname);
+        args->return_code = 1;
+        return;
+    }
+    fseek(file, 0, SEEK_END);
+    sz = ftell(file);
+    rewind(file);
+    if (sz == 0) {
+        fprintf(stderr, "%s is empty\n", fname);
+        fclose(file);
+        args->return_code = 1;
+        return;
+    }
+
+    script = (char*)malloc(sz+1);
+    if (script == 0) {
+        fprintf(stderr, "unable to allocte script buffer\n");
+        fclose(file);
+        args->return_code = 1;
+        return;
+    }
+
+    len = fread(script, 1, sz, file);
+    if (len != sz) {
+        fprintf(stderr, "read error\n");
+        fclose(file);
+        args->return_code = 1;
+        return;
+    }
+    
+    fclose(file);
+    script[sz] = 0;
+
+    cursor = script;
+    svrArgsSz = 1;
+    svrArgs[0] = args->argv[0];
+    cliArgsSz = 1;
+    cliArgs[0] = args->argv[0];
+
+    while (*cursor != 0) {
+        int do_it = 0;
+
+        switch (*cursor) {
+            case '\n':
+                /* A blank line triggers test case execution or switches
+                   to client mode if we don't have the client command yet */
+                if (cliMode == 0)
+                    cliMode = 1;  /* switch to client mode processing */
+                else
+                    do_it = 1;    /* Do It, we have server and client */
+                cursor++;
+                break;
+            case '#':
+                /* Ignore lines that start with a #. */
+                comment = strsep(&cursor, "\n");
+                printf("%s\n", comment);
+                break;
+            case '-':
+                /* Parameters start with a -. They end in either a newline
+                 * or a space. Capture until either, save in Args list. */
+                if (cliMode)
+                    cliArgs[cliArgsSz++] = strsep(&cursor, " \n");
+                else
+                    svrArgs[svrArgsSz++] = strsep(&cursor, " \n");
+                break;
+            default:
+                /* Anything from cursor until end of line that isn't the above
+                 * is data for a paramter. Just up until the next newline in
+                 * the Args list. */
+                if (cliMode)
+                    cliArgs[cliArgsSz++] = strsep(&cursor, "\n");
+                else
+                    svrArgs[svrArgsSz++] = strsep(&cursor, "\n");
+                if (*cursor == 0)  /* eof */
+                    do_it = 1; 
+        }
+
+        if (svrArgsSz == MAX_ARGS || cliArgsSz == MAX_ARGS) {
+            fprintf(stderr, "too many arguments, forcing test run\n");
+            do_it = 1;
+        }
+
+        if (do_it) {
+            execute_test_case(svrArgsSz, svrArgs, cliArgsSz, cliArgs);
+            svrArgsSz = 1;
+            cliArgsSz = 1;
+            cliMode   = 0;
+        }
+    }
+
+    free(script);
+    args->return_code = 0;
+}
+
+
+int SuiteTest(void)
+{
+    func_args args;
+    char argv0[2][32];
+    char* myArgv[2];
+
+    printf(" Begin Cipher Suite Tests\n");
+
+    /* setup */
+    myArgv[0] = argv0[0];
+    myArgv[1] = argv0[1];
+    args.argv = myArgv;
+    strcpy(argv0[0], "SuiteTest");
+
+    /* default case */
+    args.argc = 1;
+    printf("starting default cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+
+    /* any extra cases will need another argument */
+    args.argc = 2;
+
+#ifdef OPENSSL_EXTRA
+    /* add openssl extra suites */
+    strcpy(argv0[1], "tests/test-openssl.conf");
+    printf("starting openssl extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#ifdef HAVE_HC128 
+    /* add hc128 extra suites */
+    strcpy(argv0[1], "tests/test-hc128.conf");
+    printf("starting hc128 extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#ifndef NO_PSK
+    /* add psk extra suites */
+    strcpy(argv0[1], "tests/test-psk.conf");
+    printf("starting psk extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#ifdef HAVE_NTRU
+    /* add ntru extra suites */
+    strcpy(argv0[1], "tests/test-ntru.conf");
+    printf("starting ntru extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#ifdef HAVE_ECC
+    /* add ecc extra suites */
+    strcpy(argv0[1], "tests/test-ecc.conf");
+    printf("starting ecc extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#ifdef HAVE_AESGCM
+    /* add aesgcm extra suites */
+    strcpy(argv0[1], "tests/test-aesgcm.conf");
+    printf("starting aesgcm extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#if defined(HAVE_AESGCM) && defined(OPENSSL_EXTRA)
+    /* add aesgcm openssl extra suites */
+    strcpy(argv0[1], "tests/test-aesgcm-openssl.conf");
+    printf("starting aesgcm openssl extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#if defined(HAVE_AESGCM) && defined(HAVE_ECC)
+    /* add aesgcm ecc extra suites */
+    strcpy(argv0[1], "tests/test-aesgcm-ecc.conf");
+    printf("starting aesgcm ecc extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+#ifdef CYASSL_DTLS 
+    /* add dtls extra suites */
+    strcpy(argv0[1], "tests/test-dtls.conf");
+    printf("starting dtls extra cipher suite tests\n");
+    test_harness(&args);
+    if (args.return_code != 0) {
+        printf("error from script %d\n", args.return_code);
+        exit(EXIT_FAILURE);  
+    }
+#endif
+
+    printf(" End Cipher Suite Tests\n");
+
+    return args.return_code;
+}
+
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-aesgcm-ecc.conf b/FreeRTOS-Plus/CyaSSL/tests/test-aesgcm-ecc.conf
new file mode 100644 (file)
index 0000000..7aff47f
--- /dev/null
@@ -0,0 +1,80 @@
+# server TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 
+-v 3
+-l ECDHE-ECDSA-AES128-GCM-SHA256
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDHE-ECDSA-AES128-GCM-SHA256 
+-v 3
+-l ECDHE-ECDSA-AES128-GCM-SHA256
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
+-v 3
+-l ECDHE-ECDSA-AES256-GCM-SHA384
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDHE-ECDSA-AES256-GCM-SHA384
+-v 3
+-l ECDHE-ECDSA-AES256-GCM-SHA384
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256 
+-v 3
+-l ECDH-ECDSA-AES128-GCM-SHA256
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-ECDSA-AES128-GCM-SHA256 
+-v 3
+-l ECDH-ECDSA-AES128-GCM-SHA256
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
+-v 3
+-l ECDH-ECDSA-AES256-GCM-SHA384
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-ECDSA-AES256-GCM-SHA384
+-v 3
+-l ECDH-ECDSA-AES256-GCM-SHA384
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 
+-v 3
+-l ECDHE-RSA-AES128-GCM-SHA256
+
+# client TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 
+-v 3
+-l ECDHE-RSA-AES128-GCM-SHA256
+
+# server TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
+-v 3
+-l ECDHE-RSA-AES256-GCM-SHA384
+
+# client TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384
+-v 3
+-l ECDHE-RSA-AES256-GCM-SHA384
+
+# server TLSv1.2 ECDH-RSA-AES128-GCM-SHA256 
+-v 3
+-l ECDH-RSA-AES128-GCM-SHA256
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-RSA-AES128-GCM-SHA256 
+-v 3
+-l ECDH-RSA-AES128-GCM-SHA256
+
+# server TLSv1.2 ECDH-RSA-AES256-GCM-SHA384
+-v 3
+-l ECDH-RSA-AES256-GCM-SHA384
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-RSA-AES256-GCM-SHA384
+-v 3
+-l ECDH-RSA-AES256-GCM-SHA384
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-aesgcm-openssl.conf b/FreeRTOS-Plus/CyaSSL/tests/test-aesgcm-openssl.conf
new file mode 100644 (file)
index 0000000..006e272
--- /dev/null
@@ -0,0 +1,16 @@
+# server TLSv1.2 DHE-RSA-AES128-GCM-SHA256 
+-v 3
+-l DHE-RSA-AES128-GCM-SHA256
+
+# client TLSv1.2 DHE-RSA-AES128-GCM-SHA256 
+-v 3
+-l DHE-RSA-AES128-GCM-SHA256
+
+# server TLSv1.2 DHE-RSA-AES256-GCM-SHA384
+-v 3
+-l DHE-RSA-AES256-GCM-SHA384
+
+# client TLSv1.2 DHE-RSA-AES256-GCM-SHA384
+-v 3
+-l DHE-RSA-AES256-GCM-SHA384
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-aesgcm.conf b/FreeRTOS-Plus/CyaSSL/tests/test-aesgcm.conf
new file mode 100644 (file)
index 0000000..9efc5a5
--- /dev/null
@@ -0,0 +1,16 @@
+# server TLSv1.2 RSA-AES128-GCM-SHA256 
+-v 3
+-l AES128-GCM-SHA256
+
+# client TLSv1.2 RSA-AES128-GCM-SHA256 
+-v 3
+-l AES128-GCM-SHA256
+
+# server TLSv1.2 RSA-AES256-GCM-SHA384
+-v 3
+-l AES256-GCM-SHA384
+
+# client TLSv1.2 RSA-AES256-GCM-SHA384
+-v 3
+-l AES256-GCM-SHA384
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-dtls.conf b/FreeRTOS-Plus/CyaSSL/tests/test-dtls.conf
new file mode 100644 (file)
index 0000000..7cffa96
--- /dev/null
@@ -0,0 +1,64 @@
+# server DTLSv1 RC4-SHA
+-u
+-l RC4-SHA
+
+# client DTLSv1 RC4-SHA
+-u
+-l RC4-SHA
+
+# server DTLSv1 RC4-MD5
+-u
+-l RC4-MD5
+
+# client DTLSv1 RC4-MD5
+-u
+-l RC4-MD5
+
+# server DTLSv1 DES-CBC3-SHA
+-u
+-l DES-CBC3-SHA
+
+# client DTLSv1 DES-CBC3-SHA
+-u
+-l DES-CBC3-SHA
+
+# server DTLSv1 AES128-SHA
+-u
+-l AES128-SHA
+
+# client DTLSv1 AES128-SHA
+-u
+-l AES128-SHA
+
+# server DTLSv1 AES256-SHA
+-u
+-l AES256-SHA
+
+# client DTLSv1 AES256-SHA
+-u
+-l AES256-SHA
+
+# server DTLSv1 AES128-SHA256
+-u
+-l AES128-SHA256
+
+# client DTLSv1 AES128-SHA256
+-u
+-l AES128-SHA256
+
+# server DTLSv1 AES256-SHA256
+-u
+-l AES256-SHA256
+
+# client DTLSv1 AES256-SHA256
+-u
+-l AES256-SHA256
+
+# server DTLSv1 RABBIT-SHA
+-u
+-l RABBIT-SHA
+
+# client DTLSv1 RABBIT-SHA
+-u
+-l RABBIT-SHA
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-ecc.conf b/FreeRTOS-Plus/CyaSSL/tests/test-ecc.conf
new file mode 100644 (file)
index 0000000..ca1bc56
--- /dev/null
@@ -0,0 +1,480 @@
+# server TLSv1 ECDHE-RSA-RC4
+-v 1
+-l ECDHE-RSA-RC4-SHA
+
+# client TLSv1 ECDHE-RSA-RC4
+-v 1
+-l ECDHE-RSA-RC4-SHA
+
+# server TLSv1 ECDHE-RSA-DES3
+-v 1
+-l ECDHE-RSA-DES-CBC3-SHA
+
+# client TLSv1 ECDHE-RSA-DES3
+-v 1
+-l ECDHE-RSA-DES-CBC3-SHA
+
+# server TLSv1 ECDHE-RSA-AES128 
+-v 1
+-l ECDHE-RSA-AES128-SHA
+
+# client TLSv1 ECDHE-RSA-AES128 
+-v 1
+-l ECDHE-RSA-AES128-SHA
+
+# server TLSv1 ECDHE-RSA-AES256
+-v 1
+-l ECDHE-RSA-AES256-SHA
+
+# client TLSv1 ECDHE-RSA-AES256
+-v 1
+-l ECDHE-RSA-AES256-SHA
+
+# server TLSv1.1 ECDHE-RSA-RC4
+-v 2
+-l ECDHE-RSA-RC4-SHA
+
+# client TLSv1.1 ECDHE-RSA-RC4
+-v 2
+-l ECDHE-RSA-RC4-SHA
+
+# server TLSv1.1 ECDHE-RSA-DES3
+-v 2
+-l ECDHE-RSA-DES-CBC3-SHA
+
+# client TLSv1.1 ECDHE-RSA-DES3
+-v 2
+-l ECDHE-RSA-DES-CBC3-SHA
+
+# server TLSv1.1 ECDHE-RSA-AES128 
+-v 2
+-l ECDHE-RSA-AES128-SHA
+
+# client TLSv1.1 ECDHE-RSA-AES128 
+-v 2
+-l ECDHE-RSA-AES128-SHA
+
+# server TLSv1.1 ECDHE-RSA-AES256
+-v 2
+-l ECDHE-RSA-AES256-SHA
+
+# client TLSv1.1 ECDHE-RSA-AES256
+-v 2
+-l ECDHE-RSA-AES256-SHA
+
+# server TLSv1.2 ECDHE-RSA-RC4
+-v 3
+-l ECDHE-RSA-RC4-SHA
+
+# client TLSv1.2 ECDHE-RSA-RC4
+-v 3
+-l ECDHE-RSA-RC4-SHA
+
+# server TLSv1.2 ECDHE-RSA-DES3
+-v 3
+-l ECDHE-RSA-DES-CBC3-SHA
+
+# client TLSv1.2 ECDHE-RSA-DES3
+-v 3
+-l ECDHE-RSA-DES-CBC3-SHA
+
+# server TLSv1.2 ECDHE-RSA-AES128 
+-v 3
+-l ECDHE-RSA-AES128-SHA
+
+# client TLSv1.2 ECDHE-RSA-AES128 
+-v 3
+-l ECDHE-RSA-AES128-SHA
+
+# server TLSv1.2 ECDHE-RSA-AES256
+-v 3
+-l ECDHE-RSA-AES256-SHA
+
+# client TLSv1.2 ECDHE-RSA-AES256
+-v 3
+-l ECDHE-RSA-AES256-SHA
+
+# server TLSv1 ECDHE-ECDSA-RC4
+-v 1
+-l ECDHE-ECDSA-RC4-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDHE-ECDSA-RC4
+-v 1
+-l ECDHE-ECDSA-RC4-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDHE-ECDSA-DES3
+-v 1
+-l ECDHE-ECDSA-DES-CBC3-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDHE-ECDSA-DES3
+-v 1
+-l ECDHE-ECDSA-DES-CBC3-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDHE-ECDSA-AES128 
+-v 1
+-l ECDHE-ECDSA-AES128-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDHE-ECDSA-AES128 
+-v 1
+-l ECDHE-ECDSA-AES128-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDHE-ECDSA-AES256
+-v 1
+-l ECDHE-ECDSA-AES256-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDHE-ECDSA-AES256
+-v 1
+-l ECDHE-ECDSA-AES256-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDHE-EDCSA-RC4
+-v 2
+-l ECDHE-ECDSA-RC4-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDHE-ECDSA-RC4
+-v 2
+-l ECDHE-ECDSA-RC4-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDHE-ECDSA-DES3
+-v 2
+-l ECDHE-ECDSA-DES-CBC3-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDHE-ECDSA-DES3
+-v 2
+-l ECDHE-ECDSA-DES-CBC3-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDHE-ECDSA-AES128 
+-v 2
+-l ECDHE-ECDSA-AES128-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDHE-ECDSA-AES128 
+-v 2
+-l ECDHE-ECDSA-AES128-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDHE-ECDSA-AES256
+-v 2
+-l ECDHE-ECDSA-AES256-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDHE-ECDSA-AES256
+-v 2
+-l ECDHE-ECDSA-AES256-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-ECDSA-RC4
+-v 3
+-l ECDHE-ECDSA-RC4-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDHE-ECDSA-RC4
+-v 3
+-l ECDHE-ECDSA-RC4-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-ECDSA-DES3
+-v 3
+-l ECDHE-ECDSA-DES-CBC3-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDHE-ECDSA-DES3
+-v 3
+-l ECDHE-ECDSA-DES-CBC3-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-ECDSA-AES128 
+-v 3
+-l ECDHE-ECDSA-AES128-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDHE-ECDSA-AES128 
+-v 3
+-l ECDHE-ECDSA-AES128-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-ECDSA-AES256
+-v 3
+-l ECDHE-ECDSA-AES256-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDHE-ECDSA-AES256
+-v 3
+-l ECDHE-ECDSA-AES256-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDH-RSA-RC4
+-v 1
+-l ECDH-RSA-RC4-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-RSA-RC4
+-v 1
+-l ECDH-RSA-RC4-SHA
+
+# server TLSv1 ECDH-RSA-DES3
+-v 1
+-l ECDH-RSA-DES-CBC3-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-RSA-DES3
+-v 1
+-l ECDH-RSA-DES-CBC3-SHA
+
+# server TLSv1 ECDH-RSA-AES128 
+-v 1
+-l ECDH-RSA-AES128-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-RSA-AES128 
+-v 1
+-l ECDH-RSA-AES128-SHA
+
+# server TLSv1 ECDH-RSA-AES256
+-v 1
+-l ECDH-RSA-AES256-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-RSA-AES256
+-v 1
+-l ECDH-RSA-AES256-SHA
+
+# server TLSv1.1 ECDH-RSA-RC4
+-v 2
+-l ECDH-RSA-RC4-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-RSA-RC4
+-v 2
+-l ECDH-RSA-RC4-SHA
+
+# server TLSv1.1 ECDH-RSA-DES3
+-v 2
+-l ECDH-RSA-DES-CBC3-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-RSA-DES3
+-v 2
+-l ECDH-RSA-DES-CBC3-SHA
+
+# server TLSv1.1 ECDH-RSA-AES128 
+-v 2
+-l ECDH-RSA-AES128-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-RSA-AES128 
+-v 2
+-l ECDH-RSA-AES128-SHA
+
+# server TLSv1.1 ECDH-RSA-AES256
+-v 2
+-l ECDH-RSA-AES256-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-RSA-AES256
+-v 2
+-l ECDH-RSA-AES256-SHA
+
+# server TLSv1.2 ECDH-RSA-RC4
+-v 3
+-l ECDH-RSA-RC4-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-RSA-RC4
+-v 3
+-l ECDH-RSA-RC4-SHA
+
+# server TLSv1.2 ECDH-RSA-DES3
+-v 3
+-l ECDH-RSA-DES-CBC3-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-RSA-DES3
+-v 3
+-l ECDH-RSA-DES-CBC3-SHA
+
+# server TLSv1.2 ECDH-RSA-AES128 
+-v 3
+-l ECDH-RSA-AES128-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-RSA-AES128 
+-v 3
+-l ECDH-RSA-AES128-SHA
+
+# server TLSv1.2 ECDH-RSA-AES256
+-v 3
+-l ECDH-RSA-AES256-SHA
+-c ./certs/server-ecc-rsa.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-RSA-AES256
+-v 3
+-l ECDH-RSA-AES256-SHA
+
+# server TLSv1 ECDH-ECDSA-RC4
+-v 1
+-l ECDH-ECDSA-RC4-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-ECDSA-RC4
+-v 1
+-l ECDH-ECDSA-RC4-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDH-ECDSA-DES3
+-v 1
+-l ECDH-ECDSA-DES-CBC3-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-ECDSA-DES3
+-v 1
+-l ECDH-ECDSA-DES-CBC3-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDH-ECDSA-AES128 
+-v 1
+-l ECDH-ECDSA-AES128-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-ECDSA-AES128 
+-v 1
+-l ECDH-ECDSA-AES128-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1 ECDH-ECDSA-AES256
+-v 1
+-l ECDH-ECDSA-AES256-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1 ECDH-ECDSA-AES256
+-v 1
+-l ECDH-ECDSA-AES256-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDH-EDCSA-RC4
+-v 2
+-l ECDH-ECDSA-RC4-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-ECDSA-RC4
+-v 2
+-l ECDH-ECDSA-RC4-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDH-ECDSA-DES3
+-v 2
+-l ECDH-ECDSA-DES-CBC3-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-ECDSA-DES3
+-v 2
+-l ECDH-ECDSA-DES-CBC3-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDH-ECDSA-AES128 
+-v 2
+-l ECDH-ECDSA-AES128-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-ECDSA-AES128 
+-v 2
+-l ECDH-ECDSA-AES128-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.1 ECDH-ECDSA-AES256
+-v 2
+-l ECDH-ECDSA-AES256-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.1 ECDH-ECDSA-AES256
+-v 2
+-l ECDH-ECDSA-AES256-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDHE-ECDSA-RC4
+-v 3
+-l ECDH-ECDSA-RC4-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-ECDSA-RC4
+-v 3
+-l ECDH-ECDSA-RC4-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDH-ECDSA-DES3
+-v 3
+-l ECDH-ECDSA-DES-CBC3-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-ECDSA-DES3
+-v 3
+-l ECDH-ECDSA-DES-CBC3-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDH-ECDSA-AES128 
+-v 3
+-l ECDH-ECDSA-AES128-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-ECDSA-AES128 
+-v 3
+-l ECDH-ECDSA-AES128-SHA
+-A ./certs/server-ecc.pem
+
+# server TLSv1.2 ECDH-ECDSA-AES256
+-v 3
+-l ECDH-ECDSA-AES256-SHA
+-c ./certs/server-ecc.pem
+-k ./certs/ecc-key.pem
+
+# client TLSv1.2 ECDH-ECDSA-AES256
+-v 3
+-l ECDH-ECDSA-AES256-SHA
+-A ./certs/server-ecc.pem
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-hc128.conf b/FreeRTOS-Plus/CyaSSL/tests/test-hc128.conf
new file mode 100644 (file)
index 0000000..feb0b12
--- /dev/null
@@ -0,0 +1,48 @@
+# server TLSv1 HC128-SHA
+-v 1
+-l HC128-SHA
+
+# client TLSv1 HC128-SHA
+-v 1
+-l HC128-SHA
+
+# server TLSv1 HC128-MD5
+-v 1
+-l HC128-MD5
+
+# client TLSv1 HC128-MD5
+-v 1
+-l HC128-MD5
+
+# server TLSv1.1 HC128-SHA
+-v 2
+-l HC128-SHA
+
+# client TLSv1.1 HC128-SHA
+-v 2
+-l HC128-SHA
+
+# server TLSv1.1 HC128-MD5
+-v 2
+-l HC128-MD5
+
+# client TLSv1.1 HC128-MD5
+-v 2
+-l HC128-MD5
+
+# server TLSv1.2 HC128-SHA
+-v 3
+-l HC128-SHA
+
+# client TLSv1.2 HC128-SHA
+-v 3
+-l HC128-SHA
+
+# server TLSv1.2 HC128-MD5
+-v 3
+-l HC128-MD5
+
+# client TLSv1.2 HC128-MD5
+-v 3
+-l HC128-MD5
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-ntru.conf b/FreeRTOS-Plus/CyaSSL/tests/test-ntru.conf
new file mode 100644 (file)
index 0000000..7674fb5
--- /dev/null
@@ -0,0 +1,132 @@
+# server TLSv1 NTRU_RC4
+-v 1
+-l NTRU-RC4-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1 NTRU_RC4
+-v 1
+-l NTRU-RC4-SHA
+
+# server TLSv1 NTRU_DES3
+-v 1
+-l NTRU-DES-CBC3-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1 NTRU_DES3
+-v 1
+-l NTRU-DES-CBC3-SHA
+
+# server TLSv1 NTRU_AES128
+-v 1
+-l NTRU-AES128-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1 NTRU_AES128
+-v 1
+-l NTRU-AES128-SHA
+
+# server TLSv1 NTRU_AES256
+-v 1
+-l NTRU-AES256-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1 NTRU_AES256
+-v 1
+-l NTRU-AES256-SHA
+
+# server TLSv1.1 NTRU_RC4
+-v 2
+-l NTRU-RC4-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.1 NTRU_RC4
+-v 2
+-l NTRU-RC4-SHA
+
+# server TLSv1.1 NTRU_DES3
+-v 2
+-l NTRU-DES-CBC3-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.1 NTRU_DES3
+-v 2
+-l NTRU-DES-CBC3-SHA
+
+# server TLSv1.1 NTRU_AES128
+-v 2
+-l NTRU-AES128-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.1 NTRU_AES128
+-v 2
+-l NTRU-AES128-SHA
+
+# server TLSv1.1 NTRU_AES256
+-v 2
+-l NTRU-AES256-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.1 NTRU_AES256
+-v 2
+-l NTRU-AES256-SHA
+
+# server TLSv1.2 NTRU_RC4
+-v 3
+-l NTRU-RC4-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.2 NTRU_RC4
+-v 3
+-l NTRU-RC4-SHA
+
+# server TLSv1.2 NTRU_DES3
+-v 3
+-l NTRU-DES-CBC3-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.2 NTRU_DES3
+-v 3
+-l NTRU-DES-CBC3-SHA
+
+# server TLSv1.2 NTRU_AES128
+-v 3
+-l NTRU-AES128-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.2 NTRU_AES128
+-v 3
+-l NTRU-AES128-SHA
+
+# server TLSv1.2 NTRU_AES256
+-v 3
+-l NTRU-AES256-SHA
+-n
+-c ./certs/ntru-cert.pem
+-k ./certs/ntru-key.raw
+
+# client TLSv1.2 NTRU_AES256
+-v 3
+-l NTRU-AES256-SHA
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-openssl.conf b/FreeRTOS-Plus/CyaSSL/tests/test-openssl.conf
new file mode 100644 (file)
index 0000000..22a287a
--- /dev/null
@@ -0,0 +1,96 @@
+# server TLSv1 DHE AES128
+-v 1
+-l DHE-RSA-AES128-SHA
+
+# client TLSv1 DHE AES128
+-v 1
+-l DHE-RSA-AES128-SHA
+
+# server TLSv1 DHE AES256
+-v 1
+-l DHE-RSA-AES256-SHA
+
+# client TLSv1 DHE AES256
+-v 1
+-l DHE-RSA-AES256-SHA
+
+# server TLSv1 DHE AES128-SHA256
+-v 1
+-l DHE-RSA-AES128-SHA256
+
+# client TLSv1 DHE AES128-SHA256
+-v 1
+-l DHE-RSA-AES128-SHA256
+
+# server TLSv1 DHE AES256-SHA256
+-v 1
+-l DHE-RSA-AES256-SHA256
+
+# client TLSv1 DHE AES256-SHA256
+-v 1
+-l DHE-RSA-AES256-SHA256
+
+# server TLSv1.1 DHE AES128
+-v 2
+-l DHE-RSA-AES128-SHA
+
+# client TLSv1.1 DHE AES128
+-v 2
+-l DHE-RSA-AES128-SHA
+
+# server TLSv1.1 DHE AES256
+-v 2
+-l DHE-RSA-AES256-SHA
+
+# client TLSv1.1 DHE AES256
+-v 2
+-l DHE-RSA-AES256-SHA
+
+# server TLSv1.1 DHE AES128-SHA256
+-v 2
+-l DHE-RSA-AES128-SHA256
+
+# client TLSv1.1 DHE AES128-SHA256
+-v 2
+-l DHE-RSA-AES128-SHA256
+
+# server TLSv1.1 DHE AES256-SHA256
+-v 2
+-l DHE-RSA-AES256-SHA256
+
+# client TLSv1.1 DHE AES256-SHA256
+-v 2
+-l DHE-RSA-AES256-SHA256
+
+# server TLSv1.2 DHE AES128
+-v 3
+-l DHE-RSA-AES128-SHA
+
+# client TLSv1.2 DHE AES128
+-v 3
+-l DHE-RSA-AES128-SHA
+
+# server TLSv1.2 DHE AES256
+-v 3
+-l DHE-RSA-AES256-SHA
+
+# client TLSv1.2 DHE AES256
+-v 3
+-l DHE-RSA-AES256-SHA
+
+# server TLSv1.2 DHE AES128-SHA256
+-v 3
+-l DHE-RSA-AES128-SHA256
+
+# client TLSv1.2 DHE AES128-SHA256
+-v 3
+-l DHE-RSA-AES128-SHA256
+
+# server TLSv1.2 DHE AES256-SHA256
+-v 3
+-l DHE-RSA-AES256-SHA256
+
+# client TLSv1.2 DHE AES256-SHA256
+-v 3
+-l DHE-RSA-AES256-SHA256
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test-psk.conf b/FreeRTOS-Plus/CyaSSL/tests/test-psk.conf
new file mode 100644 (file)
index 0000000..ca4b918
--- /dev/null
@@ -0,0 +1,60 @@
+# server TLSv1 PSK-AES128
+-s
+-v 1
+-l PSK-AES128-CBC-SHA
+
+# client TLSv1 PSK-AES128
+-s
+-v 1
+-l PSK-AES128-CBC-SHA
+
+# server TLSv1 PSK-AES256
+-s
+-v 1
+-l PSK-AES256-CBC-SHA
+
+# client TLSv1 PSK-AES256
+-s
+-v 1
+-l PSK-AES256-CBC-SHA
+
+# server TLSv1.1 PSK-AES128
+-s
+-v 2
+-l PSK-AES128-CBC-SHA
+
+# client TLSv1.1 PSK-AES128
+-s
+-v 2
+-l PSK-AES128-CBC-SHA
+
+# server TLSv1.1 PSK-AES256
+-s
+-v 2
+-l PSK-AES256-CBC-SHA
+
+# client TLSv1.1 PSK-AES256
+-s
+-v 2
+-l PSK-AES256-CBC-SHA
+
+# server TLSv1.2 PSK-AES128
+-s
+-v 3
+-l PSK-AES128-CBC-SHA
+
+# client TLSv1.2 PSK-AES128
+-s
+-v 3
+-l PSK-AES128-CBC-SHA
+
+# server TLSv1.2 PSK-AES256
+-s
+-v 3
+-l PSK-AES256-CBC-SHA
+
+# client TLSv1.2 PSK-AES256
+-s
+-v 3
+-l PSK-AES256-CBC-SHA
+
diff --git a/FreeRTOS-Plus/CyaSSL/tests/test.conf b/FreeRTOS-Plus/CyaSSL/tests/test.conf
new file mode 100644 (file)
index 0000000..a4a2076
--- /dev/null
@@ -0,0 +1,216 @@
+# server SSLv3 RC4-SHA
+-v 0
+-l RC4-SHA
+
+# client SSLv3 RC4-SHA
+-v 0
+-l RC4-SHA
+
+# server SSLv3 RC4-MD5
+-v 0
+-l RC4-MD5
+
+# client SSLv3 RC4-MD5
+-v 0
+-l RC4-MD5
+
+# server SSLv3 DES-CBC3-SHA
+-v 0
+-l DES-CBC3-SHA
+
+# client SSLv3 DES-CBC3-SHA
+-v 0
+-l DES-CBC3-SHA
+
+# server TLSv1 RC4-SHA
+-v 1
+-l RC4-SHA
+
+# client TLSv1 RC4-SHA
+-v 1
+-l RC4-SHA
+
+# server TLSv1 RC4-MD5
+-v 1
+-l RC4-MD5
+
+# client TLSv1 RC4-MD5
+-v 1
+-l RC4-MD5
+
+# server TLSv1 DES-CBC3-SHA
+-v 1
+-l DES-CBC3-SHA
+
+# client TLSv1 DES-CBC3-SHA
+-v 1
+-l DES-CBC3-SHA
+
+# server TLSv1 AES128-SHA
+-v 1
+-l AES128-SHA
+
+# client TLSv1 AES128-SHA
+-v 1
+-l AES128-SHA
+
+# server TLSv1 AES256-SHA
+-v 1
+-l AES256-SHA
+
+# client TLSv1 AES256-SHA
+-v 1
+-l AES256-SHA
+
+# server TLSv1 AES128-SHA256
+-v 1
+-l AES128-SHA256
+
+# client TLSv1 AES128-SHA256
+-v 1
+-l AES128-SHA256
+
+# server TLSv1 AES256-SHA256
+-v 1
+-l AES256-SHA256
+
+# client TLSv1 AES256-SHA256
+-v 1
+-l AES256-SHA256
+
+# server TLSv1 RABBIT-SHA
+-v 1
+-l RABBIT-SHA
+
+# client TLSv1 RABBIT-SHA
+-v 1
+-l RABBIT-SHA
+
+# server TLSv1.1 RC4-SHA
+-v 2
+-l RC4-SHA
+
+# client TLSv1.1 RC4-SHA
+-v 2
+-l RC4-SHA
+
+# server TLSv1.1 RC4-MD5
+-v 2
+-l RC4-MD5
+
+# client TLSv1.1 RC4-MD5
+-v 2
+-l RC4-MD5
+
+# server TLSv1.1 DES-CBC3-SHA
+-v 2
+-l DES-CBC3-SHA
+
+# client TLSv1.1 DES-CBC3-SHA
+-v 2
+-l DES-CBC3-SHA
+
+# server TLSv1.1 AES128-SHA
+-v 2
+-l AES128-SHA
+
+# client TLSv1.1 AES128-SHA
+-v 2
+-l AES128-SHA
+
+# server TLSv1.1 AES256-SHA
+-v 2
+-l AES256-SHA
+
+# client TLSv1.1 AES256-SHA
+-v 2
+-l AES256-SHA
+
+# server TLSv1.1 AES128-SHA256
+-v 2
+-l AES128-SHA256
+
+# client TLSv1.1 AES128-SHA256
+-v 2
+-l AES128-SHA256
+
+# server TLSv1.1 AES256-SHA256
+-v 2
+-l AES256-SHA256
+
+# client TLSv1.1 AES256-SHA256
+-v 2
+-l AES256-SHA256
+
+# server TLSv1.1 RABBIT-SHA
+-v 2
+-l RABBIT-SHA
+
+# client TLSv1.1 RABBIT-SHA
+-v 2
+-l RABBIT-SHA
+
+# server TLSv1.2 RC4-SHA
+-v 3
+-l RC4-SHA
+
+# client TLSv1.2 RC4-SHA
+-v 3
+-l RC4-SHA
+
+# server TLSv1.2 RC4-MD5
+-v 3
+-l RC4-MD5
+
+# client TLSv1.2 RC4-MD5
+-v 3
+-l RC4-MD5
+
+# server TLSv1.2 DES-CBC3-SHA
+-v 3
+-l DES-CBC3-SHA
+
+# client TLSv1.2 DES-CBC3-SHA
+-v 3
+-l DES-CBC3-SHA
+
+# server TLSv1.2 AES128-SHA
+-v 3
+-l AES128-SHA
+
+# client TLSv1.2 AES128-SHA
+-v 3
+-l AES128-SHA
+
+# server TLSv1.2 AES256-SHA
+-v 3
+-l AES256-SHA
+
+# client TLSv1.2 AES256-SHA
+-v 3
+-l AES256-SHA
+
+# server TLSv1.2 AES128-SHA256
+-v 3
+-l AES128-SHA256
+
+# client TLSv1.2 AES128-SHA256
+-v 3
+-l AES128-SHA256
+
+# server TLSv1.2 AES256-SHA256
+-v 3
+-l AES256-SHA256
+
+# client TLSv1.2 AES256-SHA256
+-v 3
+-l AES256-SHA256
+
+# server TLSv1.2 RABBIT-SHA
+-v 3
+-l RABBIT-SHA
+
+# client TLSv1.2 RABBIT-SHA
+-v 3
+-l RABBIT-SHA
+
index 0d81f113d8990a07ba68c27cadfff191c28cc3ba..1fbcc9cb5d319ac4f0444ac89fdb69708375c7f7 100644 (file)
@@ -1,16 +1,89 @@
 /* unit.c unit tests driver */
 #include <stdio.h>
-#include "unit.h"
+#include <tests/unit.h>
+
+
+int myoptind = 0;
+char* myoptarg = NULL;
+
 
 int main(int argc, char** argv)
 {
-    printf("hello unit tests\n");
+    int ret;
+
+    printf("staring unit tests...\n");
 
-    if (ApiTest() != 0)
-        printf("api test failed\n");
+    if ( (ret = ApiTest()) != 0) {
+        printf("api test failed with %d\n", ret);
+        return ret;
+    }
 
-    if (HashTest() != 0)
-        printf("hash test failed\n");
+    if ( (ret = HashTest()) != 0){
+        printf("hash test failed with %d\n", ret);
+        return ret;
+    }
+
+    if ( (ret = SuiteTest()) != 0){
+        printf("suite test failed with %d\n", ret);
+        return ret;
+    }
 
     return 0;
 }
+
+
+void wait_tcp_ready(func_args* args)
+{
+#ifdef _POSIX_THREADS
+    pthread_mutex_lock(&args->signal->mutex);
+    
+    if (!args->signal->ready)
+        pthread_cond_wait(&args->signal->cond, &args->signal->mutex);
+    args->signal->ready = 0; /* reset */
+
+    pthread_mutex_unlock(&args->signal->mutex);
+#endif
+}
+
+
+void start_thread(THREAD_FUNC fun, func_args* args, THREAD_TYPE* thread)
+{
+#ifdef _POSIX_THREADS
+    pthread_create(thread, 0, fun, args);
+    return;
+#else
+    *thread = (THREAD_TYPE)_beginthreadex(0, 0, fun, args, 0, 0);
+#endif
+}
+
+
+void join_thread(THREAD_TYPE thread)
+{
+#ifdef _POSIX_THREADS
+    pthread_join(thread, 0);
+#else
+    int res = WaitForSingleObject(thread, INFINITE);
+    assert(res == WAIT_OBJECT_0);
+    res = CloseHandle(thread);
+    assert(res);
+#endif
+}
+
+
+void InitTcpReady(tcp_ready* ready)
+{
+    ready->ready = 0;
+#ifdef _POSIX_THREADS
+      pthread_mutex_init(&ready->mutex, 0);
+      pthread_cond_init(&ready->cond, 0);
+#endif
+}
+
+
+void FreeTcpReady(tcp_ready* ready)
+{
+#ifdef _POSIX_THREADS
+    pthread_mutex_destroy(&ready->mutex);
+    pthread_cond_destroy(&ready->cond);
+#endif
+}
\ No newline at end of file
index 36e1ba3a04e4a2f2ea3f3063771787e5b90c870e..840893cdaa788cca0cbf02307fea59e1a525e6bb 100644 (file)
@@ -1,6 +1,13 @@
 /* unit.h unit tests driver */
 
+#ifndef CyaSSL_UNIT_H
+#define CyaSSL_UNIT_H
+
+#include <cyassl/test.h>    /* thread and tcp stuff */
+
 int ApiTest(void);
 int SuiteTest(void);
 int HashTest(void);
 
+
+#endif /* CyaSSL_UNIT_H */
\ No newline at end of file
index 0a64ee378d8ae13f69cf6f99eeb5d8d8de3c4c45..ebcb0c28f0dfa446d673d31a0db3ed95e80c8c12 100644 (file)
@@ -32,7 +32,6 @@
            and the examples/ individually
 #endif
 
-void wait_tcp_ready(func_args*);
 void ctaocrypt_test(void*);
 
 void client_test(void*);
@@ -48,6 +47,10 @@ enum {
 };
 
 
+int myoptind = 0;
+char* myoptarg = NULL;
+
+
 int main(int argc, char** argv)
 {
     func_args args;
index 21025e590d0a7f02ef925ce8d06c8f44da8102b2..220580c56e3b8d764fadaeef50920675e4184e0f 100644 (file)
@@ -108,7 +108,7 @@ static portBASE_TYPE prvStartStopTraceCommand( int8_t *pcWriteBuffer, size_t xWr
 static const CLI_Command_Definition_t xRunTimeStats =\r
 {\r
        ( const int8_t * const ) "run-time-stats", /* The command string to type. */\r
-       ( const int8_t * const ) "run-time-stats: Displays a table showing how much processing time each FreeRTOS task has used\r\n",\r
+       ( const int8_t * const ) "\r\nrun-time-stats:\r\n Displays a table showing how much processing time each FreeRTOS task has used\r\n\r\n",\r
        prvRunTimeStatsCommand, /* The function to run. */\r
        0 /* No parameters are expected. */\r
 };\r
@@ -117,7 +117,7 @@ static const CLI_Command_Definition_t xRunTimeStats =
 static const CLI_Command_Definition_t xTaskStats =\r
 {\r
        ( const int8_t * const ) "task-stats", /* The command string to type. */\r
-       ( const int8_t * const ) "task-stats: Displays a table showing the state of each FreeRTOS task\r\n",\r
+       ( const int8_t * const ) "\r\ntask-stats:\r\n Displays a table showing the state of each FreeRTOS task\r\n\r\n",\r
        prvTaskStatsCommand, /* The function to run. */\r
        0 /* No parameters are expected. */\r
 };\r
@@ -128,7 +128,7 @@ time. */
 static const CLI_Command_Definition_t xThreeParameterEcho =\r
 {\r
        ( const int8_t * const ) "echo_3_parameters",\r
-       ( const int8_t * const ) "echo_3_parameters: <param1> <param2> <param3> Expects three parameters, echos each in turn\r\n",\r
+       ( const int8_t * const ) "\r\necho_3_parameters <param1> <param2> <param3>:\r\n Expects three parameters, echos each in turn\r\n\r\n",\r
        prvThreeParameterEchoCommand, /* The function to run. */\r
        3 /* Three parameters are expected, which can take any value. */\r
 };\r
@@ -139,7 +139,7 @@ a time. */
 static const CLI_Command_Definition_t xParameterEcho =\r
 {\r
        ( const int8_t * const ) "echo_parameters",\r
-       ( const int8_t * const ) "echo_parameters: <...> Take variable number of parameters, echos each in turn\r\n",\r
+       ( const int8_t * const ) "\r\necho_parameters <...>:\r\n Take variable number of parameters, echos each in turn\r\n\r\n",\r
        prvParameterEchoCommand, /* The function to run. */\r
        -1 /* The user can enter any number of commands. */\r
 };\r
@@ -149,7 +149,7 @@ parameter, which can be either "start" or "stop". */
 static const CLI_Command_Definition_t xStartTrace =\r
 {\r
        ( const int8_t * const ) "trace",\r
-       ( const int8_t * const ) "trace: [start | stop] Starts or stops a trace recording for viewing in FreeRTOS+Trace\r\n",\r
+       ( const int8_t * const ) "\r\ntrace [start | stop]:\r\n Starts or stops a trace recording for viewing in FreeRTOS+Trace\r\n\r\n",\r
        prvStartStopTraceCommand, /* The function to run. */\r
        1 /* One parameter is expected.  Valid values are "start" and "stop". */\r
 };\r
index 75630a1e0d4a0c86e066b254612592d46a706c16..15521772a8fc23bf0b9b0332a9de3b7ac6d5503f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 471a61ae699753f4b4ace33c7bcd9aa2184fece2..11d3ecccbb927f014186d899ccc66bcbbf6fcbed 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index eb7b562e3dfda2930eecd2b1e0df60d69f549111..ef61f33b4d91e9a174290907ed03e23ab721410e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f0eb7e53d2fb4cb77e2d8212b154a8005f0c5679..fbf2e1e9be4e08fe90c51634d02aaf380b090aa5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4dd7aadbefe39136ad3279cc675350357adf173c..1627b403a36b9a932231bec7cb34f762dbe737fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dc9a449db7b8cfa47a8f582d7d7ba748c3c828c5..964e0e540dadb44c47827a091ffdb23f175cfbee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 12ba2c080847a42a9d512f262ab5063a18cf6cb4..216c43640f48d227d86ca52ddd1b4b5b27979ee9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 50be67c14dd780073845bc0b7b1dc660bf3a7ec5..3c26f1d10974164aa44519440a14ea72baba5a5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ab575203590227d387c2f2a7f31749e69174b05c..184cd1aa003fed15117a83ec3ce51ca61614eedf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 648c426f1d7426603407b7f827b824bf52fb81bf..2827e85eda19297f1d9a7b47555cf5008b987494 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 41ce10a02071d370b53cb204db9400815b38724c..30c2a1af91150e77f6b44686de1a5fa531672472 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a8b81313c6a6710393629c7bad46b619f0ff078c..af164268ee64e5de619d44224538c00971ec302f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 884b6fdc4f9a4f7dbd8edaa62df59b57198f0982..0c9b974628dc92b2dd69d12fd5078f95c9868d2e 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index 7edf584a7e882b9d6189014ef69c9bfdcd4ef188..543db46b0cc0bbb073574d64fa35603eedf03734 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 585e00be8ff71a892cd0ee8a411a2382a7294864..44fb14ab2a5d13da2f8cfd8bd3ae7911dfd2df68 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c7ec666540c0ea67cda604b2f62c77b60ef6f302..49c1bf1d9beb8cd910448be3b71ee92e32428857 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3c29ece37e5946000a81e588e9113e13f55f55e7..84f34a7cd3731960724a0d5bc691b728ee1fb067 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8cefc3243c4342cde53dec5c47b3237d28062462..8771dff44bb2198b52ea12e198af059c2bc975d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index eb5b9511850a55bc104f30db12fbb38337317114..f4ca67975124e89020b381857824182e6d1fae8d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a32a1219fad4d34d3f0a36e4df24cb725e53b090..361dc07f1dcca06e71c13189df466be295ec0bfc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cdd1afcd2375926ee7dd8335f48c77ccd853e852..46d2e45b642e7af96f3732d9e7db23bcb873750b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fbc7bd6d01d6d89074df68c5cd309d0351c9d82e..9610a7a4278191e63bf148f4cabf720a3c2a5d8f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cec97d3c9737cd352d0eb613e8dda037e3406a50..238d77472445390de1d4685b20cb6ab8dff59239 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 80fac54eb1b8af1f6d054e4baed538d55bbfb5dc..e445ea256d6f3cf150dade165f341c1f06822bf2 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index 87d1ee94d1e791b80579a1c52a2425d7183040f4..933585986a0a6f92b4d6944804f3ea223c1e9b3c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0a2329882d29e397afb4a1d8254d8054a5bc9cfd..e7b898817ae8fa07f86be0b6f592eaa14a62618e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d99c73418d56c1baffbd63ced7a68bef0ccd75c2..75242f3d1c3aca86ff5083666bd86e7e3058dca3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7208df163a1e60502b3a0a0e377dc66a323f75b6..dd1772413f84daac808104cb93fdbb97dd1c4724 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e1bd5f70e8030fa3c0fd75bb84a3d541db1b5016..235684f90e0af76149652783448f9c601145d72e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4d1a14d830708e62167286a359e79690e6b9aa53..7bbb7c5afef2034abf637875640ee5f3e8ed5aef 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 87aa8ad4e6374f3f3992a3eb4f4725afffdf4036..e34d9ba0f25d067b586179ce35a52f89f179cb91 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bbf686c5e7d92e99951e3a43d2e671b4e19f7533..f8741b59930b0dbbc4c5ab11590c67f8eac699bf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2a345c8a8ecc4b6622b618645dcaee00fd665025..517c87de0b2c5eac67f78e91cf0bb81c364254a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 69e3ef90f43786442860ddd17bedb601f3f3ad51..c6a398d33f72f0afcce8efcae5456641b56ddd71 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 18d6896c4c3a1a29cbd12d35cc9286135e760e17..b97a1a21b3c1bcebcecd1cc21957e90007ee42ea 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 272951ee701d583b557f04d98366fa82db7620b6..93c55689b953ec5a2e86477e8e46efd496932bd3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 331b49410fc79191061f39e3107f4d83d888feac..4478739d50fb815224b27784ff2669192641269f 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index d20648e329b41d9e82adadb3f9e0f6068af11b43..8e22b5317ae88b48b3333bd67da19a271396db18 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 82c4f7b421d36f0641d0ff8075abc79e55d56388..950cd4305bb1f837271b1e9cd3c067b254ca65cd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 235fb374cf8f2192fe2e125aaac18bb9ad2c4814..c4e97217d07acebc8e9bd143afc853597d9335f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a66874489c3dc58664f027633343cad9a4fee3fc..d26b27f2cbeedac19d15fd9ecbe770cdc956eedd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3bbac0f5621e90abf42dfe746deed5a91b3e9f15..0df1a08ee68fe3863bb44a8d793a5b2909d166d9 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index 08a7689273331839bc8016ae51a101adf010b6c4..282018be1844ab9b75b724403d0f23c5f0df75fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d4055a7c40ccedcf30235bb458dffc25e4e33ccd..daebd58adcb59a2802184b8de37e202c66367ea9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f5fe8f1b43aaef5e58cc7c755f4c2efb266ef507..ed1ecf86285812d90fbcfbd38741aece18834c57 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 15f6eccaf4510632fe4e502c10735fc607044f9d..63a7586e95a30cefa5750a7bda9783effd1c64c9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 84e1b7f5cf05308fc3296abf6a3ef59aeaf24b7b..df8ee50ca3a41f444efa9b015445ff20459b8b50 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 74ffea7133ce918151570e580db13cfbb882b35e..ce8aeff8b526584718ad0b8a0997c88129b2b0db 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ed8dfff5594687a976ce1889ba2ad863f1bbb8e0..f0523ce4956652b5e2a6a85cdd72eea7ca96f3b5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a182019b79b2d63bfe145ccfde54d8e640b0540d..3b0a45fb6ea2dfff37aeba7a37c72da28fc9ee05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d6245f251eb5a428c2be5f56f3158a2a1d2161c7..cdb2a63ab0c878fd7363b39bfd12371fcf1cc047 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8f97311db752b794a3e17881e15931f033582bdc..cb60242ac6807f6d57cf0142a569eec76a13936e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index eb49c0a75dd04b4b68e512904f2149c39eeb1c0f..704c84dbb323b26c2d6fa08786b3ae7ae1855072 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a4aff4f26f0d2a7483ee15559564b4aa7d68da66..b0ab9bde32e54b7b295dbd2ab5a6c81c2b4ec1f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1fa5dffe3f5c5a3ec4a2acf469012c25205ed67b..899d491368525d7ddc18de3953bf832331a81468 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 43fc267611b47e5968b9bd66e5139feed84cc326..62f090b91ce482e55a55ef496bda7df9f6828451 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5dd0cdf2417b1a886d67f84b51446a2c9d7ce60c..270473e921b374b1b0b8d26b005c6913874f2321 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a5e1e6d770337ef6965906cc8ed5b8263d5a6112..9fcac3eda96dfd33acb15a24753af582d3a8eaf5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1a84ea3d7b289531bbfb952ea7b8377813174a5a..da664da040a04844971f538c0fe0b6ae413f58da 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1fa5dffe3f5c5a3ec4a2acf469012c25205ed67b..899d491368525d7ddc18de3953bf832331a81468 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5efbd698ccfa9b70aa4aa1cc5b597b70b5116d12..25e7289a8fe188c89532202d2e619645d88441df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5bfa6f5d53ffc34f3b0176031ee15ae611b7c8f3..1993693967dcd1a685a8d3ad3d8046f83eec6e2e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f5593ec6794fa7ef4b123c3a6ecf6ec9cecb7e33..47180c3f1ab0ddbd2321e4ed0a88982953052423 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 483ad8412e4e20d05a3791aa75d3551031d52996..89c6330ac2fbc5c81cb110340580c5b44de426cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 19ba96b0dd7c0027d725d17bf368c6cf2c3c5c09..1a404d37f52e4b1efcf39c89d2d5a37a3edb7207 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f2e92d52f7f166fb446c2e01b5de5b5bb7f638f3..22cf3c8b3304716d0a03d46745de06ea5a58bec3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0e36bcade184de436013698bcb2811174472d3d7..aaf28ac29140213166f55c035f43b7a7bfb56726 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 81fbc5ff01a17ebcf737af45d5c292b126314db3..ffe7b054f2641d94f77a8737ef98d460e7df7b25 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 72cfb40947dd5b2a4e5ff086179e2e302a6fa342..b83ccb3a83754243ee8a3b5b4a788d17f9252d45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5accd741e4bc856ede340bc3f760974241594331..3e6cb1ed681bcd20fdb175b03fd467ec3b69da76 100644 (file)
@@ -1,6 +1,6 @@
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 091f91d51dac3fc9e11d29efc4d6b718ba057e7c..8829a42e47ec4110f0d96803305a18250d2e1b3a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3bd7ea4f3b86a3bb95ef4dafdaadfd4b32a43205..0a91426a6323db811de8814e0c8843d977250ab1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b83afe61162ba8b6de28264422fbb8f1a1cb181a..758e334cca4ff26e8dde89e0801a5f01f4a2e7a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 830ef86a61b2f16f3efdc1361169157c06175528..3774965605a57ef6e68c87c1681e2ae5fc47b3f0 100644 (file)
@@ -30,7 +30,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cb2fe8a093e5d28c262bb51c518925541ae86528..7e877557f769b1590a7b39cb1fd3440097a85c2d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8244042d043cd2c4c874a94aaf6cd50df51239cd..929d6120d441f0cb881bcfdc78e9becaaa56c637 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 44df5eeaae121e1997afdfcc8c3d755899979ad9..483391cb514b94d376643c4f59df97621e4e12c5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d8c908775ba75f95252148b5cb2a58ae149e5133..182f8e79bf5be21bb898daebe632625ff87736fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 17df9f0ca26c58f17ddf37b4e1722825e83f5d87..c1a13a9c32f50f7511415f27a79b5a22ffe52c39 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2cbffe8d3a6b60b4863f09c670f530d535f56553..b78343b03a78b578881b4c951ead34bf5cf037c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b6be018a77e13e21760604c337b5714f8d12569b..05518603c481756bfa556bb2b3be8a3db0b5490d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e17e377ff728846d4036c8fe936f8dac940d3122..9c61576569a6504fdf9c1e3a86091b9b5221c9d0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8763fa9381a553ba159eb8eaa84c771b205c6e19..60affaac4e8e66f91df7e91e01afc6ffb8b988b1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e1639c4bd95ed554d2c22232c5a8dc46b97f5fcf..6c80f91002783119e253087608554435c22271d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 17df9f0ca26c58f17ddf37b4e1722825e83f5d87..c1a13a9c32f50f7511415f27a79b5a22ffe52c39 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ff1b014141f882454f9f8783b66c8c5e1684a140..3a004a10ce9aa7cee1d6e36edc9ce1b2be90bf45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9df95aef7fe17321dbb045e6a6984f2f11be682c..423c1b05afee7151e198a403972d3c9a38bfd2cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 907583fc101ea4adb53377899a9dc2ccdb2e5b06..097fd8db6c48137f56519d14b533f28278630dcb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cf10fd51089a2aef70416a4d3fd9a6bc1af5faa3..4b5234430075ecb6111fb1bc24b53d71bfc371df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 54282353283bdf5be164f961c999eb5b4ac58726..93aa780f03116e760a07070efa1930b6d6672316 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 646783b945d7f87e0f2584d199488c2be8485d95..47612caca9250a501482d7faa06a825677d4c7c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9cef2231438145e2a8445e68c029981407774e94..ec1236a1460c169246c51291f5e890ab98c7b7ba 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 907583fc101ea4adb53377899a9dc2ccdb2e5b06..097fd8db6c48137f56519d14b533f28278630dcb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cf10fd51089a2aef70416a4d3fd9a6bc1af5faa3..4b5234430075ecb6111fb1bc24b53d71bfc371df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 54282353283bdf5be164f961c999eb5b4ac58726..93aa780f03116e760a07070efa1930b6d6672316 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 646783b945d7f87e0f2584d199488c2be8485d95..47612caca9250a501482d7faa06a825677d4c7c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 96870cc4d231619499c61e0c6f56baf7c85f0920..2805a511b2239d2f378ed928a3b63c21de507058 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 98cdcfdc1b5ee654d5238f4def00ebf90474ad34..7cc3425a9c58df65edc6c627df320b1aded1f516 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e05ffd5f06c67fe3dda909da8f948cbdbd419429..29c97394cfa952ee8cb544b954dd27638e42163f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 44e393d0cbf133c54c1bc1c818041576cfc0fe3d..19cebba29fd41429a9c8189cae94105c8a7ec513 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 429b952b44b33866537411a7ee647ea235910aaa..694e7dc1698a7ff40726a3fb09aeac69a9f0d82b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1ff36560a4d28e919af17b1358dc55afbe26d864..cffe2c1428100c6879e7b79fdabc1a479a0ffbc8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1cf191fa1e5d1863faa61bd4a32b1f42ef760318..906c33a8bbcc8c86ae6f8c43aab0dfb63d8b4335 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dd6484e0904e86ca33417d28f2f85a9a2efde1b6..7a797be4f1427114d93f9b999dbc6457eb6e87a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 54c80837d9a7c082d23c0d28726896bbe849e5f3..0791cc2aef4292ef1212611575bec3eab6352505 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4e27940f0d4c8e60b798d5622fd29dc67a0d69d1..e99e1cd82bf3acee996903eb2b3869ea760149ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 000ce01015a0fd41186065c4d361bc211f2d53df..76aa94f001658fe5ee14b2a7d638de0e427098c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 990ec385743a90faaecc21599922431682b88e2f..451df173100ea4f398e4eba35048c4d99c408c53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1ff36560a4d28e919af17b1358dc55afbe26d864..cffe2c1428100c6879e7b79fdabc1a479a0ffbc8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1cf191fa1e5d1863faa61bd4a32b1f42ef760318..906c33a8bbcc8c86ae6f8c43aab0dfb63d8b4335 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dd6484e0904e86ca33417d28f2f85a9a2efde1b6..7a797be4f1427114d93f9b999dbc6457eb6e87a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 54c80837d9a7c082d23c0d28726896bbe849e5f3..0791cc2aef4292ef1212611575bec3eab6352505 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4e27940f0d4c8e60b798d5622fd29dc67a0d69d1..e99e1cd82bf3acee996903eb2b3869ea760149ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 000ce01015a0fd41186065c4d361bc211f2d53df..76aa94f001658fe5ee14b2a7d638de0e427098c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 990ec385743a90faaecc21599922431682b88e2f..451df173100ea4f398e4eba35048c4d99c408c53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1ff36560a4d28e919af17b1358dc55afbe26d864..cffe2c1428100c6879e7b79fdabc1a479a0ffbc8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1cf191fa1e5d1863faa61bd4a32b1f42ef760318..906c33a8bbcc8c86ae6f8c43aab0dfb63d8b4335 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dd6484e0904e86ca33417d28f2f85a9a2efde1b6..7a797be4f1427114d93f9b999dbc6457eb6e87a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 54c80837d9a7c082d23c0d28726896bbe849e5f3..0791cc2aef4292ef1212611575bec3eab6352505 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4e27940f0d4c8e60b798d5622fd29dc67a0d69d1..e99e1cd82bf3acee996903eb2b3869ea760149ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 000ce01015a0fd41186065c4d361bc211f2d53df..76aa94f001658fe5ee14b2a7d638de0e427098c7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 990ec385743a90faaecc21599922431682b88e2f..451df173100ea4f398e4eba35048c4d99c408c53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3cc1a5dbc15e78307752c7be513a4d3ea8b65d4f..66e077bf852f2083e5efaab972ebf822aa62943b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 959f85f82b73c88821f295b554027c54bbd77141..0a39bfcfd4357dd5ac79eb57aaf7bb284ce5f390 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9a653e5e3da0c10454c1efacf53dda7085e2845c..fd2780d556d8a95cb43db2de333680ba43d0947b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a78bb936e59eccfbb91b5056d3bf48a3dff135a8..3b441d4599e072dfa448235ad32cf838a02a9257 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 977ab902d5a1cf8446934dd25370854851686ea1..271fc3ef66e60cf97ba29434baa0d2719a20d3af 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3b284df38900cb27a18cc4541bf3118f5ac0b30b..88a6989d62d4224a49adaf1602a428be2d5a7ad9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 98302d44e83935d9c3bd00290301dd2149e60617..ad1f215f64f66f0b669fe2728f51d27cbb5c4261 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index d93ca44ae7df0bf4f8fb923178be23e9b13217e8..c9d00584bd14a21829d005c3b02a6065d446e3be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e8ce5f9113dfff497c3b5e7d1811bf30a7967058..5c559f252f9da4ac9e48d2cf2b804bbed707d56f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 4a11099e1118e6073f84ffe6191a55405a6bac99..b654fd90fccf518a3120af8ed0b9d05cc8e6304a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index d051540a9fa2f7176e774b4e7836f8737c71fbbd..73bba7c35327d37986fcbc323907a32f9af1eac0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 72e1a929b37c1df976a6cbba14a2b0506e8ef78c..f8a97ca4e3a60b8ee099b9600f2cf3dfe044e618 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9f990f4d81ab3e53cd249c18216ed5f3f7a84585..a1ad2a3af8ff9b7dc62ec4c054760c76188a0a76 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 31afdcf802e1390d0001a53e957bf29fcf8dcae9..c84a72e75c87fb9ead85dea669afffbe24e90707 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 00dfc84b24178cf58e88084776272652b689a9e1..7d3a687f32e574088145e0079e44a7beaacf906c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 29902dd6ed0b59df616905afabdd1016f920bfa6..254e931a8ed277b3162f31e6f996adab50d6838e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 13b93618f39e007e5832009e1eefe6fd9b49074e..484056f896d16bc216fb3166d7a0ac753615a6c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 82e3687d7280c3d1699b0ea12f7e5f268fc4a618..9557510a71e4b4de12804faefa4a605391808e82 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8b3eebb071d09ba585e5badc399860dce03d3289..4e340797d691a433ebd3c9c529000a571069415e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 00dfc84b24178cf58e88084776272652b689a9e1..7d3a687f32e574088145e0079e44a7beaacf906c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 31afdcf802e1390d0001a53e957bf29fcf8dcae9..c84a72e75c87fb9ead85dea669afffbe24e90707 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 560d41db0f0d109e8cf8ac32e854f7af92f875ee..7dde2ac4ace93251f2bfb2a014ff0d14146f4e24 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 29902dd6ed0b59df616905afabdd1016f920bfa6..254e931a8ed277b3162f31e6f996adab50d6838e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 41d822a49d7ed62cc325732a93d43752c9da9270..132056b98131ec699b5318927711bdb55d3a61a9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ed56133077ca99f0476c340676fc6c12095c550b..6f4475052b8aae933e3b06d9bc4d82e623595239 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8b3eebb071d09ba585e5badc399860dce03d3289..4e340797d691a433ebd3c9c529000a571069415e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 560d41db0f0d109e8cf8ac32e854f7af92f875ee..7dde2ac4ace93251f2bfb2a014ff0d14146f4e24 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 82e3687d7280c3d1699b0ea12f7e5f268fc4a618..9557510a71e4b4de12804faefa4a605391808e82 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8b3eebb071d09ba585e5badc399860dce03d3289..4e340797d691a433ebd3c9c529000a571069415e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7cfb063a3add6518c22647ed5a5dc59ae1c696dc..94c4d68bb66a5c002b072530c426a17fa6c56767 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7cb4f85d3654d6907489ca89f30c78618530a7e3..163489f4e0dfa14a7ca3ed9ef5aaf6cba549ea45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8b3eebb071d09ba585e5badc399860dce03d3289..4e340797d691a433ebd3c9c529000a571069415e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 683f3f5e33fbfd692db0e6c36a651625a3ea69dd..11e48c34275d22b9c588ba8c0ecdff632bc51f52 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 114b80ec9507660a9ea393d5644a9877cb15d479..fddebe492e293f7fc3fa2b386173605e61605dd4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f545b8801befc9c1d080e849e9d1a8b00015fe8..7b7f65e36994eabecfb6d8db6d0692f09efacb55 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 33b25902fc770343aeedfd85c16127dc9c3fa1ae..fa4bd8981514a4a78bc94c2e0fac06a441556f13 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 86613ea8e302c002c8b110a1c2627f8881c8d5cd..c1e1a11244d25b728590fa051787ab8d66234fd7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8b3eebb071d09ba585e5badc399860dce03d3289..4e340797d691a433ebd3c9c529000a571069415e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 016f9747eaa7cee185d0ce60bdd5881d6e34ce47..061c6499c24c74bf5e68a84aa0112fdced99a145 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 53b4cd4847877cf64f102e978f816510bfbe204b..1d00e164fb6c26accb66cccaf5a308bd39c2c87f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f82705cfe12c222afd95c57d8083776b036550a..cae4036f3345af50605866fa21e9cc832e1cba6c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 98cd0c814663b0739a8c44af1f9a17da4acb64f4..b2e632a23a75b664dbfb545775ba569dfc004583 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 455c5dededd0ac80b620566780830b340ebee0b0..a2c05a01aff653732da2459bd33fc86366739399 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 145b9bcd167a4e287da6fd9959fd3372f047c740..f5be95de0358679e5da6f6411cb96c4dd36cded2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fb21ff022f66355752c60164ded0874bd9a18cf0..c7a80235180831418562a62fa05dc94c1ca1dfe0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d211d9f9b2a4740de20bfa9caa5b00a568b8ad43..ab2e5d905c845991bab8b54b5a2a4518db0337d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b24d006884a299b2a427d698f90a88d3c8a25861..d50fc584b34c6fa401f3ca2065909bfc9becb49f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4eec01c7eecdcfd3535e665c74e270328b6f244b..510d7b96e91302b08310fddd3f366f85160de2b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 476880cf3b150794856907992045976bd9952589..81c23e7f3b715d4ac01276493e9d259d38c60e17 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c594e2f7ff4e7e39ab7aa43a081f660d84e28d10..c460d0205dca1ed66b0a2a42820bad8ffdcdd51b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7d5eded93b9ff0efbaa02243d5dc835727439564..069bf6bdb033e14a1e1ee0e5d78cd68f7adb69fa 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index c6f69857ae218ac9e08427a1acfcfe0f150990ce..c6646ea6bf98da79e07cb727d84638ac1fd7baf6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8df6e6debc6941e094bcbf69d1a4f46f80580970..07ff0080d04d868499ccb666337bf648fbcdf7f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index aa24371ab07c559485f936e066625478a3286c09..cd42b85168237f40758ee51dfae5a61d5d07a364 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 207c86c1b1215e80a99374be7038ca7efe3fe83d..9b735a5785f11b49983aa2bd2718654f11c1e071 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0dc40f68a978a4b8b04e5c1a3d334de39e9811c1..9552b32a02610329f565306c1188bf413afd3670 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 57578c8264a76af235da567ec8f0ba92b7b87cf7..764f78defae84838ab3cac9e5fc6c25aea63b889 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c594e2f7ff4e7e39ab7aa43a081f660d84e28d10..c460d0205dca1ed66b0a2a42820bad8ffdcdd51b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c6f69857ae218ac9e08427a1acfcfe0f150990ce..c6646ea6bf98da79e07cb727d84638ac1fd7baf6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cab832f5619fd5b8ea9a4726fd5d1bcdabb65af6..6949db5a4eaa1bb5fb629271c2c7fecc5cce7409 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3309f8933d1adaa3532bfc67346070d66230c73b..f2d8b90fe20ce337b326257e845990bb0adf7c01 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 815c6cb63cd1df6e80dabdfbde5e02584b2e8518..9b652113a273ef8117e7530f17eed8a570a58f3f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f922ef46f0029f1cf8371a9e087cd6e784d0a93..da17feebf07755c8e6aeccb401de3d48dc403bdf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9448ad8f44e59d686883af0ee3aeeaf5587a8d7d..d5f2c6f009adcef21722164db148a4f0a77bf00a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c594e2f7ff4e7e39ab7aa43a081f660d84e28d10..c460d0205dca1ed66b0a2a42820bad8ffdcdd51b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c6f69857ae218ac9e08427a1acfcfe0f150990ce..c6646ea6bf98da79e07cb727d84638ac1fd7baf6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 979999e5e3233e3b0d55453260bd512a42427338..85c426513aec816e85c740dcb92e0d9a2bef0ffc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fa7ce7d9d40ec08cd84cc53f4e090e63f0126edc..fe856231a49a9c750d752e3ed75d7c0c3ca50212 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 19f4be48f8df7f22d25173ed32b168ba3046dd90..2a9ca5ef2074997ca9dd0ef56e5d9e0d805c5225 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 17e7774df0d19d860e0ec31ff9ccf46ff9a837f1..d4b7a158f9f28080476043f96d9fb83dcb49c179 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fdf1366d09dd40702d5f7a7ca7399a872d2eec00..8e4384b7a2e9f6fca8ece4b77ae9633aa64e9688 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7944cbfdfe0501598c2994d8c1b160cd4e75b81c..65a4c2350ffda8324401c8a6c2b0d75019344bfe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2e3b5210d223fd2dcdf0dde5a582bfc095a8ac66..c76372d1069c21d5735100f6dd671b3573148b8c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6e651fc173250f5804d7ad0d27017d5dbea978f9..1cfbc8cd2e1127db56f9e82d4a062e3c7f92a96c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ad94c5b725f9e259836e7db2f53da137ec9ac37c..9183bf49d90c26b0a9ad97dfb99caf25d56ebdbc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 25ec915ed30b9af3675a7e902e15a8d136160bf7..032c8616ed05082f348df50ed002090599d894fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6eb13b096805a50a160dca7a320c7333bf348013..f9a7be3469fbcd12a6ebb590df4abc378e5229f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ba881c76bfe131f6529a498c6a6fea6a9307b02b..bb65794deb90a9c52cd374a61b0cb64a96a17b4e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6a9011352dba49d96ac1a556617dc331b3795b83..e077d4dc7c8334b2ce88aa24e459332c635d740f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6d31edfcbbc79262d668a5e1c09a0703703cdf3b..02cc0997abe520a964cc6bdf3ec154a2acae7f06 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9bb9c4b9554f2c3f2289247344c11b5cb880e4a5..62f6863a1eca6312f347dc0fa04c86b65a185736 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7ea588912d9ac541c4c2f1b17e7a948251002e1f..0046af7a96743ea439a085252994e25e31be445e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6eb13b096805a50a160dca7a320c7333bf348013..f9a7be3469fbcd12a6ebb590df4abc378e5229f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2fd5c141049b7aa832f03b9f36416cde78b27e66..bb502d8cbf88f56dd17c41ba3740d9c209450102 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index af772ffddfbaa9c99211b8823ca5120bf06c5ffa..1766b4d8c783f8ffdeadf57c6301f8e4b109063a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index df91f9c56d7eba0381c0ac00dc6e5600fe59ca2f..b5e5c261656bf3096f9dcf795e66f262cb9366a5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9bb9c4b9554f2c3f2289247344c11b5cb880e4a5..62f6863a1eca6312f347dc0fa04c86b65a185736 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7a5844a404112599707178f7a9c6b38f86c44b54..317aec1501c4cfa0801046b4fbf6d541e861cc5b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index e92202d9facf272ed08e03df2e9c49470d81a65f..bff9d60216667692618f62084ad41005f21e403f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ff48b7db309dee1efc3d9b2932b215a734624a41..c7b032e0e781864948e7244c84338e198cff6d8a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 502b59828bbbec0118a8368fafeee75b4000ae91..ed99fd7a1a957123358893caad6b7115c3d96ef4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index fd154997b822e3c10fc55df62f16fd18f5666f32..60293c0d65f8621c1d67a1eae8b9e1c8c17da5a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index d220b6638a1c1950df894fa06284cfd8a9e80513..1ef9cd6eb99eb729dfe9846ec5206537fb65c657 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 4f66161fb99c0781cd2c6a8649bf86be81219952..11ffe345fae5addd794292618746eb446761ce17 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 12bfb9da254e177d07d2dfe1f676ebdbc333aa62..7c4a1c0fb4083aa7f87ba56474875be5c4848411 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5057acf2c9fe6fa566568043b498672a3f4b08a3..70b6c7931e52b41f2ba577fee5c55b69735b83bd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 89e01961b50c95dfe3398418c2129bb442499278..a140d88277659d5ae61e58e84d2a2b08b8f15a92 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 95ffe649e297716085a8e946e6f0216738965dd7..c5e4d39e8ad5d9705b2e30f929484497faa12f91 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 240b3a86a584fbf3600a7cd42c2b5394b5d364e9..9c1da238f09465dfa1081862db96c975bc8fc422 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ff8e4d762199b77661c09e3ec497d10464325b3a..0136bf734ea2174a7c47972e3213df5f756e1540 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 45338a683364c4ee6c30c433fcf5383e62fe6f54..fd01cd14c744d1a0fddbda5ba645f30adf29ed57 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c43027f3452a4671766cac1c77758ddf3b5790d8..1ab083b280a10208d42237d69f638b2e9e3037a2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 487095a55e6d50e512e3bc81d594ce64004fd36a..e8305d5f722f3aee32a3ebe04bac5751573390d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index fd6a7b499de6e8ab5841dcdfc616afd2ba9f2394..ca7cc06af892e36c8e07ab550891b6b88cfa9a20 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 105e9c6d509b043e143819a91e327d311c9bed3f..dd8eb1f91cdcd284b8acde35ea6c6d29722318a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 0bab5d909276b1bbc0e29c863b57de4836672e17..668eb1fdb7f9a078d8c7cec2fd9abf6db4cab443 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 36bd24058ee2c0b6b5f99e7e33d10c8c0afe5749..a6a42cd8da76cdae705b4cdf5a5d27132a96b135 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c43027f3452a4671766cac1c77758ddf3b5790d8..1ab083b280a10208d42237d69f638b2e9e3037a2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 7a7a2eb7d8fb7fa4762a22f432f90e1cbcaaded9..e19e94571e90a96ffdc5acefacfbaf4add6d9387 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 715330aea928225f1a38d0aa69366cea718e6abd..a1f0aedc15093edd9b1e005ffbf24a5752715f9c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 105e9c6d509b043e143819a91e327d311c9bed3f..dd8eb1f91cdcd284b8acde35ea6c6d29722318a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 7d9dc25d10bef9578519ad230d71d645054f45a1..d4c76fd7015fd71065b9dbfd103c1b14cdea279d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c43027f3452a4671766cac1c77758ddf3b5790d8..1ab083b280a10208d42237d69f638b2e9e3037a2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 7a7a2eb7d8fb7fa4762a22f432f90e1cbcaaded9..e19e94571e90a96ffdc5acefacfbaf4add6d9387 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ecc22e6645a1127fc72e43479a7a9d99262f16a9..e66beaa3d9940ce204fdb7dc26cae55162d1f893 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 73e18f2069b110898c14103a9bc1068b77938cde..f1c3b2975c1c2265325c00b892373c28dad0b6c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ad4b82b9ab2e8022119ce39dcdda6d9ef829a495..a29a64b121648500346d9ac354bba668130e6a4f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 1fb3df5e85a3130ab17f93ecf9ef822ab1d037d1..a4fdeb9a1a6cae1412dba4f122ea052d4925e829 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c9c3a57023a7ec318b545ae7d7067407e2cfa619..8743f8c7d5a9515cd77e8121359bc82098518020 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index aa6c5c7bb02a14e55a6f63173b773537ad43a813..214912b3a3fbec7253d4521c58ce359f9ceeb571 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 105e9c6d509b043e143819a91e327d311c9bed3f..dd8eb1f91cdcd284b8acde35ea6c6d29722318a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 815c4190a1309cf953cbfc615e5d6494441edd6e..14c810cbd86083df8bdd2709c12b5b9fda57ac1d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 7d74c4407142978bc8edf73c56f2d8dc0b25506e..e04b8a9bbeabbcab62f485567ea38c0e85fed93c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 5b3ee5ae0e2fe5d8d47253263cd864bf2b4eef19..2a43dbf49235321e932411b18a11ae030646df94 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0bab5d909276b1bbc0e29c863b57de4836672e17..668eb1fdb7f9a078d8c7cec2fd9abf6db4cab443 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dbdf796329500186aec2fe70e2e6026491104e81..1dcf79ed49f06a8258fd29c656afb58d408a5c03 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 18b7d4a5a928198227da09a8d98b02c46d43aa84..0ed1540a00ef18744b1570fd45e9d8a70f5b603e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index afafdd5f4a9dbaef87dbe4a160fcd7c30727468f..b367e856e26b520b2312474b28e80d926bfeab68 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0c1a671fdb999ce23ca40661aaddfec9b6b81e10..61e1cda19f91a6fb26a3a89e4d446c57ea01cbed 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index dd35507fe5a07749565346dec4d039ac4f9bbc49..6fbc13e98b7117eac4960b7e8541875fa0a17c9c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 80b553322e238b2242ea8e675f36b1cc2472878d..9c176ab31f1ecbf75b91bcd4c6f6bd2c29f22154 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ddad97decc4ca685d62d47d2340df6c406a7ca75..6002420d1168c53a82f7d0fe1f3d1d1d4e901d95 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c7a174eb8ba8c674b27c7da4492fd9c0df38e041..e275d888aa30ee2648bd3696ec5c6c1a937d69e1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index e71158ebea6e4add921f154534a7e7eb52bc4df5..7a8c57088d99826271dd558c0a496b8e0bbc778b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 956fd92050cffba2fdc48e05f5bf72c498f472f1..2ce84028145964a550ac35e80f9f15b1f7d9bd92 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 59178f3cacfbf74a04ac365bf56596ecd51cd3fa..080e9dd2b18e0c5dadc45da90eaa5c89de5e35e5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e44f4ab689ac8be31ba1e757f7f14ed84284a8b5..e480be19c4cf95109ef2f7126a052523fb91e3a0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index f96979a05ca8d6795a864c08e2f3098084ce5afc..86bca1e66688a12e790c6d8d280e52d3c3f88ccf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 0e7996ee8e958f6e209b7c6b8363033fd86847a4..453befabcde069b1b3751a3eafb17641c6abd8d0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 09e770ba54d9b709568281ce328fae40e2a7dcc8..fe1455ba86206ea003000c75db766a05190a5382 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ec689f8979858a3418931898285f6f483c744211..744b169fa10089a91f4f6598024fed08b6eff217 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7df790b8b9b7d73e2254562b7522ab5301570676..ffe5b96b397384415953c441ffd7a10f8022318d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index aae22bd3bf70a0d1f32e6483c5a5da5d29830e6e..cf58a5c18229a7642c69bbbb86416a2874ab84cb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index da0f4520176f22403623d04b93ecc4660f603a8f..da7e86883f3d51144894af6b07f1e9cde260baaa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b9a99695d58f676b7b86267e8ecd21389a4ea98a..0befd27a406e8609ec6de4706bc4379d622a6531 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 749b7e1a5922683bf4d5e4026736f362e27371f1..8c3d55fca71db4742e1eeff1ca5ef766acfe92b9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 06df83c0faaa97522f8c99a82622640b2e55a53b..62d07951770a922cd4c0a12e1221f8355a160deb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a0e791528a713b8018fdc3db0b10b4881a3cf0bf..f8c748665b405881154768c4c886eca1708b1583 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8a20e668a68f66b6ad0e9b6cffafd44d770894ac..f76a59f9f20992dc74e2a2f703e1f2e28ea1967b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d425b9375a617be17a03f99fbbcf1e73c282ea06..fb57b20c9f646379966094e85524f1a17e4ff6f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d9fefa569e05bd96bcd155f1d1d93856d9dc65c5..977538378d9c18df6aa43b33f633aae7e4b472be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 25c5962ee3a7a86e6d7b239f555901cb5a119fb1..10c6f6996896b639fd680e4234e159f92bd35de6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d95c4ef41ab4d28ad853c7617399b3a32f729b87..5f6ebcfd7b2326741abba4603c1122b41b20b942 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e03a5693839b88b466f4e52cacd9fe4a81f433a..ba97f7c3b91c3105f62a96e30a173c6b95b36b79 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe9ec4359e2b20f704b28183bc568ca4588c3ef0..c4a2f82f34f3c79d7dbe22ab5be3055419dfb5e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7134a510fea1f432476f81e6ee7ecb99a5bba8ff..f4aa99688ab6e3485a4bd2b2be33469319a51ac6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 181e2a1fa2663d74a472b2354b0344d3eedcc237..4b070ff96324f0c2521fb5e54375b88111fc0eb3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe9ec4359e2b20f704b28183bc568ca4588c3ef0..c4a2f82f34f3c79d7dbe22ab5be3055419dfb5e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3c4a8f9df23e6ebb59a78a45374ca6907e1f2b93..219cb4f01cefadabb2b51a99dd7294ee5b43a41d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9096477823baacc7d4c38fad30cfecf414c027a1..62814d8317c16088c41081f040a641ce8d1d3df5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7f029ffe36083bd2ff309c761991cc8582550874..7419704b0b069362234211a3e4e05b2bd00d5a1b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 181e2a1fa2663d74a472b2354b0344d3eedcc237..4b070ff96324f0c2521fb5e54375b88111fc0eb3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe9ec4359e2b20f704b28183bc568ca4588c3ef0..c4a2f82f34f3c79d7dbe22ab5be3055419dfb5e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3c4a8f9df23e6ebb59a78a45374ca6907e1f2b93..219cb4f01cefadabb2b51a99dd7294ee5b43a41d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9096477823baacc7d4c38fad30cfecf414c027a1..62814d8317c16088c41081f040a641ce8d1d3df5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7f029ffe36083bd2ff309c761991cc8582550874..7419704b0b069362234211a3e4e05b2bd00d5a1b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f5674390e4f82734cf4b903dab6889cbb575628f..7a7178ab23e5138a44f93ab4eb1f8cb2049580a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 95cea9befa78d2d2701954a5be4712aa195a5272..12c892c108546d2f9caa23265fdff50efc9ae2e5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 24e2a413b2dd9cb806b67ed9a477c470dc823817..348abf230817ec0cca42071efb733d22e19cb4c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 07578fcfb76b643cdb3e05a6092c1c58038aec58..aae7dccc5774032b20e4177c863878702bf2532b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7f029ffe36083bd2ff309c761991cc8582550874..7419704b0b069362234211a3e4e05b2bd00d5a1b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f47d9ba7f3027fe56098b657a4d863aafae8e8ba..1eb62be3d818b5dbe043df03e853938fd4b2eedf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bbc9fd4bed44075a3684c5d4526a480ef098ea0f..50426600b5698aa671cb765feb1de3acc93f22ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 42b15e7125ae0043e22d081dcb8d3d539c990899..6eadcc828e0248041a7777815e06a10b1d44f568 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4dcc20904a931dedf4447a44c2f1acdf725aa0ea..50899654642f27084c31c8ba34cff804ec666105 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1f28f438565dfecf82b25fa9b9d6914dedabb10b..fa45aae5179d168062ed980fdb263b900e9a1ccc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 487abec5049308fde4373e47f34e1f8fa92f1984..5d79578b996bb90c32716d6a36fdd4e7b703d577 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e1b80c93c479dd927cd40208453aa8d6e5e6fbe2..98aaf92e7008bcfb610d0ec1d3b56add6af74ba0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 660925c786587830e97defba4325c98b9cbdd3de..0e177a9d9f88c514467ed3461cf820d92476aa04 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ca5bb7160cf2b4a5c2856144831129d6c7268cec..960b9f4fccffc601716794513c48262d558a2da3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8dbc850a9b662555914e437dcaeecde6ce403503..f67ab2b918b8dc6e786eada5d608ee7fce59b95c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f1e7e245acde2048db6ecddadb6e7df1b68bbe61..107b1dd764d743407576cbec6e4cb160d18da467 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index df50a8ebbf24f53adab6eee1581970f553d7bc7e..c9070f7f1f1d052f353abce0d1d6b75cde02900a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8af6e222bc431f670cfbd2c2957ee20abaf2370e..679cb49565f18b76a409c162f767a7a80d17c079 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 987dd65e941f0a170b2d2f71052fd88ed004a6aa..2450dd57fe6e3e9f6e2e5d4783684aa8e7248ea5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c786a0e6ff216d5b9c4edee8d2faf807a55b237..848754a791b866479934fa335702ff546bb14f9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 59b8423d32f69bf5ae40199583e5a0119af7891b..8877ce6688a23c73845bed4a89fb3612ea20fad1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 17df9f0ca26c58f17ddf37b4e1722825e83f5d87..c1a13a9c32f50f7511415f27a79b5a22ffe52c39 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 591660ab1843c2301507f7f88c303663ab2e41ed..24ec6538b683e74f0b05386075be4bcac42b6abd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index eeab2dd7c52e7f5cc09c9a5de2ec412916352b8c..a4d4ef72fa07816008bce3ad3fb390087537d8b4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0ac893c2039b8af9b352f2d92caf127970b7bd14..2ec8af5674bc708ac964380e1d0d124fc78592c1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 39aa61bd0eae70dbe7a8fc08e874e559a55d0f17..d1b58ad2bbf2e96341011a7bc38f24a0fbcef72a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 546e7f361bc77db6d563e5618e19cbf41e83fc67..2e94b62155be703f777dfe3316f50d164bbf95a5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a6100d37a41199c718fa2ead5e13c7152529ae41..9b1d415f633b1ba22de482030bab4332692880b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 195ad53d376f359dc26e2fa95aa18dfc29d34702..d8267631bd4f74364bad39fb30039f81cb066afd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e31143a8e4f56bf82a2cc26d5a8d085733d76f06..a7f119971c5b47b8be0aed09ac83eba23ef92743 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7e7c93b82379abdea90476f7727811359f448550..573474a0deb5364c296551e2142113d8a849ef76 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 27115503453b57bffb19f3b1438cfb123e70bac7..942b01bc17c198a52988e5f939acb946f28dd56f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f57ad3529710d56bc2aa6eb7aa4f8a83f9e3ac45..29966ae6aa7eca6170d10f0099e5f4f52fe25805 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2d530d9fa2673e5fe35be8a9276288557a9030c5..2fa269ba30a33f5c4150aeeaf1b9b497b399746a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d19fc68e71ee84ff3fe0cfafece935562d974c63..b3e23726b1b5d21a22875f03b20ae4229ccfbeb5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4931280175e4913842cf9bfef8f5a78b5b48bb7d..03d86c52e6e0c7efd18f83c6439bb58b6069c6a9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4ecef03396e581f930a7497f5235cefc8583cc52..e68c3690ef0717b2fc98e49063c0a347a6d765d5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a054b570c0449485d46a4b521814cefb2443a653..e14f5b3f9d61e3c13925d8596c05ebf316d571b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f2218d6247f97ab09e27bca6232e5a6ecda6bd06..6fa0d5420987080581855a4b7a14d36bdb47a2e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1734b5b19eb2b04baa69337c322261431d57ac0b..eb2393e292d6165ee59d9ad8592f7f96f069bef4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8077118b48b9a6116dd9e8a750ac34b221343fbc..d697378d26bc4e478683bb9bd32d3002596b9354 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5a5636527a7c9dfa98da168ae7bd263c0b770a67..66cbddc4511c441f93ee190d08a952cee7a5319e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a8461833f4c73c2242d945a34412555eea09176e..2b4520e6d18586120b481092a223edc4b5f44790 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cd5b0988fa02d0178312194d8aabe145fcf4ce64..15a05b4a3eeab6a60bc3d8dd299ce9a8bf4d5742 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 27115503453b57bffb19f3b1438cfb123e70bac7..942b01bc17c198a52988e5f939acb946f28dd56f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e5b80409ad25097990271e1bf618c510b68b92f1..54594388ef515fec8ca4ca5d28607400f0272f76 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9a22b3477a6f9589817c7d753df47159f6dabd59..3701b898b60f91c8aa3a12a063a1db40e3edb4e1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4931280175e4913842cf9bfef8f5a78b5b48bb7d..03d86c52e6e0c7efd18f83c6439bb58b6069c6a9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7362071a6d40014dcae7d12579142882607fd9cc..3516a349318b3652f3738e567a25611367e7cb27 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b80245d3a4f152306a321a48c6807f6fd15968db..8b5a7600a4e92dcb24a3063925af2beacb1d0c8d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 97288baba8c06de5b422428926b67938680ca0ef..a006ed70a0cb8c2b777176b1083c244599e1e4f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 199a20c7b9eb85ae6a3bb74668ba8885e3d0af48..12ba37ef921fd04b9a1c7794573be1eee930ce53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 54987b68f525ab4035fb9c9a25efbd2a78eb1146..48790236922b368162056214d622dffb95fe87ee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 37803b58812b40e7653f3d42de233fb77b9d1d05..2827c902a3b701a94f86b4548afc3891019ebae1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d19a5c919891ab31e32fc43bc9b0b644c67a1ce3..ec1b562b57b7d90034d4acd5cd72b6df0df9940d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 05a801e3af839bd9f81b2b79ef4d57583754e3ef..664325bd33b2f6690169193fb922328cd47fee2a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93c3275f18db044b85629b750b331e0dfc84b420..1ba45ab44a955025c20535a65a0dd98fe96a7968 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 568a117c272cd0885b1c63307ebbfa59ffc94918..801a4a18315b5b59249fd0c16a90df5e9b3e85e4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4121267dfd5cfaa3adcd35ca555bcaa0f29f28f4..0bf70a543444d99bb8341ea4862c12aed151f2fd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a114b10c4b279413ad4c43cf9957d92932c5db99..a4e7587dc2826b5389ec5d7c85c5ac46ea09225c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7427fe70e48ebabfd447e3e165772dc7ac3512d6..d7db40246c981e1916ea29dea7190c48fc066fc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 89d74a7b2bc3b131e49f99563391cbd2770625e0..ec42062fb7a0ed5e2417af0fffb2d9c0610a552d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c6d9f9d1afe03029b847f56c7a39d4935a400902..4dac45cc0768dce063e2188c7112fb8fa6375c5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1d7eb22167003b7b096e1f78c6abaf03023a9507..0fbd79b9f9ee7b7cd271e0d9fa85632824ebf2e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 63e3202673bbfab17cbe813236843d7bef5f5eb7..01f48595d01f1d43e28c67f13dc6266f65daf8fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6723a6fa52956a0688fcbe594435d0ba53874149..0037bc08fe645b2c01734fb4054d37884d7d59c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4b4592eb3fefada9020d5931eab801030f028168..1cea034cb70312b96e4876ace4ac24931d42925b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bc99bcb876e59af1fb8d0bd61f0df4e3b85c0449..1f6023c283b02b025cbe4f5598cf3e506565c4e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1d2ea7664f169c151569c1a372bee8cd2bc7682c..cfc0b56bc126f0be2804f49208f651c460b8524f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1c229a19421000dd88944ecaa99a3c41f408fd8a..7c066d384a19be197eacd67720400f68f104c68e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 9b7eb5afdf3ea9e67a4f2fe7810f0b3ff0a0b3a7..4087fa90a8839f2b52434578c268206bb0c5472f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0397e1abeb288cc4f0da2e4b903f49e8ece0856d..922885802f2846f05ce6d794389d0077fb3739e1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1ff226c626586efdf1a190113c1ebf1cd22c57c2..213bc90b5cd63066a19aa544b622dc41be02c464 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b19972b4afc132b1160cc5fc8201e9576d7db5fc..e8a4af8ad13fbe39e13cf264ac8763a5611cbba4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fd9b6d7d95559eed48c8a30dcd0aab79f5689ab5..b549a962b5812cb2984a6ed332389a26cf72c7f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a8d39b2f9ad880b1ccde39163802260cc86c2cff..a9d0b649a52aeb2a62467b9f0b0b6f156b6c0eeb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ede5b14bc9f6b1c03052880317685a14ab7efcf3..6469eec2c1880fa89647e85a485fea8f9dc93edf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4bb1c89042db8f4c9b0825ac3e6dde6e92a16fc1..1e59da8ab87afb1508150a2d9d922e8573d8e23c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 63797cb525fff4031133bd87bda70e3772e4e96d..36b4968cfe83dc5fb9947e2b97c877987bc79646 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 71f1f4ee6ac52c4410307d6d6a6206b848b10809..16929059cebdf9ae86ba8a895ad99b1dbc190d5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5262614a12157c381344b6b80e2195fbddc11c60..114bdd8ba394247d5b16d327d2ec7b2029b376d7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 19c94f10c92b41c14f8123eb6cd965fd3017771d..02ced9c54cebe4ffc4a122d400a37eb67201f23d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 39c0fc8a46309c05f94da898227ec7ef359bf9ad..0ba4f98e3a7fd5a994e3e7c71d4900553f82aebc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9291839914be1caa0844cb2c3b955b7b2b35f7d5..51394733fe73134986cceb9661def2f04149880f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9954ff76392be8c9804e4785187d319c3a0495e7..38351333fcb52e06b9a363a1781a50dd2b73bb7c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 998e533eae88b816d9495f13d2b4a16a1a710a1a..08dfb83318a42067164e2be0efa7fe34842f4a2c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 73a69038b44faae6d321b98c97e9f5b7dfd34933..c533ff6b647ecc0c4a3acba2662ac7675151b2e3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8369c84bb912e2f0d5718cb0d601ae1d32100fe9..9e2a882b72181264a02159e66cfc7ccf9f4c6eb7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7e00a10b009439e02e373f6662fbe9af9b4b5144..b88306d9f201ba10d1c90211d42f98e8f7c9c26f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 90b868713572510eebaec2230d85861fc126777c..9b384bb90f36bf6b11e1a04636d9ddf41a7fb6c0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ecd071a3b805261421080c78e8a2b750d3a88509..6ae4a3aa906441dab2fa777ebd69033fa5b3d4b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bf3071b1aa635625c1f25459b1de73508c54cc84..4231b0cdc7df770ae8f0472e649a083c14ff9cb8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c7ebe1131458364ad82c9f3e159c9c7dd19fd10..8db532329c7044e02fa7d67603c25f2c27b99caa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d0dc69e8f42e74de720cc99da6a56a39d584c9ad..09f18ecb5972230c4e349ad7b4db082dfd97b7c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 36f6eee595db8ee8e26680155e2d2d5e6e8422a8..ac911d683c563bb1a015bd695d95cbf8538a4c51 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9911d83f6193b586782e280277ce4b01ad13d3ee..b0edd9fab002f04c28f8d2b5e3fcd8b68fc296d2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dc7bde4c91849436ab0ff26f328eb4916848cc7d..c19c733da868446bd421b2d52c6737a3adf4467b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1ae25b3564d9123b6e793f826b917cb9e5459ad1..20af90a05ec8d6fb21ed56d8e3403a77176c695a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 39da0b2970ded03cc3fede41157e2630b975ed1f..5b0317f6f72230f1cb43b937766aeb7801d29a05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a722eef7ddd87201ab5ed73b136b65596afe0cde..a8e5fa362357613a3afd6877ac673a8ecd8166cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c1087cc2efe2a38682e0e85fbbea1e407d0fa43..4974c1a4204ba35de3ef48f4bde18567b22eaf19 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d5119a688859b571528acb3df81481864b0c734e..10f63d070edc31fd901e3ecac04c72d0fad1d737 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b20a234bdcf7fd859516431b3be8f8b59b136185..051df0ad34a34481df17a699dea078f429aa7cb2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d702f8c18ba8ec083cbf6b2acd733cff31d151ad..40c4395bca22cb7bb4bdd9282a0b87fb7cddb2dd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7014670e5ccc0cbf88f0e29f840699b6261c3e4e..67fc1686ad92e2621605aa0cc9622bedfb34bc07 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bef8b36fd5955e7c7b8b54ca8a946bb34bf871fd..8b17ca7338870fa026fa7e49265d23fdecc05dc9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5d66b988263375c372fb77039a4edba7b278b449..843ef057c7b2cfbb419a6926f1348594a1071ef0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ec9859fbd1447d593a88ee39ed758c0bb5b7f8ae..bf78d61021448293a63a1a5ae425a75abed8b93d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 07dedb6346536d0f0363b1274212bcb3821595c6..39a6e5f5f6d7561b8dc2905362c75647950483f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f3c27fe9e6d692be1c52b47f0dac60cc52f0083..3900a0ef1a4f8e3bbeb7b71a83c49ea097bfd752 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e717a9dabbc12e1f9ac8a62ce30104eb5e4d110d..d7a9e480abd6a830146bfdb83117e448c7fcd199 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 10fd3f0fb86527ae25478c9b86a9cc2faaa81290..61ebb5c96778c84f5a9ec323b8d3612f7a87c554 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5898807d794c3ab7f16b7353947750d80eb4808b..9fbc85b34e7e91f506e4c9fb9d83ea2e7f09c990 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fd0b071eb31e7101e530e7fb7146fd217985ec75..343af919d0edf3492746952f98b476c72990e79a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 09f399693f3449147d8efd18970d2e2f2fd56aa4..5e0c2bf624ca9ef0f24f7b39e07f5a3036f82ab2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 17345426f277618d3c68323984a5aa286038d550..5cbc1706bfa9c861c1783309ce6dc7d833e9eb51 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0f67064f13566546add55eb144e8ec95f9129a58..870fb9354abfbd8276479a794b61ae258e45afec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 398239ff87d56e085a0dae20f71cbf146b2cf469..268654ee3d5926bf59a50f90138a787ab4753aa3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cc549bad1fd0b94d8a5fe41cfccb87f8b7f40e03..ea614aa1d5891032983c4f452b7379284bcff846 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 80d20f4b6b50d268d597d0f2bdbd011fdd501c26..0b68e39e5390a95a7625188100700d010797fe08 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d65d3868b45646177efea542ebb042f276462c59..694fd7e15f2bfcd96271a69717cb9ce8b81ca54e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index afafdd5f4a9dbaef87dbe4a160fcd7c30727468f..b367e856e26b520b2312474b28e80d926bfeab68 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0de98ddd8cb95d0ea300212f968c558cba238512..5f95478c918fd74fda642d613f3852009c89e638 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 223b8337d0d39192d0375e5757ab3d18cc625660..b5221a5ded8d017ef3dace6c4c41bc6094ab1a48 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index bc865e0871f227459e7da473544d1ca8ff23e777..cc156c8ed543e478250cee90654024dc8bbf1896 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9d007849a3523858d8fd42fa74dbd2ea5aec2e3b..a2b097f7d44514dc57948a4fe4c97c3459b4ae8f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dfc0dbcc13372c3183d6077474d5b8ac45d2a841..750591a9f2945309de6f6412b81dc94fc3e48882 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 35fb8062dd421478281e980029a14e07eae86ad1..117ba571795de5462f89d399c76ad405f9b57417 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3423af2b5b3a0cdf3a49ab972ac720c9c0f3fec5..0e7bc2b5136d3d3969d4d38381dfba7cb56aa646 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7a31826af61298bee2b6480208a8e03ef84daf2d..ec47d8d6e755bf5b0d3099d0405e32443a7ff652 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c051e9daee887b00091dbb5416a167012dc85231..774a3bb8acda1307cad8dc55ab441ddaa3c91247 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f99adfb08e620caa798677e54be139f04dc9f25..8f30c5ca98560bd1296c46d743bab85e47ff7f1f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
@@ -303,12 +303,13 @@ static void        prvCheckForKeyPresses( void )
                                                                vWriteMessageToDisk( pcWriteBuffer );\r
                                                                break;\r
 \r
+                                       /* The legacy trace is no longer supported.  Use FreeRTOS+Trace instead.\r
                                        case 's' :      vTaskStartTrace( pcWriteBuffer, mainDEBUG_LOG_BUFFER_SIZE );\r
                                                                break;\r
 \r
                                        case 'e' :      ulBufferLength = ulTaskEndTrace();\r
                                                                vWriteBufferToDisk( pcWriteBuffer, ulBufferLength );\r
-                                                               break;\r
+                                                               break;*/\r
                                #endif\r
 \r
                                default  :      vTaskEndScheduler();\r
index 0fe8be8e562f33f72d868d5ed3e19ca4ee605299..bb5f6091244455da335ef0160617fa826e734958 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f3de021235d1201793a92f42fdf6c0afe7c936d2..97aa3c7d466ec09162cdff69e14c0657799a53e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0c7ba92aed27bfcb9bd45fa47c1cab26855ba136..d2abcfe4965c4be0cbc82807fcfd22bc6ed6393a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 700afa5fe910c45698f6bc5ed875a7223a139530..bf6a54adcaae26dca3ad2d52fb003751f0cf9d34 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7ee7929d624c20c41beed34f617d71dd0cd072e8..5824df0307f2697a06195cf21a2cb5be9ef8f144 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c056f9a7318f8fd26fd1bd9cb43b6a81a9f843c9..0781c6ebe65a8c2cfadae51def6714fea637ced3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 91395d22158655187c18207a0e2cbb69eea65fa9..7c68f467d576166126a44f1b5715bb83e3642019 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 83f7ffd151debb5367904595610587d2415460c6..181911fbbaad3359ce111e422a1af09d8e17acf5 100644 (file)
@@ -1,6 +1,6 @@
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e484bfab467bebd99ef3bd2b31b52e7f5758404c..bf7ce459da85266fb1b84998b0e8f0a846c4e757 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 008f7957e4dd35e75af3b7b7fb91a222d96c262c..d3e9ce43e5d3c74cf131f16ca86662c8b52fb1fd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 91395d22158655187c18207a0e2cbb69eea65fa9..7c68f467d576166126a44f1b5715bb83e3642019 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 52329591a0dc444d93570abac693126b9473920a..9e71713a6497895c8d26112a7ef5832200361de7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3239cb6bf151b4e591c6a08881381a85ebef0cba..d85ffbd47f154329d49bc571c89972b80546ca97 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bdb8dc0672754ba98aa659719816085b8d7ab9e3..fcf56b12a43d117c4ec474af25d858ef991ac5e7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 998600ad7777efd2f7b4d50b7c59b1c86ffd92fc..1cd9a29f7212cb52ac0b863cc41eb1abc2878e4b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c7aeda65de570b84ecafb1f8efda9b7d7eaa077f..e37257395001dbabe48639e0d1d2a2d630465b6e 100644 (file)
@@ -1,6 +1,6 @@
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5daefae8bfa2a06ecd1047637695ef000e851bc0..2f74647c54ec884ad7cdfd56c2e3cdce04190793 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fd4b3b90da406d436e7e7c11b0b844c46e78552c..45d111f68de8ca55f16cd50ef204e83983b6d4fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3f62782e3172bda42fa1f3e67602709a117052ad..4afc8c91ad676f8f5ed14de3675535a4abc3a2f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 86ebc7dcbd5cdf5b81722cdc65f7ee242c313c79..01f726988c0dbbafdae4fa996ac56bacb561a907 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9ac8926712b9cad0acd077d6f7cba8f96df8dc1e..4e7dc6171e40fd872d5ab00dff5728fdc65a42e7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0c604b631970b29190d173be7e9a1111b4326f81..2de3b2bff76a485f8772055b6c3abd8c6c8ba4f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1af945a9d8f4f8d0a581cd7fe67b16c6d9a66403..0d462263129e3e206a33feeb4a9a475be1bd9b5b 100644 (file)
@@ -153,7 +153,8 @@ static void vUART5Task( void *pvParameters )
 \r
                Puts5( "\n\r1: To call vTaskList() and display current task status " );\r
 \r
-               Puts5( "\n\r2: To call vTaskStartTrace() and to display trace results once the trace ends" );\r
+               /* The legacy trace is no longer supported.  Use FreeRTOS+Trace instead.\r
+               Puts5( "\n\r2: To call vTaskStartTrace() and to display trace results once the trace ends" ); */\r
 \r
                /* Block on the semaphore.  The UART interrupt will use the semaphore to\r
                wake this task when required. */\r
@@ -171,6 +172,7 @@ static void vUART5Task( void *pvParameters )
                                Puts5( "\r----------------------------------------------" );\r
                                break;\r
 \r
+                       /* The legacy trace is no longer supported.  Use FreeRTOS+Trace instead.\r
                        case '2':\r
                                vTaskStartTrace( (signed char *) buff, sizeof( buff ) );\r
                                Puts5( "\n\rThe trace started!!" );\r
@@ -196,7 +198,7 @@ static void vUART5Task( void *pvParameters )
                                }\r
 \r
                                Puts5( "\r--------------------------------------------------------" );\r
-                               break;\r
+                               break;*/\r
 \r
                        default:\r
                                break;\r
index d0b253a5209286da4ed5c9e2b261ae8f14480a7c..d8744d8ee353571c94488aaac1f1e8e286d0d09b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3f62782e3172bda42fa1f3e67602709a117052ad..4afc8c91ad676f8f5ed14de3675535a4abc3a2f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6b112432e7e82a0804da10ee4cad2035908d13f7..682fca75dde4130ab7ea0f7dbc1467e5514b9cb4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4822abe34d550b0b03e57f9fcc33da0a3ea96bcb..2a919302521902a2c6f4b3822241893d4e949126 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 46d10a54f7e1cca67910d5cfb2e849310d2088a2..9da08dac8f194935be40b6152307cdd378878858 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index db6664ac50c928676a34e5ed794fdc8ad54b7f33..fe10964c9332df7bdf9c9b0cc305cfbc1d50d3d4 100644 (file)
@@ -161,7 +161,8 @@ static void vUART0Task( void *pvParameters )
 \r
                Puts0( "\n\r1: To call vTaskList() and display current task status " );\r
 \r
-               Puts0( "\n\r2: To call vTaskStartTrace() and to display trace results once the trace ends" );\r
+               /* The legacy trace is no longer supported.  Use FreeRTOS+Trace instead.\r
+               Puts0( "\n\r2: To call vTaskStartTrace() and to display trace results once the trace ends" ); */\r
 \r
                /* Block on the semaphore.  The UART interrupt will use the semaphore to\r
                wake this task when required. */\r
@@ -179,6 +180,7 @@ static void vUART0Task( void *pvParameters )
                                Puts0( "\r----------------------------------------------" );\r
                                break;\r
 \r
+                       /* The legacy trace is no longer supported.  Use FreeRTOS+Trace instead.\r
                        case '2':\r
                                vTaskStartTrace( (signed char *) buff, sizeof( buff ) );\r
                                Puts0( "\n\rThe trace started!!" );\r
@@ -207,7 +209,7 @@ static void vUART0Task( void *pvParameters )
                                }\r
 \r
                                Puts0( "\r--------------------------------------------------------" );\r
-                               break;\r
+                               break; */\r
 \r
                        default:\r
                                break;\r
index a07c5cbb7e75c31ef8c3f7272fa6487161fb8f20..f31eaf3994b5f9691dd5f7bf05eb65726e05147c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1cc3036131e61a34fa0780c3b91a93b57b73af34..3a9b81152ce9180c9f8ecb83958bd351cf360a89 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 56df9b48755ba7da9c6fa565f5caa9dd6a910772..a6bf1477b57b27c843d580713da8536714ad887e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4fd123e8e2ff819267fc6a6ce81d581a1b7e3923..90e8123f612aeb23f230678d966a193a0f216f7d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c644371cfd26fb8930b9defdc495ed817e391ed..b0731cd62b875a1ef8ad0b3cc7788c039c2c6b19 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 544e170393203ed0adcd4afe51b2b4d9cd6c9ac2..d8877492800495aa4927a1f88d24ee28514121c8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7c2a3c820b1c54f1982fa19c100ddedd212f1861..11f6da95d328687ba0989abf1e3582e34905b609 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 3f2ff497e2bebdb7b64d244d5ed4213cd876e8d1..1dd9c87eb4a475abed72f3e97c3f7e59105691fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9b2d0c992cf962666fea8ad11a54ac58d6ec6b24..389f29d68f3590e0d1e8cda39a4319be402735e7 100644 (file)
@@ -1,6 +1,6 @@
 ;\r
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 8ed7318452fdfd1d465cf1d71a675191d0714107..c641a029148a8754ca59bc68be329515db3d8a72 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 19c72ce9998cc05cc7b0a98638948b613deaacdf..12aa3b10bb016dd0111f8382b302f7ae98f22ddf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 20c9ea6ec98071a300d6680d4a03567cf6995658..ee2c840e336672186736b44b34a43ccf44e48873 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 58d9550ab606f69187845da4e7ada3cf649c8d17..966b2850a8339d3c9d7be42c6789ec750e07ca7f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 3f2ff497e2bebdb7b64d244d5ed4213cd876e8d1..1dd9c87eb4a475abed72f3e97c3f7e59105691fb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4187d9014c8b91ffc88bf0c1eb93dc8a0d31511a..a4b226f9591786d6da83ece319e9952b37d57501 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c63b447845f2beba2741aeb91b57c759c23e3eb6..8942fbc663a96b2916d9aed203bd292f4a10e6bc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index db130209829b3898570535799f89185424c37300..eb883deef7d18104c35074dfba7ef727a6a49660 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 11dce6b1bd6ba7e0c1c5376d50ab47a51e3b2d36..66500bb89e7e99d5fd0c73c676310127d6fb83d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a565416c51db9e7b212d9ad93ccca9eff11b8b28..867f8d2cc3c82933e1dc4d49da6a74df9fe4522a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fb8ce3357a3a68fd5ce80e403c41bc419d2da63d..7dc054d712e2b753430122e531f1518135e2d73b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f4201de5d6b2a8b6761897bf65c8e09101f459b3..313d35fe0788292c9728f1edd2dda6c67f04aa95 100644 (file)
@@ -1,7 +1,7 @@
 #error This project has been reworked for use with a later version of the Xilinx tools and IP.  Please find more up to date projects in other FreeRTOS/Demo/MicroBlaze_nnn directories.\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ac2be1841462b7361b9ac89ae8b3bbf5d248821b..01f6076896092470f8b53b48ee68800afae66a43 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 738418530cd79cea4aa3701e1d3f22c94d3f565a..543b9e22a245aa13179c0d99c1c5392f51ec3bb1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
        ***************************************************************************\r
        See http://www.FreeRTOS.org for full information on FreeRTOS, including\r
index 51ffd5a29169585718aa7998bf63a62de1a3a488..3ac1e2eaf199d5118e6bc811d94e55ffb3bacb12 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f021b6336b57fced3ad919cde6939172a6537c87..386efc621d2dba73a3a0090451542d468399c134 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 07505beb460b43eda9609486b56a6b07403c23fb..915b1d69c432fa39cba9a6bf4b70bb88290bfc18 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dfbfb9befa403f61c8821373ecaf9f74a84fdaf3..6bc9e7450f6ca073ba5f0eaea76f597ae28e3b05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 94589759b17bcac3539931686f3cd98f535b96e7..34606a526940ef0399c5bb2455091baa16391d87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index abd40f4a7c580181cb2ddc778a300465ff3b3b9b..a41824ea83de184b32f61ea049c0c0d9cfc1bc62 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2c4b5f39bcfb61b45d6dc36688391b9740252c2a..d3b3620344b278ca4c26603fa4bb9f586b6e33c5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 41a7a6fea08ba7594c6976a54a7c81a9228181be..09f1fba2aa74f61b7baf3869861893391fe52c7d 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index bff60eb6420ba4ed0cb701ee80c88547a157d0e5..aa37346f8da75b3de15964b81fbf06347eb14b8c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d0017bae495c78303eed89968966083c62629a7e..789902ea85d0b3424a749b4044319a76222a7328 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cfd66b67cea146b32899cad17779929c9e9a1437..b92b9444327e4562c8ce645220ccfb67fc087b61 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index a02ec6fa403c8c5aa4c8a4b007ace8ab8181d3a1..e4b1941a305206215773b47a1a0f2e13732b2c8f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f58ba165595b97da98ddf99182a4cdbbf8284781..a8ae7b7b461ab6db2bd7a2a0660e9262fd3e24ab 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c6ce60788d1769f237eb0f555e8ac20f5453757b..03a6eeb9554e68823f7ac412b8b206261b9abc02 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e8706855739ff4329cb551960a9a88851d6ad285..c0b77246e663d602986fe65686e9ddef4ef12224 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6a385dcf21235ae2fd8244f16ac86ca668ad510a..b01a7ec7d69fca7d019c8cfb5e3e287658dc8c88 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c04721ad57df17bcddfe43f9e9720dd6728a3574..803d88f324049c45cbd70e4ed691ca8b487a369a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 147d2962779e827a02a45e7ee81d165b89d52cdc..b6fb582856bd1057154e66236ad7ba3c789bc00f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 612c4d4ba63f0b5bef08557613b6137d4d02268f..9308fd5ebf8c5df26edbbad989161c1a88a05348 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 18aa2b61b98f4cefe5a4a0738b952b06527e5c92..87f9954e99d9d18567243225c6f64fa717fafb82 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 94d28afd4ea353b4a4c00897f1f22311fd4ca339..cd0d2b07f9b9feade481f07d32b46ebb63017211 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2d2568181f7951c741c4cb15209d193504f2e2a3..a1818f33df9123582fdd4a79708686e7d800e11e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index af6fe3d426f4fbe5c475f8649b59d45f55c199d8..7cf32701caf60083dc02d021414182036bbbe763 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5b1aad5cc63ba52eeea528a99c9add2acad7dbb4..bbdfe58a841f71d38298bc2c479531701dfd61c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index faf6a3e6b432538ef5985bcc08aa06eecad03bd1..e60165712ca4409292aaece851a66e39eb41c1a5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 860a59fc91686e4fb65f6584355a27ffa7b5c655..1f66efeb200f2e4ac50c9d5723679b07e372d5ad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 204edc2187219f9e3c5cc32c63941d75eacb336b..3e63485698ba2d8c60172563241d3b48dbaacbf5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ebead1d6e3c08301b925bfb9121124c5894c2872..6f5886e0fc406edc3dc6c9129ffb328a41a03f72 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f18cdd6ab808a9254f288852cfe61ca348c6a5fa..58605edbbc812588e0bf2103f0fa9f4334fa5209 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f4b354213f2ef0f9efa1e8648a5ce90b6923a1cc..1681db8184354855f170b8fbdee9e57c61db95f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
@@ -360,7 +360,8 @@ short sIn;
                        #if configUSE_TRACE_FACILITY == 1\r
                                case 't' :      vTaskList( pcWriteBuffer );\r
                                                        vWriteMessageToDisk( pcWriteBuffer );\r
-                                                       break;                  \r
+                                                       break;\r
+                               /* The legacy trace is no longer supported.  Use FreeRTOS+Trace instead\r
                                case 's' :      vTaskStartTrace( pcWriteBuffer, mainDEBUG_LOG_BUFFER_SIZE );\r
                                                        break;\r
 \r
@@ -370,6 +371,7 @@ short sIn;
                                                                vWriteBufferToDisk( pcWriteBuffer, ulBufferLength );\r
                                                        }\r
                                                        break;\r
+                               */\r
                        #endif\r
 \r
                        default  :      vTaskEndScheduler();\r
index 4f0151c95fb286a3d4bb12e80de57ec9d5268cfd..9cd92b2b70b91b7145cdc7bb09d7b2f7b05ea6f8 100644 (file)
@@ -6,7 +6,7 @@
 */\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6d326e792335add9579a9b08a6454db32ec764bf..a784d990b7ef101d24785fb064bc9dd200f62722 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 89bd140b9411aaee2c03084e9a44c8acf82c1d16..97ed293b902c615af0f9a58c591a678cc7cb6332 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 72c94a0c3bf93931d63cb926d4eaafe4e9dd5d59..703e51b7637816969f7d139a1edc4d661c0794cf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ba7f9c6458a94412c154b8fa594982e48124eb6d..8f4ed71b26f82f984321a0adced21e753be78d10 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 488238bdde2ed3b0a172545ee82c316392138a7d..3a056695f95b794ba9d479773d47a92909d3fe5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6689caadcda14a6c0ddb35ee2003d5087f40bed2..90b9997010d59e04651ae2e42a35e36d5b3cd900 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index df01cff7f62c8ec41a1ccdab5b74d2a3115ff95f..6359e090a895c209ac133ebdce52d429622bc29f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 03925b78dcf99742462b5e37ff5a680bde138495..8a58b3b25985b05322421804d6e7a9b3a9f4f2c9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b70bc526450893eea88486a825e065898fffc18f..48f99fd3c8e8fa7743ed542adfd989cc0b07330b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 712856a169b7345d346b76d8f9d591fcd97a82d1..62b6264a57baaf3d5d2cadb8203cc93c8004dc9a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index beac1196cbd140b9ea0e1c126d1c7a3d7e93ec12..d85ffc4fb79372dd5489ff06b9aeff864683afe0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6002ed010327ed2781b16f2611518024f50bb237..94368f0b2a2b9ea89f06d356bc631d4971fe54a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 569faebc0329a9f868e298b45cc7b3adbfd26001..9bcfe20e6d6b812c8ae592783e9107f95effbba8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 36efb5e9dd898521b6277241bbada715562b8232..2da3375c9dfc47702118ec232ef1aa87fb328a0b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c145ceb6898f116c55534043268000a289227d5a..45d6d343fe6798a2c088596df342640f5b4049d4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6002ed010327ed2781b16f2611518024f50bb237..94368f0b2a2b9ea89f06d356bc631d4971fe54a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 569faebc0329a9f868e298b45cc7b3adbfd26001..9bcfe20e6d6b812c8ae592783e9107f95effbba8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c93b2823cc1ae6c92b6e7ab8c3cd2da4bd2257c8..32f02db46b1a74014a6d47d731a94eeb64dc00df 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8d8cb4041d82f1cb671e40a2a13231f3dd3e3123..0353cf95ad7a5133b974a2a6e8d7e34baa65e89b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6002ed010327ed2781b16f2611518024f50bb237..94368f0b2a2b9ea89f06d356bc631d4971fe54a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 569faebc0329a9f868e298b45cc7b3adbfd26001..9bcfe20e6d6b812c8ae592783e9107f95effbba8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bc194d009a6f649111373d69a3922b93d66846f8..e17c5a3eedec5a4147d046dbb94a295f5a68fd5e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index abf92698f30a4799a56afa2b09d3e5ea0c4a564c..af741dc37f232956c5d72d3bc61f65484b152a0c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6002ed010327ed2781b16f2611518024f50bb237..94368f0b2a2b9ea89f06d356bc631d4971fe54a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 569faebc0329a9f868e298b45cc7b3adbfd26001..9bcfe20e6d6b812c8ae592783e9107f95effbba8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index deceb03b123258bb57b9e3a7e88bbaced96088d0..e93dc9dc66b7d62719de95d17c2cbf747dac7bd4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3be33d352c604028bab747fe6dedb49b50e527d8..eb062a12746b648a29aa1f66d5ddb8ba2f9d5515 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6002ed010327ed2781b16f2611518024f50bb237..94368f0b2a2b9ea89f06d356bc631d4971fe54a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 569faebc0329a9f868e298b45cc7b3adbfd26001..9bcfe20e6d6b812c8ae592783e9107f95effbba8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 37b3863519a8cc1ae3a68b2824f786016e8d94aa..6633788f6604be34579a4025a12469ceee491e4f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e9f0a319a687fc7b9f0282af08a756ee7585fbb..89413216dc2f139bc229c37ed4781a1ba74121a3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6002ed010327ed2781b16f2611518024f50bb237..94368f0b2a2b9ea89f06d356bc631d4971fe54a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 30ca9a78de7cdb9373be0965171e9a5ee14395a4..cf4bf20bb94488a0a59a406fe20d5a7acb83d082 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 569faebc0329a9f868e298b45cc7b3adbfd26001..9bcfe20e6d6b812c8ae592783e9107f95effbba8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 87ceeac1dd63b9d70bcd4cf3b9a45ba2a4de7971..6c04bdc999372249ec1407a87adfd1a9445bc9a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8200cc479e02801e47e5083f260e6848a8d0d11d..d626cddfb02404ac362fabafee4c00aca1949dac 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f87b37463c4c1b3b8f3c2c0ddb51169a09911081..6f133ef37699cd27a3e3d4cc8cc64c1470074978 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 64bd4e79f6af36e0521ab30cd8fade438e6fc241..a16fe390e79352ffc081c084a2e65b6e06dd1a1f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 062be77b3c52b86e3a10ab9bcd57b33089b76238..0d514b61320c65bb5226c5d9eb691233a110520f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c3b6a9a147876b6101b73eed4da0dfc67a5b782..e00e9a71931e5011c52286c14f136056172498c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0d9e5ab6d7f61d35e2780df6134ef887be52753a..abe9209d7e378a35c87bce5dd0924cc0f442a422 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9e4b21a1fb7bde708a05fb2753cf0ad9c1c4f74c..6145f0b14fadd981bf7a017fe7c88297a2c6857c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fdb7030d48461970faf62febe3adb889a237f1ca..a5ec3c85aa59d4dd2f6b05f06a09aa944e98952e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 792471e7bdf7b2934cbc8103d3d077de18d39994..6dbc8cb302fd34f874644c61906c4e681d65ec52 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9ce5bd9df372e3ac974c155762d876eabc006229..9d5ceacb2ff6b4d48471aab3968ed3272ee0c18b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 63c36de1e549fe40c88bf1f218a0928a2159a6fe..3a9f677abd0ce93db264025522b0ce513eadcc41 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 14801c0c834d64454c8752085cb21e586c86ce16..25c6ed466f63f2d39e56b59894f5034a9228ead4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 646a1785da716b4a624d67cdef4e07e6131abd18..569aa53151171285f7073b11f3f1fbc07bbdd98c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index edfaef2b51c5940d658d5177e638aa2755642802..28ee5ba1e26cfa6a105244ffd7090a043ce0a944 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0fde717f923bbc15f0aacc97c114d144dc60877d..b7fd4587485a705d3dd20e9f509ffabddd1f400d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6c2bb196e5f0248d31375502b1ee3174dba7282e..aa4e79e968dfb02ab9afe887b28d9562b48b258e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7e9e87c38722eab42b7db5995e6faf74c71ce31a..bd7e72eb5389eb7944fdf2c801c7c967b7271ed7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 263b191bd10de32a82fe729c9175304d2ebd7c08..60560cb6c437809205cd7c850994f494016be4cc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fdb7030d48461970faf62febe3adb889a237f1ca..a5ec3c85aa59d4dd2f6b05f06a09aa944e98952e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 20ea9ed34da210f32c51bb850b82e7dbae63ac53..712ba361d95d37efd078221ae417117e1509a83a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bb953b1d0a88e5f4d0a0c324657ae332a7921a58..9238059eeb23b65da9e3d5a957cc31d232bd2f33 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5fb701a518baefa441919ed33e5dccdd11e96aaf..1b87111b31fad8cde6fb334bce043ab971e539f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 458cc8054218a67747551a75a9af9471818db82a..3f272d979f0c6675c063baa83934587d76d9de7b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 44d51b1290a406290a3c11489bef65e832b11d26..1665510e85b8ef0a846bf9e07c067d8ca2da26a7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 14801c0c834d64454c8752085cb21e586c86ce16..25c6ed466f63f2d39e56b59894f5034a9228ead4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0f0d94b5789b3a9bbe1ae18adaad9e2c5f60c22e..067bb3b0b2b340b4e448237aac9a750c675a4474 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6797e45110cc16cc8af5dcdd393746714d1f7683..ca7bd75b3208d2deabaa66432d909e559216ffc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f8fe6b15cd06474a798ff1c0659b02de238cbd2b..122007c8c873b71b02f2fde1be5be2203d268ea8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 99b2d77cba1dcb1451cf36dbd1e6bf6e148394b4..11bb8c9e055c2c37fa1cc791ca935db2d291be87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c5397ac8dfe91cf7dc93323b2c9440b59df9dc23..d3dff826430637c50af89563fedea9790ec7615d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fedcb6196a71f524510e2ed24b7a60629eaa6f2d..8589e1201d06fe958964bf60a0ece1eecb9b266c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f66338a38efcdd8922ef39226379ddd8eadd5e9c..6db921a106e56d1b2dbd7355246330b1bd5aa8ab 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d2857ebe41f653deecd0a8f80ff9e9937639f346..265daa9be685b1271c0a457f249f06098d5f4a9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bf0c6a950dbee2e4f548b797792157dc94a86221..5c0676bc9b3a1892192e141580b4d8b01b53671a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f8fe6b15cd06474a798ff1c0659b02de238cbd2b..122007c8c873b71b02f2fde1be5be2203d268ea8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 99b2d77cba1dcb1451cf36dbd1e6bf6e148394b4..11bb8c9e055c2c37fa1cc791ca935db2d291be87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c5397ac8dfe91cf7dc93323b2c9440b59df9dc23..d3dff826430637c50af89563fedea9790ec7615d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 591e6dacfa4d264ef8c73e22971f457462a15fea..5ea6e2391ec8b2e3271eae344898b22dcc331790 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f66338a38efcdd8922ef39226379ddd8eadd5e9c..6db921a106e56d1b2dbd7355246330b1bd5aa8ab 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d2857ebe41f653deecd0a8f80ff9e9937639f346..265daa9be685b1271c0a457f249f06098d5f4a9b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 25fdd02f7d2698266bf8fc958adc4a6181a3a83e..dbd468905a2a4b0c2f4584904917d8f4d6758fb4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6bc38df0a4655e96d0485e5030667fe1c5d10b9b..58e93ff99b560302222c4d8b9b36afecb4f32f6a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 99b2d77cba1dcb1451cf36dbd1e6bf6e148394b4..11bb8c9e055c2c37fa1cc791ca935db2d291be87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 62f20d2fe5cc317fd60fb5d8ee2767e68f56b9d8..20a516715d64449bde8d88a136f09d06e998741c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fc7699dc6e42a42ee6623dd2befa116d3b3fe407..cf472211e44bcd021cf1577cefe13a5c3a7b58b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 45924470aaf62fa9172cb2d5cb295284ba088bee..dc432900e154fe2046c56d2e0e351cf3fd5a7631 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index de24f713c015c72c564cee2350c5c9e378cabca2..0d7be81ab8938f7f1c4aba7d2915803668cfb032 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 25fdd02f7d2698266bf8fc958adc4a6181a3a83e..dbd468905a2a4b0c2f4584904917d8f4d6758fb4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f308e90f23bbb221940ad157aca7a6be67faba6f..a9d0778df058a60586fbe8c1d9fbf0dcf7d9dc82 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 99b2d77cba1dcb1451cf36dbd1e6bf6e148394b4..11bb8c9e055c2c37fa1cc791ca935db2d291be87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 44eb0becceeed5c28cde239156f86c53353eea4d..2305054dc19a1f688ee833ee8ce701fadd994902 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 84fff32cee5a47e4772676c1411a4bf7ef3c64f0..b04735475fd1ab55cdd31e4cab62083662143df7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 45924470aaf62fa9172cb2d5cb295284ba088bee..dc432900e154fe2046c56d2e0e351cf3fd5a7631 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index de24f713c015c72c564cee2350c5c9e378cabca2..0d7be81ab8938f7f1c4aba7d2915803668cfb032 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b4f4030870bf118e83e22d0ae6ac1ff70400e22e..f95f1e57b9957e611f8a0586cff2f12e827bab5e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f308e90f23bbb221940ad157aca7a6be67faba6f..a9d0778df058a60586fbe8c1d9fbf0dcf7d9dc82 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 99b2d77cba1dcb1451cf36dbd1e6bf6e148394b4..11bb8c9e055c2c37fa1cc791ca935db2d291be87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 44eb0becceeed5c28cde239156f86c53353eea4d..2305054dc19a1f688ee833ee8ce701fadd994902 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6061eff1c7f9ca740b4c43aa8465dc33493208bb..4ef57ddace560116fdf4f04dd1f00c455c117069 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9ea0119cb14a2f26434476139fd5125b259b480b..7d726128a97fe6415bbff7c99433abd9a670383c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index de24f713c015c72c564cee2350c5c9e378cabca2..0d7be81ab8938f7f1c4aba7d2915803668cfb032 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7ebadfe425a7f0c10712027595f879211fc17b14..994c3743b9aeac75535cdb3bc5926015512c758b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7b1ec19a6bcdcf52cfaf28bfc58bef5a8fb5dd7e..b96a185718655a77277c056b3125bcc87530e77f 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index e3140198a8b38752dcc0e3b03caa5c6c4028cb6b..17a9f089cfc43986dd0cb95d1d0a8ec407bd3079 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 15bb3bdd2dc04fb28b9ff58bae3dda0eaceb8f30..ccad3f2f3013b4f8e0d633c28e387f62735afc90 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2ac4becf72918d8919412b209a64e90af24f6b05..93dbe208814b4df83fd49756fcc50fd51adc296b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6ac974502f9026f8739d5885d48522a1f0f1cd8b..f7c1f28f7c57e6768e22057fda7ce27518c00be6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 35f68aa9aee62cfe64abf3c56385e01d7ea7e745..9c0d1bb6ae33f2541973b62e987645d8520bb99e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e24e357aa8ab733c1d1993800e8c03a62ce490fb..d16a092eb60e591dc59024a52fdbb196cdc952e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e292b110016f962dca9bd3b4604bbc365454987..f782ca02eac1612f32bda2303a416205b5985a6d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 372f1c01f75ac1f4e88cc64c15181e5ffe80a843..4aad7b1d2c96a4634b524a6130d1403a89fe5f64 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fdf61806ff0b9c76cbb7463314e1745780b65fad..5224ea9df06d79d43ab137d295f6f153f94696b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3bb1cbf705e6a3b8cd9796b5dd6b080177577210..b2197bb48969edb288595da0e9eb414a4ce41340 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1584f098133dcbd350207850fefeba0806a04a92..4279f838800fb1aca7670d93db75e707192ab0f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6c501f5ec2f6fbd3658db524ab42fc0f5645bcfd..fc3c39019369b4c94db56fc0372acc500927e2e9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c3a04fe7623c2a7883653417395cd81820db67ec..e98e823de061ed53cc7fc8da3dfa7c7e7fd11d87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f488a63b7fb9f5fd00ecd297c18f166870f1a652..d86f008c23120d183432d850e1c0c941f67a5bf6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4e6d125b48fc506ffae106bc5487401ccd6b7437..ff72535f5237fd8c27292cf82df80e35b096f4c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 08366f146265f4bfb8e914a521382cc0f198df38..99506b199c83f29be07af172fc25a398897a150f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6acfe2ebf4a85860f2f4ee29d6221b6a9e2fb537..066b754f45cb451528777967953732ec940baa31 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe8c140d89f90cef26cdf1cbb59a94ef1069c8bb..5c4c7563a0a2a12adb0d7e3a86090e05e8afc633 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 401c2a83a8389f8afdf1ca39b1b8b3675797a8d3..cbcb5e46e413dec9dcb61c38d3661964aa30837a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 994025cd8c72df8dab62868c003f533238514221..58163c67ad548fa2761cc73fb8442f12ec80adf0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d9ac2ff17cbf6fe0a22ce3e4793d7a1e2ef2472b..f2c38241769d6b20ae8eb68125b5efa8a05d16bf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 161624437e6637944730f0c2b11c5bdfca963e72..ee0b32d7e15eb003352e8277da4002477befc458 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b7d978e7823db263eae700352604ef7db0a3ee0d..081ff5722e5580f490801d6fb6965d70b4a62c60 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a9eb4918d4219ae0a652968ff974ac25d2683fa7..d68923bad9f788bbda78eba2904a4b6f59af4516 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c141ff9e6f35162de8628424e49866b8280bf612..38d7301914081905134bed1892ee3a203754f929 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4bfc532dcb03c180f15922166ccb5cca44a668b6..7aa34b587669520a0ac88e59e3aa16b27b78b600 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 84be411f674740005978f0c504648b11eae9972d..d6a8cdf646a0c576ca49404720ea907d7088fd64 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 379aaddf218ae65c57f97f5bef2f1b1ad03af7c6..f75c48d77e3b3659c35e996ca5cf0666815d6769 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6ac974502f9026f8739d5885d48522a1f0f1cd8b..f7c1f28f7c57e6768e22057fda7ce27518c00be6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 35f68aa9aee62cfe64abf3c56385e01d7ea7e745..9c0d1bb6ae33f2541973b62e987645d8520bb99e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a05976feea5de87fddd8b942390c5888d038fd54..68822de1bd5b70a2060ea619966b4a002810d3be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cc0746c3a244dd6892212237e3df39ba827f5fe1..736d3afa75975e3fef1d9cf04bd168933e745dee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fd6cfcdf972f3de3e31e8dd5baaf59ebbe8a8bb9..f018fe70fb77a1f420f1a2ef6541b54bcfc80150 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 08366f146265f4bfb8e914a521382cc0f198df38..99506b199c83f29be07af172fc25a398897a150f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6040d4f3ee903cbff438576ad6a8322b0249eef6..66035ab4501fb61ce8518b7dcddbef6bd5cde3d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 17251ddc1fec8ed18e5a250d7691cd009168f0aa..65c7a9e4592d09f7b1cfe70263c2b36dd6843280 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1584f098133dcbd350207850fefeba0806a04a92..4279f838800fb1aca7670d93db75e707192ab0f5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6c501f5ec2f6fbd3658db524ab42fc0f5645bcfd..fc3c39019369b4c94db56fc0372acc500927e2e9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ca32ea6a565f1a50e6ac7b73c3836d11edca7911..e14dadc6338924f18a9747f4726f9b0e3e855d11 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f488a63b7fb9f5fd00ecd297c18f166870f1a652..d86f008c23120d183432d850e1c0c941f67a5bf6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4e6d125b48fc506ffae106bc5487401ccd6b7437..ff72535f5237fd8c27292cf82df80e35b096f4c6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 08366f146265f4bfb8e914a521382cc0f198df38..99506b199c83f29be07af172fc25a398897a150f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6acfe2ebf4a85860f2f4ee29d6221b6a9e2fb537..066b754f45cb451528777967953732ec940baa31 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index faa9ce067f535988ad414aff3b6e85ecfc97a2f1..4eb6740d092b80602ee15f5fbd8464c618852260 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 401c2a83a8389f8afdf1ca39b1b8b3675797a8d3..cbcb5e46e413dec9dcb61c38d3661964aa30837a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 994025cd8c72df8dab62868c003f533238514221..58163c67ad548fa2761cc73fb8442f12ec80adf0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8bafab2e130e009fce3e12965e70232e838ce7f0..25ad61548a3e10753e059c47e1db9938ed5116c8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 161624437e6637944730f0c2b11c5bdfca963e72..ee0b32d7e15eb003352e8277da4002477befc458 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b7d978e7823db263eae700352604ef7db0a3ee0d..081ff5722e5580f490801d6fb6965d70b4a62c60 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8466ea50b3ed291edd268d1b05ca33e87ec59319..29ae8434cf309af8d690fa4f5ef020f4dd21e83d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 86bbeb5fa54f5a32eed33531ac8df85a7c3e48a6..d4f1427e01e59d93abdbf8dff4739114b5190d87 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4bfc532dcb03c180f15922166ccb5cca44a668b6..7aa34b587669520a0ac88e59e3aa16b27b78b600 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 84be411f674740005978f0c504648b11eae9972d..d6a8cdf646a0c576ca49404720ea907d7088fd64 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index acc9a15f2a70226d73f18858ea29750a373b86b0..a33f60411ccfebe9c1a166cf20d13af7a003fe3c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6ac974502f9026f8739d5885d48522a1f0f1cd8b..f7c1f28f7c57e6768e22057fda7ce27518c00be6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 35f68aa9aee62cfe64abf3c56385e01d7ea7e745..9c0d1bb6ae33f2541973b62e987645d8520bb99e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ca32ea6a565f1a50e6ac7b73c3836d11edca7911..e14dadc6338924f18a9747f4726f9b0e3e855d11 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cc0746c3a244dd6892212237e3df39ba827f5fe1..736d3afa75975e3fef1d9cf04bd168933e745dee 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e2ebd0810b28c777fda1ca0aa9db98526d557461..cfec8e820cdfad383bbcc1f6bcad8b5ef427ca05 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 08366f146265f4bfb8e914a521382cc0f198df38..99506b199c83f29be07af172fc25a398897a150f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7898d1006c6a2d1bb773d1dc87ef16bcf44a13eb..40b82a6d11a4053a4e90f7ab21f6654cbd79a37c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 23c057c9bfc9e36b85ea1b32375a1cff97ef2f52..3689496d249d24d6f2045217f765da605c02fa2e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6ac974502f9026f8739d5885d48522a1f0f1cd8b..f7c1f28f7c57e6768e22057fda7ce27518c00be6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 35f68aa9aee62cfe64abf3c56385e01d7ea7e745..9c0d1bb6ae33f2541973b62e987645d8520bb99e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e24e357aa8ab733c1d1993800e8c03a62ce490fb..d16a092eb60e591dc59024a52fdbb196cdc952e6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b03fd009d7e9ca40cee84d199435d6fe5ca3fa88..c627f26f7b1adccf2089d5de45b155f7acc1268f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2067808b97a507063bd2eeb19044fec1a322da7e..89425bbe25e9fe65dfc8212be6c557f4f194716c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2a9387ad107110b1f60764761a74617597e78eb1..443f97e38d8d6f8e95515064ccb0e609ebc7074a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7b5b2427508376a925aff627dddc8cec2bd32bfb..5fcdc14ca447788bdac13c7b0025c9d1142c0627 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index edf8d725867f486fa4f08067faf1c9aa700f0a2f..135b65dccedccc5af96e29a433f69edd29a520ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93289e667eab2e94426a8c0d77b9fe0602b39827..87ba145ca6b0eaa55a2d9337d4156ff235b500f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9608dcd812855a50f92d6bcf643677b98c71578f..02f7d011faa274b4653afadc06b0b8b4a5c79720 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cc7fa7ab26553939384222a2748c41770c907dcf..35d1672fcdd991beb21781f2249f541256008c91 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b3a32519c1fe0a19cd3421cd002d0fd19fa555c4..64e434e1b46d646d39faba35bcce9d7dd5dd8198 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 08366f146265f4bfb8e914a521382cc0f198df38..99506b199c83f29be07af172fc25a398897a150f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c221cced04e1a916a6147bf9e9463f0f40774d0e..c21eed3c90e12fc2019d2b17bd6aeb24d876a12c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c217e6f4bfc1119d540e91107514a8514fd06f22..3e12a180665a48a8fa464a96a8db05291a0bb8a8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c8ef982617e1cb1db0f2a1bbeeaeeda06e28f7b6..3e73b980aaf836c6cfa56c747b90f486274a8b3c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8d8d03a46e48577a467282337081d24585de5f2c..03e9473c2d3674b0a609f1e0db685a49c72ca839 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8d17c22d5d89b2e1180d6961cf5bb7b61caa3751..7f60bfb061b6acae217839331c0382c21ac2701b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 29a72f97d9b8741885078d236dfb5612936b6aea..9bba9a02c7b3b7c09379cfd86ff147d1c2838ad5 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index caab30086ff05ab6afb2e75a90fc909f3a2ca0bf..8df4853b5f29a1276de1249b9712789ef5eac0a4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 36d1944591092482652c5a63f25540ca3b34ac2c..43bf27358f9dcc9c5fc3c94d658a0198e4b67387 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 54b22df5981fab6860a8724f6b3cb786a28ac3f6..5625ec47244bf5584c01567e190b1c8f28948ee0 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 2bd3a70e7cc981eac064b4c24e0b1e42aaa1a10d..0c1a2ae7e5152b96f2131a472da6ec0fff36efe8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index fbd3ed6bc038dc649a0915d5ab6ca889f8574413..f4b69068c3dcc7ed9fc9c2a23cb0fff4b311220a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 5821d644b64a0bc03577265e2cc43c60461a4ec7..c2bbdd45c0e8e4104d2dcc6e632488175f86f144 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 2418236e1cfaa91ed6be6adf0dd34767794dd522..6c95640f71bc27aeeaab926d375634c030e06c9c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index cc8f9aaf2a7e4c9c8ba9ce628e0528cfffb4f8a2..ed8939823926b41b165ce6399ce499f55afd72be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c42d2145ba7cb37d18ac408a9b23fc80e82aa181..fc2e4cf10df65c7524f6661aaf2f95e848e0db63 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ffbb547bf8e30ddb7d127e5f634bf95a7c7416ea..cf82b4037c0f86336de331b872b99f168173c429 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 54a2fcb66a5337f9f0c8bdaf15cca2946bd6295d..28afa9a253b5eaae0782088ab321de7e325d0473 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 73222836eb84f4657dce8c443ffcbc923d3e3301..87332631869caa1765655d504c64389848818ab4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ffbb547bf8e30ddb7d127e5f634bf95a7c7416ea..cf82b4037c0f86336de331b872b99f168173c429 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 51fc5edd4dc04715c010fde1ee282ab46aa86537..d24a09aa4ed52e53d9a6fefb928984ad17c75215 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ff9314952ec0f762515f71f76316315860329697..a975cd9734906626874bca1335fd160c513099c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f77bd7f89b031c41cad7453a4cfa7534b7657ebc..24e0af17ee30f835e47a63e818e1bfb12b2bb2d9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e0805500619c54bfb50b4bb04f30b0ff81fa7383..98adebf4b2efaf559f255b563ded5236178b593e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a66f27cbfa74d481f4dcb4382d9e113eeeb44a53..f8b37ca11c167790314f1d5d4eee4891c8e101ba 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b5a5f1c26c38e2292ac2e03a546ade8a24285a43..2217c68fffacf75485107ee7262405a3d8ed5c50 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index cac4d282fb9f2519b35c722254987332077197f1..025bad113a19bf82f5bbfee3c85e774b3ff54429 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7b6dc80e34b5020408a28426ed147db90f409b4e..00904bcd5ec68cfecb32d4048cc845ce8db83a32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6cc71a21025556856b72b7662457a44e24e3113e..e34034d3aa4ecdac7040d8664505330e6b47e5d0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ccb0dff09458a663928eae850d62933647dd2182..7808dab2254638323ddb063509a6c2bcbfe759ef 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 28d5286b855363f122a476945d05223936df963b..c343bb763c859ee387c8ca32f311b96dd4fd6c70 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6e930f973158017a1f8438acf46650aa40c5b03a..da8b93bea5ab93b030839d9a59b07a025b33dfa5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dd938dea58ee8ee8e3e1cd30646bc93a46321fa8..14bcb4c1bac35c6fdd9227712929c1bc65226d8f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index af6da486ead7c6522db912cc65e541aaf5a879a9..94eb1ec6341fed2c1eb0adef3b498f36d10f6bc9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3b9b33073976732ec908d807104ff240281d7fa7..ba6043ef1155477be9fbf1b364492337a0a7c57d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 806a16060ac55a032a341c6540390089567c0c7f..00dce55a9233e43ebee7123d3c14f4fa6e00a4ac 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f9c511c5c8051a75311b51fe9f38807dac1c046..8b474230d2da2acfe9741c1b92a36cffb1fc1a5f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f774403e6470a572f6cab8811d806a5c73ce4f9e..f0dd9d5cc1f56ed5afccfee17fcb41d8386cfcfe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 899fc13c617d35d8eb094dc1bb59ef19d44f396a..433a3df1faf5a226ffbb84479c9e26988473d61c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7d86eae0ebe34d1faba527c2a20aa1afb8887eb8..5ea27a7e4f9db1a7e664e8ae8bf52d7b7f1f8011 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f8c01849c885df53618a7973430b8bd9e64bd079..1ae9a38a803328855d75a57821afdd34758bfec8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2327fc82ec3f567340ef7637dbca39b2cea9e83e..3a4c48009e42a2fe0813bd104303ca6b162495e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fdb7030d48461970faf62febe3adb889a237f1ca..a5ec3c85aa59d4dd2f6b05f06a09aa944e98952e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 792471e7bdf7b2934cbc8103d3d077de18d39994..6dbc8cb302fd34f874644c61906c4e681d65ec52 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 05d2dbdcf4f2e0a5435a2b09fb33093c59a77073..cecf725eeca6c023eac19f8f90f5276d12c42945 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 63c36de1e549fe40c88bf1f218a0928a2159a6fe..3a9f677abd0ce93db264025522b0ce513eadcc41 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 14801c0c834d64454c8752085cb21e586c86ce16..25c6ed466f63f2d39e56b59894f5034a9228ead4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index eeff30f84fbd32bec7ea958cdc0f6014f52e57a6..c37cd3ed0c6929507903d83a61973402d7c0a41c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3fbb2af80f386be870bf9b4408b86dad24499808..cda8467b6bd30cb4376b546aa6d5777b80768ac1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 574cb364914ad588b1c5ee5cc4f5b2273dfe5368..9ede7478873c65c9e1a6079de8df040f158732dc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a77a271967472d789183deefe26db8f2b8381ab3..c6a5c322aa82dddd4491151fe73d05e746d70861 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7cc93bb3995ebdc6195f3217b22d9b21402ae1c8..70777deff88c86d02e2298fff2eeb358ceb6b86b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 14dbb2f8e6c41307dde3f58bc986981a76edc053..ff946a06c8530d4ac8e7950fd1bc4458b411a23f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 60de46746d89b9b36b41ae29c9932effb0d12c9d..aca4a41b911a599fa141e3e273856ce5bc25f5c2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index df3b2cf67e92bbd2dcfc31b5d7cad624b9a8a32a..c019a8cec5bfaf1a37b9f57063dad4e72d9ce399 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8abd56d79676cdad1c99dded025a11b968ca2c18..d5bcccf4d677ff0fcf2b9b7aa490e4a6701ce8f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bd4901b7bad703b8cfd4bb0987cc4bc55f3f3124..49cb55415d4e7d71c5aa7e05e43e8d0f823bad07 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9fab1ce7528d184a0d4caec1a0bb783213853a82..771f8f4b219ef2ab7b891f035ccc943a1429e2c2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f54d9ac08c096fb2935d6f69a0852cc935a74d59..f1e4f6af221dacb571aa387d9dd7007440901e47 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 62772131871875a9680935a77a1988b321cbbe2e..64f32cc06b06d5eb47157daf9184cbca96a4c87d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c73285905ad339efa1a95c3d0b6c77c12f7a641..a481abc23b5ebb67ba5d71ade59840419559d085 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index 6fac8c839cd60a7dc045893ec3cc663c79d6417a..af50dd4d0cb57c8398628f3bedd4325155b02674 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1d80ff8233a9cb82e3282023e3c74171d0badffa..a99cd9b47d9b1dacc882f8a41e86055845c3c07f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9a62d980e2db36bebdcbaba05d33545585e98d07..b428eaa335117b78a276fa9259d6265c8a586880 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 094a2a0ac6fbbbb2ed1d457a04c2f4b3fa65706c..51f935df577f29692a5b1a9b38d01df85889e63a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 75b1cf751ef3100e5cae874cbf095120f3f65067..48318cc733c84c957e227e8e328dde18573f307f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4b00cac124e67a4c586bb0354641b30e2b6ff30a..1c9c53b3a8e9b904e89e281083fb36c491fa2475 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe348855b88964e19535ef473eec80a0ba7b3a5e..20bdc1c8266a12e7a000cb57028c92f6642338ec 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 85bc68c53d448d8346356fa0125b651e9f5f1957..7fc214976454b63603593fe4ee3665dfce61943b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f5caf5f0651ca9d406b0a29038a70ac2667c5d94..7afc66dfb285bb2aa5dcf06852c5783fbb95033c 100644 (file)
@@ -1,5 +1,5 @@
 #/*\r
-#    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+#    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 #      \r
 #\r
 #    ***************************************************************************\r
index b42ebacbd28963107cbcfc969b4c225ed00f4402..fd8d0a25c15ab5b99559332b8cc0ba2ffb48e9ca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e23136f2758dc7b635f8dba907fbe0b344c435ce..6a716f5ea9039c4bfe9c6cefa128039f2515fd7d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e460a081eb1bb38dbbed9ab6a86a5c6d1c53938d..80e5e332e85e85d68204482525b8ff0936415e44 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 690de31976b26baef9e5b92aae883f6ffb80cb32..fc685c933166a29668b6ec8264d047193317b023 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e52760da0296cf55a136a5bce866e88754b11f4..537dd8470bafe8cef8e2ffe9d9ce33d4e05ddc88 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 827641a11ef6061674ebdfa8582f7ba4d7f3624b..47f0507c0298e871163e8e598d78e1535e32d401 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d1a6cf41823c43a95a184d2318caae02f0ded34b..c66c860e5f49336fbd1cf74117ebd36ba159c335 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8de43f120fac0081eefc80b2ad1a570796934d19..5f38640501078e3dd5e6acbf5706be0badc5169a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f36a6987cd77524e5918791ec6fabfbebe8639ff..c547be114f59257248bf12ca9d574bb1e71cfdb8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 798976faa8c31151fcfd5bc8d7a2a43caeced829..1d417f3606c2b80aa98c399b4d47a0bb19636b4a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3dbcec202dcbaea063d08ad2f7a53b16fce1e092..d0eb08b07abe9cc0de8a7e739e14078d46885bbc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fc57f0ade0e728048b2ac84fdf60a05539c24ffe..893323bc620fbe3493a935a0e1793d3e827e06b8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a5940d6d2970b97d5976771c466375efabcecd4b..95b3b7aaa9ad80b8390ade4128439eab980ba3e8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4903540f4b1661efab17b403fa2e18e365b1747d..0d62ca08334ac35f0300d87098434c37c106c311 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index fb31e736cab37be2e15a24159c6dd5d3b9218c6a..c12f5d76fe7b8e86a2c15516ab8964fe79d7bf00 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b7a98efa3cad510ea1a1258e8486d5dc51dea552..daf3ce408b8ec68a81bc35971453ab8fae7bf0b5 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 725c5db61380550110da7f085f34359b9d9c83b7..f2843cde2789fd9ce7ba32b08d8b3434768bde6d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c36de573735cb3a923c6c2ff4ebd1d699121c4d4..28d4f248eff22577908d3adcd0559e996863e987 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 6538c91a5a1afd7f95c4ea0a8f83d436b9f79220..be49c3d88bd9a8bec223a50e68eccab9e11a33bf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 38882d3998706913b616ada7f71b238382aa84f6..88cfbb2b75159c34a68d8970c110a853f4ece2f4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index c6b04db9b4a39efe8274625f5d3c2594a40375ad..c69db9237f26421e2d317773adb892977940c982 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 4574895f3e4a70cae6b11125ace6e8b6c1d1ac9a..e48cf07a6d8083f040714b7cff7f15e59ee43262 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index b523c723e1a2bb16caed1cb70c2a52480723156c..65c77c7c968a19f25b34a675fc623a8d76b22188 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 9f27bd13f73e8aa2a230e601a40904a0f6004758..e7a989d405e6c01b5a728870d04d63c6bb43842c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
@@ -84,7 +84,7 @@ extern "C" {
  * MACROS AND DEFINITIONS\r
  *----------------------------------------------------------*/\r
 \r
-#define tskKERNEL_VERSION_NUMBER "V7.1.1"\r
+#define tskKERNEL_VERSION_NUMBER "V7.2.0"\r
 \r
 /**\r
  * task. h\r
index fd0a3e81202a263dfaa905c630ed03274bfff09c..5f62368f5e6cac8fbe84a6bf3642b4c434a7060e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index f4a4a0da9c8ef39ae89ec190b7335eca1c363d24..9ae5d86e49c433e0825c0fcfa18b819b674dd710 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 6df6082f934c03e30b0bc681cbd390a2085ac01d..9f1e4a0e0f13548928ce94c408ca9c834aa92006 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a8ccfd707540bc5e41d5de36ccaca413036dab62..5e4990b5f69e30f6462c7f2043c9805b8ab37ab1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index beef3c320fd529722115edda3f151da3162328df..912708ad06c41cac6f6db4816cec653d96b70b7d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9b6f1b94a5e7b58328d539b4f5f6467b5d9984fb..5c980d3f8673566eb79a17feb69f7cbc9f6b4fbf 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c5b64bf9d15c547384b8836b072ccf4a886eeb4d..1142ea486840c820a4a395a8117995d86fbff86a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fea0d91898ae9d05233092f3dd61e0a1732adf31..fc41a7763dd1c0481450be80cd84ba1243ce4007 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1a1915c44cb101ccd2923917f714d7de3efbac28..263a4787fa357842194dbd0769dfd19902cf221b 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index e61eda440cd857f60eca74018234c5002cc22700..575318590f96e32fdf0c0c1eda8b0f1df2c16b38 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a546876ee836edf0214e6557a7859fb5f7b00865..092b5250ad78e50fea0922926f2417ff301629ac 100644 (file)
@@ -1,6 +1,6 @@
 ;\r
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 276c3e26bbdda94927617dd717e5209695ec23bc..f0e1b98013b80ea9114e41feb6137a73e2106b25 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 40d5172648f04dbf9513b170b6aac1b520fd9cee..354746c6f4db28abce8a64af77fa19428193e5ea 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ee6214c32093c9b949b27e7abec51b3b80bb8c8c..04b4173e7cc207b6076a0f3104e6c1f88dd5308f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1f592bc07af264b2c8ddb379e662acd557660c10..11227d1b87ab79af4c3b0765fa9c4a22adcaaa1d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8b146cb328ef2468f0221d2e9be3e21016d6e4b2..f8d149eab5f99e0fb46abd99c3b9b2ec84e443d8 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 92ff9041a258667454b1fa618c096b588b86d1ff..eeada6c15e389416b189ecf45e70a165171fac00 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b1baa604654dc04c4dbb84c29dd68947a851421b..215b62dae44663dfaf4b6320d3069dd205930cd1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e74fdee8496701fd68e6c16fcee370f3b10ad149..212ec5db904ce8e36e287888752949707e08a4fe 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e88f4ddc078e6189219d326d327280cfe8f2cdd6..96035f16e8df256f18cbdb37821aab8f05d9c8a6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0ef5311cfeda5269f6a5539f2fdb26d123359ab6..5948ac3a568884fd94a9eef32454ec126bd5c01d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8a6061a3f590dc0c16cbefb9aa186ca3927ccff1..8699ce4264dbd5b2cfadf45a25f34c97ee050766 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b25df6f6fadec4f43d7e324ea2defeea2ef4a0ca..c31aae2aac78dd5e90ba37b9f410cc78b5bbd34f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2d6e73f50ac95f6eb079facc6ed6a3a2a0ef064c..01531a2d978e6139b47426ffdb64dccdd2c40d49 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0d91ffab20a44bb60adf83d84e33c297be6484d1..744a58e99ab7c2bb44ae2925715b2c11b7fdb8e1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 03af60acde9888d8e044909cf866f9ea172ff543..a9b466e700716659b5c7e6906aea77b2cc489588 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d072f9d2be57d46214824536ad389dbadc659730..011a7260a712913d445954174ddb64f68d169ffa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ab9646aeccb6d1022f43ffe9208ba8583504cf0c..7bd25f02c4dd1a7627070e6bb58a0a3704f6f06e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 130b73e9b07b889629d66d424f0db45d9e2bfd7a..ee6b6cc2a47971aa5b3c179e1afc26ca4de79a9d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 513c6451ea5d7e7f126f247376db805c649885ba..f7a031fc2f2bf11d6c1cb1d0a54cc17a15c976dc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 90d4aab781461c9b336e1af754056234173b5284..39cc742a46168146a52a8715d970570de7a2e805 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d68c25960f05468374858cb7c6bff6cd93c16e41..a607d21f3a5e6cb12001454bbd1750241241fb5f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a4e189ab4bcd5972b056dc3d4bfab27c660b93aa..2f38ed170ebd3d7c881df35b330fb8982b7c008c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 9e4bd5391969c18983af2ea5fc8a79e68ace0a36..e10b87187a761d7b9480674569ab4ec2159e4f4c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 0b0fc86daefdf5865bb32a7deb0eb82c56de27d6..a02804adeefeb9af2046be4fbec410392d4d99c3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 6220a2ed859a8cb76f4891f460e018f2706b265e..a0c3e94c00e60cca0696770a470ee5d0c3435f86 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f1cd17caf176be1d502edcb78d7f2f06ac03eea9..6bd0159859eb5d7aa491b3df9be58aacd820a2f1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 856847b70420921689be33f14b7fb1da51276e39..164619574ef43843322e56977c1ade04085d64bc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2b44ce01233057ff07d7f1e92b91bfd476d7df6e..c2c143fe2c24ea99f547d2220c7da7a581df411e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 0a24563dc034e0cf014b167bf1c5cdf8205d13a7..ddb14071ea96ee7631fb5b31a5b5dad544df2c82 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c182a9f99b05d96a6dcabebbfdcdd25f4285e6e2..6846eb5f63ed3c8473480716ed49227c09466dbc 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dc8f2c21f46de83d594704aa8b663e281837a5ea..75b17f5fd8d1d36358a31b60d041d053efa5774e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 879d051790172c7b05ac3160516eee3f80362a07..2e9baa399dabb84f919da56b24c95ec2d5a5c86a 100644 (file)
@@ -13,7 +13,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ee62d90a473b64b87790a2983b1e59b9dd34b083..6aceb4d9655069218a1d91b3937b27b7a14f7471 100644 (file)
@@ -13,7 +13,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ac8e2be18aab13135e331b7aa00a05a1cd80d7bd..e58cfdf10d5e4a9ab561fb8fde365ca2c34dfa6e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4dc57007e7ff869838700aecdcc66709bccadb76..870073d784b389b80fca9ee763c5b83e5f2c59d1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c9cf0bd91d3f39158ca8406cea779c26aea775de..6a38720f6952183ef2ca675f45bf6f164b0895b7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8f4474a0edef077dcc3659be5602017246326c00..72d6a7cc8a0e1011367d003fe19025bdd07d088c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6d97590553e71555e9c30c549e55d16be16ef7d6..4638d3a2c8337700fd1ded59a67ac82db56a91f3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 460900ba01de8dc7228563a2c6a7a7f98cc663d1..d5c69dbedf70343bca39fc06f79fbbcba703c691 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9f9613ec9275b41e3878f72903fc0bc5c362ebb8..225f34570b5113c0b518427c64f3b2050995b072 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ed7ad9dd59fdb70abd59fcb57300c55d72271ba5..3aa8b9f5cfcc3eb91a0ef75ad29e0aea0bf03258 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 06670804cfefe4630e45293b8ff54794eb61cfc0..f182556152a8a2ab109ac72860d1c179b8d027d6 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8e7a4e82a3726283a8919cd4b97c81548c3bf1ef..123353106dfc1af4c53a42861a0720fbb2d0be16 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6c23f85ed9d905b6947cf6944ee29dcc6417d1bc..176c4c49c96cb734ff93b535787b05cb8dfeef70 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index aed29e230bfd3ebf7aa269cebb32dc104b890508..10e750c6a32e70ae450e7f7c044b48eb338034b1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b3b1af16036dc7a7293e0443e3c1bf03787ffbf8..c62bab78209c8f308eb9a0662be66f508274572b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 9187211529ac6e179ead288ed3f60a6a42a6c786..8d359fbba986e2a20cc183dd400b7f86ce1bc195 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 22f5620595302f7b1c55d387e2f36350c1fe8614..99fad3a8fc759bef477f8ee8492874f175c766f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fc21d1db15abd8d65c0a4648fb08003ecccea48e..65ca5aa625d83a887250c363d94461eba16e03d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2c66d3ec1522cfe7d5415bbcdb165b0924e20506..f2886a7b79396db815c10686d63f126de7dabb6a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index f33d0f1958083734635680d07179b792949524cf..f997f2e3d101015b746ba8e83fa3bfee90e834bd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 41ab224da8be7f354021c5b0d48eddc02171967b..d134993a86ee10fda4738865424b1b2e40897bca 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6ca12da3b46b2d741f7f631e2ae2a4240e278914..b385f02204ee80238cf176ae569685c269137f0b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b14b2186af6b3061ce1bbe4baca4e8bdd3b5871e..2d82ab6afaca9f0164c2f73a19d9872abcf4c7fa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93b69be00ae907b611760d6a573c8d9221eca5b3..fb529f2f8f5afe7e80fd06bf6d54090ecb960586 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 816ed2ca303182dc1827c8aecaad3f18ab2bce6b..c8dd1b3db07fa2742a6b0e438aa9235ebca16707 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e12a58bc82a86e0efd1890dc574c6a0cef45c08..4abff808e5a4ce3785f77da1d2575b4898cb4c96 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 41ab7b9f8d600f5523d4139099bbea7be62188a0..c1d36ad33b2db8cadf64f505565218e321fb029e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 93b69be00ae907b611760d6a573c8d9221eca5b3..fb529f2f8f5afe7e80fd06bf6d54090ecb960586 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7a25dd4adab56370a34d63739e240fd23957abb8..53edd8103fb39ae5b1c9e74fcb3cd93caeca83a3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e12a58bc82a86e0efd1890dc574c6a0cef45c08..4abff808e5a4ce3785f77da1d2575b4898cb4c96 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 41ab7b9f8d600f5523d4139099bbea7be62188a0..c1d36ad33b2db8cadf64f505565218e321fb029e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b83e376ddd515f4c8bcf318080b52959ce87388d..c91b32811d270c84ad88b985457a7a14d978c791 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 24bb167bc72f323280a4955830f38e03735c4bb5..8f8a657879638760ff0d853c4a44906a10a8839e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index be6b5bd22a2511270fb67bb2769b51bd889d869c..d0d3d5460f9be5bbf3a0f92070ec856d99de13aa 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 34d1199265569dcebda9ee6820eaf3726d625d42..f8cbd5aa6484f4079d243ed540a20e4b7be25c73 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cc75f9ea0a0605a91d5c33ba421aaa99de49daa7..73332afa88093104c16263b138b5f0adfb859899 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe875c089366975eedfa177cf3949f87215ee0a7..db7508cd22a335b2ac756d09ae825ce342d033c4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index ae1756d61f897110f1759483e72f9d38bf661566..66a6d182fc46eb38d100ed1ff5d568c53052559a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 08160069c3ef3525c34eed0a1d25b0d6d4a6ff88..c2cb2d3937011d12da09215b1f2f9048d7a3d781 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 99eb8438f149ccef5be683cb4414945a7b03c5a3..b7506df2cde4d76c2fe4e56cfba73b439e6a6c90 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index ed57fc86e085450a14e04ce01147ec2fb036ff7e..062b691973275a7dc53a0423efe508acb9d7be99 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f86970bb6a529722ee9b6b27aeef3824f3db315a..fc83b9efc56ba83f1eb06b3bce7af8e6eb6adddc 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index d3cfe607102395ebfb9a14fc2cc1a2553dcdd961..030ba2f72962cdf072f30151653aa18778609440 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 311edfd1a3a1ecbeeca3a5dfd1f1dde762daac25..88b40ed9fd1e9c7c4839b8bcc7166a053a7dcbb0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7114e4f6e64b8056373a4775cb4370f4f2191eb9..b4df2566d0bf901c7959984e063dc1db36b0ec6f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b6a4c57836fed06042671bb40a47e7b0dd3396b2..5ada831acae4322e5872202916f9289c01f16f1f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7cbb22a274738e828a28e9ecd1b30e4338aa6653..44f3ac89690015bbd29de3c7406bb9e1cb824bd0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c6d82243bc5567cff93eb63034a00df6a38f1d36..e6f0221f1fe6ddb6865fa45e26b54724ca3321b0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index fe5885adcb836aad551917e2addbb0b04947dc7e..f8bbd460048b1c7a9849420d01aeb7d941a09e30 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 28d606ab87198ae08cef427322b90ace1e6be2eb..1ca5e6877e28d188987cc783c9d3b9e3914cb860 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 771e3819311a9e06c5620a7cdd7560698a431080..94ac95c215ece0b68f2fc7c53b5c3bb673537f52 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 0d84e6970558c11072dd5337edbad85d5ff6456d..d4ec8c1e9b86b471346e169a6b1511d851a8ef50 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8ecf296633f1eed5a3c71e057659c31932c53ea0..a990f9654c5e12dc24ff427f932875c128d7ad26 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cf8785ea7d30d4104959a2a64f238dad3a910fed..10e00ae315d9f935780c94f11779a06b22a72a48 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8dc57fe115a69358ae320a833cf3b23bd01d581c..750a54f82fb45bb4badf4604101891a2e6fd17a9 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 41a552753b72b3b4825813854d89e1f9a815f4af..c9affd3d8c91e51cb2c4756891ff27fad176a67e 100644 (file)
@@ -13,7 +13,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f48b4064e8713456a30a87a32c92c3fc9f7ff404..da8c9f2bbebc98c816bbe5976ceb2d36a66f5203 100644 (file)
@@ -13,7 +13,7 @@
  *****************************************************************************/\r
 \r
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bb823f8111c8235ae39f02565cccc92149ac51a7..8e1cb8310b92ccabeb96a331a2c49747b232a4d4 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 6a7b21d1f3ff175e3b82453a4819788a20548ac1..e57f1d217695f767efc7a1dd27171bf65ac4bba9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e8c7e5b7c287249f2b66a562e71b5751549d0691..687ad1cfda1a0a0b3d555560adda4108df696307 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 50dc1304b3dd88c9d2da41d0ff2a1af729e5a78c..4af3afe9c0b0b02598dd2a1f8ed5c042adce9581 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f268bd8e6af7b7842529529ae2674e2894ba9ad2..63b4203fa1c8f12ad29c8cac3c397fe871e2c58c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 012886e31d4acdffccecded980a13507a48127db..13217ac86dddf97b404e34ad3689bcb84f2a6a92 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bb823f8111c8235ae39f02565cccc92149ac51a7..8e1cb8310b92ccabeb96a331a2c49747b232a4d4 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index dbad9519fabe7f94d1adf4a87f8854811909d7d1..073b5f8f7f06e5a48ec43f2a75b48e6b9fadb530 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 52970ff8f86be812c5a86186aa7c78866a765555..74184f6532f93bda49035f6f3cf5a485c10405b5 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index b94b6f7f7caf44fde688e40027aaba7734df6b87..e518e4f8567ec2fbffb3b63b8f15c07f755e3c43 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5e76f84335fff257a6d0c12516b3a1b94223c9c1..ba49e297c5dd13e673246e950d0538d2917a9842 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2030b76c1c1df6e987846eeb5e2c08641359d3a2..dc875a38d6d8d757213e017067995fb4fb1c4505 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index eba31f555c75bc6c6e48291eabfd9a63432e3e83..fcff058f893d7e184e4d18b26d055f9122575459 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c6bc963cd3878c488034be13c2a8a6c5d8840f5f..376ed5584a311a008975186b2e56494063ded391 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b9af077988dc5a4cc927abe43bae0ee47c7b5208..c81c7610f3f9ff18c94b7365beb9a30fbe81f088 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index daa9aee94ecc03c6883ac088aec7cd6688d8e64a..5e26e70722b6e50c3fce97bd7bc54c725aee0dc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1cd98b57c5037f16ccf55ebc4befbdf2ed03e7b9..4f61f52bef8346f05e595fcecf57238f785d66c1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ad8d232699f26b21344ec87b3a9ff3372db3a235..8aea18608d844f393431ff82825b0be6022bec48 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e0f64043c59eceb57666200b6366b2a606cdacec..28b980857b80774422520c591241cb2140a76963 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 7d6429660e88a7f99d456b47aed79e4e581baaee..3b3c39f3226cadd9845147d839a57c22ed95a52f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b6358d134f1b725b357a4567784af295eacc0052..d264ad6a44fe67ca8e2f14916c1b2ee33ccc6cd8 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 55cdee75e96c1ae75aa61967a3d10eff1383f50b..2ecdbe861cea3c3520a94497a80c29f919083fb3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bcd265bbb9eea9f4ffa7d0338a243330091c0d31..8895f5a708593b697432e9f0dd7eea08ea94c946 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3bdb89c383364b31f2b4de4e3ccf2992220bd4bb..ae19299ca96148109448bad5f5e99cc7a4b0de78 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7dd83fe009aa1e168b5ffd52466cb8afc27d91ea..bc71c654c0bc6102491ea77873365f806a01c6f9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bb823f8111c8235ae39f02565cccc92149ac51a7..8e1cb8310b92ccabeb96a331a2c49747b232a4d4 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 264ed6ffa57a920590e99a30f4431e3519fcba11..3e66780058f90d8c35b52f162f8a961bab962578 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 6e0613828d6a63eccab7b6d232e8fd1132642558..1c0bf319b358d0943df7e9d046023d2b38dd62e4 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index c9ea9fcd8401fec4d9c79e496e410d83919c0a83..aef9ae1d6b1725689c3e9b53fd9c3d27c3eb0525 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e6cb256179de4f153c2b2e5e72e012dc72ce159a..e23058959084270c66ab768080368177ca9440b5 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 0b80544ffd9affa7a0604d9b24cdb98eb59de76d..8517c8cf28f6d57c6a65e4d3d9336711a86e4b34 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 78616b7e1ff50293cdb84c0fbb56736ff2f9080c..3fc3579a259d394cd5f60b0a4e61f86e0bd6bea3 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 3eb891be2fe05afc9b095f4de70c910e519a8353..45037fb42de292ecca0608eb823fcf35edeca587 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cfbdd767f80b98ae19689a7d1dbf3cf34e805761..70f96d219be7f74e43bc1d2897765a84a040ea04 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 68ed7a8ec028601ce931243a4f22032bef56d40a..9ff63135e8aff2f085e136bc921811106a1ec97c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 39fe55e868f58ea24f41755fb73a433430dbb8ae..8b2cb566f11861d82fb620037c641a494b502228 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f6c49e8c65a024a0088af701c0a169a4cf8f355d..1f924a7bb90e2dfcb0e7b58026428d2922919174 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f499c087ad8dd0afa941a5c757a240473cc13ab6..6e18812e613392f6eb6fa47e971a4af1197aee43 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f1b749f5622fde22f76f88d52022508dd054cd6d..d93bfbbcf34de0c299341509243ad6b72a7885dd 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cb667676777306703408776e10e6c63602640402..b2d2d63b1db3961743c811c8a222b69056ffd9bb 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index d9a5c4ff2b3dba55f19588dab16e516f6494e898..7153400aa91572db20933ef045713d0b1d529fc9 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index b9978a09fa8cc27ed536a5865e11fab6a369d108..8b007946383918b9ea1b24702fe0b24d3bafa39e 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 6deafb54d47cd83aa1abf285e10f24e2f38d101b..cbb52e9fa771197d6f1c45412992a0d3e9762eab 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3d91b955bfc4480c3d86081ae7c9becd94246b79..016ce9812e68e053a8de7775987bba21362edd3a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7e6c2be6e0890991174da7cf0aae1d332a4c15c2..c747b80266c126058aacbfc0f42f01ae5a6d7710 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e2588cc936d19781f701d7c12d9e67c8e0b767c9..e2c7081236482f4cfd610ff63deeda3c74942f09 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index bb61a2ab0d3b70b50d87ae8ec41b6a63b22d6dd7..bbc82dfd68bf3abb81de6214b93031371aea55e2 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 00c702d61068ffa297592f7c849bd2a0cc47b723..0b6c019fda8d3bd73e418d166b4934c040055035 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 53976e294cea3d3e6b14469da04d945e25b8a473..0d1f4eb22bfe6f8866fbfd97b24f8dd63dd8629e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b4a88ae9788a346164855a729a68f15df728ed3e..46a26107ed43f7db7fc6829df3cdb0d532e29611 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5d12e30a2fd1e8309c4e0358588c1f78177d0aac..7c22b4933cabb48148badb1e04db1b266f2abcde 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 2ef15b601a56e673fc4a542f8162b68b8549d1c2..8d4a4eab8dbdbfebc99364fd3e5707e9f40004de 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index de723d008fa6e8d292ae4d473688f95fb853c064..bb7212cd5245393e124027c043405d0d4ae0cced 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a13e68fbfe43829fd73e5d9df132533b2a17910b..6ff3a75daefcfc5ceaf715ffb9da1c9ad0203125 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 813aa732e9d69b2ebf224a1d894ce7dd2c0bfd5a..484aac5d20e46ae44c18d786268207b740ec30e1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 60c9899198f3700538b787c3d9feb5aa763428e1..fa45fc3fa11a30c6e4109d260d6bcb737cb55b32 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5963137417cede3672494519cad6fabcacf3f956..21578d94c802fef786bfc756b66364f528d1d852 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c5bc9736e2fae3e142007a3688dab9a5ced65e43..636dac0051af8c0bed968e40e371dc313cf99c2a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 51289c06262e325b588eb02d90ac685be5232891..3210b3ce3a0e47375b2e3bc7bca1d4fdf6518598 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 2da0b8020056e29131a502276b56700a17043158..106112efb48d12ea69b2a64d0d1c3cae54e6632c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4ab9b12dde59b3691e32d25fb802232785422cdc..5f9a79d54e37a679592f97c57386aaf62247d671 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 301b84443d791236ac1fef1afc4c297c5a6fb168..f4b7aee78669a6cf76aa79ce3b58ddfc698d2f60 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b85a28c99c142f9909c8a306270cf6799948d7e8..88f79a26dc2977ad162a8fa28a980ec6663e1525 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4db979e0ddd1118e5bb06739909ded55a1af351c..cec0ab18c7d59d8237b841914428b7f18da5263c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5ec51f3677da22e822569a53337ac8b4df380453..963e6189a7f97f3800063ad214da6c2650afaf5a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index edfa97f9b228ca3a84a8d04fbe9232be4e5858cf..b2716b04576da0d558920a3526adbe2e30d2bb97 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d0336a339b2cb01298707cf67c01936ffd11d5b5..2f0376cdd475104b26cb0f0668e7872ec30f3b05 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 96f3c003bd8b0ddd4831b82776f663e25f50e853..ff099de7dc1ac8a8ce83a5781b22da061f809213 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index ea76bb7b32a420c1a937abd3b9f4de873ac293a6..2f9e681abe23e953b94c3ab2d8c775b3031c26f7 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index 0c0418c367ab503d875ee46680a869cafe05a0e9..20a2fce4300c52e72b6a7ae16be74022bef3ce80 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 51aeef08edad2847aa15501e9701846a643157d4..e784875519a4e6ddf8cc4f289f7b55bbc3625e5d 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index e11d8f5bfdc65e1d1b0cc4e6c5cf2b64aabde30d..42d56df9c99a0d7326b1a3274649769d258d0e63 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 49c8532771e5fc57ec6995e6870cfd909f21f1e6..5b55a9c53c09af8e94c56f06b12f1a15e1a113be 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8789e9f3c105457fe26f630ac9f494e3dfbaa3aa..8494130e0899f446037c908e5b444580f32f59d3 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a2ba6b5861bfd40afd47f5d831a3d4ef14830c0a..1e506b33707d5c4f601254cfea99efb152a35e5a 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 3769d4712d76cb544e3313966b54243664bcc327..beab146e66a0b18f59b6bfe19963c4c4fa115fda 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4c9e14ecfd96f383ac84b493a69f7bfa3f1c217d..2330aac67357c1ad3aed2d4a969744055e6a165f 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index a2ba6b5861bfd40afd47f5d831a3d4ef14830c0a..1e506b33707d5c4f601254cfea99efb152a35e5a 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 3769d4712d76cb544e3313966b54243664bcc327..beab146e66a0b18f59b6bfe19963c4c4fa115fda 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 02f58d9044d8b46ce4b57bd8cca5695feda75949..d9e80c19c994642cd90bfa443a298b450ff1ad4f 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 0c1b92483418cfca13eee1871537542f5d11c7e1..7763b213c2d4651513e2798326717b22e96082f7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9d9b7ffdbf7fa25e7d10f1fe862f7b5d4f769359..a6c62de556063c84b08baa8c4e94cb5c0716facf 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;      \r
 ;\r
 ;    ***************************************************************************\r
index c10a130760ac97c0aa23e5666abad2f2400939da..08da03032fab1aeb04dfe6c24bb18cf888c03061 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9c3f2d2779370723e73ff7693a47a558e2be160b..362df03ab4c9ff44d5d416beca7642058c427a53 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 9b3287ff312429fa38da97df9f75a07dde0d1f63..8a48bc2184e0b7eaa72774a68a5c83e2c770cb1c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3d666119973cf9b11de989a66171112b3f8db97d..e64d2c0ee53ea6673c1d2e8cbf1823be0a397572 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index c217390d52945918c4f434852c4748f42dc9d7e3..864cb01487ef1950f2a0f69152e07bd238b118a1 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1ebb40854f75308f41a99c8dae93826ee92b3828..b9c75333f2d2f6648905814b58f6ed0046027cf7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index cef91bc6a2d31461bd068b9322a5aa0718140f3a..9adf240806c140a15dcd993a0f73008a343c729b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 7718b6a5455f067679ee7f11b842a5b8c5aceb16..830d1b4b81f2b4aaf61be5a24da6dc838010bb76 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5f9b53f860ddd0eda2a5231fd13dc2649d8e5889..0dffa3cd3af27835a5ec5c02da823a7e04584913 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 885d48e460daaa5aefc77258dd41ac239a73b30d..ed0b2482f88cc3a30b6f5831ae790404c5399f6a 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index febee255a86c44d7cbbc8416457ddf97c7c929c6..a5f9e4a932756d5e82b278a5a9bb6258f8564b12 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index de09c2a680451f9591b8c37cc0edfeab7c573d82..7f0bf5cc2da3fc343be7776fc6e604827ce1604b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index 285f51ca7bfc479358d2744ccc3ac72bd7aaf03f..ff7365cb04a25064157ff66579fcf77f3b7ce26b 100644 (file)
@@ -1,5 +1,5 @@
 ;/*\r
-;    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+;    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 ;\r
 ;\r
 ;    ***************************************************************************\r
index 02b7c2491b18164d691f19fbe7ef1f21dd343444..5766789a1b73fe83dea16ba1452e38a502d2f3eb 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 5730be92518a5332f18767a5a0e78c808ce25f93..cb8457056274a9d8af07f0465a4a654bd06af0a9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 8a02c970ba02f009ab2f9dd0026228785c6b61d1..75871df6b28b2ee55ababe67fc70c7859de17ac7 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index f3fd9fac7915b91da0382ad011f379e50a0f4bdd..455b77f3897aabf85dbe1a6ff2ee23ccb3b3c3d4 100644 (file)
@@ -1,5 +1,5 @@
 REM/*\r
-REM    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+REM    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 REM\r
 REM\r
 REM    ***************************************************************************\r
index dbc21a98b4cd352aaa8a5037037fc3f86767115d..fc4f4c983165b590480b93a26c1ad8b79528886e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index b7b025c9cc5bc7a8b5d41f2b6d92bd88b9005658..187f26249ee16d2bb90a68a0748a0ce77a9bb743 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index d6213f13c224db66cef17348d238b06659021b0c..29a3c1d7525aa2be4a2b94117a2ddcde10fd4dad 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 1d7ae1da63891a3c82c16f089fcfa7bbce68db5d..99cff59caec744ec64e665f6128c850e7f59cff9 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 35622bea19dc1d39094c8ad5347288ba031f5e38..3870fa3eea0a43fb35e840c4cb0b4cddeb15c62c 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 977b3045eb09c1f2f232caf8225aac6b5d7af215..72be38131e9c5b540df58a3ba59a8828f534fff4 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 3a910d5733497b982b92aa7b5a992dfd1f7dd7e3..b4ce2d6cb38e92cc5b3beeb2ab3c1bf5caf062e0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4169fa58d229637933c5668b1dd1e83c7ba397aa..a968d6cad7cc464114a75eae17bd851df2b3f66b 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 4b30d2fbf8a97e4e177723b7bbb19c6d3368bbb1..352631a403720d7ce5c71aa2ec291bd9a9521a31 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index dff11b1b474180eae1bf01a6f0a96ccd7078a5de..4748860db8a03d8464852aa257074a295a5d1a30 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r
index f13c70e0121c5c7ee25fc4850ab6720466acbdba..0c43e63d6c8d8188c009ee02b644772483e8960e 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
        \r
 \r
     ***************************************************************************\r
index 947e044ad0746cb255fcd5e920231af4ee623b11..0be2942771cc72b882c99730bdcadaedaa03fcc0 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-    FreeRTOS V7.1.1 - Copyright (C) 2012 Real Time Engineers Ltd.\r
+    FreeRTOS V7.2.0 - Copyright (C) 2012 Real Time Engineers Ltd.\r
 \r
 \r
     ***************************************************************************\r