| Index: chrome/test/data/extensions/unpacker/bad_path/bad_path.sh
|
| diff --git a/chrome/test/data/extensions/unpacker/bad_path/bad_path.sh b/chrome/test/data/extensions/unpacker/bad_path/bad_path.sh
|
| new file mode 100755
|
| index 0000000000000000000000000000000000000000..96371cbb29504d01076e7ce1cc17393f61633236
|
| --- /dev/null
|
| +++ b/chrome/test/data/extensions/unpacker/bad_path/bad_path.sh
|
| @@ -0,0 +1,39 @@
|
| +#!/bin/bash -e
|
| +
|
| +## Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +# Purpose: Create a Chromium crx even if paths are invalid.
|
| +if test $# -ne 2; then
|
| + echo "Usage: bad_path.sh <extension dir> <pem path>"
|
| + exit 1
|
| +fi
|
| +dir=$1
|
| +key=$2
|
| +name=$(basename "$dir")
|
| +crx="$name.crx"
|
| +pub="$name.pub"
|
| +sig="$name.sig"
|
| +zip="$name.zip"
|
| +trap 'rm -f "$pub" "$sig" "$zip"' EXIT
|
| +# zip up the crx dir
|
| +cwd=$(pwd -P)
|
| +(cd "$dir" && zip -qr -9 -X "$cwd/$zip" .)
|
| +# signature
|
| +openssl sha1 -sha1 -binary -sign "$key" < "$zip" > "$sig"
|
| +# public key
|
| +openssl rsa -pubout -outform DER < "$key" > "$pub" 2>/dev/null
|
| +byte_swap () {
|
| + # Take "abcdefgh" and return it as "ghefcdab"
|
| + echo "${1:6:2}${1:4:2}${1:2:2}${1:0:2}"
|
| +}
|
| +crmagic_hex="4372 3234" # Cr24
|
| +version_hex="0200 0000" # 2
|
| +pub_len_hex=$(byte_swap $(printf '%08x\n' $(ls -l "$pub" | awk '{print $5}')))
|
| +sig_len_hex=$(byte_swap $(printf '%08x\n' $(ls -l "$sig" | awk '{print $5}')))
|
| +(
|
| + echo "$crmagic_hex $version_hex $pub_len_hex $sig_len_hex" | xxd -r -p
|
| + cat "$pub" "$sig" "$zip"
|
| +) > "$crx"
|
| +echo "Wrote $crx with possibly invalid path"
|
|
|