wolfSSL / wolfssl

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!
https://www.wolfssl.com
GNU General Public License v2.0
2.36k stars 834 forks source link

Curve25519 generic keyparsing #8129

Closed bigbrett closed 3 weeks ago

bigbrett commented 3 weeks ago

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 what the contents of a DER key contain when it loads/stores 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

Checklist

bigbrett commented 3 weeks ago

@dgarske @SparkiDev addressed all feedback

bigbrett commented 2 weeks ago

Thanks @SparkiDev!