lib/nostr/private_key.rb
# frozen_string_literal: true
module Nostr
# 32-bytes lowercase hex-encoded private key
class PrivateKey < Key
# Human-readable part of the Bech32 encoded address
#
# @api private
#
# @return [String] The human-readable part of the Bech32 encoded address
#
def self.hrp
'nsec'
end
private
# Validates the hex value of the private key
#
# @api private
#
# @param [String] hex_value The private key in hex format
#
# @raise InvalidKeyTypeError when the private key is not a string
# @raise InvalidKeyLengthError when the private key's length is not 64 characters
# @raise InvalidKeyFormatError when the private key is in an invalid format
#
# @return [void]
#
def validate_hex_value(hex_value)
raise InvalidKeyTypeError, 'private' unless hex_value.is_a?(String)
raise InvalidKeyLengthError, 'private' unless hex_value.size == Key::LENGTH
raise InvalidKeyFormatError, 'private' unless hex_value.match(Key::FORMAT)
end
end
end