class Digitalbits::KeyPair
Public Class Methods
new(public_key, secret_key = nil)
click to toggle source
@param [RbNaCl::VerifyKey] public_key
@param [RbNaCl::SigningKey, nil] secret_key
# File lib/digitalbits/key_pair.rb, line 45 def initialize(public_key, secret_key = nil) @public_key = public_key @secret_key = secret_key end
Public Instance Methods
account_id()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 58 def account_id Digitalbits::AccountID.new :public_key_type_ed25519, raw_public_key end
address()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 50 def address Util::StrKey.check_encode(:account_id, raw_public_key) end
muxed_account()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 62 def muxed_account Digitalbits::MuxedAccount.new :key_type_ed25519, raw_public_key end
public_key()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 66 def public_key Digitalbits::PublicKey.new :public_key_type_ed25519, raw_public_key end
raw_public_key()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 79 def raw_public_key @public_key.to_bytes end
raw_seed()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 83 def raw_seed raise "no private key" if @secret_key.nil? @secret_key.to_bytes end
rbnacl_signing_key()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 88 def rbnacl_signing_key @secret_key end
rbnacl_verify_key()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 92 def rbnacl_verify_key @public_key end
seed()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 54 def seed Util::StrKey.check_encode(:seed, raw_seed) end
sign(message)
click to toggle source
# File lib/digitalbits/key_pair.rb, line 100 def sign(message) raise NotImplementedError, "no private key, signing is not available" unless sign? @secret_key.sign(message) end
sign?()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 96 def sign? !@secret_key.nil? end
sign_decorated(message)
click to toggle source
# File lib/digitalbits/key_pair.rb, line 106 def sign_decorated(message) raw_signature = sign(message) Digitalbits::DecoratedSignature.new({ hint: signature_hint, signature: raw_signature }) end
signature_hint()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 74 def signature_hint # take last 4 bytes account_id.to_xdr.slice(-4, 4) end
signer_key()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 70 def signer_key Digitalbits::SignerKey.new :signer_key_type_ed25519, raw_public_key end
to_keypair()
click to toggle source
# File lib/digitalbits/key_pair.rb, line 122 def to_keypair self end
verify(signature, message)
click to toggle source
# File lib/digitalbits/key_pair.rb, line 114 def verify(signature, message) @public_key.verify(signature, message) rescue RbNaCl::LengthError false rescue RbNaCl::BadSignatureError false end