38 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 |