seanmonstar / warp

A super-easy, composable, web server framework for warp speeds.
https://seanmonstar.com/post/176530511587/warp
MIT License
9.48k stars 713 forks source link

key contains no private key while using ecc key #1089

Open benzwt opened 7 months ago

benzwt commented 7 months ago

Version warp v0.3.6

Platform Linux Office 6.5.0-14-generic #14~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Nov 20 18:15:30 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Description

[short summary of the bug] I ran the tls.rs example. Things were fine for rsa key. While using ecc key which came with the examples, I got

error binding to 127.0.0.1:3030: key contains no private 

[code sample that causes the bug]

I expected to see this happen: [explanation]

Instead, this happened: [explanation] I got

thread 'main' panicked at /home/benzene/.cargo/registry/src/index.crates.io-6f17d22bba15001f/warp-0.3.6/src/server.rs:550:27:
error binding to 127.0.0.1:3030: key contains no private key
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

full backtrace log

cscherrNT commented 5 months ago

This is still an issue as it seems. I've read through some source code, and it seems that warp uses PKCS8 only, which is fine by itself, but should be documented, as this is different from other crates, for example rustls, which accepted my EC KEY. Your EC PRIVATE KEY can be converted to a PKCS8 conform key with the following openssl command:

openssl pkcs8 -topk8 -nocrypt -in private.pem -out newpriv.pem

With a PKCS8 conform key, warp succeeds in starting the server.