Specifically, here is a worked example which I just ran (passwords and private key
printout details excluded) :
(1) ---- (Generate traditional format encrypted OpenSSL private key -----
openssl genrsa -des3 -out privkeytest.pem 1024
-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,6D069734D90C3C15
O7UmZH+0IwlK30KhEQfkNjql55ZYpBy636feVI/LQBFYbmYXZnahjLyTFo9+Xpbz
e1bvVdsPEH+fYHpwYI5w2W0WaVSCilYb/uW3D+M1y/TSBg9/h+XCTyiHhy54bQZj
o2nUiUsiJEnqxhWzD/+cAAYZAtJGBezcim0HGczJls75/3G8kkmRrPCKBPe2s3iF
L3Wy3lrAcvv1VjRxz89zNeiKSuFxmKQEk9euT0q3hgAwbMG8JvfbbTpGVZRCieaG
hYbIXsse0IOm9Xowf/wEnLQz4lBc6DXBno0ZMWEzgWoetdp+TsfDM/bhcGVjozr9
Rvqh/JX5dYUKtcycMX2O4Jehlk+swSAx2TlV5tf33Y1rP8BRXrzeFHO/EdhyUFCN
Ly7qfonUJMLHxKC0nBXTiyKvYJGoD2SI2oXfSmWRhYCUKLTnKLtTDlrIgGcuY3ry
/22UZfvFoS6cSO5QVrLUu1SxFhtAIQ/H3Ot1rvl/UyK0NpZ+ByJHlgV5py+rsbtW
n0WTAvAwi6DB3hh4RQU3HczzNr16I6HDXTk6kkSNNyqjiuX+5SkjTuywlDyOhgVH
oKTC8fXzaC/+gttXP3xoMFMdcUyPThVHYfgrXcuIW2Cx2BXNwd9ZpIFyaL/kHfE8
yNhg5GIBz2WITghd7PS4GBkjLFHk4OjPKQtHRRydOcZWI4RQ9vHRCGx6zQoXMVHp
H66H//WwhYFVRsYsFNzOf78F+JJfM76VwXjB3toRCL92BTu36tO6exDGB5LzGItV
rKZY4Soeu44YkchnTtEsBJOeGbQUHQW2C2XvvFKZglE=
-----END RSA PRIVATE KEY-----
(2) ----- Convert to PKCS#8 PrivateKeyInfo (unencrypted) binary form ----
openssl pkcs8 -in privkeytest.pem -topk8 -nocrypt -outform DER -out enc8keytest
(3) ----- Convert from PKCS#8 PrivateKeyInfo to CryptoAPI PRIVATEKEYBLOB ---
java PvkConvert enc8keytest
keyspec 1
KeySize: 1024 bits
Wrote PRIVATEKEYBLOB file '_privatekeyblob' (596 bytes)
Dumping RSA private key components ...
Modulus:
11275472959122150446325246625122651152048954058724157395626130328372671681274708
22335684540068686156463853749343121504455881728476083234244339871729696676671619
35832690407864886928030332233274731098350551648661164391498454916363837880422487
840010992638155541619879590295589352548352571722299723431804279340767
00 A0 91 6C B1 B4 D5 1F 3B 0E ED 59 C4 E5 B3 2B
99 E9 13 E9 4A C5 0A 9A 3F A6 4A B6 F3 1B 3F F6
68 20 50 E1 C8 49 FF E8 08 85 3B D1 9A 7F 3E 1F
25 80 8D 8F 9F 97 00 53 E7 A4 9B 81 7B 83 9D 0B
F8 E3 31 1D 86 C2 E0 50 E5 4F FB FE A6 2A 6B 19
EC 0C D6 E2 A6 37 F6 2B 26 23 2D AF 78 84 02 5C
AD 30 C1 D8 72 C6 54 CF 6F F9 7A 2B 85 5C C5 8A
56 58 E2 1D 5D 82 D4 98 70 D8 6E FF 8D 1D 56 3E
DF
Public Exponent:
65537
01 00 01
Private Exponent:
80993052020024467768010026416264694086372058725376265858445719416279642349770078
...
...
Wrote PUBLICKEYBLOB file '_publickeyblob' (148 bytes)
"Michel Gallant" <***@istar.ca> wrote in message news:%23Iy5%***@TK2MSFTNGP12.phx.gbl...
Always the details .... :-)
The utility PvkConvert handles PrivateKeyInfo format which is an UNENCRYPTED
private key. It also expects a binary format (not the B64 format).
So to get that unencrypted form from openssl you can use the nocrypt and outform switches; e.g.:
openssl pkcs8 -in server.key -topk8 -nocrypt -outform DER -out enc8key.pem
Also, you should update your JVM to 1.4.2 (not sure if 1.2.4 Sun JVM supports PKCS#8 )
- Mitch
"sunit" <***@newsgroup.nospam> wrote in message news:***@TK2MSFTNGP12.phx.gbl...
["Michel Gallant"]
thanx a lot for taking pain to solve my problem
Sorry to annoy u once again.
I converted my private keys from Traditional SSLeay RSAPrivateKey format" to PKCS#8
openssl>pkcs8 -in server.key -topk8 -out private.key
i followed the same procedure to execute the program.But it gave the same error
C:\jdk1.2.4\bin\javac PvkConvert.java
C:\jdk1.2.4\bin\java PvkConvert private.key
output shown on my screen is :-
keyspec 1
java.security.spec.InvalidKeySpecException: Unknown key spec.
KeySize: 0 bits
java.lang.NullPointerException
and my private keys are store in private.key(pkcs#8).The content of this file is:
----BEGIN ENCRYPTED PRIVATE KEY-----
MIICoTAbBgkqhkiG9w0BBQMwDgQI2ep5W6w4Kt8CAggABIICgJgVeg+JFOGfRorc
LpNhYLZxrlDzkwHHRH2ABWIuPq44vcBYnz+NNt30zOuaE1+cMnnhFPO7MX4clLrI
cZLUGHbjJRd4JG0ijjOziXtvO5O9f7Owr0vOsIIALcAEH1dgbnjYwZEbIiBck3oZ
yCAgeS1gP92qmK8lSbW9UNLvlOpn06NNnmanuyB99JB0fQUZszjtOhDA94Zop1WR
FNHhWXZkiMJPKrq+1NtoJ2lDCkjR1IhsVKzGIjr9HbsqE95jly4XDVAaSM8He7lz
mj4vYVYNO1m9w18D6h+13GSYLgY6loDmHawIfPhwxdGu1ZACB0uvxd7s0nK/f8b/
O/F42qlcaxPk2AvxYfiYEs3iE8FdUwrex2L5s/flpBrDMjLWidZmuzSPWQozGsxX
H8Lp4KDm5QAVd7KY4xtz8XrKE0vnsZJoUxHPVZ1jYb2mztE4m/PgVoLBzXNjbhhI
ml5e0esIC7kaF/xOIU23LajADFkw+g/yCF+gJhB3N3K3ZLYd8zjZDGQmZjXD78t+
Ng6/bGFnU9kx0qk8DTkS16O/QjFpSKhRoi0K435233hOJU2ftw1f8cvOYwmWiFxu
5xumzB61IDqVe60agPlttmOOhOQBwFq0oBY2BR0LZ1kQILYDcsb0+apH/Qnt++B7
gZt/e6EJ4s2RE1mIj6BKUTv1ocbeSgFzF8MyVZg/mSEps2nQRSjGAD+sc21IW5eB
BW2O8vFnLyCsevUYTEodoo1nyFJZVtp5BvPFnrDvgnSvzn0lvU6qUsyTk83BB/Cl
Tycp6xmqLIjHGEvc0pUQ6eAZ4JsA72QRUpuxh1G81d305d4WkUv2F2A1wudQBnmX
IWGrgpg=
-----END ENCRYPTED PRIVATE KEY-----
Pls Help me