Module: Fernet
- Defined in:
- lib/fernet.rb,
lib/fernet/token.rb,
lib/fernet/errors.rb,
lib/fernet/secret.rb,
lib/fernet/version.rb,
lib/fernet/verifier.rb,
lib/fernet/generator.rb,
lib/fernet/encryption.rb,
lib/fernet/bit_packing.rb,
lib/fernet/configuration.rb
Defined Under Namespace
Modules: BitPacking, Encryption Classes: Configuration, Error, Generator, Secret, Token, Verifier
Constant Summary collapse
- VERSION =
"2.1"
Class Method Summary collapse
-
.generate(secret, message = '', opts = {}) ⇒ Object
Public: generates a fernet token.
-
.verifier(secret, token, opts = {}) ⇒ Object
Public: verifies a fernet token.
Class Method Details
.generate(secret, message = '', opts = {}) ⇒ Object
Public: generates a fernet token
secret - a base64 encoded, 32 byte string message - the message being secured in plain text
Examples
secret = ...
token = Fernet.generate(secret, 'my secrets')
Returns the fernet token as a string
25 26 27 28 |
# File 'lib/fernet.rb', line 25 def self.generate(secret, = '', opts = {}) Generator.new(opts.merge({secret: secret, message: })). generate end |
.verifier(secret, token, opts = {}) ⇒ Object
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
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. # original message in plain text
end
verifier = Fernet.verifier(secret, old_token)
if verifier.valid?
verifier.
else
verifier.errors
# => { issued_timestamp: "is too far in the past: token expired" }
verifier.
# => ["issued_timestamp is too far in the past: token expired"]
end
verifier = Fernet.verifier(secret, old_token)
verifier.
# => raises Fernet::Token::InvalidToken if token too old or invalid
Returns a verifier object, which responds to ‘#valid?` and `#message`
67 68 69 |
# File 'lib/fernet.rb', line 67 def self.verifier(secret, token, opts = {}) Verifier.new(opts.merge({secret: secret, token: token})) end |