#!/bin/sh # Copyright (c) 2008 Jonathan McDowell # GNU GPL; v2 or later # Converts a keyring into individual keys. # Taken from jetring-explode, Copyright 2007 Joey Hess set -e if [ -z "$1" ] || [ -z "$2" ]; then echo "Usage: explode-keyring keyring dir" >&2 exit 1 fi # avoid gnupg touching ~/.gnupg GNUPGHOME=$(mktemp -d -t jetring.XXXXXXXX) export GNUPGHOME trap cleanup exit cleanup () { rm -rf "$GNUPGHOME" } keyring=$(readlink -f "$1") # gpg works better with absolute keyring paths changesetdir="$2" basename=$(basename "$keyring") date=`date -R` mkdir -p "$changesetdir" for key in $(gpg --no-auto-check-trustdb --options /dev/null --no-default-keyring --keyring "$keyring" --list-keys --keyid-format long | grep '^pub' | sed -e 's!.*/!!' -e 's/ .*//'); do out="$changesetdir/0x$key" echo "$out" gpg --no-auto-check-trustdb --options /dev/null \ --no-default-keyring --keyring "$keyring" \ --export-options no-export-attributes \ --export "$key" > "$out" done