summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Mozilla/CA.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Mozilla/CA.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/Mozilla/CA.pm99
1 files changed, 99 insertions, 0 deletions
diff --git a/Master/tlpkg/tlperl/lib/Mozilla/CA.pm b/Master/tlpkg/tlperl/lib/Mozilla/CA.pm
new file mode 100644
index 00000000000..050a494718b
--- /dev/null
+++ b/Master/tlpkg/tlperl/lib/Mozilla/CA.pm
@@ -0,0 +1,99 @@
+package Mozilla::CA;
+
+use strict;
+our $VERSION = '20141217';
+
+use Cwd ();
+use File::Spec ();
+use File::Basename qw(dirname);
+
+sub SSL_ca_file {
+ my $file = File::Spec->catfile(dirname(__FILE__), "CA", "cacert.pem");
+ if (!File::Spec->file_name_is_absolute($file)) {
+ $file = File::Spec->catfile(Cwd::cwd(), $file);
+ }
+ return $file;
+}
+
+1;
+
+__END__
+
+=head1 NAME
+
+Mozilla::CA - Mozilla's CA cert bundle in PEM format
+
+=head1 SYNOPSIS
+
+ use IO::Socket::SSL;
+ use Mozilla::CA;
+
+ my $host = "www.paypal.com";
+ my $client = IO::Socket::SSL->new(
+ PeerHost => "$host:443",
+ SSL_verify_mode => 0x02,
+ SSL_ca_file => Mozilla::CA::SSL_ca_file(),
+ )
+ || die "Can't connect: $@";
+
+ $client->verify_hostname($host, "http")
+ || die "hostname verification failure";
+
+=head1 DESCRIPTION
+
+Mozilla::CA provides a copy of Mozilla's bundle of Certificate Authority
+certificates in a form that can be consumed by modules and libraries
+based on OpenSSL.
+
+The module provide a single function:
+
+=over
+
+=item SSL_ca_file()
+
+Returns the absolute path to the Mozilla's CA cert bundle PEM file.
+
+=back
+
+=head1 SEE ALSO
+
+L<http://curl.haxx.se/docs/caextract.html>
+
+=head1 LICENSE
+
+For the bundled Mozilla CA PEM file the following applies:
+
+=over
+
+The contents of this file are subject to the Mozilla Public License Version
+1.1 (the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+http://www.mozilla.org/MPL/
+
+Software distributed under the License is distributed on an "AS IS" basis,
+WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+for the specific language governing rights and limitations under the
+License.
+
+The Original Code is the Netscape security libraries.
+
+The Initial Developer of the Original Code is
+Netscape Communications Corporation.
+Portions created by the Initial Developer are Copyright (C) 1994-2000
+the Initial Developer. All Rights Reserved.
+
+Alternatively, the contents of this file may be used under the terms of
+either the GNU General Public License Version 2 or later (the "GPL"), or
+the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+in which case the provisions of the GPL or the LGPL are applicable instead
+of those above. If you wish to allow use of your version of this file only
+under the terms of either the GPL or the LGPL, and not to allow others to
+use your version of this file under the terms of the MPL, indicate your
+decision by deleting the provisions above and replace them with the notice
+and other provisions required by the GPL or the LGPL. If you do not delete
+the provisions above, a recipient may use your version of this file under
+the terms of any one of the MPL, the GPL or the LGPL.
+
+=back
+
+The Mozilla::CA distribution itself is available under the same license.