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

generic curve25519 encode/decode API #8128

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 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

Checklist