forked from wolfSSL/wolfssl
add cavium notes and free ssl cavium ciphers
This commit is contained in:
17
README
17
README
@ -42,18 +42,33 @@ Release 2.5.0 CyaSSL has bug fixes and new features including:
|
|||||||
- Microchip MPLAB X example projects for PIC32 Ethernet Starter Kit
|
- Microchip MPLAB X example projects for PIC32 Ethernet Starter Kit
|
||||||
- Updated CTaoCrypt benchmark app for embedded systems
|
- Updated CTaoCrypt benchmark app for embedded systems
|
||||||
- 1024-bit test certs/keys and cert/key buffers
|
- 1024-bit test certs/keys and cert/key buffers
|
||||||
- Initial Cavium Nitrox support
|
|
||||||
- AES-CCM-8 crypto and cipher suites
|
- AES-CCM-8 crypto and cipher suites
|
||||||
- Camellia crypto and cipher suites
|
- Camellia crypto and cipher suites
|
||||||
- Bumped minimum autoconf version to 2.65, automake version to 1.12
|
- Bumped minimum autoconf version to 2.65, automake version to 1.12
|
||||||
- Addition of OCSP callbacks
|
- Addition of OCSP callbacks
|
||||||
- STM32F2 support with hardware crypto and RNG
|
- STM32F2 support with hardware crypto and RNG
|
||||||
|
- Cavium NITROX support
|
||||||
|
|
||||||
CTaoCrypt now has support for the Microchip PIC32 and has been tested with
|
CTaoCrypt now has support for the Microchip PIC32 and has been tested with
|
||||||
the Microchip PIC32 Ethernet Starter Kit, the XC32 compiler and
|
the Microchip PIC32 Ethernet Starter Kit, the XC32 compiler and
|
||||||
MPLAB X IDE in both MIPS16 and MIPS32 instruction set modes. See the README
|
MPLAB X IDE in both MIPS16 and MIPS32 instruction set modes. See the README
|
||||||
located under the <cyassl_root>/mplabx directory for more details.
|
located under the <cyassl_root>/mplabx directory for more details.
|
||||||
|
|
||||||
|
To add Cavium NITROX support do:
|
||||||
|
|
||||||
|
./configure --with-cavium=/home/user/cavium/software
|
||||||
|
|
||||||
|
pointing to your licensed cavium/software directory. Since Cavium doesn't
|
||||||
|
build a library we pull in the cavium_common.o file which gives a libtool
|
||||||
|
warning about the portability of this. Also, if you're using the github source
|
||||||
|
tree you'll need to remove the -Wredundant-decls warning from the generated
|
||||||
|
Makefile because the cavium headers don't conform to this warning. Currently
|
||||||
|
CyaSSL supports Cavium RNG, AES, 3DES, RC4, HMAC, and RSA directly at the crypto
|
||||||
|
layer. Support at the SSL level is parital and currently just does AES, 3DES,
|
||||||
|
and RC4. RSA and HMAC are slower until the Cavium calls can be utilized in non
|
||||||
|
blocking mode. The example client turns on cavium support as does the crypto
|
||||||
|
test and benchmark. Please see the HAVE_CAVIUM define.
|
||||||
|
|
||||||
CyaSSL is able to use the STM32F2 hardware-based cryptography and random number
|
CyaSSL is able to use the STM32F2 hardware-based cryptography and random number
|
||||||
generator through the STM32F2 Standard Peripheral Library. For necessary
|
generator through the STM32F2 Standard Peripheral Library. For necessary
|
||||||
defines, see the CYASSL_STM32F2 define in settings.h. Documentation for the
|
defines, see the CYASSL_STM32F2 define in settings.h. Documentation for the
|
||||||
|
@ -2789,6 +2789,9 @@ void AesFreeCavium(Aes* aes)
|
|||||||
if (aes == NULL)
|
if (aes == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (aes->magic != CYASSL_AES_CAVIUM_MAGIC)
|
||||||
|
return;
|
||||||
|
|
||||||
CspFreeContext(CONTEXT_SSL, aes->contextHandle, aes->devId);
|
CspFreeContext(CONTEXT_SSL, aes->contextHandle, aes->devId);
|
||||||
aes->magic = 0;
|
aes->magic = 0;
|
||||||
}
|
}
|
||||||
|
@ -124,6 +124,9 @@ void Arc4FreeCavium(Arc4* arc4)
|
|||||||
if (arc4 == NULL)
|
if (arc4 == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (arc4->magic != CYASSL_ARC4_CAVIUM_MAGIC)
|
||||||
|
return;
|
||||||
|
|
||||||
CspFreeContext(CONTEXT_SSL, arc4->contextHandle, arc4->devId);
|
CspFreeContext(CONTEXT_SSL, arc4->contextHandle, arc4->devId);
|
||||||
arc4->magic = 0;
|
arc4->magic = 0;
|
||||||
}
|
}
|
||||||
|
@ -795,6 +795,9 @@ void Des3_FreeCavium(Des3* des3)
|
|||||||
if (des3 == NULL)
|
if (des3 == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (des3->magic != CYASSL_3DES_CAVIUM_MAGIC)
|
||||||
|
return;
|
||||||
|
|
||||||
CspFreeContext(CONTEXT_SSL, des3->contextHandle, des3->devId);
|
CspFreeContext(CONTEXT_SSL, des3->contextHandle, des3->devId);
|
||||||
des3->magic = 0;
|
des3->magic = 0;
|
||||||
}
|
}
|
||||||
|
@ -496,14 +496,32 @@ void FreeCiphers(CYASSL* ssl)
|
|||||||
{
|
{
|
||||||
(void)ssl;
|
(void)ssl;
|
||||||
#ifdef BUILD_ARC4
|
#ifdef BUILD_ARC4
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
if (ssl->devId != NO_CAVIUM_DEVICE) {
|
||||||
|
Arc4FreeCavium(ssl->encrypt.arc4);
|
||||||
|
Arc4FreeCavium(ssl->decrypt.arc4);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
XFREE(ssl->encrypt.arc4, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
XFREE(ssl->encrypt.arc4, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
||||||
XFREE(ssl->decrypt.arc4, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
XFREE(ssl->decrypt.arc4, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_DES3
|
#ifdef BUILD_DES3
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
if (ssl->devId != NO_CAVIUM_DEVICE) {
|
||||||
|
Des3_FreeCavium(ssl->encrypt.des3);
|
||||||
|
Des3_FreeCavium(ssl->decrypt.des3);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
XFREE(ssl->encrypt.des3, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
XFREE(ssl->encrypt.des3, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
||||||
XFREE(ssl->decrypt.des3, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
XFREE(ssl->decrypt.des3, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
||||||
#endif
|
#endif
|
||||||
#ifdef BUILD_AES
|
#ifdef BUILD_AES
|
||||||
|
#ifdef HAVE_CAVIUM
|
||||||
|
if (ssl->devId != NO_CAVIUM_DEVICE) {
|
||||||
|
AesFreeCavium(ssl->encrypt.aes);
|
||||||
|
AesFreeCavium(ssl->decrypt.aes);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
XFREE(ssl->encrypt.aes, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
XFREE(ssl->encrypt.aes, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
||||||
XFREE(ssl->decrypt.aes, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
XFREE(ssl->decrypt.aes, ssl->heap, DYNAMIC_TYPE_CIPHER);
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user