r19085 - in /branches/upstream/libmime-base64-urlsafe-perl: ./ current/ current/lib/ current/lib/MIME/ current/lib/MIME/Base64/ current/t/
yvesago-guest at users.alioth.debian.org
yvesago-guest at users.alioth.debian.org
Wed Apr 23 16:36:32 UTC 2008
Author: yvesago-guest
Date: Wed Apr 23 16:36:28 2008
New Revision: 19085
URL: http://svn.debian.org/wsvn/?sc=1&rev=19085
Log:
[svn-inject] Installing original source of libmime-base64-urlsafe-perl
Added:
branches/upstream/libmime-base64-urlsafe-perl/
branches/upstream/libmime-base64-urlsafe-perl/current/
branches/upstream/libmime-base64-urlsafe-perl/current/Changes
branches/upstream/libmime-base64-urlsafe-perl/current/MANIFEST
branches/upstream/libmime-base64-urlsafe-perl/current/META.yml
branches/upstream/libmime-base64-urlsafe-perl/current/Makefile.PL
branches/upstream/libmime-base64-urlsafe-perl/current/README
branches/upstream/libmime-base64-urlsafe-perl/current/lib/
branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/
branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/Base64/
branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/Base64/URLSafe.pm
branches/upstream/libmime-base64-urlsafe-perl/current/t/
branches/upstream/libmime-base64-urlsafe-perl/current/t/MIME-Base64-URLSafe.t
Added: branches/upstream/libmime-base64-urlsafe-perl/current/Changes
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/Changes?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/Changes (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/Changes Wed Apr 23 16:36:28 2008
@@ -1,0 +1,6 @@
+Revision history for Perl extension MIME::Base64::URLSafe.
+
+0.01 Wed Jan 4 18:12:39 2006
+ - original version; created by h2xs 1.23 with options
+ -A -X -n MIME::Base64::URLSafe
+
Added: branches/upstream/libmime-base64-urlsafe-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/MANIFEST?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/MANIFEST (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/MANIFEST Wed Apr 23 16:36:28 2008
@@ -1,0 +1,7 @@
+Changes
+Makefile.PL
+MANIFEST
+README
+t/MIME-Base64-URLSafe.t
+lib/MIME/Base64/URLSafe.pm
+META.yml Module meta-data (added by MakeMaker)
Added: branches/upstream/libmime-base64-urlsafe-perl/current/META.yml
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/META.yml?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/META.yml (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/META.yml Wed Apr 23 16:36:28 2008
@@ -1,0 +1,11 @@
+# http://module-build.sourceforge.net/META-spec.html
+#XXXXXXX This is a prototype!!! It will change in the future!!! XXXXX#
+name: MIME-Base64-URLSafe
+version: 0.01
+version_from: lib/MIME/Base64/URLSafe.pm
+installdirs: site
+requires:
+ MIME::Base64: 0
+
+distribution_type: module
+generated_by: ExtUtils::MakeMaker version 6.17
Added: branches/upstream/libmime-base64-urlsafe-perl/current/Makefile.PL
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/Makefile.PL?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/Makefile.PL (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/Makefile.PL Wed Apr 23 16:36:28 2008
@@ -1,0 +1,10 @@
+use ExtUtils::MakeMaker;
+
+WriteMakefile(NAME => 'MIME::Base64::URLSafe',
+ VERSION_FROM => 'lib/MIME/Base64/URLSafe.pm',
+ PREREQ_PM => { MIME::Base64 => 0 },
+ ($] >= 5.005 ?
+ (ABSTRACT_FROM => 'lib/MIME/Base64/URLSafe.pm',
+ AUTHOR => 'Kazuho Oku <kazuho ___at___ labs.cybozu.co.jp>') :
+ ()),
+ );
Added: branches/upstream/libmime-base64-urlsafe-perl/current/README
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/README?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/README (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/README Wed Apr 23 16:36:28 2008
@@ -1,0 +1,27 @@
+MIME-Base64-URLSafe version 0.01
+================================
+
+MIME::Base64::URLSafe is an URL-safe base64 encoder / decoder, compatible with python's urlsafe_b64encode / urlsafe_b64decode. The codec uses '-' and '/' instead of '+' and '/', which have special meanings when embedded in URL.
+
+INSTALLATION
+
+To install this module type the following:
+
+ perl Makefile.PL
+ make
+ make test
+ make install
+
+DEPENDENCIES
+
+This module requires these other modules and libraries:
+
+ MIME::Base64
+
+COPYRIGHT
+
+Copyright (C) 2006 Cybozu Labs, Inc.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.8.7 or,
+at your option, any later version of Perl 5 you may have available.
Added: branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/Base64/URLSafe.pm
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/Base64/URLSafe.pm?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/Base64/URLSafe.pm (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/lib/MIME/Base64/URLSafe.pm Wed Apr 23 16:36:28 2008
@@ -1,0 +1,90 @@
+package MIME::Base64::URLSafe;
+
+use strict;
+use vars qw(@ISA @EXPORT $VERSION);
+use MIME::Base64;
+
+require Exporter;
+ at ISA = qw(Exporter);
+ at EXPORT = qw(urlsafe_b64encode urlsafe_b64decode);
+
+$VERSION = '0.01';
+
+sub encode ($) {
+ my $data = encode_base64($_[0], '');
+ $data =~ tr|+/=|\-_|d;
+ $data;
+}
+
+sub decode ($) {
+ my $data = $_[0];
+ # +/ should not be handled, so convert them to invalid chars
+ # also, remove spaces (\t..\r and SP) so as to calc padding len
+ $data =~ tr|\-_\t-\x0d |+/|d;
+ my $mod4 = length($data) % 4;
+ if ($mod4) {
+ $data .= substr('====', $mod4);
+ }
+ decode_base64($data);
+}
+
+*urlsafe_b64encode = \&encode;
+*urlsafe_b64decode = \&decode;
+
+
+1;
+__END__
+
+=head1 NAME
+
+MIME::Base64::URLSafe - Perl version of Python's URL-safe base64 codec
+
+=head1 SYNOPSIS
+
+ use MIME::Base64::URLSafe;
+
+ $encoded = urlsafe_b64encode('Alladdin: open sesame');
+ $decoded = urlsafe_b64decode($encoded);
+
+=head1 DESCRIPTION
+
+This module is a perl version of python's URL-safe base64 encoder / decoder.
+
+When embedding binary data in URL, it is preferable to use base64 encoding. However, two characters ('+' and '/') used in the standard base64 encoding have special meanings in URLs, often leading to re-encoding with URL-encoding, or worse, interoperability problems.
+
+To overcome the problem, the module provides a variation of base64 codec compatible with python's urlsafe_b64encode / urlsafe_b64decode.
+
+Modification rules from base64:
+
+ use '-' and '_' instead of '+' and '/'
+ no line feeds
+ no trailing equals (=)
+
+The following functions are provided:
+
+ urlsafe_b64encode($str)
+ urlsafe_b64decode($str)
+
+If you prefer not to import these routines to your namespace, you can call them as:
+
+ use MIME::Base64::URLSafe ();
+ $encoded = MIME::Base64::URLSafe::encode($decoded);
+ $decoded = MIME::Base64::URLSafe::decode($encoded);
+
+=head1 SEE ALSO
+
+L<MIME::Base64>
+
+Fore more discussion on using base64 encoding in URL applications, see: http://en.wikipedia.org/wiki/Base64#URL_Applications
+
+=head1 AUTHOR
+
+Kazuho Oku E<lt>kazuho ___at___ labs.cybozu.co.jpE<gt>
+
+Copyright (C) 2006 Cybozu Labs, Inc.
+
+This library is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself, either Perl version 5.8.7 or,
+at your option, any later version of Perl 5 you may have available.
+
+=cut
Added: branches/upstream/libmime-base64-urlsafe-perl/current/t/MIME-Base64-URLSafe.t
URL: http://svn.debian.org/wsvn/branches/upstream/libmime-base64-urlsafe-perl/current/t/MIME-Base64-URLSafe.t?rev=19085&op=file
==============================================================================
--- branches/upstream/libmime-base64-urlsafe-perl/current/t/MIME-Base64-URLSafe.t (added)
+++ branches/upstream/libmime-base64-urlsafe-perl/current/t/MIME-Base64-URLSafe.t Wed Apr 23 16:36:28 2008
@@ -1,0 +1,49 @@
+use strict;
+
+use Test::More tests => 17;
+
+BEGIN { use_ok('MIME::Base64::URLSafe') };
+
+
+my ($o, $e);
+
+
+# normal case test
+
+$o = "\0\0\0\0";
+$e = 'AAAAAA';
+is(urlsafe_b64encode($o), $e);
+is(urlsafe_b64decode($e), $o);
+
+$o = "\xff";
+$e = '_w';
+is(urlsafe_b64encode($o), $e);
+is(urlsafe_b64decode($e), $o);
+
+$o = "\xff\xff";
+$e = '__8';
+is(urlsafe_b64encode($o), $e);
+is(urlsafe_b64decode($e), $o);
+
+$o = "\xff\xff\xff";
+$e = '____';
+is(urlsafe_b64encode($o), $e);
+is(urlsafe_b64decode($e), $o);
+
+$o = "\xff\xff\xff\xff";
+$e = '_____w';
+is(urlsafe_b64encode($o), $e);
+is(urlsafe_b64decode($e), $o);
+
+$o = "\xfb";
+$e = '-w';
+is(urlsafe_b64encode($o), $e);
+is(urlsafe_b64decode($e), $o);
+
+
+# decoder padding test with spaces
+
+is(urlsafe_b64decode(" AA"), "\0");
+is(urlsafe_b64decode("\tAA"), "\0");
+is(urlsafe_b64decode("\rAA"), "\0");
+is(urlsafe_b64decode("\nAA"), "\0");
More information about the Pkg-perl-cvs-commits
mailing list