I am confused on how to properly export public ECC key. I can see it

only if I export both public key and private key with to_text, which is

bad. Otherwise how do I export just the public key? I have two ideas :

require “openssl”

puts OpenSSL::PKey::EC.builtin_curves

cipher = OpenSSL::Cipher::Cipher.new(“AES-256-OFB”)

key = OpenSSL::PKey::EC.new(“prime192v1”)

key.generate_key

puts key.to_pem(cipher, “testing”)

#my first guess, and what I still think seems most likely to be correct

a = key.public_key

puts a.to_bn

#however this produces a 936 bit number and I think my public key should

be #much smaller than this…is converting it to a big number changing

the #bit size and confusing me ?

#Pretty sure this is wrong…

puts key.dh_compute_key(a).bytesize

#Because I think this generates a ECDH shared secret using the public

key #of someone else (if they ever manage to export it…). But I have

my own #questions about this. Why does it take only one parameter? Ok

the #elliptic curve is already specified with key, and then their public

key, #but how do I specify my private key? Also this makes a shared

secret (I #think that is what it is doing) that is under 256 bits but

with my #elliptic curve set at what it is I would think the shared

secret would be #slightly over 256 bits…

also any help to clarify ruby openssl ecc is appreciated the

documentation is extremely lacking and I start to get it figured out but

it is much harder than the using ruby RSA or any of the symmetric

algorithms, and also much less documented (these things are related)

thanks!