File: //lib/x86_64-linux-gnu/perl5/5.34/Crypt/SSLeay/MainContext.pm
package Crypt::SSLeay::MainContext;
# maintains a single instance of the Crypt::SSLeay::CTX class
use strict;
use Carp ();
use Exporter qw ( import );
use vars qw( @EXPORT @EXPORT_OK );
@EXPORT = ();
@EXPORT_OK = qw( main_ctx );
require Crypt::SSLeay::CTX;
# The following list is taken, with appreciation, from
# Ristic, I (2013) "OpenSSL Cookbook", Feisty Duck Ltd
# http://amzn.to/1z8rDdj
#
use constant CRYPT_SSLEAY_DEFAULT_CIPHER_LIST => join(
q{:}, qw(
kEECDH+ECDSA
kEECDH
kEDH
HIGH
+SHA
+RC4
RC4
!aNULL
!eNULL
!LOW
!3DES
!MD5
!EXP
!DSS
!PSK
!SRP
!kECDH
!CAMELLIA
)
);
sub main_ctx {
my $ctx = Crypt::SSLeay::CTX->new(
$ENV{CRYPT_SSLEAY_ALLOW_SSLv3} ? 1 : 0
);
if ($ENV{CRYPT_SSLEAY_CIPHER}) {
$ctx->set_cipher_list($ENV{CRYPT_SSLEAY_CIPHER});
}
else {
$ctx->set_cipher_list(
CRYPT_SSLEAY_DEFAULT_CIPHER_LIST
);
}
$ctx;
}
1;