lib/jwe/alg.rb
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