Sha256: b1d2c5c403db0c332ac2e0ec88fa1d25a75bab12461922b67c357221b35b7ede

Contents?: true

Size: 411 Bytes

Versions: 20

Compression:

Stored size: 411 Bytes

Contents

# frozen_string_literal: true

require "base64"
require "digest"

module PKCE
  # Handles Proof Key for Code Exchange (PKCE) challenge.
  class Challenger
    def initialize hasher: Digest::SHA256, encoder: Base64
      @hasher = hasher
      @encoder = encoder
    end

    def call(code) = encoder.urlsafe_encode64 hasher.digest(code), padding: false

    private

    attr_reader :hasher, :encoder
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
pkce-3.0.0 lib/pkce/challenger.rb
pkce-2.8.0 lib/pkce/challenger.rb
pkce-2.7.0 lib/pkce/challenger.rb
pkce-2.6.0 lib/pkce/challenger.rb
pkce-2.5.0 lib/pkce/challenger.rb
pkce-2.4.0 lib/pkce/challenger.rb
pkce-2.3.1 lib/pkce/challenger.rb
pkce-2.2.0 lib/pkce/challenger.rb
pkce-2.1.0 lib/pkce/challenger.rb
pkce-2.0.0 lib/pkce/challenger.rb
pkce-1.0.6 lib/pkce/challenger.rb
pkce-1.0.5 lib/pkce/challenger.rb
pkce-1.0.4 lib/pkce/challenger.rb
pkce-1.0.3 lib/pkce/challenger.rb
pkce-1.0.2 lib/pkce/challenger.rb
pkce-1.0.1 lib/pkce/challenger.rb
pkce-1.0.0 lib/pkce/challenger.rb
pkce-0.2.0 lib/pkce/challenger.rb
pkce-0.1.0 lib/pkce/challenger.rb
pkce-0.0.0 lib/pkce/challenger.rb