Module: MailMCP::Pkce

Defined in:
lib/mail_mcp/pkce.rb

Class Method Summary collapse

Class Method Details

.challenge(verifier) ⇒ Object



6
7
8
# File 'lib/mail_mcp/pkce.rb', line 6

def self.challenge(verifier)
  Base64.urlsafe_encode64(Digest::SHA256.digest(verifier), padding: false)
end

.valid?(verifier:, challenge:) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
13
14
15
16
17
# File 'lib/mail_mcp/pkce.rb', line 10

def self.valid?(verifier:, challenge:)
  expected = challenge(verifier)
  begin
    ActiveSupport::SecurityUtils.secure_compare(expected, challenge)
  rescue StandardError
    (expected == challenge)
  end
end