Sha256: be51d3d95c5688ff75c5ddaba975ad56278fe66b16769f11023c409e54563679

Contents?: true

Size: 1.38 KB

Versions: 3

Compression:

Stored size: 1.38 KB

Contents

# encoding: binary
# typed: strict
# frozen_string_literal: true

module Paseto
  module Interface
    module PIE
      extend T::Sig
      extend T::Helpers

      include Kernel

      abstract!

      module ClassMethods
        extend T::Sig
        extend T::Helpers

        interface!

        sig { abstract.params(data: String).returns({ t: String, n: String, c: String }) }
        def decode_and_split(data); end

        sig { abstract.returns(Interface::Version) }
        def protocol; end
      end

      mixes_in_class_methods(ClassMethods)

      sig { abstract.params(nonce: String).returns(String) }
      def authentication_key(nonce:); end

      sig { abstract.params(payload: String, auth_key: String).returns(String) }
      def authentication_tag(payload:, auth_key:); end

      sig { abstract.params(nonce: String, payload: String).returns(String) }
      def crypt(nonce:, payload:); end

      sig { params(data: String).returns({ t: String, n: String, c: String }) }
      def decode_and_split(data)
        self.class.decode_and_split(data)
      end

      sig { abstract.returns(String) }
      def local_header; end

      sig { abstract.returns(String) }
      def random_nonce; end

      sig { abstract.returns(String) }
      def secret_header; end

      sig(:final) { returns(Interface::Version) }
      def protocol
        self.class.protocol
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
ruby-paseto-0.1.2 lib/paseto/interface/pie.rb
ruby-paseto-0.1.1 lib/paseto/interface/pie.rb
ruby-paseto-0.1.0 lib/paseto/interface/pie.rb