Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

#!/bin/sh -ex
mkdir -p ~/.config/Yubico

create_keys() {
	pamu2fcfg -t es256 -N > /tmp/es256
	[ "${U2F_TOKEN}" != "" ] && return
	pamu2fcfg -t es256 -N -r -o originA > /tmp/es256.r
	pamu2fcfg -t rs256 -N -r -o originB > /tmp/rs256.r
}

run_tests() {
	[ "${U2F_TOKEN}" != "" ] && return

	echo "auth sufficient pam_u2f.so" > /etc/pam.d/dummy
	cp /tmp/es256 ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate

	echo "auth sufficient pam_u2f.so origin=originA" > /etc/pam.d/dummy
	cp /tmp/es256.r ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate

	echo "auth sufficient pam_u2f.so origin=originB" > /etc/pam.d/dummy
	cp /tmp/rs256.r ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate
}

run_user_presence_tests() {
	echo "auth sufficient pam_u2f.so" > /etc/pam.d/dummy
	cat /tmp/es256 | sed 's/-$/p/' > ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate

	[ "${U2F_TOKEN}" != "" ] && return

	echo "auth sufficient pam_u2f.so origin=originA" > /etc/pam.d/dummy
	cat /tmp/es256.r | sed 's/-$/p/' > ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate

	echo "auth sufficient pam_u2f.so origin=originB" > /etc/pam.d/dummy
	cat /tmp/rs256.r | sed 's/-$/p/' > ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate
}

run_user_verification_tests() {
	[ "${U2F_TOKEN}" != "" ] && return
	[ "${FIDO2_PIN}" = "" ] && return

	echo "auth sufficient pam_u2f.so" > /etc/pam.d/dummy
	cat /tmp/es256 | sed 's/-$/v/' > ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate

	echo "auth sufficient pam_u2f.so origin=originA" > /etc/pam.d/dummy
	cat /tmp/es256.r | sed 's/-$/v/' > ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate

	echo "auth sufficient pam_u2f.so origin=originB" > /etc/pam.d/dummy
	cat /tmp/rs256.r | sed 's/-$/v/' > ~/.config/Yubico/u2f_keys
	pamtester dummy root authenticate
}

create_keys
run_tests
run_user_presence_tests
run_user_verification_tests