Sha256: 956e8bb60b4427b5cea69a259d5f589f7b706558d688ac187b26e6b870295b78

Contents?: true

Size: 513 Bytes

Versions: 16

Compression:

Stored size: 513 Bytes

Contents

# frozen_string_literal: true

module PKCE
  # Encodes Proof Key for Code Exchange (PKCE) codes for authorization.
  class Encoder
    def initialize code: Code, verifier: Verifier.new, challenger: Challenger.new
      @code = code
      @verifier = verifier
      @challenger = challenger
    end

    def call length: Verifier::MAX
      verifier.call(length:).fmap { |value| code[challenge: challenger.call(value), verify: value] }
    end

    private

    attr_reader :code, :verifier, :challenger
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

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