lib/branca.rb in branca-ruby-1.0.0 vs lib/branca.rb in branca-ruby-1.0.1
- old
+ new
@@ -6,15 +6,15 @@
require 'branca/version'
require 'branca/exceptions'
require 'branca/decoder'
module Branca
- VERSION = 0xBA
-
class << self
- attr_writer :secret_key, :ttl
+ VERSION = 0xBA
+ attr_accessor :secret_key, :ttl
+
def encode(message, timestamp = Time.now.utc)
nonce = RbNaCl::Random.random_bytes(cipher.nonce_bytes)
header = [VERSION, timestamp.to_i].pack('C N') + nonce
ciphertext = cipher.encrypt(nonce, message, header)
@@ -37,20 +37,20 @@
def ttl
@ttl ||= ttl_default
end
def secret_key
- @secret_key ||= RbNaCl::Random.random_bytes(32)
+ @secret_key&.b || RbNaCl::Random.random_bytes(32)
end
def configure
yield self if block_given?
end
private
def cipher
- @cipher ||= RbNaCl::AEAD::XChaCha20Poly1305IETF.new(Branca.secret_key&.b)
+ @cipher ||= RbNaCl::AEAD::XChaCha20Poly1305IETF.new(secret_key)
end
def token_explode(token)
bytes = BaseX::Base62.decode(token).unpack('C C4 C24 C*')
header = bytes.shift(1 + 4 + 24)