diff options
author | Chen, Chih-Chia <pigfoot@gmail.com> | 2021-11-26 17:31:16 +0800 |
---|---|---|
committer | Chen, Chih-Chia <pigfoot@gmail.com> | 2021-11-26 17:31:16 +0800 |
commit | 8e908f6a5d5994f2cf68621ed2089dcf5cc523b9 (patch) | |
tree | eebd14891d3d1679e2fb81d89bd3ec8b3169ba32 | |
parent | Remove out-of-dated packages (diff) | |
download | pigfoot-8e908f6a5d5994f2cf68621ed2089dcf5cc523b9.tar.gz pigfoot-8e908f6a5d5994f2cf68621ed2089dcf5cc523b9.tar.bz2 pigfoot-8e908f6a5d5994f2cf68621ed2089dcf5cc523b9.zip |
Remove out-of-dated packages
Signed-off-by: Chen, Chih-Chia <pigfoot@gmail.com>
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 -} |