File: decrypt_derived

package info (click to toggle)
cryptsetup 2%3A1.0.4%2Bsvn26-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 3,572 kB
  • ctags: 418
  • sloc: sh: 10,706; ansic: 3,187; makefile: 329; python: 90; perl: 40; sed: 16
file content (46 lines) | stat: -rw-r--r-- 719 bytes parent folder | download
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/bin/sh

countlines() {
	local IFS input count tmp
	input="$1"
	count=0
	IFS='
'
	for tmp in $input; do
		count=$(( $count + 1 ))
	done
	echo $count
}

if [ -z "$1" ]; then
	echo "$0: must be executed with a crypto device as argument" >&2
	exit 1
fi

if ! device=$(dmsetup table 2> /dev/null | grep "^$1:"); then
	echo "$0: failed to find $1 in dmtable" >&2
	exit 1
fi

if [ -z "$device" ]; then
	echo "$0: device $1 doesn't exist" >&2
	exit 1
fi

count=$(countlines "$device")
if [ $count -ne 1 ]; then
	echo "$0: more than one device match $1" >&2
	exit 1
fi

eval set -- $device
type="$4"
key="$6"

if [ "$type" != "crypt" ]; then
	echo "$0: device $1 is not a crypto device" >&2
	exit 1
fi

echo -n "$key"
exit 0