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!