Sha256: ac7e52066f2aeef7a0f1e0605f74ed926ee588358eec09181d905e0011457895

Contents?: true

Size: 593 Bytes

Versions: 2

Compression:

Stored size: 593 Bytes

Contents

require 'jwe/alg/a128_kw'
require 'jwe/alg/a192_kw'
require 'jwe/alg/a256_kw'
require 'jwe/alg/dir'
require 'jwe/alg/rsa_oaep'
require 'jwe/alg/rsa15'

module JWE
  # Key encryption algorithms namespace
  module Alg
    def self.for(alg)
      const_get(JWE.param_to_class_name(alg))
    rescue NameError
      raise NotImplementedError.new("Unsupported alg type: #{alg}")
    end

    def self.encrypt_cek(alg, key, cek)
      self.for(alg).new(key).encrypt(cek)
    end

    def self.decrypt_cek(alg, key, encrypted_cek)
      self.for(alg).new(key).decrypt(encrypted_cek)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
jwe-0.4.0 lib/jwe/alg.rb
jwe-0.3.1 lib/jwe/alg.rb