Class: Xmlenc::Builder::EncryptedData
Constant Summary
collapse
- ALGORITHMS =
{
'http://www.w3.org/2001/04/xmlenc#tripledes-cbc' => Algorithms::DES3CBC,
'http://www.w3.org/2001/04/xmlenc#aes128-cbc' => Algorithms::AESCBC[128],
'http://www.w3.org/2001/04/xmlenc#aes256-cbc' => Algorithms::AESCBC[256]
}
- TYPES =
{
'http://www.w3.org/2001/04/xmlenc#Element' => :element,
'http://www.w3.org/2001/04/xmlenc#Content' => :content,
}
Instance Method Summary
collapse
#set_encryption_method, #set_key_name
Constructor Details
Returns a new instance of EncryptedData.
26
27
28
29
30
31
32
33
34
|
# File 'lib/xmlenc/builder/encrypted_data.rb', line 26
def initialize(*args)
options = args.
if options.key?(:id)
self.id = options.delete(:id)
else
self.id = SecureRandom.hex(5)
end
super(*(args << options))
end
|
Instance Method Details
#encrypt(data, key_options = {}) ⇒ Object
36
37
38
39
40
41
42
43
44
|
# File 'lib/xmlenc/builder/encrypted_data.rb', line 36
def encrypt(data, key_options = {})
encryptor = algorithm.setup
encrypted = encryptor.encrypt(data, :node => encryption_method)
cipher_data.cipher_value = Base64.encode64(encrypted)
key_params = { :data => encryptor.key }
encrypted_key = EncryptedKey.new(key_params.merge(key_options))
encrypted_key.add_data_reference(id)
encrypted_key
end
|
#set_key_retrieval_method(retrieval_method) ⇒ Object
46
47
48
49
50
51
|
# File 'lib/xmlenc/builder/encrypted_data.rb', line 46
def set_key_retrieval_method(retrieval_method)
if retrieval_method
self.key_info ||= KeyInfo.new
self.key_info.retrieval_method = retrieval_method
end
end
|
#type ⇒ Object
22
23
24
|
# File 'lib/xmlenc/builder/encrypted_data.rb', line 22
def type
'http://www.w3.org/2001/04/xmlenc#Element'
end
|