arduino-libraries / ArduinoECCX08

76 stars 49 forks source link

Add ECDH key exchange #35

Open jezcrypt opened 2 years ago

jezcrypt commented 2 years ago

This adds a function to perform an ECDH key exchange and adds the standardized AES-GCM encryption/decryption algorithms which use the exchanged key to perform authenticated encryption/decryption.

CLAassistant commented 2 years ago

CLA assistant check
All committers have signed the CLA.

github-actions[bot] commented 2 years ago

Memory usage change @ f885c399ab0ce0503f210c116f2b6ee55213e3c4

Board flash % RAM for global variables %
arduino:mbed:envie_m7 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:mbed_nano:nanorp2040connect 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:megaavr:uno2018 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkr1000 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrgsm1400 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrnb1500 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrvidor4000 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrwan1300 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrwan1310 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:mkrwifi1010 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
arduino:samd:nano_33_iot 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
Click for full report table Board|examples/ECCX08AES
flash|%|examples/ECCX08AES
RAM for global variables|%|examples/ECCX08ECDH
flash|%|examples/ECCX08ECDH
RAM for global variables|%|examples/ECCX08RandomNumber
flash|%|examples/ECCX08RandomNumber
RAM for global variables|%|examples/Tools/ECCX08CSR
flash|%|examples/Tools/ECCX08CSR
RAM for global variables|%|examples/Tools/ECCX08JWSPublicKey
flash|%|examples/Tools/ECCX08JWSPublicKey
RAM for global variables|%|examples/Tools/ECCX08SelfSignedCert
flash|%|examples/Tools/ECCX08SelfSignedCert
RAM for global variables|% -|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|- arduino:mbed:envie_m7|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:mbed_nano:nanorp2040connect|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:megaavr:uno2018|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkr1000|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkrgsm1400|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkrnb1500|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkrvidor4000|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkrwan1300|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkrwan1310|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:mkrwifi1010|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0 arduino:samd:nano_33_iot|N/A|N/A|N/A|N/A|N/A|N/A|N/A|N/A|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0|0|0.0
Click for full report CSV ``` Board,examples/ECCX08AES
flash,%,examples/ECCX08AES
RAM for global variables,%,examples/ECCX08ECDH
flash,%,examples/ECCX08ECDH
RAM for global variables,%,examples/ECCX08RandomNumber
flash,%,examples/ECCX08RandomNumber
RAM for global variables,%,examples/Tools/ECCX08CSR
flash,%,examples/Tools/ECCX08CSR
RAM for global variables,%,examples/Tools/ECCX08JWSPublicKey
flash,%,examples/Tools/ECCX08JWSPublicKey
RAM for global variables,%,examples/Tools/ECCX08SelfSignedCert
flash,%,examples/Tools/ECCX08SelfSignedCert
RAM for global variables,% arduino:mbed:envie_m7,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:mbed_nano:nanorp2040connect,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:megaavr:uno2018,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkr1000,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkrgsm1400,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkrnb1500,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkrvidor4000,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkrwan1300,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkrwan1310,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:mkrwifi1010,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 arduino:samd:nano_33_iot,N/A,N/A,N/A,N/A,N/A,N/A,N/A,N/A,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0 ```
ateska commented 3 months ago

Will this be merged?