summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen, Chih-Chia <pigfoot@gmail.com>2021-11-26 17:31:16 +0800
committerChen, Chih-Chia <pigfoot@gmail.com>2021-11-26 17:31:16 +0800
commit8e908f6a5d5994f2cf68621ed2089dcf5cc523b9 (patch)
treeeebd14891d3d1679e2fb81d89bd3ec8b3169ba32
parentRemove out-of-dated packages (diff)
downloadpigfoot-8e908f6a5d5994f2cf68621ed2089dcf5cc523b9.tar.gz
pigfoot-8e908f6a5d5994f2cf68621ed2089dcf5cc523b9.tar.bz2
pigfoot-8e908f6a5d5994f2cf68621ed2089dcf5cc523b9.zip
Remove out-of-dated packages
Signed-off-by: Chen, Chih-Chia <pigfoot@gmail.com>
-rw-r--r--app-admin/journalbeat/Manifest27
-rw-r--r--app-admin/journalbeat/files/journalbeat.confd15
-rw-r--r--app-admin/journalbeat/files/journalbeat.initd50
-rw-r--r--app-admin/journalbeat/files/journalbeat.service12
-rw-r--r--app-admin/journalbeat/journalbeat-5.5.2.ebuild64
-rw-r--r--app-admin/metricbeat/Manifest1
-rw-r--r--app-admin/metricbeat/files/metricbeat.confd15
-rw-r--r--app-admin/metricbeat/files/metricbeat.initd43
-rw-r--r--app-admin/metricbeat/files/metricbeat.service12
-rw-r--r--app-admin/metricbeat/metricbeat-6.2.4.ebuild64
-rw-r--r--app-forensics/pev/Manifest2
l---------app-forensics/pev/pev-0.80_pre20190805.ebuild1
-rw-r--r--app-forensics/pev/pev-9999.ebuild71
-rw-r--r--app-misc/motion/Manifest1
-rw-r--r--app-misc/motion/metadata.xml23
-rw-r--r--app-misc/motion/motion-0.1_pre20160411.ebuild18
-rw-r--r--dev-db/cassandra-bin/Manifest3
-rw-r--r--dev-db/cassandra-bin/cassandra-bin-2.1.5.ebuild78
-rw-r--r--dev-db/cassandra-bin/files/init59
-rw-r--r--dev-go/rice/Manifest6
-rw-r--r--dev-go/rice/rice-20170420.ebuild27
-rw-r--r--dev-libs/mtbl/Manifest1
l---------dev-libs/mtbl/mtbl-1.3.0.ebuild1
-rw-r--r--dev-libs/mtbl/mtbl-9999.ebuild41
-rw-r--r--dev-libs/openssl/Manifest17
-rwxr-xr-xdev-libs/openssl/files/gentoo.config-1.0.2165
-rw-r--r--dev-libs/openssl/files/openssl-1.0.0a-ldflags.patch29
-rw-r--r--dev-libs/openssl/files/openssl-1.0.0d-windres.patch76
-rw-r--r--dev-libs/openssl/files/openssl-1.0.1p-default-source.patch30
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2-ipv6.patch611
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch64
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch37
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2a-parallel-symlinking.patch63
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch43
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch34
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch5227
-rw-r--r--dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch318
-rw-r--r--dev-libs/openssl/metadata.xml9
-rw-r--r--dev-libs/openssl/openssl-1.0.2g-r2.ebuild264
-rw-r--r--dev-libs/openssl/openssl-1.0.2h.ebuild264
-rw-r--r--dev-util/docker-gen/Manifest1
-rw-r--r--dev-util/docker-gen/docker-gen-0.7.4.ebuild26
-rw-r--r--dev-util/msgpack-tools/Manifest1
l---------dev-util/msgpack-tools/msgpack-tools-0.6.ebuild1
-rw-r--r--dev-util/msgpack-tools/msgpack-tools-9999.ebuild41
-rw-r--r--net-analyzer/captipper/Manifest2
-rw-r--r--net-analyzer/captipper/captipper-9999.ebuild23
-rw-r--r--net-analyzer/captipper/metadata.xml9
-rw-r--r--net-p2p/bittorrent-sync/Manifest6
-rw-r--r--net-p2p/bittorrent-sync/bittorrent-sync-1.4.110.ebuild56
-rw-r--r--net-p2p/bittorrent-sync/files/btsync.conf20
-rw-r--r--net-p2p/bittorrent-sync/files/init.d/btsync44
-rw-r--r--net-p2p/bittorrent-sync/files/systemd/btsync.service13
-rw-r--r--sys-apps/go-tldr/Manifest25
-rw-r--r--sys-apps/go-tldr/go-tldr-20200320.ebuild66
-rw-r--r--sys-fs/encfs/Manifest1
-rw-r--r--sys-fs/encfs/encfs-1.9.1.ebuild34
-rw-r--r--sys-fs/fswatch/Manifest4
l---------sys-fs/fswatch/fswatch-1.8.0.ebuild1
-rw-r--r--sys-fs/fswatch/fswatch-9999.ebuild28
-rw-r--r--sys-fs/fswatch/metadata.xml9
-rw-r--r--sys-fs/mediafire-fuse/mediafire-fuse-9999.ebuild39
-rw-r--r--www-client/phantomjs/Manifest1
-rw-r--r--www-client/phantomjs/files/phantomjs-gcc5-compile-fix.patch14
-rw-r--r--www-client/phantomjs/files/phantomjs-python3-udis86-itab.patch12
-rw-r--r--www-client/phantomjs/files/qtcore-5.3.0-libressl.patch56
-rw-r--r--www-client/phantomjs/phantomjs-2.0.0-r1.ebuild86
-rw-r--r--www-client/phantomjs/phantomjs-2.1.1.ebuild79
68 files changed, 0 insertions, 8584 deletions
diff --git a/app-admin/journalbeat/Manifest b/app-admin/journalbeat/Manifest
deleted file mode 100644
index 007d20e..0000000
--- a/app-admin/journalbeat/Manifest
+++ /dev/null
@@ -1,27 +0,0 @@
-DIST github.com-Shopify-sarama-1517403.tar.gz 127157 SHA256 e2d8e87a514eb23ce52cfef5b80d3efdb52d452f4ef93de5295674e0a61771cb SHA512 59ac865e68a8470af6a8b05165f0d4820791005e1a08f576f27379a0f88cecfaf3867d2db6e762658a6b27d90ad6e6990bf3fffe0aed707f6a2194b5b4f11a4b WHIRLPOOL a092fb31d9fe3172d8c227ed3c40a39e245f8b664cbaf59152810c0a56307d978b30b7a30ace8d83037b8e8cd43e636908d40ea48562104227b1b1ef4dd7a1d8
-DIST github.com-coreos-go-systemd-d219646.tar.gz 54996 SHA256 8233ff2f6668c781a3c0d10f12d0f384fc8fc54e99eeb42f05ccf2853044c696 SHA512 f0dae7b661a01b0fc027151a30d3157fe92981d79a64cb70e5a217cbdd727f36145d1b89a045445670d4b4916656aea87bb8b73efb212d0dd37adca3b7f961c7 WHIRLPOOL ad2709805579460b1ce41ce5d07c465ffaf049adf95e04e09c516e15078e1f9fb86ebcd0baecc6b9a6a69a39430dff95f974c659c16ca5703e55368259ec4b38
-DIST github.com-coreos-pkg-459346e.tar.gz 31127 SHA256 b0caf09fa6f958235a40162cd05113bf2afb28184479adecc6fa98d44501f8a2 SHA512 ea29eee9ca30d2097724e97121b8337e796c8e6fa9b2c467d909e2bfad1244a63030d0d6ff965e17d8cc6ba94908226a8e321b064442ccbf79b6159134f0ec1d WHIRLPOOL c77465bf2bbe0c134b4dfac971526413256e640a960c500865ed40c050bf1c50350534794c295d63efb41104b7054e37facb258a7f44b2d0fd59226285b04b05
-DIST github.com-danwakefield-fnmatch-cbb64ac.tar.gz 4952 SHA256 987ea0777d772b9827ac5dd0e70f9443cec93eca3f1d0c37e93b12b0451241c4 SHA512 5904008003ac80d34581dd1d33130fef27c6a523196aafef1231a2e63c5296cd30f8c3c517090b6b4c7ebb6a57d24bb0bff10cc40876e3fa1c9e74b65bc13154 WHIRLPOOL c98488be3efc1b519ae74be1275a94461cb376b7e232ed099e9c2dc148a5260c2e4f45a05e469d3a62361596f9610c461525554e83f044bf2d2a0d207c78cf08
-DIST github.com-davecgh-go-spew-a476722.tar.gz 42483 SHA256 c503cd5eca1ecd1fe215b1f58c1efc6a7b4eb48a181e507544e2191126f554c5 SHA512 fa64c8a2055eb2866aab73d20cd5cca1c7304ea950ce3c34a0a870c28641ea12ded8f7666a61a27b6b67a48c0db2a3cc0e45615b1889ea3876a8790c2769efd6 WHIRLPOOL dd6a8fa2c5be3babd0a764040dca627c0427a15b875fac662dfe2a310fe565032494bc0785797e797d40040344ba04648c38065f4968f1f99dcbde9603874335
-DIST github.com-eapache-go-resiliency-b1fe83b.tar.gz 9581 SHA256 3039128170dc3a7c6339af3a53661056b95764abb706af35974ddcbe43fce734 SHA512 35e1a09e53e63589b12d8bae94d4441c8a6918a9951aa4296c8bd9b6514e0a58fdd23744796b6bef67e40337e358d525aad6c1a09271706c260745921276be48 WHIRLPOOL 27330f3ea68820bd16a8bc9330db43320862e63caa7d6ddaa0af6463e7357fa4a4517c72f6eb208dd7a3ba37c75ac65596f2fe8ee8223dfaf5758f185bd314c0
-DIST github.com-eapache-go-xerial-snappy-bb955e0.tar.gz 4098 SHA256 3039f325ced936ee1c112e3339f7d15cf0ad0ce922f4270824c38f763003127d SHA512 2c3547cb00a1c606f2006412931360f17d7eb1a56e3bf764941cadc899f98098d49b74d1a54abe2195bbaa16ee1530a9654ebd19306466a411b392e43408fd63 WHIRLPOOL 97ab8d263026180606da7993149f2d742d3452236c43dbde588a2bf4d46c746abb22b49a3ed613db4aae31a8bfe465a40a8d170d91bddaf8ff2ea653734f92d9
-DIST github.com-eapache-queue-44cc805.tar.gz 3504 SHA256 8d5bc1b6778852eed64f160989a9448fc97fcd52a2bd9db8afd75296d412b5df SHA512 5641abf798c2e238885f692262d5b6932c41c770f9a2a6806c764a31a14e14b99eccc59d3571a83919aaeaa619fe1f8e5e492d245c6d6d41fdc03c45d2b69670 WHIRLPOOL 9cfc237b47015be4ddac5a0df53a5bbca5d6043876d305176642e1d0efe7d144fd05d1e6662ced67fa88dfe9a1788ece7282a42d7fc4bedba73f12a3d59bdd71
-DIST github.com-elastic-beats-74bfb8f.tar.gz 18082217 SHA256 6bfeb830e6c8729332d080a47d2ce097b2c4deb7e4d1236c1cdf9151ef257737 SHA512 7166a69dc06322d03f0ce5a6c068b4d6b9da1dd19e0e93b43848bd78f1ab216eac1fe3429df51c57e8feff35ad764f1fab90ff39f7b54b78b57903b925e32049 WHIRLPOOL ed4e759792415f15dab7ceb706eff10a29cadcae8d7bb8f0d2c8befb3c347d455b3437819bed3c5db18af94430f7c2849f996c0425119a2917569f8cda329979
-DIST github.com-elastic-go-lumber-616041e.tar.gz 13910 SHA256 b519bc8965c34f02e0242800654ce35ad8d0a12a4748c779ef498baf97974e3c SHA512 be4b44ebd6411ecb7ad8382c35a840dcd71338c2041bfcd4fc545bb705da799072032ea22b4d05195065fef75a76a368a71d32937007608971644b8e783f9463 WHIRLPOOL 3ce08d3b21d3ca6663576238b0d1341e44572d36f2f55fd170503c2cc00b66a665ac17bd7f19e7f54de8b704f4442439bfd168e7bd0c9341ec1e3fd1c8ca683a
-DIST github.com-elastic-go-ucfg-ec8488a.tar.gz 50055 SHA256 d5ef05d6a4b27fe1877b5873452fa00b9fb914a7bbf438e471d2a20957d6d121 SHA512 b56e1ac065c992546f50706276adfe5e7b664f5e4887ef6c82d5775e5e577b676cbe933ac7b286982b0462867ee57ed1ef9dc23c1a1dbff202ced6eac9215227 WHIRLPOOL 40820aee1718c86d3e912dd9e0a23108d11501b7ccb07f3d5a55552504c1ee89affaafccb867954e189731b68c21351459112b4357a817335c4f5c81d3033e7d
-DIST github.com-garyburd-redigo-b925df3.tar.gz 36387 SHA256 684d82a7ba773544d7fe6bac39fab2414de24c902609cfb1820c4afb7181837e SHA512 de6796bc080ec859951541844748605561ec84458d3a143b2172cc4860406a15f36a7525d9ba8d9b1d23b68600c6a01929fa68ed80d4c643f9d6cfa0947fedcb WHIRLPOOL d29581bc61d543d0f4b6f45a1ffe0473e527310d275e7e4f73bf58175574db52dbbc01637871b37bbd46c3c222328c5890ca951e271c5a120d2b8210b9b4556c
-DIST github.com-go-yaml-yaml-eb3733d.tar.gz 64789 SHA256 2f35fb36301bdee6afa5d7ec41c8870bca370ee8300b4da157ee3336812b5c36 SHA512 9e34c34c907d1177e072eb5f3b421b8a3af0e68b490508691d745cdcf1145d9bcfd2592d909a4b05e7f12bfb62355d49861f6d2e1bd29b69cf026ef631965289 WHIRLPOOL 27c9123a8be869dbe6a15d1e69e39d511f44624fffd89aac37bf0e59c5d30f2b7932c6015fa055f3ffed9357873a2fb92c1f6522793a64b752722cd539bc2089
-DIST github.com-golang-net-66aacef.tar.gz 917754 SHA256 5140f8089da711f07bcdffd50b262cc9a6d53dc4c2ebeffd5bd6ef04d103775b SHA512 65b7d18e220e84fc588e0485f083473a91f939ec566b48d53668e337056950e1f40b19346bdbadc483dc57072096aef0508254a7148354f5234e26ac8c0063c3 WHIRLPOOL b48dd92edf0ce8cb27b57132a888b0f7ac2b7b844f62aebe072e5fa3beb9921a409c547c6fd2701f1f4ba68a580e8c5988d915cc8cbeaee62356399d3848f2f6
-DIST github.com-golang-snappy-553a641.tar.gz 62076 SHA256 2ddf0f394a8b5a83942ac351cff5c04f936e6bd6e6cecc73ce6145b9bfd4c6e7 SHA512 a324c8a7687e820f6b322930a054d1e7fc4c37bb66a95d473ef2a67fed703de90e8cc3072273ad2f9c681b1cf7ec1acc0ee9dc735ab593e23eea5cde96eea8a6 WHIRLPOOL cd942c31b7b6d084190030383c0342fbb64baada50f93f07d0cb36c412515f3f528301336d6b0f310b34181acc1f2532bad2b6eddfca245ae0d02e1cffee0656
-DIST github.com-golang-sys-9aade4d.tar.gz 766274 SHA256 3fa2c49a5d2505f636e02fb346c516aefa0824f967705a7be07e99226ed90e21 SHA512 880d5154df5269dd1b78e7845f479e6f837234a1649bdd09b1c6057afd151275cce6d85255b0c801c8635f5ca44d21705d6a4ccd94836a8ad70851ccf5b887df WHIRLPOOL c7d9129150222091cbaa1e369c2ea71750e93abe89916b27a8c89ff5292a13c67de93c5470af13bd51373eca094f59ea8460afc5826324ba8f5ca35f83b4db89
-DIST github.com-joeshaw-multierror-69b34d4.tar.gz 2165 SHA256 65401382ae65526c7371225fbdb352dd798084a41774082eccbdef42f6274be3 SHA512 a792593c2489e96ec10522daec8720dbcbe87678c4766445a34977512c24f01fea4a2dcf0974c1a1d8233e8f9ac7ed86bb92afeff5c8e9ffe1cf9279fdbedfb5 WHIRLPOOL 3d800b755981c2bfd9ac8fe50b0fbfe6d166d66e4e1241454379e42f28985e6337c3e735a1a792f38d1f0b061ecadac73636567396ffdda7891803496eefb09c
-DIST github.com-klauspost-compress-f3dce52.tar.gz 2830420 SHA256 4ed5e335ec035be765ca07429aaf114d0c5d700a916981b827a57dc3c55629e9 SHA512 ad8acefa34eec15bb211da7e791afd14e8ba27db3f92f0ea3364be23614973d62ea09bd147a0cae9173734cc8dbbc043c5f168c4ee1feda7bdb1f79e9ad1fae8 WHIRLPOOL 81307fa41039e2471cc17ac6b926ed5f60a35132a80d8a1eac4d597d645410b5265b86ba2eebc39667a1436955c4c3199ac785acd35aad9dd82f853ea9dc39d4
-DIST github.com-klauspost-cpuid-ae7887d.tar.gz 267447 SHA256 f7f07621ff9914c732557dd4fcf9e11cc3c6c5db067a374371b494083521a38b SHA512 2a2f335255f2527ba27f4855ea5fd8f000f2f1d4ab33536b3805b306cf50a5dea654336a4bee7b906e652aa386ff3aaa76a2b421d82690a49cba875cced815ea WHIRLPOOL ba902be479c692821656f6bf01c2deb07fe1ac0d8387e6368aba98832a164e8056477648ac97fe86c3ddb335c6b1489b80889423adfad0f3c40352bb596ef2d6
-DIST github.com-mitchellh-hashstructure-2bca23e.tar.gz 6461 SHA256 4b7710b5b34270df89e1a86521196142c6bafaabbf50fe663cd16c6fac7da5ea SHA512 a818ebef810eccfdca70aecc1a19208fd6f1ee454fe3677249d43ff8a5a6d462f2b947a8fe5808cfc50f7387457e65581bb2ee45012e5e0df3cae541357d70d3 WHIRLPOOL 22c141e4e068e57f5c1537f5aa2b3deb3aaf4b7cb3aa64b80dc01c3812224e9d8ed0d8e1dda20bbd682fb717c0599950a1c5a95a666f18e5f7b0ef0e724d8287
-DIST github.com-nranchev-go-libGeoIP-d6d4a9a.tar.gz 6514 SHA256 c694fd2c11bb27994b9f886059f83cfaa1dfb3adffeb4673fd6d1b7beba32726 SHA512 238c7152fbed76f93ca561db3cfd02f2d623f075ebe9d65cbb07e175461c6ac08661f6307ca49936ada19f6095a65605e51c55a5e5ec04db9e46ba1e68518502 WHIRLPOOL 57c37f55e6d9682669004865fe4302b52c3604d867c4eb6cca32cf23af98652612d4cb946eb79af2815c9f947796edb6f40ed4df8c1f91b7c444b1f9e58c37ae
-DIST github.com-pierrec-lz4-08c2793.tar.gz 12540700 SHA256 1511980f0bdeecff723aabf8097f4016e110ab6ef19ad606d085a7233e6ef95d SHA512 abac6c1b39b7bc9aad98019e4914666a43f509bb909121f66d7ffa84475995052b68f06bf3339723a9f1c8387bb4ad96d7e1157b23369db597149c313b72ebd0 WHIRLPOOL 55e515f364ef400f77a8414621a5d117d1217afe0ce246fbca9814688687009278ddb8536f7fa4067679687a51442d8a47e463829c38123b2eaf4667a8ec4f60
-DIST github.com-pierrec-xxHash-a0006b1.tar.gz 6125 SHA256 7cec56d260bc4d55071631cc82bd75eb754d95ea750e463e2082502486bab454 SHA512 66f08f1d1a7dd06b2871af16cab0b2c980f69b3641d5d03d69b0b38b8a63f42b9a9a8791bb587a5b340d2784b5e0bec75828e110c1e49a83fb0edf3e460d18b4 WHIRLPOOL 563fcb946b3c473adf30d3732912f94333b4cbd15da9f6012a917b46b952983792a61ffa3ac96f7d26a42d51967e7b2077b504f82ba3ca76c5c3c413d1ab2292
-DIST github.com-pkg-errors-c605e28.tar.gz 11479 SHA256 af223e5cafa6182b4257e4ce3089052225553fff7d9af7bf363c1cd3daf020af SHA512 3f69265840be1bfbf9b8730bbd8bede89d13712840ba9971924c9f67bb97397fd999a5ea265aa2b1282ef4de4da894709a391c91a588d128a63f3d2f222529cf WHIRLPOOL e528eaf157ba0eef0bc8f8b6b3e4b7e82df8b1754438a876766a1c0a4008314e16c5d4a7d92d9f5826c276634fbaa53999d7c8980e16f02118dade140e09e342
-DIST github.com-rcrowley-go-metrics-1f30fe9.tar.gz 34843 SHA256 709dba5f1d0e9ea221e0439186f2bd9cd029410c126d3f09f304be877013c952 SHA512 4b0390ffd6ed18dd8fa01f3379a4cfafad299ee6977b099a61114a478ff1e57020d9d616fdb75c4d2fd0bdf4a8fd8d21d7b91cd66886eed2a73761b7075eee51 WHIRLPOOL 57a44119c68b5577f0d3d6a0e8cd9bdab9279576224651aed707aeb5188c34ee08b4708c08e82fa02075d97de602aed5e30b618218e4f194bb0491684230190f
-DIST github.com-satori-go.uuid-5bf94b6.tar.gz 7605 SHA256 6e814dfce34bd53405f2f82a46afbc363c71aa4aefea1bdbbb604158d857a755 SHA512 ce66fa5f54cb373e76a92258ba4b907ded9f4163469b2e949d608df4737b10e2e428ee973c7f8ae0a997f67d5b04f34e1d05ad60c2388fbd9bceeab8877bb8e9 WHIRLPOOL 0a750753241f08bfe8768b846baa5e8afba0c9526d95cd0722eddf4ca51670de31188d49c53ef0c1b977376b4a0aa706de7d1b67ec32ff592657d859e6befb6c
-DIST journalbeat-5.5.2.tar.gz 576884 SHA256 3cc431a199226b14e318610ee5cfd08d2f3109dc9850591f73a28219c56753c9 SHA512 3ec05fa7d655efbb0ac8633ac296fc8c83732abdf08250939642bcd8ec6cd5acd2eda6726c48107e3ba3346946d4d6b838976977be9194a0b73fe2f0b463e2f7 WHIRLPOOL a8fc9cc6a11de697bfd8c45791224a01cadeef3789023c1590eeb39e758a45ff143d5a5eb2921b74d987f0d75aa00aad32992bae36be2f38aa45a3f72f8ab203
diff --git a/app-admin/journalbeat/files/journalbeat.confd b/app-admin/journalbeat/files/journalbeat.confd
deleted file mode 100644
index 935371f..0000000
--- a/app-admin/journalbeat/files/journalbeat.confd
+++ /dev/null
@@ -1,15 +0,0 @@
-# Run journalbeat under this user/group
-#JOURNALBEAT_USER=""
-#JOURNALBEAT_GROUP=""
-
-# Configuration path
-#JOURNALBEAT_CONFIG=""
-
-# Path to data directory
-#JOURNALBEAT_DATADIR=""
-
-# Path to log directory
-#JOURNALBEAT_LOGDIR=""
-
-# Additional arguments passed to journalbeat
-#JOURNALBEAT_OPTS=""
diff --git a/app-admin/journalbeat/files/journalbeat.initd b/app-admin/journalbeat/files/journalbeat.initd
deleted file mode 100644
index bef5072..0000000
--- a/app-admin/journalbeat/files/journalbeat.initd
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-JOURNALBEAT_USER="${JOURNALBEAT_USER:-root}"
-JOURNALBEAT_GROUP="${JOURNALBEAT_GROUP:-root}"
-JOURNALBEAT_CONFIG="${JOURNALBEAT_CONFIG:-/etc/journalbeat/journalbeat.yml}"
-JOURNALBEAT_DATADIR="${JOURNALBEAT_DATADIR:-/var/lib/journalbeat}"
-JOURNALBEAT_LOGDIR="${JOURNALBEAT_LOGDIR:-/var/log/journalbeat}"
-JOURNALBEAT_OPTS="${JOURNALBEAT_OPTS:-}"
-
-command="/usr/bin/journalbeat"
-command_args="-c ${JOURNALBEAT_CONFIG} ${JOURNALBEAT_OPTS} -path.config $(dirname $JOURNALBEAT_CONFIG) \
- -path.data ${JOURNALBEAT_DATADIR} -path.home ${JOURNALBEAT_DATADIR} -path.logs ${JOURNALBEAT_LOGDIR}"
-extra_commands="checkconfig"
-command_background="true"
-start_stop_daemon_args="--user ${JOURNALBEAT_USER}:${JOURNALBEAT_GROUP} \
- --chdir ${JOURNALBEAT_DATADIR}"
-pidfile="/run/journalbeat/journalbeat.pid"
-
-depend() {
- use net
- after elasticsearch
-}
-
-checkconfig() {
- if [ ! -e ${JOURNALBEAT_CONFIG} ]; then
- eend "Please create a configuration file at ${JOURNALBEAT_CONFIG}"
- return 1
- fi
-
- ebegin "Checking your configuration"
- ${command} ${command_args} -configtest
- eend $? "Configuration error. Please fix your configuration files."
-}
-
-start_pre() {
- checkconfig || return 1
-
- checkpath -d -o "${JOURNALBEAT_USER}":"${JOURNALBEAT_GROUP}" -m750 "$(dirname "${pidfile}")"
- checkpath -d -o "${JOURNALBEAT_USER}":"${JOURNALBEAT_GROUP}" -m750 "${JOURNALBEAT_DATADIR}"
- checkpath -d -o "${JOURNALBEAT_USER}":"${JOURNALBEAT_GROUP}" -m750 "${JOURNALBEAT_LOGDIR}"
-}
-
-stop() {
- ebegin "Stopping journalbeat"
- start-stop-daemon --stop \
- --pidfile=${pidfile} \
- --retry=TERM/5/KILL/5
-}
diff --git a/app-admin/journalbeat/files/journalbeat.service b/app-admin/journalbeat/files/journalbeat.service
deleted file mode 100644
index e1e7aee..0000000
--- a/app-admin/journalbeat/files/journalbeat.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Journalbeat Service
-After=network.target
-
-[Service]
-Restart=always
-RemainAfterExit=yes
-WorkingDirectory=/var/log/journalbeat
-ExecStart=/usr/bin/journalbeat -c /etc/journalbeat/journalbeat.yml -path.config /etc/journalbeat -path.data /var/lib/journalbeat -path.home /var/lib/journalbeat -path.logs /var/log/journalbeat
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-admin/journalbeat/journalbeat-5.5.2.ebuild b/app-admin/journalbeat/journalbeat-5.5.2.ebuild
deleted file mode 100644
index 5a01540..0000000
--- a/app-admin/journalbeat/journalbeat-5.5.2.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-GOLANG_PKG_IMPORTPATH="github.com/mheese"
-GOLANG_PKG_USE_CGO=1
-GOLANG_PKG_ARCHIVEPREFIX="v"
-
-GOLANG_PKG_DEPENDENCIES=(
- "github.com/Shopify/sarama:1517403"
- "github.com/coreos/go-systemd:d219646"
- "github.com/coreos/pkg:459346e"
- "github.com/danwakefield/fnmatch:cbb64ac"
- "github.com/davecgh/go-spew:a476722"
- "github.com/eapache/go-resiliency:b1fe83b"
- "github.com/eapache/go-xerial-snappy:bb955e0"
- "github.com/eapache/queue:44cc805"
- "github.com/elastic/beats:74bfb8f"
- "github.com/elastic/go-lumber:616041e"
- "github.com/elastic/go-ucfg:ec8488a"
- "github.com/garyburd/redigo:b925df3"
- "github.com/golang/snappy:553a641"
- "github.com/joeshaw/multierror:69b34d4"
- "github.com/klauspost/compress:f3dce52"
- "github.com/klauspost/cpuid:ae7887d"
- "github.com/mitchellh/hashstructure:2bca23e"
- "github.com/nranchev/go-libGeoIP:d6d4a9a"
- "github.com/pierrec/lz4:08c2793"
- "github.com/pierrec/xxHash:a0006b1"
- "github.com/pkg/errors:c605e28"
- "github.com/rcrowley/go-metrics:1f30fe9"
- "github.com/satori/go.uuid:5bf94b6"
- "github.com/golang/net:66aacef -> golang.org/x"
- "github.com/golang/sys:9aade4d -> golang.org/x"
- "github.com/go-yaml/yaml:eb3733d -> gopkg.in/yaml.v2"
-)
-
-inherit systemd golang-single
-
-DESCRIPTION="Journalbeat is a log shipper from systemd/journald to Logstash/Elasticsearch"
-HOMEPAGE="https://github.com/mheese/journalbeat"
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~arm"
-
-src_install() {
- # Install the package
- golang-single_src_install
-
- keepdir /var/{lib,log}/${PN}
-
- fperms 0750 /var/{lib,log}/${PN}
-
- # Install systemd/init.d services
- systemd_dounit "${FILESDIR}/${PN}.service"
- newinitd "${FILESDIR}/${PN}.initd" ${PN}
- newconfd "${FILESDIR}/${PN}.confd" ${PN}
-
- insinto "/etc/${PN}"
- doins etc/journalbeat.yml
-
- doexe "${GOBIN}"/*
-}
diff --git a/app-admin/metricbeat/Manifest b/app-admin/metricbeat/Manifest
deleted file mode 100644
index 5926eff..0000000
--- a/app-admin/metricbeat/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST metricbeat-6.2.4.tar.gz 19466271 BLAKE2B 417f1db19b7fdd9bcf66f2c3dcdf2aaa6be9ba5edff1c97a0b8f4a5d7953ef27bcbd860e097fb40e67b3b42b795b684dabb2995eee572243831f749a7184b625 SHA512 49293e28e4ca769a88f7b889ea888a559ae7e142698714e24bf5519d00c2030237cac591590aa284f17792906a6137333173716ddf5db4496217f8b5a054b19c
diff --git a/app-admin/metricbeat/files/metricbeat.confd b/app-admin/metricbeat/files/metricbeat.confd
deleted file mode 100644
index 30cbbd3..0000000
--- a/app-admin/metricbeat/files/metricbeat.confd
+++ /dev/null
@@ -1,15 +0,0 @@
-# Run metricbeat under this user/group
-#METRICBEAT_USER=""
-#METRICBEAT_GROUP=""
-
-# Configuration path
-#METRICBEAT_CONFIG=""
-
-# Path to data directory
-#METRICBEAT_DATADIR=""
-
-# Path to log directory
-#METRICBEAT_LOGDIR=""
-
-# Additional arguments passed to metricbeat
-#METRICBEAT_OPTS=""
diff --git a/app-admin/metricbeat/files/metricbeat.initd b/app-admin/metricbeat/files/metricbeat.initd
deleted file mode 100644
index 5e47a07..0000000
--- a/app-admin/metricbeat/files/metricbeat.initd
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-METRICBEAT_USER="${METRICBEAT_USER:-root}"
-METRICBEAT_GROUP="${METRICBEAT_GROUP:-root}"
-METRICBEAT_CONFIG="${METRICBEAT_CONFIG:-/etc/metricbeat/metricbeat.yml}"
-METRICBEAT_DATADIR="${METRICBEAT_DATADIR:-/var/lib/metricbeat}"
-METRICBEAT_LOGDIR="${METRICBEAT_LOGDIR:-/var/log/metricbeat}"
-METRICBEAT_OPTS="${METRICBEAT_OPTS:-}"
-
-command="/usr/bin/METRICBEAT"
-command_args="-c ${METRICBEAT_CONFIG} ${METRICBEAT_OPTS} -path.config $(dirname $METRICBEAT_CONFIG) \
- -path.data ${METRICBEAT_DATADIR} -path.home ${METRICBEAT_DATADIR} -path.logs ${METRICBEAT_LOGDIR}"
-command_background="true"
-command_user="${METRICBEAT_USER}:${METRICBEAT_GROUP}"
-extra_commands="checkconfig"
-pidfile="/run/metricbeat.pid"
-retry="TERM/5/KILL/5"
-start_stop_daemon_args="--chdir ${METRICBEAT_DATADIR}"
-
-depend() {
- use net
- after elasticsearch
-}
-
-checkconfig() {
- if [ ! -e ${METRICBEAT_CONFIG} ]; then
- eend "Please create a configuration file at ${METRICBEAT_CONFIG}"
- return 1
- fi
-
- ebegin "Checking your configuration"
- ${command} ${command_args} test config
- eend $? "Configuration error. Please fix your configuration files."
-}
-
-start_pre() {
- checkconfig || return 1
-
- checkpath -d -o "${METRICBEAT_USER}":"${METRICBEAT_GROUP}" -m750 "${METRICBEAT_DATADIR}"
- checkpath -d -o "${METRICBEAT_USER}":"${METRICBEAT_GROUP}" -m750 "${METRICBEAT_LOGDIR}"
-}
diff --git a/app-admin/metricbeat/files/metricbeat.service b/app-admin/metricbeat/files/metricbeat.service
deleted file mode 100644
index d463df7..0000000
--- a/app-admin/metricbeat/files/metricbeat.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Metricbeat Service
-After=network.target
-
-[Service]
-Restart=always
-RemainAfterExit=yes
-WorkingDirectory=/var/log/metricbeat
-ExecStart=/usr/bin/metricbeat -c /etc/metricbeat/metricbeat.yml -path.config /etc/metricbeat -path.data /var/lib/metricbeat -path.home /var/lib/metricbeat -path.logs /var/log/metricbeat
-
-[Install]
-WantedBy=multi-user.target
diff --git a/app-admin/metricbeat/metricbeat-6.2.4.ebuild b/app-admin/metricbeat/metricbeat-6.2.4.ebuild
deleted file mode 100644
index 2d64b94..0000000
--- a/app-admin/metricbeat/metricbeat-6.2.4.ebuild
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright 1999-2018 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-inherit eapi7-ver systemd
-
-DESCRIPTION="Lightweight log shipper for Logstash and Elasticsearch"
-HOMEPAGE="https://www.elastic.co/products/beats"
-SRC_URI="https://github.com/elastic/beats/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-RESTRICT="test"
-
-DEPEND=">=dev-lang/go-1.9.2"
-
-S="${WORKDIR}/src/github.com/elastic/beats"
-
-src_unpack() {
- mkdir -p "${S%/*}" || die
- default
- mv beats-${PV} "${S}" || die
-}
-
-src_compile() {
- GOPATH="${WORKDIR}" emake -C "${S}/metricbeat"
- GOPATH="${WORKDIR}" emake fields -C "${S}/metricbeat"
-}
-
-src_install() {
- keepdir /var/{lib,log}/${PN}
-
- fperms 0750 /var/{lib,log}/${PN}
-
- newconfd "${FILESDIR}/${PN}.confd" ${PN}
- newinitd "${FILESDIR}/${PN}.initd" ${PN}
- systemd_dounit "${FILESDIR}/${PN}.service"
-
- dobin metricbeat/metricbeat
-
- docinto examples
- dodoc ${PN}/{metricbeat.yml,metricbeat.reference.yml}
-
- insinto "/etc/${PN}"
- doins ${PN}/metricbeat.yml
- newins ${PN}/_meta/fields.generated.yml fields.yml
- insinto "/etc/${PN}/module"
- doins -r ${PN}/module/*
- insinto "/etc/${PN}/modules.d"
- doins -r ${PN}/modules.d/*
-}
-
-pkg_postinst() {
- if [[ -n "${REPLACING_VERSIONS}" ]]; then
- elog "Please read the migration guide at:"
- elog "https://www.elastic.co/guide/en/beats/libbeat/$(ver_cut 1-2)/upgrading.html"
- elog ""
- fi
-
- elog "Example configurations:"
- elog "${EROOT%/}/usr/share/doc/${PF}/examples"
-}
diff --git a/app-forensics/pev/Manifest b/app-forensics/pev/Manifest
deleted file mode 100644
index f5e813d..0000000
--- a/app-forensics/pev/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-DIST libpe-e1c3c43414480ebde8391cfd32aebc4c24e6622e.tar.gz 117272 BLAKE2B cea814f3b1936d2db60040a1bacd07bbbe0534c299c078460bdfb9e82fbeef50a29e2081b043e64b8bfd0e6d90d87e2b0bf9c971ec688807bac47b4e7c769f01 SHA512 110ab945cfff6b3f51b074e9c5bb805aeddeb7b253e54911787fe618065ad80956490485d9f3eab80adc97de7e5d92ebd1041ce121269819577754e8799692c1
-DIST pev-0.80_pre20190805.tar.gz 557305 BLAKE2B 9d0bc5dc04dfe274f78b910fc2ea04d078ad4ab9c650b0617bc74388e7022f8b997fb747205c2bbe8f026f0566466745ad7b3d6cc1b4211ec3af99505c7ec927 SHA512 eaf8cdeba9a081cf3e7de9a017b9c53e7448b077659e841d3e3b378a08d373db0812e9bb4ba242fff0f807c90060251343bf3d3ac8041632f83235387676222c
diff --git a/app-forensics/pev/pev-0.80_pre20190805.ebuild b/app-forensics/pev/pev-0.80_pre20190805.ebuild
deleted file mode 120000
index 3bbe508..0000000
--- a/app-forensics/pev/pev-0.80_pre20190805.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-pev-9999.ebuild \ No newline at end of file
diff --git a/app-forensics/pev/pev-9999.ebuild b/app-forensics/pev/pev-9999.ebuild
deleted file mode 100644
index a59ee1b..0000000
--- a/app-forensics/pev/pev-9999.ebuild
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-MY_PN="github.com/merces/${PN}"
-MY_P="${P}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://${MY_PN}"
- EGIT_SUBMODULES=( lib/libpe )
-else
- EGIT_COMMIT="8ca94a91a546c92fc1c34f12acb1f3123bfe4fb6"
- EGIT_COMMIT_LIBPE="e1c3c43414480ebde8391cfd32aebc4c24e6622e"
- MY_P="${PN}-${EGIT_COMMIT}"
- SRC_URI="https://${MY_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
- https://github.com/merces/libpe/archive/${EGIT_COMMIT_LIBPE}.tar.gz -> libpe-${EGIT_COMMIT_LIBPE}.tar.gz"
-fi
-
-DESCRIPTION="The PE file analysis toolkit"
-HOMEPAGE="http://pev.sf.net"
-
-LICENSE="Apache-2.0"
-SLOT="0/${PVR}"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-RESTRICT="mirror"
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${MY_P}"
-
-src_unpack() {
- default
-
- if [[ "${PV}" == "9999" ]]; then
- git-r3_src_unpack
- else
- unpack ${P}.tar.gz
- unpack libpe-${EGIT_COMMIT_LIBPE}.tar.gz
- set -- env \
- cp -rp libpe-${EGIT_COMMIT_LIBPE}/* ${MY_P}/lib/libpe
- echo "$@"
- "$@" || die
- fi
-}
-
-src_prepare() {
- default
-
- local MY_PREFIX=${EPREFIX}/usr
- local MY_LIBDIR=$(get_libdir)
-
- set -- env \
- sed -i -E \
- -e "/^prefix/ s#(.*=[[:space:]]*).*#\1${MY_PREFIX}#" \
- -e "/^libdir/ s#(.*=[[:space:]]*).*#\1\$(exec_prefix)/${MY_LIBDIR}#" \
- lib/libpe/Makefile
- echo "$@"
- "$@" || die
-
- set -- env \
- sed -i -E \
- -e "/^prefix/ s#(.*=[[:space:]]*).*#\1${MY_PREFIX}#" \
- -e "/^libdir/ s#(.*=[[:space:]]*).*#\1\$(exec_prefix)/${MY_LIBDIR}#" \
- src/Makefile
- echo "$@"
- "$@" || die
-}
diff --git a/app-misc/motion/Manifest b/app-misc/motion/Manifest
deleted file mode 100644
index ef254d6..0000000
--- a/app-misc/motion/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST motion-0.1_pre20160411.tar.gz 10458 BLAKE2B 2ceda4d4a67b22fd8e380c0ea7930910646d3b9b3a214549dfd3ad73b9923d39cc1f2a952b3e18bb2daad68cdd690284cfaa03a49fa5e6ca2e8d8f47ca68a1ef SHA512 3f23370b19e10dae537c2240d3e9c96e92a5f180874165d07a2573e23c5ed46e0e8852c4b50629939712efaa88931b0b9d47adcb3fa2d2469c36390d74edbd98
diff --git a/app-misc/motion/metadata.xml b/app-misc/motion/metadata.xml
deleted file mode 100644
index a27ef9f..0000000
--- a/app-misc/motion/metadata.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
- <maintainer type="person">
- <email>pigfoot@gmail.com</email>
- <name>Chen, Chih-Chia</name>
- <description>Maintainer. Assign bugs to him</description>
- </maintainer>
- <upstream>
- <bugs-to>https://github.com/fatih/motion/issues</bugs-to>
- </upstream>
- <longdescription lang="en">
- Motion is a tool that was designed to work with editors. It is providing
- contextual information for a given offset(option) from a file or directory
- of files.
-
- Editors can use these informations to implement navigation, text editing,
- etc... that are specific to a Go source code.
-
- It's optimized and created to work with vim-go, but it's designed to work
- with any editor. It's currently work in progress and open to change.
- </longdescription>
-</pkgmetadata>
diff --git a/app-misc/motion/motion-0.1_pre20160411.ebuild b/app-misc/motion/motion-0.1_pre20160411.ebuild
deleted file mode 100644
index da7feec..0000000
--- a/app-misc/motion/motion-0.1_pre20160411.ebuild
+++ /dev/null
@@ -1,18 +0,0 @@
-# Copyright 1999-2017 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-GOLANG_PKG_IMPORTPATH="github.com/fatih"
-GOLANG_PKG_VERSION="efb4eef465f585649e0a89636e2f2bd6f543482d"
-GOLANG_PKG_HAVE_TEST=1
-
-inherit golang-single
-
-DESCRIPTION="Navigation and insight in Go"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~arm"
-
-RDEPEND=">=dev-lang/go-1.7.0"
diff --git a/dev-db/cassandra-bin/Manifest b/dev-db/cassandra-bin/Manifest
deleted file mode 100644
index f5b9da3..0000000
--- a/dev-db/cassandra-bin/Manifest
+++ /dev/null
@@ -1,3 +0,0 @@
-AUX init 1211 SHA256 eaae39d2e0c8cd6d40629d1b88ea653a3883a6feee301dc652d5a34f922f23f7 SHA512 f59bf7db63e43bd89ad8f3fec0da7f145515fe518c73e312c7a02b32afd7a9a2f9cb88315a4e9a1395260a8a95eddaad64dd2c293d1eeb8d5f9afe6d5d51791f WHIRLPOOL c53c7ab58018a81beb2a75b36e624472efb337b81a66918ecf4be8e0e473fa5df51efd4e77596dbed47a6df8619ce48b38d5a974f23d6aa16851fdaa6e0a67c9
-DIST apache-cassandra-2.1.5-bin.tar.gz 24282772 SHA256 2d768e2fba9c576289e26247e2ed0b36fb802e06fa0a141783b765d63daf36ff SHA512 a38cd7fcd5d5fa1ea6c9e9ca8506690a198ee7dfa6605a9780dfd3a66c382a540cd811b793a4f21a3799c215d4c4b5e93a75367b4dcdea21e13b7c25344503b9 WHIRLPOOL f74e3d59eafead0ff8c6a8632ee6d8c074286e24df2b2302783d684aa4432c7b3d70a07b404cfb6cf72a69ceef9e81a0b2592407c589b66d9c63ebb47468b52c
-EBUILD cassandra-bin-2.1.5.ebuild 2604 SHA256 d3878cd590fab5589344df6382ab327d3b3519e9655a60aef504858edad514b8 SHA512 d35900294ba12ccc8be744e01daadf34c0a15592f696be4c7b461c316800e62b19bb3e03a7449b431202cbbf27ea3e69878585ca7de6d63bea0690edc1ad25f8 WHIRLPOOL 390c98330b7a5224afaaf9974f772fa934f0eace93d6ad58c1c9f896e4f425e44954bf19f9d9228e2f948b61f3a7c0f89f5e554f8e21593b59fc7803b703d6d6
diff --git a/dev-db/cassandra-bin/cassandra-bin-2.1.5.ebuild b/dev-db/cassandra-bin/cassandra-bin-2.1.5.ebuild
deleted file mode 100644
index e621606..0000000
--- a/dev-db/cassandra-bin/cassandra-bin-2.1.5.ebuild
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 1999-2013 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: $
-
-# stolen from: http://data.gpo.zugaina.org/fw-overlay/dev-db/apache-cassandra-bin/
-
-EAPI=5
-
-inherit eutils java-pkg-2 user versionator
-
-DESCRIPTION="A highly scalable second-generation distributed database"
-HOMEPAGE="http://cassandra.apache.org/"
-SRC_URI="mirror://apache/cassandra/${PV}/apache-cassandra-${PV}-bin.tar.gz"
-S="${WORKDIR}/apache-cassandra-${PV}"
-
-LICENSE="Apache-2.0"
-SLOT="$(get_version_component_range 1-2)"
-KEYWORDS="~x86 ~amd64"
-RDEPEND=">=virtual/jre-1.7"
-
-S="${WORKDIR}/apache-cassandra-${PV}"
-INSTALL_DIR="/opt/cassandra-${SLOT}"
-
-pkg_setup() {
- enewgroup cassandra || die "Could not create group"
- enewuser cassandra -1 /bin/bash ${INSTALL_DIR} cassandra
-}
-
-src_prepare() {
- cd "${S}"
- find . \( -name \*.bat -or -name \*.exe \) -delete
- rm bin/stop-server
-}
-
-src_install() {
- insinto ${INSTALL_DIR}
-
- sed -e "s|/var/lib/cassandra|/var/lib/cassandra/${SLOT}|g" \
- -i conf/cassandra.yaml || die
-
- sed -e "s|cassandra_storagedir=\"\$CASSANDRA_HOME/data\"|cassandra_storagedir=\"/var/lib/cassandra/${SLOT}\"|g" \
- -i bin/cassandra.in.sh || die
-
- doins -r bin conf interface lib pylib tools
-
- for i in bin/* ; do
- if [[ $i == *.in.sh ]]; then
- continue
- fi
- fperms 755 ${INSTALL_DIR}/${i}
- make_wrapper "$(basename ${i})-${SLOT}" "${INSTALL_DIR}/${i}"
- done
-
- keepdir /var/lib/cassandra/${SLOT}
- fowners -R cassandra:cassandra ${INSTALL_DIR}
- fowners -R cassandra:cassandra /var/lib/cassandra
-
- sed "s/{SLOT}/${SLOT}/g" "${FILESDIR}/init" > "${T}/init" || die
- newinitd "${T}/init" cassandra-${SLOT}
-
- echo "CONFIG_PROTECT=\"${INSTALL_DIR}/conf\"" > "${T}/25cassandra-${SLOT}" || die
- doenvd "${T}/25cassandra-${SLOT}"
-}
-
-pkg_postinst() {
-
- elog "Cassandra's configuration:"
- elog " * Run-time: /etc/cassandra/"
- elog " * Start-up: /etc/conf.d/cassandra"
-
- elog "Cassandra works best when the commitlog directory and the data directory are on different disks"
- elog "The default configuration sets them to /var/lib/cassandra/commitlog and /var/lib/cassandra/data respectively"
- elog "You may wish to change those to different mount points"
-
- ewarn "You should start/stop cassandra via /etc/init.d/cassandra, as this will properly switch to the cassandra:cassandra user group"
- ewarn "Starting cassandra via its default 'cassandra' shell command, as root, may cause permission problems later on when started as the cassandra user"
-
-}
diff --git a/dev-db/cassandra-bin/files/init b/dev-db/cassandra-bin/files/init
deleted file mode 100644
index 905d603..0000000
--- a/dev-db/cassandra-bin/files/init
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/sbin/runscript
-
-NAME=cassandra-{SLOT}
-DESC="Cassandra v{SLOT}"
-PIDFILE=/var/run/$NAME/$NAME.pid
-
-_CASSANDRA_DIR="/opt/${NAME}"
-
-DAEMON=${_CASSANDRA_DIR}/bin/cassandra
-DAEMON_OPTS="-p $PIDFILE"
-USER="cassandra"
-
-. ${_CASSANDRA_DIR}/conf/cassandra-env.sh
-
-start() {
- ebegin "Starting ${DESC}"
- [ -e `dirname "$PIDFILE"` ] || \
- install -d -ocassandra -gcassandra -m750 `dirname $PIDFILE`
-
- start-stop-daemon \
- --start \
- --user $USER \
- --exec $DAEMON \
- --quiet \
- --pidfile $PIDFILE \
- --test >/dev/null || eend 1
-
- start-stop-daemon \
- --start \
- --user $USER \
- --exec $DAEMON \
- --background \
- --pidfile "$PIDFILE" \
- -- $DAEMON_OPTS >/dev/null
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${DESC}"
- start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE
- eend $?
-}
-
-restart() {
- ebegin "Restarting cassandra"
- start-stop-daemon \
- --stop \
- --quiet \
- --oknodo \
- --retry TERM/30/KILL/5 > /dev/null || eend 1
- start-stop-daemon \
- --start \
- --quiet \
- --pidfile $PIDFILE \
- --chuid $USER \
- --exec $DAEMON \
- -- $DAEMON_OPTS > /dev/null
- eend $?
-}
diff --git a/dev-go/rice/Manifest b/dev-go/rice/Manifest
deleted file mode 100644
index 4ad2da7..0000000
--- a/dev-go/rice/Manifest
+++ /dev/null
@@ -1,6 +0,0 @@
-DIST github.com-GeertJohan-go.incremental-1172aab.tar.gz 4038 SHA256 9b6b877487514f594cf8d24ce140270cf587f7a6991ce7a9df492cb0d189040e SHA512 7f3d5f2a25e1da5a816d7632a0ba5de7ef5728891a505c596360b7a474c6945d571f62a9cab4b2e8ef6c81856af964691bd6c2ed7bfdec99780ecda5c3214387 WHIRLPOOL 19faefa545cc42584d65eda3503f61f98380bf73d0359e450461f1e4ae4b95701de87799f5d36547acbd83a01fa2127fcfcc6c4a0fcb426ec51150984b29aa6c
-DIST github.com-akavel-rsrc-ba14da1.tar.gz 10550 SHA256 c12c3b7e01566cb39f07ccde29607843634a70696b250a0cdea89166abb2fa4f SHA512 ee2068b112054a88d13915abf31c13e3bb82fcf2150b7998966918a98ff6cde2a9a4f86e95d3a3fa09d6be6a9a4d1fca4e282495b8d74df5ead2ffc721f1fab7 WHIRLPOOL b1fe109d27e5c3508aa3c0d0d913e4d788c430f753c7fd87fd3455f818ee3f63eb722e2eae31001085e7ef508c2d1611a8e4dc0de45edf94e6bb49189cb6f1e7
-DIST github.com-daaku-go.zipexe-a5fe243.tar.gz 2020 SHA256 af6e44fa7d5d9488464e747509f09b4503843917b3f6460d6692e75f28c015e9 SHA512 af31dd9e0a97a6df879f40698477257a64845a40e37d68e53db84fce3f007cfc3e379234637bae9aa8e7155451b40e4058ab774ae88c29166361e7ac827755c3 WHIRLPOOL 25a9330dc4450a8a8f5b17bf8b8bc502f9f30ff93cf9c6d4a6b0d73c4f1d5695719a7a6570da81360b24a1ffb32e697aca5244df98c0c0f2c47637842819acf5
-DIST github.com-jessevdk-go-flags-5695738.tar.gz 54989 SHA256 6a46bc8a692a1153b12a889b357683aa2aa2254d162ddb1c38253d7988cf1030 SHA512 9f117c43a41ee7b8753ba8bcb9ad49ad5106ce01b3be617921ed9d1208bd5bc1c4c155d797f2b1f7134955b16f3d82e46de2b0a45e5e8808199e0173687719b1 WHIRLPOOL c6f230afc0467fb6d76a2da9867e8437833471a7c36073d74834a5af399e8e6cfef0bd40bc5ae9cce4fad15c8b1d03b03110ee20c86ca4c281b5204f9e28e0fd
-DIST github.com-kardianos-osext-ae77be6.tar.gz 4860 SHA256 136511d8ed9ee98a71266cda7b810d9e2650ece65647ccf3c0eac0f92fdf8bf1 SHA512 924fb47d68a300e7a17e67259c1ca6f395c23a2d630cabccdcea7ff76a9087597b317c2cdc9cecc42d885ce1e8faab338539f210681f02c695657d7b17039bc7 WHIRLPOOL b6686b94d0d46feb6660e7fcf2cad41e4f31e9d270c15968d9932a01af883a56f5e62fa5b77c8e4d6310dee0b746c448685cf157ce01de2edabaa281935bd2af
-DIST rice-20170420.tar.gz 67066 SHA256 e56d3bfa1e544db7c47244dba5e45a9a62b0113ceebdb893ca452b52134e4e4f SHA512 18cc491f6ea0489cefce5bcbee4c66e4c1b3fe278a7981b8d92fe40e271bf37f734396e83e11bb0264d33f3cfab496e9c57d11a96677fe861824cfa56994a681 WHIRLPOOL 02c037387d8661bed5602acacda05ae6e81c22020c53e40de8aa145d4a26ac5745bc705d6a963a1e8ab78ef4e0f1cc32c6c1b8956c415a5c9243651fe56ad1da
diff --git a/dev-go/rice/rice-20170420.ebuild b/dev-go/rice/rice-20170420.ebuild
deleted file mode 100644
index eeaab56..0000000
--- a/dev-go/rice/rice-20170420.ebuild
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-GOLANG_PKG_NAME="go.rice"
-GOLANG_PKG_IMPORTPATH="github.com/GeertJohan"
-GOLANG_PKG_VERSION="c02ca9a983da5807ddf7d796784928f5be4afd09"
-GOLANG_PKG_BUILDPATH="/rice"
-GOLANG_PKG_HAVE_TEST=1
-GOLANG_PKG_USE_CGO=1
-
-GOLANG_PKG_DEPENDENCIES=(
- "github.com/daaku/go.zipexe:a5fe243"
- "github.com/kardianos/osext:ae77be6"
- "github.com/jessevdk/go-flags:5695738"
- "github.com/akavel/rsrc:ba14da1"
- "github.com/GeertJohan/go.incremental:1172aab"
-)
-
-inherit golang-single
-
-DESCRIPTION="go.rice is a Go package that makes working with resources such as html,js,css,images,templates, etc very easy"
-HOMEPAGE="https://github.com/GeertJohan/go.rice"
-LICENSE="BSD-2"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~arm"
diff --git a/dev-libs/mtbl/Manifest b/dev-libs/mtbl/Manifest
deleted file mode 100644
index 01200d3..0000000
--- a/dev-libs/mtbl/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST mtbl-1.3.0.tar.gz 179598 BLAKE2B 907186ea5104aadab2b39e9bf18d881cb1b595891c2ce5b1ea06828f39010e52d500d7aaae6a7defa67b66722cf7e4c06a08a707909478187938cbe76ffad7b7 SHA512 fb9a54537f8fbcf35f60f7d131d6b213260f72e230fbf1498e367d32093b162e2aad444ed6b15cd698033d290c6e32b2adfe8255bad977f30eb2e1ae0802003f
diff --git a/dev-libs/mtbl/mtbl-1.3.0.ebuild b/dev-libs/mtbl/mtbl-1.3.0.ebuild
deleted file mode 120000
index 02d1999..0000000
--- a/dev-libs/mtbl/mtbl-1.3.0.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-mtbl-9999.ebuild \ No newline at end of file
diff --git a/dev-libs/mtbl/mtbl-9999.ebuild b/dev-libs/mtbl/mtbl-9999.ebuild
deleted file mode 100644
index 40cd3eb..0000000
--- a/dev-libs/mtbl/mtbl-9999.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-inherit autotools
-
-MY_PN="github.com/farsightsec/${PN}"
-MY_P="${P}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://${MY_PN}"
- EGIT_SUBMODULES=()
-else
- EGIT_COMMIT="v${PV}"
- MY_P="${PN}-tags-${EGIT_COMMIT}"
- SRC_URI="https://${MY_PN}/archive/tags/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-fi
-
-DESCRIPTION="mtbl is a C library implementation of the Sorted String Table (SSTable)
- data structure."
-HOMEPAGE="https://github.com/farsightsec/mtbl"
-
-LICENSE="Apache-2.0"
-SLOT="0/${PVR}"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-RESTRICT="mirror"
-
-DEPEND="app-arch/snappy:=
- sys-libs/zlib:="
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${MY_P}"
-
-src_prepare() {
- default
-
- eautoreconf
-}
diff --git a/dev-libs/openssl/Manifest b/dev-libs/openssl/Manifest
deleted file mode 100644
index 70fdccd..0000000
--- a/dev-libs/openssl/Manifest
+++ /dev/null
@@ -1,17 +0,0 @@
-AUX gentoo.config-1.0.2 4905 SHA256 98a4c1e2cef5a2378d5dcc61f661300333a6c5c0ba4e3c82590f688e33117604 SHA512 4c13371fb7d0c33f015ed559951c755dabc35279c91d7490578a008087f62c1a94d69e309d4a113bf23e5ad7085e2eec5692152b3d7b1c3130cb64dc2a002632 WHIRLPOOL 64d9cc378ff32bb78a8d0edea25b6519c65af5faf3a7b22713bf19881f61385271e352814460f16375effeccc743c82642e8175aa2590f352b2909748513e120
-AUX openssl-1.0.0a-ldflags.patch 1095 SHA256 17bb0b9988de0be6b8bb916d953d5d62cf054943f3bc24c5d7c8fea91d864350 SHA512 80c3677313a6268fdc2eb7b556dc081f1047694cf932a8669820923952bf0e3002da4cd92d6a335b44f8a6ece7d88319c15e9c0171118bfc03ff7a9b718726d8 WHIRLPOOL 55bc5d8f0ee620d8e56215572a6eb65a06ff9bf180d6b33f6db74e2129e5373252238772ba6db25293f398a6713b7259c6ae959b15ce8292da9aeb3071a34243
-AUX openssl-1.0.0d-windres.patch 2912 SHA256 e5dbfd6af69bc3f69b51787cf1f6245207be9824dfffbdd9b4e278772ed8ab32 SHA512 d7a0238edea29aac7d20dca0778c67f8ae4dc0da190e5277e1b3519ae536f2c44533ac5dc1cbcd138bc4277ad669b13fca316bd962f26e2cb387f2ad3fd0111b WHIRLPOOL d62156820e55898d0a0393473c6ad8e49c5aa7bb9d3fc7043795de7102c3003d5f8b874c751e03cf832e306ac290790e871e1318bb830b3558a43e09be5b45b4
-AUX openssl-1.0.1p-default-source.patch 861 SHA256 390b6857e76cd0513a089ff3eeed60097c3b30bec4b004bb6adbb8eaab02dc4a SHA512 cbd47ae5553ec0e683a92171cb1c2e68d7eb0cf2b1787e3fe332ca2df0aefa31a1a74d60345d5e42d00bdda439019d089560cf2f5464dfe19ff7a3d6a310d06b WHIRLPOOL d734c8776c2d4f17a562f580f676de08bf35e07b04005f1c2a6e7f2752e3a1b57f6d771195f84d7d9709bf2e669b119fe3ae37e473de192e9c10a8ffb1c8969f
-AUX openssl-1.0.2-ipv6.patch 18811 SHA256 9ff3150c75f3f3e6a9773ffe54d90994cbf68cc919134aea68e09e7ed921763d SHA512 58e293f8f19a3fad08729b842dd977b73fedb0c49208d87a056bfea857c0e2b79a310d7d098c04429b65564fce64defeda6d1dcc3068ad5a80ef276db6421e54 WHIRLPOOL 36a0fffc7238011b93077bed94c9507f2ffc1cf199e6c06e94d01589cdc84a6568b9122e1a120b8262bd0a1c43f25169a29796c92a78338dd9f03b4cc2cdf0b8
-AUX openssl-1.0.2a-parallel-install-dirs.patch 2013 SHA256 eddd8a5123748052c598214487ac178e4bfa4e31ba2ec520c70d59c8c5bfa2e9 SHA512 c3b97fa318b9627bcaf4f39d1615c46322c1081cded135af5b5115beb2be74ead46084119fce5643b12c54b6851c33bfb624694ccf6f3d32060b6d56239d3674 WHIRLPOOL 59228ad2796e28edf7508a3b3bbdab36f7b678922566a1ed43a86727371c7b6b8c362431f49812e7c60a9aa72134d7fffaeb7be0efb6b5ca0f10e1c716b6a557
-AUX openssl-1.0.2a-parallel-obj-headers.patch 1359 SHA256 147c3eeaad614c044749ea527cb433eae5e2d5cad34a78c6ba61cd967bfbe01f SHA512 ac8224bc088099d72e7e6761303b8653766372bd027536951c458bd22fd0526163de22bf27675e0292a12ae7257a5c1edf26a92747e00cc139e13e1b624b4072 WHIRLPOOL 58b1de7c90ed96a077065ff6abfdeaffd98ce68cc9a2551dab7ff3d04e9b38be8d4bb94a6830f4e6c3d997747345c43f76c31f4c7b825f56fd488e85b9c6179e
-AUX openssl-1.0.2a-parallel-symlinking.patch 2041 SHA256 30cb49489de5041841a74da9155cd4fabfbce33237262ba7cd23974314ae2956 SHA512 b87ab581784c285ef394b31baa1196a831a86c3b2d578704c9d8b80d68c70a8b19cfa88bd29b84578ed024135ae2d2ac4d622c91e1040074016b8fd104d6c05a WHIRLPOOL c8200ec6755efdce550afd2f59b3d5dc36324c6810b3ae7427af7130be9ba0db5857c13811f97dd6672230b9f096f81ebb4136c9589d53d25dcfe5c064355a46
-AUX openssl-1.0.2a-x32-asm.patch 1561 SHA256 8bcff04217c5ad82448e27d14f3559a157c2cad89b5fb2b6af701fff1664f86d SHA512 fbb23393e68776e9d34953f85ba3cbb285421d50f06bd297b485c7cffc8d89ca8caff6783f21038ae668b5c75056c89dc652217ac8609b5328e2c28e70ac294c WHIRLPOOL 70163beaed966de948562c3a633828846d12eda7b04526c7e33746c67af5a20ecf47e9e9e5cce33abf7444676f4b15b770204e95db75d0b91a9db13c46ff92bb
-AUX openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch 6106 SHA256 925c12a7c28f0f88b293dd8d5f099ebaaeb50419322a0cbb3dfb7e1ab0b06c57 SHA512 711a3a6766b253bcf5db3faac3014bd0d9b0a49c26d68a5fbc35bc6d48c5b9c09c87ed94f1fba64e75b4fd45c21f74aff0d15cc65816f8001e5d9f44509ad96f WHIRLPOOL e29978e1b322656df845eaad6c46a64bed1582f5b16423def3dd5cd0976da5bc4572ac5b8dabe977205531d2030e019aea693e3ee123e542d8a67cae7beed4d4
-AUX openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch 162942 SHA256 09a2e88f95d8cd12bd9c23cd87554ab700fb1625a848c0502951849fb1d564fc SHA512 9cacf1436603220c0fa5b909ee8cc9e682981aea188daf6ebe772e2f103dc1d9127751fdb7cdb047a77313c9daa1e8cbb85e953a524127ebe1b05ef7f969fce4 WHIRLPOOL 2e9f3834653fbc35cade742133de1cc84045e958469e5fd4fb6e89015866c011f2ff81ae84916d241f25a7b8e9c5ada08adc244c5a448f0810a9a891ba1fc31e
-AUX openssl-1.0.2g-parallel-build.patch 9751 SHA256 a2ac3d132f77f6eaca8beabde454d373f1bfaea7a61b56cb3b5b8469293da601 SHA512 29f784f19e1a4eadd4ecdae3f5a1d4f7123db388943b7940b8917db2cb8f6debb633d5e845a45bc73b5159d0a7b6479c7c582da59e53dc063953a67f31c011bb WHIRLPOOL 60fe9c0b138e3070c519c73bdd77b7369ca3440ddc53ccaed920237b356ef1010a919babe09027f66c3d1c1c90a57ce5cce01ec3aa16b913a861615d3efa6048
-DIST openssl-1.0.2g.tar.gz 5266102 SHA256 b784b1b3907ce39abf4098702dade6365522a253ad1552e267a9a0e89594aa33 SHA512 4d96b6c8a232203483d6e8bee81da01ba10977bfbac92f25304a36dec9ea584b7ef917bc45e097cc7dbe681d71a4570d649c22244c178393ae91fab48323f735 WHIRLPOOL aedbd82af0a550e8329a84312fae492f3bb3cb04af763fc9ef532099b2b2e61a55e4a7cfb06085f045740e2b692bbdb3ecb8bf5ca82f46325c3caf22d2317ffb
-DIST openssl-1.0.2h.tar.gz 5274412 SHA256 1d4007e53aad94a5b2002fe045ee7bb0b3d98f1a47f8b2bc851dcd1c74332919 SHA512 780601f6f3f32f42b6d7bbc4c593db39a3575f9db80294a10a68b2b0bb79448d9bd529ca700b9977354cbdfc65887c76af0aa7b90d3ee421f74ab53e6f15c303 WHIRLPOOL 41b6cf0c08b547f1432dc8167a4c7835da0b6907f8932969e0a352fab8bdbb4d8f612a5bf431e415d93ff1c8238652b2ee3ce0bd935cc2f59e8ea4f40fe6b5d6
-EBUILD openssl-1.0.2g-r2.ebuild 8847 SHA256 08c45b57ed1fd2a99b7fd41d2e3bf12a0612b17f4ecc6488bfdc28b0f5b3bbd5 SHA512 c21d9144323c788a248f9667ef22a5191537df6d019f6652003b934fabbfd6f4fa0b918e8c23c144750914faa064a20416d819c9363e14935433a4c0d90213c0 WHIRLPOOL baf5f3dc1b3814e4691867b6d7c77dfd5a5d710ff106b5f5b181fe6add4b7ff769c31e28b5a174f51f3ab66709f38a9ca875b27fb1e94abf9dfcacb46f09b8e0
-EBUILD openssl-1.0.2h.ebuild 8856 SHA256 5091ca8d6f03c27b0e6dfd7a552297eb566ff6c22cd413c34540e635ee9037c9 SHA512 747d4cd26b565fe082b2746b2366dfeecadb003a9a9228710067b94048616eca86974bfcee552a657c47ff1397cbef720bdd8b92fa7208951301829b3a57de41 WHIRLPOOL f54473092c8529746126aa79aaf0d55b64fa0714d8913604032aa1c2432d3346f6c0e2140ce3eac9592e28b2d38f9ce0abc3e624ed7dbe9df277c8b659437b6a
-MISC metadata.xml 304 SHA256 e41afe40ccbbdba8fb36d0128779e3fc5d1897b2ec9258e59e94490d9f7dfbfe SHA512 f1bb1ebca73bbee02755bf750f308a3f130320aa6f1c862d68ac07b4a2c9966c497162d8add1623a9ac3e93391ba16fdf9be5db5812fae156dfce824040e3040 WHIRLPOOL de0aac2e7eceab3f62073d9ae3331a6821933543cbd15670ee67dcead18a200d560658ebc3044e7cb4100d4b0aa9efd9ea24bab4b2490458806d909e685f3f7f
diff --git a/dev-libs/openssl/files/gentoo.config-1.0.2 b/dev-libs/openssl/files/gentoo.config-1.0.2
deleted file mode 100755
index b3f6ced..0000000
--- a/dev-libs/openssl/files/gentoo.config-1.0.2
+++ /dev/null
@@ -1,165 +0,0 @@
-#!/usr/bin/env bash
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-#
-# Openssl doesn't play along nicely with cross-compiling
-# like autotools based projects, so let's teach it new tricks.
-#
-# Review the bundled 'config' script to see why kind of targets
-# we can pass to the 'Configure' script.
-
-
-# Testing routines
-if [[ $1 == "test" ]] ; then
- for c in \
- "arm-gentoo-linux-uclibc |linux-generic32 -DL_ENDIAN" \
- "armv5b-linux-gnu |linux-armv4 -DB_ENDIAN" \
- "x86_64-pc-linux-gnu |linux-x86_64" \
- "alpha-linux-gnu |linux-alpha-gcc" \
- "alphaev56-unknown-linux-gnu |linux-alpha+bwx-gcc" \
- "i686-pc-linux-gnu |linux-elf" \
- "whatever-gentoo-freebsdX.Y |BSD-generic32" \
- "i686-gentoo-freebsdX.Y |BSD-x86-elf" \
- "sparc64-alpha-freebsdX.Y |BSD-sparc64" \
- "ia64-gentoo-freebsd5.99234 |BSD-ia64" \
- "x86_64-gentoo-freebsdX.Y |BSD-x86_64" \
- "hppa64-aldsF-linux-gnu5.3 |linux-generic32 -DB_ENDIAN" \
- "powerpc-gentOO-linux-uclibc |linux-ppc" \
- "powerpc64-unk-linux-gnu |linux-ppc64" \
- "powerpc64le-linux-gnu |linux-ppc64le" \
- "x86_64-apple-darwinX |darwin64-x86_64-cc" \
- "powerpc64-apple-darwinX |darwin64-ppc-cc" \
- "i686-apple-darwinX |darwin-i386-cc" \
- "i386-apple-darwinX |darwin-i386-cc" \
- "powerpc-apple-darwinX |darwin-ppc-cc" \
- "i586-pc-winnt |winnt-parity" \
- "s390-ibm-linux-gnu |linux-generic32 -DB_ENDIAN" \
- "s390x-linux-gnu |linux64-s390x" \
- ;do
- CHOST=${c/|*}
- ret_want=${c/*|}
- ret_got=$(CHOST=${CHOST} "$0")
-
- if [[ ${ret_want} == "${ret_got}" ]] ; then
- echo "PASS: ${CHOST}"
- else
- echo "FAIL: ${CHOST}"
- echo -e "\twanted: ${ret_want}"
- echo -e "\twe got: ${ret_got}"
- fi
- done
- exit 0
-fi
-[[ -z ${CHOST} && -n $1 ]] && CHOST=$1
-
-
-# Detect the operating system
-case ${CHOST} in
- *-aix*) system="aix";;
- *-darwin*) system="darwin";;
- *-freebsd*) system="BSD";;
- *-hpux*) system="hpux";;
- *-linux*) system="linux";;
- *-solaris*) system="solaris";;
- *-winnt*) system="winnt";;
- x86_64-*-mingw*) system="mingw64";;
- *mingw*) system="mingw";;
- *) exit 0;;
-esac
-
-
-# Compiler munging
-compiler="gcc"
-if [[ ${CC} == "ccc" ]] ; then
- compiler=${CC}
-fi
-
-
-# Detect target arch
-machine=""
-chost_machine=${CHOST%%-*}
-case ${system} in
-linux)
- case ${chost_machine}:${ABI} in
- aarch64*be*) machine="generic64 -DB_ENDIAN";;
- aarch64*) machine="generic64 -DL_ENDIAN";;
- alphaev56*|\
- alphaev[678]*)machine=alpha+bwx-${compiler};;
- alpha*) machine=alpha-${compiler};;
- armv[4-9]*b*) machine="armv4 -DB_ENDIAN";;
- armv[4-9]*) machine="armv4 -DL_ENDIAN";;
- arm*b*) machine="generic32 -DB_ENDIAN";;
- arm*) machine="generic32 -DL_ENDIAN";;
- avr*) machine="generic32 -DL_ENDIAN";;
- bfin*) machine="generic32 -DL_ENDIAN";;
- # hppa64*) machine=parisc64;;
- hppa*) machine="generic32 -DB_ENDIAN";;
- i[0-9]86*|\
- x86_64*:x86) machine=elf;;
- ia64*) machine=ia64;;
- m68*) machine="generic32 -DB_ENDIAN";;
- mips*el*) machine="generic32 -DL_ENDIAN";;
- mips*) machine="generic32 -DB_ENDIAN";;
- powerpc64*le*)machine=ppc64le;;
- powerpc64*) machine=ppc64;;
- powerpc*le*) machine="generic32 -DL_ENDIAN";;
- powerpc*) machine=ppc;;
- # sh64*) machine=elf;;
- sh*b*) machine="generic32 -DB_ENDIAN";;
- sh*) machine="generic32 -DL_ENDIAN";;
- sparc*v7*) machine="generic32 -DB_ENDIAN";;
- sparc64*) machine=sparcv9;;
- sparc*) machine=sparcv8;;
- s390x*) machine=s390x system=linux64;;
- s390*) machine="generic32 -DB_ENDIAN";;
- x86_64*:x32) machine=x32;;
- x86_64*) machine=x86_64;;
- esac
- ;;
-BSD)
- case ${chost_machine} in
- alpha*) machine=generic64;;
- i[6-9]86*) machine=x86-elf;;
- ia64*) machine=ia64;;
- sparc64*) machine=sparc64;;
- x86_64*) machine=x86_64;;
- *) machine=generic32;;
- esac
- ;;
-aix)
- machine=${compiler}
- ;;
-darwin)
- case ${chost_machine} in
- powerpc64) machine=ppc-cc; system=${system}64;;
- powerpc) machine=ppc-cc;;
- i?86*) machine=i386-cc;;
- x86_64) machine=x86_64-cc; system=${system}64;;
- esac
- ;;
-hpux)
- case ${chost_machine} in
- ia64) machine=ia64-${compiler} ;;
- esac
- ;;
-solaris)
- case ${chost_machine} in
- i386) machine=x86-${compiler} ;;
- x86_64*) machine=x86_64-${compiler}; system=${system}64;;
- sparcv9*) machine=sparcv9-${compiler}; system=${system}64;;
- sparc*) machine=sparcv8-${compiler};;
- esac
- ;;
-winnt)
- machine=parity
- ;;
-mingw*)
- # special case ... no xxx-yyy style name
- echo ${system}
- ;;
-esac
-
-
-# If we have something, show it
-[[ -n ${machine} ]] && echo ${system}-${machine}
diff --git a/dev-libs/openssl/files/openssl-1.0.0a-ldflags.patch b/dev-libs/openssl/files/openssl-1.0.0a-ldflags.patch
deleted file mode 100644
index c99ef4a..0000000
--- a/dev-libs/openssl/files/openssl-1.0.0a-ldflags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-http://bugs.gentoo.org/181438
-http://bugs.gentoo.org/327421
-https://rt.openssl.org/Ticket/Display.html?id=3331&user=guest&pass=guest
-
-make sure we respect LDFLAGS
-
-also make sure we don't add useless -rpath flags to the system libdir
-
---- Makefile.org
-+++ Makefile.org
-@@ -189,6 +189,7 @@
- MAKEDEPEND='$$$${TOP}/util/domd $$$${TOP} -MD $(MAKEDEPPROG)' \
- DEPFLAG='-DOPENSSL_NO_DEPRECATED $(DEPFLAG)' \
- MAKEDEPPROG='$(MAKEDEPPROG)' \
-+ LDFLAGS='${LDFLAGS}' \
- SHARED_LDFLAGS='$(SHARED_LDFLAGS)' \
- KRB5_INCLUDES='$(KRB5_INCLUDES)' LIBKRB5='$(LIBKRB5)' \
- ZLIB_INCLUDE='$(ZLIB_INCLUDE)' LIBZLIB='$(LIBZLIB)' \
---- Makefile.shared
-+++ Makefile.shared
-@@ -153,7 +153,7 @@
- NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
- SHAREDFLAGS="$(CFLAGS) $(SHARED_LDFLAGS) -shared -Wl,-Bsymbolic -Wl,-soname=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX"
-
--DO_GNU_APP=LDFLAGS="$(CFLAGS) -Wl,-rpath,$(LIBRPATH)"
-+DO_GNU_APP=LDFLAGS="$(LDFLAGS) $(CFLAGS)"
-
- #This is rather special. It's a special target with which one can link
- #applications without bothering with any features that have anything to
diff --git a/dev-libs/openssl/files/openssl-1.0.0d-windres.patch b/dev-libs/openssl/files/openssl-1.0.0d-windres.patch
deleted file mode 100644
index 0b360d2..0000000
--- a/dev-libs/openssl/files/openssl-1.0.0d-windres.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-URL: http://rt.openssl.org/Ticket/Display.html?id=2558&user=guest&pass=guest
-Subject: make windres controllable via build env var settings
-
-atm, the windres code in openssl is only usable via the cross-compile prefix
-option unlike all the other build tools. so add support for the standard $RC
-/ $WINDRES env vars as well.
-
-Index: Configure
-===================================================================
-RCS file: /usr/local/src/openssl/CVSROOT/openssl/Configure,v
-retrieving revision 1.621.2.40
-diff -u -p -r1.621.2.40 Configure
---- Configure 30 Nov 2010 22:19:26 -0000 1.621.2.40
-+++ Configure 4 Jul 2011 23:12:32 -0000
-@@ -1094,6 +1094,7 @@ my $shared_extension = $fields[$idx_shar
- my $ranlib = $ENV{'RANLIB'} || $fields[$idx_ranlib];
- my $ar = $ENV{'AR'} || "ar";
- my $arflags = $fields[$idx_arflags];
-+my $windres = $ENV{'RC'} || $ENV{'WINDRES'} || "windres";
- my $multilib = $fields[$idx_multilib];
-
- # if $prefix/lib$multilib is not an existing directory, then
-@@ -1511,12 +1512,14 @@ while (<IN>)
- s/^AR=\s*/AR= \$\(CROSS_COMPILE\)/;
- s/^NM=\s*/NM= \$\(CROSS_COMPILE\)/;
- s/^RANLIB=\s*/RANLIB= \$\(CROSS_COMPILE\)/;
-+ s/^WINDRES=\s*/WINDRES= \$\(CROSS_COMPILE\)/;
- s/^MAKEDEPPROG=.*$/MAKEDEPPROG= \$\(CROSS_COMPILE\)$cc/ if $cc eq "gcc";
- }
- else {
- s/^CC=.*$/CC= $cc/;
- s/^AR=\s*ar/AR= $ar/;
- s/^RANLIB=.*/RANLIB= $ranlib/;
-+ s/^WINDRES=.*/WINDRES= $windres/;
- s/^MAKEDEPPROG=.*$/MAKEDEPPROG= $cc/ if $cc eq "gcc";
- }
- s/^CFLAG=.*$/CFLAG= $cflags/;
-Index: Makefile.org
-===================================================================
-RCS file: /usr/local/src/openssl/CVSROOT/openssl/Makefile.org,v
-retrieving revision 1.295.2.10
-diff -u -p -r1.295.2.10 Makefile.org
---- Makefile.org 27 Jan 2010 16:06:58 -0000 1.295.2.10
-+++ Makefile.org 4 Jul 2011 23:13:08 -0000
-@@ -66,6 +66,7 @@ EXE_EXT=
- ARFLAGS=
- AR=ar $(ARFLAGS) r
- RANLIB= ranlib
-+WINDRES= windres
- NM= nm
- PERL= perl
- TAR= tar
-@@ -180,6 +181,7 @@ BUILDENV= PLATFORM='$(PLATFORM)' PROCESS
- CC='$(CC)' CFLAG='$(CFLAG)' \
- AS='$(CC)' ASFLAG='$(CFLAG) -c' \
- AR='$(AR)' NM='$(NM)' RANLIB='$(RANLIB)' \
-+ WINDRES='$(WINDRES)' \
- CROSS_COMPILE='$(CROSS_COMPILE)' \
- PERL='$(PERL)' ENGDIRS='$(ENGDIRS)' \
- SDIRS='$(SDIRS)' LIBRPATH='$(INSTALLTOP)/$(LIBDIR)' \
-Index: Makefile.shared
-===================================================================
-RCS file: /usr/local/src/openssl/CVSROOT/openssl/Makefile.shared,v
-retrieving revision 1.72.2.4
-diff -u -p -r1.72.2.4 Makefile.shared
---- Makefile.shared 21 Aug 2010 11:36:49 -0000 1.72.2.4
-+++ Makefile.shared 4 Jul 2011 23:13:52 -0000
-@@ -293,7 +293,7 @@ link_a.cygwin:
- fi; \
- dll_name=$$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX; \
- $(PERL) util/mkrc.pl $$dll_name | \
-- $(CROSS_COMPILE)windres -o rc.o; \
-+ $(WINDRES) -o rc.o; \
- extras="$$extras rc.o"; \
- ALLSYMSFLAGS='-Wl,--whole-archive'; \
- NOALLSYMSFLAGS='-Wl,--no-whole-archive'; \
diff --git a/dev-libs/openssl/files/openssl-1.0.1p-default-source.patch b/dev-libs/openssl/files/openssl-1.0.1p-default-source.patch
deleted file mode 100644
index 7302998..0000000
--- a/dev-libs/openssl/files/openssl-1.0.1p-default-source.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-https://bugs.gentoo.org/554338
-https://rt.openssl.org/Ticket/Display.html?id=3934&user=guest&pass=guest
-
-From 7c2e97f8bbae517496fdc11f475b4ae54b2534f5 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 10 Jul 2015 01:50:52 -0400
-Subject: [PATCH] test: use _DEFAULT_SOURCE with newer glibc versions
-
-The _BSD_SOURCE macro is replaced by the _DEFAULT_SOURCE macro. Using
-just the former with newer versions leads to a build time warning, so
-make sure to use the new macro too.
----
- ssl/ssltest.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ssl/ssltest.c b/ssl/ssltest.c
-index 26cf96c..b36f667 100644
---- a/ssl/ssltest.c
-+++ b/ssl/ssltest.c
-@@ -141,6 +141,7 @@
- */
-
- /* Or gethostname won't be declared properly on Linux and GNU platforms. */
-+#define _DEFAULT_SOURCE 1
- #define _BSD_SOURCE 1
-
- #include <assert.h>
---
-2.4.4
-
diff --git a/dev-libs/openssl/files/openssl-1.0.2-ipv6.patch b/dev-libs/openssl/files/openssl-1.0.2-ipv6.patch
deleted file mode 100644
index 27574ea..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2-ipv6.patch
+++ /dev/null
@@ -1,611 +0,0 @@
-http://rt.openssl.org/Ticket/Display.html?id=2051&user=guest&pass=guest
-
---- openssl-1.0.2/apps/s_apps.h
-+++ openssl-1.0.2/apps/s_apps.h
-@@ -154,7 +154,7 @@
- int do_server(int port, int type, int *ret,
- int (*cb) (char *hostname, int s, int stype,
- unsigned char *context), unsigned char *context,
-- int naccept);
-+ int naccept, int use_ipv4, int use_ipv6);
- #ifdef HEADER_X509_H
- int MS_CALLBACK verify_callback(int ok, X509_STORE_CTX *ctx);
- #endif
-@@ -167,7 +167,8 @@
- int ssl_print_curves(BIO *out, SSL *s, int noshared);
- #endif
- int ssl_print_tmp_key(BIO *out, SSL *s);
--int init_client(int *sock, char *server, int port, int type);
-+int init_client(int *sock, char *server, int port, int type,
-+ int use_ipv4, int use_ipv6);
- int should_retry(int i);
- int extract_port(char *str, short *port_ptr);
- int extract_host_port(char *str, char **host_ptr, unsigned char *ip,
---- openssl-1.0.2/apps/s_client.c
-+++ openssl-1.0.2/apps/s_client.c
-@@ -302,6 +302,10 @@
- {
- BIO_printf(bio_err, "usage: s_client args\n");
- BIO_printf(bio_err, "\n");
-+ BIO_printf(bio_err, " -4 - use IPv4 only\n");
-+#if OPENSSL_USE_IPV6
-+ BIO_printf(bio_err, " -6 - use IPv6 only\n");
-+#endif
- BIO_printf(bio_err, " -host host - use -connect instead\n");
- BIO_printf(bio_err, " -port port - use -connect instead\n");
- BIO_printf(bio_err,
-@@ -658,6 +662,7 @@
- int sbuf_len, sbuf_off;
- fd_set readfds, writefds;
- short port = PORT;
-+ int use_ipv4, use_ipv6;
- int full_log = 1;
- char *host = SSL_HOST_NAME;
- char *cert_file = NULL, *key_file = NULL, *chain_file = NULL;
-@@ -709,7 +714,11 @@
- #endif
- char *sess_in = NULL;
- char *sess_out = NULL;
-- struct sockaddr peer;
-+#if OPENSSL_USE_IPV6
-+ struct sockaddr_storage peer;
-+#else
-+ struct sockaddr_in peer;
-+#endif
- int peerlen = sizeof(peer);
- int fallback_scsv = 0;
- int enable_timeouts = 0;
-@@ -737,6 +746,12 @@
-
- meth = SSLv23_client_method();
-
-+ use_ipv4 = 1;
-+#if OPENSSL_USE_IPV6
-+ use_ipv6 = 1;
-+#else
-+ use_ipv6 = 0;
-+#endif
- apps_startup();
- c_Pause = 0;
- c_quiet = 0;
-@@ -1096,6 +1111,16 @@
- jpake_secret = *++argv;
- }
- #endif
-+ else if (strcmp(*argv,"-4") == 0) {
-+ use_ipv4 = 1;
-+ use_ipv6 = 0;
-+ }
-+#if OPENSSL_USE_IPV6
-+ else if (strcmp(*argv,"-6") == 0) {
-+ use_ipv4 = 0;
-+ use_ipv6 = 1;
-+ }
-+#endif
- #ifndef OPENSSL_NO_SRTP
- else if (strcmp(*argv, "-use_srtp") == 0) {
- if (--argc < 1)
-@@ -1421,7 +1446,7 @@
-
- re_start:
-
-- if (init_client(&s, host, port, socket_type) == 0) {
-+ if (init_client(&s, host, port, socket_type, use_ipv4, use_ipv6) == 0) {
- BIO_printf(bio_err, "connect:errno=%d\n", get_last_socket_error());
- SHUTDOWN(s);
- goto end;
-@@ -1444,7 +1469,7 @@
- if (socket_type == SOCK_DGRAM) {
-
- sbio = BIO_new_dgram(s, BIO_NOCLOSE);
-- if (getsockname(s, &peer, (void *)&peerlen) < 0) {
-+ if (getsockname(s, (struct sockaddr *)&peer, (void *)&peerlen) < 0) {
- BIO_printf(bio_err, "getsockname:errno=%d\n",
- get_last_socket_error());
- SHUTDOWN(s);
---- openssl-1.0.2/apps/s_server.c
-+++ openssl-1.0.2/apps/s_server.c
-@@ -643,6 +643,10 @@
- BIO_printf(bio_err,
- " -alpn arg - set the advertised protocols for the ALPN extension (comma-separated list)\n");
- #endif
-+ BIO_printf(bio_err, " -4 - use IPv4 only\n");
-+#if OPENSSL_USE_IPV6
-+ BIO_printf(bio_err, " -6 - use IPv6 only\n");
-+#endif
- BIO_printf(bio_err,
- " -keymatexport label - Export keying material using label\n");
- BIO_printf(bio_err,
-@@ -1070,6 +1074,7 @@
- int state = 0;
- const SSL_METHOD *meth = NULL;
- int socket_type = SOCK_STREAM;
-+ int use_ipv4, use_ipv6;
- ENGINE *e = NULL;
- char *inrand = NULL;
- int s_cert_format = FORMAT_PEM, s_key_format = FORMAT_PEM;
-@@ -1111,6 +1116,12 @@
-
- meth = SSLv23_server_method();
-
-+ use_ipv4 = 1;
-+#if OPENSSL_USE_IPV6
-+ use_ipv6 = 1;
-+#else
-+ use_ipv6 = 0;
-+#endif
- local_argc = argc;
- local_argv = argv;
-
-@@ -1503,6 +1514,16 @@
- jpake_secret = *(++argv);
- }
- #endif
-+ else if (strcmp(*argv,"-4") == 0) {
-+ use_ipv4 = 1;
-+ use_ipv6 = 0;
-+ }
-+#if OPENSSL_USE_IPV6
-+ else if (strcmp(*argv,"-6") == 0) {
-+ use_ipv4 = 0;
-+ use_ipv6 = 1;
-+ }
-+#endif
- #ifndef OPENSSL_NO_SRTP
- else if (strcmp(*argv, "-use_srtp") == 0) {
- if (--argc < 1)
-@@ -2023,13 +2044,13 @@
- (void)BIO_flush(bio_s_out);
- if (rev)
- do_server(port, socket_type, &accept_socket, rev_body, context,
-- naccept);
-+ naccept, use_ipv4, use_ipv6);
- else if (www)
- do_server(port, socket_type, &accept_socket, www_body, context,
-- naccept);
-+ naccept, use_ipv4, use_ipv6);
- else
- do_server(port, socket_type, &accept_socket, sv_body, context,
-- naccept);
-+ naccept, use_ipv4, use_ipv6);
- print_stats(bio_s_out, ctx);
- ret = 0;
- end:
---- openssl-1.0.2/apps/s_socket.c
-+++ openssl-1.0.2/apps/s_socket.c
-@@ -101,16 +101,16 @@
- # include "netdb.h"
- # endif
-
--static struct hostent *GetHostByName(char *name);
-+static struct hostent *GetHostByName(char *name, int domain);
- # if defined(OPENSSL_SYS_WINDOWS) || (defined(OPENSSL_SYS_NETWARE) && !defined(NETWARE_BSDSOCK))
- static void ssl_sock_cleanup(void);
- # endif
- static int ssl_sock_init(void);
--static int init_client_ip(int *sock, unsigned char ip[4], int port, int type);
--static int init_server(int *sock, int port, int type);
--static int init_server_long(int *sock, int port, char *ip, int type);
-+static int init_client_ip(int *sock, unsigned char *ip, int port, int type, int domain);
-+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6);
-+static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6);
- static int do_accept(int acc_sock, int *sock, char **host);
--static int host_ip(char *str, unsigned char ip[4]);
-+static int host_ip(char *str, unsigned char *ip, int domain);
-
- # ifdef OPENSSL_SYS_WIN16
- # define SOCKET_PROTOCOL 0 /* more microsoft stupidity */
-@@ -231,38 +231,68 @@
- return (1);
- }
-
--int init_client(int *sock, char *host, int port, int type)
-+int init_client(int *sock, char *host, int port, int type, int use_ipv4, int use_ipv6)
- {
-+# if OPENSSL_USE_IPV6
-+ unsigned char ip[16];
-+# else
- unsigned char ip[4];
-+# endif
-
-- memset(ip, '\0', sizeof ip);
-- if (!host_ip(host, &(ip[0])))
-- return 0;
-- return init_client_ip(sock, ip, port, type);
--}
--
--static int init_client_ip(int *sock, unsigned char ip[4], int port, int type)
--{
-- unsigned long addr;
-+ if (use_ipv4)
-+ if (host_ip(host, ip, AF_INET))
-+ return(init_client_ip(sock, ip, port, type, AF_INET));
-+# if OPENSSL_USE_IPV6
-+ if (use_ipv6)
-+ if (host_ip(host, ip, AF_INET6))
-+ return(init_client_ip(sock, ip, port, type, AF_INET6));
-+# endif
-+ return 0;
-+}
-+
-+static int init_client_ip(int *sock, unsigned char ip[4], int port, int type, int domain)
-+{
-+# if OPENSSL_USE_IPV6
-+ struct sockaddr_storage them;
-+ struct sockaddr_in *them_in = (struct sockaddr_in *)&them;
-+ struct sockaddr_in6 *them_in6 = (struct sockaddr_in6 *)&them;
-+# else
- struct sockaddr_in them;
-+ struct sockaddr_in *them_in = &them;
-+# endif
-+ socklen_t addr_len;
- int s, i;
-
- if (!ssl_sock_init())
- return (0);
-
- memset((char *)&them, 0, sizeof(them));
-- them.sin_family = AF_INET;
-- them.sin_port = htons((unsigned short)port);
-- addr = (unsigned long)
-- ((unsigned long)ip[0] << 24L) |
-- ((unsigned long)ip[1] << 16L) |
-- ((unsigned long)ip[2] << 8L) | ((unsigned long)ip[3]);
-- them.sin_addr.s_addr = htonl(addr);
-+ if (domain == AF_INET) {
-+ addr_len = (socklen_t)sizeof(struct sockaddr_in);
-+ them_in->sin_family=AF_INET;
-+ them_in->sin_port=htons((unsigned short)port);
-+# ifndef BIT_FIELD_LIMITS
-+ memcpy(&them_in->sin_addr.s_addr, ip, 4);
-+# else
-+ memcpy(&them_in->sin_addr, ip, 4);
-+# endif
-+ }
-+ else
-+# if OPENSSL_USE_IPV6
-+ {
-+ addr_len = (socklen_t)sizeof(struct sockaddr_in6);
-+ them_in6->sin6_family=AF_INET6;
-+ them_in6->sin6_port=htons((unsigned short)port);
-+ memcpy(&(them_in6->sin6_addr), ip, sizeof(struct in6_addr));
-+ }
-+# else
-+ return(0);
-+# endif
-
- if (type == SOCK_STREAM)
-- s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
-+ s = socket(domain, SOCK_STREAM, SOCKET_PROTOCOL);
- else /* ( type == SOCK_DGRAM) */
-- s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-+ s = socket(domain, SOCK_DGRAM, IPPROTO_UDP);
-
- if (s == INVALID_SOCKET) {
- perror("socket");
-@@ -280,7 +310,7 @@
- }
- # endif
-
-- if (connect(s, (struct sockaddr *)&them, sizeof(them)) == -1) {
-+ if (connect(s, (struct sockaddr *)&them, addr_len) == -1) {
- closesocket(s);
- perror("connect");
- return (0);
-@@ -292,14 +322,14 @@
- int do_server(int port, int type, int *ret,
- int (*cb) (char *hostname, int s, int stype,
- unsigned char *context), unsigned char *context,
-- int naccept)
-+ int naccept, int use_ipv4, int use_ipv6)
- {
- int sock;
- char *name = NULL;
- int accept_socket = 0;
- int i;
-
-- if (!init_server(&accept_socket, port, type))
-+ if (!init_server(&accept_socket, port, type, use_ipv4, use_ipv6))
- return (0);
-
- if (ret != NULL) {
-@@ -328,32 +358,41 @@
- }
- }
-
--static int init_server_long(int *sock, int port, char *ip, int type)
-+static int init_server_long(int *sock, int port, char *ip, int type, int use_ipv4, int use_ipv6)
- {
- int ret = 0;
-+ int domain;
-+# if OPENSSL_USE_IPV6
-+ struct sockaddr_storage server;
-+ struct sockaddr_in *server_in = (struct sockaddr_in *)&server;
-+ struct sockaddr_in6 *server_in6 = (struct sockaddr_in6 *)&server;
-+# else
- struct sockaddr_in server;
-+ struct sockaddr_in *server_in = &server;
-+# endif
-+ socklen_t addr_len;
- int s = -1;
-
-+ if (!use_ipv4 && !use_ipv6)
-+ goto err;
-+# if OPENSSL_USE_IPV6
-+ /* we are fine here */
-+# else
-+ if (use_ipv6)
-+ goto err;
-+# endif
- if (!ssl_sock_init())
- return (0);
-
-- memset((char *)&server, 0, sizeof(server));
-- server.sin_family = AF_INET;
-- server.sin_port = htons((unsigned short)port);
-- if (ip == NULL)
-- server.sin_addr.s_addr = INADDR_ANY;
-- else
--/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
--# ifndef BIT_FIELD_LIMITS
-- memcpy(&server.sin_addr.s_addr, ip, 4);
-+#if OPENSSL_USE_IPV6
-+ domain = use_ipv6 ? AF_INET6 : AF_INET;
- # else
-- memcpy(&server.sin_addr, ip, 4);
-+ domain = AF_INET;
- # endif
--
- if (type == SOCK_STREAM)
-- s = socket(AF_INET, SOCK_STREAM, SOCKET_PROTOCOL);
-- else /* type == SOCK_DGRAM */
-- s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
-+ s=socket(domain, SOCK_STREAM, SOCKET_PROTOCOL);
-+ else /* type == SOCK_DGRAM */
-+ s=socket(domain, SOCK_DGRAM, IPPROTO_UDP);
-
- if (s == INVALID_SOCKET)
- goto err;
-@@ -363,7 +402,42 @@
- setsockopt(s, SOL_SOCKET, SO_REUSEADDR, (void *)&j, sizeof j);
- }
- # endif
-- if (bind(s, (struct sockaddr *)&server, sizeof(server)) == -1) {
-+# if OPENSSL_USE_IPV6
-+ if ((use_ipv4 == 0) && (use_ipv6 == 1)) {
-+ const int on = 1;
-+
-+ setsockopt(s, IPPROTO_IPV6, IPV6_V6ONLY,
-+ (const void *) &on, sizeof(int));
-+ }
-+# endif
-+ if (domain == AF_INET) {
-+ addr_len = (socklen_t)sizeof(struct sockaddr_in);
-+ memset(server_in, 0, sizeof(struct sockaddr_in));
-+ server_in->sin_family=AF_INET;
-+ server_in->sin_port = htons((unsigned short)port);
-+ if (ip == NULL)
-+ server_in->sin_addr.s_addr = htonl(INADDR_ANY);
-+ else
-+/* Added for T3E, address-of fails on bit field (beckman@acl.lanl.gov) */
-+# ifndef BIT_FIELD_LIMITS
-+ memcpy(&server_in->sin_addr.s_addr, ip, 4);
-+# else
-+ memcpy(&server_in->sin_addr, ip, 4);
-+# endif
-+ }
-+# if OPENSSL_USE_IPV6
-+ else {
-+ addr_len = (socklen_t)sizeof(struct sockaddr_in6);
-+ memset(server_in6, 0, sizeof(struct sockaddr_in6));
-+ server_in6->sin6_family = AF_INET6;
-+ server_in6->sin6_port = htons((unsigned short)port);
-+ if (ip == NULL)
-+ server_in6->sin6_addr = in6addr_any;
-+ else
-+ memcpy(&server_in6->sin6_addr, ip, sizeof(struct in6_addr));
-+ }
-+# endif
-+ if (bind(s, (struct sockaddr *)&server, addr_len) == -1) {
- # ifndef OPENSSL_SYS_WINDOWS
- perror("bind");
- # endif
-@@ -381,16 +455,23 @@
- return (ret);
- }
-
--static int init_server(int *sock, int port, int type)
-+static int init_server(int *sock, int port, int type, int use_ipv4, int use_ipv6)
- {
-- return (init_server_long(sock, port, NULL, type));
-+ return (init_server_long(sock, port, NULL, type, use_ipv4, use_ipv6));
- }
-
- static int do_accept(int acc_sock, int *sock, char **host)
- {
- int ret;
- struct hostent *h1, *h2;
-- static struct sockaddr_in from;
-+#if OPENSSL_USE_IPV6
-+ struct sockaddr_storage from;
-+ struct sockaddr_in *from_in = (struct sockaddr_in *)&from;
-+ struct sockaddr_in6 *from_in6 = (struct sockaddr_in6 *)&from;
-+#else
-+ struct sockaddr_in from;
-+ struct sockaddr_in *from_in = &from;
-+#endif
- int len;
- /* struct linger ling; */
-
-@@ -440,14 +521,25 @@
-
- if (host == NULL)
- goto end;
-+# if OPENSSL_USE_IPV6
-+ if (from.ss_family == AF_INET)
-+# else
-+ if (from.sin_family == AF_INET)
-+# endif
- # ifndef BIT_FIELD_LIMITS
-- /* I should use WSAAsyncGetHostByName() under windows */
-- h1 = gethostbyaddr((char *)&from.sin_addr.s_addr,
-- sizeof(from.sin_addr.s_addr), AF_INET);
-+ /* I should use WSAAsyncGetHostByName() under windows */
-+ h1 = gethostbyaddr((char *)&from_in->sin_addr.s_addr,
-+ sizeof(from_in->sin_addr.s_addr), AF_INET);
- # else
-- h1 = gethostbyaddr((char *)&from.sin_addr,
-- sizeof(struct in_addr), AF_INET);
-+ h1 = gethostbyaddr((char *)&from_in->sin_addr,
-+ sizeof(struct in_addr), AF_INET);
-+# endif
-+# if OPENSSL_USE_IPV6
-+ else
-+ h1 = gethostbyaddr((char *)&from_in6->sin6_addr,
-+ sizeof(struct in6_addr), AF_INET6);
- # endif
-+
- if (h1 == NULL) {
- BIO_printf(bio_err, "bad gethostbyaddr\n");
- *host = NULL;
-@@ -460,14 +552,22 @@
- }
- BUF_strlcpy(*host, h1->h_name, strlen(h1->h_name) + 1);
-
-- h2 = GetHostByName(*host);
-+# if OPENSSL_USE_IPV6
-+ h2=GetHostByName(*host, from.ss_family);
-+# else
-+ h2=GetHostByName(*host, from.sin_family);
-+# endif
- if (h2 == NULL) {
- BIO_printf(bio_err, "gethostbyname failure\n");
- closesocket(ret);
- return (0);
- }
-- if (h2->h_addrtype != AF_INET) {
-- BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
-+# if OPENSSL_USE_IPV6
-+ if (h2->h_addrtype != from.ss_family) {
-+# else
-+ if (h2->h_addrtype != from.sin_family) {
-+# endif
-+ BIO_printf(bio_err, "gethostbyname addr is not correct\n");
- closesocket(ret);
- return (0);
- }
-@@ -483,14 +583,14 @@
- char *h, *p;
-
- h = str;
-- p = strchr(str, ':');
-+ p = strrchr(str, ':');
- if (p == NULL) {
- BIO_printf(bio_err, "no port defined\n");
- return (0);
- }
- *(p++) = '\0';
-
-- if ((ip != NULL) && !host_ip(str, ip))
-+ if ((ip != NULL) && !host_ip(str, ip, AF_INET))
- goto err;
- if (host_ptr != NULL)
- *host_ptr = h;
-@@ -502,44 +602,51 @@
- return (0);
- }
-
--static int host_ip(char *str, unsigned char ip[4])
-+static int host_ip(char *str, unsigned char *ip, int domain)
- {
- unsigned int in[4];
-+ unsigned long l;
- int i;
-
-- if (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) ==
-- 4) {
-+ if ((domain == AF_INET) && (sscanf(str, "%u.%u.%u.%u", &(in[0]), &(in[1]), &(in[2]), &(in[3])) == 4)) {
- for (i = 0; i < 4; i++)
- if (in[i] > 255) {
- BIO_printf(bio_err, "invalid IP address\n");
- goto err;
- }
-- ip[0] = in[0];
-- ip[1] = in[1];
-- ip[2] = in[2];
-- ip[3] = in[3];
-- } else { /* do a gethostbyname */
-+ l=htonl((in[0]<<24L)|(in[1]<<16L)|(in[2]<<8L)|in[3]);
-+ memcpy(ip, &l, 4);
-+ return 1;
-+ }
-+# if OPENSSL_USE_IPV6
-+ else if ((domain == AF_INET6) && (inet_pton(AF_INET6, str, ip) == 1))
-+ return 1;
-+# endif
-+ else { /* do a gethostbyname */
- struct hostent *he;
-
- if (!ssl_sock_init())
- return (0);
-
-- he = GetHostByName(str);
-+ he = GetHostByName(str, domain);
- if (he == NULL) {
- BIO_printf(bio_err, "gethostbyname failure\n");
- goto err;
- }
- /* cast to short because of win16 winsock definition */
-- if ((short)he->h_addrtype != AF_INET) {
-- BIO_printf(bio_err, "gethostbyname addr is not AF_INET\n");
-+ if ((short)he->h_addrtype != domain) {
-+ BIO_printf(bio_err, "gethostbyname addr is not correct\n");
- return (0);
- }
-- ip[0] = he->h_addr_list[0][0];
-- ip[1] = he->h_addr_list[0][1];
-- ip[2] = he->h_addr_list[0][2];
-- ip[3] = he->h_addr_list[0][3];
-+ if (domain == AF_INET)
-+ memset(ip, 0, 4);
-+# if OPENSSL_USE_IPV6
-+ else
-+ memset(ip, 0, 16);
-+# endif
-+ memcpy(ip, he->h_addr_list[0], he->h_length);
-+ return 1;
- }
-- return (1);
- err:
- return (0);
- }
-@@ -573,7 +680,7 @@
- static unsigned long ghbn_hits = 0L;
- static unsigned long ghbn_miss = 0L;
-
--static struct hostent *GetHostByName(char *name)
-+static struct hostent *GetHostByName(char *name, int domain)
- {
- struct hostent *ret;
- int i, lowi = 0;
-@@ -585,13 +692,18 @@
- lowi = i;
- }
- if (ghbn_cache[i].order > 0) {
-- if (strncmp(name, ghbn_cache[i].name, 128) == 0)
-+ if ((strncmp(name, ghbn_cache[i].name, 128) == 0) && (ghbn_cache[i].ent.h_addrtype == domain))
- break;
- }
- }
- if (i == GHBN_NUM) { /* no hit */
- ghbn_miss++;
-- ret = gethostbyname(name);
-+ if (domain == AF_INET)
-+ ret = gethostbyname(name);
-+# if OPENSSL_USE_IPV6
-+ else
-+ ret = gethostbyname2(name, AF_INET6);
-+# endif
- if (ret == NULL)
- return (NULL);
- /* else add to cache */
diff --git a/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch b/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch
deleted file mode 100644
index 0198818..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2a-parallel-install-dirs.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-https://rt.openssl.org/Ticket/Display.html?id=3736&user=guest&pass=guest
-
-From aba899f2eca21e11e5e9797bf8258e7265dea9f5 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 8 Mar 2015 01:32:01 -0500
-Subject: [PATCH] fix parallel install with dir creation
-
-The mkdir-p.pl does not handle parallel creation of directories.
-This comes up when the install_sw and install_docs rules run and
-both call mkdir-p.pl on sibling directory trees.
-
-Instead, lets create a single install_dirs rule that makes all of
-the dirs we need, and have these two install steps depend on that.
----
- Makefile.org | 17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/Makefile.org b/Makefile.org
-index a6d9471..78e6143 100644
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -536,9 +536,9 @@
- dist_pem_h:
- (cd crypto/pem; $(MAKE) -e $(BUILDENV) pem.h; $(MAKE) clean)
-
--install: all install_docs install_sw
-+install: install_docs install_sw
-
--install_sw:
-+install_dirs:
- @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR) \
- $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines \
-@@ -547,6 +547,13 @@
- $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \
- $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \
- $(INSTALL_PREFIX)$(OPENSSLDIR)/private
-+ @$(PERL) $(TOP)/util/mkdir-p.pl \
-+ $(INSTALL_PREFIX)$(MANDIR)/man1 \
-+ $(INSTALL_PREFIX)$(MANDIR)/man3 \
-+ $(INSTALL_PREFIX)$(MANDIR)/man5 \
-+ $(INSTALL_PREFIX)$(MANDIR)/man7
-+
-+install_sw: install_dirs
- @set -e; headerlist="$(EXHEADER)"; for i in $$headerlist;\
- do \
- (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
-@@ -636,12 +643,7 @@
- done; \
- done
-
--install_docs:
-- @$(PERL) $(TOP)/util/mkdir-p.pl \
-- $(INSTALL_PREFIX)$(MANDIR)/man1 \
-- $(INSTALL_PREFIX)$(MANDIR)/man3 \
-- $(INSTALL_PREFIX)$(MANDIR)/man5 \
-- $(INSTALL_PREFIX)$(MANDIR)/man7
-+install_docs: install_dirs
- @pod2man="`cd ./util; ./pod2mantest $(PERL)`"; \
- here="`pwd`"; \
- filecase=; \
---
-2.3.4
-
diff --git a/dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch b/dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch
deleted file mode 100644
index a7d6f4e..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2a-parallel-obj-headers.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-https://rt.openssl.org/Ticket/Display.html?id=3737&user=guest&pass=guest
-
-From ce279d4361e07e9af9ceca8a6e326e661758ad53 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 8 Mar 2015 01:34:48 -0500
-Subject: [PATCH] fix parallel generation of obj headers
-
-The current code has dummy sleep/touch commands to try and work
-around the parallel issue, but that is obviously racy. Instead
-lets force one of the files to depend on the other so we know
-they'll never run in parallel.
----
- crypto/objects/Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/crypto/objects/Makefile b/crypto/objects/Makefile
-index ad2db1e..7d32504 100644
---- a/crypto/objects/Makefile
-+++ b/crypto/objects/Makefile
-@@ -44,11 +44,11 @@
- # objects.pl both reads and writes obj_mac.num
- obj_mac.h: objects.pl objects.txt obj_mac.num
- $(PERL) objects.pl objects.txt obj_mac.num obj_mac.h
-- @sleep 1; touch obj_mac.h; sleep 1
-
--obj_xref.h: objxref.pl obj_xref.txt obj_mac.num
-+# This doesn't really need obj_mac.h, but since that rule reads & writes
-+# obj_mac.num, we can't run in parallel with it.
-+obj_xref.h: objxref.pl obj_xref.txt obj_mac.num obj_mac.h
- $(PERL) objxref.pl obj_mac.num obj_xref.txt > obj_xref.h
-- @sleep 1; touch obj_xref.h; sleep 1
-
- files:
- $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
---
-2.3.4
-
diff --git a/dev-libs/openssl/files/openssl-1.0.2a-parallel-symlinking.patch b/dev-libs/openssl/files/openssl-1.0.2a-parallel-symlinking.patch
deleted file mode 100644
index f2be696..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2a-parallel-symlinking.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-https://rt.openssl.org/Ticket/Display.html?id=3780&user=guest&pass=guest
-
-From cc81af135bda47eaa6956a0329cbbc55bf993ac1 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Fri, 3 Apr 2015 01:16:23 -0400
-Subject: [PATCH] fix race when symlink shareds libs
-
-When the crypto/ssl targets attempt to build their shared libs, they run:
- cd ..; make libcrypto.so.1.0.0
-The top level Makefile in turn runs the build-shared target for that lib.
-
-The build-shared target depends on both do_$(SHLIB_TARGET) & link-shared.
-When building in parallel, make is allowed to run both of these. They
-both run Makefile.shared for their respective targets:
-do_$(SHLIB_TARGET) ->
- link_a.linux-shared ->
- link_a.gnu ->
- ...; $(LINK_SO_A) ->
- $(LINK_SO) ->
- $(SYMLINK_SO)
-link-shared ->
- symlink.linux-shared ->
- symlink.gnu ->
- ...; $(SYMLINK_SO)
-
-The shell code for SYMLINK_SO attempts to do a [ -e lib ] check, but fails
-basic TOCTOU semantics. Depending on the load, that means two processes
-will run the sequence:
- rm -f libcrypto.so
- ln -s libcrypto.so.1.0.0 libcrypto.so
-
-Which obviously fails:
- ln: failed to create symbolic link 'libcrypto.so': File exists
-
-Since we know do_$(SHLIB_TARGET) will create the symlink for us, don't
-bother depending on link-shared at all in the top level Makefile when
-building things.
-
-Reported-by: Martin von Gagern <Martin.vGagern@gmx.net>
-URL: https://bugs.gentoo.org/545028
----
- Makefile.org | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.org b/Makefile.org
-index 890bfe4..576c60e 100644
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -350,7 +350,10 @@ link-shared:
- libs="$$libs -l$$i"; \
- done
-
--build-shared: do_$(SHLIB_TARGET) link-shared
-+# The link target in Makefile.shared will create the symlink for us, so no need
-+# to call link-shared directly. Doing so will cause races with two processes
-+# trying to symlink the lib.
-+build-shared: do_$(SHLIB_TARGET)
-
- do_$(SHLIB_TARGET):
- @ set -e; libs='-L. $(SHLIBDEPS)'; for i in $(SHLIBDIRS); do \
---
-2.3.4
-
diff --git a/dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch b/dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch
deleted file mode 100644
index 3a005c9..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2a-x32-asm.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-https://rt.openssl.org/Ticket/Display.html?id=3759&user=guest&pass=guest
-
-From 6257d59b3a68d2feb9d64317a1c556dc3813ee61 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sat, 21 Mar 2015 06:01:25 -0400
-Subject: [PATCH] crypto: use bigint in x86-64 perl
-
-When building on x32 systems where the default type is 32bit, make sure
-we can transparently represent 64bit integers. Otherwise we end up with
-build errors like:
-/usr/bin/perl asm/ghash-x86_64.pl elf > ghash-x86_64.s
-Integer overflow in hexadecimal number at asm/../../perlasm/x86_64-xlate.pl line 201, <> line 890.
-...
-ghash-x86_64.s: Assembler messages:
-ghash-x86_64.s:890: Error: junk '.15473355479995e+19' after expression
-
-We don't enable this globally as there are some cases where we'd get
-32bit values interpreted as unsigned when we need them as signed.
-
-Reported-by: Bertrand Jacquin <bertrand@jacquin.bzh>
-URL: https://bugs.gentoo.org/542618
----
- crypto/perlasm/x86_64-xlate.pl | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl
-index aae8288..0bf9774 100755
---- a/crypto/perlasm/x86_64-xlate.pl
-+++ b/crypto/perlasm/x86_64-xlate.pl
-@@ -195,6 +195,10 @@ my %globals;
- sub out {
- my $self = shift;
-
-+ # When building on x32 ABIs, the expanded hex value might be too
-+ # big to fit into 32bits. Enable transparent 64bit support here
-+ # so we can safely print it out.
-+ use bigint;
- if ($gas) {
- # Solaris /usr/ccs/bin/as can't handle multiplications
- # in $self->{value}
---
-2.3.3
-
diff --git a/dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch b/dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch
deleted file mode 100644
index 95f2818..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff --git a/Configure.orig b/Configure
-index 89e923d..f000983 100755
---- a/Configure.orig
-+++ b/Configure
-@@ -220,7 +220,7 @@ my %table=(
- "debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
- "debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -march=i486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -g -march=i486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
--"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-+"debug-linux-ia32-aes", "gcc:-DAES_EXPERIMENTAL -DL_ENDIAN -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:x86cpuid.o:bn-586.o co-586.o x86-mont.o::des-586.o crypt586.o:aes_x86core.o aes_cbc.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o::ghash-x86.o:::elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "debug-linux-generic32","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -g -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)",
- "debug-linux-generic64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -DTERMIO -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "debug-linux-x86_64","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DCRYPTO_MDEBUG -m64 -DL_ENDIAN -g -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
-@@ -327,7 +327,7 @@ my %table=(
- "hpux-parisc-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${no_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
- "hpux-parisc1_1-gcc","gcc:-O3 -DB_ENDIAN -DBN_DIV2W::-D_REENTRANT::-Wl,+s -ldld:BN_LLONG DES_PTR DES_UNROLL DES_RISC1:${parisc11_asm}:dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa1.1",
- "hpux-parisc2-gcc","gcc:-march=2.0 -O3 -DB_ENDIAN -D_REENTRANT::::-Wl,+s -ldld:SIXTY_FOUR_BIT RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL DES_RISC1:".eval{my $asm=$parisc20_asm;$asm=~s/2W\./2\./;$asm=~s/:64/:32/;$asm}.":dl:hpux-shared:-fPIC:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_32",
--"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o:::::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
-+"hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -D_REENTRANT::::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT::pa-risc2W.o::::::::::::::::void:dlfcn:hpux-shared:-fpic:-shared:.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::/pa20_64",
-
- # More attempts at unified 10.X and 11.X targets for HP C compiler.
- #
-@@ -584,9 +584,9 @@ my %table=(
- # Visual C targets
- #
- # Win64 targets, WIN64I denotes IA-64 and WIN64A - AMD64
--"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
-+"VC-WIN64I","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o:::ias:win32",
- "VC-WIN64A","cl:-W3 -Gs0 -Gy -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
--"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o::ias:win32",
-+"debug-VC-WIN64I","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64I::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:ia64cpuid.o:ia64.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o:::::::ghash-ia64.o:::ias:win32",
- "debug-VC-WIN64A","cl:-W3 -Gs0 -Gy -Zi -nologo -DOPENSSL_SYSNAME_WIN32 -DWIN32_LEAN_AND_MEAN -DL_ENDIAN -DUNICODE -D_UNICODE -D_CRT_SECURE_NO_DEPRECATE:::WIN64A::SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT EXPORT_VAR_AS_FN:".eval{my $asm=$x86_64_asm;$asm=~s/x86_64-gcc\.o/bn_asm.o/;$asm}.":auto:win32",
- # x86 Win32 target defaults to ANSI API, if you want UNICODE, complement
- # 'perl Configure VC-WIN32' with '-DUNICODE -D_UNICODE'
diff --git a/dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch b/dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch
deleted file mode 100644
index f676523..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch
+++ /dev/null
@@ -1,5227 +0,0 @@
-From d21c75c622eb13a80080ed15fa30474f806a0a0f Mon Sep 17 00:00:00 2001
-From: Vlad Krasnov <vlad@cloudflare.com>
-Date: Fri, 12 Feb 2016 18:25:11 -0800
-Subject: [PATCH] Implementation of draft and RFC versions of CHACHA20-POLY1305
- ciphers
-
----
- Configure | 48 +-
- Makefile.org | 4 +-
- apps/speed.c | 30 +-
- crypto/chacha20poly1305/Makefile | 97 +++
- crypto/chacha20poly1305/asm/chacha20_avx.pl | 408 +++++++++++
- crypto/chacha20poly1305/asm/chacha20_avx2.pl | 443 ++++++++++++
- crypto/chacha20poly1305/asm/poly1305_avx.pl | 732 ++++++++++++++++++++
- crypto/chacha20poly1305/asm/poly1305_avx2.pl | 984 +++++++++++++++++++++++++++
- crypto/chacha20poly1305/asm/poly1305_x64.pl | 281 ++++++++
- crypto/chacha20poly1305/chacha20.c | 162 +++++
- crypto/chacha20poly1305/chacha20poly1305.h | 79 +++
- crypto/chacha20poly1305/chapolytest.c | 470 +++++++++++++
- crypto/chacha20poly1305/poly1305.c | 287 ++++++++
- crypto/cryptlib.c | 10 -
- crypto/evp/Makefile | 7 +-
- crypto/evp/e_chacha20poly1305.c | 435 ++++++++++++
- crypto/evp/evp.h | 4 +
- ssl/s3_lib.c | 119 ++++
- ssl/ssl.h | 2 +
- ssl/ssl_ciph.c | 60 +-
- ssl/ssl_locl.h | 2 +
- ssl/tls1.h | 28 +
- test/Makefile | 17 +-
- 23 files changed, 4655 insertions(+), 54 deletions(-)
- create mode 100644 crypto/chacha20poly1305/Makefile
- create mode 100644 crypto/chacha20poly1305/asm/chacha20_avx.pl
- create mode 100644 crypto/chacha20poly1305/asm/chacha20_avx2.pl
- create mode 100644 crypto/chacha20poly1305/asm/poly1305_avx.pl
- create mode 100644 crypto/chacha20poly1305/asm/poly1305_avx2.pl
- create mode 100644 crypto/chacha20poly1305/asm/poly1305_x64.pl
- create mode 100644 crypto/chacha20poly1305/chacha20.c
- create mode 100644 crypto/chacha20poly1305/chacha20poly1305.h
- create mode 100644 crypto/chacha20poly1305/chapolytest.c
- create mode 100644 crypto/chacha20poly1305/poly1305.c
- create mode 100644 crypto/evp/e_chacha20poly1305.c
-
-diff --git a/Configure b/Configure
-index 4a715dc..f3ab6cd 100755
---- a/Configure
-+++ b/Configure
-@@ -146,25 +146,25 @@ my $tlib="-lnsl -lsocket";
- my $bits1="THIRTY_TWO_BIT ";
- my $bits2="SIXTY_FOUR_BIT ";
-
--my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o x86-gf2m.o::des-586.o crypt586.o:aes-586.o vpaes-x86.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o:";
-+my $x86_asm="x86cpuid.o:bn-586.o co-586.o x86-mont.o x86-gf2m.o::des-586.o crypt586.o:aes-586.o vpaes-x86.o aesni-x86.o:bf-586.o:md5-586.o:sha1-586.o sha256-586.o sha512-586.o:cast-586.o:rc4-586.o:rmd-586.o:rc5-586.o:wp_block.o wp-mmx.o:cmll-x86.o:ghash-x86.o::";
-
- my $x86_elf_asm="$x86_asm:elf";
-
--my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o:ecp_nistz256.o ecp_nistz256-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o aesni-gcm-x86_64.o:";
--my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void";
--my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o::des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o::::::camellia.o cmll_misc.o cmll_cbc.o cmllt4-sparcv9.o:ghash-sparcv9.o::void";
--my $sparcv8_asm=":sparcv8.o::des_enc-sparc.o fcrypt_b.o:::::::::::::void";
--my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o::::::sha1-alpha.o:::::::ghash-alpha.o::void";
--my $mips64_asm=":bn-mips.o mips-mont.o:::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o sha512-mips.o::::::::";
-+my $x86_64_asm="x86_64cpuid.o:x86_64-gcc.o x86_64-mont.o x86_64-mont5.o x86_64-gf2m.o rsaz_exp.o rsaz-x86_64.o rsaz-avx2.o:ecp_nistz256.o ecp_nistz256-x86_64.o::aes-x86_64.o vpaes-x86_64.o bsaes-x86_64.o aesni-x86_64.o aesni-sha1-x86_64.o aesni-sha256-x86_64.o aesni-mb-x86_64.o::md5-x86_64.o:sha1-x86_64.o sha256-x86_64.o sha512-x86_64.o sha1-mb-x86_64.o sha256-mb-x86_64.o::rc4-x86_64.o rc4-md5-x86_64.o:::wp-x86_64.o:cmll-x86_64.o cmll_misc.o:ghash-x86_64.o aesni-gcm-x86_64.o::chacha20_avx.o chacha20_avx2.o poly1305_x64.o poly1305_avx2.o";
-+my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o:::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o:::void";
-+my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o::des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o::::::camellia.o cmll_misc.o cmll_cbc.o cmllt4-sparcv9.o:ghash-sparcv9.o:::void";
-+my $sparcv8_asm=":sparcv8.o::des_enc-sparc.o fcrypt_b.o::::::::::::::void";
-+my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o::::::sha1-alpha.o:::::::ghash-alpha.o:::void";
-+my $mips64_asm=":bn-mips.o mips-mont.o:::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o sha512-mips.o:::::::::";
- my $mips32_asm=$mips64_asm; $mips32_asm =~ s/\s*sha512\-mips\.o//;
--my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o s390x-gf2m.o:::aes-s390x.o aes-ctr.o aes-xts.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o:";
--my $armv4_asm="armcap.o armv4cpuid.o:bn_asm.o armv4-mont.o armv4-gf2m.o:::aes_cbc.o aes-armv4.o bsaes-armv7.o aesv8-armx.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o ghashv8-armx.o::void";
--my $aarch64_asm="armcap.o arm64cpuid.o mem_clr.o::::aes_core.o aes_cbc.o aesv8-armx.o:::sha1-armv8.o sha256-armv8.o sha512-armv8.o:::::::ghashv8-armx.o:";
--my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o:::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::32";
--my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o:::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o::64";
--my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o:::aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o sha256p8-ppc.o sha512p8-ppc.o:::::::ghashp8-ppc.o:";
-+my $s390x_asm="s390xcap.o s390xcpuid.o:bn-s390x.o s390x-mont.o s390x-gf2m.o:::aes-s390x.o aes-ctr.o aes-xts.o:::sha1-s390x.o sha256-s390x.o sha512-s390x.o::rc4-s390x.o:::::ghash-s390x.o::";
-+my $armv4_asm="armcap.o armv4cpuid.o:bn_asm.o armv4-mont.o armv4-gf2m.o:::aes_cbc.o aes-armv4.o bsaes-armv7.o aesv8-armx.o:::sha1-armv4-large.o sha256-armv4.o sha512-armv4.o:::::::ghash-armv4.o ghashv8-armx.o:::void";
-+my $aarch64_asm="armcap.o arm64cpuid.o mem_clr.o::::aes_core.o aes_cbc.o aesv8-armx.o:::sha1-armv8.o sha256-armv8.o sha512-armv8.o:::::::ghashv8-armx.o::";
-+my $parisc11_asm="pariscid.o:bn_asm.o parisc-mont.o:::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o:::32";
-+my $parisc20_asm="pariscid.o:pa-risc2W.o parisc-mont.o:::aes_core.o aes_cbc.o aes-parisc.o:::sha1-parisc.o sha256-parisc.o sha512-parisc.o::rc4-parisc.o:::::ghash-parisc.o:::64";
-+my $ppc64_asm="ppccpuid.o ppccap.o:bn-ppc.o ppc-mont.o ppc64-mont.o:::aes_core.o aes_cbc.o aes-ppc.o vpaes-ppc.o aesp8-ppc.o:::sha1-ppc.o sha256-ppc.o sha512-ppc.o sha256p8-ppc.o sha512p8-ppc.o:::::::ghashp8-ppc.o::";
- my $ppc32_asm=$ppc64_asm;
--my $no_asm="::::::::::::::::void";
-+my $no_asm=":::::::::::::::::void";
-
- # As for $BSDthreads. Idea is to maintain "collective" set of flags,
- # which would cover all BSD flavors. -pthread applies to them all,
-@@ -710,6 +710,7 @@ my $idx_wp_obj = $idx++;
- my $idx_cmll_obj = $idx++;
- my $idx_modes_obj = $idx++;
- my $idx_engines_obj = $idx++;
-+my $idx_chapoly_obj = $idx++;
- my $idx_perlasm_scheme = $idx++;
- my $idx_dso_scheme = $idx++;
- my $idx_shared_target = $idx++;
-@@ -752,6 +753,7 @@ my $bf ="crypto/bf/bf_locl.h";
- my $bn_asm ="bn_asm.o";
- my $des_enc="des_enc.o fcrypt_b.o";
- my $aes_enc="aes_core.o aes_cbc.o";
-+my $chapoly_enc="";
- my $bf_enc ="bf_enc.o";
- my $cast_enc="c_enc.o";
- my $rc4_enc="rc4_enc.o rc4_skey.o";
-@@ -1210,7 +1212,7 @@ $openssldir=$prefix . "/" . $openssldir if $openssldir !~ /(^\/|^[a-zA-Z]:[\\\/]
-
- print "IsMK1MF=$IsMK1MF\n";
-
--my @fields = split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
-+my @fields = split(/\s*:\s*/,$table{$target} . ":" x 31 , -1);
- my $cc = $fields[$idx_cc];
- # Allow environment CC to override compiler...
- if($ENV{CC}) {
-@@ -1239,6 +1241,7 @@ my $wp_obj = $fields[$idx_wp_obj];
- my $cmll_obj = $fields[$idx_cmll_obj];
- my $modes_obj = $fields[$idx_modes_obj];
- my $engines_obj = $fields[$idx_engines_obj];
-+my $chapoly_obj = $fields[$idx_chapoly_obj];
- my $perlasm_scheme = $fields[$idx_perlasm_scheme];
- my $dso_scheme = $fields[$idx_dso_scheme];
- my $shared_target = $fields[$idx_shared_target];
-@@ -1405,7 +1408,7 @@ if ($no_asm)
- {
- $cpuid_obj=$bn_obj=$ec_obj=
- $des_obj=$aes_obj=$bf_obj=$cast_obj=$rc4_obj=$rc5_obj=$cmll_obj=
-- $modes_obj=$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj=$engines_obj="";
-+ $modes_obj=$sha1_obj=$md5_obj=$rmd160_obj=$wp_obj=$engines_obj=$chapoly_obj="";
- }
-
- if (!$no_shared)
-@@ -1558,6 +1561,14 @@ $bf_obj=$bf_enc unless ($bf_obj =~ /\.o$/);
- $cast_obj=$cast_enc unless ($cast_obj =~ /\.o$/);
- $rc4_obj=$rc4_enc unless ($rc4_obj =~ /\.o$/);
- $rc5_obj=$rc5_enc unless ($rc5_obj =~ /\.o$/);
-+if ($chapoly_obj =~ /\.o$/)
-+ {
-+ $cflags.=" -DCHAPOLY_x86_64_ASM";
-+ }
-+else
-+ {
-+ $chapoly_obj=$chapoly_enc;
-+ }
- if ($sha1_obj =~ /\.o$/)
- {
- # $sha1_obj=$sha1_enc;
-@@ -1740,6 +1751,7 @@ while (<IN>)
- s/^WP_ASM_OBJ=.*$/WP_ASM_OBJ= $wp_obj/;
- s/^CMLL_ENC=.*$/CMLL_ENC= $cmll_obj/;
- s/^MODES_ASM_OBJ.=*$/MODES_ASM_OBJ= $modes_obj/;
-+ s/^CHAPOLY_ENC=.*$/CHAPOLY_ENC= $chapoly_obj/;
- s/^ENGINES_ASM_OBJ.=*$/ENGINES_ASM_OBJ= $engines_obj/;
- s/^PERLASM_SCHEME=.*$/PERLASM_SCHEME= $perlasm_scheme/;
- s/^PROCESSOR=.*/PROCESSOR= $processor/;
-@@ -1802,6 +1814,7 @@ print "RMD160_OBJ_ASM=$rmd160_obj\n";
- print "CMLL_ENC =$cmll_obj\n";
- print "MODES_OBJ =$modes_obj\n";
- print "ENGINES_OBJ =$engines_obj\n";
-+print "CHAPOLY_ENC =$chapoly_obj\n";
- print "PROCESSOR =$processor\n";
- print "RANLIB =$ranlib\n";
- print "ARFLAGS =$arflags\n";
-@@ -2200,7 +2213,7 @@ sub print_table_entry
- my ($cc, $cflags, $unistd, $thread_cflag, $sys_id, $lflags,
- $bn_ops, $cpuid_obj, $bn_obj, $ec_obj, $des_obj, $aes_obj, $bf_obj,
- $md5_obj, $sha1_obj, $cast_obj, $rc4_obj, $rmd160_obj,
-- $rc5_obj, $wp_obj, $cmll_obj, $modes_obj, $engines_obj,
-+ $rc5_obj, $wp_obj, $cmll_obj, $modes_obj, $engines_obj, $chapoly_obj,
- $perlasm_scheme, $dso_scheme, $shared_target, $shared_cflag,
- $shared_ldflag, $shared_extension, $ranlib, $arflags, $multilib)=
- split(/\s*:\s*/,$table{$target} . ":" x 30 , -1);
-@@ -2231,6 +2244,7 @@ sub print_table_entry
- \$cmll_obj = $cmll_obj
- \$modes_obj = $modes_obj
- \$engines_obj = $engines_obj
-+\$chapoly_obj = $chapoly_obj
- \$perlasm_scheme = $perlasm_scheme
- \$dso_scheme = $dso_scheme
- \$shared_target= $shared_target
-diff --git a/Makefile.org b/Makefile.org
-index 76fdbdf..6556ef6 100644
---- a/Makefile.org
-+++ b/Makefile.org
-@@ -91,6 +91,7 @@ BN_ASM= bn_asm.o
- EC_ASM=
- DES_ENC= des_enc.o fcrypt_b.o
- AES_ENC= aes_core.o aes_cbc.o
-+CHAPOLY_ENC=
- BF_ENC= bf_enc.o
- CAST_ENC= c_enc.o
- RC4_ENC= rc4_enc.o
-@@ -148,7 +149,7 @@ SDIRS= \
- bn ec rsa dsa ecdsa dh ecdh dso engine \
- buffer bio stack lhash rand err \
- evp asn1 pem x509 x509v3 conf txt_db pkcs7 pkcs12 comp ocsp ui krb5 \
-- cms pqueue ts jpake srp store cmac
-+ cms pqueue ts jpake srp store cmac chacha20poly1305
- # keep in mind that the above list is adjusted by ./Configure
- # according to no-xxx arguments...
-
-@@ -234,6 +235,7 @@ BUILDENV= LC_ALL=C PLATFORM='$(PLATFORM)' PROCESSOR='$(PROCESSOR)'\
- WP_ASM_OBJ='$(WP_ASM_OBJ)' \
- MODES_ASM_OBJ='$(MODES_ASM_OBJ)' \
- ENGINES_ASM_OBJ='$(ENGINES_ASM_OBJ)' \
-+ CHAPOLY_ENC='$(CHAPOLY_ENC)' \
- PERLASM_SCHEME='$(PERLASM_SCHEME)' \
- FIPSLIBDIR='${FIPSLIBDIR}' \
- FIPSDIR='${FIPSDIR}' \
-diff --git a/apps/speed.c b/apps/speed.c
-index 95adcc1..94b80a1 100644
---- a/apps/speed.c
-+++ b/apps/speed.c
-@@ -1,4 +1,4 @@
--/* apps/speed.c */
-+/* apps/speed.c -*- mode:C; c-file-style: "eay" -*- */
- /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
- * All rights reserved.
- *
-@@ -226,7 +226,7 @@
- # endif
-
- # undef BUFSIZE
--# define BUFSIZE ((long)1024*8+1)
-+# define BUFSIZE ((long)1024*8+16)
- static volatile int run = 0;
-
- static int mr = 0;
-@@ -241,7 +241,7 @@ static void print_result(int alg, int run_no, int count, double time_used);
- static int do_multi(int multi);
- # endif
-
--# define ALGOR_NUM 30
-+# define ALGOR_NUM 31
- # define SIZE_NUM 5
- # define RSA_NUM 4
- # define DSA_NUM 3
-@@ -256,7 +256,7 @@ static const char *names[ALGOR_NUM] = {
- "aes-128 cbc", "aes-192 cbc", "aes-256 cbc",
- "camellia-128 cbc", "camellia-192 cbc", "camellia-256 cbc",
- "evp", "sha256", "sha512", "whirlpool",
-- "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash"
-+ "aes-128 ige", "aes-192 ige", "aes-256 ige", "ghash", "chacha20-poly1305"
- };
-
- static double results[ALGOR_NUM][SIZE_NUM];
-@@ -516,6 +516,7 @@ int MAIN(int argc, char **argv)
- # define D_IGE_192_AES 27
- # define D_IGE_256_AES 28
- # define D_GHASH 29
-+# define D_CHAPOLY 30
- double d = 0.0;
- long c[ALGOR_NUM][SIZE_NUM];
- # define R_DSA_512 0
-@@ -972,6 +973,9 @@ int MAIN(int argc, char **argv)
- doit[D_CBC_256_CML] = 1;
- } else
- # endif
-+ if (strcmp(*argv, "chacha20-poly1305") == 0) {
-+ doit[D_CHAPOLY] = 1;
-+ } else
- # ifndef OPENSSL_NO_RSA
- if (strcmp(*argv, "rsa") == 0) {
- rsa_doit[R_RSA_512] = 1;
-@@ -1139,6 +1143,7 @@ int MAIN(int argc, char **argv)
- BIO_printf(bio_err, "rc4");
- # endif
- BIO_printf(bio_err, "\n");
-+ BIO_printf(bio_err, "chacha20-poly1305\n");
-
- # ifndef OPENSSL_NO_RSA
- BIO_printf(bio_err, "rsa512 rsa1024 rsa2048 rsa4096\n");
-@@ -1370,6 +1375,7 @@ int MAIN(int argc, char **argv)
- c[D_IGE_192_AES][0] = count;
- c[D_IGE_256_AES][0] = count;
- c[D_GHASH][0] = count;
-+ c[D_CHAPOLY][0] = count;
-
- for (i = 1; i < SIZE_NUM; i++) {
- c[D_MD2][i] = c[D_MD2][0] * 4 * lengths[0] / lengths[i];
-@@ -1821,6 +1827,22 @@ int MAIN(int argc, char **argv)
- CRYPTO_gcm128_release(ctx);
- }
- # endif
-+ if (doit[D_CHAPOLY]) {
-+ EVP_CIPHER_CTX ctx;
-+ EVP_CIPHER_CTX_init(&ctx);
-+ EVP_CipherInit_ex(&ctx, EVP_chacha20_poly1305(), NULL, key32, iv, 1);
-+
-+ for (j = 0; j < SIZE_NUM; j++) {
-+ print_message(names[D_CHAPOLY], c[D_CHAPOLY][j], lengths[j]);
-+ Time_F(START);
-+ for (count = 0, run = 1; COND(c[D_CHAPOLY][j]); count++) {
-+ EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_AEAD_TLS1_AAD, 13, buf);
-+ EVP_Cipher(&ctx, buf, buf, (unsigned long)lengths[j] + 16);
-+ }
-+ d = Time_F(STOP);
-+ print_result(D_CHAPOLY, j, count, d);
-+ }
-+ }
- # ifndef OPENSSL_NO_CAMELLIA
- if (doit[D_CBC_128_CML]) {
- for (j = 0; j < SIZE_NUM; j++) {
-diff --git a/crypto/chacha20poly1305/Makefile b/crypto/chacha20poly1305/Makefile
-new file mode 100644
-index 0000000..446eb27
---- /dev/null
-+++ b/crypto/chacha20poly1305/Makefile
-@@ -0,0 +1,97 @@
-+#
-+# crypto/chacha20poly1305/Makefile
-+#
-+
-+DIR= chacha20poly1305
-+TOP= ../..
-+CC= cc
-+CPP= $(CC) -E
-+INCLUDES=
-+CFLAG=-g
-+MAKEFILE= Makefile
-+AR= ar r
-+
-+CHAPOLY_ENC=
-+
-+CFLAGS= $(INCLUDES) $(CFLAG)
-+ASFLAGS= $(INCLUDES) $(ASFLAG)
-+AFLAGS= $(ASFLAGS)
-+
-+GENERAL=Makefile
-+TEST=chapolytest.c
-+APPS=
-+
-+LIB=$(TOP)/libcrypto.a
-+LIBSRC=chacha20.c poly1305.c
-+LIBOBJ=chacha20.o poly1305.o $(CHAPOLY_ENC)
-+
-+SRC= $(LIBSRC)
-+
-+EXHEADER=chacha20poly1305.h
-+HEADER= $(EXHEADER)
-+
-+ALL= $(GENERAL) $(SRC) $(HEADER)
-+
-+top:
-+ (cd ../..; $(MAKE) DIRS=crypto SDIRS=$(DIR) sub_all)
-+
-+all: lib
-+
-+lib: $(LIBOBJ)
-+ $(AR) $(LIB) $(LIBOBJ)
-+ $(RANLIB) $(LIB) || echo Never mind.
-+ @touch lib
-+
-+poly1305_x64.s:asm/poly1305_x64.pl
-+ $(PERL) asm/poly1305_x64.pl $(PERLASM_SCHEME) > $@
-+chacha20_avx.s:asm/chacha20_avx.pl
-+ $(PERL) asm/chacha20_avx.pl $(PERLASM_SCHEME) > $@
-+poly1305_avx.s:asm/poly1305_avx.pl
-+ $(PERL) asm/poly1305_avx.pl $(PERLASM_SCHEME) > $@
-+chacha20_avx2.s:asm/chacha20_avx2.pl
-+ $(PERL) asm/chacha20_avx2.pl $(PERLASM_SCHEME) > $@
-+poly1305_avx2.s:asm/poly1305_avx2.pl
-+ $(PERL) asm/poly1305_avx2.pl $(PERLASM_SCHEME) > $@
-+
-+files:
-+ $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
-+
-+links:
-+ @$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
-+ @$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
-+ @$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
-+
-+install:
-+ @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
-+ @headerlist="$(EXHEADER)"; for i in $$headerlist ; \
-+ do \
-+ (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
-+ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
-+ done;
-+
-+tags:
-+ ctags $(SRC)
-+
-+tests:
-+
-+chapolytest: top chapolytest.c $(LIB)
-+ $(CC) $(CFLAGS) -Wall -Werror -g -o chapolytest cahpolytest.c $(LIB)
-+
-+lint:
-+ lint -DLINT $(INCLUDES) $(SRC)>fluff
-+
-+depend:
-+ @[ -n "$(MAKEDEPEND)" ] # should be set by upper Makefile...
-+ $(MAKEDEPEND) -- $(CFLAG) $(INCLUDES) $(DEPFLAG) -- $(PROGS) $(LIBSRC)
-+
-+dclean:
-+ $(PERL) -pe 'if (/^# DO NOT DELETE THIS LINE/) {print; exit(0);}' $(MAKEFILE) >Makefile.new
-+ mv -f Makefile.new $(MAKEFILE)
-+
-+clean:
-+ rm -f *.s *.o *.obj lib tags core .pure .nfs* *.old *.bak fluff
-+
-+# DO NOT DELETE THIS LINE -- make depend depends on it.
-+
-+chacha20.o: ../../include/openssl/chacha20poly1305.h chacha20.c
-+poly1305.o: ../../include/openssl/chacha20poly1305.h poly1305.c
-diff --git a/crypto/chacha20poly1305/asm/chacha20_avx.pl b/crypto/chacha20poly1305/asm/chacha20_avx.pl
-new file mode 100644
-index 0000000..bf3e3f0
---- /dev/null
-+++ b/crypto/chacha20poly1305/asm/chacha20_avx.pl
-@@ -0,0 +1,408 @@
-+#!/usr/bin/env perl
-+
-+##############################################################################
-+# #
-+# Copyright 2014 Intel Corporation #
-+# #
-+# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 #
-+# #
-+# Unless required by applicable law or agreed to in writing, software #
-+# distributed under the License is distributed on an "AS IS" BASIS, #
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
-+# See the License for the specific language governing permissions and #
-+# limitations under the License. #
-+# #
-+##############################################################################
-+# #
-+# Developers and authors: #
-+# Shay Gueron (1, 2), and Vlad Krasnov (1) #
-+# (1) Intel Corporation, Israel Development Center #
-+# (2) University of Haifa #
-+# #
-+# Related work: #
-+# M. Goll, S. Gueron, "Vectorization on ChaCha Stream Cipher", IEEE #
-+# Proceedings of 11th International Conference on Information #
-+# Technology: New Generations (ITNG 2014), 612-615 (2014). #
-+# M. Goll, S. Gueron, "Vectorization on Poly1305 Message Authentication Code"#
-+# to be published. #
-+# A. Langley, chacha20poly1305 for the AEAD head #
-+# https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=9a8646510b3d0a48e950748f7a2aaa12ed40d5e0 #
-+##############################################################################
-+
-+
-+$flavour = shift;
-+$output = shift;
-+if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-+
-+$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-+
-+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-+( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-+( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-+die "can't locate x86_64-xlate.pl";
-+
-+open OUT,"| \"$^X\" $xlate $flavour $output";
-+*STDOUT=*OUT;
-+
-+if (`$ENV{CC} -Wa,-v -c -o /dev/null -x assembler /dev/null 2>&1`
-+ =~ /GNU assembler version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.19) + ($1>=2.22);
-+}
-+
-+if ($win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) &&
-+ `nasm -v 2>&1` =~ /NASM version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.09) + ($1>=2.10);
-+}
-+
-+if ($win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
-+ `ml64 2>&1` =~ /Version ([0-9]+)\./) {
-+ $avx = ($1>=10) + ($1>=11);
-+}
-+
-+if (`$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
-+ my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10
-+ $avx = ($ver>=3.0) + ($ver>=3.01);
-+}
-+
-+if ($avx>=1) {{
-+
-+my ($rol8, $rol16, $state_cdef, $tmp,
-+ $v0, $v1, $v2, $v3, $v4, $v5, $v6, $v7,
-+ $v8, $v9, $v10, $v11)=map("%xmm$_",(0..15));
-+
-+sub chacha_qr {
-+
-+my ($a,$b,$c,$d)=@_;
-+$code.=<<___;
-+
-+ vpaddd $b, $a, $a # a += b
-+ vpxor $a, $d, $d # d ^= a
-+ vpshufb $rol16, $d, $d # d <<<= 16
-+
-+ vpaddd $d, $c, $c # c += d
-+ vpxor $c, $b, $b # b ^= c
-+ vpslld \$12, $b, $tmp
-+ vpsrld \$20, $b, $b
-+ vpxor $tmp, $b, $b # b <<<= 12
-+
-+ vpaddd $b, $a, $a # a += b
-+ vpxor $a, $d, $d # d ^= a
-+ vpshufb $rol8, $d, $d # d <<<= 8
-+
-+ vpaddd $d, $c, $c # c += d
-+ vpxor $c, $b, $b # b ^= c
-+
-+ vpslld \$7, $b, $tmp
-+ vpsrld \$25, $b, $b
-+ vpxor $tmp, $b, $b # b <<<= 7
-+___
-+
-+}
-+
-+$code.=<<___;
-+
-+.text
-+.align 16
-+chacha20_consts:
-+.byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'
-+.rol8:
-+.byte 3,0,1,2, 7,4,5,6, 11,8,9,10, 15,12,13,14
-+.rol16:
-+.byte 2,3,0,1, 6,7,4,5, 10,11,8,9, 14,15,12,13
-+.avxInc:
-+.quad 1,0
-+
-+___
-+
-+{
-+
-+
-+my ($out, $in, $in_len, $key_ptr, $nr)
-+ =("%rdi", "%rsi", "%rdx", "%rcx", "%r8");
-+
-+$code.=<<___;
-+.globl chacha_20_core_avx
-+.type chacha_20_core_avx ,\@function,2
-+.align 64
-+chacha_20_core_avx:
-+ vzeroupper
-+
-+ # Init state
-+ vmovdqa .rol8(%rip), $rol8
-+ vmovdqa .rol16(%rip), $rol16
-+ vmovdqu 16*2($key_ptr), $state_cdef
-+
-+2:
-+ cmp \$64*3, $in_len
-+ jb 2f
-+
-+ vmovdqa chacha20_consts(%rip), $v0
-+ vmovdqu 16*0($key_ptr), $v1
-+ vmovdqu 16*1($key_ptr), $v2
-+ vmovdqa $state_cdef, $v3
-+
-+ vmovdqa $v0, $v4
-+ vmovdqa $v0, $v8
-+
-+ vmovdqa $v1, $v5
-+ vmovdqa $v1, $v9
-+
-+ vmovdqa $v2, $v6
-+ vmovdqa $v2, $v10
-+
-+ vpaddq .avxInc(%rip), $v3, $v7
-+ vpaddq .avxInc(%rip), $v7, $v11
-+
-+ mov \$10, $nr
-+
-+ 1:
-+___
-+
-+ &chacha_qr( $v0, $v1, $v2, $v3);
-+ &chacha_qr( $v4, $v5, $v6, $v7);
-+ &chacha_qr( $v8, $v9,$v10,$v11);
-+
-+$code.=<<___;
-+ vpalignr \$4, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$12, $v3, $v3, $v3
-+ vpalignr \$4, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$12, $v7, $v7, $v7
-+ vpalignr \$4, $v9, $v9, $v9
-+ vpalignr \$8, $v10, $v10, $v10
-+ vpalignr \$12, $v11, $v11, $v11
-+___
-+
-+ &chacha_qr( $v0, $v1, $v2, $v3);
-+ &chacha_qr( $v4, $v5, $v6, $v7);
-+ &chacha_qr( $v8, $v9,$v10,$v11);
-+
-+$code.=<<___;
-+ vpalignr \$12, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$4, $v3, $v3, $v3
-+ vpalignr \$12, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$4, $v7, $v7, $v7
-+ vpalignr \$12, $v9, $v9, $v9
-+ vpalignr \$8, $v10, $v10, $v10
-+ vpalignr \$4, $v11, $v11, $v11
-+
-+ dec $nr
-+
-+ jnz 1b
-+
-+ vpaddd chacha20_consts(%rip), $v0, $v0
-+ vpaddd chacha20_consts(%rip), $v4, $v4
-+ vpaddd chacha20_consts(%rip), $v8, $v8
-+
-+ vpaddd 16*0($key_ptr), $v1, $v1
-+ vpaddd 16*0($key_ptr), $v5, $v5
-+ vpaddd 16*0($key_ptr), $v9, $v9
-+
-+ vpaddd 16*1($key_ptr), $v2, $v2
-+ vpaddd 16*1($key_ptr), $v6, $v6
-+ vpaddd 16*1($key_ptr), $v10, $v10
-+
-+ vpaddd $state_cdef, $v3, $v3
-+ vpaddq .avxInc(%rip), $state_cdef, $state_cdef
-+ vpaddd $state_cdef, $v7, $v7
-+ vpaddq .avxInc(%rip), $state_cdef, $state_cdef
-+ vpaddd $state_cdef, $v11, $v11
-+ vpaddq .avxInc(%rip), $state_cdef, $state_cdef
-+
-+ vpxor 16*0($in), $v0, $v0
-+ vpxor 16*1($in), $v1, $v1
-+ vpxor 16*2($in), $v2, $v2
-+ vpxor 16*3($in), $v3, $v3
-+
-+ vmovdqu $v0, 16*0($out)
-+ vmovdqu $v1, 16*1($out)
-+ vmovdqu $v2, 16*2($out)
-+ vmovdqu $v3, 16*3($out)
-+
-+ vpxor 16*4($in), $v4, $v4
-+ vpxor 16*5($in), $v5, $v5
-+ vpxor 16*6($in), $v6, $v6
-+ vpxor 16*7($in), $v7, $v7
-+
-+ vmovdqu $v4, 16*4($out)
-+ vmovdqu $v5, 16*5($out)
-+ vmovdqu $v6, 16*6($out)
-+ vmovdqu $v7, 16*7($out)
-+
-+ vpxor 16*8($in), $v8, $v8
-+ vpxor 16*9($in), $v9, $v9
-+ vpxor 16*10($in), $v10, $v10
-+ vpxor 16*11($in), $v11, $v11
-+
-+ vmovdqu $v8, 16*8($out)
-+ vmovdqu $v9, 16*9($out)
-+ vmovdqu $v10, 16*10($out)
-+ vmovdqu $v11, 16*11($out)
-+
-+ lea 16*12($in), $in
-+ lea 16*12($out), $out
-+ sub \$16*12, $in_len
-+
-+ jmp 2b
-+
-+2:
-+ cmp \$64*2, $in_len
-+ jb 2f
-+
-+ vmovdqa chacha20_consts(%rip), $v0
-+ vmovdqa chacha20_consts(%rip), $v4
-+ vmovdqu 16*0($key_ptr), $v1
-+ vmovdqu 16*0($key_ptr), $v5
-+ vmovdqu 16*1($key_ptr), $v2
-+ vmovdqu 16*1($key_ptr), $v6
-+ vmovdqu 16*1($key_ptr), $v10
-+ vmovdqa $state_cdef, $v3
-+ vpaddq .avxInc(%rip), $v3, $v7
-+
-+ mov \$10, $nr
-+
-+ 1:
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+ &chacha_qr($v4,$v5,$v6,$v7);
-+
-+$code.=<<___;
-+ vpalignr \$4, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$12, $v3, $v3, $v3
-+ vpalignr \$4, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$12, $v7, $v7, $v7
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+ &chacha_qr($v4,$v5,$v6,$v7);
-+
-+$code.=<<___;
-+ vpalignr \$12, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$4, $v3, $v3, $v3
-+ vpalignr \$12, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$4, $v7, $v7, $v7
-+
-+ dec $nr
-+
-+ jnz 1b
-+
-+ vpaddd chacha20_consts(%rip), $v0, $v0
-+ vpaddd chacha20_consts(%rip), $v4, $v4
-+
-+ vpaddd 16*0($key_ptr), $v1, $v1
-+ vpaddd 16*0($key_ptr), $v5, $v5
-+
-+ vpaddd 16*1($key_ptr), $v2, $v2
-+ vpaddd 16*1($key_ptr), $v6, $v6
-+
-+ vpaddd $state_cdef, $v3, $v3
-+ vpaddq .avxInc(%rip), $state_cdef, $state_cdef
-+ vpaddd $state_cdef, $v7, $v7
-+ vpaddq .avxInc(%rip), $state_cdef, $state_cdef
-+
-+ vpxor 16*0($in), $v0, $v0
-+ vpxor 16*1($in), $v1, $v1
-+ vpxor 16*2($in), $v2, $v2
-+ vpxor 16*3($in), $v3, $v3
-+
-+ vmovdqu $v0, 16*0($out)
-+ vmovdqu $v1, 16*1($out)
-+ vmovdqu $v2, 16*2($out)
-+ vmovdqu $v3, 16*3($out)
-+
-+ vpxor 16*4($in), $v4, $v4
-+ vpxor 16*5($in), $v5, $v5
-+ vpxor 16*6($in), $v6, $v6
-+ vpxor 16*7($in), $v7, $v7
-+
-+ vmovdqu $v4, 16*4($out)
-+ vmovdqu $v5, 16*5($out)
-+ vmovdqu $v6, 16*6($out)
-+ vmovdqu $v7, 16*7($out)
-+
-+ lea 16*8($in), $in
-+ lea 16*8($out), $out
-+ sub \$16*8, $in_len
-+
-+ jmp 2b
-+2:
-+ cmp \$64, $in_len
-+ jb 2f
-+
-+ vmovdqa chacha20_consts(%rip), $v0
-+ vmovdqu 16*0($key_ptr), $v1
-+ vmovdqu 16*1($key_ptr), $v2
-+ vmovdqa $state_cdef, $v3
-+
-+ mov \$10, $nr
-+
-+ 1:
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+
-+$code.=<<___;
-+ vpalignr \$4, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$12, $v3, $v3, $v3
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+$code.=<<___;
-+ vpalignr \$12, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$4, $v3, $v3, $v3
-+
-+ dec $nr
-+ jnz 1b
-+
-+ vpaddd chacha20_consts(%rip), $v0, $v0
-+ vpaddd 16*0($key_ptr), $v1, $v1
-+ vpaddd 16*1($key_ptr), $v2, $v2
-+ vpaddd $state_cdef, $v3, $v3
-+ vpaddq .avxInc(%rip), $state_cdef, $state_cdef
-+
-+ vpxor 16*0($in), $v0, $v0
-+ vpxor 16*1($in), $v1, $v1
-+ vpxor 16*2($in), $v2, $v2
-+ vpxor 16*3($in), $v3, $v3
-+
-+ vmovdqu $v0, 16*0($out)
-+ vmovdqu $v1, 16*1($out)
-+ vmovdqu $v2, 16*2($out)
-+ vmovdqu $v3, 16*3($out)
-+
-+ lea 16*4($in), $in
-+ lea 16*4($out), $out
-+ sub \$16*4, $in_len
-+ jmp 2b
-+
-+2:
-+ vmovdqu $state_cdef, 16*2($key_ptr)
-+
-+ vzeroupper
-+ ret
-+.size chacha_20_core_avx,.-chacha_20_core_avx
-+___
-+}
-+}}
-+
-+
-+$code =~ s/\`([^\`]*)\`/eval($1)/gem;
-+
-+print $code;
-+
-+close STDOUT;
-+
-diff --git a/crypto/chacha20poly1305/asm/chacha20_avx2.pl b/crypto/chacha20poly1305/asm/chacha20_avx2.pl
-new file mode 100644
-index 0000000..9f31f86
---- /dev/null
-+++ b/crypto/chacha20poly1305/asm/chacha20_avx2.pl
-@@ -0,0 +1,443 @@
-+#!/usr/bin/env perl
-+
-+##############################################################################
-+# #
-+# Copyright 2014 Intel Corporation #
-+# #
-+# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 #
-+# #
-+# Unless required by applicable law or agreed to in writing, software #
-+# distributed under the License is distributed on an "AS IS" BASIS, #
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
-+# See the License for the specific language governing permissions and #
-+# limitations under the License. #
-+# #
-+##############################################################################
-+# #
-+# Developers and authors: #
-+# Shay Gueron (1, 2), and Vlad Krasnov (1) #
-+# (1) Intel Corporation, Israel Development Center #
-+# (2) University of Haifa #
-+# #
-+# Related work: #
-+# M. Goll, S. Gueron, "Vectorization on ChaCha Stream Cipher", IEEE #
-+# Proceedings of 11th International Conference on Information #
-+# Technology: New Generations (ITNG 2014), 612-615 (2014). #
-+# M. Goll, S. Gueron, "Vectorization on Poly1305 Message Authentication Code"#
-+# to be published. #
-+# A. Langley, chacha20poly1305 for the AEAD head #
-+# https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=9a8646510b3d0a48e950748f7a2aaa12ed40d5e0 #
-+##############################################################################
-+
-+$flavour = shift;
-+$output = shift;
-+if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-+
-+$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-+
-+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-+( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-+( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-+die "can't locate x86_64-xlate.pl";
-+
-+open OUT,"| \"$^X\" $xlate $flavour $output";
-+*STDOUT=*OUT;
-+
-+if (`$ENV{CC} -Wa,-v -c -o /dev/null -x assembler /dev/null 2>&1`
-+ =~ /GNU assembler version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.19) + ($1>=2.22);
-+}
-+
-+if ($win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) &&
-+ `nasm -v 2>&1` =~ /NASM version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.09) + ($1>=2.10);
-+}
-+
-+if ($win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
-+ `ml64 2>&1` =~ /Version ([0-9]+)\./) {
-+ $avx = ($1>=10) + ($1>=11);
-+}
-+
-+if (`$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
-+ my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10
-+ $avx = ($ver>=3.0) + ($ver>=3.01);
-+}
-+
-+if ($avx>=2) {{
-+
-+my ($state_4567, $state_89ab, $state_cdef, $tmp,
-+ $v0, $v1, $v2, $v3, $v4, $v5, $v6, $v7,
-+ $v8, $v9, $v10, $v11)=map("%ymm$_",(0..15));
-+
-+sub chacha_qr {
-+
-+my ($a,$b,$c,$d)=@_;
-+
-+$code.=<<___;
-+
-+ vpaddd $b, $a, $a # a += b
-+ vpxor $a, $d, $d # d ^= a
-+ vpshufb .rol16(%rip), $d, $d # d <<<= 16
-+
-+ vpaddd $d, $c, $c # c += d
-+ vpxor $c, $b, $b # b ^= c
-+ vpslld \$12, $b, $tmp
-+ vpsrld \$20, $b, $b
-+ vpxor $tmp, $b, $b # b <<<= 12
-+
-+ vpaddd $b, $a, $a # a += b
-+ vpxor $a, $d, $d # d ^= a
-+ vpshufb .rol8(%rip), $d, $d # d <<<= 8
-+
-+ vpaddd $d, $c, $c # c += d
-+ vpxor $c, $b, $b # b ^= c
-+
-+ vpslld \$7, $b, $tmp
-+ vpsrld \$25, $b, $b
-+ vpxor $tmp, $b, $b # b <<<= 7
-+___
-+}
-+
-+
-+$code.=<<___;
-+.text
-+.align 32
-+chacha20_consts:
-+.byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'
-+.byte 'e','x','p','a','n','d',' ','3','2','-','b','y','t','e',' ','k'
-+.rol8:
-+.byte 3,0,1,2, 7,4,5,6, 11,8,9,10, 15,12,13,14
-+.byte 3,0,1,2, 7,4,5,6, 11,8,9,10, 15,12,13,14
-+.rol16:
-+.byte 2,3,0,1, 6,7,4,5, 10,11,8,9, 14,15,12,13
-+.byte 2,3,0,1, 6,7,4,5, 10,11,8,9, 14,15,12,13
-+.avx2Init:
-+.quad 0,0,1,0
-+.avx2Inc:
-+.quad 2,0,2,0
-+___
-+
-+{
-+
-+my $state_cdef_xmm=$state_cdef;
-+
-+substr($state_cdef_xmm, 1, 1, "x");
-+
-+my ($out, $in, $in_len, $key_ptr, $nr)
-+ =("%rdi", "%rsi", "%rdx", "%rcx", "%r8");
-+
-+$code.=<<___;
-+.globl chacha_20_core_avx2
-+.type chacha_20_core_avx2 ,\@function,2
-+.align 64
-+chacha_20_core_avx2:
-+
-+ vzeroupper
-+
-+ # Init state
-+ vbroadcasti128 16*0($key_ptr), $state_4567
-+ vbroadcasti128 16*1($key_ptr), $state_89ab
-+ vbroadcasti128 16*2($key_ptr), $state_cdef
-+ vpaddq .avx2Init(%rip), $state_cdef, $state_cdef
-+
-+2:
-+ cmp \$6*64, $in_len
-+ jb 2f
-+
-+ vmovdqa chacha20_consts(%rip), $v0
-+ vmovdqa chacha20_consts(%rip), $v4
-+ vmovdqa chacha20_consts(%rip), $v8
-+
-+ vmovdqa $state_4567, $v1
-+ vmovdqa $state_4567, $v5
-+ vmovdqa $state_4567, $v9
-+
-+ vmovdqa $state_89ab, $v2
-+ vmovdqa $state_89ab, $v6
-+ vmovdqa $state_89ab, $v10
-+
-+ vmovdqa $state_cdef, $v3
-+ vpaddq .avx2Inc(%rip), $v3, $v7
-+ vpaddq .avx2Inc(%rip), $v7, $v11
-+
-+ mov \$10, $nr
-+
-+ 1:
-+___
-+
-+ &chacha_qr( $v0, $v1, $v2, $v3);
-+ &chacha_qr( $v4, $v5, $v6, $v7);
-+ &chacha_qr( $v8, $v9,$v10,$v11);
-+
-+$code.=<<___;
-+ vpalignr \$4, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$12, $v3, $v3, $v3
-+ vpalignr \$4, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$12, $v7, $v7, $v7
-+ vpalignr \$4, $v9, $v9, $v9
-+ vpalignr \$8, $v10, $v10, $v10
-+ vpalignr \$12, $v11, $v11, $v11
-+___
-+
-+ &chacha_qr( $v0, $v1, $v2, $v3);
-+ &chacha_qr( $v4, $v5, $v6, $v7);
-+ &chacha_qr( $v8, $v9,$v10,$v11);
-+
-+$code.=<<___;
-+ vpalignr \$12, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$4, $v3, $v3, $v3
-+ vpalignr \$12, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$4, $v7, $v7, $v7
-+ vpalignr \$12, $v9, $v9, $v9
-+ vpalignr \$8, $v10, $v10, $v10
-+ vpalignr \$4, $v11, $v11, $v11
-+
-+ dec $nr
-+
-+ jnz 1b
-+
-+ vpaddd chacha20_consts(%rip), $v0, $v0
-+ vpaddd chacha20_consts(%rip), $v4, $v4
-+ vpaddd chacha20_consts(%rip), $v8, $v8
-+
-+ vpaddd $state_4567, $v1, $v1
-+ vpaddd $state_4567, $v5, $v5
-+ vpaddd $state_4567, $v9, $v9
-+
-+ vpaddd $state_89ab, $v2, $v2
-+ vpaddd $state_89ab, $v6, $v6
-+ vpaddd $state_89ab, $v10, $v10
-+
-+ vpaddd $state_cdef, $v3, $v3
-+ vpaddq .avx2Inc(%rip), $state_cdef, $state_cdef
-+ vpaddd $state_cdef, $v7, $v7
-+ vpaddq .avx2Inc(%rip), $state_cdef, $state_cdef
-+ vpaddd $state_cdef, $v11, $v11
-+ vpaddq .avx2Inc(%rip), $state_cdef, $state_cdef
-+
-+ vperm2i128 \$0x02, $v0, $v1, $tmp
-+ vpxor 32*0($in), $tmp, $tmp
-+ vmovdqu $tmp, 32*0($out)
-+ vperm2i128 \$0x02, $v2, $v3, $tmp
-+ vpxor 32*1($in), $tmp, $tmp
-+ vmovdqu $tmp, 32*1($out)
-+ vperm2i128 \$0x13, $v0, $v1, $tmp
-+ vpxor 32*2($in), $tmp, $tmp
-+ vmovdqu $tmp, 32*2($out)
-+ vperm2i128 \$0x13, $v2, $v3, $tmp
-+ vpxor 32*3($in), $tmp, $tmp
-+ vmovdqu $tmp, 32*3($out)
-+
-+ vperm2i128 \$0x02, $v4, $v5, $v0
-+ vperm2i128 \$0x02, $v6, $v7, $v1
-+ vperm2i128 \$0x13, $v4, $v5, $v2
-+ vperm2i128 \$0x13, $v6, $v7, $v3
-+
-+ vpxor 32*4($in), $v0, $v0
-+ vpxor 32*5($in), $v1, $v1
-+ vpxor 32*6($in), $v2, $v2
-+ vpxor 32*7($in), $v3, $v3
-+
-+ vmovdqu $v0, 32*4($out)
-+ vmovdqu $v1, 32*5($out)
-+ vmovdqu $v2, 32*6($out)
-+ vmovdqu $v3, 32*7($out)
-+
-+ vperm2i128 \$0x02, $v8, $v9, $v0
-+ vperm2i128 \$0x02, $v10, $v11, $v1
-+ vperm2i128 \$0x13, $v8, $v9, $v2
-+ vperm2i128 \$0x13, $v10, $v11, $v3
-+
-+ vpxor 32*8($in), $v0, $v0
-+ vpxor 32*9($in), $v1, $v1
-+ vpxor 32*10($in), $v2, $v2
-+ vpxor 32*11($in), $v3, $v3
-+
-+ vmovdqu $v0, 32*8($out)
-+ vmovdqu $v1, 32*9($out)
-+ vmovdqu $v2, 32*10($out)
-+ vmovdqu $v3, 32*11($out)
-+
-+ lea 64*6($in), $in
-+ lea 64*6($out), $out
-+ sub \$64*6, $in_len
-+
-+ jmp 2b
-+
-+2:
-+ cmp \$4*64, $in_len
-+ jb 2f
-+
-+ vmovdqa chacha20_consts(%rip), $v0
-+ vmovdqa chacha20_consts(%rip), $v4
-+ vmovdqa $state_4567, $v1
-+ vmovdqa $state_4567, $v5
-+ vmovdqa $state_89ab, $v2
-+ vmovdqa $state_89ab, $v6
-+ vmovdqa $state_89ab, $v10
-+ vmovdqa $state_cdef, $v3
-+ vpaddq .avx2Inc(%rip), $v3, $v7
-+
-+ mov \$10, $nr
-+
-+ 1:
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+ &chacha_qr($v4,$v5,$v6,$v7);
-+
-+$code.=<<___;
-+ vpalignr \$4, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$12, $v3, $v3, $v3
-+ vpalignr \$4, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$12, $v7, $v7, $v7
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+ &chacha_qr($v4,$v5,$v6,$v7);
-+
-+$code.=<<___;
-+ vpalignr \$12, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$4, $v3, $v3, $v3
-+ vpalignr \$12, $v5, $v5, $v5
-+ vpalignr \$8, $v6, $v6, $v6
-+ vpalignr \$4, $v7, $v7, $v7
-+
-+ dec $nr
-+
-+ jnz 1b
-+
-+ vpaddd chacha20_consts(%rip), $v0, $v0
-+ vpaddd chacha20_consts(%rip), $v4, $v4
-+
-+ vpaddd $state_4567, $v1, $v1
-+ vpaddd $state_4567, $v5, $v5
-+
-+ vpaddd $state_89ab, $v2, $v2
-+ vpaddd $state_89ab, $v6, $v6
-+
-+ vpaddd $state_cdef, $v3, $v3
-+ vpaddq .avx2Inc(%rip), $state_cdef, $state_cdef
-+ vpaddd $state_cdef, $v7, $v7
-+ vpaddq .avx2Inc(%rip), $state_cdef, $state_cdef
-+
-+ vperm2i128 \$0x02, $v0, $v1, $v8
-+ vperm2i128 \$0x02, $v2, $v3, $v9
-+ vperm2i128 \$0x13, $v0, $v1, $v10
-+ vperm2i128 \$0x13, $v2, $v3, $v11
-+
-+ vpxor 32*0($in), $v8, $v8
-+ vpxor 32*1($in), $v9, $v9
-+ vpxor 32*2($in), $v10, $v10
-+ vpxor 32*3($in), $v11, $v11
-+
-+ vmovdqu $v8, 32*0($out)
-+ vmovdqu $v9, 32*1($out)
-+ vmovdqu $v10, 32*2($out)
-+ vmovdqu $v11, 32*3($out)
-+
-+ vperm2i128 \$0x02, $v4, $v5, $v0
-+ vperm2i128 \$0x02, $v6, $v7, $v1
-+ vperm2i128 \$0x13, $v4, $v5, $v2
-+ vperm2i128 \$0x13, $v6, $v7, $v3
-+
-+ vpxor 32*4($in), $v0, $v0
-+ vpxor 32*5($in), $v1, $v1
-+ vpxor 32*6($in), $v2, $v2
-+ vpxor 32*7($in), $v3, $v3
-+
-+ vmovdqu $v0, 32*4($out)
-+ vmovdqu $v1, 32*5($out)
-+ vmovdqu $v2, 32*6($out)
-+ vmovdqu $v3, 32*7($out)
-+
-+ lea 64*4($in), $in
-+ lea 64*4($out), $out
-+ sub \$64*4, $in_len
-+
-+ jmp 2b
-+2:
-+ cmp \$128, $in_len
-+ jb 2f
-+
-+ vmovdqa chacha20_consts(%rip), $v0
-+ vmovdqa $state_4567, $v1
-+ vmovdqa $state_89ab, $v2
-+ vmovdqa $state_cdef, $v3
-+
-+ mov \$10, $nr
-+
-+ 1:
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+
-+$code.=<<___;
-+ vpalignr \$4, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$12, $v3, $v3, $v3
-+___
-+
-+ &chacha_qr($v0,$v1,$v2,$v3);
-+$code.=<<___;
-+ vpalignr \$12, $v1, $v1, $v1
-+ vpalignr \$8, $v2, $v2, $v2
-+ vpalignr \$4, $v3, $v3, $v3
-+
-+ dec $nr
-+ jnz 1b
-+
-+ vpaddd chacha20_consts(%rip), $v0, $v0
-+ vpaddd $state_4567, $v1, $v1
-+ vpaddd $state_89ab, $v2, $v2
-+ vpaddd $state_cdef, $v3, $v3
-+ vpaddq .avx2Inc(%rip), $state_cdef, $state_cdef
-+
-+ vperm2i128 \$0x02, $v0, $v1, $v8
-+ vperm2i128 \$0x02, $v2, $v3, $v9
-+ vperm2i128 \$0x13, $v0, $v1, $v10
-+ vperm2i128 \$0x13, $v2, $v3, $v11
-+
-+ vpxor 32*0($in), $v8, $v8
-+ vpxor 32*1($in), $v9, $v9
-+ vpxor 32*2($in), $v10, $v10
-+ vpxor 32*3($in), $v11, $v11
-+
-+ vmovdqu $v8, 32*0($out)
-+ vmovdqu $v9, 32*1($out)
-+ vmovdqu $v10, 32*2($out)
-+ vmovdqu $v11, 32*3($out)
-+
-+ lea 64*2($in), $in
-+ lea 64*2($out), $out
-+ sub \$64*2, $in_len
-+ jmp 2b
-+
-+2:
-+ vmovdqu $state_cdef_xmm, 16*2($key_ptr)
-+
-+ vzeroupper
-+ ret
-+.size chacha_20_core_avx2,.-chacha_20_core_avx2
-+___
-+}
-+}}
-+
-+
-+$code =~ s/\`([^\`]*)\`/eval($1)/gem;
-+
-+print $code;
-+
-+close STDOUT;
-+
-diff --git a/crypto/chacha20poly1305/asm/poly1305_avx.pl b/crypto/chacha20poly1305/asm/poly1305_avx.pl
-new file mode 100644
-index 0000000..cedeca1
---- /dev/null
-+++ b/crypto/chacha20poly1305/asm/poly1305_avx.pl
-@@ -0,0 +1,732 @@
-+##############################################################################
-+# #
-+# Copyright 2014 Intel Corporation #
-+# #
-+# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 #
-+# #
-+# Unless required by applicable law or agreed to in writing, software #
-+# distributed under the License is distributed on an "AS IS" BASIS, #
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
-+# See the License for the specific language governing permissions and #
-+# limitations under the License. #
-+# #
-+##############################################################################
-+# #
-+# Developers and authors: #
-+# Shay Gueron (1, 2), and Vlad Krasnov (1) #
-+# (1) Intel Corporation, Israel Development Center #
-+# (2) University of Haifa #
-+# #
-+##############################################################################
-+# state:
-+# 0: r[0] || r^2[0]
-+# 16: r[1] || r^2[1]
-+# 32: r[2] || r^2[2]
-+# 48: r[3] || r^2[3]
-+# 64: r[4] || r^2[4]
-+# 80: r[1]*5 || r^2[1]*5
-+# 96: r[2]*5 || r^2[2]*5
-+#112: r[3]*5 || r^2[3]*5
-+#128: r[4]*5 || r^2[4]*5
-+#144: k
-+#160: A0
-+#164: A1
-+#168: A2
-+#172: A3
-+#176: A4
-+#180: END
-+
-+$flavour = shift;
-+$output = shift;
-+if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-+
-+$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-+
-+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-+( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-+( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-+die "can't locate x86_64-xlate.pl";
-+
-+open OUT,"| \"$^X\" $xlate $flavour $output";
-+*STDOUT=*OUT;
-+
-+if (`$ENV{CC} -Wa,-v -c -o /dev/null -x assembler /dev/null 2>&1`
-+ =~ /GNU assembler version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.19) + ($1>=2.22);
-+}
-+
-+if ($win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) &&
-+ `nasm -v 2>&1` =~ /NASM version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.09) + ($1>=2.10);
-+}
-+
-+if ($win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
-+ `ml64 2>&1` =~ /Version ([0-9]+)\./) {
-+ $avx = ($1>=10) + ($1>=11);
-+}
-+
-+if (`$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
-+ my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10
-+ $avx = ($ver>=3.0) + ($ver>=3.01);
-+}
-+
-+if ($avx>=1) {{
-+
-+my ($_r0_, $_r1_, $_r2_, $_r3_, $_r4_,
-+ $_r1_x5, $_r2_x5, $_r3_x5, $_r4_x5,
-+ $_k_,
-+ $_A0_, $_A1_, $_A2_, $_A3_, $_A4_)
-+ = (0, 16, 32, 48, 64,
-+ 80, 96, 112, 128,
-+ 144,
-+ 160, 164, 168, 172, 176);
-+
-+$code.=<<___;
-+.text
-+.align 32
-+.LandMask:
-+.quad 0x3FFFFFF, 0x3FFFFFF
-+.LsetBit:
-+.quad 0x1000000, 0x1000000
-+.LrSet:
-+.quad 0x0FFFFFFC0FFFFFFF, 0x0FFFFFFC0FFFFFFF
-+.quad 0x0FFFFFFC0FFFFFFC, 0x0FFFFFFC0FFFFFFC
-+.Lone:
-+.quad 1,0
-+.Lpoly:
-+.quad 0xfffffffffffffffb, 0xffffffffffffffff
-+___
-+
-+
-+{
-+my ($A0, $A1, $A2, $A3, $A4,
-+ $r0, $r1, $r2, $r3, $r4,
-+ $T0, $T1, $A5, $A6, $A7, $A8)=map("%xmm$_",(0..15));
-+my ($state, $key)
-+ =("%rdi", "%rsi");
-+
-+$code.=<<___;
-+################################################################################
-+# void poly1305_init_avx(void *state, uint8_t key[32])
-+
-+.globl poly1305_init_avx
-+.type poly1305_init_avx, \@function, 2
-+.align 64
-+poly1305_init_avx:
-+ vzeroupper
-+ # load and convert r
-+ vmovq 8*0($key), $r0
-+ vmovq 8*1($key), $T0
-+ vpand .LrSet(%rip), $r0, $r0
-+ vpand .LrSet+16(%rip), $T0, $T0
-+
-+ vpsrlq \$26, $r0, $r1
-+ vpand .LandMask(%rip), $r0, $r0
-+ vpsrlq \$26, $r1, $r2
-+ vpand .LandMask(%rip), $r1, $r1
-+ vpsllq \$12, $T0, $T1
-+ vpxor $T1, $r2, $r2
-+ vpsrlq \$26, $r2, $r3
-+ vpsrlq \$40, $T0, $r4
-+ vpand .LandMask(%rip), $r2, $r2
-+ vpand .LandMask(%rip), $r3, $r3
-+
-+ # SQR R
-+ vpmuludq $r0, $r0, $A0
-+ vpmuludq $r1, $r0, $A1
-+ vpmuludq $r2, $r0, $A2
-+ vpmuludq $r3, $r0, $A3
-+ vpmuludq $r4, $r0, $A4
-+
-+ vpsllq \$1, $A1, $A1
-+ vpsllq \$1, $A2, $A2
-+ vpmuludq $r1, $r1, $T0
-+ vpaddq $T0, $A2, $A2
-+ vpmuludq $r2, $r1, $T0
-+ vpaddq $T0, $A3, $A3
-+ vpmuludq $r3, $r1, $T0
-+ vpaddq $T0, $A4, $A4
-+ vpmuludq $r4, $r1, $A5
-+
-+ vpsllq \$1, $A3, $A3
-+ vpsllq \$1, $A4, $A4
-+ vpmuludq $r2, $r2, $T0
-+ vpaddq $T0, $A4, $A4
-+ vpmuludq $r3, $r2, $T0
-+ vpaddq $T0, $A5, $A5
-+ vpmuludq $r4, $r2, $A6
-+
-+ vpsllq \$1, $A5, $A5
-+ vpsllq \$1, $A6, $A6
-+ vpmuludq $r3, $r3, $T0
-+ vpaddq $T0, $A6, $A6
-+ vpmuludq $r4, $r3, $A7
-+
-+ vpsllq \$1, $A7, $A7
-+ vpmuludq $r4, $r4, $A8
-+
-+ # Reduce
-+ vpsrlq \$26, $A4, $T0
-+ vpand .LandMask(%rip), $A4, $A4
-+ vpaddq $T0, $A5, $A5
-+
-+ vpsllq \$2, $A5, $T0
-+ vpaddq $T0, $A5, $A5
-+ vpsllq \$2, $A6, $T0
-+ vpaddq $T0, $A6, $A6
-+ vpsllq \$2, $A7, $T0
-+ vpaddq $T0, $A7, $A7
-+ vpsllq \$2, $A8, $T0
-+ vpaddq $T0, $A8, $A8
-+
-+ vpaddq $A5, $A0, $A0
-+ vpaddq $A6, $A1, $A1
-+ vpaddq $A7, $A2, $A2
-+ vpaddq $A8, $A3, $A3
-+
-+ vpsrlq \$26, $A0, $T0
-+ vpand .LandMask(%rip), $A0, $A0
-+ vpaddq $T0, $A1, $A1
-+ vpsrlq \$26, $A1, $T0
-+ vpand .LandMask(%rip), $A1, $A1
-+ vpaddq $T0, $A2, $A2
-+ vpsrlq \$26, $A2, $T0
-+ vpand .LandMask(%rip), $A2, $A2
-+ vpaddq $T0, $A3, $A3
-+ vpsrlq \$26, $A3, $T0
-+ vpand .LandMask(%rip), $A3, $A3
-+ vpaddq $T0, $A4, $A4
-+
-+ vpunpcklqdq $r0, $A0, $r0
-+ vpunpcklqdq $r1, $A1, $r1
-+ vpunpcklqdq $r2, $A2, $r2
-+ vpunpcklqdq $r3, $A3, $r3
-+ vpunpcklqdq $r4, $A4, $r4
-+
-+ vmovdqu $r0, $_r0_($state)
-+ vmovdqu $r1, $_r1_($state)
-+ vmovdqu $r2, $_r2_($state)
-+ vmovdqu $r3, $_r3_($state)
-+ vmovdqu $r4, $_r4_($state)
-+
-+ vpsllq \$2, $r1, $A1
-+ vpsllq \$2, $r2, $A2
-+ vpsllq \$2, $r3, $A3
-+ vpsllq \$2, $r4, $A4
-+
-+ vpaddq $A1, $r1, $A1
-+ vpaddq $A2, $r2, $A2
-+ vpaddq $A3, $r3, $A3
-+ vpaddq $A4, $r4, $A4
-+
-+ vmovdqu $A1, $_r1_x5($state)
-+ vmovdqu $A2, $_r2_x5($state)
-+ vmovdqu $A3, $_r3_x5($state)
-+ vmovdqu $A4, $_r4_x5($state)
-+ # Store k
-+ vmovdqu 16*1($key), $T0
-+ vmovdqu $T0, $_k_($state)
-+ # Init the MAC value
-+ vpxor $T0, $T0, $T0
-+ vmovdqu $T0, $_A0_($state)
-+ vmovd $T0, $_A4_($state)
-+ vzeroupper
-+ ret
-+.size poly1305_init_avx,.-poly1305_init_avx
-+___
-+}
-+
-+{
-+
-+my ($A0, $A1, $A2, $A3, $A4,
-+ $T0, $T1, $R0, $R1, $R2,
-+ $R3, $R4, $AND_MASK)
-+ = map("%xmm$_",(0..12));
-+
-+my ($state, $in, $in_len)
-+ =("%rdi", "%rsi", "%rdx");
-+
-+$code.=<<___;
-+
-+###############################################################################
-+# void* poly1305_update_avx(void* state, void* in, uint64_t in_len)
-+.globl poly1305_update_avx
-+.type poly1305_update_avx, \@function, 2
-+.align 64
-+poly1305_update_avx:
-+
-+ vzeroupper
-+ vmovd $_A0_($state), $A0
-+ vmovd $_A1_($state), $A1
-+ vmovd $_A2_($state), $A2
-+ vmovd $_A3_($state), $A3
-+ vmovd $_A4_($state), $A4
-+ vmovdqa .LandMask(%rip), $AND_MASK
-+ # Skip to single block case
-+ cmp \$32, $in_len
-+ jb 3f
-+1:
-+ cmp \$16*4, $in_len
-+ jb 1f
-+ sub \$16*2, $in_len
-+ # load the next two blocks
-+ vmovdqu 16*0($in), $R2
-+ vmovdqu 16*1($in), $R3
-+ add \$16*2, $in
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpxor .LsetBit(%rip), $R2, $R2
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+
-+ # Multiply input by R[0]
-+ vbroadcastss $_r0_($state), $T0
-+ vpmuludq $T0, $A0, $R0
-+ vpmuludq $T0, $A1, $R1
-+ vpmuludq $T0, $A2, $R2
-+ vpmuludq $T0, $A3, $R3
-+ vpmuludq $T0, $A4, $R4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vbroadcastss $_r1_x5($state), $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R0, $R0
-+ vbroadcastss $_r1_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Etc
-+ vbroadcastss $_r2_x5($state), $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R1, $R1
-+ vbroadcastss $_r2_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vbroadcastss $_r3_x5($state), $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R2, $R2
-+ vbroadcastss $_r3_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vbroadcastss $_r4_x5($state), $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R3, $R3
-+ vbroadcastss $_r4_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Reduce
-+ vpsrlq \$26, $R3, $T0
-+ vpaddq $T0, $R4, $R4
-+ vpand $AND_MASK, $R3, $R3
-+
-+ vpsrlq \$26, $R4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $R0, $R0
-+ vpand $AND_MASK, $R4, $R4
-+
-+ vpsrlq \$26, $R0, $T0
-+ vpand $AND_MASK, $R0, $A0
-+ vpaddq $T0, $R1, $R1
-+ vpsrlq \$26, $R1, $T0
-+ vpand $AND_MASK, $R1, $A1
-+ vpaddq $T0, $R2, $R2
-+ vpsrlq \$26, $R2, $T0
-+ vpand $AND_MASK, $R2, $A2
-+ vpaddq $T0, $R3, $R3
-+ vpsrlq \$26, $R3, $T0
-+ vpand $AND_MASK, $R3, $A3
-+ vpaddq $T0, $R4, $A4
-+ jmp 1b
-+1:
-+ cmp \$16*2, $in_len
-+ jb 1f
-+ sub \$16*2, $in_len
-+ # load the next two blocks
-+ vmovdqu 16*0($in), $R2
-+ vmovdqu 16*1($in), $R3
-+ add \$16*2, $in
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpxor .LsetBit(%rip), $R2, $R2
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+
-+ # Multiply input by R[0]
-+ vmovdqu $_r0_($state), $T0
-+ vpmuludq $T0, $A0, $R0
-+ vpmuludq $T0, $A1, $R1
-+ vpmuludq $T0, $A2, $R2
-+ vpmuludq $T0, $A3, $R3
-+ vpmuludq $T0, $A4, $R4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vmovdqu $_r1_x5($state), $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R0, $R0
-+ vmovdqu $_r1_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Etc
-+ vmovdqu $_r2_x5($state), $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R1, $R1
-+ vmovdqu $_r2_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovdqu $_r3_x5($state), $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R2, $R2
-+ vmovdqu $_r3_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovdqu $_r4_x5($state), $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R3, $R3
-+ vmovdqu $_r4_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R4, $R4
-+1:
-+ vpsrldq \$8, $R0, $A0
-+ vpsrldq \$8, $R1, $A1
-+ vpsrldq \$8, $R2, $A2
-+ vpsrldq \$8, $R3, $A3
-+ vpsrldq \$8, $R4, $A4
-+
-+ vpaddq $R0, $A0, $A0
-+ vpaddq $R1, $A1, $A1
-+ vpaddq $R2, $A2, $A2
-+ vpaddq $R3, $A3, $A3
-+ vpaddq $R4, $A4, $A4
-+ # Reduce
-+ vpsrlq \$26, $A3, $T0
-+ vpaddq $T0, $A4, $A4
-+ vpand $AND_MASK, $A3, $A3
-+ vpsrlq \$26, $A4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $A0, $A0
-+ vpand $AND_MASK, $A4, $A4
-+ vpsrlq \$26, $A0, $T0
-+ vpand $AND_MASK, $A0, $A0
-+ vpaddq $T0, $A1, $A1
-+ vpsrlq \$26, $A1, $T0
-+ vpand $AND_MASK, $A1, $A1
-+ vpaddq $T0, $A2, $A2
-+ vpsrlq \$26, $A2, $T0
-+ vpand $AND_MASK, $A2, $A2
-+ vpaddq $T0, $A3, $A3
-+ vpsrlq \$26, $A3, $T0
-+ vpand $AND_MASK, $A3, $A3
-+ vpaddq $T0, $A4, $A4
-+3:
-+ cmp \$16, $in_len
-+ jb 1f
-+
-+ # load the next block
-+ vmovq 8*0($in), $R0
-+ vmovq 8*1($in), $R1
-+ add \$16, $in
-+ sub \$16, $in_len
-+
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpxor .LsetBit(%rip), $R2, $R2
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+2:
-+ # Multiply input by R[0]
-+ vmovq $_r0_+8($state), $T0
-+ vpmuludq $T0, $A0, $R0
-+ vpmuludq $T0, $A1, $R1
-+ vpmuludq $T0, $A2, $R2
-+ vpmuludq $T0, $A3, $R3
-+ vpmuludq $T0, $A4, $R4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vmovq $_r1_x5+8($state), $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R0, $R0
-+ vmovq $_r1_+8($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Etc
-+ vmovq $_r2_x5+8($state), $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R1, $R1
-+ vmovq $_r2_+8($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovq $_r3_x5+8($state), $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R2, $R2
-+ vmovq $_r3_+8($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovq $_r4_x5+8($state), $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R3, $R3
-+ vmovq $_r4_+8($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Reduce
-+ vpsrlq \$26, $R3, $T0
-+ vpaddq $T0, $R4, $R4
-+ vpand $AND_MASK, $R3, $R3
-+ vpsrlq \$26, $R4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $R0, $R0
-+ vpand $AND_MASK, $R4, $R4
-+ vpsrlq \$26, $R0, $T0
-+ vpand $AND_MASK, $R0, $A0
-+ vpaddq $T0, $R1, $R1
-+ vpsrlq \$26, $R1, $T0
-+ vpand $AND_MASK, $R1, $A1
-+ vpaddq $T0, $R2, $R2
-+ vpsrlq \$26, $R2, $T0
-+ vpand $AND_MASK, $R2, $A2
-+ vpaddq $T0, $R3, $R3
-+ vpsrlq \$26, $R3, $T0
-+ vpand $AND_MASK, $R3, $A3
-+ vpaddq $T0, $R4, $A4
-+
-+1:
-+ test $in_len, $in_len
-+ jz 1f
-+
-+ vmovdqa .Lone(%rip), $R0
-+3:
-+ dec $in_len
-+ vpslldq \$1, $R0, $R0
-+ vpinsrb \$0, ($in, $in_len), $R0, $R0
-+ test $in_len, $in_len
-+ jnz 3b
-+
-+ vpsrldq \$8, $R0, $R1
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+ xor $in_len, $in_len
-+ jmp 2b
-+1:
-+
-+ vmovd $A0, $_A0_($state)
-+ vmovd $A1, $_A1_($state)
-+ vmovd $A2, $_A2_($state)
-+ vmovd $A3, $_A3_($state)
-+ vmovd $A4, $_A4_($state)
-+
-+ mov $in, %rax
-+ vzeroupper
-+ ret
-+.size poly1305_update_avx,.-poly1305_update_avx
-+###############################################################################
-+# void poly1305_finish_avx(void* $state, uint64_t mac[2]);
-+.type poly1305_finish_avx,\@function, 2
-+.globl poly1305_finish_avx
-+poly1305_finish_avx:
-+___
-+my $mac="%rsi";
-+$code.=<<___;
-+ mov $_A0_($state), %r8d
-+ mov $_A1_($state), %eax
-+ mov $_A2_($state), %r9d
-+ mov $_A3_($state), %ecx
-+ mov $_A4_($state), %r10d
-+
-+ shl \$26, %rax
-+ add %rax, %r8
-+
-+ mov %r9, %rax
-+ shl \$52, %rax
-+ shr \$12, %r9
-+ add %rax, %r8
-+ adc \$0, %r9
-+
-+ mov %r10, %rax
-+ shl \$14, %rcx
-+ shl \$40, %rax
-+ shr \$24, %r10
-+
-+ add %rcx, %r9
-+ add %rax, %r9
-+ adc \$0, %r10
-+
-+ mov %r10, %rax
-+ shr \$2, %rax
-+ and \$3, %r10
-+
-+ mov %rax, %rcx
-+ shl \$2, %rax
-+ add %rcx, %rax
-+
-+ add %rax, %r8
-+ adc \$0, %r9
-+ adc \$0, %r10
-+
-+ mov %r8, %rax
-+ mov %r9, %rcx
-+ sub \$-5, %rax
-+ sbb \$-1, %rcx
-+ sbb \$3, %r10
-+
-+ cmovc %r8, %rax
-+ cmovc %r9, %rcx
-+ add $_k_($state), %rax
-+ adc $_k_+8($state), %rcx
-+ mov %rax, ($mac)
-+ mov %rcx, 8($mac)
-+ ret
-+.size poly1305_finish_avx,.-poly1305_finish_avx
-+___
-+}
-+}}
-+
-+$code =~ s/\`([^\`]*)\`/eval($1)/gem;
-+print $code;
-+close STDOUT;
-+
-diff --git a/crypto/chacha20poly1305/asm/poly1305_avx2.pl b/crypto/chacha20poly1305/asm/poly1305_avx2.pl
-new file mode 100644
-index 0000000..d2dd51f
---- /dev/null
-+++ b/crypto/chacha20poly1305/asm/poly1305_avx2.pl
-@@ -0,0 +1,984 @@
-+##############################################################################
-+# #
-+# Copyright 2014 Intel Corporation #
-+# #
-+# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 #
-+# #
-+# Unless required by applicable law or agreed to in writing, software #
-+# distributed under the License is distributed on an "AS IS" BASIS, #
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
-+# See the License for the specific language governing permissions and #
-+# limitations under the License. #
-+# #
-+##############################################################################
-+# #
-+# Developers and authors: #
-+# Shay Gueron (1, 2), and Vlad Krasnov (1) #
-+# (1) Intel Corporation, Israel Development Center #
-+# (2) University of Haifa #
-+# #
-+##############################################################################
-+
-+$flavour = shift;
-+$output = shift;
-+if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-+
-+$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-+
-+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-+( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-+( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-+die "can't locate x86_64-xlate.pl";
-+
-+open OUT,"| \"$^X\" $xlate $flavour $output";
-+*STDOUT=*OUT;
-+
-+if (`$ENV{CC} -Wa,-v -c -o /dev/null -x assembler /dev/null 2>&1`
-+ =~ /GNU assembler version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.19) + ($1>=2.22);
-+}
-+
-+if ($win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) &&
-+ `nasm -v 2>&1` =~ /NASM version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.09) + ($1>=2.10);
-+}
-+
-+if ($win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
-+ `ml64 2>&1` =~ /Version ([0-9]+)\./) {
-+ $avx = ($1>=10) + ($1>=11);
-+}
-+
-+if (`$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
-+ my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10
-+ $avx = ($ver>=3.0) + ($ver>=3.01);
-+}
-+
-+if ($avx>=1) {{
-+
-+my ($_r0_, $_r1_, $_r2_, $_r3_, $_r4_,
-+ $_r1_x5, $_r2_x5, $_r3_x5, $_r4_x5,
-+ $_k_,
-+ $_A0_, $_A1_, $_A2_, $_A3_, $_A4_)
-+ = (64, 96, 128, 160, 192,
-+ 224, 256, 288, 320,
-+ 40,
-+ 352, 356, 360, 364, 368);
-+
-+$code.=<<___;
-+.text
-+.align 32
-+.LandMask:
-+.quad 0x3FFFFFF, 0x3FFFFFF, 0x3FFFFFF, 0x3FFFFFF
-+.LsetBit:
-+.quad 0x1000000, 0x1000000, 0x1000000, 0x1000000
-+.LrSet:
-+.quad 0xFFFFFFC0FFFFFFF, 0xFFFFFFC0FFFFFFF, 0xFFFFFFC0FFFFFFF, 0xFFFFFFC0FFFFFFF
-+.quad 0xFFFFFFC0FFFFFFC, 0xFFFFFFC0FFFFFFC, 0xFFFFFFC0FFFFFFC, 0xFFFFFFC0FFFFFFC
-+
-+.LpermFix:
-+.long 6,7,6,7,6,7,6,7
-+.long 4,5,6,7,6,7,6,7
-+.long 2,3,6,7,4,5,6,7
-+.long 0,1,4,5,2,3,6,7
-+___
-+
-+
-+{
-+my ($A0, $A1, $A2, $A3, $A4,
-+ $r0, $r1, $r2, $r3, $r4,
-+ $T0, $T1, $A5, $A6, $A7, $A8)=map("%xmm$_",(0..15));
-+
-+my ($A0_y, $A1_y, $A2_y, $A3_y, $A4_y,
-+ $r0_y, $r1_y, $r2_y, $r3_y, $r4_y)=map("%ymm$_",(0..9));
-+
-+my ($state, $key)
-+ =("%rdi", "%rsi");
-+
-+$code.=<<___;
-+################################################################################
-+# void poly1305_init_avx2(void *state)
-+
-+.type poly1305_init_avx2, \@function, 2
-+.align 64
-+poly1305_init_avx2:
-+ vzeroupper
-+
-+ # Init the MAC value
-+ mov 8*0($state), %r8
-+ mov 8*1($state), %r9
-+ mov 8*2($state), %r10
-+
-+ mov %r8, %rax
-+ mov %r9, %rcx
-+
-+ sub \$-5, %r8
-+ sbb \$-1, %r9
-+ sbb \$3, %r10
-+
-+ cmovc %rax, %r8
-+ cmovc %rcx, %r9
-+ cmovc 8*2($state), %r10
-+
-+ mov %r8, %rax
-+ and \$0x3ffffff, %rax
-+ mov %eax, $_A0_($state)
-+
-+ shrd \$26, %r9, %r8
-+ shrd \$26, %r10, %r9
-+
-+ mov %r8, %rax
-+ and \$0x3ffffff, %rax
-+ mov %eax, $_A1_($state)
-+
-+ shrd \$26, %r9, %r8
-+ shr \$26, %r9
-+
-+ mov %r8, %rax
-+ and \$0x3ffffff, %rax
-+ mov %eax, $_A2_($state)
-+
-+ shrd \$26, %r9, %r8
-+
-+ mov %r8, %rax
-+ and \$0x3ffffff, %rax
-+ mov %eax, $_A3_($state)
-+
-+ shr \$26, %r8
-+
-+ mov %r8, %rax
-+ and \$0x3ffffff, %rax
-+ mov %eax, $_A4_($state)
-+
-+ # load and convert r
-+ vmovq 8*3($state), $r0
-+ vmovq 8*4($state), $T0
-+ vpand .LrSet(%rip), $r0, $r0
-+ vpand .LrSet+32(%rip), $T0, $T0
-+
-+ vpsrlq \$26, $r0, $r1
-+ vpand .LandMask(%rip), $r0, $r0
-+ vpsrlq \$26, $r1, $r2
-+ vpand .LandMask(%rip), $r1, $r1
-+ vpsllq \$12, $T0, $T1
-+ vpxor $T1, $r2, $r2
-+ vpsrlq \$26, $r2, $r3
-+ vpsrlq \$40, $T0, $r4
-+ vpand .LandMask(%rip), $r2, $r2
-+ vpand .LandMask(%rip), $r3, $r3
-+ # SQR R
-+ vpmuludq $r0, $r0, $A0
-+ vpmuludq $r1, $r0, $A1
-+ vpmuludq $r2, $r0, $A2
-+ vpmuludq $r3, $r0, $A3
-+ vpmuludq $r4, $r0, $A4
-+
-+ vpsllq \$1, $A1, $A1
-+ vpsllq \$1, $A2, $A2
-+ vpmuludq $r1, $r1, $T0
-+ vpaddq $T0, $A2, $A2
-+ vpmuludq $r2, $r1, $T0
-+ vpaddq $T0, $A3, $A3
-+ vpmuludq $r3, $r1, $T0
-+ vpaddq $T0, $A4, $A4
-+ vpmuludq $r4, $r1, $A5
-+
-+ vpsllq \$1, $A3, $A3
-+ vpsllq \$1, $A4, $A4
-+ vpmuludq $r2, $r2, $T0
-+ vpaddq $T0, $A4, $A4
-+ vpmuludq $r3, $r2, $T0
-+ vpaddq $T0, $A5, $A5
-+ vpmuludq $r4, $r2, $A6
-+
-+ vpsllq \$1, $A5, $A5
-+ vpsllq \$1, $A6, $A6
-+ vpmuludq $r3, $r3, $T0
-+ vpaddq $T0, $A6, $A6
-+ vpmuludq $r4, $r3, $A7
-+
-+ vpsllq \$1, $A7, $A7
-+ vpmuludq $r4, $r4, $A8
-+
-+ # Reduce
-+ vpsrlq \$26, $A4, $T0
-+ vpand .LandMask(%rip), $A4, $A4
-+ vpaddq $T0, $A5, $A5
-+
-+ vpsllq \$2, $A5, $T0
-+ vpaddq $T0, $A5, $A5
-+ vpsllq \$2, $A6, $T0
-+ vpaddq $T0, $A6, $A6
-+ vpsllq \$2, $A7, $T0
-+ vpaddq $T0, $A7, $A7
-+ vpsllq \$2, $A8, $T0
-+ vpaddq $T0, $A8, $A8
-+
-+ vpaddq $A5, $A0, $A0
-+ vpaddq $A6, $A1, $A1
-+ vpaddq $A7, $A2, $A2
-+ vpaddq $A8, $A3, $A3
-+
-+ vpsrlq \$26, $A0, $T0
-+ vpand .LandMask(%rip), $A0, $A0
-+ vpaddq $T0, $A1, $A1
-+ vpsrlq \$26, $A1, $T0
-+ vpand .LandMask(%rip), $A1, $A1
-+ vpaddq $T0, $A2, $A2
-+ vpsrlq \$26, $A2, $T0
-+ vpand .LandMask(%rip), $A2, $A2
-+ vpaddq $T0, $A3, $A3
-+ vpsrlq \$26, $A3, $T0
-+ vpand .LandMask(%rip), $A3, $A3
-+ vpaddq $T0, $A4, $A4
-+
-+ vpunpcklqdq $r0, $A0, $r0
-+ vpunpcklqdq $r1, $A1, $r1
-+ vpunpcklqdq $r2, $A2, $r2
-+ vpunpcklqdq $r3, $A3, $r3
-+ vpunpcklqdq $r4, $A4, $r4
-+
-+ vmovdqu $r0, $_r0_+16($state)
-+ vmovdqu $r1, $_r1_+16($state)
-+ vmovdqu $r2, $_r2_+16($state)
-+ vmovdqu $r3, $_r3_+16($state)
-+ vmovdqu $r4, $_r4_+16($state)
-+
-+ vpsllq \$2, $r1, $A1
-+ vpsllq \$2, $r2, $A2
-+ vpsllq \$2, $r3, $A3
-+ vpsllq \$2, $r4, $A4
-+
-+ vpaddq $A1, $r1, $A1
-+ vpaddq $A2, $r2, $A2
-+ vpaddq $A3, $r3, $A3
-+ vpaddq $A4, $r4, $A4
-+
-+ vmovdqu $A1, $_r1_x5+16($state)
-+ vmovdqu $A2, $_r2_x5+16($state)
-+ vmovdqu $A3, $_r3_x5+16($state)
-+ vmovdqu $A4, $_r4_x5+16($state)
-+
-+ # Compute r^3 and r^4
-+ vpshufd \$0x44, $r0, $A0
-+ vpshufd \$0x44, $r1, $A1
-+ vpshufd \$0x44, $r2, $A2
-+ vpshufd \$0x44, $r3, $A3
-+ vpshufd \$0x44, $r4, $A4
-+
-+ # Multiply input by R[0]
-+ vmovdqu $_r0_+16($state), $T0
-+ vpmuludq $T0, $A0, $r0
-+ vpmuludq $T0, $A1, $r1
-+ vpmuludq $T0, $A2, $r2
-+ vpmuludq $T0, $A3, $r3
-+ vpmuludq $T0, $A4, $r4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vmovdqu $_r1_x5+16($state), $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $r0, $r0
-+ vmovdqu $_r1_+16($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $r1, $r1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $r2, $r2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $r3, $r3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $r4, $r4
-+ # Etc
-+ vmovdqu $_r2_x5+16($state), $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $r0, $r0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $r1, $r1
-+ vmovdqu $_r2_+16($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $r2, $r2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $r3, $r3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $r4, $r4
-+
-+ vmovdqu $_r3_x5+16($state), $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $r0, $r0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $r1, $r1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $r2, $r2
-+ vmovdqu $_r3_+16($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $r3, $r3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $r4, $r4
-+
-+ vmovdqu $_r4_x5+16($state), $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $r0, $r0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $r1, $r1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $r2, $r2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $r3, $r3
-+ vmovdqu $_r4_+16($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $r4, $r4
-+ # Reduce
-+ vpsrlq \$26, $r3, $T0
-+ vpaddq $T0, $r4, $r4
-+ vpand .LandMask(%rip), $r3, $r3
-+ vpsrlq \$26, $r4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $r0, $r0
-+ vpand .LandMask(%rip), $r4, $r4
-+ vpsrlq \$26, $r0, $T0
-+ vpand .LandMask(%rip), $r0, $r0
-+ vpaddq $T0, $r1, $r1
-+ vpsrlq \$26, $r1, $T0
-+ vpand .LandMask(%rip), $r1, $r1
-+ vpaddq $T0, $r2, $r2
-+ vpsrlq \$26, $r2, $T0
-+ vpand .LandMask(%rip), $r2, $r2
-+ vpaddq $T0, $r3, $r3
-+ vpsrlq \$26, $r3, $T0
-+ vpand .LandMask(%rip), $r3, $r3
-+ vpaddq $T0, $r4, $r4
-+
-+ vmovdqu $r0, $_r0_($state)
-+ vmovdqu $r1, $_r1_($state)
-+ vmovdqu $r2, $_r2_($state)
-+ vmovdqu $r3, $_r3_($state)
-+ vmovdqu $r4, $_r4_($state)
-+
-+ vpsllq \$2, $r1, $A1
-+ vpsllq \$2, $r2, $A2
-+ vpsllq \$2, $r3, $A3
-+ vpsllq \$2, $r4, $A4
-+
-+ vpaddq $A1, $r1, $A1
-+ vpaddq $A2, $r2, $A2
-+ vpaddq $A3, $r3, $A3
-+ vpaddq $A4, $r4, $A4
-+
-+ vmovdqu $A1, $_r1_x5($state)
-+ vmovdqu $A2, $_r2_x5($state)
-+ vmovdqu $A3, $_r3_x5($state)
-+ vmovdqu $A4, $_r4_x5($state)
-+
-+ movq \$1, 8*7($state)
-+
-+ ret
-+.size poly1305_init_avx2,.-poly1305_init_avx2
-+___
-+}
-+
-+{
-+
-+my ($A0, $A1, $A2, $A3, $A4,
-+ $T0, $T1, $R0, $R1, $R2,
-+ $R3, $R4, $AND_MASK, $PERM_MASK, $SET_MASK)
-+ =map("%ymm$_",(0..14));
-+
-+my ($A0_x, $A1_x, $A2_x, $A3_x, $A4_x,
-+ $T0_x, $T1_x, $R0_x, $R1_x, $R2_x,
-+ $R3_x, $R4_x, $AND_MASK_x, $PERM_MASK_x, $SET_MASK_x)
-+ =map("%xmm$_",(0..14));
-+
-+my ($state, $in, $in_len, $hlp, $rsp_save)
-+ =("%rdi", "%rsi", "%rdx", "%rcx", "%rax");
-+
-+$code.=<<___;
-+
-+###############################################################################
-+# void poly1305_update_avx2(void* $state, void* in, uint64_t in_len)
-+.globl poly1305_update_avx2
-+.type poly1305_update_avx2, \@function, 2
-+.align 64
-+poly1305_update_avx2:
-+
-+
-+ test $in_len, $in_len
-+ jz 6f
-+
-+ cmpq \$0, 8*7($state)
-+ jne 1f # This means we already started avx2, and must finish
-+
-+ # If we are here we need to check in_len is longer than the min for avx2
-+
-+ cmp \$512, $in_len
-+ jge 2f
-+
-+ jmp poly1305_update_x64
-+
-+2:
-+ call poly1305_init_avx2
-+
-+1:
-+ vmovd $_A0_($state), $A0_x
-+ vmovd $_A1_($state), $A1_x
-+ vmovd $_A2_($state), $A2_x
-+ vmovd $_A3_($state), $A3_x
-+ vmovd $_A4_($state), $A4_x
-+
-+ vmovdqa .LandMask(%rip), $AND_MASK
-+1:
-+ cmp \$32*4, $in_len
-+ jb 1f
-+ sub \$32*2, $in_len
-+
-+ # load the next four blocks
-+ vmovdqu 32*0($in), $R2
-+ vmovdqu 32*1($in), $R3
-+ add \$32*2, $in
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+
-+ vpermq \$0xD8, $R0, $R0 # it is possible to rearrange the precomputations, and save this shuffle
-+ vpermq \$0xD8, $R1, $R1
-+
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpxor .LsetBit(%rip), $R2, $R2
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+
-+ # Multiply input by R[0]
-+ vpbroadcastq $_r0_($state), $T0
-+ vpmuludq $T0, $A0, $R0
-+ vpmuludq $T0, $A1, $R1
-+ vpmuludq $T0, $A2, $R2
-+ vpmuludq $T0, $A3, $R3
-+ vpmuludq $T0, $A4, $R4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vpbroadcastq $_r1_x5($state), $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpbroadcastq $_r1_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Etc
-+ vpbroadcastq $_r2_x5($state), $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpbroadcastq $_r2_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vpbroadcastq $_r3_x5($state), $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpbroadcastq $_r3_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vpbroadcastq $_r4_x5($state), $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpbroadcastq $_r4_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Reduce
-+ vpsrlq \$26, $R3, $T0
-+ vpaddq $T0, $R4, $R4
-+ vpand $AND_MASK, $R3, $R3
-+
-+ vpsrlq \$26, $R4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $R0, $R0
-+ vpand $AND_MASK, $R4, $R4
-+
-+ vpsrlq \$26, $R0, $T0
-+ vpand $AND_MASK, $R0, $A0
-+ vpaddq $T0, $R1, $R1
-+ vpsrlq \$26, $R1, $T0
-+ vpand $AND_MASK, $R1, $A1
-+ vpaddq $T0, $R2, $R2
-+ vpsrlq \$26, $R2, $T0
-+ vpand $AND_MASK, $R2, $A2
-+ vpaddq $T0, $R3, $R3
-+ vpsrlq \$26, $R3, $T0
-+ vpand $AND_MASK, $R3, $A3
-+ vpaddq $T0, $R4, $A4
-+ jmp 1b
-+1:
-+
-+ cmp \$32*2, $in_len
-+ jb 1f
-+ sub \$32*2, $in_len
-+ # load the next four blocks
-+ vmovdqu 32*0($in), $R2
-+ vmovdqu 32*1($in), $R3
-+ add \$32*2, $in
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+
-+ vpermq \$0xD8, $R0, $R0
-+ vpermq \$0xD8, $R1, $R1
-+
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpxor .LsetBit(%rip), $R2, $R2
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+
-+ # Multiply input by R[0]
-+ vmovdqu $_r0_($state), $T0
-+ vpmuludq $T0, $A0, $R0
-+ vpmuludq $T0, $A1, $R1
-+ vpmuludq $T0, $A2, $R2
-+ vpmuludq $T0, $A3, $R3
-+ vpmuludq $T0, $A4, $R4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vmovdqu $_r1_x5($state), $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R0, $R0
-+ vmovdqu $_r1_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Etc
-+ vmovdqu $_r2_x5($state), $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R1, $R1
-+ vmovdqu $_r2_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovdqu $_r3_x5($state), $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R2, $R2
-+ vmovdqu $_r3_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovdqu $_r4_x5($state), $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R3, $R3
-+ vmovdqu $_r4_($state), $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Reduce
-+ vpsrlq \$26, $R3, $T0
-+ vpaddq $T0, $R4, $R4
-+ vpand $AND_MASK, $R3, $R3
-+ vpsrlq \$26, $R4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $R0, $R0
-+ vpand $AND_MASK, $R4, $R4
-+ vpsrlq \$26, $R0, $T0
-+ vpand $AND_MASK, $R0, $A0
-+ vpaddq $T0, $R1, $R1
-+ vpsrlq \$26, $R1, $T0
-+ vpand $AND_MASK, $R1, $A1
-+ vpaddq $T0, $R2, $R2
-+ vpsrlq \$26, $R2, $T0
-+ vpand $AND_MASK, $R2, $A2
-+ vpaddq $T0, $R3, $R3
-+ vpsrlq \$26, $R3, $T0
-+ vpand $AND_MASK, $R3, $A3
-+ vpaddq $T0, $R4, $A4
-+
-+ vpsrldq \$8, $A0, $R0
-+ vpsrldq \$8, $A1, $R1
-+ vpsrldq \$8, $A2, $R2
-+ vpsrldq \$8, $A3, $R3
-+ vpsrldq \$8, $A4, $R4
-+
-+ vpaddq $R0, $A0, $A0
-+ vpaddq $R1, $A1, $A1
-+ vpaddq $R2, $A2, $A2
-+ vpaddq $R3, $A3, $A3
-+ vpaddq $R4, $A4, $A4
-+
-+ vpermq \$0xAA, $A0, $R0
-+ vpermq \$0xAA, $A1, $R1
-+ vpermq \$0xAA, $A2, $R2
-+ vpermq \$0xAA, $A3, $R3
-+ vpermq \$0xAA, $A4, $R4
-+
-+ vpaddq $R0, $A0, $A0
-+ vpaddq $R1, $A1, $A1
-+ vpaddq $R2, $A2, $A2
-+ vpaddq $R3, $A3, $A3
-+ vpaddq $R4, $A4, $A4
-+1:
-+ test $in_len, $in_len
-+ jz 5f
-+ # In case 1,2 or 3 blocks remain, we want to multiply them correctly
-+ vmovq $A0_x, $A0_x
-+ vmovq $A1_x, $A1_x
-+ vmovq $A2_x, $A2_x
-+ vmovq $A3_x, $A3_x
-+ vmovq $A4_x, $A4_x
-+
-+ mov .LsetBit(%rip), $hlp
-+ mov %rsp, $rsp_save
-+ test \$15, $in_len
-+ jz 1f
-+ xor $hlp, $hlp
-+ sub \$64, %rsp
-+ vpxor $R0, $R0, $R0
-+ vmovdqu $R0, (%rsp)
-+ vmovdqu $R0, 32(%rsp)
-+3:
-+ movb ($in, $hlp), %r8b
-+ movb %r8b, (%rsp, $hlp)
-+ inc $hlp
-+ cmp $hlp, $in_len
-+ jne 3b
-+
-+ movb \$1, (%rsp, $hlp)
-+ xor $hlp, $hlp
-+ mov %rsp, $in
-+
-+1:
-+
-+ cmp \$16, $in_len
-+ ja 2f
-+ vmovq 8*0($in), $R0_x
-+ vmovq 8*1($in), $R1_x
-+ vmovq $hlp, $SET_MASK_x
-+ vmovdqa .LpermFix(%rip), $PERM_MASK
-+ jmp 1f
-+2:
-+ cmp \$32, $in_len
-+ ja 2f
-+ vmovdqu 16*0($in), $R2_x
-+ vmovdqu 16*1($in), $R3_x
-+ vmovq .LsetBit(%rip), $SET_MASK_x
-+ vpinsrq \$1, $hlp, $SET_MASK_x, $SET_MASK_x
-+ vmovdqa .LpermFix+32(%rip), $PERM_MASK
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+ jmp 1f
-+2:
-+ cmp \$48, $in_len
-+ ja 2f
-+ vmovdqu 32*0($in), $R2
-+ vmovdqu 32*1($in), $R3_x
-+ vmovq .LsetBit(%rip), $SET_MASK_x
-+ vpinsrq \$1, $hlp, $SET_MASK_x, $SET_MASK_x
-+ vpermq \$0xc4, $SET_MASK, $SET_MASK
-+ vmovdqa .LpermFix+64(%rip), $PERM_MASK
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+ jmp 1f
-+2:
-+ vmovdqu 32*0($in), $R2
-+ vmovdqu 32*1($in), $R3
-+ vmovq .LsetBit(%rip), $SET_MASK_x
-+ vpinsrq \$1, $hlp, $SET_MASK_x, $SET_MASK_x
-+ vpermq \$0x40, $SET_MASK, $SET_MASK
-+ vmovdqa .LpermFix+96(%rip), $PERM_MASK
-+
-+ vpunpcklqdq $R3, $R2, $R0
-+ vpunpckhqdq $R3, $R2, $R1
-+
-+1:
-+ mov $rsp_save, %rsp
-+
-+ vpsrlq \$26, $R0, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A0, $A0
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpand $AND_MASK, $R2, $R2
-+ vpaddq $R2, $A1, $A1
-+
-+ vpsllq \$12, $R1, $R2
-+ vpxor $R2, $R0, $R0
-+ vpand $AND_MASK, $R0, $R0
-+ vpaddq $R0, $A2, $A2
-+
-+ vpsrlq \$26, $R2, $R0
-+ vpsrlq \$40, $R1, $R2
-+ vpand $AND_MASK, $R0, $R0
-+ vpxor $SET_MASK, $R2, $R2
-+ vpaddq $R0, $A3, $A3
-+ vpaddq $R2, $A4, $A4
-+
-+ # Multiply input by R[0]
-+ vmovdqu $_r0_($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A0, $R0
-+ vpmuludq $T0, $A1, $R1
-+ vpmuludq $T0, $A2, $R2
-+ vpmuludq $T0, $A3, $R3
-+ vpmuludq $T0, $A4, $R4
-+ # Multiply input by R[1] (and R[1]*5)
-+ vmovdqu $_r1_x5($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R0, $R0
-+ vmovdqu $_r1_($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Etc
-+ vmovdqu $_r2_x5($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R1, $R1
-+ vmovdqu $_r2_($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovdqu $_r3_x5($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R2, $R2
-+ vmovdqu $_r3_($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R3, $R3
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R4, $R4
-+
-+ vmovdqu $_r4_x5($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A1, $T1
-+ vpaddq $T1, $R0, $R0
-+ vpmuludq $T0, $A2, $T1
-+ vpaddq $T1, $R1, $R1
-+ vpmuludq $T0, $A3, $T1
-+ vpaddq $T1, $R2, $R2
-+ vpmuludq $T0, $A4, $T1
-+ vpaddq $T1, $R3, $R3
-+ vmovdqu $_r4_($state), $T0
-+ vpermd $T0, $PERM_MASK, $T0
-+ vpmuludq $T0, $A0, $T1
-+ vpaddq $T1, $R4, $R4
-+ # Reduce
-+ vpsrlq \$26, $R3, $T0
-+ vpaddq $T0, $R4, $R4
-+ vpand $AND_MASK, $R3, $R3
-+ vpsrlq \$26, $R4, $T0
-+ vpsllq \$2, $T0, $T1
-+ vpaddq $T1, $T0, $T0
-+ vpaddq $T0, $R0, $R0
-+ vpand $AND_MASK, $R4, $R4
-+ vpsrlq \$26, $R0, $T0
-+ vpand $AND_MASK, $R0, $A0
-+ vpaddq $T0, $R1, $R1
-+ vpsrlq \$26, $R1, $T0
-+ vpand $AND_MASK, $R1, $A1
-+ vpaddq $T0, $R2, $R2
-+ vpsrlq \$26, $R2, $T0
-+ vpand $AND_MASK, $R2, $A2
-+ vpaddq $T0, $R3, $R3
-+ vpsrlq \$26, $R3, $T0
-+ vpand $AND_MASK, $R3, $A3
-+ vpaddq $T0, $R4, $A4
-+
-+ vpsrldq \$8, $A0, $R0
-+ vpsrldq \$8, $A1, $R1
-+ vpsrldq \$8, $A2, $R2
-+ vpsrldq \$8, $A3, $R3
-+ vpsrldq \$8, $A4, $R4
-+
-+ vpaddq $R0, $A0, $A0
-+ vpaddq $R1, $A1, $A1
-+ vpaddq $R2, $A2, $A2
-+ vpaddq $R3, $A3, $A3
-+ vpaddq $R4, $A4, $A4
-+
-+ vpermq \$0xAA, $A0, $R0
-+ vpermq \$0xAA, $A1, $R1
-+ vpermq \$0xAA, $A2, $R2
-+ vpermq \$0xAA, $A3, $R3
-+ vpermq \$0xAA, $A4, $R4
-+
-+ vpaddq $R0, $A0, $A0
-+ vpaddq $R1, $A1, $A1
-+ vpaddq $R2, $A2, $A2
-+ vpaddq $R3, $A3, $A3
-+ vpaddq $R4, $A4, $A4
-+
-+5:
-+ vmovd $A0_x, $_A0_($state)
-+ vmovd $A1_x, $_A1_($state)
-+ vmovd $A2_x, $_A2_($state)
-+ vmovd $A3_x, $_A3_($state)
-+ vmovd $A4_x, $_A4_($state)
-+6:
-+ ret
-+.size poly1305_update_avx2,.-poly1305_update_avx2
-+###############################################################################
-+# void poly1305_finish_avx2(void* $state, uint8_t mac[16]);
-+.type poly1305_finish_avx2,\@function,2
-+.globl poly1305_finish_avx2
-+poly1305_finish_avx2:
-+___
-+my $mac="%rsi";
-+my ($A0, $A1, $A2, $A3, $A4, $T0, $T1)
-+ =map("%xmm$_",(0..6));
-+
-+$code.=<<___;
-+ cmpq \$0, 8*7($state)
-+ jne 1f
-+ jmp poly1305_finish_x64
-+
-+1:
-+ mov $_A0_($state), %r8d
-+ mov $_A1_($state), %eax
-+ mov $_A2_($state), %r9d
-+ mov $_A3_($state), %ecx
-+ mov $_A4_($state), %r10d
-+
-+ shl \$26, %rax
-+ add %rax, %r8
-+
-+ mov %r9, %rax
-+ shl \$52, %rax
-+ shr \$12, %r9
-+ add %rax, %r8
-+ adc \$0, %r9
-+
-+ mov %r10, %rax
-+ shl \$14, %rcx
-+ shl \$40, %rax
-+ shr \$24, %r10
-+
-+ add %rcx, %r9
-+ add %rax, %r9
-+ adc \$0, %r10
-+
-+ mov %r10, %rax
-+ shr \$2, %rax
-+ and \$3, %r10
-+
-+ mov %rax, %rcx
-+ shl \$2, %rax
-+ add %rcx, %rax
-+
-+ add %rax, %r8
-+ adc \$0, %r9
-+ adc \$0, %r10
-+
-+ mov %r8, %rax
-+ mov %r9, %rcx
-+ sub \$-5, %rax
-+ sbb \$-1, %rcx
-+ sbb \$3, %r10
-+
-+ cmovc %r8, %rax
-+ cmovc %r9, %rcx
-+ add $_k_($state), %rax
-+ adc $_k_+8($state), %rcx
-+ mov %rax, ($mac)
-+ mov %rcx, 8($mac)
-+
-+ ret
-+.size poly1305_finish_avx2,.-poly1305_finish_avx2
-+___
-+}
-+}}
-+
-+$code =~ s/\`([^\`]*)\`/eval(\$1)/gem;
-+print $code;
-+close STDOUT;
-+
-diff --git a/crypto/chacha20poly1305/asm/poly1305_x64.pl b/crypto/chacha20poly1305/asm/poly1305_x64.pl
-new file mode 100644
-index 0000000..31c4c47
---- /dev/null
-+++ b/crypto/chacha20poly1305/asm/poly1305_x64.pl
-@@ -0,0 +1,281 @@
-+
-+##############################################################################
-+# #
-+# Copyright 2016 CloudFlare LTD #
-+# #
-+# Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 #
-+# #
-+# Unless required by applicable law or agreed to in writing, software #
-+# distributed under the License is distributed on an "AS IS" BASIS, #
-+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
-+# See the License for the specific language governing permissions and #
-+# limitations under the License. #
-+# #
-+##############################################################################
-+# #
-+# Author: Vlad Krasnov #
-+# #
-+##############################################################################
-+
-+$flavour = shift;
-+$output = shift;
-+if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
-+
-+$win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
-+
-+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
-+( $xlate="${dir}x86_64-xlate.pl" and -f $xlate ) or
-+( $xlate="${dir}../../perlasm/x86_64-xlate.pl" and -f $xlate) or
-+die "can't locate x86_64-xlate.pl";
-+
-+open OUT,"| \"$^X\" $xlate $flavour $output";
-+*STDOUT=*OUT;
-+
-+if (`$ENV{CC} -Wa,-v -c -o /dev/null -x assembler /dev/null 2>&1`
-+ =~ /GNU assembler version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.19) + ($1>=2.22);
-+}
-+
-+if ($win64 && ($flavour =~ /nasm/ || $ENV{ASM} =~ /nasm/) &&
-+ `nasm -v 2>&1` =~ /NASM version ([2-9]\.[0-9]+)/) {
-+ $avx = ($1>=2.09) + ($1>=2.10);
-+}
-+
-+if ($win64 && ($flavour =~ /masm/ || $ENV{ASM} =~ /ml64/) &&
-+ `ml64 2>&1` =~ /Version ([0-9]+)\./) {
-+ $avx = ($1>=10) + ($1>=11);
-+}
-+
-+if (`$ENV{CC} -v 2>&1` =~ /(^clang version|based on LLVM) ([3-9])\.([0-9]+)/) {
-+ my $ver = $2 + $3/100.0; # 3.1->3.01, 3.10->3.10
-+ $avx = ($ver>=3.0) + ($ver>=3.01);
-+}
-+
-+
-+{
-+{
-+
-+my ($state, $key)
-+ =("%rdi", "%rsi");
-+
-+$code.=<<___;
-+
-+.LrSet:
-+.align 16
-+.quad 0x0FFFFFFC0FFFFFFF, 0x0FFFFFFC0FFFFFFC
-+###############################################################################
-+# void poly1305_init_x64(void *state, uint8_t key[32])
-+
-+.globl poly1305_init_x64
-+.type poly1305_init_x64, \@function, 2
-+.align 64
-+poly1305_init_x64:
-+
-+ xor %rax, %rax
-+ mov %rax, 8*0($state)
-+ mov %rax, 8*1($state)
-+ mov %rax, 8*2($state)
-+
-+ movdqu 16*0($key), %xmm0
-+ movdqu 16*1($key), %xmm1
-+ pand .LrSet(%rip), %xmm0
-+
-+ movdqu %xmm0, 8*3($state)
-+ movdqu %xmm1, 8*3+16($state)
-+ movq \$0, 8*7($state)
-+
-+ ret
-+.size poly1305_init_x64,.-poly1305_init_x64
-+___
-+}
-+
-+{
-+
-+my ($state, $inp)
-+ =("%rdi", "%rsi");
-+
-+my ($acc0, $acc1, $acc2, $inl, $t0, $t1, $t2, $t3, $r0)
-+ =("%rcx", "%r8", "%r9", "%r10", "%r11", "%r12", "%r13", "%r14", "%r15");
-+
-+my ($r1)
-+ =("8*4($state)");
-+
-+$code.=<<___;
-+###############################################################################
-+# void* poly1305_update_x64(void* state, void* in, uint64_t in_len)
-+.globl poly1305_update_x64
-+.type poly1305_update_x64, \@function, 2
-+.align 64
-+poly1305_update_x64:
-+
-+ push %r11
-+ push %r12
-+ push %r13
-+ push %r14
-+ push %r15
-+
-+ mov %rdx, $inl
-+
-+ mov 8*0($state), $acc0
-+ mov 8*1($state), $acc1
-+ mov 8*2($state), $acc2
-+ mov 8*3($state), $r0
-+
-+ cmp \$16, $inl
-+ jb 2f
-+ jmp 1f
-+
-+.align 64
-+1:
-+############################
-+ add 8*0($inp), $acc0
-+ adc 8*1($inp), $acc1
-+ lea 16($inp), $inp
-+ adc \$1, $acc2
-+
-+5:
-+ mov $r0, %rax
-+ mulq $acc0
-+ mov %rax, $t0
-+ mov %rdx, $t1
-+
-+ mov $r0, %rax
-+ mulq $acc1
-+ add %rax, $t1
-+ adc \$0, %rdx
-+
-+ mov $r0, $t2
-+ imul $acc2, $t2
-+ add %rdx, $t2
-+############################
-+ mov $r1, %rax
-+ mulq $acc0
-+ add %rax, $t1
-+ adc \$0, %rdx
-+ mov %rdx, $acc0
-+
-+ mov $r1, %rax
-+ mulq $acc1
-+ add $acc0, $t2
-+ adc \$0, %rdx
-+ add %rax, $t2
-+ adc \$0, %rdx
-+
-+ mov $r1, $t3
-+ imul $acc2, $t3
-+ add %rdx, $t3
-+############################
-+
-+ mov $t0, $acc0
-+ mov $t1, $acc1
-+ mov $t2, $acc2
-+ and \$3, $acc2
-+
-+ mov $t2, $t0
-+ mov $t3, $t1
-+
-+ and \$-4, $t0
-+ shrd \$2, $t3, $t2
-+ shr \$2, $t3
-+
-+ add $t0, $acc0
-+ adc $t1, $acc1
-+ adc \$0, $acc2
-+
-+ add $t2, $acc0
-+ adc $t3, $acc1
-+ adc \$0, $acc2
-+
-+ sub \$16, $inl
-+ cmp \$16, $inl
-+ jae 1b
-+
-+2:
-+ test $inl, $inl
-+ jz 3f
-+
-+ mov \$1, $t0
-+ xor $t1, $t1
-+ xor $t2, $t2
-+ add $inl, $inp
-+
-+4:
-+ shld \$8, $t0, $t1
-+ shl \$8, $t0
-+ movzxb -1($inp), $t2
-+ xor $t2, $t0
-+ dec $inp
-+ dec $inl
-+ jnz 4b
-+
-+ add $t0, $acc0
-+ adc $t1, $acc1
-+ adc \$0, $acc2
-+
-+ mov \$16, $inl
-+ jmp 5b
-+
-+3:
-+
-+ mov $acc0, 8*0($state)
-+ mov $acc1, 8*1($state)
-+ mov $acc2, 8*2($state)
-+
-+ pop %r15
-+ pop %r14
-+ pop %r13
-+ pop %r12
-+ pop %r11
-+ ret
-+.size poly1305_update_x64, .-poly1305_update_x64
-+___
-+}
-+
-+{
-+
-+my ($mac, $state)=("%rsi", "%rdi");
-+
-+my ($acc0, $acc1, $acc2, $t0, $t1, $t2)
-+ =("%rcx", "%rax", "%rdx", "%r8", "%r9", "%r10");
-+
-+$code.=<<___;
-+###############################################################################
-+# void poly1305_finish_x64(void* state, uint64_t mac[2]);
-+.type poly1305_finish_x64,\@function, 2
-+.align 64
-+.globl poly1305_finish_x64
-+poly1305_finish_x64:
-+
-+ mov 8*0($state), $acc0
-+ mov 8*1($state), $acc1
-+ mov 8*2($state), $acc2
-+
-+ mov $acc0, $t0
-+ mov $acc1, $t1
-+ mov $acc2, $t2
-+
-+ sub \$-5, $acc0
-+ sbb \$-1, $acc1
-+ sbb \$3, $acc2
-+
-+ cmovc $t0, $acc0
-+ cmovc $t1, $acc1
-+ cmovc $t2, $acc2
-+
-+ add 8*5($state), $acc0
-+ adc 8*6($state), $acc1
-+ mov $acc0, ($mac)
-+ mov $acc1, 8($mac)
-+
-+ ret
-+.size poly1305_finish_x64, .-poly1305_finish_x64
-+___
-+}
-+}
-+$code =~ s/\`([^\`]*)\`/eval($1)/gem;
-+print $code;
-+close STDOUT;
-diff --git a/crypto/chacha20poly1305/chacha20.c b/crypto/chacha20poly1305/chacha20.c
-new file mode 100644
-index 0000000..3044751
---- /dev/null
-+++ b/crypto/chacha20poly1305/chacha20.c
-@@ -0,0 +1,162 @@
-+/* Copyright (c) 2014, Google Inc.
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-+
-+/* Adapted from the public domain, estream code by D. Bernstein. */
-+
-+#include "chacha20poly1305.h"
-+
-+/* sigma contains the ChaCha constants, which happen to be an ASCII string. */
-+static const char sigma[16] = "expand 32-byte k";
-+
-+#define ROTATE(v, n) (((v) << (n)) | ((v) >> (32 - (n))))
-+#define XOR(v, w) ((v) ^ (w))
-+#define PLUS(x, y) ((x) + (y))
-+#define PLUSONE(v) (PLUS((v), 1))
-+
-+#define U32TO8_LITTLE(p, v) \
-+ { \
-+ (p)[0] = (v >> 0) & 0xff; \
-+ (p)[1] = (v >> 8) & 0xff; \
-+ (p)[2] = (v >> 16) & 0xff; \
-+ (p)[3] = (v >> 24) & 0xff; \
-+ }
-+
-+#define U8TO32_LITTLE(p) \
-+ (((uint32_t)((p)[0])) | ((uint32_t)((p)[1]) << 8) | \
-+ ((uint32_t)((p)[2]) << 16) | ((uint32_t)((p)[3]) << 24))
-+
-+/* QUARTERROUND updates a, b, c, d with a ChaCha "quarter" round. */
-+#define QUARTERROUND(a,b,c,d) \
-+ x[a] = PLUS(x[a],x[b]); x[d] = ROTATE(XOR(x[d],x[a]),16); \
-+ x[c] = PLUS(x[c],x[d]); x[b] = ROTATE(XOR(x[b],x[c]),12); \
-+ x[a] = PLUS(x[a],x[b]); x[d] = ROTATE(XOR(x[d],x[a]), 8); \
-+ x[c] = PLUS(x[c],x[d]); x[b] = ROTATE(XOR(x[b],x[c]), 7);
-+
-+/* chacha_core performs |num_rounds| rounds of ChaCha20 on the input words in
-+ * |input| and writes the 64 output bytes to |output|. */
-+static void chacha_core(uint8_t output[64], const uint32_t input[16]) {
-+ uint32_t x[16];
-+ int i;
-+
-+ memcpy(x, input, sizeof(uint32_t) * 16);
-+ for (i = 20; i > 0; i -= 2) {
-+ QUARTERROUND(0, 4, 8, 12)
-+ QUARTERROUND(1, 5, 9, 13)
-+ QUARTERROUND(2, 6, 10, 14)
-+ QUARTERROUND(3, 7, 11, 15)
-+ QUARTERROUND(0, 5, 10, 15)
-+ QUARTERROUND(1, 6, 11, 12)
-+ QUARTERROUND(2, 7, 8, 13)
-+ QUARTERROUND(3, 4, 9, 14)
-+ }
-+
-+ for (i = 0; i < 16; ++i) {
-+ x[i] = PLUS(x[i], input[i]);
-+ }
-+ for (i = 0; i < 16; ++i) {
-+ U32TO8_LITTLE(output + 4 * i, x[i]);
-+ }
-+}
-+
-+void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in, size_t in_len,
-+ uint8_t nonce[48]) {
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+ const int AVX2_threshold = 256;
-+ const int AVX2_min_buf = 128;
-+ const int AVX_min_buf = 64;
-+
-+ uint8_t buf[128];
-+ size_t buf_size;
-+
-+ void (*core_func)(uint8_t *out, const uint8_t *in, size_t in_len,
-+ uint8_t nonce[48]) = NULL;
-+#else /* !CHAPOLY_x86_64_ASM */
-+
-+ uint8_t buf[64];
-+
-+#endif
-+
-+ uint32_t input[16];
-+ size_t todo, i;
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+ if (in_len >= AVX2_threshold && ((OPENSSL_ia32cap_loc()[1] >> 5) & 1)) {
-+ buf_size = AVX2_min_buf;
-+ core_func = chacha_20_core_avx2;
-+ } else if ((OPENSSL_ia32cap_loc()[0] >> 60) & 1) {
-+ buf_size = AVX_min_buf;
-+ core_func = chacha_20_core_avx;
-+ } else goto do_legacy;
-+
-+ core_func(out, in, in_len, nonce);
-+ todo = in_len & (buf_size - 1);
-+
-+ if(todo) {
-+ out += in_len - todo;
-+ in += in_len - todo;
-+ memcpy(buf, in, todo);
-+
-+ core_func(buf, buf, buf_size, nonce);
-+
-+ memcpy(out, buf, todo);
-+ memset(buf, 0, buf_size);
-+ }
-+ return;
-+
-+do_legacy:
-+#endif /* CHAPOLY_x86_64_ASM */
-+
-+ input[0] = U8TO32_LITTLE(sigma + 0);
-+ input[1] = U8TO32_LITTLE(sigma + 4);
-+ input[2] = U8TO32_LITTLE(sigma + 8);
-+ input[3] = U8TO32_LITTLE(sigma + 12);
-+
-+ input[4] = U8TO32_LITTLE(nonce + 0);
-+ input[5] = U8TO32_LITTLE(nonce + 4);
-+ input[6] = U8TO32_LITTLE(nonce + 8);
-+ input[7] = U8TO32_LITTLE(nonce + 12);
-+
-+ input[8] = U8TO32_LITTLE(nonce + 16);
-+ input[9] = U8TO32_LITTLE(nonce + 20);
-+ input[10] = U8TO32_LITTLE(nonce + 24);
-+ input[11] = U8TO32_LITTLE(nonce + 28);
-+
-+ input[12] = U8TO32_LITTLE(nonce + 32);
-+ input[13] = U8TO32_LITTLE(nonce + 36);
-+ input[14] = U8TO32_LITTLE(nonce + 40);
-+ input[15] = U8TO32_LITTLE(nonce + 44);
-+
-+ while (in_len > 0) {
-+ todo = 64;
-+ if (in_len < todo) {
-+ todo = in_len;
-+ }
-+
-+ chacha_core(buf, input);
-+ for (i = 0; i < todo; i++) {
-+ out[i] = in[i] ^ buf[i];
-+ }
-+
-+ out += todo;
-+ in += todo;
-+ in_len -= todo;
-+
-+ ((uint64_t*)input)[6]++;
-+ }
-+
-+ U32TO8_LITTLE(nonce + 32, input[12]);
-+ U32TO8_LITTLE(nonce + 36, input[13]);
-+}
-+
-diff --git a/crypto/chacha20poly1305/chacha20poly1305.h b/crypto/chacha20poly1305/chacha20poly1305.h
-new file mode 100644
-index 0000000..09b0450
---- /dev/null
-+++ b/crypto/chacha20poly1305/chacha20poly1305.h
-@@ -0,0 +1,79 @@
-+/* Copyright (c) 2014, Google Inc.
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-+
-+#ifndef OPENSSL_HEADER_POLY1305_H
-+#define OPENSSL_HEADER_POLY1305_H
-+
-+#include <stdint.h>
-+#include <stddef.h>
-+#include <string.h>
-+#include "crypto.h"
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+#define POLY1305_MAC_LEN (16)
-+#define POLY1305_PAD_LEN (16)
-+
-+typedef unsigned char poly1305_state[372];
-+
-+
-+/* CRYPTO_poly1305_init sets up |state| so that it can be used to calculate an
-+ * authentication tag with the one-time key |key|. Note that |key| is a
-+ * one-time key and therefore there is no `reset' method because that would
-+ * enable several messages to be authenticated with the same key. */
-+void CRYPTO_poly1305_init(poly1305_state* state, const uint8_t key[32]);
-+
-+/* CRYPTO_poly1305_update processes |in_len| bytes from |in|. It can be called
-+ * zero or more times after poly1305_init. */
-+void CRYPTO_poly1305_update(poly1305_state* state, const uint8_t* in,
-+ size_t in_len);
-+
-+/* CRYPTO_poly1305_finish completes the poly1305 calculation and writes a 16
-+ * byte authentication tag to |mac|. */
-+void CRYPTO_poly1305_finish(poly1305_state* state,
-+ uint8_t mac[POLY1305_MAC_LEN]);
-+
-+/* CRYPTO_chacha_20 encrypts |in_len| bytes from |in| with the given key and
-+ * nonce and writes the result to |out|, which may be equal to |in|. The
-+ * initial block counter is specified by |counter|. */
-+void CRYPTO_chacha_20(uint8_t *out, const uint8_t *in, size_t in_len,
-+ uint8_t nonce[48]);
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+void poly1305_init_x64(poly1305_state* state, const uint8_t key[32]);
-+void poly1305_update_x64(poly1305_state* state, const uint8_t *in, size_t in_len);
-+void poly1305_finish_x64(poly1305_state* state, uint8_t mac[16]);
-+
-+void poly1305_init_avx(poly1305_state* state, const uint8_t key[32]);
-+void poly1305_update_avx(poly1305_state* state, const uint8_t *in, size_t in_len);
-+void poly1305_finish_avx(poly1305_state* state, uint8_t mac[16]);
-+
-+void poly1305_update_avx2(poly1305_state* state, const uint8_t *in, size_t in_len);
-+void poly1305_finish_avx2(poly1305_state* state, uint8_t mac[16]);
-+
-+void chacha_20_core_avx(uint8_t *out, const uint8_t *in, size_t in_len,
-+ uint8_t nonce[48]);
-+
-+void chacha_20_core_avx2(uint8_t *out, const uint8_t *in, size_t in_len,
-+ uint8_t nonce[48]);
-+#endif
-+
-+
-+#if defined(__cplusplus)
-+} /* extern C */
-+#endif
-+
-+#endif /* OPENSSL_HEADER_POLY1305_H */
-diff --git a/crypto/chacha20poly1305/chapolytest.c b/crypto/chacha20poly1305/chapolytest.c
-new file mode 100644
-index 0000000..7e2933f
---- /dev/null
-+++ b/crypto/chacha20poly1305/chapolytest.c
-@@ -0,0 +1,470 @@
-+/* ====================================================================
-+ * Copyright (c) 2011-2013 The OpenSSL Project. All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in
-+ * the documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * 3. All advertising materials mentioning features or use of this
-+ * software must display the following acknowledgment:
-+ * "This product includes software developed by the OpenSSL Project
-+ * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
-+ *
-+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
-+ * endorse or promote products derived from this software without
-+ * prior written permission. For written permission, please contact
-+ * licensing@OpenSSL.org.
-+ *
-+ * 5. Products derived from this software may not be called "OpenSSL"
-+ * nor may "OpenSSL" appear in their names without prior written
-+ * permission of the OpenSSL Project.
-+ *
-+ * 6. Redistributions of any form whatsoever must retain the following
-+ * acknowledgment:
-+ * "This product includes software developed by the OpenSSL Project
-+ * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
-+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
-+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ * ====================================================================
-+ */
-+
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <string.h>
-+#include <stdint.h>
-+
-+#include <openssl/chacha20poly1305.h>
-+
-+struct chacha_test {
-+ const char *noncehex;
-+ const char *outhex;
-+};
-+
-+struct poly1305_test {
-+ const char *inputhex;
-+ const char *keyhex;
-+ const char *outhex;
-+};
-+
-+static const struct chacha_test chacha_tests[] = {
-+ {
-+ "00000000000000000000000000000000""00000000000000000000000000000000"
-+ "00000000000000000000000000000000",
-+ "76b8e0ada0f13d90405d6ae55386bd28""bdd219b8a08ded1aa836efcc8b770dc7"
-+ "da41597c5157488d7724e03fb8d84a37""6a43b8f41518a11cc387b669b2ee6586",
-+ },
-+ {
-+ "00000000000000000000000000000000""00000000000000000000000000000001"
-+ "00000000000000000000000000000000",
-+ "4540f05a9f1fb296d7736e7b208e3c96""eb4fe1834688d2604f450952ed432d41"
-+ "bbe2a0b6ea7566d2a5d1e7e20d42af2c""53d792b1c43fea817e9ad275ae546963",
-+ },
-+ {
-+ "00000000000000000000000000000000""00000000000000000000000000000000"
-+ "00000000000000000000000000000001",
-+ "de9cba7bf3d69ef5e786dc63973f653a""0b49e015adbff7134fcb7df137821031"
-+ "e85a050278a7084527214f73efc7fa5b""5277062eb7a0433e445f41e31afab757",
-+ },
-+ {
-+ "00000000000000000000000000000000""00000000000000000000000000000000"
-+ "00000000000000000100000000000000",
-+ "ef3fdfd6c61578fbf5cf35bd3dd33b80""09631634d21e42ac33960bd138e50d32"
-+ "111e4caf237ee53ca8ad6426194a8854""5ddc497a0b466e7d6bbdb0041b2f586b",
-+ },
-+ {
-+ "000102030405060708090a0b0c0d0e0f""101112131415161718191a1b1c1d1e1f"
-+ "00000000000000000001020304050607",
-+ "f798a189f195e66982105ffb640bb775""7f579da31602fc93ec01ac56f85ac3c1"
-+ "34a4547b733b46413042c94400491769""05d3be59ea1c53f15916155c2be8241a"
-+ "38008b9a26bc35941e2444177c8ade66""89de95264986d95889fb60e84629c9bd"
-+ "9a5acb1cc118be563eb9b3a4a472f82e""09a7e778492b562ef7130e88dfe031c7"
-+ "9db9d4f7c7a899151b9a475032b63fc3""85245fe054e3dd5a97a5f576fe064025"
-+ "d3ce042c566ab2c507b138db853e3d69""59660996546cc9c4a6eafdc777c040d7"
-+ "0eaf46f76dad3979e5c5360c3317166a""1c894c94a371876a94df7628fe4eaaf2"
-+ "ccb27d5aaae0ad7ad0f9d4b6ad3b5409""8746d4524d38407a6deb",
-+ },
-+};
-+
-+static const struct poly1305_test poly1305_tests[] = {
-+ {
-+ "",
-+ "c8afaac331ee372cd6082de134943b17""4710130e9f6fea8d72293850a667d86c",
-+ "4710130e9f6fea8d72293850a667d86c",
-+ },
-+ {
-+ "48656c6c6f20776f726c6421",
-+ "746869732069732033322d6279746520""6b657920666f7220506f6c7931333035",
-+ "a6f745008f81c916a20dcc74eef2b2f0",
-+ },
-+ {
-+ "00000000000000000000000000000000""00000000000000000000000000000000",
-+ "746869732069732033322d6279746520""6b657920666f7220506f6c7931333035",
-+ "49ec78090e481ec6c26b33b91ccc0307",
-+ },
-+ {
-+ "43727970746f6772617068696320466f""72756d2052657365617263682047726f"
-+ "7570",
-+ "85d6be7857556d337f4452fe42d506a8""0103808afb0db2fd4abff6af4149f51b",
-+ "a8061dc1305136c6c22b8baf0c0127a9"
-+ },
-+ {
-+ "f3f6",
-+ "851fc40c3467ac0be05cc20404f3f700""580b3b0f9447bb1e69d095b5928b6dbc",
-+ "f4c633c3044fc145f84f335cb81953de"
-+ },
-+ {
-+ "",
-+ "a0f3080000f46400d0c7e9076c834403""dd3fab2251f11ac759f0887129cc2ee7",
-+ "dd3fab2251f11ac759f0887129cc2ee7"
-+ },
-+ {
-+ "663cea190ffb83d89593f3f476b6bc24""d7e679107ea26adb8caf6652d0656136",
-+ "48443d0bb0d21109c89a100b5ce2c208""83149c69b561dd88298a1798b10716ef",
-+ "0ee1c16bb73f0f4fd19881753c01cdbe"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d1""36c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67""fa83e158c994d961c4cb21095c1bf9",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "5154ad0d2cb26e01274fc51148491f1b"
-+ },
-+ /*
-+ * self-generated
-+ */
-+ {
-+ "ab0812724a7f1e342742cbed374d94d1""36c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67""fa83e158c994d961c4cb21095c1bf9af",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "812059a5da198637cac7c4a631bee466"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d1""36c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "5b88d7f6228b11e2e28579a5c0c1f761"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "bbb613b2b6d753ba07395b916aaece15"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "c794d7057d1778c4bbee0a39b3d97342"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "ffbcb9b371423152d7fca5ad042fbaa9"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136"
-+ "812059a5da198637cac7c4a631bee466",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "069ed6b8ef0f207b3e243bb1019fe632"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136"
-+ "812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "cca339d9a45fa2368c2c68b3a4179133"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136"
-+ "812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761"
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "53f6e828a2f0fe0ee815bf0bd5841a34"
-+ },
-+ {
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136"
-+ "812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761"
-+ "ab0812724a7f1e342742cbed374d94d136c6b8795d45b3819830f2c04491faf0"
-+ "990c62e48b8018b2c3e4a0fa3134cb67fa83e158c994d961c4cb21095c1bf9af"
-+ "48443d0bb0d21109c89a100b5ce2c20883149c69b561dd88298a1798b10716ef"
-+ "663cea190ffb83d89593f3f476b6bc24d7e679107ea26adb8caf6652d0656136"
-+ "812059a5da198637cac7c4a631bee4665b88d7f6228b11e2e28579a5c0c1f761",
-+ "12976a08c4426d0ce8a82407c4f48207""80f8c20aa71202d1e29179cbcb555a57",
-+ "b846d44e9bbd53cedffbfbb6b7fa4933"
-+ },
-+ {
-+ /*
-+ * poly1305_ieee754.c failed this in final stage
-+ */
-+ "842364e156336c0998b933a6237726180d9e3fdcbde4cd5d17080fc3beb49614"
-+ "d7122c037463ff104d73f19c12704628d417c4c54a3fe30d3c3d7714382d43b0"
-+ "382a50a5dee54be844b076e8df88201a1cd43b90eb21643fa96f39b518aa8340"
-+ "c942ff3c31baf7c9bdbf0f31ae3fa096bf8c63030609829fe72e179824890bc8"
-+ "e08c315c1cce2a83144dbbff09f74e3efc770b54d0984a8f19b14719e6363564"
-+ "1d6b1eedf63efbf080e1783d32445412114c20de0b837a0dfa33d6b82825fff4"
-+ "4c9a70ea54ce47f07df698e6b03323b53079364a5fc3e9dd034392bdde86dccd"
-+ "da94321c5e44060489336cb65bf3989c36f7282c2f5d2b882c171e74",
-+ "95d5c005503e510d8cd0aa072c4a4d06""6eabc52d11653df47fbf63ab198bcc26",
-+ "f248312e578d9d58f8b7bb4d19105431"
-+ },
-+ /*
-+ * test vectors from Google
-+ */
-+ {
-+ "",
-+ "c8afaac331ee372cd6082de134943b17""4710130e9f6fea8d72293850a667d86c",
-+ "4710130e9f6fea8d72293850a667d86c",
-+ },
-+ {
-+ "48656c6c6f20776f726c6421",
-+ "746869732069732033322d6279746520""6b657920666f7220506f6c7931333035",
-+ "a6f745008f81c916a20dcc74eef2b2f0"
-+ },
-+ {
-+ "0000000000000000000000000000000000000000000000000000000000000000",
-+ "746869732069732033322d6279746520""6b657920666f7220506f6c7931333035",
-+ "49ec78090e481ec6c26b33b91ccc0307"
-+ },
-+ /*
-+ * test vectors from Andrew Moon
-+ */
-+ { /* nacl */
-+ "8e993b9f48681273c29650ba32fc76ce48332ea7164d96a4476fb8c531a1186a"
-+ "c0dfc17c98dce87b4da7f011ec48c97271d2c20f9b928fe2270d6fb863d51738"
-+ "b48eeee314a7cc8ab932164548e526ae90224368517acfeabd6bb3732bc0e9da"
-+ "99832b61ca01b6de56244a9e88d5f9b37973f622a43d14a6599b1f654cb45a74"
-+ "e355a5",
-+ "eea6a7251c1e72916d11c2cb214d3c25""2539121d8e234e652d651fa4c8cff880",
-+ "f3ffc7703f9400e52a7dfb4b3d3305d9"
-+ },
-+ { /* wrap 2^130-5 */
-+ "ffffffffffffffffffffffffffffffff",
-+ "02000000000000000000000000000000""00000000000000000000000000000000",
-+ "03000000000000000000000000000000"
-+ },
-+ { /* wrap 2^128 */
-+ "02000000000000000000000000000000",
-+ "02000000000000000000000000000000""ffffffffffffffffffffffffffffffff",
-+ "03000000000000000000000000000000"
-+ },
-+ { /* limb carry */
-+ "fffffffffffffffffffffffffffffffff0ffffffffffffffffffffffffffffff"
-+ "11000000000000000000000000000000",
-+ "01000000000000000000000000000000""00000000000000000000000000000000",
-+ "05000000000000000000000000000000"
-+ },
-+ { /* 2^130-5 */
-+ "fffffffffffffffffffffffffffffffffbfefefefefefefefefefefefefefefe"
-+ "01010101010101010101010101010101",
-+ "01000000000000000000000000000000""00000000000000000000000000000000",
-+ "00000000000000000000000000000000"
-+ },
-+ { /* 2^130-6 */
-+ "fdffffffffffffffffffffffffffffff",
-+ "02000000000000000000000000000000""00000000000000000000000000000000",
-+ "faffffffffffffffffffffffffffffff"
-+ },
-+ { /* 5*H+L reduction intermediate */
-+ "e33594d7505e43b900000000000000003394d7505e4379cd0100000000000000"
-+ "0000000000000000000000000000000001000000000000000000000000000000",
-+ "01000000000000000400000000000000""00000000000000000000000000000000",
-+ "14000000000000005500000000000000"
-+ },
-+ { /* 5*H+L reduction final */
-+ "e33594d7505e43b900000000000000003394d7505e4379cd0100000000000000"
-+ "00000000000000000000000000000000",
-+ "01000000000000000400000000000000""00000000000000000000000000000000",
-+ "13000000000000000000000000000000"
-+ }
-+};
-+
-+static unsigned char hex_digit(char h)
-+{
-+ if (h >= '0' && h <= '9')
-+ return h - '0';
-+ else if (h >= 'a' && h <= 'f')
-+ return h - 'a' + 10;
-+ else if (h >= 'A' && h <= 'F')
-+ return h - 'A' + 10;
-+ else
-+ abort();
-+}
-+
-+static void hex_decode(unsigned char *out, const char* hex)
-+{
-+ size_t j = 0;
-+
-+ while (*hex != 0) {
-+ unsigned char v = hex_digit(*hex++);
-+ v <<= 4;
-+ v |= hex_digit(*hex++);
-+ out[j++] = v;
-+ }
-+}
-+
-+static void hexdump(unsigned char *a, size_t len)
-+{
-+ size_t i;
-+
-+ for (i = 0; i < len; i++) {
-+ printf("%02x", a[i]);
-+ }
-+}
-+
-+/* misalign returns a pointer that points 0 to 15 bytes into |in| such that the
-+ * returned pointer has alignment 1 mod 16. */
-+static void* misalign(void* in)
-+{
-+ intptr_t x = (intptr_t) in;
-+ x += (17 - (x % 16)) % 16;
-+ return (void*) x;
-+}
-+
-+int main()
-+{
-+
-+ unsigned num_tests =
-+ sizeof(chacha_tests) / sizeof(struct chacha_test);
-+ unsigned i;
-+ unsigned char nonce_bytes[48 + 16] = {0};
-+
-+ for (i = 0; i < num_tests; i++) {
-+ unsigned char *nonce = misalign(nonce_bytes);
-+
-+ printf("ChaCha20 test #%d\n", i);
-+ const struct chacha_test *test = &chacha_tests[i];
-+ unsigned char *expected, *out_bytes, *zero_bytes, *out, *zeros;
-+ size_t len = strlen(test->outhex);
-+
-+ if (strlen(test->noncehex) != 48*2 || (len & 1) == 1)
-+ return 1;
-+
-+ len /= 2;
-+
-+ hex_decode(nonce, test->noncehex);
-+
-+ expected = malloc(len);
-+ out_bytes = malloc(len+16);
-+ zero_bytes = malloc(len+16);
-+ /* Attempt to test unaligned inputs. */
-+ out = misalign(out_bytes);
-+ zeros = misalign(zero_bytes);
-+ memset(zeros, 0, len);
-+
-+ hex_decode(expected, test->outhex);
-+ CRYPTO_chacha_20(out, zeros, len, nonce);
-+
-+ if (memcmp(out, expected, len) != 0) {
-+ printf("ChaCha20 test #%d failed.\n", i);
-+ printf("got: ");
-+ hexdump(out, len);
-+ printf("\nexpected: ");
-+ hexdump(expected, len);
-+ printf("\n");
-+ return 1;
-+ }
-+
-+
-+ free(expected);
-+ free(zero_bytes);
-+ free(out_bytes);
-+ }
-+
-+ num_tests =
-+ sizeof(poly1305_tests) / sizeof(struct poly1305_test);
-+ unsigned char key[32], out[16], expected[16];
-+ poly1305_state poly1305;
-+
-+ for (i = 0; i < num_tests; i++) {
-+ printf("Poly1305 test #%d\n", i);
-+ const struct poly1305_test *test = &poly1305_tests[i];
-+ unsigned char *in;
-+ size_t inlen = strlen(test->inputhex);
-+
-+ if (strlen(test->keyhex) != sizeof(key)*2 ||
-+ strlen(test->outhex) != sizeof(out)*2 ||
-+ (inlen & 1) == 1)
-+ return 1;
-+
-+ inlen /= 2;
-+
-+ hex_decode(key, test->keyhex);
-+ hex_decode(expected, test->outhex);
-+
-+ in = malloc(inlen);
-+
-+ hex_decode(in, test->inputhex);
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+ if((OPENSSL_ia32cap_loc()[1] >> 5) & 1) {
-+ poly1305_init_x64(&poly1305, key);
-+ poly1305_update_avx2(&poly1305, in, inlen);
-+ poly1305_finish_avx2(&poly1305, out);
-+ } else {
-+ poly1305_init_x64(&poly1305, key);
-+ poly1305_update_x64(&poly1305, in, inlen);
-+ poly1305_finish_x64(&poly1305, out);
-+ }
-+#else
-+ {
-+ CRYPTO_poly1305_init(&poly1305, key);
-+ CRYPTO_poly1305_update(&poly1305, in, inlen);
-+ CRYPTO_poly1305_finish(&poly1305, out);
-+ }
-+#endif
-+ if (memcmp(out, expected, sizeof(expected)) != 0) {
-+ printf("Poly1305 test #%d failed.\n", i);
-+ printf("got: ");
-+ hexdump(out, sizeof(out));
-+ printf("\nexpected: ");
-+ hexdump(expected, sizeof(expected));
-+ printf("\n");
-+ return 1;
-+ }
-+
-+ free(in);
-+ }
-+
-+ printf("PASS\n");
-+ return 0;
-+}
-+
-diff --git a/crypto/chacha20poly1305/poly1305.c b/crypto/chacha20poly1305/poly1305.c
-new file mode 100644
-index 0000000..50bc4a0
---- /dev/null
-+++ b/crypto/chacha20poly1305/poly1305.c
-@@ -0,0 +1,287 @@
-+/* Copyright (c) 2014, Google Inc.
-+ *
-+ * Permission to use, copy, modify, and/or distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
-+ * SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
-+ * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
-+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
-+
-+/* This implementation of poly1305 is by Andrew Moon
-+ * (https://github.com/floodyberry/poly1305-donna) and released as public
-+ * domain. */
-+
-+#include "chacha20poly1305.h"
-+
-+#include <string.h>
-+
-+#if !defined(B_ENDIAN)
-+/* We can assume little-endian. */
-+static uint32_t U8TO32_LE(const uint8_t *m) {
-+ uint32_t r;
-+ memcpy(&r, m, sizeof(r));
-+ return r;
-+}
-+
-+static void U32TO8_LE(uint8_t *m, uint32_t v) { memcpy(m, &v, sizeof(v)); }
-+#else
-+static uint32_t U8TO32_LE(const uint8_t *m) {
-+ return (uint32_t)m[0] | (uint32_t)m[1] << 8 | (uint32_t)m[2] << 16 |
-+ (uint32_t)m[3] << 24;
-+}
-+
-+static void U32TO8_LE(uint8_t *m, uint32_t v) {
-+ m[0] = v;
-+ m[1] = v >> 8;
-+ m[2] = v >> 16;
-+ m[3] = v >> 24;
-+}
-+#endif
-+
-+static uint64_t mul32x32_64(uint32_t a, uint32_t b) { return (uint64_t)a * b; }
-+
-+struct poly1305_state_st {
-+ uint32_t r0, r1, r2, r3, r4;
-+ uint32_t s1, s2, s3, s4;
-+ uint32_t h0, h1, h2, h3, h4;
-+ uint8_t buf[16];
-+ unsigned int buf_used;
-+ uint8_t key[16];
-+};
-+
-+/* poly1305_blocks updates |state| given some amount of input data. This
-+ * function may only be called with a |len| that is not a multiple of 16 at the
-+ * end of the data. Otherwise the input must be buffered into 16 byte blocks. */
-+static void poly1305_update(struct poly1305_state_st *state, const uint8_t *in,
-+ size_t len) {
-+ uint32_t t0, t1, t2, t3;
-+ uint64_t t[5];
-+ uint32_t b;
-+ uint64_t c;
-+ size_t j;
-+ uint8_t mp[16];
-+
-+ if (len < 16) {
-+ goto poly1305_donna_atmost15bytes;
-+ }
-+
-+poly1305_donna_16bytes:
-+ t0 = U8TO32_LE(in);
-+ t1 = U8TO32_LE(in + 4);
-+ t2 = U8TO32_LE(in + 8);
-+ t3 = U8TO32_LE(in + 12);
-+
-+ in += 16;
-+ len -= 16;
-+
-+ state->h0 += t0 & 0x3ffffff;
-+ state->h1 += ((((uint64_t)t1 << 32) | t0) >> 26) & 0x3ffffff;
-+ state->h2 += ((((uint64_t)t2 << 32) | t1) >> 20) & 0x3ffffff;
-+ state->h3 += ((((uint64_t)t3 << 32) | t2) >> 14) & 0x3ffffff;
-+ state->h4 += (t3 >> 8) | (1 << 24);
-+
-+poly1305_donna_mul:
-+ t[0] = mul32x32_64(state->h0, state->r0) + mul32x32_64(state->h1, state->s4) +
-+ mul32x32_64(state->h2, state->s3) + mul32x32_64(state->h3, state->s2) +
-+ mul32x32_64(state->h4, state->s1);
-+ t[1] = mul32x32_64(state->h0, state->r1) + mul32x32_64(state->h1, state->r0) +
-+ mul32x32_64(state->h2, state->s4) + mul32x32_64(state->h3, state->s3) +
-+ mul32x32_64(state->h4, state->s2);
-+ t[2] = mul32x32_64(state->h0, state->r2) + mul32x32_64(state->h1, state->r1) +
-+ mul32x32_64(state->h2, state->r0) + mul32x32_64(state->h3, state->s4) +
-+ mul32x32_64(state->h4, state->s3);
-+ t[3] = mul32x32_64(state->h0, state->r3) + mul32x32_64(state->h1, state->r2) +
-+ mul32x32_64(state->h2, state->r1) + mul32x32_64(state->h3, state->r0) +
-+ mul32x32_64(state->h4, state->s4);
-+ t[4] = mul32x32_64(state->h0, state->r4) + mul32x32_64(state->h1, state->r3) +
-+ mul32x32_64(state->h2, state->r2) + mul32x32_64(state->h3, state->r1) +
-+ mul32x32_64(state->h4, state->r0);
-+
-+ state->h0 = (uint32_t)t[0] & 0x3ffffff;
-+ c = (t[0] >> 26);
-+ t[1] += c;
-+ state->h1 = (uint32_t)t[1] & 0x3ffffff;
-+ b = (uint32_t)(t[1] >> 26);
-+ t[2] += b;
-+ state->h2 = (uint32_t)t[2] & 0x3ffffff;
-+ b = (uint32_t)(t[2] >> 26);
-+ t[3] += b;
-+ state->h3 = (uint32_t)t[3] & 0x3ffffff;
-+ b = (uint32_t)(t[3] >> 26);
-+ t[4] += b;
-+ state->h4 = (uint32_t)t[4] & 0x3ffffff;
-+ b = (uint32_t)(t[4] >> 26);
-+ state->h0 += b * 5;
-+
-+ if (len >= 16)
-+ goto poly1305_donna_16bytes;
-+
-+/* final bytes */
-+poly1305_donna_atmost15bytes:
-+ if (!len)
-+ return;
-+
-+ for (j = 0; j < len; j++)
-+ mp[j] = in[j];
-+ mp[j++] = 1;
-+ for (; j < 16; j++)
-+ mp[j] = 0;
-+ len = 0;
-+
-+ t0 = U8TO32_LE(mp + 0);
-+ t1 = U8TO32_LE(mp + 4);
-+ t2 = U8TO32_LE(mp + 8);
-+ t3 = U8TO32_LE(mp + 12);
-+
-+ state->h0 += t0 & 0x3ffffff;
-+ state->h1 += ((((uint64_t)t1 << 32) | t0) >> 26) & 0x3ffffff;
-+ state->h2 += ((((uint64_t)t2 << 32) | t1) >> 20) & 0x3ffffff;
-+ state->h3 += ((((uint64_t)t3 << 32) | t2) >> 14) & 0x3ffffff;
-+ state->h4 += (t3 >> 8);
-+
-+ goto poly1305_donna_mul;
-+}
-+
-+void CRYPTO_poly1305_init(poly1305_state *statep, const uint8_t key[32]) {
-+ struct poly1305_state_st *state = (struct poly1305_state_st *)statep;
-+ uint32_t t0, t1, t2, t3;
-+
-+ t0 = U8TO32_LE(key + 0);
-+ t1 = U8TO32_LE(key + 4);
-+ t2 = U8TO32_LE(key + 8);
-+ t3 = U8TO32_LE(key + 12);
-+
-+ /* precompute multipliers */
-+ state->r0 = t0 & 0x3ffffff;
-+ t0 >>= 26;
-+ t0 |= t1 << 6;
-+ state->r1 = t0 & 0x3ffff03;
-+ t1 >>= 20;
-+ t1 |= t2 << 12;
-+ state->r2 = t1 & 0x3ffc0ff;
-+ t2 >>= 14;
-+ t2 |= t3 << 18;
-+ state->r3 = t2 & 0x3f03fff;
-+ t3 >>= 8;
-+ state->r4 = t3 & 0x00fffff;
-+
-+ state->s1 = state->r1 * 5;
-+ state->s2 = state->r2 * 5;
-+ state->s3 = state->r3 * 5;
-+ state->s4 = state->r4 * 5;
-+
-+ /* init state */
-+ state->h0 = 0;
-+ state->h1 = 0;
-+ state->h2 = 0;
-+ state->h3 = 0;
-+ state->h4 = 0;
-+
-+ state->buf_used = 0;
-+ memcpy(state->key, key + 16, sizeof(state->key));
-+}
-+
-+void CRYPTO_poly1305_update(poly1305_state *statep, const uint8_t *in,
-+ size_t in_len) {
-+ unsigned int i;
-+ struct poly1305_state_st *state = (struct poly1305_state_st *)statep;
-+
-+ if (state->buf_used) {
-+ unsigned int todo = 16 - state->buf_used;
-+ if (todo > in_len)
-+ todo = in_len;
-+ for (i = 0; i < todo; i++)
-+ state->buf[state->buf_used + i] = in[i];
-+ state->buf_used += todo;
-+ in_len -= todo;
-+ in += todo;
-+
-+ if (state->buf_used == 16) {
-+ poly1305_update(state, state->buf, 16);
-+ state->buf_used = 0;
-+ }
-+ }
-+
-+ if (in_len >= 16) {
-+ size_t todo = in_len & ~0xf;
-+ poly1305_update(state, in, todo);
-+ in += todo;
-+ in_len &= 0xf;
-+ }
-+
-+ if (in_len) {
-+ for (i = 0; i < in_len; i++)
-+ state->buf[i] = in[i];
-+ state->buf_used = in_len;
-+ }
-+}
-+
-+void CRYPTO_poly1305_finish(poly1305_state *statep, uint8_t mac[16]) {
-+ struct poly1305_state_st *state = (struct poly1305_state_st *)statep;
-+ uint64_t f0, f1, f2, f3;
-+ uint32_t g0, g1, g2, g3, g4;
-+ uint32_t b, nb;
-+
-+ if (state->buf_used)
-+ poly1305_update(state, state->buf, state->buf_used);
-+
-+ b = state->h0 >> 26;
-+ state->h0 = state->h0 & 0x3ffffff;
-+ state->h1 += b;
-+ b = state->h1 >> 26;
-+ state->h1 = state->h1 & 0x3ffffff;
-+ state->h2 += b;
-+ b = state->h2 >> 26;
-+ state->h2 = state->h2 & 0x3ffffff;
-+ state->h3 += b;
-+ b = state->h3 >> 26;
-+ state->h3 = state->h3 & 0x3ffffff;
-+ state->h4 += b;
-+ b = state->h4 >> 26;
-+ state->h4 = state->h4 & 0x3ffffff;
-+ state->h0 += b * 5;
-+
-+ g0 = state->h0 + 5;
-+ b = g0 >> 26;
-+ g0 &= 0x3ffffff;
-+ g1 = state->h1 + b;
-+ b = g1 >> 26;
-+ g1 &= 0x3ffffff;
-+ g2 = state->h2 + b;
-+ b = g2 >> 26;
-+ g2 &= 0x3ffffff;
-+ g3 = state->h3 + b;
-+ b = g3 >> 26;
-+ g3 &= 0x3ffffff;
-+ g4 = state->h4 + b - (1 << 26);
-+
-+ b = (g4 >> 31) - 1;
-+ nb = ~b;
-+ state->h0 = (state->h0 & nb) | (g0 & b);
-+ state->h1 = (state->h1 & nb) | (g1 & b);
-+ state->h2 = (state->h2 & nb) | (g2 & b);
-+ state->h3 = (state->h3 & nb) | (g3 & b);
-+ state->h4 = (state->h4 & nb) | (g4 & b);
-+
-+ f0 = ((state->h0) | (state->h1 << 26)) + (uint64_t)U8TO32_LE(&state->key[0]);
-+ f1 = ((state->h1 >> 6) | (state->h2 << 20)) +
-+ (uint64_t)U8TO32_LE(&state->key[4]);
-+ f2 = ((state->h2 >> 12) | (state->h3 << 14)) +
-+ (uint64_t)U8TO32_LE(&state->key[8]);
-+ f3 = ((state->h3 >> 18) | (state->h4 << 8)) +
-+ (uint64_t)U8TO32_LE(&state->key[12]);
-+
-+ U32TO8_LE(&mac[0], f0);
-+ f1 += (f0 >> 32);
-+ U32TO8_LE(&mac[4], f1);
-+ f2 += (f1 >> 32);
-+ U32TO8_LE(&mac[8], f2);
-+ f3 += (f2 >> 32);
-+ U32TO8_LE(&mac[12], f3);
-+}
-+
-diff --git a/crypto/cryptlib.c b/crypto/cryptlib.c
-index c9f674b..c6ff6ff 100644
---- a/crypto/cryptlib.c
-+++ b/crypto/cryptlib.c
-@@ -656,16 +656,6 @@ const char *CRYPTO_get_lock_name(int type)
- extern unsigned int OPENSSL_ia32cap_P[4];
- unsigned long *OPENSSL_ia32cap_loc(void)
- {
-- if (sizeof(long) == 4)
-- /*
-- * If 32-bit application pulls address of OPENSSL_ia32cap_P[0]
-- * clear second element to maintain the illusion that vector
-- * is 32-bit.
-- */
-- OPENSSL_ia32cap_P[1] = 0;
--
-- OPENSSL_ia32cap_P[2] = 0;
--
- return (unsigned long *)OPENSSL_ia32cap_P;
- }
-
-diff --git a/crypto/evp/Makefile b/crypto/evp/Makefile
-index aaaad98..e30b588 100644
---- a/crypto/evp/Makefile
-+++ b/crypto/evp/Makefile
-@@ -29,7 +29,8 @@ LIBSRC= encode.c digest.c evp_enc.c evp_key.c evp_acnf.c evp_cnf.c \
- c_all.c c_allc.c c_alld.c evp_lib.c bio_ok.c \
- evp_pkey.c evp_pbe.c p5_crpt.c p5_crpt2.c \
- e_old.c pmeth_lib.c pmeth_fn.c pmeth_gn.c m_sigver.c \
-- e_aes_cbc_hmac_sha1.c e_aes_cbc_hmac_sha256.c e_rc4_hmac_md5.c
-+ e_aes_cbc_hmac_sha1.c e_aes_cbc_hmac_sha256.c e_rc4_hmac_md5.c \
-+ e_chacha20poly1305.c
-
- LIBOBJ= encode.o digest.o evp_enc.o evp_key.o evp_acnf.o evp_cnf.o \
- e_des.o e_bf.o e_idea.o e_des3.o e_camellia.o\
-@@ -42,7 +43,8 @@ LIBOBJ= encode.o digest.o evp_enc.o evp_key.o evp_acnf.o evp_cnf.o \
- c_all.o c_allc.o c_alld.o evp_lib.o bio_ok.o \
- evp_pkey.o evp_pbe.o p5_crpt.o p5_crpt2.o \
- e_old.o pmeth_lib.o pmeth_fn.o pmeth_gn.o m_sigver.o \
-- e_aes_cbc_hmac_sha1.o e_aes_cbc_hmac_sha256.o e_rc4_hmac_md5.o
-+ e_aes_cbc_hmac_sha1.o e_aes_cbc_hmac_sha256.o e_rc4_hmac_md5.o \
-+ e_chacha20poly1305.o
-
- SRC= $(LIBSRC)
-
-@@ -263,6 +265,7 @@ e_cast.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
- e_cast.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
- e_cast.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
- e_cast.o: ../../include/openssl/symhacks.h ../cryptlib.h e_cast.c evp_locl.h
-+e_chacha20poly1305.o: ../../include/openssl/chacha20poly1305.h e_chacha20poly1305.c
- e_des.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
- e_des.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
- e_des.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
-diff --git a/crypto/evp/e_chacha20poly1305.c b/crypto/evp/e_chacha20poly1305.c
-new file mode 100644
-index 0000000..17f8cb4
---- /dev/null
-+++ b/crypto/evp/e_chacha20poly1305.c
-@@ -0,0 +1,435 @@
-+/* ====================================================================
-+ * Copyright (c) 2001-2014 The OpenSSL Project. All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ *
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in
-+ * the documentation and/or other materials provided with the
-+ * distribution.
-+ *
-+ * 3. All advertising materials mentioning features or use of this
-+ * software must display the following acknowledgment:
-+ * "This product includes software developed by the OpenSSL Project
-+ * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
-+ *
-+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
-+ * endorse or promote products derived from this software without
-+ * prior written permission. For written permission, please contact
-+ * openssl-core@openssl.org.
-+ *
-+ * 5. Products derived from this software may not be called "OpenSSL"
-+ * nor may "OpenSSL" appear in their names without prior written
-+ * permission of the OpenSSL Project.
-+ *
-+ * 6. Redistributions of any form whatsoever must retain the following
-+ * acknowledgment:
-+ * "This product includes software developed by the OpenSSL Project
-+ * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
-+ * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
-+ * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-+ * OF THE POSSIBILITY OF SUCH DAMAGE.
-+ * ====================================================================
-+ *
-+ */
-+
-+#include <openssl/opensslconf.h>
-+#ifndef OPENSSL_NO_CHACHA_POLY
-+#include <openssl/evp.h>
-+#include <openssl/err.h>
-+#include <openssl/chacha20poly1305.h>
-+#include "evp_locl.h"
-+#include <openssl/rand.h>
-+
-+#define FILL_BUFFER ((size_t)128)
-+
-+typedef struct {
-+ uint8_t iv[12];
-+ uint8_t nonce[48];
-+ size_t aad_l;
-+ size_t ct_l;
-+ unsigned valid:1;
-+ unsigned draft:1;
-+ uint8_t poly_buffer[FILL_BUFFER];
-+ uint8_t chacha_buffer[FILL_BUFFER];
-+ uint16_t poly_buffer_used;
-+ uint16_t chacha_used;
-+#ifdef CHAPOLY_x86_64_ASM
-+ void (*poly1305_init_ptr)(poly1305_state *, const uint8_t *);
-+ void (*poly1305_update_ptr)(poly1305_state *, const uint8_t *, size_t);
-+ void (*poly1305_finish_ptr)(poly1305_state *, uint8_t *);
-+ poly1305_state poly_state;
-+ #define poly_init aead_ctx->poly1305_init_ptr
-+ #define poly_update poly1305_update_wrapper
-+ #define poly_finish poly1305_finish_wrapper
-+#else
-+ #define poly_init CRYPTO_poly1305_init
-+ #define poly_update(c,i,l) CRYPTO_poly1305_update(&c->poly_state,i,l)
-+ #define poly_finish(c,m) CRYPTO_poly1305_finish(&c->poly_state,m)
-+#endif
-+} EVP_CHACHA20_POLY1305_CTX;
-+
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+#include <immintrin.h>
-+
-+static void poly1305_update_wrapper(EVP_CHACHA20_POLY1305_CTX *ctx,
-+ const uint8_t *in,
-+ size_t in_len)
-+{
-+ int todo;
-+ /* Attempt to fill as many bytes as possible before calling the update
-+ function */
-+ if (in_len < FILL_BUFFER || ctx->poly_buffer_used) {
-+ todo = FILL_BUFFER - ctx->poly_buffer_used;
-+ todo = in_len < todo? in_len : todo;
-+ memcpy(ctx->poly_buffer + ctx->poly_buffer_used, in, todo);
-+ ctx->poly_buffer_used += todo;
-+ in += todo;
-+ in_len -= todo;
-+
-+ if (ctx->poly_buffer_used == FILL_BUFFER) {
-+ ctx->poly1305_update_ptr(&ctx->poly_state,
-+ ctx->poly_buffer,
-+ FILL_BUFFER);
-+ ctx->poly_buffer_used = 0;
-+ }
-+ }
-+
-+ if (in_len >= FILL_BUFFER) {
-+ ctx->poly1305_update_ptr(&ctx->poly_state, in, in_len & (-FILL_BUFFER));
-+ in += in_len & (-FILL_BUFFER);
-+ in_len &= (FILL_BUFFER - 1);
-+ }
-+
-+ if (in_len) {
-+ memcpy(ctx->poly_buffer, in, in_len);
-+ ctx->poly_buffer_used = in_len;
-+ }
-+}
-+
-+
-+static void poly1305_finish_wrapper(EVP_CHACHA20_POLY1305_CTX *ctx,
-+ uint8_t mac[POLY1305_MAC_LEN])
-+{
-+ if (ctx->poly_buffer_used) {
-+
-+ if (ctx->poly_buffer_used % POLY1305_PAD_LEN) {
-+ memset(ctx->poly_buffer + ctx->poly_buffer_used, 0,
-+ POLY1305_PAD_LEN - (ctx->poly_buffer_used % POLY1305_PAD_LEN));
-+ }
-+
-+ ctx->poly1305_update_ptr(&ctx->poly_state,
-+ ctx->poly_buffer,
-+ ctx->poly_buffer_used);
-+ }
-+
-+ ctx->poly1305_finish_ptr(&ctx->poly_state, mac);
-+ memset(ctx->poly_buffer, 0, FILL_BUFFER);
-+}
-+#endif
-+
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+static void EVP_chacha20_poly1305_cpuid(EVP_CHACHA20_POLY1305_CTX *ctx)
-+{
-+ if ((OPENSSL_ia32cap_loc()[1] >> 5) & 1) { /* AVX2 */
-+ ctx->poly1305_init_ptr = poly1305_init_x64; /* Lazy init */
-+ ctx->poly1305_update_ptr = poly1305_update_avx2;
-+ ctx->poly1305_finish_ptr = poly1305_finish_avx2;
-+/*
-+ } else if (0 && (OPENSSL_ia32cap_loc()[0] >> 60) & 1) { // AVX -disabled
-+ ctx->poly1305_init_ptr = poly1305_init_avx;
-+ ctx->poly1305_update_ptr = poly1305_update_avx;
-+ ctx->poly1305_finish_ptr = poly1305_finish_avx;
-+*/
-+ } else { /* x64 code */
-+ ctx->poly1305_init_ptr = poly1305_init_x64;
-+ ctx->poly1305_update_ptr = poly1305_update_x64;
-+ ctx->poly1305_finish_ptr = poly1305_finish_x64;
-+ }
-+}
-+#endif
-+
-+
-+static int EVP_chacha20_poly1305_init_draft(EVP_CIPHER_CTX *ctx,
-+ const unsigned char *key,
-+ const unsigned char *iv,
-+ int enc)
-+{
-+ EVP_CHACHA20_POLY1305_CTX *aead_ctx = ctx->cipher_data;
-+ memcpy(aead_ctx->nonce, key, 32);
-+ aead_ctx->valid = 0;
-+ aead_ctx->draft = 1;
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+ EVP_chacha20_poly1305_cpuid(aead_ctx);
-+#endif
-+
-+ return 1;
-+}
-+
-+
-+static int EVP_chacha20_poly1305_init(EVP_CIPHER_CTX *ctx,
-+ const unsigned char *key,
-+ const unsigned char *iv,
-+ int enc)
-+{
-+ EVP_CHACHA20_POLY1305_CTX *aead_ctx = ctx->cipher_data;
-+ memcpy(aead_ctx->nonce, key, 32);
-+ memcpy(aead_ctx->iv, iv, 12);
-+ aead_ctx->valid = 0;
-+ aead_ctx->draft = 0;
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+ EVP_chacha20_poly1305_cpuid(aead_ctx);
-+#endif
-+
-+ return 1;
-+}
-+
-+
-+static int EVP_chacha20_poly1305_cipher(EVP_CIPHER_CTX *ctx,
-+ unsigned char *out,
-+ const unsigned char *in,
-+ size_t inl)
-+{
-+ EVP_CHACHA20_POLY1305_CTX *aead_ctx = ctx->cipher_data;
-+ uint8_t poly_mac[POLY1305_MAC_LEN];
-+ uint8_t zero[POLY1305_PAD_LEN] = {0};
-+ uint64_t cmp;
-+ int i, todo;
-+
-+ if (!aead_ctx->valid)
-+ return 0;
-+
-+ if (inl < POLY1305_MAC_LEN)
-+ return -1;
-+
-+ /* Fix for MAC */
-+ inl -= POLY1305_MAC_LEN;
-+
-+ if (!ctx->encrypt) {
-+ poly_update(aead_ctx, in, inl);
-+ }
-+
-+ i = 0;
-+ if (inl < 256) {
-+ /* Consume the buffer we computed during poly initialization */
-+ todo = inl > (FILL_BUFFER - aead_ctx->chacha_used) ?
-+ FILL_BUFFER - aead_ctx->chacha_used :
-+ inl;
-+
-+#ifdef CHAPOLY_x86_64_ASM
-+ for (; i <= todo - 16; i+=16) {
-+ _mm_storeu_si128((__m128i*)&out[i],
-+ _mm_xor_si128(_mm_loadu_si128((__m128i *)&in[i]),
-+ _mm_loadu_si128((__m128i *)&aead_ctx->chacha_buffer[i + 64])));
-+ }
-+#endif
-+ for (; i < todo; i++) {
-+ out[i] = in[i] ^ aead_ctx->chacha_buffer[i + 64 /*aead_ctx->chacha_used*/];
-+ }
-+
-+ } else {
-+ /* For long messages don't use precomputed buffer */
-+ ((uint64_t *)(aead_ctx->nonce))[4]--;
-+ }
-+
-+ todo = inl - i;
-+
-+ if (todo) {
-+ CRYPTO_chacha_20(&out[i], &in[i], todo, aead_ctx->nonce);
-+ }
-+
-+ if (ctx->encrypt) {
-+ poly_update(aead_ctx, out, inl);
-+ }
-+
-+ aead_ctx->ct_l += inl;
-+
-+ if (!aead_ctx->draft) {
-+ /* For RFC padd ciphertext with zeroes, then mac len(aad)||len(ct) */
-+ todo = aead_ctx->ct_l % POLY1305_PAD_LEN ?
-+ POLY1305_PAD_LEN - (aead_ctx->ct_l % POLY1305_PAD_LEN) :
-+ 0;
-+
-+ if (todo) {
-+ poly_update(aead_ctx, zero, todo);
-+ }
-+
-+ poly_update(aead_ctx, (uint8_t*)&aead_ctx->aad_l, sizeof(uint64_t));
-+ poly_update(aead_ctx, (uint8_t*)&aead_ctx->ct_l, sizeof(uint64_t));
-+
-+ } else {
-+ /* For the draft don't pad, mac len(ct) */
-+ poly_update(aead_ctx, (uint8_t*)&aead_ctx->ct_l, sizeof(uint64_t));
-+ }
-+ aead_ctx->valid = 0;
-+
-+ if (ctx->encrypt) {
-+ poly_finish(aead_ctx, &out[inl]);
-+ return inl + POLY1305_MAC_LEN;
-+
-+ } else { /* Decryption */
-+ poly_finish(aead_ctx, poly_mac);
-+ /* Constant time comparison */
-+ cmp = (*(uint64_t *)(poly_mac)) ^ (*(uint64_t *)(in + inl));
-+ cmp |= (*(uint64_t *)(poly_mac + 8)) ^ (*(uint64_t *)(in + inl + 8));
-+
-+ if (cmp) {
-+ OPENSSL_cleanse(out, inl);
-+ return -1;
-+ }
-+
-+ return inl;
-+ }
-+}
-+
-+
-+static int EVP_chacha20_poly1305_cleanup(EVP_CIPHER_CTX *ctx)
-+{
-+ return 1;
-+}
-+
-+
-+static int EVP_chacha20_poly1305_ctrl(EVP_CIPHER_CTX *ctx,
-+ int type,
-+ int arg,
-+ void *ptr)
-+{
-+ EVP_CHACHA20_POLY1305_CTX *aead_ctx = ctx->cipher_data;
-+ uint8_t aad[EVP_AEAD_TLS1_AAD_LEN + 8];
-+ uint64_t thirteen = EVP_AEAD_TLS1_AAD_LEN;
-+
-+ switch (type) {
-+ case EVP_CTRL_AEAD_TLS1_AAD:
-+
-+ if (arg != EVP_AEAD_TLS1_AAD_LEN)
-+ return 0;
-+
-+ /* Initialize poly keys */
-+ memset(aead_ctx->chacha_buffer, 0, FILL_BUFFER);
-+
-+ if (!aead_ctx->draft) {
-+ /* RFC IV = (0 || iv) ^ seq_num */
-+ memset(aead_ctx->nonce + 32, 0, 4);
-+ memcpy(aead_ctx->nonce + 36, aead_ctx->iv, 12);
-+ *(uint64_t *)(aead_ctx->nonce + 40) ^= *(uint64_t *)(ptr);
-+
-+ } else {
-+ /* draft IV = 0 || seq_num */
-+ memset(aead_ctx->nonce + 32, 0, 8);
-+ memcpy(aead_ctx->nonce + 40, ptr, 8);
-+ }
-+ /* Poly keys = ENC(0) */
-+ CRYPTO_chacha_20(aead_ctx->chacha_buffer,
-+ aead_ctx->chacha_buffer,
-+ FILL_BUFFER,
-+ aead_ctx->nonce);
-+
-+ poly_init(&aead_ctx->poly_state, aead_ctx->chacha_buffer);
-+
-+ aead_ctx->chacha_used = 64;
-+ aead_ctx->poly_buffer_used = 0;
-+ aead_ctx->aad_l = arg;
-+ aead_ctx->ct_l = 0;
-+
-+ /* Absorb AAD */
-+ memcpy(aad, ptr, arg);
-+ memset(aad + arg, 0, sizeof(aad) - arg);
-+
-+ /* If decrypting fix length for tag */
-+ if (!ctx->encrypt) {
-+ unsigned int len = (aad[arg-2] << 8) | aad[arg-1];
-+ len -= POLY1305_MAC_LEN;
-+ aad[arg-2] = len>>8;
-+ aad[arg-1] = len & 0xff;
-+ }
-+
-+ if (!aead_ctx->draft) {
-+ /* In the RFC, AAD is padded with zeroes */
-+ poly_update(aead_ctx, aad, POLY1305_PAD_LEN);
-+
-+ } else {
-+ /* In the draft AAD is followed by len(AAD) */
-+ memcpy(&aad[arg], &thirteen, sizeof(thirteen));
-+ poly_update(aead_ctx, aad, arg + sizeof(thirteen));
-+ }
-+
-+ aead_ctx->valid = 1;
-+ return POLY1305_MAC_LEN;
-+
-+ break;
-+
-+ default:
-+ return 0;
-+ break;
-+ }
-+
-+ return 0;
-+}
-+
-+
-+#define CUSTOM_FLAGS (\
-+ EVP_CIPH_CUSTOM_IV | EVP_CIPH_FLAG_CUSTOM_CIPHER \
-+ | EVP_CIPH_ALWAYS_CALL_INIT \
-+ | EVP_CIPH_CUSTOM_COPY)
-+
-+
-+static const EVP_CIPHER chacha20_poly1305_d = {
-+ 0, /* nid ??? */
-+ 1, /* block size, sorta */
-+ 32, /* key len */
-+ 0, /* iv len */
-+ CUSTOM_FLAGS|EVP_CIPH_FLAG_AEAD_CIPHER, /* flags */
-+ EVP_chacha20_poly1305_init_draft,
-+ EVP_chacha20_poly1305_cipher,
-+ EVP_chacha20_poly1305_cleanup,
-+ sizeof(EVP_CHACHA20_POLY1305_CTX), /* ctx size */
-+ NULL,
-+ NULL,
-+ EVP_chacha20_poly1305_ctrl,
-+ NULL
-+ };
-+
-+
-+static const EVP_CIPHER chacha20_poly1305 = {
-+ 0, /* nid ??? */
-+ 1, /* block size, sorta */
-+ 32, /* key len */
-+ 12, /* iv len */
-+ CUSTOM_FLAGS|EVP_CIPH_FLAG_AEAD_CIPHER, /* flags */
-+ EVP_chacha20_poly1305_init,
-+ EVP_chacha20_poly1305_cipher,
-+ EVP_chacha20_poly1305_cleanup,
-+ sizeof(EVP_CHACHA20_POLY1305_CTX), /* ctx size */
-+ NULL,
-+ NULL,
-+ EVP_chacha20_poly1305_ctrl,
-+ NULL
-+ };
-+
-+
-+const EVP_CIPHER *EVP_chacha20_poly1305_draft(void)
-+{ return &chacha20_poly1305_d; }
-+
-+
-+const EVP_CIPHER *EVP_chacha20_poly1305(void)
-+{ return &chacha20_poly1305; }
-+#endif
-diff --git a/crypto/evp/evp.h b/crypto/evp/evp.h
-index 39ab793..53ed671 100644
---- a/crypto/evp/evp.h
-+++ b/crypto/evp/evp.h
-@@ -893,6 +893,10 @@ const EVP_CIPHER *EVP_camellia_256_cfb128(void);
- # define EVP_camellia_256_cfb EVP_camellia_256_cfb128
- const EVP_CIPHER *EVP_camellia_256_ofb(void);
- # endif
-+# ifndef OPENSSL_NO_CHACHA_POLY
-+const EVP_CIPHER *EVP_chacha20_poly1305(void);
-+const EVP_CIPHER *EVP_chacha20_poly1305_draft(void);
-+# endif
-
- # ifndef OPENSSL_NO_SEED
- const EVP_CIPHER *EVP_seed_ecb(void);
-diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c
-index f846cb5..b0364c1 100644
---- a/ssl/s3_lib.c
-+++ b/ssl/s3_lib.c
-@@ -2891,6 +2891,111 @@ OPENSSL_GLOBAL SSL_CIPHER ssl3_ciphers[] = {
- 256},
- #endif
-
-+#if !defined(OPENSSL_NO_CHACHA_POLY)
-+ /* Draft ciphers */
-+ {
-+ 1,
-+ TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_D,
-+ TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_D,
-+ SSL_kEECDH,
-+ SSL_aRSA,
-+ SSL_CHACHA20POLY1305_D,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256},
-+ {
-+ 1,
-+ TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_D,
-+ TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_D,
-+ SSL_kEECDH,
-+ SSL_aECDSA,
-+ SSL_CHACHA20POLY1305_D,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256},
-+ {
-+ 1,
-+ TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305_D,
-+ TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305_D,
-+ SSL_kEDH,
-+ SSL_aRSA,
-+ SSL_CHACHA20POLY1305_D,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256},
-+ /* RFC ciphers */
-+ /* Cipher CCA8 as per draft-ietf-tls-chacha20-poly1305-03 */
-+ {
-+ 1,
-+ TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305,
-+ TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305,
-+ SSL_kECDHE,
-+ SSL_aRSA,
-+ SSL_CHACHA20POLY1305,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256,
-+ },
-+ /* Cipher CCA9 */
-+ {
-+ 1,
-+ TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
-+ TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305,
-+ SSL_kECDHE,
-+ SSL_aECDSA,
-+ SSL_CHACHA20POLY1305,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256,
-+ },
-+ /* Cipher CCAA */
-+ {
-+ 1,
-+ TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305,
-+ TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305,
-+ SSL_kDHE,
-+ SSL_aRSA,
-+ SSL_CHACHA20POLY1305,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256,
-+ },
-+ /* Cipher CCAB */
-+ {
-+ 1,
-+ TLS1_TXT_PSK_WITH_CHACHA20_POLY1305,
-+ TLS1_CK_PSK_WITH_CHACHA20_POLY1305,
-+ SSL_kPSK,
-+ SSL_aPSK,
-+ SSL_CHACHA20POLY1305,
-+ SSL_AEAD,
-+ SSL_TLSV1_2,
-+ SSL_HIGH,
-+ SSL_HANDSHAKE_MAC_SHA256 | TLS1_PRF_SHA256,
-+ 256,
-+ 256,
-+ },
-+#endif
-+
-+
- /* end of list */
- };
-
-@@ -4036,6 +4141,7 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
- int i, ii, ok;
- CERT *cert;
- unsigned long alg_k, alg_a, mask_k, mask_a, emask_k, emask_a;
-+ int use_chacha = 0;
-
- /* Let's see which ciphers we can support */
- cert = s->cert;
-@@ -4069,9 +4175,17 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
- if (s->options & SSL_OP_CIPHER_SERVER_PREFERENCE || tls1_suiteb(s)) {
- prio = srvr;
- allow = clnt;
-+ /* Use ChaCha20+Poly1305 iff it's client's most preferred cipher suite */
-+ if (sk_SSL_CIPHER_num(clnt) > 0) {
-+ c = sk_SSL_CIPHER_value(clnt, 0);
-+ if (c->algorithm_enc == SSL_CHACHA20POLY1305 ||
-+ c->algorithm_enc == SSL_CHACHA20POLY1305_D)
-+ use_chacha = 1;
-+ }
- } else {
- prio = clnt;
- allow = srvr;
-+ use_chacha = 1;
- }
-
- tls1_set_cert_validity(s);
-@@ -4083,6 +4197,11 @@ SSL_CIPHER *ssl3_choose_cipher(SSL *s, STACK_OF(SSL_CIPHER) *clnt,
- if ((c->algorithm_ssl & SSL_TLSV1_2) && !SSL_USE_TLS1_2_CIPHERS(s))
- continue;
-
-+ /* Skip ChaCha unless top client priority */
-+ if ((c->algorithm_enc == SSL_CHACHA20POLY1305 ||
-+ c->algorithm_enc == SSL_CHACHA20POLY1305_D) && !use_chacha)
-+ continue;
-+
- ssl_set_cert_masks(cert, c);
- mask_k = cert->mask_k;
- mask_a = cert->mask_a;
-diff --git a/ssl/ssl.h b/ssl/ssl.h
-index ae8c925..c7635b6 100644
---- a/ssl/ssl.h
-+++ b/ssl/ssl.h
-@@ -294,6 +294,8 @@ extern "C" {
- # define SSL_TXT_AES256 "AES256"
- # define SSL_TXT_AES "AES"
- # define SSL_TXT_AES_GCM "AESGCM"
-+# define SSL_TXT_CHACHA20_D "CHACHA20-draft"
-+# define SSL_TXT_CHACHA20 "CHACHA20"
- # define SSL_TXT_CAMELLIA128 "CAMELLIA128"
- # define SSL_TXT_CAMELLIA256 "CAMELLIA256"
- # define SSL_TXT_CAMELLIA "CAMELLIA"
-diff --git a/ssl/ssl_ciph.c b/ssl/ssl_ciph.c
-index 6957bda..21eae5c 100644
---- a/ssl/ssl_ciph.c
-+++ b/ssl/ssl_ciph.c
-@@ -150,25 +150,27 @@
- #endif
- #include "ssl_locl.h"
-
--#define SSL_ENC_DES_IDX 0
--#define SSL_ENC_3DES_IDX 1
--#define SSL_ENC_RC4_IDX 2
--#define SSL_ENC_RC2_IDX 3
--#define SSL_ENC_IDEA_IDX 4
--#define SSL_ENC_NULL_IDX 5
--#define SSL_ENC_AES128_IDX 6
--#define SSL_ENC_AES256_IDX 7
--#define SSL_ENC_CAMELLIA128_IDX 8
--#define SSL_ENC_CAMELLIA256_IDX 9
--#define SSL_ENC_GOST89_IDX 10
--#define SSL_ENC_SEED_IDX 11
--#define SSL_ENC_AES128GCM_IDX 12
--#define SSL_ENC_AES256GCM_IDX 13
--#define SSL_ENC_NUM_IDX 14
-+#define SSL_ENC_DES_IDX 0
-+#define SSL_ENC_3DES_IDX 1
-+#define SSL_ENC_RC4_IDX 2
-+#define SSL_ENC_RC2_IDX 3
-+#define SSL_ENC_IDEA_IDX 4
-+#define SSL_ENC_NULL_IDX 5
-+#define SSL_ENC_AES128_IDX 6
-+#define SSL_ENC_AES256_IDX 7
-+#define SSL_ENC_CAMELLIA128_IDX 8
-+#define SSL_ENC_CAMELLIA256_IDX 9
-+#define SSL_ENC_GOST89_IDX 10
-+#define SSL_ENC_SEED_IDX 11
-+#define SSL_ENC_AES128GCM_IDX 12
-+#define SSL_ENC_AES256GCM_IDX 13
-+#define SSL_ENC_CHACHA20POLY1305_DRAFT_IDX 14
-+#define SSL_ENC_CHACHA20POLY1305_IDX 15
-+#define SSL_ENC_NUM_IDX 16
-
- static const EVP_CIPHER *ssl_cipher_methods[SSL_ENC_NUM_IDX] = {
- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL
-+ NULL, NULL, NULL, NULL
- };
-
- #define SSL_COMP_NULL_IDX 0
-@@ -363,6 +365,9 @@ static const SSL_CIPHER cipher_aliases[] = {
- {0, SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA, 0,
- SSL_kDHE, SSL_aRSA, SSL_3DES, SSL_SHA1, SSL_SSLV3,
- SSL_NOT_EXP | SSL_HIGH | SSL_FIPS, 0, 0, 0,},
-+
-+ {0, SSL_TXT_CHACHA20_D, 0, 0, 0, SSL_CHACHA20POLY1305_D, 0, 0, 0, 0, 0, 0},
-+ {0, SSL_TXT_CHACHA20, 0, 0, 0, SSL_CHACHA20POLY1305, 0, 0, 0, 0, 0, 0},
- };
-
- /*
-@@ -432,6 +437,11 @@ void ssl_load_ciphers(void)
- ssl_cipher_methods[SSL_ENC_AES256GCM_IDX] =
- EVP_get_cipherbyname(SN_aes_256_gcm);
-
-+ ssl_cipher_methods[SSL_ENC_CHACHA20POLY1305_DRAFT_IDX] =
-+ EVP_chacha20_poly1305_draft();
-+ ssl_cipher_methods[SSL_ENC_CHACHA20POLY1305_IDX] =
-+ EVP_chacha20_poly1305();
-+
- ssl_digest_methods[SSL_MD_MD5_IDX] = EVP_get_digestbyname(SN_md5);
- ssl_mac_secret_size[SSL_MD_MD5_IDX] =
- EVP_MD_size(ssl_digest_methods[SSL_MD_MD5_IDX]);
-@@ -582,6 +592,12 @@ int ssl_cipher_get_evp(const SSL_SESSION *s, const EVP_CIPHER **enc,
- case SSL_AES256GCM:
- i = SSL_ENC_AES256GCM_IDX;
- break;
-+ case SSL_CHACHA20POLY1305_D:
-+ i = SSL_ENC_CHACHA20POLY1305_DRAFT_IDX;
-+ break;
-+ case SSL_CHACHA20POLY1305:
-+ i = SSL_ENC_CHACHA20POLY1305_IDX;
-+ break;
- default:
- i = -1;
- break;
-@@ -797,6 +813,12 @@ static void ssl_cipher_get_disabled(unsigned long *mkey, unsigned long *auth,
- (ssl_cipher_methods[SSL_ENC_AES256GCM_IDX] ==
- NULL) ? SSL_AES256GCM : 0;
- *enc |=
-+ (ssl_cipher_methods[SSL_ENC_CHACHA20POLY1305_DRAFT_IDX] ==
-+ NULL) ? SSL_CHACHA20POLY1305_D : 0;
-+ *enc |=
-+ (ssl_cipher_methods[SSL_ENC_CHACHA20POLY1305_IDX] ==
-+ NULL) ? SSL_CHACHA20POLY1305 : 0;
-+ *enc |=
- (ssl_cipher_methods[SSL_ENC_CAMELLIA128_IDX] ==
- NULL) ? SSL_CAMELLIA128 : 0;
- *enc |=
-@@ -1812,6 +1834,12 @@ char *SSL_CIPHER_description(const SSL_CIPHER *cipher, char *buf, int len)
- case SSL_AES256GCM:
- enc = "AESGCM(256)";
- break;
-+ case SSL_CHACHA20POLY1305_D:
-+ enc = "ChaCha20-Poly1305-draft";
-+ break;
-+ case SSL_CHACHA20POLY1305:
-+ enc = "ChaCha20-Poly1305";
-+ break;
- case SSL_CAMELLIA128:
- enc = "Camellia(128)";
- break;
-diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h
-index a8e4efc..67d355c 100644
---- a/ssl/ssl_locl.h
-+++ b/ssl/ssl_locl.h
-@@ -354,6 +354,8 @@
- # define SSL_SEED 0x00000800L
- # define SSL_AES128GCM 0x00001000L
- # define SSL_AES256GCM 0x00002000L
-+# define SSL_CHACHA20POLY1305_D 0x00004000L
-+# define SSL_CHACHA20POLY1305 0x00080000U /* Value from openssl */
-
- # define SSL_AES (SSL_AES128|SSL_AES256|SSL_AES128GCM|SSL_AES256GCM)
- # define SSL_CAMELLIA (SSL_CAMELLIA128|SSL_CAMELLIA256)
-diff --git a/ssl/tls1.h b/ssl/tls1.h
-index 7e237d0..fb0c981 100644
---- a/ssl/tls1.h
-+++ b/ssl/tls1.h
-@@ -563,6 +563,20 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb)
- # define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031
- # define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032
-
-+/* ChaCha20-Poly1305 ciphersuites draft-agl-tls-chacha20poly1305-01 */
-+# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305_D 0x0300CC13
-+# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_D 0x0300CC14
-+# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305_D 0x0300CC15
-+
-+/* ChaCha20-Poly1305 ciphersuites from RFC */
-+# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8
-+# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9
-+# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA
-+# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB
-+# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC
-+# define TLS1_CK_DHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAD
-+# define TLS1_CK_RSA_PSK_WITH_CHACHA20_POLY1305 0x0300CCAE
-+
- /*
- * XXX * Backward compatibility alert: + * Older versions of OpenSSL gave
- * some DHE ciphers names with "EDH" + * instead of "DHE". Going forward, we
-@@ -713,6 +727,20 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb)
- # define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256"
- # define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384"
-
-+/* ChaCha20-Poly1305 ciphersuites draft-agl-tls-chacha20poly1305-01 */
-+# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305_D "ECDHE-RSA-CHACHA20-POLY1305-D"
-+# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_D "ECDHE-ECDSA-CHACHA20-POLY1305-D"
-+# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305_D "DHE-RSA-CHACHA20-POLY1305-D"
-+
-+/* Chacha20-Poly1305 ciphersuites from RFC */
-+# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305"
-+# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305"
-+# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305"
-+# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305"
-+# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305"
-+# define TLS1_TXT_DHE_PSK_WITH_CHACHA20_POLY1305 "DHE-PSK-CHACHA20-POLY1305"
-+# define TLS1_TXT_RSA_PSK_WITH_CHACHA20_POLY1305 "RSA-PSK-CHACHA20-POLY1305"
-+
- # define TLS_CT_RSA_SIGN 1
- # define TLS_CT_DSS_SIGN 2
- # define TLS_CT_RSA_FIXED_DH 3
-diff --git a/test/Makefile b/test/Makefile
-index b180971..554d536 100644
---- a/test/Makefile
-+++ b/test/Makefile
-@@ -71,6 +71,7 @@
- VERIFYEXTRATEST= verify_extra_test
- CLIENTHELLOTEST= clienthellotest
- SSLV2CONFTEST = sslv2conftest
-+CHAPOLYTEST= chapolytest
-
- TESTS= alltests
-
-@@ -84,7 +85,7 @@
- $(EVPTEST)$(EXE_EXT) $(EVPEXTRATEST)$(EXE_EXT) $(IGETEST)$(EXE_EXT) $(JPAKETEST)$(EXE_EXT) $(SRPTEST)$(EXE_EXT) \
- $(ASN1TEST)$(EXE_EXT) $(V3NAMETEST)$(EXE_EXT) $(HEARTBEATTEST)$(EXE_EXT) \
- $(CONSTTIMETEST)$(EXE_EXT) $(VERIFYEXTRATEST)$(EXE_EXT) \
-- $(CLIENTHELLOTEST)$(EXE_EXT) $(SSLV2CONFTEST)$(EXE_EXT)
-+ $(CLIENTHELLOTEST)$(EXE_EXT) $(SSLV2CONFTEST)$(EXE_EXT) $(CHAPOLYTEST)$(EXE_EXT)
-
- # $(METHTEST)$(EXE_EXT)
-
-@@ -98,7 +99,7 @@
- $(BFTEST).o $(SSLTEST).o $(DSATEST).o $(EXPTEST).o $(RSATEST).o \
- $(EVPTEST).o $(EVPEXTRATEST).o $(IGETEST).o $(JPAKETEST).o $(ASN1TEST).o $(V3NAMETEST).o \
- $(HEARTBEATTEST).o $(CONSTTIMETEST).o $(VERIFYEXTRATEST).o \
-- $(CLIENTHELLOTEST).o $(SSLV2CONFTEST).o
-+ $(CLIENTHELLOTEST).o $(SSLV2CONFTEST).o $(CHAPOLYTEST).o
-
- SRC= $(BNTEST).c $(ECTEST).c $(ECDSATEST).c $(ECDHTEST).c $(IDEATEST).c \
- $(MD2TEST).c $(MD4TEST).c $(MD5TEST).c \
-@@ -109,7 +110,7 @@
- $(BFTEST).c $(SSLTEST).c $(DSATEST).c $(EXPTEST).c $(RSATEST).c \
- $(EVPTEST).c $(EVPEXTRATEST).c $(IGETEST).c $(JPAKETEST).c $(SRPTEST).c $(ASN1TEST).c \
- $(V3NAMETEST).c $(HEARTBEATTEST).c $(CONSTTIMETEST).c $(VERIFYEXTRATEST).c \
-- $(CLIENTHELLOTEST).c $(SSLV2CONFTEST).c
-+ $(CLIENTHELLOTEST).c $(SSLV2CONFTEST).c $(CHAPOLYTEST).c
-
- EXHEADER=
- HEADER= testutil.h $(EXHEADER)
-@@ -145,7 +146,7 @@
- @(cd ..; $(MAKE) DIRS=apps all)
-
- alltests: \
-- test_des test_idea test_sha test_md4 test_md5 test_hmac \
-+ test_des test_idea test_sha test_md4 test_md5 test_hmac test_chapoly \
- test_md2 test_mdc2 test_wp \
- test_rmd test_rc2 test_rc4 test_rc5 test_bf test_cast test_aes \
- test_rand test_bn test_ec test_ecdsa test_ecdh \
-@@ -366,6 +367,10 @@
- @echo $(START) $@
- ../util/shlib_wrap.sh ./$(SSLV2CONFTEST)
-
-+test_chapoly: $(CHAPOLYTEST)$(EXE_EXT)
-+ @echo "Test ChaCha20 and Poly1305"
-+ ../util/shlib_wrap.sh ./$(CHAPOLYTEST)
-+
- lint:
- lint -DLINT $(INCLUDES) $(SRC)>fluff
-
-@@ -546,6 +551,9 @@
- $(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o
- @target=$(SSLV2CONFTEST) $(BUILD_CMD)
-
-+$(CHAPOLYTEST)$(EXE_EXT): $(CHAPOLYTEST).o
-+ @target=$(CHAPOLYTEST); $(BUILD_CMD)
-+
- #$(AESTEST).o: $(AESTEST).c
- # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
-
-@@ -614,6 +622,7 @@
- constant_time_test.o: ../crypto/constant_time_locl.h ../e_os.h
- constant_time_test.o: ../include/openssl/e_os2.h
- constant_time_test.o: ../include/openssl/opensslconf.h constant_time_test.c
-+chapolytest.o: ../include/openssl/chacha20poly1305.h chapolytest.c
- destest.o: ../include/openssl/des.h ../include/openssl/des_old.h
- destest.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
- destest.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
---
-2.5.0
-
diff --git a/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch b/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch
deleted file mode 100644
index 3582810..0000000
--- a/dev-libs/openssl/files/openssl-1.0.2g-parallel-build.patch
+++ /dev/null
@@ -1,318 +0,0 @@
---- openssl-1.0.2g/crypto/Makefile
-+++ openssl-1.0.2g/crypto/Makefile
-@@ -85,11 +85,11 @@
- @if [ -z "$(THIS)" ]; then $(MAKE) -f $(TOP)/Makefile reflect THIS=$@; fi
-
- subdirs:
-- @target=all; $(RECURSIVE_MAKE)
-+ +@target=all; $(RECURSIVE_MAKE)
-
- files:
- $(PERL) $(TOP)/util/files.pl "CPUID_OBJ=$(CPUID_OBJ)" Makefile >> $(TOP)/MINFO
-- @target=files; $(RECURSIVE_MAKE)
-+ +@target=files; $(RECURSIVE_MAKE)
-
- links:
- @$(PERL) $(TOP)/util/mklink.pl ../include/openssl $(EXHEADER)
-@@ -100,7 +100,7 @@
- # lib: $(LIB): are splitted to avoid end-less loop
- lib: $(LIB)
- @touch lib
--$(LIB): $(LIBOBJ)
-+$(LIB): $(LIBOBJ) | subdirs
- $(AR) $(LIB) $(LIBOBJ)
- test -z "$(FIPSLIBDIR)" || $(AR) $(LIB) $(FIPSLIBDIR)fipscanister.o
- $(RANLIB) $(LIB) || echo Never mind.
-@@ -111,7 +111,7 @@
- fi
-
- libs:
-- @target=lib; $(RECURSIVE_MAKE)
-+ +@target=lib; $(RECURSIVE_MAKE)
-
- install:
- @[ -n "$(INSTALLTOP)" ] # should be set by top Makefile...
-@@ -120,7 +120,7 @@
- (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
- done;
-- @target=install; $(RECURSIVE_MAKE)
-+ +@target=install; $(RECURSIVE_MAKE)
-
- lint:
- @target=lint; $(RECURSIVE_MAKE)
---- openssl-1.0.2g/engines/Makefile
-+++ openssl-1.0.2g/engines/Makefile
-@@ -72,7 +72,7 @@
-
- all: lib subdirs
-
--lib: $(LIBOBJ)
-+lib: $(LIBOBJ) | subdirs
- @if [ -n "$(SHARED_LIBS)" ]; then \
- set -e; \
- for l in $(LIBNAMES); do \
-@@ -89,7 +89,7 @@
-
- subdirs:
- echo $(EDIRS)
-- @target=all; $(RECURSIVE_MAKE)
-+ +@target=all; $(RECURSIVE_MAKE)
-
- files:
- $(PERL) $(TOP)/util/files.pl Makefile >> $(TOP)/MINFO
-@@ -128,7 +128,7 @@
- mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx.new $(INSTALL_PREFIX)$(INSTALLTOP)/$(LIBDIR)/engines/$$pfx$$l$$sfx ); \
- done; \
- fi
-- @target=install; $(RECURSIVE_MAKE)
-+ +@target=install; $(RECURSIVE_MAKE)
-
- tags:
- ctags $(SRC)
---- openssl-1.0.2g/Makefile.org
-+++ openssl-1.0.2g/Makefile.org
-@@ -279,17 +279,17 @@
- build_libssl: build_ssl libssl.pc
-
- build_crypto:
-- @dir=crypto; target=all; $(BUILD_ONE_CMD)
-+ +@dir=crypto; target=all; $(BUILD_ONE_CMD)
- build_ssl: build_crypto
-- @dir=ssl; target=all; $(BUILD_ONE_CMD)
-+ +@dir=ssl; target=all; $(BUILD_ONE_CMD)
- build_engines: build_crypto
-- @dir=engines; target=all; $(BUILD_ONE_CMD)
-+ +@dir=engines; target=all; $(BUILD_ONE_CMD)
- build_apps: build_libs
-- @dir=apps; target=all; $(BUILD_ONE_CMD)
-+ +@dir=apps; target=all; $(BUILD_ONE_CMD)
- build_tests: build_libs
-- @dir=test; target=all; $(BUILD_ONE_CMD)
-+ +@dir=test; target=all; $(BUILD_ONE_CMD)
- build_tools: build_libs
-- @dir=tools; target=all; $(BUILD_ONE_CMD)
-+ +@dir=tools; target=all; $(BUILD_ONE_CMD)
-
- all_testapps: build_libs build_testapps
- build_testapps:
-@@ -544,7 +544,7 @@
- (cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i; \
- chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl/$$i ); \
- done;
-- @set -e; target=install; $(RECURSIVE_BUILD_CMD)
-+ +@set -e; target=install; $(RECURSIVE_BUILD_CMD)
- @set -e; liblist="$(LIBS)"; for i in $$liblist ;\
- do \
- if [ -f "$$i" ]; then \
---- openssl-1.0.2g/Makefile.shared
-+++ openssl-1.0.2g/Makefile.shared
-@@ -105,6 +105,7 @@
- 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'`; \
-+ [ -e $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX ] && exit 0; \
- LD_LIBRARY_PATH=$$LIBPATH:$$LD_LIBRARY_PATH \
- $${SHAREDCMD} $${SHAREDFLAGS} \
- -o $$SHLIB$$SHLIB_SOVER$$SHLIB_SUFFIX \
-@@ -122,6 +123,7 @@
- done; \
- fi; \
- if [ -n "$$SHLIB_SOVER" ]; then \
-+ [ -e "$$SHLIB$$SHLIB_SUFFIX" ] || \
- ( $(SET_X); rm -f $$SHLIB$$SHLIB_SUFFIX; \
- ln -s $$prev $$SHLIB$$SHLIB_SUFFIX ); \
- fi; \
---- openssl-1.0.2g/test/Makefile
-+++ openssl-1.0.2g/test/Makefile
-@@ -139,7 +139,7 @@
- tags:
- ctags $(SRC)
-
--tests: exe apps $(TESTS)
-+tests: exe $(TESTS)
-
- apps:
- @(cd ..; $(MAKE) DIRS=apps all)
-@@ -421,130 +421,130 @@
- link_app.$${shlib_target}
-
- $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
-- @target=$(RSATEST); $(BUILD_CMD)
-+ +@target=$(RSATEST); $(BUILD_CMD)
-
- $(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
-- @target=$(BNTEST); $(BUILD_CMD)
-+ +@target=$(BNTEST); $(BUILD_CMD)
-
- $(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
-- @target=$(ECTEST); $(BUILD_CMD)
-+ +@target=$(ECTEST); $(BUILD_CMD)
-
- $(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
-- @target=$(EXPTEST); $(BUILD_CMD)
-+ +@target=$(EXPTEST); $(BUILD_CMD)
-
- $(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
-- @target=$(IDEATEST); $(BUILD_CMD)
-+ +@target=$(IDEATEST); $(BUILD_CMD)
-
- $(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
-- @target=$(MD2TEST); $(BUILD_CMD)
-+ +@target=$(MD2TEST); $(BUILD_CMD)
-
- $(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
-- @target=$(SHATEST); $(BUILD_CMD)
-+ +@target=$(SHATEST); $(BUILD_CMD)
-
- $(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
-- @target=$(SHA1TEST); $(BUILD_CMD)
-+ +@target=$(SHA1TEST); $(BUILD_CMD)
-
- $(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
-- @target=$(SHA256TEST); $(BUILD_CMD)
-+ +@target=$(SHA256TEST); $(BUILD_CMD)
-
- $(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
-- @target=$(SHA512TEST); $(BUILD_CMD)
-+ +@target=$(SHA512TEST); $(BUILD_CMD)
-
- $(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
-- @target=$(RMDTEST); $(BUILD_CMD)
-+ +@target=$(RMDTEST); $(BUILD_CMD)
-
- $(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
-- @target=$(MDC2TEST); $(BUILD_CMD)
-+ +@target=$(MDC2TEST); $(BUILD_CMD)
-
- $(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
-- @target=$(MD4TEST); $(BUILD_CMD)
-+ +@target=$(MD4TEST); $(BUILD_CMD)
-
- $(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
-- @target=$(MD5TEST); $(BUILD_CMD)
-+ +@target=$(MD5TEST); $(BUILD_CMD)
-
- $(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
-- @target=$(HMACTEST); $(BUILD_CMD)
-+ +@target=$(HMACTEST); $(BUILD_CMD)
-
- $(WPTEST)$(EXE_EXT): $(WPTEST).o $(DLIBCRYPTO)
-- @target=$(WPTEST); $(BUILD_CMD)
-+ +@target=$(WPTEST); $(BUILD_CMD)
-
- $(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
-- @target=$(RC2TEST); $(BUILD_CMD)
-+ +@target=$(RC2TEST); $(BUILD_CMD)
-
- $(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
-- @target=$(BFTEST); $(BUILD_CMD)
-+ +@target=$(BFTEST); $(BUILD_CMD)
-
- $(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
-- @target=$(CASTTEST); $(BUILD_CMD)
-+ +@target=$(CASTTEST); $(BUILD_CMD)
-
- $(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
-- @target=$(RC4TEST); $(BUILD_CMD)
-+ +@target=$(RC4TEST); $(BUILD_CMD)
-
- $(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
-- @target=$(RC5TEST); $(BUILD_CMD)
-+ +@target=$(RC5TEST); $(BUILD_CMD)
-
- $(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
-- @target=$(DESTEST); $(BUILD_CMD)
-+ +@target=$(DESTEST); $(BUILD_CMD)
-
- $(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
-- @target=$(RANDTEST); $(BUILD_CMD)
-+ +@target=$(RANDTEST); $(BUILD_CMD)
-
- $(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
-- @target=$(DHTEST); $(BUILD_CMD)
-+ +@target=$(DHTEST); $(BUILD_CMD)
-
- $(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
-- @target=$(DSATEST); $(BUILD_CMD)
-+ +@target=$(DSATEST); $(BUILD_CMD)
-
- $(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
-- @target=$(METHTEST); $(BUILD_CMD)
-+ +@target=$(METHTEST); $(BUILD_CMD)
-
- $(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
-- @target=$(SSLTEST); $(FIPS_BUILD_CMD)
-+ +@target=$(SSLTEST); $(FIPS_BUILD_CMD)
-
- $(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
-- @target=$(ENGINETEST); $(BUILD_CMD)
-+ +@target=$(ENGINETEST); $(BUILD_CMD)
-
- $(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
-- @target=$(EVPTEST); $(BUILD_CMD)
-+ +@target=$(EVPTEST); $(BUILD_CMD)
-
- $(EVPEXTRATEST)$(EXE_EXT): $(EVPEXTRATEST).o $(DLIBCRYPTO)
-- @target=$(EVPEXTRATEST); $(BUILD_CMD)
-+ +@target=$(EVPEXTRATEST); $(BUILD_CMD)
-
- $(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
-- @target=$(ECDSATEST); $(BUILD_CMD)
-+ +@target=$(ECDSATEST); $(BUILD_CMD)
-
- $(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
-- @target=$(ECDHTEST); $(BUILD_CMD)
-+ +@target=$(ECDHTEST); $(BUILD_CMD)
-
- $(IGETEST)$(EXE_EXT): $(IGETEST).o $(DLIBCRYPTO)
-- @target=$(IGETEST); $(BUILD_CMD)
-+ +@target=$(IGETEST); $(BUILD_CMD)
-
- $(JPAKETEST)$(EXE_EXT): $(JPAKETEST).o $(DLIBCRYPTO)
-- @target=$(JPAKETEST); $(BUILD_CMD)
-+ +@target=$(JPAKETEST); $(BUILD_CMD)
-
- $(ASN1TEST)$(EXE_EXT): $(ASN1TEST).o $(DLIBCRYPTO)
-- @target=$(ASN1TEST); $(BUILD_CMD)
-+ +@target=$(ASN1TEST); $(BUILD_CMD)
-
- $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO)
-- @target=$(SRPTEST); $(BUILD_CMD)
-+ +@target=$(SRPTEST); $(BUILD_CMD)
-
- $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO)
-- @target=$(V3NAMETEST); $(BUILD_CMD)
-+ +@target=$(V3NAMETEST); $(BUILD_CMD)
-
- $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO)
-- @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
-+ +@target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC)
-
- $(CONSTTIMETEST)$(EXE_EXT): $(CONSTTIMETEST).o
-- @target=$(CONSTTIMETEST) $(BUILD_CMD)
-+ +@target=$(CONSTTIMETEST) $(BUILD_CMD)
-
- $(VERIFYEXTRATEST)$(EXE_EXT): $(VERIFYEXTRATEST).o
-- @target=$(VERIFYEXTRATEST) $(BUILD_CMD)
-+ +@target=$(VERIFYEXTRATEST) $(BUILD_CMD)
-
- $(CLIENTHELLOTEST)$(EXE_EXT): $(CLIENTHELLOTEST).o
-- @target=$(CLIENTHELLOTEST) $(BUILD_CMD)
-+ +@target=$(CLIENTHELLOTEST) $(BUILD_CMD)
-
- $(SSLV2CONFTEST)$(EXE_EXT): $(SSLV2CONFTEST).o
-- @target=$(SSLV2CONFTEST) $(BUILD_CMD)
-+ +@target=$(SSLV2CONFTEST) $(BUILD_CMD)
-
- #$(AESTEST).o: $(AESTEST).c
- # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
-@@ -557,7 +557,7 @@
- # fi
-
- dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
-- @target=dummytest; $(BUILD_CMD)
-+ +@target=dummytest; $(BUILD_CMD)
-
- # DO NOT DELETE THIS LINE -- make depend depends on it.
-
diff --git a/dev-libs/openssl/metadata.xml b/dev-libs/openssl/metadata.xml
deleted file mode 100644
index af561bd..0000000
--- a/dev-libs/openssl/metadata.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<maintainer type="project">
- <email>pigfoot@gmail.com</email>
- <name>Chen, Chih-Chia</name>
- <description>Maintainer. Assign bugs to him</description>
-</maintainer>
-</pkgmetadata>
diff --git a/dev-libs/openssl/openssl-1.0.2g-r2.ebuild b/dev-libs/openssl/openssl-1.0.2g-r2.ebuild
deleted file mode 100644
index 0651301..0000000
--- a/dev-libs/openssl/openssl-1.0.2g-r2.ebuild
+++ /dev/null
@@ -1,264 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs multilib multilib-minimal
-
-MY_P=${P/_/-}
-DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
-HOMEPAGE="http://www.openssl.org/"
-SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
-
-LICENSE="openssl"
-# subslot set to 1.0.2g version as this is the first release without SSLv2
-# support and thus breaks nearly every openssl consumer (see bug #575548)
-SLOT="0"
-KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
-IUSE="+asm bindist +chacha20_poly1305 gmp kerberos rfc3779 sctp cpu_flags_x86_sse2 static-libs test +tls-heartbeat vanilla zlib"
-RESTRICT="!bindist? ( bindist )"
-
-RDEPEND=">=app-misc/c_rehash-1.7-r1
- gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
- zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
- kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
- >=dev-lang/perl-5
- sctp? ( >=net-misc/lksctp-tools-1.0.12 )
- test? (
- sys-apps/diffutils
- sys-devel/bc
- )"
-PDEPEND="app-misc/ca-certificates"
-
-S="${WORKDIR}/${MY_P}"
-
-MULTILIB_WRAPPED_HEADERS=(
- usr/include/openssl/opensslconf.h
-)
-
-src_prepare() {
- # keep this in sync with app-misc/c_rehash
- SSL_CNF_DIR="/etc/ssl"
-
- # Make sure we only ever touch Makefile.org and avoid patching a file
- # that gets blown away anyways by the Configure script in src_configure
- rm -f Makefile
-
- if ! use vanilla ; then
- epatch "${FILESDIR}"/${PN}-1.0.0a-ldflags.patch #327421
- epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
- epatch "${FILESDIR}"/${PN}-1.0.2g-parallel-build.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-obj-headers.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-install-dirs.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-symlinking.patch #545028
- epatch "${FILESDIR}"/${PN}-1.0.2-ipv6.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-x32-asm.patch #542618
- epatch "${FILESDIR}"/${PN}-1.0.1p-default-source.patch #554338
-
- epatch_user #332661
- fi
-
- if use chacha20_poly1305 ; then
- epatch "${FILESDIR}"/${PN}-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch
- epatch "${FILESDIR}"/${PN}-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch
- fi
-
- # disable fips in the build
- # make sure the man pages are suffixed #302165
- # don't bother building man pages if they're disabled
- sed -i \
- -e '/DIRS/s: fips : :g' \
- -e '/^MANSUFFIX/s:=.*:=ssl:' \
- -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
- -e $(has noman FEATURES \
- && echo '/^install:/s:install_docs::' \
- || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
- Makefile.org \
- || die
- # show the actual commands in the log
- sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
-
- # since we're forcing $(CC) as makedep anyway, just fix
- # the conditional as always-on
- # helps clang (#417795), and versioned gcc (#499818)
- sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
-
- # quiet out unknown driver argument warnings since openssl
- # doesn't have well-split CFLAGS and we're making it even worse
- # and 'make depend' uses -Werror for added fun (#417795 again)
- [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
-
- # allow openssl to be cross-compiled
- cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
- chmod a+rx gentoo.config
-
- append-flags -fno-strict-aliasing
- append-flags $(test-flags-CC -Wa,--noexecstack)
- append-cppflags -DOPENSSL_NO_BUF_FREELISTS
-
- sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
- # The config script does stupid stuff to prompt the user. Kill it.
- sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
- ./config --test-sanity || die "I AM NOT SANE"
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- unset APPS #197996
- unset SCRIPTS #312551
- unset CROSS_COMPILE #311473
-
- tc-export CC AR RANLIB RC
-
- # Clean out patent-or-otherwise-encumbered code
- # Camellia: Royalty Free http://en.wikipedia.org/wiki/Camellia_(cipher)
- # IDEA: Expired http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
- # EC: ????????? ??/??/2015 http://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
- # MDC2: Expired http://en.wikipedia.org/wiki/MDC-2
- # RC5: Expired http://en.wikipedia.org/wiki/RC5
-
- use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
- echoit() { echo "$@" ; "$@" ; }
-
- local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
-
- # See if our toolchain supports __uint128_t. If so, it's 64bit
- # friendly and can use the nicely optimized code paths. #460790
- local ec_nistp_64_gcc_128
- # Disable it for now though #469976
- #if ! use bindist ; then
- # echo "__uint128_t i;" > "${T}"/128.c
- # if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
- # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
- # fi
- #fi
-
- local sslout=$(./gentoo.config)
- einfo "Use configuration ${sslout:-(openssl knows best)}"
- local config="Configure"
- [[ -z ${sslout} ]] && config="config"
-
- echoit \
- ./${config} \
- ${sslout} \
- $(use cpu_flags_x86_sse2 || echo "no-sse2") \
- enable-camellia \
- $(use_ssl !bindist ec) \
- ${ec_nistp_64_gcc_128} \
- enable-idea \
- enable-mdc2 \
- enable-rc5 \
- enable-tlsext \
- enable-ssl2 \
- $(use_ssl asm) \
- $(use_ssl gmp gmp -lgmp) \
- $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
- $(use_ssl rfc3779) \
- $(use_ssl sctp) \
- $(use_ssl tls-heartbeat heartbeats) \
- $(use_ssl zlib) \
- --prefix="${EPREFIX}"/usr \
- --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
- --libdir=$(get_libdir) \
- shared threads \
- || die
-
- # Clean out hardcoded flags that openssl uses
- local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
- -e 's:^CFLAG=::' \
- -e 's:-fomit-frame-pointer ::g' \
- -e 's:-O[0-9] ::g' \
- -e 's:-march=[-a-z0-9]* ::g' \
- -e 's:-mcpu=[-a-z0-9]* ::g' \
- -e 's:-m[a-z0-9]* ::g' \
- )
- sed -i \
- -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
- -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
- Makefile || die
-}
-
-multilib_src_compile() {
- # depend is needed to use $confopts; it also doesn't matter
- # that it's -j1 as the code itself serializes subdirs
- emake -j1 depend
- emake all
- # rehash is needed to prep the certs/ dir; do this
- # separately to avoid parallel build issues.
- emake rehash
-}
-
-multilib_src_test() {
- emake -j1 test
-}
-
-multilib_src_install() {
- emake INSTALL_PREFIX="${D}" install
-}
-
-multilib_src_install_all() {
- # openssl installs perl version of c_rehash by default, but
- # we provide a shell version via app-misc/c_rehash
- rm "${ED}"/usr/bin/c_rehash || die
-
- dodoc CHANGES* FAQ NEWS README doc/*.txt doc/c-indentation.el
- dohtml -r doc/*
- use rfc3779 && dodoc engines/ccgost/README.gost
-
- # This is crappy in that the static archives are still built even
- # when USE=static-libs. But this is due to a failing in the openssl
- # build system: the static archives are built as PIC all the time.
- # Only way around this would be to manually configure+compile openssl
- # twice; once with shared lib support enabled and once without.
- use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
-
- # create the certs directory
- dodir ${SSL_CNF_DIR}/certs
- cp -RP certs/* "${ED}"${SSL_CNF_DIR}/certs/ || die
- rm -r "${ED}"${SSL_CNF_DIR}/certs/{demo,expired}
-
- # Namespace openssl programs to prevent conflicts with other man pages
- cd "${ED}"/usr/share/man
- local m d s
- for m in $(find . -type f | xargs grep -L '#include') ; do
- d=${m%/*} ; d=${d#./} ; m=${m##*/}
- [[ ${m} == openssl.1* ]] && continue
- [[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!"
- mv ${d}/{,ssl-}${m}
- # fix up references to renamed man pages
- sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m}
- ln -s ssl-${m} ${d}/openssl-${m}
- # locate any symlinks that point to this man page ... we assume
- # that any broken links are due to the above renaming
- for s in $(find -L ${d} -type l) ; do
- s=${s##*/}
- rm -f ${d}/${s}
- ln -s ssl-${m} ${d}/ssl-${s}
- ln -s ssl-${s} ${d}/openssl-${s}
- done
- done
- [[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
-
- dodir /etc/sandbox.d #254521
- echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
-
- diropts -m0700
- keepdir ${SSL_CNF_DIR}/private
-}
-
-pkg_preinst() {
- has_version ${CATEGORY}/${PN}:0.9.8 && return 0
- preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
-}
-
-pkg_postinst() {
- ebegin "Running 'c_rehash ${EROOT%/}${SSL_CNF_DIR}/certs/' to rebuild hashes #333069"
- c_rehash "${EROOT%/}${SSL_CNF_DIR}/certs" >/dev/null
- eend $?
-
- has_version ${CATEGORY}/${PN}:0.9.8 && return 0
- preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
-}
diff --git a/dev-libs/openssl/openssl-1.0.2h.ebuild b/dev-libs/openssl/openssl-1.0.2h.ebuild
deleted file mode 100644
index 5ff673d..0000000
--- a/dev-libs/openssl/openssl-1.0.2h.ebuild
+++ /dev/null
@@ -1,264 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=5
-
-inherit eutils flag-o-matic toolchain-funcs multilib multilib-minimal
-
-MY_P=${P/_/-}
-DESCRIPTION="full-strength general purpose cryptography library (including SSL and TLS)"
-HOMEPAGE="http://www.openssl.org/"
-SRC_URI="mirror://openssl/source/${MY_P}.tar.gz"
-
-LICENSE="openssl"
-# subslot set to 1.0.2g version as this is the first release without SSLv2
-# support and thus breaks nearly every openssl consumer (see bug #575548)
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 hppa ~ia64 ~m68k ~mips ~ppc ppc64 ~s390 ~sh ~sparc x86 ~amd64-fbsd ~sparc-fbsd ~x86-fbsd ~arm-linux ~x86-linux"
-IUSE="+asm bindist +chacha20_poly1305 gmp kerberos rfc3779 sctp cpu_flags_x86_sse2 static-libs test +tls-heartbeat vanilla zlib"
-RESTRICT="!bindist? ( bindist )"
-
-RDEPEND=">=app-misc/c_rehash-1.7-r1
- gmp? ( >=dev-libs/gmp-5.1.3-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
- zlib? ( >=sys-libs/zlib-1.2.8-r1[static-libs(+)?,${MULTILIB_USEDEP}] )
- kerberos? ( >=app-crypt/mit-krb5-1.11.4[${MULTILIB_USEDEP}] )"
-DEPEND="${RDEPEND}
- >=dev-lang/perl-5
- sctp? ( >=net-misc/lksctp-tools-1.0.12 )
- test? (
- sys-apps/diffutils
- sys-devel/bc
- )"
-PDEPEND="app-misc/ca-certificates"
-
-S="${WORKDIR}/${MY_P}"
-
-MULTILIB_WRAPPED_HEADERS=(
- usr/include/openssl/opensslconf.h
-)
-
-src_prepare() {
- # keep this in sync with app-misc/c_rehash
- SSL_CNF_DIR="/etc/ssl"
-
- # Make sure we only ever touch Makefile.org and avoid patching a file
- # that gets blown away anyways by the Configure script in src_configure
- rm -f Makefile
-
- if ! use vanilla ; then
- epatch "${FILESDIR}"/${PN}-1.0.0a-ldflags.patch #327421
- epatch "${FILESDIR}"/${PN}-1.0.0d-windres.patch #373743
- epatch "${FILESDIR}"/${PN}-1.0.2g-parallel-build.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-obj-headers.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-install-dirs.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-parallel-symlinking.patch #545028
- epatch "${FILESDIR}"/${PN}-1.0.2-ipv6.patch
- epatch "${FILESDIR}"/${PN}-1.0.2a-x32-asm.patch #542618
- epatch "${FILESDIR}"/${PN}-1.0.1p-default-source.patch #554338
-
- epatch_user #332661
- fi
-
- if use chacha20_poly1305 ; then
- epatch "${FILESDIR}"/${PN}-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g.patch
- epatch "${FILESDIR}"/${PN}-1.0.2g-chacha20_poly1305_draft_and_rfc_ossl102g-gentoo.patch
- fi
-
- # disable fips in the build
- # make sure the man pages are suffixed #302165
- # don't bother building man pages if they're disabled
- sed -i \
- -e '/DIRS/s: fips : :g' \
- -e '/^MANSUFFIX/s:=.*:=ssl:' \
- -e '/^MAKEDEPPROG/s:=.*:=$(CC):' \
- -e $(has noman FEATURES \
- && echo '/^install:/s:install_docs::' \
- || echo '/^MANDIR=/s:=.*:='${EPREFIX}'/usr/share/man:') \
- Makefile.org \
- || die
- # show the actual commands in the log
- sed -i '/^SET_X/s:=.*:=set -x:' Makefile.shared
-
- # since we're forcing $(CC) as makedep anyway, just fix
- # the conditional as always-on
- # helps clang (#417795), and versioned gcc (#499818)
- sed -i 's/expr.*MAKEDEPEND.*;/true;/' util/domd || die
-
- # quiet out unknown driver argument warnings since openssl
- # doesn't have well-split CFLAGS and we're making it even worse
- # and 'make depend' uses -Werror for added fun (#417795 again)
- [[ ${CC} == *clang* ]] && append-flags -Qunused-arguments
-
- # allow openssl to be cross-compiled
- cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
- chmod a+rx gentoo.config
-
- append-flags -fno-strict-aliasing
- append-flags $(test-flags-CC -Wa,--noexecstack)
- append-cppflags -DOPENSSL_NO_BUF_FREELISTS
-
- sed -i '1s,^:$,#!'${EPREFIX}'/usr/bin/perl,' Configure #141906
- # The config script does stupid stuff to prompt the user. Kill it.
- sed -i '/stty -icanon min 0 time 50; read waste/d' config || die
- ./config --test-sanity || die "I AM NOT SANE"
-
- multilib_copy_sources
-}
-
-multilib_src_configure() {
- unset APPS #197996
- unset SCRIPTS #312551
- unset CROSS_COMPILE #311473
-
- tc-export CC AR RANLIB RC
-
- # Clean out patent-or-otherwise-encumbered code
- # Camellia: Royalty Free http://en.wikipedia.org/wiki/Camellia_(cipher)
- # IDEA: Expired http://en.wikipedia.org/wiki/International_Data_Encryption_Algorithm
- # EC: ????????? ??/??/2015 http://en.wikipedia.org/wiki/Elliptic_Curve_Cryptography
- # MDC2: Expired http://en.wikipedia.org/wiki/MDC-2
- # RC5: Expired http://en.wikipedia.org/wiki/RC5
-
- use_ssl() { usex $1 "enable-${2:-$1}" "no-${2:-$1}" " ${*:3}" ; }
- echoit() { echo "$@" ; "$@" ; }
-
- local krb5=$(has_version app-crypt/mit-krb5 && echo "MIT" || echo "Heimdal")
-
- # See if our toolchain supports __uint128_t. If so, it's 64bit
- # friendly and can use the nicely optimized code paths. #460790
- local ec_nistp_64_gcc_128
- # Disable it for now though #469976
- #if ! use bindist ; then
- # echo "__uint128_t i;" > "${T}"/128.c
- # if ${CC} ${CFLAGS} -c "${T}"/128.c -o /dev/null >&/dev/null ; then
- # ec_nistp_64_gcc_128="enable-ec_nistp_64_gcc_128"
- # fi
- #fi
-
- local sslout=$(./gentoo.config)
- einfo "Use configuration ${sslout:-(openssl knows best)}"
- local config="Configure"
- [[ -z ${sslout} ]] && config="config"
-
- echoit \
- ./${config} \
- ${sslout} \
- $(use cpu_flags_x86_sse2 || echo "no-sse2") \
- enable-camellia \
- $(use_ssl !bindist ec) \
- ${ec_nistp_64_gcc_128} \
- enable-idea \
- enable-mdc2 \
- enable-rc5 \
- enable-tlsext \
- enable-ssl2 \
- $(use_ssl asm) \
- $(use_ssl gmp gmp -lgmp) \
- $(use_ssl kerberos krb5 --with-krb5-flavor=${krb5}) \
- $(use_ssl rfc3779) \
- $(use_ssl sctp) \
- $(use_ssl tls-heartbeat heartbeats) \
- $(use_ssl zlib) \
- --prefix="${EPREFIX}"/usr \
- --openssldir="${EPREFIX}"${SSL_CNF_DIR} \
- --libdir=$(get_libdir) \
- shared threads \
- || die
-
- # Clean out hardcoded flags that openssl uses
- local CFLAG=$(grep ^CFLAG= Makefile | LC_ALL=C sed \
- -e 's:^CFLAG=::' \
- -e 's:-fomit-frame-pointer ::g' \
- -e 's:-O[0-9] ::g' \
- -e 's:-march=[-a-z0-9]* ::g' \
- -e 's:-mcpu=[-a-z0-9]* ::g' \
- -e 's:-m[a-z0-9]* ::g' \
- )
- sed -i \
- -e "/^CFLAG/s|=.*|=${CFLAG} ${CFLAGS}|" \
- -e "/^SHARED_LDFLAGS=/s|$| ${LDFLAGS}|" \
- Makefile || die
-}
-
-multilib_src_compile() {
- # depend is needed to use $confopts; it also doesn't matter
- # that it's -j1 as the code itself serializes subdirs
- emake -j1 depend
- emake all
- # rehash is needed to prep the certs/ dir; do this
- # separately to avoid parallel build issues.
- emake rehash
-}
-
-multilib_src_test() {
- emake -j1 test
-}
-
-multilib_src_install() {
- emake INSTALL_PREFIX="${D}" install
-}
-
-multilib_src_install_all() {
- # openssl installs perl version of c_rehash by default, but
- # we provide a shell version via app-misc/c_rehash
- rm "${ED}"/usr/bin/c_rehash || die
-
- dodoc CHANGES* FAQ NEWS README doc/*.txt doc/c-indentation.el
- dohtml -r doc/*
- use rfc3779 && dodoc engines/ccgost/README.gost
-
- # This is crappy in that the static archives are still built even
- # when USE=static-libs. But this is due to a failing in the openssl
- # build system: the static archives are built as PIC all the time.
- # Only way around this would be to manually configure+compile openssl
- # twice; once with shared lib support enabled and once without.
- use static-libs || rm -f "${ED}"/usr/lib*/lib*.a
-
- # create the certs directory
- dodir ${SSL_CNF_DIR}/certs
- cp -RP certs/* "${ED}"${SSL_CNF_DIR}/certs/ || die
- rm -r "${ED}"${SSL_CNF_DIR}/certs/{demo,expired}
-
- # Namespace openssl programs to prevent conflicts with other man pages
- cd "${ED}"/usr/share/man
- local m d s
- for m in $(find . -type f | xargs grep -L '#include') ; do
- d=${m%/*} ; d=${d#./} ; m=${m##*/}
- [[ ${m} == openssl.1* ]] && continue
- [[ -n $(find -L ${d} -type l) ]] && die "erp, broken links already!"
- mv ${d}/{,ssl-}${m}
- # fix up references to renamed man pages
- sed -i '/^[.]SH "SEE ALSO"/,/^[.]/s:\([^(, ]*(1)\):ssl-\1:g' ${d}/ssl-${m}
- ln -s ssl-${m} ${d}/openssl-${m}
- # locate any symlinks that point to this man page ... we assume
- # that any broken links are due to the above renaming
- for s in $(find -L ${d} -type l) ; do
- s=${s##*/}
- rm -f ${d}/${s}
- ln -s ssl-${m} ${d}/ssl-${s}
- ln -s ssl-${s} ${d}/openssl-${s}
- done
- done
- [[ -n $(find -L ${d} -type l) ]] && die "broken manpage links found :("
-
- dodir /etc/sandbox.d #254521
- echo 'SANDBOX_PREDICT="/dev/crypto"' > "${ED}"/etc/sandbox.d/10openssl
-
- diropts -m0700
- keepdir ${SSL_CNF_DIR}/private
-}
-
-pkg_preinst() {
- has_version ${CATEGORY}/${PN}:0.9.8 && return 0
- preserve_old_lib /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
-}
-
-pkg_postinst() {
- ebegin "Running 'c_rehash ${EROOT%/}${SSL_CNF_DIR}/certs/' to rebuild hashes #333069"
- c_rehash "${EROOT%/}${SSL_CNF_DIR}/certs" >/dev/null
- eend $?
-
- has_version ${CATEGORY}/${PN}:0.9.8 && return 0
- preserve_old_lib_notify /usr/$(get_libdir)/lib{crypto,ssl}.so.0.9.8
-}
diff --git a/dev-util/docker-gen/Manifest b/dev-util/docker-gen/Manifest
deleted file mode 100644
index 70265a3..0000000
--- a/dev-util/docker-gen/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST docker-gen-0.7.4.tar.gz 27884 BLAKE2B f2915aa7a5a6588df8f42e49d72c309cc7de7a881fb2048633b72d0d6e96bfb36d031f612be1659c75fe4f5f6b087f5dbfbe6e0ca7daa121d46f70a63bccaed1 SHA512 aa051577a4cda497dfc8a985b877bb75d2010c4f81dced6d144ad9c61703f45ed06294ae928923752221636249064b778af2ad00e386fd6efd73ad942efbd3b5
diff --git a/dev-util/docker-gen/docker-gen-0.7.4.ebuild b/dev-util/docker-gen/docker-gen-0.7.4.ebuild
deleted file mode 100644
index 9b68ec3..0000000
--- a/dev-util/docker-gen/docker-gen-0.7.4.ebuild
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-GOLANG_PKG_IMPORTPATH="github.com/jwilder"
-GOLANG_PKG_BUILDPATH="/cmd/docker-gen"
-GOLANG_PKG_LDFLAGS="-X main.buildVersion=${PV}"
-GOLANG_PKG_HAVE_TEST=1
-
-inherit user golang-single
-
-DESCRIPTION="Generate files from docker container meta-data"
-HOMEPAGE="https://github.com/jwilder/docker-gen"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 x86 arm"
-
-src_compile() {
- export PATH="$GOBIN:$PATH"
- emake get-deps || die
- rm "${GOBIN}"/glock || die
-
- golang-single_src_compile
-}
diff --git a/dev-util/msgpack-tools/Manifest b/dev-util/msgpack-tools/Manifest
deleted file mode 100644
index 1dc8bb4..0000000
--- a/dev-util/msgpack-tools/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST msgpack-tools-0.6.tar.gz 21323 BLAKE2B a484465a3cfa3c2c5da8556a67b1e10aa874e85ffd06b76216e7df59407d2e2b8d7c953a663e3db25e2583f2c00b8891ce7064512555dcf0958aaf2704179fa2 SHA512 591788a1beb7c6985ecc6ddf155b5c27686736cb5b6a0e35ae57ea73185f39100c197c7393cb8a68cadb26a3219b80d86063836809085d9a350afd19e5338732
diff --git a/dev-util/msgpack-tools/msgpack-tools-0.6.ebuild b/dev-util/msgpack-tools/msgpack-tools-0.6.ebuild
deleted file mode 120000
index bc2e832..0000000
--- a/dev-util/msgpack-tools/msgpack-tools-0.6.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-msgpack-tools-9999.ebuild \ No newline at end of file
diff --git a/dev-util/msgpack-tools/msgpack-tools-9999.ebuild b/dev-util/msgpack-tools/msgpack-tools-9999.ebuild
deleted file mode 100644
index ce686a8..0000000
--- a/dev-util/msgpack-tools/msgpack-tools-9999.ebuild
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-CMAKE_IN_SOURCE_BUILD=1
-CMAKE_MAKEFILE_GENERATOR=emake
-
-inherit cmake
-
-MY_PN="github.com/ludocode/${PN}"
-MY_P="${P}"
-
-if [[ "${PV}" == "9999" ]]; then
- inherit git-r3
- EGIT_REPO_URI="https://${MY_PN}"
- EGIT_BRANCH="develop"
- EGIT_SUBMODULES=()
-else
- EGIT_COMMIT="v${PV}"
- MY_P="${PN}-tags-${EGIT_COMMIT}"
- SRC_URI="https://${MY_PN}/archive/tags/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
-fi
-
-DESCRIPTION="Command-line tools for converting between MessagePack and JSON"
-HOMEPAGE="https://github.com/ludocode/msgpack-tools"
-
-LICENSE="MIT"
-SLOT="0/${PVR}"
-KEYWORDS="~amd64 ~x86"
-IUSE=""
-RESTRICT="mirror"
-
-DEPEND=""
-RDEPEND="${DEPEND}"
-
-S="${WORKDIR}/${MY_P}"
-
-src_configure() {
- sh ./configure --prefix=/usr
-}
diff --git a/net-analyzer/captipper/Manifest b/net-analyzer/captipper/Manifest
deleted file mode 100644
index c9fc821..0000000
--- a/net-analyzer/captipper/Manifest
+++ /dev/null
@@ -1,2 +0,0 @@
-EBUILD captipper-9999.ebuild 524 SHA256 49ceeccb87001a0b4c030281c86f2402c7483aa7b0afac4e12f99ff7777df5d4 SHA512 4e2db7cd08690a292dcf7e34729bffe040aa49f3193bb93ae0a8bbc6afafcd412fc336e2ed3c38cf8e413daa45f0b9b77ddeacb15173bbbd04502cf194959c61 WHIRLPOOL 552d802b4688b5bd296f925e501fb556a4f547050fa9e91a98ff5c685eee225bec8a0d2c6dee6ceea27d54232c0b24ac3c97d160cf04183eba9e1333ee95fdc4
-MISC metadata.xml 304 SHA256 e41afe40ccbbdba8fb36d0128779e3fc5d1897b2ec9258e59e94490d9f7dfbfe SHA512 f1bb1ebca73bbee02755bf750f308a3f130320aa6f1c862d68ac07b4a2c9966c497162d8add1623a9ac3e93391ba16fdf9be5db5812fae156dfce824040e3040 WHIRLPOOL de0aac2e7eceab3f62073d9ae3331a6821933543cbd15670ee67dcead18a200d560658ebc3044e7cb4100d4b0aa9efd9ea24bab4b2490458806d909e685f3f7f
diff --git a/net-analyzer/captipper/captipper-9999.ebuild b/net-analyzer/captipper/captipper-9999.ebuild
deleted file mode 100644
index 2af8b9e..0000000
--- a/net-analyzer/captipper/captipper-9999.ebuild
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_{4,5}} pypy{,3} )
-
-EGIT_REPO_URI="https://github.com/pigfoot/CapTipper.git"
-EGIT_BRANCH="pf-patch"
-inherit git-r3 distutils-r1
-
-DESCRIPTION="Malicious HTTP traffic explorer"
-HOMEPAGE="https://github.com/omriher/CapTipper"
-SRC_URI=""
-
-LICENSE="GPL-3"
-SLOT="0"
-KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
-
-RDEPEND=""
-DEPEND="${RDEPEND}
- dev-python/setuptools[${PYTHON_USEDEP}]"
diff --git a/net-analyzer/captipper/metadata.xml b/net-analyzer/captipper/metadata.xml
deleted file mode 100644
index af561bd..0000000
--- a/net-analyzer/captipper/metadata.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<maintainer type="project">
- <email>pigfoot@gmail.com</email>
- <name>Chen, Chih-Chia</name>
- <description>Maintainer. Assign bugs to him</description>
-</maintainer>
-</pkgmetadata>
diff --git a/net-p2p/bittorrent-sync/Manifest b/net-p2p/bittorrent-sync/Manifest
deleted file mode 100644
index 74dee0a..0000000
--- a/net-p2p/bittorrent-sync/Manifest
+++ /dev/null
@@ -1,6 +0,0 @@
-AUX btsync.conf 367 SHA256 eea7ef22a0b7c7804466b81896bb76434eb4cd06d73eb2a53abe63adfd46996b SHA512 5ec9b588f674baca4c0d2bbe370e4e7de903b7915ad70a3abee4397a43e476f5d2a71dcce45458e154a0f4058c53faa2173b1bedba798c14023a913edf859f9e WHIRLPOOL b7889b760832b86688287b897a78b1889f037563b45b701158a7d78b848961debedcc5d0d28b2099ea50bb81a484249e7933bc0d3da648099c891d96aa9877d4
-AUX init.d/btsync 1041 SHA256 a6225242b0135f81b8514a1f01a3ca58e48d9f218133f73698b53517bc1b2bd2 SHA512 593ecf389af2e41fae475a82510e7cc6a1df3777f39a275d6b1c00f6189d9c0056dbc4ddc08e705621ab11231bb8fd995f3702871ea4816c7f0d9115cb62da9e WHIRLPOOL 96da08e8535644987ac150eb5bae419a5d4af3c5557fa0dd8eff488a32ed68fe33f840fc7cab1b7cf6d50285882f2c362d843bf0ceac4ad09084cdb599527165
-AUX systemd/btsync.service 342 SHA256 4a337170e6c4492b77ab3c83635cf06be5e08e4b5bba1d0fa966f580ba82517c SHA512 afb4a5b924501cd8fd62bfa39ebaef1ffd376e6f4341eb447217f6ac200c942ebd9d6f064b32cbf1035f4412ad2374b3e6e79ee0e88d92581c3d7038309eda02 WHIRLPOOL 35e030c45122af08f5feecf473b3d2f021f00bf928f1d5d04e31070f29dd3714099bbf1d3203e1f5f2f0b75792a73ff9dcb85136b5f8c4d39543c73e87db8bbe
-DIST btsync_i386-1.4.110.tar.gz 3986220 SHA256 5d307dd9a39e2f6688976eb9e2ba8a67dad98ae7f3df59c6550c45d3bae25831 SHA512 c08990d0707376f7eb117170ea72c0de162eb0c7aacf98b752fc915c92b8f7774ee3d5a51e3857ad1ddcc18427b20c7fdb1720de057705c2812c7b030162ae09 WHIRLPOOL 95c9bcc3a8b4b23c1fc86d6512ab32a86ca13c4a561891894a6186cd766a364f449df8bcb7d419c5e1750086e9d6b41180ab76ee3055cd42416c2d0f607d1ecc
-DIST btsync_x64-1.4.110.tar.gz 4138116 SHA256 edba53cf27a2e64646d5216938fc3a2292e7b1201c864387703ffb7d3b362ead SHA512 c3893f6ee70ebdb0ce61559c17ef6af269ca15cd3ccb79768cfbd0b5cd42bfbc5b41cf4506ddd36ff7bbb62c1307b04b621987c4cbfc7c6ab91b8ca465327129 WHIRLPOOL f40628d97248fd692bfced71f08c687a90ef03018697aa4acbd23a5e1cca7d8cafebb475c0edd62ced89325084e380d241321d0e538008bc411028c2b9f018f0
-EBUILD bittorrent-sync-1.4.110.ebuild 1452 SHA256 36bcac9e2071c8e2bab5fae324cb715854d77bf64f0ec538ae2e56dc2133bb40 SHA512 de6f69a4cfba29229aa49d62da3ba99506a458b8ebc071b2bde88d57be2eb09743c7899d9da43e64eb614e58b5252b502e3aefc5ced20b525017becc383da5d4 WHIRLPOOL 9435c837e2345da401595fd1bc1b5d34af1a8aaf4c2fc2dfc75591b3e7c97abf82a82bd68ec161334b83fcac7eb1da8b348a19b5e2cda14120aa20727410faf1
diff --git a/net-p2p/bittorrent-sync/bittorrent-sync-1.4.110.ebuild b/net-p2p/bittorrent-sync/bittorrent-sync-1.4.110.ebuild
deleted file mode 100644
index 30561f8..0000000
--- a/net-p2p/bittorrent-sync/bittorrent-sync-1.4.110.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-inherit user systemd
-
-NAME="btsync"
-DESCRIPTION="Fast, unlimited and secure file-syncing. Free from the cloud."
-HOMEPAGE="http://www.getsync.com/"
-SRC_URI="
- amd64? ( http://syncapp.bittorrent.com/${PV}/btsync_x64-${PV}.tar.gz )
- x86? ( http://syncapp.bittorrent.com/${PV}/btsync_i386-${PV}.tar.gz )"
-
-RESTRICT="mirror strip"
-LICENSE="BitTorrent"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-
-S="${WORKDIR}"
-
-pkg_setup() {
- local btsyncuser="btsync"
- enewgroup ${btsyncuser}
- enewuser btsync -1 -1 /var/lib/${NAME} ${btsyncuser}
-}
-
-src_install() {
- # Install the executable
- exeinto "/opt/${NAME}"
- doexe "${S}/${NAME}"
-
- # Install a default configuration file
- insinto "/etc/${NAME}"
- newins "${FILESDIR}/btsync.conf" "${NAME}.conf"
-
- # Install the OpenRC init file
- doinitd "${FILESDIR}/init.d/${NAME}"
-
- # Install the systemd unit file
- systemd_dounit "${FILESDIR}/systemd/${NAME}.service"
-
- for x in {/var/lib,/run}/${NAME}; do
- keepdir "${x}"
- fowners btsync:btsync "${x}"
- done
-}
-
-pkg_postinst() {
- elog "In order for shared files between local users to be as easy as possible,"
- elog "please set up ACLs on your system."
- elog ""
- elog "You will also need to configure btsync by editing /etc/btsync/config"
- elog ""
- elog "After checking your config, start the service and point your browser to"
- elog "http://localhost:8888 , the default username and password is admin/admin."
-}
diff --git a/net-p2p/bittorrent-sync/files/btsync.conf b/net-p2p/bittorrent-sync/files/btsync.conf
deleted file mode 100644
index 6a4a5a9..0000000
--- a/net-p2p/bittorrent-sync/files/btsync.conf
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "device_name": "Gentoo",
- "listening_port" : 0,
-
- "storage_path" : "/var/lib/btsync",
- "pid_file" : "/var/run/btsync/btsync.pid",
-
- "check_for_updates" : true,
- "use_upnp" : true,
-
- "download_limit" : 0,
- "upload_limit" : 0,
-
- "webui" :
- {
- "listen" : "127.0.0.1:8888",
- "login" : "admin",
- "password" : "admin"
- }
-}
diff --git a/net-p2p/bittorrent-sync/files/init.d/btsync b/net-p2p/bittorrent-sync/files/init.d/btsync
deleted file mode 100644
index 9e7cd3d..0000000
--- a/net-p2p/bittorrent-sync/files/init.d/btsync
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/sbin/runscript
-
-# Copyright 2013-2014 Jonathan Vasquez <jvasquez1011@gmail.com>
-# Distributed under the terms of the GNU General Public License v2
-
-NAME="BitTorrent Sync"
-SYNC_NAME="btsync"
-SYNC_PATH="/opt/${SYNC_NAME}/"
-SYNC_BINARY="${SYNC_PATH}/${SYNC_NAME}"
-SYNC_OPTS="--nodaemon --config /etc/${SYNC_NAME}/btsync.conf"
-SYNC_PIDFILE="/var/run/${SYNC_NAME}/${SYNC_NAME}.pid"
-SYNC_USER=${SYNC_USER:-btsync}
-SYNC_GROUP=${SYNC_GROUP:-btsync}
-
-start() {
- ebegin "Starting ${NAME}"
-
- # Sets the umask for the process so that btsync creates files
- # with group write permissions
- start-stop-daemon --start --exec "${SYNC_BINARY}" \
- --pidfile "${SYNC_PIDFILE}" --background \
- --user "${SYNC_USER}" --group "${SYNC_GROUP}" \
- -- ${SYNC_OPTS}
-
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${NAME}"
-
- start-stop-daemon --stop --exec "${SYNC_BINARY}" \
- --pidfile "${SYNC_PIDFILE}"
-
- eend $?
-}
-
-reload() {
- ebegin "Reloading ${NAME}"
-
- start-stop-daemon --signal HUP --exec "${SYNC_BINARY}" \
- --pidfile "${SYNC_PIDFILE}"
-
- eend $?
-}
diff --git a/net-p2p/bittorrent-sync/files/systemd/btsync.service b/net-p2p/bittorrent-sync/files/systemd/btsync.service
deleted file mode 100644
index 64b8c43..0000000
--- a/net-p2p/bittorrent-sync/files/systemd/btsync.service
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2014 Jonathan Vasquez <jvasquez1011@gmail.com>
-# Distributed under the terms of the GNU General Public License v2
-
-[Unit]
-Description=BitTorrent Sync
-After=systemd-udev-settle.target local-fs.target zfs.service
-
-[Service]
-Type=forking
-ExecStart=/opt/btsync/btsync --config /etc/btsync/config
-
-[Install]
-WantedBy=multi-user.target
diff --git a/sys-apps/go-tldr/Manifest b/sys-apps/go-tldr/Manifest
deleted file mode 100644
index 3bccbc3..0000000
--- a/sys-apps/go-tldr/Manifest
+++ /dev/null
@@ -1,25 +0,0 @@
-DIST github.com-alecthomas-kingpin-v2.2.6.tar.gz 44383 BLAKE2B 91841e6353af639c9d1ad4ecb0fec797ba1d497c223c0d457e1999dc7560a84e1d75f209f5a18386874a499939c5c7d6a450ed61ebf265b6706077131fda486c SHA512 09c6bb5782639efc7068ed7606fe22c463b2397dc95a89c27ba567a58da10660bfea60d7836b63dcedf7db702f79fe7247575c33a503990f5ba6ca92e29b06b3
-DIST github.com-alecthomas-template-a0175ee3bccc.tar.gz 55291 BLAKE2B fbd48545b6a5809d210629ca3aeb03c366051601d5b2f7718f79a96ec18fa09f18922c1a3ffcbac3abcd9b8955871b5bb4c71c23a1839cf7f17d8372bc3478fe SHA512 5ca546170725c3bdd4d9b27ca3976d6dc6376be8db685e6e26cfaef4a51560f78702b7babbe5ed0b2d934d0c32867bc69b11ae757071dc143a4453e6e7ffabdf
-DIST github.com-alecthomas-units-2efee857e7cf.tar.gz 3442 BLAKE2B bb3a4acac34764b249cbec5f21fd260ab6dea6810183d12e13943657037903b874a209686b6913e8529a578cec4fb364adad475577c28456bf92add7f5ac9498 SHA512 855f15eeb83bdc16981694f522aa1e200a3857ed11ae87fca9b0cc70734eac76f5082bc3ed92f843b818da14b58dc921dbb1aed4ea35de056c087a64b7e25fe4
-DIST github.com-c-bata-go-prompt-v0.2.3.tar.gz 39186 BLAKE2B 1b825f598fa65dbf029f97b231f33b083c7d8badf62e21ad6e63f766c908249d196de54198ffa28d3c529a8076d45790aa79d1719ae884b530326dc021cc0882 SHA512 9c19f7d85a42d6267735f92c331b906e870e72d0eda5f21559e1a1385e5803f60b215aa6c09bb34ca2d82adc4d878e63aefc4a6f4ac954941f8a104be21b0857
-DIST github.com-emirpasic-gods-v1.12.0.tar.gz 76825 BLAKE2B 55afe6d6834341dadfc9a159a20b4154665babfb4484440d25c1e67dd01e2e459f692932da12ffa8fe94ce4afe07c5501f45677bca6c5f3c287ef1144f9f9c44 SHA512 7dd24708aaf5d45f9a3b945d337291f3292fef2ade9fd479326bdfa27b359043c2ff2c0e257151707b2f23ee7e104abc4604a2dac81bf91e526723b29b360830
-DIST github.com-fatih-color-v1.7.0.tar.gz 816449 BLAKE2B f006f51cbd1a0288380b339d7d2b493e447aa1e6bd783f11de5670d4db6ff8c1463cbe957a04127c1f24186a9362be8c40ecdf4394cbbc0e2c6c2cb598c012ac SHA512 ee5668ce828ad3e5461c54d971aee4b10a578f697717010d60fdda641948430816e74580563dfea6a4c66a9840175ff5b63c2ca9cf1af213cfac5be7b8ddac36
-DIST github.com-go-warnings-warnings-v0.1.2.tar.gz 3769 BLAKE2B 8947385b0db67df1e36566bd7dc683520f14107a51b55d9d1a8be7418e4beb1fa4cb665aa5f07114f61194803ba330a101aa0a8b7e6c9e2b393c82495774b612 SHA512 7dd67fcdcd6d6b10969df3a739229ea058cabfe189c53e41a39a2a2fe00f4b4e7e16b8de3cccc34320cbbaf82c54fdf0444445d8eac88d96ee69e2132044def0
-DIST github.com-golang-crypto-4def268fd1a4.tar.gz 1693268 BLAKE2B b19803b58d5f242bca292c1b6e69b5cbeafa908077cec327e9d502576ecb2e19feb2bd131431ae0cb229cfac025eb36ece5f6ced66d0f075e233719aefde6a29 SHA512 fb3da32e55a01c4d8449ddbd9bcb3d2491d2ee9b25e42fd0bacedcd3dc5d35125ac7e57acc27fe57fba63ace43008205041a7654e681c7b91e20d4de6ee28e2d
-DIST github.com-golang-net-ca1201d0de80.tar.gz 1099752 BLAKE2B 6300e151f53e5a5886000fa82e9567d644ce0f769588f4f8e3d443208718c36ef790ebe4fecdadc9517b232cfe881c63bba215a649e429304e612af473cce0f5 SHA512 8ba27323bcfdc8f7e5ad3061906bb993c0a91a3da1812768f5652553f9f06ebb8ba35572d5512e65f7ec10363e506779cfaeb1111f1b7db95fa012b9ff64495e
-DIST github.com-golang-sys-fde4db37ae7a.tar.gz 1457524 BLAKE2B 339311cc9717e89e70d5e5d4c56500c7969a08b78eed48a27d9cad111d3d4b15fc4a4d2d6aed506d0173aea5c4fbd7eef2aab2ddb6d89b0751c1c85a62dbf453 SHA512 10d47c2b5fc004872db6e61b447d258aed143891eb7b68f4b8d3afd135511ee7138b61580c5c6cb6e4c953f640f0c581aa1a1450e42054a0c497d5e91e40ba7f
-DIST github.com-isacikgoz-gitin-v0.2.3.tar.gz 31093 BLAKE2B 4bae53b882cf43e541af755dbde9d02bbd4776c1275c02c6c4d88330df61e890aba77cc24c75e1d5eacb74a8c14b66a620d85a24ee7e8b5c795b304112e0610c SHA512 ca66808d2d5e65f0b701640e020fad3dea74a78d133e496046b9ca9a7a18176357a8966260aab9b60869362c844184f48bd7966ff9abcf46d07ff350bd152fdb
-DIST github.com-jbenet-go-context-d14ea06fba99.tar.gz 5944 BLAKE2B 18d2ec9cb208cb7844d3ffd23a64183e08d75b89bb979a0cddefc197b5db16cd9199bcd1c631bbcb607e9c009223952ad67f5c52315de358ab1a718fe5c1307d SHA512 ead2e583dd98d27fe657536b0b52296510b88dbe9a3ec4befb965a4ef0174cc3cb65b750c7004c1df21a861de66659a70426a570eb23ff05773516fc3f60ae6b
-DIST github.com-kelseyhightower-envconfig-v1.4.0.tar.gz 14349 BLAKE2B a128c056c0be857049b6332378e6db1c0c5362abe8f7d704c5b7be9cdada9071428ac0ef30cd38c6b6bf9664ff701aee2ed701999392c2c7bbd69345162e9b77 SHA512 4a11de60ccfa1deadeb62ec5590c28ca8d3139c53a85e794f507df21273bdd3203b708ddffa7f763db33facc434d844a72b27d7215c0cf39fbc3db15765c7b8c
-DIST github.com-kevinburke-ssh_config-01f96b0aa0cd.tar.gz 17345 BLAKE2B 4c66a41324e185a7e62d1a5ed1a277ccfdced682a5f1c6b357f71396b68a8e7b4d6e0577accf0053b72cde49131fca29fca5a8444c937eb0014b5e1d1a4cb97f SHA512 05d657f0461d2e652123d7ae7ccfa48fd73957d5b624a6bca730ab3ba4e673f52eeee46045a43ad7f02b465ac3c28da3492520e2303f28f8b2d3982a53e0d455
-DIST github.com-mattn-go-isatty-v0.0.9.tar.gz 3904 BLAKE2B 20178fb090805cf70ab6f98af75d4df4a049ba7a44f9023378e947e717952b985e64d640594edf8ddd63b9217f847a02f81a29e8b138159ceb2f2e3801e71d08 SHA512 3044e4fcd5cb76014b905f2c50838ee8cda6b1c865955a8504566b164cd851317e9ad69404d0125d6317be2a269584d7f72de551e4363c9c05a1b8068fa2dac3
-DIST github.com-mattn-go-runewidth-v0.0.4.tar.gz 19827 BLAKE2B d2320759711986724f1feadebac45fc809a881031122585e26ab20f5144ed89101b338e5cbd736c7183d46d63f5913e291b14e035fb00a8c1d2bba21dcd0fcf7 SHA512 3f55e7cbd66014145593910a0e0fb37d0700c8ce6f1987ebefc5806626e7e5774dbce8af914ee8039cc20d38902d5cb8254a10638de3972f22131b7a058a0e64
-DIST github.com-mitchellh-go-homedir-v1.1.0.tar.gz 3362 BLAKE2B b3388de9230439ec591042f6a319a80216c0bd7ef055f4bee42bd9020ce8104afb1d10b6105cd2a6f431f066f78af1286537236c054c3bfe15c7ee9b10e1935f SHA512 19f3341d9b343d46a215da3d9aba8e218cd4a5e22a33bb26ee296ab3764e9ab7befa7b65f05bf7e9af8b28be1f078e7da691b68c0a7b1e0c8d853de3ba53d643
-DIST github.com-pkg-term-aa71e9d9e942.tar.gz 9502 BLAKE2B 82edcd7f39a0572ba2f33a92428de10d630ef98558829f80218ec7f1e43e5b79e8766df51409a3082d807164b8a06bcd75ff64abc345c6812ac04b63459e32e6 SHA512 a90ca8b4134bf9e03d1e12c663d5d878f99b005d65324c58e569488f3d7657db2d076cf504dee081fad17b607460373ad681bc50c68bad88ff440384054b74e6
-DIST github.com-sahilm-fuzzy-v0.1.0.tar.gz 3353310 BLAKE2B 4f72510ff23fc77b9ab9faa42aa8a1ff8a2efdcefbf8bac23eaee316d74c83a2373e66888a5a76d1c655fcafc8edf76168da1993a282c22e9a2906841e89ef00 SHA512 ffc46b25976403b6a64b43e4c5ca78208d8c8e0ddee3055d2ff47b0c50e54fc7bc71fcc8f7730fae5dd6264f71cbb2aa8c60ff6dd1defd0bf8f5b1587a53c8c4
-DIST github.com-sergi-go-diff-v1.0.0.tar.gz 41609 BLAKE2B d45904bd26757c0b81310debfecc35fc20de2bc28bba487324dfd348e9f53369dc40cdc5f25cf8d07f6d8462fae5f41df606b79f28b28bbc7fc53bd5af8469e1 SHA512 aed012908610c75dbf7141ee5652d6b1b21ebf6e6a72ed88cbe32213ad8ca6ccdbfe1d42815eb8cbd98276acf75306aef21b729237746d30e24ac6dbc36552b0
-DIST github.com-src-d-gcfg-v1.4.0.tar.gz 28531 BLAKE2B 4d85d19d69331c85457acf5e5e803bbf1367b808622baf95bc461607974cdd24776e9739867fb5e15b9f1d4075c8e3670bc9188f4d38583d4677d6cba4f5e59c SHA512 e9c68c9f652401885b405cba711c925caac04aaeac7ebd810f1de142fbfdd1e1de4c840a0f26f681fd3461b1059a89edf6243a246b11562e2ec081626c94e3d2
-DIST github.com-src-d-go-billy-v4.3.2.tar.gz 28022 BLAKE2B 93234bed64b3a477b9e6f9c572accfcbd1815c61b8a21c47f0523523d32eb1e8f91ef55f7272f7d42b5a66057894aee7dfc3d1a91aa908e2a5dec3bc351d08d6 SHA512 623e92785480272a9344edeb4c15e13174ec7e429f8147653b484103331370b4400c00d054e2beff60cc6d482cc7c6b4e9e5260a6f13c676ebb4fa0445c949e7
-DIST github.com-src-d-go-git-v4.13.1.tar.gz 434955 BLAKE2B ae23ab511faf862ef48b8a6d6978031034cddb2a3800ace409c4522f76fd012a2e63669f5f7bf65ad6e8b3b8100dc85192269135270c9e60b9523d1c2fabf422 SHA512 9f41e02932a801f34be0aab0d9d31213e17499d246677b71a47f254815cef3f7f0202519eab8918eab32acc955eefb6b217cfd0fdfdb9462fae400e10c63e5bc
-DIST github.com-xanzy-ssh-agent-v0.2.1.tar.gz 7611 BLAKE2B 8a15b5ee2af446efedc7880aea748ddc2cdb1fb38bb619d4c723230de30dd9f4938eb6e3b048c90ebe603ebc14c9433a8c11f587737f77e6bd307879ac6a7de5 SHA512 3336d3e18aa6290c17330c5abbed772205496b5621e1cfa5976f60e0f4fc90e5736314e45d42a72b5075444142c767221e1dbfbf84f950a9ca8c2c02f8abf6aa
-DIST go-tldr-20200320.tar.gz 4180051 BLAKE2B 8e55e3738099f41685eb740a1f3072b2dc5342bed4deb1009b9c2f2c7687ea586860363219a7e716981042c258010a2011607b050a3800268ea9a3a654220310 SHA512 aa62d9a0d74a8c0d89f475505c638ce535a8d4c33eab3e40555565faab366a3d45ca7f5fb8a41a9d9654d5ed758e7b7d6caa093ec210c6da454bafafb5259daa
diff --git a/sys-apps/go-tldr/go-tldr-20200320.ebuild b/sys-apps/go-tldr/go-tldr-20200320.ebuild
deleted file mode 100644
index a65a867..0000000
--- a/sys-apps/go-tldr/go-tldr-20200320.ebuild
+++ /dev/null
@@ -1,66 +0,0 @@
-# Copyright 1999-2019 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-
-EGO_PN="github.com/isacikgoz/tldr"
-EGIT_COMMIT="c5b317479265ad52dd952329070d4af3fc6ed50e"
-EGO_VENDOR=(
- "github.com/c-bata/go-prompt v0.2.3"
- "github.com/fatih/color v1.7.0"
- "github.com/isacikgoz/gitin v0.2.3"
- "github.com/kelseyhightower/envconfig v1.4.0"
- "github.com/mattn/go-isatty v0.0.9"
- "github.com/pkg/term aa71e9d9e942"
- "github.com/sahilm/fuzzy v0.1.0"
- "gopkg.in/alecthomas/kingpin.v2 v2.2.6 github.com/alecthomas/kingpin"
- "gopkg.in/src-d/go-git.v4 v4.13.1 github.com/src-d/go-git"
- "github.com/alecthomas/template a0175ee3bccc"
- "github.com/alecthomas/units 2efee857e7cf"
- "github.com/emirpasic/gods v1.12.0"
- "github.com/jbenet/go-context d14ea06fba99"
- "github.com/kevinburke/ssh_config 01f96b0aa0cd"
- "github.com/mattn/go-runewidth v0.0.4"
- "github.com/mitchellh/go-homedir v1.1.0"
- "github.com/sergi/go-diff v1.0.0"
- "github.com/src-d/gcfg v1.4.0"
- "github.com/xanzy/ssh-agent v0.2.1"
- "golang.org/x/crypto 4def268fd1a4 github.com/golang/crypto"
- "golang.org/x/net ca1201d0de80 github.com/golang/net"
- "golang.org/x/sys fde4db37ae7a github.com/golang/sys"
- "gopkg.in/src-d/go-billy.v4 v4.3.2 github.com/src-d/go-billy"
- "gopkg.in/warnings.v0 v0.1.2 github.com/go-warnings/warnings"
-)
-
-inherit golang-build golang-vcs-snapshot
-
-DESCRIPTION="fast and interactive tldr client written with go, written in GoLang"
-ARCHIVE_URI="https://${EGO_PN}/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
- ${EGO_VENDOR_URI}"
-SRC_URI="${ARCHIVE_URI}"
-RESTRICT="mirror"
-
-LICENSE="MIT"
-SLOT="0/${PVR}"
-KEYWORDS="~amd64 ~x86 ~arm"
-IUSE="+pie"
-
-src_compile() {
- # -buildmode=pie forces external linking mode, even CGO_ENABLED=0
- # https://github.com/golang/go/issues/18968
- use pie && local build_pie="-buildmode=pie"
-
- local build_flags="$( echo ${EGO_BUILD_FLAGS} ) $( echo ${build_pie} )"
-
- set -- env GOPATH="${WORKDIR}/${P}:$(get_golibdir_gopath)" \
- GOCACHE="${T}/go-cache" \
- CGO_ENABLED=0 \
- GO111MODULE=off \
- go install -v -work -x ${build_flags} ${EGO_PN}/cmd/tldr
- echo "$@"
- "$@" || die
-}
-
-src_install() {
- dobin bin/*
-}
diff --git a/sys-fs/encfs/Manifest b/sys-fs/encfs/Manifest
deleted file mode 100644
index 171bfaf..0000000
--- a/sys-fs/encfs/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST encfs-1.9.1.tar.gz 455910 SHA256 67203aeff7a06ce7be83df4948db296be89a00cffe1108a0a41c96d7481106a4 SHA512 7ac0d2495d28dbca9e4c23c8c82321cdab6c37e8e37daf88dc9b3fe8d8521a4fa8889e20cdbde1f94fb4c51d3c4b5ea5b30fa6e612258285cc284d61e5d377ea WHIRLPOOL 918ac8e18ae6255acbf9f7d1fdd271535177d26132615e9a939370b975f336dd49a50e396265bb6583fbc20aa5bfa206cb6a9e9d6ef40b2ccebd92f1361003fb
diff --git a/sys-fs/encfs/encfs-1.9.1.ebuild b/sys-fs/encfs/encfs-1.9.1.ebuild
deleted file mode 100644
index 3f2e1af..0000000
--- a/sys-fs/encfs/encfs-1.9.1.ebuild
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="6"
-inherit cmake-utils
-
-DESCRIPTION="An implementation of encrypted filesystem in user-space using FUSE"
-HOMEPAGE="https://vgough.github.io/encfs/"
-SRC_URI="https://github.com/vgough/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
-
-LICENSE="GPL-3 LGPL-3"
-SLOT="0"
-KEYWORDS="~amd64"
-IUSE="libressl nls"
-
-RDEPEND="
- !libressl? ( dev-libs/openssl:0= )
- libressl? ( dev-libs/libressl:0= )
- dev-libs/tinyxml2:0/3
- sys-fs/fuse
- sys-libs/zlib"
-DEPEND="
- ${RDEPEND}
- dev-lang/perl
- sys-devel/gettext
- virtual/pkgconfig"
-
-src_configure() {
- local mycmakeargs=(
- -DENABLE_NLS="$(usex nls)"
- -DUSE_INTERNAL_TINYXML=OFF
- )
- cmake-utils_src_configure
-}
diff --git a/sys-fs/fswatch/Manifest b/sys-fs/fswatch/Manifest
deleted file mode 100644
index 00d4a2d..0000000
--- a/sys-fs/fswatch/Manifest
+++ /dev/null
@@ -1,4 +0,0 @@
-DIST fswatch-1.8.0.tar.gz 193913 SHA256 f071ec8bf47d844f789a330c4216cb7e9829d467cd74148b39e9daac0e102eaa SHA512 2fbf0a4f691d9a92751eaf787b09f0b6256992bce8edb7132d5fbc15db783366dea268618d9a324b0f2dafa5080265959c264f4ebb6187cd16d1bf7853c48bcd WHIRLPOOL b2755b81da938705af3dd742169b9b4d473c40736cd08285efebae512187a34b896057b0a341ea92a34e167814f6d668f9b064efab4d090fd84fb5bcf522b718
-EBUILD fswatch-1.8.0.ebuild 605 SHA256 2ed154a80362c6449371b70df4b1abf126af7b08f2b0b9c93840bc2f97f75135 SHA512 79092bea9469f9f1d2d7842aeacb0525254d2f57827ee5701d862e9b5f5f53787404ef3d8b069f8ccc8b8f915cc72385bd7c4dda4806c04e12902ad1a55b221d WHIRLPOOL fc84ce015b94ef66e4aa9a0b6e210b035d5bc268be2aa1711a0e81cf0f398274580cfe19ab85b0c2b85fc98c3e06841a7167b36916d11cc004fb037465aa96f9
-EBUILD fswatch-9999.ebuild 605 SHA256 2ed154a80362c6449371b70df4b1abf126af7b08f2b0b9c93840bc2f97f75135 SHA512 79092bea9469f9f1d2d7842aeacb0525254d2f57827ee5701d862e9b5f5f53787404ef3d8b069f8ccc8b8f915cc72385bd7c4dda4806c04e12902ad1a55b221d WHIRLPOOL fc84ce015b94ef66e4aa9a0b6e210b035d5bc268be2aa1711a0e81cf0f398274580cfe19ab85b0c2b85fc98c3e06841a7167b36916d11cc004fb037465aa96f9
-MISC metadata.xml 304 SHA256 e41afe40ccbbdba8fb36d0128779e3fc5d1897b2ec9258e59e94490d9f7dfbfe SHA512 f1bb1ebca73bbee02755bf750f308a3f130320aa6f1c862d68ac07b4a2c9966c497162d8add1623a9ac3e93391ba16fdf9be5db5812fae156dfce824040e3040 WHIRLPOOL de0aac2e7eceab3f62073d9ae3331a6821933543cbd15670ee67dcead18a200d560658ebc3044e7cb4100d4b0aa9efd9ea24bab4b2490458806d909e685f3f7f
diff --git a/sys-fs/fswatch/fswatch-1.8.0.ebuild b/sys-fs/fswatch/fswatch-1.8.0.ebuild
deleted file mode 120000
index b065767..0000000
--- a/sys-fs/fswatch/fswatch-1.8.0.ebuild
+++ /dev/null
@@ -1 +0,0 @@
-fswatch-9999.ebuild \ No newline at end of file
diff --git a/sys-fs/fswatch/fswatch-9999.ebuild b/sys-fs/fswatch/fswatch-9999.ebuild
deleted file mode 100644
index d303167..0000000
--- a/sys-fs/fswatch/fswatch-9999.ebuild
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-if [[ ${PV} == "9999" ]] ; then
- EGIT_REPO_URI="https://github.com/emcrisostomo/${PN}.git"
- inherit git-r3
- KEYWORDS="~x86 ~amd64"
-else
- SRC_URI="https://github.com/emcrisostomo/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="x86 amd64"
-fi
-
-DESCRIPTION="A cross-platform file change monitor with multiple backends"
-HOMEPAGE="http://emcrisostomo.github.io/fswatch/"
-LICENSE="GPL-2"
-SLOT="0"
-
-RDEPEND=""
-
-DEPEND="${RDEPEND}"
-
-src_prepare() {
- ./autogen.sh || die
- eapply_user
-}
diff --git a/sys-fs/fswatch/metadata.xml b/sys-fs/fswatch/metadata.xml
deleted file mode 100644
index af561bd..0000000
--- a/sys-fs/fswatch/metadata.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
-<pkgmetadata>
-<maintainer type="project">
- <email>pigfoot@gmail.com</email>
- <name>Chen, Chih-Chia</name>
- <description>Maintainer. Assign bugs to him</description>
-</maintainer>
-</pkgmetadata>
diff --git a/sys-fs/mediafire-fuse/mediafire-fuse-9999.ebuild b/sys-fs/mediafire-fuse/mediafire-fuse-9999.ebuild
deleted file mode 100644
index 03d667f..0000000
--- a/sys-fs/mediafire-fuse/mediafire-fuse-9999.ebuild
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Id$
-
-EAPI=6
-
-inherit cmake-utils
-
-DESCRIPTION="Programs to interact with a mediafire account"
-HOMEPAGE="https://github.com/MediaFire/mediafire-fuse"
-IUSE="+ssl libressl"
-
-if [[ ${PV} == *9999* ]] ; then
- EGIT_REPO_URI="https://github.com/MediaFire/mediafire-fuse.git\
- git://github.com/MediaFire/mediafire-fuse.git"
- KEYWORDS="~x86 ~amd64"
- inherit git-r3
-else
- EGIT_COMMIT=${PV}
- SRC_URI="https://github.com/MediaFire/mediafire-fuse/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
- KEYWORDS="~amd64 ~x86"
- inherit vcs-snapshot
-fi
-
-LICENSE="GPL-2"
-SLOT="0"
-
-RDEPEND="net-misc/curl[ssl]
- !libressl? ( >=dev-libs/openssl-1.0.2g:0=[-bindist] )
- libressl? ( dev-libs/libressl )
- sys-fs/fuse
- dev-libs/jansson"
-
-DEPEND="${RDEPEND}"
-
-src_configure() {
- cmake-utils_src_configure
-}
-
diff --git a/www-client/phantomjs/Manifest b/www-client/phantomjs/Manifest
deleted file mode 100644
index 4baf6c5..0000000
--- a/www-client/phantomjs/Manifest
+++ /dev/null
@@ -1 +0,0 @@
-DIST phantomjs-2.0.0-source.zip 110092872 SHA256 cc81249eaa059cc138414390cade9cb6509b9d6fa0df16f4f43de70b174b3bfe SHA512 c8262353ee4daa842ef891b41e006baccf1815a99cf3262aeba457cfc37bbef6cb2ca234e69bd33a5446014fe802b3e35591e2eb0d49d8483c1f75bacf9d6f42 WHIRLPOOL b26c70d92d3c06a6688f27ae0376c0af226f4a6c6e345d87041fda9a7095fdb9665d11fc250cd4a721da47825a7080e66558d3b033332b08f6300a8ab0525d22
diff --git a/www-client/phantomjs/files/phantomjs-gcc5-compile-fix.patch b/www-client/phantomjs/files/phantomjs-gcc5-compile-fix.patch
deleted file mode 100644
index 7191050..0000000
--- a/www-client/phantomjs/files/phantomjs-gcc5-compile-fix.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/src/qt/qtwebkit/Source/JavaScriptCore/runtime/JSObject.cpp 2015-01-24 08:19:52.000000000 +0600
-+++ b/src/qt/qtwebkit/Source/JavaScriptCore/runtime/JSObject.cpp 2015-09-24 18:18:45.598322592 +0600
-@@ -1909,6 +1909,11 @@
- }
- }
-
-+// Used in JSArray.cpp so we must instantiate explicit
-+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<Int32Shape>(ExecState* exec, unsigned i, JSValue value);
-+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<DoubleShape>(ExecState* exec, unsigned i, JSValue value);
-+template void JSObject::putByIndexBeyondVectorLengthWithoutAttributes<ContiguousShape>(ExecState* exec, unsigned i, JSValue value);
-+
- void JSObject::putByIndexBeyondVectorLengthWithArrayStorage(ExecState* exec, unsigned i, JSValue value, bool shouldThrow, ArrayStorage* storage)
- {
- VM& vm = exec->vm();
diff --git a/www-client/phantomjs/files/phantomjs-python3-udis86-itab.patch b/www-client/phantomjs/files/phantomjs-python3-udis86-itab.patch
deleted file mode 100644
index 7c67e6b..0000000
--- a/www-client/phantomjs/files/phantomjs-python3-udis86-itab.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/phantomjs-2.0.0/src/qt/qtwebkit/Source/JavaScriptCore/disassembler/udis86/itab.py 2015-01-24 11:19:52.000000000 +0900
-+++ b/phantomjs-2.0.0/src/qt/qtwebkit/Source/JavaScriptCore/disassembler/udis86/itab.py 2015-03-17 16:20:04.580191055 +0900
-@@ -314,8 +314,7 @@
- self.ItabH.write( "\n" )
-
- self.ItabH.write("\n/* itab entry operand definitions */\n");
-- operands = self.OperandDict.keys()
-- operands.sort()
-+ operands = sorted(self.OperandDict)
- for o in operands:
- self.ItabH.write("#define O_%-7s { %-12s %-8s }\n" %
- (o, self.OperandDict[o][0] + ",", self.OperandDict[o][1]));
diff --git a/www-client/phantomjs/files/qtcore-5.3.0-libressl.patch b/www-client/phantomjs/files/qtcore-5.3.0-libressl.patch
deleted file mode 100644
index 305785a..0000000
--- a/www-client/phantomjs/files/qtcore-5.3.0-libressl.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff --git a/src/qt/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp.orig b/src/qt/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
-index 01c0f6f..bb1497f 100644
---- a/src/qt/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp.orig
-+++ b/src/qt/qtbase/src/network/ssl/qsslsocket_openssl_symbols.cpp
-@@ -266,7 +266,9 @@ DEFINEFUNC(SSL_SESSION*, SSL_get_session, const SSL *ssl, ssl, return 0, return)
- #ifndef OPENSSL_NO_SSL2
- DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
- #endif
-+#ifndef OPENSSL_NO_SSL3
- DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(const SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
- #if OPENSSL_VERSION_NUMBER >= 0x10001000L
-@@ -276,7 +278,9 @@ DEFINEFUNC(const SSL_METHOD *, TLSv1_2_client_method, DUMMYARG, DUMMYARG, return
- #ifndef OPENSSL_NO_SSL2
- DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
- #endif
-+#ifndef OPENSSL_NO_SSL3
- DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
- #if OPENSSL_VERSION_NUMBER >= 0x10001000L
-@@ -285,11 +289,15 @@ DEFINEFUNC(const SSL_METHOD *, TLSv1_2_server_method, DUMMYARG, DUMMYARG, return
- #endif
- #else
- DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#ifndef OPENSSL_NO_SSL3
- DEFINEFUNC(SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return)
-+#ifndef OPENSSL_NO_SSL3
- DEFINEFUNC(SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return)
-+#endif
- DEFINEFUNC(SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return)
- DEFINEFUNC(SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return)
- #endif
-diff --git a/src/qt/qtbase/src/network/ssl/qsslcontext.cpp.orig b/src/qt/qtbase/src/network/ssl/qsslcontext.cpp
-index f539c73..4bb49ef 100644
---- a/src/qt/qtbase/src/network/ssl/qsslcontext.cpp.orig
-+++ b/src/qt/qtbase/src/network/ssl/qsslcontext.cpp
-@@ -142,7 +142,11 @@ init_context:
- #endif
- break;
- case QSsl::SslV3:
-+#ifndef OPENSSL_NO_SSL3
- sslContext->ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method());
-+#else
-+ sslContext->ctx = 0; // SSL 3 not supported by the system, but chosen deliberately -> error
-+#endif
- break;
- case QSsl::SecureProtocols: // SslV2 will be disabled below
- case QSsl::TlsV1SslV3: // SslV2 will be disabled below
diff --git a/www-client/phantomjs/phantomjs-2.0.0-r1.ebuild b/www-client/phantomjs/phantomjs-2.0.0-r1.ebuild
deleted file mode 100644
index 2661bec..0000000
--- a/www-client/phantomjs/phantomjs-2.0.0-r1.ebuild
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-
-USE_RUBY="ruby20 ruby21 ruby22"
-
-inherit eutils toolchain-funcs pax-utils multiprocessing ruby-single
-
-DESCRIPTION="A headless WebKit scriptable with a JavaScript API"
-HOMEPAGE="http://phantomjs.org/"
-SRC_URI="https://bitbucket.org/ariya/phantomjs/downloads/${P}-source.zip"
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="examples libressl"
-
-RDEPEND="dev-libs/icu:=
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- media-libs/fontconfig
- media-libs/freetype
- media-libs/gstreamer:1.0
- media-libs/gst-plugins-base:1.0
- media-libs/libpng:0=
- virtual/jpeg:0"
-DEPEND="${RDEPEND}
- ${RUBY_DEPS}
- net-misc/openssh[-bindist]
- app-arch/unzip
- virtual/pkgconfig"
-
-src_prepare() {
- epatch "${FILESDIR}/phantomjs-python3-udis86-itab.patch"
- epatch "${FILESDIR}/phantomjs-gcc5-compile-fix.patch"
- if use libressl ; then
- epatch "${FILESDIR}/qtcore-5.3.0-libressl.patch"
- fi
-
- # Respect CC, CXX, {C,CXX,LD}FLAGS in .qmake.cache
- sed -i \
- -e "/^SYSTEM_VARIABLES=/i \
- CC='$(tc-getCC)'\n\
- CXX='$(tc-getCXX)'\n\
- CFLAGS='${CFLAGS}'\n\
- CXXFLAGS='${CXXFLAGS}'\n\
- LDFLAGS='${LDFLAGS}'\n\
- QMakeVar set QMAKE_CFLAGS_RELEASE\n\
- QMakeVar set QMAKE_CFLAGS_DEBUG\n\
- QMakeVar set QMAKE_CXXFLAGS_RELEASE\n\
- QMakeVar set QMAKE_CXXFLAGS_DEBUG\n\
- QMakeVar set QMAKE_LFLAGS_RELEASE\n\
- QMakeVar set QMAKE_LFLAGS_DEBUG\n"\
- src/qt/qtbase/configure \
- || die
-
- # Respect CC, CXX, LINK and *FLAGS in config.tests
- find src/qt/qtbase/config.tests/unix -name '*.test' -type f -exec \
- sed -i -e "/bin\/qmake/ s: \"\$SRCDIR/: \
- 'QMAKE_CC=$(tc-getCC)' 'QMAKE_CXX=$(tc-getCXX)' 'QMAKE_LINK=$(tc-getCXX)' \
- 'QMAKE_CFLAGS+=${CFLAGS}' 'QMAKE_CXXFLAGS+=${CXXFLAGS}' 'QMAKE_LFLAGS+=${LDFLAGS}'&:" \
- {} + || die
-}
-
-src_compile() {
- ./build.sh \
- --confirm \
- --jobs $(makeopts_jobs) \
- --qt-config "$($(tc-getPKG_CONFIG) --cflags-only-I freetype2)" \
- || die
-}
-
-src_test() {
- ./bin/phantomjs test/run-tests.js || die
-}
-
-src_install() {
- pax-mark m bin/phantomjs || die
- dobin bin/phantomjs
- dodoc ChangeLog README.md
- if use examples ; then
- docinto examples
- dodoc examples/*
- fi
-}
diff --git a/www-client/phantomjs/phantomjs-2.1.1.ebuild b/www-client/phantomjs/phantomjs-2.1.1.ebuild
deleted file mode 100644
index 99e41f4..0000000
--- a/www-client/phantomjs/phantomjs-2.1.1.ebuild
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright 1999-2016 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=6
-
-PYTHON_COMPAT=( python{2_7,3_{4,5,6}} pypy{,3} )
-
-DESCRIPTION="A headless WebKit scriptable with a JavaScript API"
-HOMEPAGE="http://phantomjs.org/"
-EGIT_REPO_URI="https://github.com/ariya/${PN}.git"
-EGIT_COMMIT="2.1.1"
-
-inherit eutils toolchain-funcs pax-utils multiprocessing git-r3
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="~amd64 ~x86"
-IUSE="examples fontconfig libressl truetype"
-REQUIRED_USE="${PYTHON_REQUIRED_USE}"
-
-RDEPEND="dev-libs/icu:=
- fontconfig? ( media-libs/fontconfig )
- !libressl? ( dev-libs/openssl:0 )
- libressl? ( dev-libs/libressl )
- truetype? ( media-libs/freetype )
- dev-db/sqlite:3"
-DEPEND="${RDEPEND}
- net-misc/openssh[-bindist]
- app-arch/unzip
- virtual/pkgconfig"
-
-src_prepare() {
- # Respect CC, CXX, {C,CXX,LD}FLAGS in .qmake.cache
- sed -i \
- -e "/^SYSTEM_VARIABLES=/i \
- CC='$(tc-getCC)'\n\
- CXX='$(tc-getCXX)'\n\
- CFLAGS='${CFLAGS}'\n\
- CXXFLAGS='${CXXFLAGS}'\n\
- LDFLAGS='${LDFLAGS}'\n\
- QMakeVar set QMAKE_CFLAGS_RELEASE\n\
- QMakeVar set QMAKE_CFLAGS_DEBUG\n\
- QMakeVar set QMAKE_CXXFLAGS_RELEASE\n\
- QMakeVar set QMAKE_CXXFLAGS_DEBUG\n\
- QMakeVar set QMAKE_LFLAGS_RELEASE\n\
- QMakeVar set QMAKE_LFLAGS_DEBUG\n"\
- src/qt/qtbase/configure \
- || die
-
- # Respect CC, CXX, LINK and *FLAGS in config.tests
- find src/qt/qtbase/config.tests/unix -name '*.test' -type f -exec \
- sed -i -e "/bin\/qmake/ s: \"\$SRCDIR/: \
- 'QMAKE_CC=$(tc-getCC)' 'QMAKE_CXX=$(tc-getCXX)' 'QMAKE_LINK=$(tc-getCXX)' \
- 'QMAKE_CFLAGS+=${CFLAGS}' 'QMAKE_CXXFLAGS+=${CXXFLAGS}' 'QMAKE_LFLAGS+=${LDFLAGS}'&:" \
- {} + || die
-
- default
-}
-
-src_compile() {
- ./build.py \
- --confirm \
- --jobs $(makeopts_jobs) \
- || die
-}
-
-src_test() {
- ./bin/phantomjs test/run-tests.js || die
-}
-
-src_install() {
- pax-mark m bin/phantomjs || die
- dobin bin/phantomjs
- dodoc ChangeLog README.md
- if use examples ; then
- docinto examples
- dodoc examples/*
- fi
-}