lib/fernet.rb in fernet-2.0.rc1 vs lib/fernet.rb in fernet-2.0.rc2
- old
+ new
@@ -8,14 +8,59 @@
require 'fernet/configuration'
Fernet::Configuration.run
module Fernet
- def self.generate(secret, message = '', opts = {}, &block)
+ # Public: generates a fernet token
+ #
+ # secret - a base64 encoded, 32 byte string
+ # message - the message being secured in plain text
+ #
+ # Returns the fernet token as a string
+ #
+ # Examples
+ #
+ # secret = ...
+ # token = Fernet.generate(secret, 'my secrets')
+ def self.generate(secret, message = '', opts = {})
Generator.new(opts.merge({secret: secret, message: message})).
- generate(&block)
+ generate
end
+ # Public: verifies a fernet token
+ #
+ # secret - the secret used to generate the token
+ # token - the token to verify as a string
+ # opts - an optional hash containing
+ # enforce_ttl: whether to enforce TTL in this verification
+ # ttl: number of seconds token is valid
+ #
+ # Both enforce_ttl and ttl can be configured globally via Configuration
+ #
+ # Returns a verifier object, which responds to valid? and message
+ #
+ # Raises Fernet::Token::InvalidToken if token is invalid and message
+ # is attempted to be extracted
+ #
+ # Examples
+ #
+ # secret = ...
+ # token = ...
+ # verifier = Fernet.verifier(secret, old_token, enforce_ttl: false)
+ # if verifier.valid?
+ # verifier.message # original message in plain text
+ # end
+ #
+ # verifier = Fernet.verifier(secret, old_token)
+ # if verifier.valid?
+ # verifier.message
+ # else
+ # verifier.errors
+ # # -> { issued_timestamp: "is too far in the past: token expired" }
+ # verifier.error_messages
+ # # -> ["issued_timestamp is too far in the past: token expired"]
+ # end
+ #
def self.verifier(secret, token, opts = {})
Verifier.new(opts.merge({secret: secret, token: token}))
end
end