Class: Fernet::Generator

Inherits:
Object
  • Object
show all
Defined in:
lib/fernet/generator.rb

Overview

Internal: Generates Fernet tokens

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts) ⇒ Generator

Internal: Initializes a generator

opts - a hash containing the following keys:

  • secret - a string containing a secret, optionally Base64 encoded

  • message - the message



17
18
19
20
21
22
# File 'lib/fernet/generator.rb', line 17

def initialize(opts)
  @secret  = opts.fetch(:secret)
  @message = opts[:message]
  @iv      = opts[:iv]
  @now     = opts[:now]
end

Instance Attribute Details

#messageObject

Internal: Returns the token’s message



10
11
12
# File 'lib/fernet/generator.rb', line 10

def message
  @message
end

Instance Method Details

#data=(message) ⇒ Object

Deprecated: used to set the message



58
59
60
61
# File 'lib/fernet/generator.rb', line 58

def data=(message)
  puts "[WARNING] 'data=' is deprecated, use 'message=' instead"
  @message = message
end

#generate {|_self| ... } ⇒ Object

Internal: generates a secret token

Yields itself, useful for setting or overriding the message

Examples

generator = Generator.new(secret: some_secret)
token = generator.generate do |g|
  g.message = 'this is my message'
end

generator = Generator.new(secret: some_secret,
                          message: 'this is my message')
token = generator.generate

Returns the token as a string

Yields:

  • (_self)

Yield Parameters:



40
41
42
43
44
45
46
47
48
# File 'lib/fernet/generator.rb', line 40

def generate
  yield self if block_given?

  token = Token.generate(secret:  @secret,
                         message: @message,
                         iv:      @iv,
                         now:     @now)
  token.to_s
end

#inspectObject Also known as: to_s

Public: string representation of this generator, masks secret to avoid

leaks


52
53
54
# File 'lib/fernet/generator.rb', line 52

def inspect
  "#<Fernet::Generator @secret=[masked] @message=#{@message.inspect}>"
end