From: shibata.hiroshi@...
Date: 2016-06-01T02:54:02+00:00
Subject: [ruby-core:75815] [Ruby trunk Bug#12354][Assigned] PKey::EC Can't output public key pem when private key exists

Issue #12354 has been updated by Hiroshi SHIBATA.

Description updated
Status changed from Open to Assigned
Assignee set to Kazuki Yamaguchi

----------------------------------------
Bug #12354: PKey::EC Can't output public key pem when private key exists
https://bugs.ruby-lang.org/issues/12354#change-58997

* Author: Armour Comms
* Status: Assigned
* Priority: Normal
* Assignee: Kazuki Yamaguchi
* ruby -v: ruby 2.2.4p230 (2015-12-16 revision 53155) [x86_64-linux]
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
Steps to reproduce:

Create EC key:

```ruby
key = OpenSSL::PKey::EC.new("prime256v1")
key.generate_key
```

Try and output in pem format

```ruby
key.to_pem #Outputs private key pem
key.public_key.to_pem #Error
```

In order to output a public key pem, a new key object must be created with no private key:

```ruby
key_pub = OpenSSL::PKey::EC.new(key.group)
key_pub.public_key = key.public_key
```

Output pem

```ruby
key_pub.to_pem #Success!
```

From viewing the source, http://rxr.whitequark.org/mri/source/ext/openssl/ossl_pkey_ec.c#466 it seems that if the key is private there is no way to output a public key for that key object



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>