diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-06-06 04:53:27 +0000 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-06-06 04:53:27 +0000 |
commit | 98748693af36852f6f99bf0a48d77685db09f251 (patch) | |
tree | dd071861bedc467439a63bfe2095bfc2866832cd /net-dns/dnssec-root/dnssec-root-20150403.ebuild | |
parent | Adds >net-libs/enet-1.3.7 as a dependency, bug #550850 (diff) | |
download | gentoo-2-98748693af36852f6f99bf0a48d77685db09f251.tar.gz gentoo-2-98748693af36852f6f99bf0a48d77685db09f251.tar.bz2 gentoo-2-98748693af36852f6f99bf0a48d77685db09f251.zip |
Bump, some of the certificate bundles used in src_test have changed; also document where the magic dates came from, and why they are hardcoded. Allow mirroring, improve readability.
(Portage version: 2.2.20/cvs/Linux x86_64, unsigned Manifest commit)
Diffstat (limited to 'net-dns/dnssec-root/dnssec-root-20150403.ebuild')
-rw-r--r-- | net-dns/dnssec-root/dnssec-root-20150403.ebuild | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/net-dns/dnssec-root/dnssec-root-20150403.ebuild b/net-dns/dnssec-root/dnssec-root-20150403.ebuild new file mode 100644 index 000000000000..f94130b37aeb --- /dev/null +++ b/net-dns/dnssec-root/dnssec-root-20150403.ebuild @@ -0,0 +1,82 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-dns/dnssec-root/dnssec-root-20150403.ebuild,v 1.1 2015/06/06 04:53:27 robbat2 Exp ${DATE_ISSUE2}.ebuild,v 1.16 2015/05/15 11:57:03 pacho Exp $ + +EAPI=5 + +DESCRIPTION="The DNSSEC root key(s)" +HOMEPAGE="https://www.iana.org/dnssec/" +DATE_ISSUE1=20100715 # Original root-anchor creation date +DATE_ISSUE2=20110715 # ICANN PGP key updated +DATE_ISSUE3=20150504 # Subordinate CAs updated +ICANN_PGP_FINGERPRINT='2FBB91BCAAEE0ABE1F8031C7D1AFBCE00F6C91D2' +# The naming of the files really needs some improvement upstream: +# root-anchors.p7s despite it's name, is mostly the the same data as +# icannbundle.pem +SRC_URI="http://data.iana.org/root-anchors/root-anchors.xml -> root-anchors-${DATE_ISSUE1}.xml + http://data.iana.org/root-anchors/Kjqmt7v.csr -> Kjqmt7v-${DATE_ISSUE1}.csr + test? ( http://data.iana.org/root-anchors/Kjqmt7v.crt -> Kjqmt7v-${DATE_ISSUE3}.crt + http://data.iana.org/root-anchors/root-anchors.p7s -> root-anchors-${DATE_ISSUE3}.p7s + http://data.iana.org/root-anchors/root-anchors.asc -> root-anchors-${DATE_ISSUE1}.asc + http://data.iana.org/root-anchors/icannbundle.pem -> icannbundle-${DATE_ISSUE3}.pem + http://data.iana.org/root-anchors/icann.pgp -> icann-${DATE_ISSUE2}.pgp + )" + +LICENSE="public-domain" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x64-macos" +IUSE="test" + +RDEPEND="" +DEPEND="dev-libs/libxslt + test? ( app-crypt/gnupg + dev-libs/openssl )" + +S="${WORKDIR}" + +# xsl and checking as per: +# http://permalink.gmane.org/gmane.network.dns.unbound.user/1039 + +src_unpack() { + return +} + +src_prepare() { + return +} + +src_compile() { + xsltproc \ + -o root-anchors-${DATE_ISSUE1}.txt \ + "${FILESDIR}"/anchors2ds.xsl \ + "${DISTDIR}"/root-anchors-${DATE_ISSUE1}.xml \ + || die 'xsl translation failed' +} + +src_test() { + # This is a terrible catch-22 of security, since we get the ICANN key from the + # same site! We verify the fingerprint ourselves in case + gpg --import "${DISTDIR}"/icann-${DATE_ISSUE2}.pgp || die 'ICANN key import failed' + gpg --fingerprint --with-colon --list-keys \ + | grep '^fpr:' | fgrep ":$ICANN_PGP_FINGERPRINT:" \ + || die "ICANN key fingerprint mismatch!" + #gpg --import \ + # "${FILESDIR}"/dnssec_at_iana.org_1024D_0F6C91D2-20120522.asc || die + gpg --verify \ + "${DISTDIR}"/root-anchors-${DATE_ISSUE1}.asc \ + "${DISTDIR}"/root-anchors-${DATE_ISSUE1}.xml || die "GPG verify failed" + openssl smime -verify \ + -content "${DISTDIR}"/root-anchors-${DATE_ISSUE1}.xml \ + -in "${DISTDIR}"/root-anchors-${DATE_ISSUE3}.p7s -inform der \ + -CAfile "${DISTDIR}"/icannbundle-${DATE_ISSUE3}.pem || die "OpenSSL smime verify failed" +} + +src_install() { + insinto /etc/dnssec + newins root-anchors-${DATE_ISSUE1}.txt root-anchors.txt + newins "${DISTDIR}"/root-anchors-${DATE_ISSUE1}.xml root-anchors.xml + # What actually uses the DER-format certificate request out of the box? + # Wouldn't icannbundle.pem or Kjqmt7v.crt (converted to PEM format) be more + # useful? + newins "${DISTDIR}"/Kjqmt7v-${DATE_ISSUE1}.csr Kjqmt7v.csr +} |