Commit 8e2154a

mokha <mo@mokhan.ca>
2019-01-25 23:07:30
start to deprecate the encryption class
1 parent 70ed388
Changed files (1)
lib
lib/xml/kit/encryption.rb
@@ -2,9 +2,8 @@
 
 module Xml
   module Kit
-    class Encryption
+    class Encryption < EncryptedData
       attr_reader :asymmetric_algorithm
-      attr_reader :asymmetric_cipher_value
       attr_reader :symmetric_algorithm
       attr_reader :symmetric_cipher_value
       attr_reader :key_info
@@ -17,19 +16,15 @@ module Xml
         key_info: nil
       )
         @symmetric_algorithm = symmetric_algorithm
-        symmetric_cipher = symmetric(symmetric_algorithm)
-        @symmetric_cipher_value = Base64.strict_encode64(symmetric_cipher.encrypt(raw_xml))
-
         @asymmetric_algorithm = asymmetric_algorithm
-        @key_info = key_info || create_key_info_for(public_key, symmetric_cipher, asymmetric_algorithm)
-      end
-
-      def to_xml(xml: ::Builder::XmlMarkup.new)
-        ::Xml::Kit::Template.new(self).to_xml(xml: xml)
-      end
-
-      def render(model, options)
-        ::Xml::Kit::Template.new(model).to_xml(options)
+        ::Xml::Kit.deprecate('Xml::Kit::Encryption is deprecated. Use Xml::Kit::EncryptedData instead.')
+
+        super(
+          raw_xml,
+          symmetric_cipher: symmetric(symmetric_algorithm),
+          asymmetric_cipher: asymmetric(asymmetric_algorithm, public_key),
+          key_info: key_info
+        )
       end
 
       private
@@ -40,14 +35,6 @@ module Xml
         ::Xml::Kit::Crypto::SymmetricCipher.new(algorithm)
       end
 
-      def create_key_info_for(public_key, symmetric_cipher, asymmetric_algorithm)
-        asymmetric_cipher = asymmetric(asymmetric_algorithm, public_key)
-        KeyInfo.new do |x|
-          x.encrypted_key = EncryptedKey.new(asymmetric_cipher: asymmetric_cipher, symmetric_cipher: symmetric_cipher)
-          @asymmetric_cipher_value = x.encrypted_key.cipher_value
-        end
-      end
-
       def asymmetric(algorithm, public_key)
         return algorithm unless algorithm.is_a?(String)