Sha256: 14a8f1e4ae2ea55c9e2923eda2e947f1f3080514d185faeaf459460fcea8d0b8
Contents?: true
Size: 1.42 KB
Versions: 2
Compression:
Stored size: 1.42 KB
Contents
# typed: true # frozen_string_literal: true module Paseto class PaserkTypes < T::Enum extend T::Sig enums do K3Local = new('k3.local') K3Secret = new('k3.secret') K3Public = new('k3.public') K3LocalWrap = new('k3.local-wrap') K3SecretWrap = new('k3.secret-wrap') K3LocalPBKW = new('k3.local-pw') K3SecretPBKW = new('k3.secret-pw') K4Local = new('k4.local') K4Secret = new('k4.secret') K4Public = new('k4.public') K4LocalWrap = new('k4.local-wrap') K4SecretWrap = new('k4.secret-wrap') K4LocalPBKW = new('k4.local-pw') K4SecretPBKW = new('k4.secret-pw') end sig { params(input: String).returns(Interface::Key) } def generate(input) # rubocop:disable Metrics/MethodLength case self in K3LocalWrap | K3LocalPBKW | K3Local if input.bytesize == 32 V3::Local.new(ikm: input) in K3SecretWrap | K3SecretPBKW | K3Secret if input.bytesize == 48 V3::Public.from_scalar_bytes(input) in K3Public V3::Public.from_public_bytes(input) in K4LocalWrap | K4LocalPBKW | K4Local if Paseto.rbnacl? && input.bytesize == 32 V4::Local.new(ikm: input) in K4SecretWrap | K4SecretPBKW | K4Secret if Paseto.rbnacl? && input.bytesize == 64 V4::Public.from_keypair(input) in K4Public V4::Public.from_public_bytes(input) else raise InvalidKeyPair end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ruby-paseto-0.1.1 | lib/paseto/paserk_types.rb |
ruby-paseto-0.1.0 | lib/paseto/paserk_types.rb |