Topic: Hardware Cryptographic Engine support (PIC32MZ1024ECM064) in WolfSSL

Dear all,

I am using Microchip PIC32MZ1024ECM064 with MPLAB IDE, MPLAB Harmony,  and MPLAB Harmony Configurator.

This means that I can use a graphical configuration tool to set that I want to use wolfssl and PIC32MZ Hardware Cryptography.  I then click generate code and try to complile. Then many build error occurs, which can be solved if the WOLFSSL_MICROCHIP_PIC32MZ flag is defined.

The software builds without error if  I generate code without selecting PIC32MZ Hardware Cryptography.

In the wolfSSL manual (https://www.wolfssl.com/documentation/w … Manual.pdf) section 4.4 it is not stated that WolfSSL supports PIC32MZ Hardware Cryptography (out of the box).

I also understand that the WOLFSSL_MICROCHIP_PIC32MZAn is related to the hardware cryptography (https://developer.mbed.org/users/wolfSS … settings.h)


All this is confusing for me. I dont know if there is a problem with the Microchip programing tools, or if there is problem to use WolfSSL this way. Please try to answer my questions below and to give other clarifications that I might need..

1) Does WolfSSL support using the PIC32MZ1024ECM064 hardware cryptographic engine?

2) Can I use Harmony Configurator to configure Wolfssl to use the PIC32MZ1024ECM064 hardware cryptographic engine?

3) What does it mean with the statement in section 4.4 in the manual: "wolfSSL is able to take advantage of several hardware accelerated (or “assisted”) crypto functionalities in various processors and chips. The following sections explain
which technologies wolfSSL supports out-of-the-box.."

Is there another way that is not "out of the box"?



Kind Regards

Peter Abdelmassih Waller

However

Share

Re: Hardware Cryptographic Engine support (PIC32MZ1024ECM064) in WolfSSL

A clarification:

Im using MPLAB Harmony 1.09.

Kind Regards

Peter

Share

Re: Hardware Cryptographic Engine support (PIC32MZ1024ECM064) in WolfSSL

Hi Peter,

1) Does WolfSSL support using the PIC32MZ1024ECM064 hardware cryptographic engine?

Please see the note in README on CyaSSL Release 2.9.4 "-PIC32 MZ hardware support". It looks like this update was never added to the manual. I have made a note of it and we will try to get that section in the next Manual update.


2) Can I use Harmony Configurator to configure Wolfssl to use the PIC32MZ1024ECM064 hardware cryptographic engine?

The harmony configurator is not for configuring third party libraries, it is used to enable/disable features / support on the target platform in an automated fashion. Occasionally it will name things differently then if manually created: for example instead of "UART_WriteBuffer" the code configurator might call it "UART1_WriteBuffer" which would be incompatible with "out of the box". So there may be some customization required when using the code-configurator.

3) What does it mean with the statement in section 4.4 in the manual: "wolfSSL is able to take advantage of several hardware accelerated (or “assisted”) crypto functionalities in various processors and chips. The following sections explain
which technologies wolfSSL supports out-of-the-box.." Is there another way that is not "out of the box"?

Have you had a chance to go over the README for WOLFSSL_MICROCHIP_PIC32MZ crypto engine support? <wolfssl-root>/mplabx/README. Specifically note:

The projects are set for PIC32MX by default. For PIC32MZ, change project       
properties->Devices and add "WOLFSSL_MICROCHIP_PIC32MZ" to                     
XC32-gcc->Preprocessing and messages-> Preprocessor macros.

Please take a moment to build our pre-existing examples and get a feel for the setup. If you have any questions on those examples please let us know!


Regards,

Kaleb