#!/bin/bash
#
# YACHT (Yet Another CA How To) Placed in public domain. RLamb 2019
#
./hcardshow > $0.tmp
kref=0
keyref=0
while [ "1" ]; do  # Look for next free "key ref"
  read a b c d e
  if [ $? -ne 0 ]; then break; fi
  if [ -z "$a" ]; then
    if [ $keyref -gt 0 ]; then
      # echo "$kid $keyref";
      if [ $keyref -gt $kref ]; then kref=$keyref; fi
    fi
    keyref=0
    continue;
  fi
  if [ "$a" = "Key" -a "$b" = "ref" ]; then
    keyref=$d
  fi
done < $0.tmp
rm -rf $0.tmp
if [ $kref -gt 250 ]; then
  echo "Could not find free Key Ref in HSM. Check with hcardshow."
  exit 0
fi
kref=$(( $kref + 1 ))
read -p "WRAPPED KEY FILE: " fname
read -s -p "HSM PIN: " PKCS11_LIBRARY_PIN
echo "Using Key Ref $kref"
sc-hsm-tool --unwrap-key $fname --key-reference $kref --pin $PKCS11_LIBRARY_PIN -f
