From owner-dev-commits-src-main@freebsd.org Sat Jan 9 05:26:17 2021 Return-Path: Delivered-To: dev-commits-src-main@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id DD9904C9F41; Sat, 9 Jan 2021 05:26:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4DCT3F5ss9z4XCY; Sat, 9 Jan 2021 05:26:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BC76010C06; Sat, 9 Jan 2021 05:26:17 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 1095QHdp001454; Sat, 9 Jan 2021 05:26:17 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 1095QHB7001453; Sat, 9 Jan 2021 05:26:17 GMT (envelope-from git) Date: Sat, 9 Jan 2021 05:26:17 GMT Message-Id: <202101090526.1095QHB7001453@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kyle Evans Subject: git: 8c4094f38c7b - main - certctl: factor out certname resolution MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 8c4094f38c7b0e95af91d92a563bfedc1249950d Auto-Submitted: auto-generated X-BeenThere: dev-commits-src-main@freebsd.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Commit messages for the main branch of the src repository List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 09 Jan 2021 05:26:17 -0000 The branch main has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=8c4094f38c7b0e95af91d92a563bfedc1249950d commit 8c4094f38c7b0e95af91d92a563bfedc1249950d Author: Kyle Evans AuthorDate: 2021-01-09 04:34:44 +0000 Commit: Kyle Evans CommitDate: 2021-01-09 04:36:22 +0000 certctl: factor out certname resolution create_blacklisted() will identify a cert whether it's provided a path to a cert or the hash.serial format that is shown by `certctl list`. Factor this logic out into a resolve_certname() so that it may be reused elsewhere. --- usr.sbin/certctl/certctl.sh | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/usr.sbin/certctl/certctl.sh b/usr.sbin/certctl/certctl.sh index c2f9c7dc8438..1a491cf3a047 100755 --- a/usr.sbin/certctl/certctl.sh +++ b/usr.sbin/certctl/certctl.sh @@ -92,7 +92,8 @@ create_trusted_link() install ${INSTALLFLAGS} -lrs $(realpath "$1") "$CERTDESTDIR/$hash.$suffix" } -create_blacklisted() +# Accepts either dot-hash form from `certctl list` or a path to a valid cert. +resolve_certname() { local hash srcfile filename local suffix @@ -103,14 +104,28 @@ create_blacklisted() srcfile=$(realpath "$1") suffix=$(get_decimal "$BLACKLISTDESTDIR" "$hash") filename="$hash.$suffix" + echo "$srcfile" "$hash.$suffix" elif [ -e "${CERTDESTDIR}/$1" ]; then srcfile=$(realpath "${CERTDESTDIR}/$1") hash=$(echo "$1" | sed -Ee 's/\.([0-9])+$//') suffix=$(get_decimal "$BLACKLISTDESTDIR" "$hash") filename="$hash.$suffix" - else + echo "$srcfile" "$hash.$suffix" + fi +} + +create_blacklisted() +{ + local srcfile filename + + set -- $(resolve_certname "$1") + srcfile=$1 + filename=$2 + + if [ -z "$srcfile" -o -z "$filename" ]; then return fi + [ $VERBOSE -gt 0 ] && echo "Adding $filename to blacklist" [ $NOOP -eq 0 ] && install ${INSTALLFLAGS} -lrs "$srcfile" "$BLACKLISTDESTDIR/$filename" }