| OLD | NEW |
| 1 #!/bin/bash | 1 #!/bin/bash |
| 2 | 2 |
| 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. | 3 # Copyright (c) 2010 The Chromium OS Authors. All rights reserved. |
| 4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
| 5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
| 6 | 6 |
| 7 echo "Adding mock Google Accounts server certs." | 7 echo "Adding mock Google Accounts server certs." |
| 8 | 8 |
| 9 case "${ARCH}" in | 9 case "${ARCH}" in |
| 10 arm*) | 10 arm*) |
| 11 QEMU="qemu-arm" | 11 QEMU="/tmp/qemu-arm" |
| 12 cp "/usr/bin/qemu-arm" "${ROOT_FS_DIR}/${QEMU}" |
| 12 ;; | 13 ;; |
| 13 *86) | 14 *86) |
| 14 QEMU="qemu-i386" | 15 QEMU="" |
| 15 ;; | 16 ;; |
| 16 *) | 17 *) |
| 17 error "Invalid ARCH: ${ARCH}" | 18 error "Invalid ARCH: ${ARCH}" |
| 18 exit 1 | 19 exit 1 |
| 19 esac | 20 esac |
| 20 cp "/usr/bin/${QEMU}" "${ROOT_FS_DIR}/tmp" | |
| 21 | 21 |
| 22 CERT_NAME="mock_server" | 22 CERT_NAME="mock_server" |
| 23 FAKE_CA_DIR="/etc/fake_root_ca" | 23 FAKE_CA_DIR="/etc/fake_root_ca" |
| 24 FAKE_NSSDB="${FAKE_CA_DIR}/nssdb" | 24 FAKE_NSSDB="${FAKE_CA_DIR}/nssdb" |
| 25 TMP_KEY=$(mktemp -p /tmp "${CERT_NAME}.key.XXXXX") | 25 TMP_KEY=$(mktemp -p /tmp "${CERT_NAME}.key.XXXXX") |
| 26 TMP_CERT=$(mktemp -p /tmp "${CERT_NAME}.pem.XXXXX") | 26 TMP_CERT=$(mktemp -p /tmp "${CERT_NAME}.pem.XXXXX") |
| 27 | 27 |
| 28 mv -f "${TMP_KEY}" "${ROOT_FS_DIR}/${TMP_KEY}" | 28 mv -f "${TMP_KEY}" "${ROOT_FS_DIR}/${TMP_KEY}" |
| 29 mv -f "${TMP_CERT}" "${ROOT_FS_DIR}/${TMP_CERT}" | 29 mv -f "${TMP_CERT}" "${ROOT_FS_DIR}/${TMP_CERT}" |
| 30 | 30 |
| 31 # Generate testing root cert on the fly. | 31 # Generate testing root cert on the fly. |
| 32 sudo chroot "${ROOT_FS_DIR}" "/tmp/${QEMU}" /usr/bin/openssl req -x509 -days 2 \ | 32 sudo chroot "${ROOT_FS_DIR}" ${QEMU} /usr/bin/openssl req -x509 -days 2 \ |
| 33 -subj "/CN=www.google.com" \ | 33 -subj "/CN=www.google.com" \ |
| 34 -newkey rsa:1024 -nodes -keyout "${TMP_KEY}" -out "${TMP_CERT}" | 34 -newkey rsa:1024 -nodes -keyout "${TMP_KEY}" -out "${TMP_CERT}" |
| 35 | 35 |
| 36 mkdir -m 0755 -p "${ROOT_FS_DIR}/${FAKE_NSSDB}" | 36 mkdir -m 0755 -p "${ROOT_FS_DIR}/${FAKE_NSSDB}" |
| 37 sudo chroot "${ROOT_FS_DIR}" "/tmp/${QEMU}" \ | 37 sudo chroot "${ROOT_FS_DIR}" ${QEMU} \ |
| 38 /usr/local/bin/nsscertutil -d sql:"${FAKE_NSSDB}" -N -f <(echo "") | 38 /usr/local/bin/nsscertutil -d sql:"${FAKE_NSSDB}" -N -f <(echo "") |
| 39 cp "${ROOT_FS_DIR}/${TMP_KEY}" "${ROOT_FS_DIR}/${FAKE_CA_DIR}/${CERT_NAME}.key" | 39 cp "${ROOT_FS_DIR}/${TMP_KEY}" "${ROOT_FS_DIR}/${FAKE_CA_DIR}/${CERT_NAME}.key" |
| 40 cp "${ROOT_FS_DIR}/${TMP_CERT}" "${ROOT_FS_DIR}/${FAKE_CA_DIR}/${CERT_NAME}.pem" | 40 cp "${ROOT_FS_DIR}/${TMP_CERT}" "${ROOT_FS_DIR}/${FAKE_CA_DIR}/${CERT_NAME}.pem" |
| 41 echo "DO NOT MOVE THIS DATA OFF OF THE ROOTFS!" > "${ROOT_FS_DIR}/${FAKE_CA_DIR}
/README" | 41 echo "DO NOT MOVE THIS DATA OFF OF THE ROOTFS!" > "${ROOT_FS_DIR}/${FAKE_CA_DIR}
/README" |
| 42 sudo chroot "${ROOT_FS_DIR}" "/tmp/${QEMU}" \ | 42 sudo chroot "${ROOT_FS_DIR}" ${QEMU} \ |
| 43 /usr/local/bin/nsscertutil -d sql:"${FAKE_NSSDB}" -A \ | 43 /usr/local/bin/nsscertutil -d sql:"${FAKE_NSSDB}" -A \ |
| 44 -n FakeCert -t "C,," -a -i "${FAKE_CA_DIR}/${CERT_NAME}.pem" | 44 -n FakeCert -t "C,," -a -i "${FAKE_CA_DIR}/${CERT_NAME}.pem" |
| 45 chmod 0644 "${ROOT_FS_DIR}/${FAKE_NSSDB}"/* | 45 chmod 0644 "${ROOT_FS_DIR}/${FAKE_NSSDB}"/* |
| 46 | 46 |
| 47 # TODO(cmasone): get rid of this once we're off pam_google for good. | 47 # TODO(cmasone): get rid of this once we're off pam_google for good. |
| 48 # Sadly, our fake cert HAS to be first in this file. | 48 # Sadly, our fake cert HAS to be first in this file. |
| 49 TMPFILE=$(mktemp) | 49 TMPFILE=$(mktemp) |
| 50 CERT_FILE="${ROOT_FS_DIR}/etc/login_trust_root.pem" | 50 CERT_FILE="${ROOT_FS_DIR}/etc/login_trust_root.pem" |
| 51 PERMS=$(stat --printf="%a" "${CERT_FILE}") | 51 PERMS=$(stat --printf="%a" "${CERT_FILE}") |
| 52 cat "${ROOT_FS_DIR}/${TMP_CERT}" "${CERT_FILE}" > "${TMPFILE}" | 52 cat "${ROOT_FS_DIR}/${TMP_CERT}" "${CERT_FILE}" > "${TMPFILE}" |
| 53 mv -f "${TMPFILE}" "${CERT_FILE}" | 53 mv -f "${TMPFILE}" "${CERT_FILE}" |
| 54 chmod "${PERMS}" "${CERT_FILE}" | 54 chmod "${PERMS}" "${CERT_FILE}" |
| 55 | 55 |
| 56 rm "${ROOT_FS_DIR}/tmp/${QEMU}" | 56 if [ -n "${QEMU}" ] ; then |
| 57 rm "${ROOT_FS_DIR}/${QEMU}" |
| 58 fi |
| 57 rm "${ROOT_FS_DIR}/${TMP_KEY}" | 59 rm "${ROOT_FS_DIR}/${TMP_KEY}" |
| 58 rm "${ROOT_FS_DIR}/${TMP_CERT}" | 60 rm "${ROOT_FS_DIR}/${TMP_CERT}" |
| OLD | NEW |