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