Sha256: 865d3aa2c7fdc451d9b4c0c715beb4dc1b8aa8ad7e0e9f06b48d6b73d27dedfa
Contents?: true
Size: 933 Bytes
Versions: 2
Compression:
Stored size: 933 Bytes
Contents
# frozen_string_literal: true require "securerandom" module Ed25519 # Private key for producing digital signatures class SigningKey attr_reader :seed, :keypair, :verify_key # Generate a random Ed25519 signing key (i.e. private scalar) def self.generate new SecureRandom.random_bytes(Ed25519::KEY_SIZE) end # Create a new Ed25519::SigningKey from the given seed value # # @param seed [String] 32-byte seed value from which the key should be derived def initialize(seed) raise ArgumentError, "seed must be #{KEY_SIZE}-bytes long" unless seed.length == KEY_SIZE @seed = seed @keypair = Ed25519.provider.create_keypair(seed) @verify_key = VerifyKey.new(@keypair[32, 32]) end def sign(message) Ed25519.provider.sign(@keypair, message) end def inspect to_s end def to_bytes seed end alias to_str to_bytes end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ed25519-1.0.0-jruby | lib/ed25519/signing_key.rb |
ed25519-1.0.0 | lib/ed25519/signing_key.rb |