NAME

XML::Enc - XML::Enc Encryption Support

VERSION

version 0.15

SYNOPSIS

my $decrypter = XML::Enc->new(
    {
        key                => 't/sign-private.pem',
        no_xml_declaration => 1,
    },
);
$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-oaep-mgf1p

oaep_mgf_alg

Specify the Algorithm to be used for rsa-oaep. Supported algorithms are:

Used in encryption. Optional. Default method: mgf1sha1

oaep_params

Specify the OAEPparams value to use as part of the mask generation function (MGF). It is optional but can be specified for rsa-oaep and rsa-oaep-mgf1p EncryptionMethods.

It is base64 encoded and stored in the XML as OAEPparams.

If specified you MAY specify the oaep_label_hash that should be used. You should note that not all implementations support an oaep_label_hash that differs from that of the MGF specified in the xenc11:MGF element or the default MGF1 with SHA1.

The oaep_label_hash is stored in the DigestMethod child element of the EncryptionMethod.

oaep_label_hash

Specify the Hash Algorithm to use for the rsa-oaep label as specified by oaep_params.

The default is sha1. Supported algorithms are:

key_name

Specify a key name to add to the KeyName element. If it is not specified then no KeyName element is added to the KeyInfo

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) 2024 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.