class Xml::Kit::EncryptedData

An implementation of the EncryptedKey element. www.w3.org/TR/xmlenc-core1/#sec-EncryptedData

@since 0.3.0

Attributes

id[R]
key_info[R]
symmetric_cipher[R]
symmetric_cipher_value[R]

Public Class Methods

new(raw_xml, id: Id.generate, symmetric_cipher: nil, asymmetric_cipher: nil, key_info: nil) click to toggle source
# File lib/xml/kit/encrypted_data.rb, line 15
def initialize(raw_xml,
               id: Id.generate,
               symmetric_cipher: nil,
               asymmetric_cipher: nil,
               key_info: nil)
  @id = id
  @symmetric_cipher = symmetric_cipher ||
    key_info.try(:symmetric_cipher) ||
    Xml::Kit::Crypto::SymmetricCipher.new
  @symmetric_cipher_value = Base64.strict_encode64(
    @symmetric_cipher.encrypt(raw_xml)
  )
  @key_info = key_info ||
    create_key_info_for(@symmetric_cipher, asymmetric_cipher)
end

Public Instance Methods

render(model, options) click to toggle source
# File lib/xml/kit/encrypted_data.rb, line 35
def render(model, options)
  ::Xml::Kit::Template.new(model).to_xml(options)
end
to_xml(xml: ::Builder::XmlMarkup.new) click to toggle source
# File lib/xml/kit/encrypted_data.rb, line 31
def to_xml(xml: ::Builder::XmlMarkup.new)
  ::Xml::Kit::Template.new(self).to_xml(xml: xml)
end

Private Instance Methods

create_key_info_for(symmetric_cipher, asymmetric_cipher) click to toggle source
# File lib/xml/kit/encrypted_data.rb, line 41
def create_key_info_for(symmetric_cipher, asymmetric_cipher)
  KeyInfo.new do |x|
    x.encrypted_key = EncryptedKey.new(
      asymmetric_cipher: asymmetric_cipher,
      symmetric_cipher: symmetric_cipher
    )
  end
end