File: gen

package info (click to toggle)
links2 2.29-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 27,852 kB
  • sloc: ansic: 181,859; sh: 2,585; cpp: 1,450; makefile: 84; awk: 49; perl: 34
file content (38 lines) | stat: -rwxr-xr-x 1,046 bytes parent folder | download | duplicates (2)
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
#!/bin/sh
set -e
LC_ALL=C
export LC_ALL
echo
echo Generating certificates.
rm -f cert.tmp
mangle_unprintable_command="`../intl/mangle-unprintable`"
(
echo '/* Automatically generated by certs/gen */'
echo
echo 'static_const struct {'
echo '	int len;'
echo '	const char *data;'
echo '} certificates[] = {'
total=`wc -l links.crt | sed 's/^ *//' | sed 's/ .*//'`
line=0
while read x; do
	line=`expr $line + 1`
	if echo "$x" | grep ^----- >/dev/null; then
		if echo "$x" | grep ^-----END >/dev/null; then
			printf "`expr $line \* 100 / $total || true`%%\r" 1>&2
			base64 --decode <cert.tmp >cert.bin
			printf "{ `wc -c cert.bin|sed 's/^ *//'|sed 's/ .*//'`, \""
#			hexdump -v <cert.bin  -e '/1 "-%o"'|sed 's/-/\\/g'
			sed 's/\([\"]\)/\\\1/g' <cert.bin | eval "$mangle_unprintable_command" | tr '\000' '\t' | sed 's/	/\\000/g' | tr '\012' '\t' | sed 's/	/\\012/g'
			echo "\" },"
			rm -f cert.tmp cert.bin
		fi
	else
		echo "$x" >>cert.tmp
	fi
done <links.crt
echo '};'
) | sed 's/\\012$/" },/' | sed '/^"/d' >../certs.inc
echo
echo Done.
echo