OLD | NEW |
1 #!/bin/bash -p | 1 #!/bin/bash -p |
2 | 2 |
3 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2012 The Chromium 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 # Using codesign, sign the application. After signing, the signatures on the | 7 # Using codesign, sign the application. After signing, the signatures on the |
8 # inner bundle components are verified, and the application's own signature is | 8 # inner bundle components are verified, and the application's own signature is |
9 # verified. Inner bundle components are expected to be signed before this | 9 # verified. Inner bundle components are expected to be signed before this |
10 # script is called. See sign_versioned_dir.sh. | 10 # script is called. See sign_versioned_dir.sh. |
(...skipping 23 matching lines...) Expand all Loading... |
34 codesign_id="${3}" | 34 codesign_id="${3}" |
35 | 35 |
36 # Use custom resource rules for the browser application. | 36 # Use custom resource rules for the browser application. |
37 script_dir="$(dirname "${0}")" | 37 script_dir="$(dirname "${0}")" |
38 browser_app_rules="${script_dir}/app_resource_rules.plist" | 38 browser_app_rules="${script_dir}/app_resource_rules.plist" |
39 | 39 |
40 versioned_dir="${app_path}/Contents/Versions/@VERSION@" | 40 versioned_dir="${app_path}/Contents/Versions/@VERSION@" |
41 | 41 |
42 browser_app="${app_path}" | 42 browser_app="${app_path}" |
43 framework="${versioned_dir}/@MAC_PRODUCT_NAME@ Framework.framework" | 43 framework="${versioned_dir}/@MAC_PRODUCT_NAME@ Framework.framework" |
| 44 crashpad_handler="${framework}/Helpers/crashpad_handler" |
44 helper_app="${versioned_dir}/@MAC_PRODUCT_NAME@ Helper.app" | 45 helper_app="${versioned_dir}/@MAC_PRODUCT_NAME@ Helper.app" |
45 helper_eh_app="${versioned_dir}/@MAC_PRODUCT_NAME@ Helper EH.app" | 46 helper_eh_app="${versioned_dir}/@MAC_PRODUCT_NAME@ Helper EH.app" |
46 helper_np_app="${versioned_dir}/@MAC_PRODUCT_NAME@ Helper NP.app" | 47 helper_np_app="${versioned_dir}/@MAC_PRODUCT_NAME@ Helper NP.app" |
47 | 48 |
48 requirement_string="\ | 49 requirement_string="\ |
49 designated => \ | 50 designated => \ |
50 (identifier \"com.google.Chrome\" or identifier \"com.google.Chrome.canary\") \ | 51 (identifier \"com.google.Chrome\" or identifier \"com.google.Chrome.canary\") \ |
51 and certificate leaf = H\"85cee8254216185620ddc8851c7a9fc4dfe120ef\"\ | 52 and certificate leaf = H\"85cee8254216185620ddc8851c7a9fc4dfe120ef\"\ |
52 " | 53 " |
53 | 54 |
54 codesign --sign "${codesign_id}" --keychain "${codesign_keychain}" \ | 55 codesign --sign "${codesign_id}" --keychain "${codesign_keychain}" \ |
55 "${browser_app}" --resource-rules "${browser_app_rules}" \ | 56 "${browser_app}" --resource-rules "${browser_app_rules}" \ |
56 -r="${requirement_string}" | 57 -r="${requirement_string}" |
57 | 58 |
58 # Show the signature. | 59 # Show the signature. |
59 codesign --display -r- -vvvvvv "${browser_app}" | 60 codesign --display -r- -vvvvvv "${browser_app}" |
60 | 61 |
61 # Verify everything. Check the framework and helper apps to make sure that the | 62 # Verify everything. Check the framework and helper apps to make sure that the |
62 # signatures are present and weren't altered by the signing process. Don't use | 63 # signatures are present and weren't altered by the signing process. Don't use |
63 # --deep on the framework because Keystone's signature is in a transitional | 64 # --deep on the framework because Keystone's signature is in a transitional |
64 # state (radar 18474911). Use --no-strict on the app because it uses custom | 65 # state (radar 18474911). Use --no-strict on the app because it uses custom |
65 # resource rules. | 66 # resource rules. |
| 67 codesign --verify --deep -vvvvvv "${crashpad_handler}" |
66 codesign --verify -vvvvvv "${framework}" | 68 codesign --verify -vvvvvv "${framework}" |
67 codesign --verify --deep -vvvvvv "${helper_app}" | 69 codesign --verify --deep -vvvvvv "${helper_app}" |
68 codesign --verify --deep -vvvvvv "${helper_eh_app}" | 70 codesign --verify --deep -vvvvvv "${helper_eh_app}" |
69 codesign --verify --deep -vvvvvv "${helper_np_app}" | 71 codesign --verify --deep -vvvvvv "${helper_np_app}" |
70 codesign --verify --deep --no-strict -vvvvvv "${browser_app}" | 72 codesign --verify --deep --no-strict -vvvvvv "${browser_app}" |
71 | 73 |
72 # Verify with spctl, which uses the same rules that Gatekeeper does for | 74 # Verify with spctl, which uses the same rules that Gatekeeper does for |
73 # validation. | 75 # validation. |
74 spctl --assess -vv "${browser_app}" | 76 spctl --assess -vv "${browser_app}" |
OLD | NEW |