#!/bin/bash # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. echo "Adding mock Google Accounts server certs." CERT_NAME="mock_server" FAKE_CA_DIR="${ROOT_FS_DIR}/etc/fake_root_ca" FAKE_NSSDB="${FAKE_CA_DIR}/nssdb" TMP_KEY=$(mktemp -p /tmp "${CERT_NAME}.key.XXXXX") TMP_CERT=$(mktemp -p /tmp "${CERT_NAME}.pem.XXXXX") # Generate testing root cert on the fly. openssl req -x509 -days 2 -subj "/CN=www.google.com" \ -newkey rsa:1024 -nodes -keyout "${TMP_KEY}" -out "${TMP_CERT}" mkdir -m 0755 -p "${FAKE_NSSDB}" nsscertutil -d sql:"${FAKE_NSSDB}" -N -f <(echo "") cp "${TMP_KEY}" "${FAKE_CA_DIR}/${CERT_NAME}.key" cp "${TMP_CERT}" "${FAKE_CA_DIR}/${CERT_NAME}.pem" echo "DO NOT MOVE THIS DATA OFF OF THE ROOTFS!" > "${FAKE_CA_DIR}/README" nsscertutil -d sql:"${FAKE_NSSDB}" -A -n FakeCert -t "C,," -a -i "${TMP_CERT}" chmod 0644 "${FAKE_NSSDB}"/* # TODO(cmasone): get rid of this once we're off pam_google for good. # Sadly, our fake cert HAS to be first in this file. TMPFILE=$(mktemp) CERT_FILE="${ROOT_FS_DIR}/etc/login_trust_root.pem" PERMS=$(stat --printf="%a" "${CERT_FILE}") cat "${TMP_CERT}" "${CERT_FILE}" > "${TMPFILE}" mv -f "${TMPFILE}" "${CERT_FILE}" chmod "${PERMS}" "${CERT_FILE}"