lib/xml/kit/encryption.rb in xml-kit-0.1.14 vs lib/xml/kit/encryption.rb in xml-kit-0.2.0
- old
+ new
@@ -13,26 +13,33 @@
public_key,
symmetric_algorithm: ::Xml::Kit::Crypto::SymmetricCipher::DEFAULT_ALGORITHM,
asymmetric_algorithm: ::Xml::Kit::Crypto::RsaCipher::ALGORITHM
)
@symmetric_algorithm = symmetric_algorithm
- @symmetric_cipher_value = Base64.encode64(symmetric_cipher.encrypt(raw_xml)).delete("\n")
+ symmetric_cipher = symmetric(symmetric_algorithm)
+ @symmetric_cipher_value = Base64.strict_encode64(symmetric_cipher.encrypt(raw_xml))
@asymmetric_algorithm = asymmetric_algorithm
- cipher = Crypto.cipher_for(asymmetric_algorithm, public_key)
- @asymmetric_cipher_value = Base64.encode64(cipher.encrypt(symmetric_cipher.key)).delete("\n")
+ asymmetric_cipher = asymmetric(asymmetric_algorithm, public_key)
+ @asymmetric_cipher_value = Base64.strict_encode64(asymmetric_cipher.encrypt(symmetric_cipher.key))
end
def to_xml(xml: ::Builder::XmlMarkup.new)
::Xml::Kit::Template.new(self).to_xml(xml: xml)
end
private
- def symmetric_cipher
- @symmetric_cipher ||= ::Xml::Kit::Crypto::SymmetricCipher.new(
- symmetric_algorithm
- )
+ def symmetric(algorithm)
+ return algorithm unless algorithm.is_a?(String)
+
+ ::Xml::Kit::Crypto::SymmetricCipher.new(algorithm)
+ end
+
+ def asymmetric(algorithm, public_key)
+ return algorithm unless algorithm.is_a?(String)
+
+ ::Xml::Kit::Crypto.cipher_for(algorithm, public_key)
end
end
end
end