class Ed25519::SigningKey
Private key for producing digital signatures
Attributes
keypair[R]
seed[R]
verify_key[R]
Public Class Methods
from_keypair(keypair)
click to toggle source
Create a SigningKey
from a 64-byte Ed25519
keypair (i.e. public + private)
@param keypair [String] 64-byte keypair value containing both seed + public key
# File lib/ed25519/signing_key.rb, line 18 def self.from_keypair(keypair) raise TypeError, "expected String, got #{keypair.class}" unless keypair.is_a?(String) raise ArgumentError, "expected 64-byte String, got #{keypair.bytesize}" unless keypair.bytesize == 64 new(keypair[0, KEY_SIZE]).tap do |key| raise ArgumentError, "corrupt keypair" unless keypair[KEY_SIZE, KEY_SIZE] == key.verify_key.to_bytes end end
generate()
click to toggle source
Generate a random Ed25519
signing key (i.e. private scalar)
# File lib/ed25519/signing_key.rb, line 11 def self.generate new SecureRandom.random_bytes(Ed25519::KEY_SIZE) end
new(seed)
click to toggle source
Create a new Ed25519::SigningKey
from the given seed value
@param seed [String] 32-byte seed value from which the key should be derived
# File lib/ed25519/signing_key.rb, line 30 def initialize(seed) Ed25519.validate_key_bytes(seed) @seed = seed @keypair = Ed25519.provider.create_keypair(seed) @verify_key = VerifyKey.new(@keypair[32, 32]) end
Public Instance Methods
inspect()
click to toggle source
String inspection that does not leak secret values
# File lib/ed25519/signing_key.rb, line 48 def inspect to_s end
sign(message)
click to toggle source
to_bytes()
click to toggle source
Return a bytestring representation of this signing key
@return [String] signing key converted to a bytestring
# File lib/ed25519/signing_key.rb, line 55 def to_bytes seed end
Also aliased as: to_str