seanmonstar/warp

key contains no private key while using ecc key

benzwt opened this issue · 1 comments

benzwt commented

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]

  • examples/tls.rs

I expected to see this happen: [explanation]

  • the server should start and serving

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

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.