Method: Scl::DH#syn

Defined in:
lib/scl/dh.rb

#syn(length: 512) ⇒ Object

:0> syn = Scl::DH.new.syn :1> ack = Scl::DH.new.ack(syn) :2> shared_key1 = Scl::DH.new.fin(syn.merge(ack))[:private] :3> shared_key2 = ack[:shared_key]



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/scl/dh.rb', line 13

def syn(length: 512)
  dh = OpenSSL::PKey::DH.new(length)
  {
    private: {
      der:         encoder.encode(dh.public_key.to_der),
      private_key: encoder.encode(dh.priv_key.to_s(16))
    },
    public: {
      der:        encoder.encode(dh.public_key.to_der),
      public_key: encoder.encode(dh.pub_key.to_s(16))
    }
  }
end