> From: owner-openssl-us...@openssl.org On Behalf Of Li, David
> Sent: Thursday, 21 June, 2012 17:53

> If I have a private key in hex string , e.g, 
> 23d9f4ea6d87b7d6163d64256e3449255db14786401a51daa7847161bf56d4
> 94325ad2ac8ba928394e01061d882c3528, how can I convert it into 
> an ECDSA private key in PEM and use it in openssl dgst? 
> 
> I am thinking about the following steps:
> 
> 1. convert it to a binary key 
> 2. convert the binary key into DER format (which openssl cmd?)

The EC(DSA) privatekey structure used by OpenSSL consists of the 
"group" (curve, by id or parameters), the private-key (number), 
and the public-key (point). If you have only the private number 
you need to add the curve and the public point to have a 
storable key. I don't believe any commandline utility can 
do this, so you'll have to write a (fairly simple) program. 
Which can read hex as easily as binary if not easier.

How do you have only a private-key number? 
Most programs/systems that can generate a key in the first place 
can output at least one of PKCS#8 or PKCS#12. Those contain all 
the correct bits together and OpenSSL can handle either fine.

> 3. use openssl  ec  to convert the key in DER format to PEM format
> 4. use open dgst to sign the message.
> 
Yes. Or the program can output (clear) PEM just as easily, 
or encrypted PEM almost as easily.


______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to