NAME

XML::Enc - XML::Enc Encryption Support

VERSION

version 0.02

SYNOPSIS

my $decrypter = XML::Enc->new(
                            {
                                key                         => 't/sign-private.pem',
                                no_xml_declaration          => 1,
                                force_element_to_content    => 0,
                            },
                        );
$decrypted = $enc->decrypt($xml);

my $encrypter = XML::Enc->new(
                            {
                                cert                => 't/sign-certonly.pem',
                                no_xml_declaration  => 1,
                                data_enc_method     => 'aes256-cbc',
                                key_transport       => 'rsa-1_5',

                            },
                        );
$encrypted = $enc->encrypt($xml);

NAME

XML::Enc - XML Encryption

METHODS

new( ... )

Constructor. Creates an instance of the XML::Enc object

Arguments:

key

Filename of the private key to be used for decryption.

cert

Filename of the public key to be used for encryption.

no_xml_declaration

Do not return the XML declaration if true (1). Return it if false (0). This is useful for decrypting documents without the declaration such as SAML2 Responses.

data_enc_method

Specify the data encryption method to be used. Supported methods are:

Used in encryption. Optional. Default method: aes256-cbc

key_transport

Specify the encryption method to be used for key transport. Supported methods are:

Used in encryption. Optional. Default method: rsa-1_5

force_element_to_content

Used for decryption to treat an Element EncryptedData type as Content if the decrypted data is not XML. xmlsec appears to have a bug where it uses the Element EncryptedData type in order to encrypt what is actually Content. Strangely it appears to have no issue decrypting the data if the Type is changed to Content

decrypt( ... )

Main decryption function.

Arguments:

xml

XML containing the encrypted data.

encrypt( ... )

Main encryption function.

Arguments:

xml

XML containing the plaintext data.

AUTHOR

Timothy Legge <timlegge@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2022 by TImothy Legge.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.