Class: Noise::Functions::DH::ED25519

Inherits:
Object
  • Object
show all
Defined in:
lib/noise/functions/dh/ed25519.rb

Constant Summary collapse

DHLEN =
32

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.from_private(private_key) ⇒ Object



23
24
25
26
# File 'lib/noise/functions/dh/ed25519.rb', line 23

def self.from_private(private_key)
  public_key = RbNaCl::GroupElements::Curve25519.base.mult(private_key)
  Noise::Key.new(private_key, public_key.to_bytes)
end

Instance Method Details

#dh(private_key, public_key) ⇒ Object



15
16
17
# File 'lib/noise/functions/dh/ed25519.rb', line 15

def dh(private_key, public_key)
  RbNaCl::GroupElement.new(public_key).mult(private_key).to_bytes
end

#dhlenObject



19
20
21
# File 'lib/noise/functions/dh/ed25519.rb', line 19

def dhlen
  DHLEN
end

#generate_keypairObject



8
9
10
11
12
13
# File 'lib/noise/functions/dh/ed25519.rb', line 8

def generate_keypair
  private_key = 1 + SecureRandom.random_number(RbNaCl::GroupElement::STANDARD_GROUP_ORDER - 1)
  scalar_as_string = ECDSA::Format::IntegerOctetString.encode(private_key, 32)
  public_key = RbNaCl::GroupElements::Curve25519.base.mult(scalar_as_string)
  Noise::Key.new(ECDSA::Format::IntegerOctetString.encode(private_key, 32), public_key.to_bytes)
end