From 5c105d9f3fd086aff195d3849dcf847d6b0bd927 Mon Sep 17 00:00:00 2001 From: blogic Date: Fri, 5 Oct 2012 10:12:53 +0000 Subject: branch Attitude Adjustment git-svn-id: svn://svn.openwrt.org/openwrt/branches/attitude_adjustment@33625 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/openssl/Config.in | 13 ++ package/openssl/Makefile | 179 +++++++++++++++++++++ .../openssl/patches/110-optimize-for-size.patch | 13 ++ package/openssl/patches/130-perl-path.patch | 64 ++++++++ package/openssl/patches/140-makefile-dirs.patch | 11 ++ package/openssl/patches/150-no_engines.patch | 81 ++++++++++ .../openssl/patches/160-disable_doc_tests.patch | 58 +++++++ package/openssl/patches/170-bash_path.patch | 8 + .../openssl/patches/180-fix_link_segfault.patch | 18 +++ .../patches/190-remove_timestamp_check.patch | 23 +++ package/openssl/patches/200-etrax_support.patch | 13 ++ package/openssl/patches/210-fix_aes_mips.patch | 64 ++++++++ 12 files changed, 545 insertions(+) create mode 100644 package/openssl/Config.in create mode 100644 package/openssl/Makefile create mode 100644 package/openssl/patches/110-optimize-for-size.patch create mode 100644 package/openssl/patches/130-perl-path.patch create mode 100644 package/openssl/patches/140-makefile-dirs.patch create mode 100644 package/openssl/patches/150-no_engines.patch create mode 100644 package/openssl/patches/160-disable_doc_tests.patch create mode 100644 package/openssl/patches/170-bash_path.patch create mode 100644 package/openssl/patches/180-fix_link_segfault.patch create mode 100644 package/openssl/patches/190-remove_timestamp_check.patch create mode 100644 package/openssl/patches/200-etrax_support.patch create mode 100644 package/openssl/patches/210-fix_aes_mips.patch (limited to 'package/openssl') diff --git a/package/openssl/Config.in b/package/openssl/Config.in new file mode 100644 index 000000000..11591de04 --- /dev/null +++ b/package/openssl/Config.in @@ -0,0 +1,13 @@ +menu "Configuration" + depends on PACKAGE_libopenssl + +config OPENSSL_ENGINE_CRYPTO + bool + prompt "Crypto acceleration support" + +config OPENSSL_ENGINE_DIGEST + bool + depends OPENSSL_ENGINE_CRYPTO + prompt "Digests acceleration support" + +endmenu diff --git a/package/openssl/Makefile b/package/openssl/Makefile new file mode 100644 index 000000000..cfc3b3d92 --- /dev/null +++ b/package/openssl/Makefile @@ -0,0 +1,179 @@ +# +# Copyright (C) 2006-2012 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=openssl +PKG_VERSION:=1.0.1c +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://www.openssl.org/source/ \ + ftp://ftp.funet.fi/pub/crypt/cryptography/libs/openssl/source/ \ + ftp://ftp.webmonster.de/pub/openssl/source/ \ + ftp://ftp.sunet.se/pub/security/tools/net/openssl/source/ +PKG_MD5SUM:=ae412727c8c15b67880aef7bd2999b2e + +PKG_BUILD_DEPENDS:=ocf-crypto-headers +PKG_CONFIG_DEPENDS:=CONFIG_OPENSSL_ENGINE_CRYPTO CONFIG_OPENSSL_ENGINE_DIGEST + +include $(INCLUDE_DIR)/package.mk + +define Package/openssl/Default + TITLE:=Open source SSL toolkit + URL:=http://www.openssl.org/ +endef + +define Package/libopenssl/config +source "$(SOURCE)/Config.in" +endef + +define Package/openssl/Default/description +The OpenSSL Project is a collaborative effort to develop a robust, +commercial-grade, full-featured, and Open Source toolkit implementing the Secure +Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well +as a full-strength general purpose cryptography library. +endef + +define Package/libopenssl +$(call Package/openssl/Default) + SECTION:=libs + SUBMENU:=SSL + CATEGORY:=Libraries + DEPENDS:=+zlib + TITLE+= (libraries) + MENU:=1 +endef + +define Package/libopenssl/description +$(call Package/openssl/Default/description) +This package contains the OpenSSL shared libraries, needed by other programs. +endef + +define Package/openssl-util + $(call Package/openssl/Default) + SECTION:=utils + CATEGORY:=Utilities + DEPENDS:=+libopenssl + TITLE+= (utility) +endef + +define Package/openssl-util/conffiles +/etc/ssl/openssl.cnf +endef + +define Package/openssl-util/description +$(call Package/openssl/Default/description) +This package contains the OpenSSL command-line utility. +endef + + +OPENSSL_NO_CIPHERS:= no-idea no-md2 no-mdc2 no-rc5 no-sha0 no-smime \ + no-rmd160 no-aes192 no-ripemd no-camellia no-ans1 no-krb5 +OPENSSL_OPTIONS:= shared no-ec no-err no-hw no-threads zlib-dynamic no-sse2 + +ifdef CONFIG_OPENSSL_ENGINE_CRYPTO + OPENSSL_OPTIONS += -DHAVE_CRYPTODEV + ifdef CONFIG_OPENSSL_ENGINE_DIGEST + OPENSSL_OPTIONS += -DUSE_CRYPTODEV_DIGESTS + endif +else + OPENSSL_OPTIONS += no-engines +endif + +ifeq ($(CONFIG_x86_64),y) + OPENSSL_TARGET:=linux-x86_64 +else + OPENSSL_OPTIONS+=no-sse2 + ifeq ($(CONFIG_mips)$(CONFIG_mipsel),y) + OPENSSL_TARGET:=linux-mips-openwrt + else + OPENSSL_TARGET:=linux-generic-openwrt + OPENSSL_OPTIONS+=no-perlasm + endif +endif + +define Build/Configure + (cd $(PKG_BUILD_DIR); \ + ./Configure $(OPENSSL_TARGET) \ + --prefix=/usr \ + --openssldir=/etc/ssl \ + $(TARGET_CPPFLAGS) \ + $(TARGET_LDFLAGS) -ldl \ + -DOPENSSL_SMALL_FOOTPRINT \ + $(OPENSSL_NO_CIPHERS) \ + $(OPENSSL_OPTIONS) \ + ) +endef + +TARGET_CFLAGS += $(FPIC) + +define Build/Compile + # XXX: OpenSSL "make depend" will look for installed headers before its own, + # so remove installed stuff first + -$(SUBMAKE) -j1 clean-staging + $(MAKE) -C $(PKG_BUILD_DIR) \ + MAKEDEPPROG="$(TARGET_CROSS)gcc" \ + OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ + $(OPENSSL_MAKEFLAGS) \ + depend + $(_SINGLE)$(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC)" \ + AR="$(TARGET_CROSS)ar r" \ + RANLIB="$(TARGET_CROSS)ranlib" \ + OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ + $(OPENSSL_MAKEFLAGS) \ + all + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC)" \ + AR="$(TARGET_CROSS)ar r" \ + RANLIB="$(TARGET_CROSS)ranlib" \ + OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ + $(OPENSSL_MAKEFLAGS) \ + build-shared + # Work around openssl build bug to link libssl.so with libcrypto.so. + -rm $(PKG_BUILD_DIR)/libssl.so.*.*.* + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC)" \ + OPENWRT_OPTIMIZATION_FLAGS="$(TARGET_CFLAGS)" \ + $(OPENSSL_MAKEFLAGS) \ + do_linux-shared + $(MAKE) -C $(PKG_BUILD_DIR) \ + CC="$(TARGET_CC)" \ + INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \ + $(OPENSSL_MAKEFLAGS) \ + install +endef + +define Build/InstallDev + $(INSTALL_DIR) $(1)/usr/include + $(CP) $(PKG_INSTALL_DIR)/usr/include/openssl $(1)/usr/include/ + $(INSTALL_DIR) $(1)/usr/lib/ + $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib{crypto,ssl}.{a,so*} $(1)/usr/lib/ + $(INSTALL_DIR) $(1)/usr/lib/pkgconfig + $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/{openssl,libcrypto,libssl}.pc $(1)/usr/lib/pkgconfig/ + [ -n "$(TARGET_LDFLAGS)" ] && $(SED) 's#$(TARGET_LDFLAGS)##g' $(1)/usr/lib/pkgconfig/{openssl,libcrypto,libssl}.pc || true +endef + +define Package/libopenssl/install + $(INSTALL_DIR) $(1)/usr/lib + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libcrypto.so.* $(1)/usr/lib/ + $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/libssl.so.* $(1)/usr/lib/ +endef + +define Package/openssl-util/install + $(INSTALL_DIR) $(1)/etc/ssl + $(CP) $(PKG_INSTALL_DIR)/etc/ssl/openssl.cnf $(1)/etc/ssl/ + $(INSTALL_DIR) $(1)/etc/ssl/certs + $(INSTALL_DIR) $(1)/etc/ssl/private + chmod 0700 $(1)/etc/ssl/private + $(INSTALL_DIR) $(1)/usr/bin + $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/openssl $(1)/usr/bin/ +endef + +$(eval $(call BuildPackage,libopenssl)) +$(eval $(call BuildPackage,openssl-util)) diff --git a/package/openssl/patches/110-optimize-for-size.patch b/package/openssl/patches/110-optimize-for-size.patch new file mode 100644 index 000000000..f30101786 --- /dev/null +++ b/package/openssl/patches/110-optimize-for-size.patch @@ -0,0 +1,13 @@ +--- a/Configure ++++ b/Configure +@@ -401,6 +401,10 @@ my %table=( + "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN -DTERMIO::-D_REENTRANT:::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL:${alpha_asm}", + ++# OpenWrt targets ++"linux-mips-openwrt","gcc:-DTERMIO \$(OPENWRT_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${mips32_asm}:o32:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++"linux-generic-openwrt","gcc:-DTERMIO \$(OPENWRT_OPTIMIZATION_FLAGS) -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", ++ + # Android: linux-* but without -DTERMIO and pointers to headers and libs. + "android","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", + "android-x86","gcc:-mandroid -I\$(ANDROID_DEV)/include -B\$(ANDROID_DEV)/lib -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:".eval{my $asm=${x86_elf_asm};$asm=~s/:elf/:android/;$asm}.":dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)", diff --git a/package/openssl/patches/130-perl-path.patch b/package/openssl/patches/130-perl-path.patch new file mode 100644 index 000000000..dd4fa54d5 --- /dev/null +++ b/package/openssl/patches/130-perl-path.patch @@ -0,0 +1,64 @@ +--- a/Configure ++++ b/Configure +@@ -1,4 +1,4 @@ +-: ++#!/usr/bin/perl + eval 'exec perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + ## +--- a/tools/c_rehash.in ++++ b/tools/c_rehash.in +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl ++#!/usr/bin/perl + + + # Perl c_rehash script, scan all files in a directory +--- a/util/clean-depend.pl ++++ b/util/clean-depend.pl +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl -w ++#!/usr/bin/perl + # Clean the dependency list in a makefile of standard includes... + # Written by Ben Laurie 19 Jan 1999 + +--- a/util/mkdef.pl ++++ b/util/mkdef.pl +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl -w ++#!/usr/bin/perl + # + # generate a .def file + # +--- a/util/mkerr.pl ++++ b/util/mkerr.pl +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl -w ++#!/usr/bin/perl + + my $config = "crypto/err/openssl.ec"; + my $hprefix = "openssl/"; +--- a/util/mkstack.pl ++++ b/util/mkstack.pl +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl -w ++#!/usr/bin/perl + + # This is a utility that searches out "DECLARE_STACK_OF()" + # declarations in .h and .c files, and updates/creates/replaces +--- a/util/pod2man.pl ++++ b/util/pod2man.pl +@@ -1,4 +1,4 @@ +-: #!/usr/bin/perl-5.005 ++#!/usr/bin/perl + eval 'exec /usr/bin/perl -S $0 ${1+"$@"}' + if $running_under_some_shell; + +--- a/util/selftest.pl ++++ b/util/selftest.pl +@@ -1,4 +1,4 @@ +-#!/usr/local/bin/perl -w ++#!/usr/bin/perl + # + # Run the test suite and generate a report + # diff --git a/package/openssl/patches/140-makefile-dirs.patch b/package/openssl/patches/140-makefile-dirs.patch new file mode 100644 index 000000000..b51ca28b6 --- /dev/null +++ b/package/openssl/patches/140-makefile-dirs.patch @@ -0,0 +1,11 @@ +--- a/Makefile.org ++++ b/Makefile.org +@@ -135,7 +135,7 @@ FIPSCANLIB= + + BASEADDR= + +-DIRS= crypto ssl engines apps test tools ++DIRS= crypto ssl apps + ENGDIRS= ccgost + SHLIBDIRS= crypto ssl + diff --git a/package/openssl/patches/150-no_engines.patch b/package/openssl/patches/150-no_engines.patch new file mode 100644 index 000000000..62aacc1e4 --- /dev/null +++ b/package/openssl/patches/150-no_engines.patch @@ -0,0 +1,81 @@ +--- a/Configure ++++ b/Configure +@@ -2000,6 +2000,11 @@ EOF + close(OUT); + } + ++# ugly hack to disable engines ++if($target eq "mingwx") { ++ system("sed -e s/^LIB/XLIB/g -i engines/Makefile"); ++} ++ + print < 19 Jan 1999 + diff --git a/package/openssl/patches/180-fix_link_segfault.patch b/package/openssl/patches/180-fix_link_segfault.patch new file mode 100644 index 000000000..3e36beb49 --- /dev/null +++ b/package/openssl/patches/180-fix_link_segfault.patch @@ -0,0 +1,18 @@ +--- a/Makefile.shared ++++ b/Makefile.shared +@@ -95,7 +95,6 @@ LINK_APP= \ + LDCMD="$${LDCMD:-$(CC)}"; LDFLAGS="$${LDFLAGS:-$(CFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ +- LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${LDCMD} $${LDFLAGS} -o $${APPNAME:=$(APPNAME)} $(OBJECTS) $${LIBDEPS} ) + + LINK_SO= \ +@@ -105,7 +104,6 @@ LINK_SO= \ + SHAREDFLAGS="$${SHAREDFLAGS:-$(CFLAGS) $(SHARED_LDFLAGS)}"; \ + LIBPATH=`for x in $$LIBDEPS; do echo $$x; done | sed -e 's/^ *-L//;t' -e d | uniq`; \ + LIBPATH=`echo $$LIBPATH | sed -e 's/ /:/g'`; \ +- LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \ + $${SHAREDCMD} $${SHAREDFLAGS} \ + -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \ + $$ALLSYMSFLAGS $$SHOBJECTS $$NOALLSYMSFLAGS $$LIBDEPS \ diff --git a/package/openssl/patches/190-remove_timestamp_check.patch b/package/openssl/patches/190-remove_timestamp_check.patch new file mode 100644 index 000000000..2677b2d6f --- /dev/null +++ b/package/openssl/patches/190-remove_timestamp_check.patch @@ -0,0 +1,23 @@ +--- a/Makefile.org ++++ b/Makefile.org +@@ -184,7 +184,7 @@ WTARFILE= $(NAME)-win.tar + EXHEADER= e_os2.h + HEADER= e_os.h + +-all: Makefile build_all openssl.pc libssl.pc libcrypto.pc ++all: build_all openssl.pc libssl.pc libcrypto.pc + + # as we stick to -e, CLEARENV ensures that local variables in lower + # Makefiles remain local and variable. $${VAR+VAR} is tribute to Korn +@@ -396,11 +396,6 @@ openssl.pc: Makefile + echo 'Libs.private: $(EX_LIBS)'; \ + echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc + +-Makefile: Makefile.org Configure config +- @echo "Makefile is older than Makefile.org, Configure or config." +- @echo "Reconfigure the source tree (via './config' or 'perl Configure'), please." +- @false +- + libclean: + rm -f *.map *.so *.so.* *.dylib *.dll engines/*.so engines/*.dll engines/*.dylib *.a engines/*.a */lib */*/lib + diff --git a/package/openssl/patches/200-etrax_support.patch b/package/openssl/patches/200-etrax_support.patch new file mode 100644 index 000000000..9bd155e37 --- /dev/null +++ b/package/openssl/patches/200-etrax_support.patch @@ -0,0 +1,13 @@ +--- a/Configure ++++ b/Configure +@@ -440,6 +440,10 @@ my %table=( + "beos-x86-r5", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT:BEOS:-lbe -lnet:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:beos:beos-shared:-fPIC -DPIC:-shared:.so", + "beos-x86-bone", "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer -mcpu=pentium -Wall::-D_REENTRANT:BEOS:-lbe -lbind -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:beos:beos-shared:-fPIC:-shared:.so", + ++# cris ++"linux-cris", "\$(TARGET_CC):-DL_ENDIAN -DTERMIO -fomit-frame-pointer::-D_REENTRANT::-ldl:BN_LLONG THIRTY_TWO_BIT RC4_CHAR::::::::::::dlfcn:linux-shared:-fpic::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::", ++ ++ + #### SCO/Caldera targets. + # + # Originally we had like unixware-*, unixware-*-pentium, unixware-*-p6, etc. diff --git a/package/openssl/patches/210-fix_aes_mips.patch b/package/openssl/patches/210-fix_aes_mips.patch new file mode 100644 index 000000000..bbfc63a41 --- /dev/null +++ b/package/openssl/patches/210-fix_aes_mips.patch @@ -0,0 +1,64 @@ +--- a/crypto/aes/asm/aes-mips.pl ++++ b/crypto/aes/asm/aes-mips.pl +@@ -1036,9 +1036,9 @@ _mips_AES_set_encrypt_key: + nop + .end _mips_AES_set_encrypt_key + +-.globl AES_set_encrypt_key +-.ent AES_set_encrypt_key +-AES_set_encrypt_key: ++.globl private_AES_set_encrypt_key ++.ent private_AES_set_encrypt_key ++private_AES_set_encrypt_key: + .frame $sp,$FRAMESIZE,$ra + .mask $SAVED_REGS_MASK,-$SZREG + .set noreorder +@@ -1060,7 +1060,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # + ___ + $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification + .cplocal $Tbl +- .cpsetup $pf,$zero,AES_set_encrypt_key ++ .cpsetup $pf,$zero,private_AES_set_encrypt_key + ___ + $code.=<<___; + .set reorder +@@ -1083,7 +1083,7 @@ ___ + $code.=<<___; + jr $ra + $PTR_ADD $sp,$FRAMESIZE +-.end AES_set_encrypt_key ++.end private_AES_set_encrypt_key + ___ + + my ($head,$tail)=($inp,$bits); +@@ -1091,9 +1091,9 @@ my ($tp1,$tp2,$tp4,$tp8,$tp9,$tpb,$tpd,$ + my ($m,$x80808080,$x7f7f7f7f,$x1b1b1b1b)=($at,$t0,$t1,$t2); + $code.=<<___; + .align 5 +-.globl AES_set_decrypt_key +-.ent AES_set_decrypt_key +-AES_set_decrypt_key: ++.globl private_AES_set_decrypt_key ++.ent private_AES_set_decrypt_key ++private_AES_set_decrypt_key: + .frame $sp,$FRAMESIZE,$ra + .mask $SAVED_REGS_MASK,-$SZREG + .set noreorder +@@ -1115,7 +1115,7 @@ $code.=<<___ if ($flavour =~ /nubi/i); # + ___ + $code.=<<___ if ($flavour !~ /o32/i); # non-o32 PIC-ification + .cplocal $Tbl +- .cpsetup $pf,$zero,AES_set_decrypt_key ++ .cpsetup $pf,$zero,private_AES_set_decrypt_key + ___ + $code.=<<___; + .set reorder +@@ -1226,7 +1226,7 @@ ___ + $code.=<<___; + jr $ra + $PTR_ADD $sp,$FRAMESIZE +-.end AES_set_decrypt_key ++.end private_AES_set_decrypt_key + ___ + }}} + -- cgit v1.2.3