NAME

Archive::Zip::Crypt - Unpacking of password protected archives for Archive::Zip

VERSION

Version 0.02

SYNOPSIS

This is a little hack that adds the capability to unpack password-protected archives to Archive::Zip. It adds a password() method to Archive::Zip::Member (passwords may be different for different archive members!) and overwrites a few others so they can use the decryption functionality, so it may break wit Archive::Zip versions >1.30. This is a pure Perl implementation and really slow as bit-fiddling stuff in Perl tends to be.

use Archive::Zip;
use Archive::Zip::Crypt;

my $zip = Archive::Zip->new($archive_name) or die "can't unzip";
foreach my $member_name ($zip->memberNames) {
    my $member = $zip->memberNamed($member_name);
    next if $member->isDirectory;
    $member->password($password);
    my $contents = $zip->contents($member) or die "error accessing $member_name";
}

Note: it is important to use Archive::Zip first, so Archive::Zip::Crypt can smear its bugs all over the former's namespace.

METHODS

Archive::Zip::Member::password($password)

Set the encryption password on a member if called with an argument. Always returns the current password.

AUTHOR

Matthias Bethke, <matthias at towiski.de>

BUGS

None known but highly likely to be there. Please report any bugs or feature requests to bug-archive-zip-crypt at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Archive-Zip-Crypt. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

ACKNOWLEDGEMENTS

This was written as part of a project for 1&1 Internet AG. Thanks to them for supporting OSS!

LICENSE AND COPYRIGHT

Copyright 2008-2012 Matthias Bethke.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.