Class: SecureToken::SecureTokenService::Decryptor

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

Instance Method Summary collapse

Constructor Details

#initialize(serializer) ⇒ Decryptor



96
97
98
# File 'lib/secure_token.rb', line 96

def initialize(serializer)
  @serializer = serializer
end

Instance Method Details

#decrypt_and_verify(message, key_pair) ⇒ Object



100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/secure_token.rb', line 100

def decrypt_and_verify(message, key_pair)
  begin
    message = Base64.urlsafe_decode64(message)
  rescue ArgumentError
    return nil
  end

  verified = verify(message, key_pair.signing_key)
  return nil unless verified


  begin
    decrypted = decrypt(verified, key_pair.encryption_key).force_encoding('utf-8')
  rescue OpenSSL::Cipher::CipherError
    return nil
  end

  @serializer.deserialize(decrypted)
end