OpenSSL unable to load Public Key
I had same problem when I was extracting public key from certificate.
openssl x509 -pubkey -noout -in cert.crt > pubKey.pem
Afterwards, I wanted to print information about key with command below.
openssl rsa -text -pubin -in pubKey.pem
And gets an error: unable to load Public Key
Solution
I opened pubKey.pem in notepad++ and in the Encoding menu was UCS-2 LE BOM selected. So I changed it to UTF-8 encoding. Size of pubKey.pem was half of the original one after changing encoding. Then it works like charm.
Tested in Windows and powershell
I faced this problem also and think a good hint is here:
How can I transform between the two styles of public key format, one "BEGIN RSA PUBLIC KEY", the other is "BEGIN PUBLIC KEY"
It seems that the OpenSSL encryption command wants a SSL public key instead of a RSA public key.
We now know enough to tweak the example to make it work. A SSL public key can be generated from a RSA public key with
openssl rsa -in id_rsa.pem -RSAPublicKey_in -pubout > id_pub.pem
It is then possible to do the encryption step with
openssl rsautl -encrypt -inkey id_pub.pem -pubin -in ~/Desktop/myMessage.txt -out ~/Desktop/encrypted.txt
The default OpenSSL command in MacOSX Yosemite as of this writing appears to be 0.9.8zg. The rsa command in this version does not support the capability to run the first command above. I worked around this by installing OpenSSL 1.0.1p.
Still don't know what went wrong in my question but found a solution:
1) Generate RSA key:
$ openssl genrsa -out key.pem 1024
$ openssl rsa -in key.pem -text -noout
2) Save public key in pub.pem file:
$ openssl rsa -in key.pem -pubout -out pub.pem
$ openssl rsa -in pub.pem -pubin -text -noout
3) Encrypt some data:
$ echo test test test > file.txt
$ openssl rsautl -encrypt -inkey pub.pem -pubin -in file.txt -out file.bin
4) Decrypt encrypted data:
$ openssl rsautl -decrypt -inkey key.pem -in file.bin
It works like a charm
Thanks to Marek Marcola for providing the information http://openssl.6102.n7.nabble.com/Re-Can-I-use-my-own-keys-with-openssl-for-RSA-enc-dec-td12506.html