aboutsummaryrefslogtreecommitdiff
path: root/scripts/naskconf
blob: 245279906c97f5ca578d4d3a9a39904e6d09de4e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/sh

export ORGCHKSM="5924c70e5c9fabf0398050349c3f4f283ab80091b23ea8c677249ee7bdd41f6e4910ce5e1bc32577e67763dc30d9b96cc3528256e1cc63dba959a5e3866ec21f"
export ORGFILE="/usr/share/initramfs-tools/scripts/local-top/cryptroot"


. /usr/share/debconf/confmodule

_nask_cmd () {
  db_get naskpass/active
  if [ "x$1" = "xACTV" ] && [ "$RET" = "false" ]; then
    if [ "${ORGCHKSM}" != "$(/usr/bin/sha512sum ${ORGFILE} | grep -Eo '^[0-9a-zA-Z]*')" ]; then
      export ERRMSG="$0: sha512sum mismatch"
      return 1
    fi
    dpkg-divert --package naskpass --add --rename --divert /var/backups/cryptroot.initramfs.bak ${ORGFILE}
    cp /usr/share/naskpass/naskpass.script.initramfs ${ORGFILE}
    ln -s /usr/share/naskpass/naskpass.hook.initramfs \
      /usr/share/initramfs-tools/hooks/naskpass
    db_set naskpass/active true
  elif [ "x$1" = "xDCTV" ] && [ "$RET" = "true" ]; then
    rm ${ORGFILE}
    rm /usr/share/initramfs-tools/hooks/naskpass
    dpkg-divert --package naskpass --rename --remove ${ORGFILE}
    db_set naskpass/active false
  fi
  return 0
}

nask_activate ()	{ _nask_cmd "ACTV"; return $?; }
nask_deactivate ()	{ _nask_cmd "DCTV"; return $?; }