The wolfSSL library is a small, fast, portable implementation of TLS/SSL for embedded devices to the cloud. wolfSSL supports up to TLS 1.3 and DTLS 1.3!
Adds API for curve25519 der import/export that can handle both private and public keys in one step. I realize that typically curve25519 keys are distributed as public/private only, since you can recover the public key from the private key, but this API simplifies usage for some cases in that it doesn't require multiple import attempts if you don't know at runtime what the contents of a der key holds.
This API is particularly useful for wolfHSM, where the server doesn't know the contents of a der contain when it loads from NVM, but needs to import the key into a curve25519_key struct that then will have the proper public/private key fields set. The current API doesn't provide a straightforward way to do this.
Added doxygen, and will update the manual/docs once this merges
Testing
Added test to ensure new API can handle private only/public only keys in the same exact way as the existing API
Added test to ensure a combined keypair import/export yields the same exported der as public/private only
Adds API for curve25519
der
import/export that can handle both private and public keys in one step. I realize that typically curve25519 keys are distributed as public/private only, since you can recover the public key from the private key, but this API simplifies usage for some cases in that it doesn't require multiple import attempts if you don't know at runtime what the contents of ader
key holds.This API is particularly useful for wolfHSM, where the server doesn't know the contents of a
der
contain when it loads from NVM, but needs to import the key into acurve25519_key
struct that then will have the proper public/private key fields set. The current API doesn't provide a straightforward way to do this.Added doxygen, and will update the manual/docs once this merges
Testing
Checklist