#!/bin/sh - # $Id$ # # Copyright (C) 2010 Internet Systems Consortium ("ISC") # # Permission to use, copy, modify, and 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 ISC DISCLAIMS ALL WARRANTIES WITH # REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY # AND FITNESS. IN NO EVENT SHALL ISC 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. # Given the Maildir dump format, one can use Mutt as a viewer with two # tweaks: # # 1) Add to ~/.muttrc # # auto_view application/x-rpki # # 2) Add to ~/.mailcap # # application/x-rpki; /path/to/this/script.sh ; copiousoutput # # "copiousoutput" is required by mutt to enable auto_view (inline # display) behavior. # # This script could do fancier things (pretty XML formatting, # verification checks of the CMS, etcetera) if anybody cared. # For the moment the main use for this script is debugging. # We have to jump through some hoops to figure out where our OpenSSL # binary is. If you have already installed an OpenSSL binary that # understands CMS, feel free to use that instead. #exec 2>&1; set -x : ${AWK=/usr/bin/awk} : ${OPENSSL=$(/usr/bin/dirname $0)/../openssl/openssl/apps/openssl} : ${SPLITBASE64=$(/usr/bin/dirname $0)/splitbase64.xsl} : ${XMLINDENT=/usr/local/bin/xmlindent} : ${XMLLINT=/usr/local/bin/xmllint} : ${XSLTPROC=/usr/local/bin/xsltproc} # This produces prettier output, but also hangs sometimes, apparently some xmlindent bug dealing with really long XML attributes #OPENSSL_CONF=/dev/null $OPENSSL cms -verify -nosigs -noverify -inform DER 2>/dev/null | $XSLTPROC $SPLITBASE64 - | $XMLINDENT -i 2 | $AWK NF # So we do this instead OPENSSL_CONF=/dev/null $OPENSSL cms -verify -nosigs -noverify -inform DER 2>/dev/null | $XSLTPROC $SPLITBASE64 - | $XMLLINT -format -