jwt/ruby-jwe

View on GitHub
lib/jwe/alg.rb

Summary

Maintainability
A
0 mins
Test Coverage
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