1a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root#!/bin/bash
2a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root#
3a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# Copyright 2011, The Android Open Source Project
4a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root#
5a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# Licensed under the Apache License, Version 2.0 (the "License");
6a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# you may not use this file except in compliance with the License.
7a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# You may obtain a copy of the License at
8a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root#
9a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root#     http://www.apache.org/licenses/LICENSE-2.0
10a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root#
11a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# Unless required by applicable law or agreed to in writing, software
12a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# distributed under the License is distributed on an "AS IS" BASIS,
13a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# See the License for the specific language governing permissions and
15a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root# limitations under the License.
16a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
17a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootset -e
18a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
19a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootprefix=$0
20a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootlog_file=$prefix.log
21a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootbaseline_file=$prefix.baseline
22a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
23a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction cleanup_output() {
24a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    rm -f $log_file
25a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    rm -f $baseline_file
26a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
27a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
28a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction log() {
29a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    echo "$@"
30a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    append $log_file \# "$@"
31a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    append $baseline_file \# "$@"
32a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
33a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
34a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction expect() {
35a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    append $baseline_file "$@"
36a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
37a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
38a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction append() {
39a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    declare -r file=$1
40a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    shift
41a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    echo "$@" >> $file
42a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
43a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
44a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction run() {
45a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # strip out carriage returns from adb
46a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # strip out date/time from ls -l
47a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    "$@" | tr --delete '\r' | sed -E 's/[0-9]{4}-[0-9]{2}-[0-9]{2} +[0-9]{1,2}:[0-9]{2} //' >> $log_file
48a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
49a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
50a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction keystore() {
51a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    declare -r user=$1
52a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    shift
53a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    run adb shell su $user keystore_cli "$@"
54a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
55a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
56a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction list_keystore_directory() {
57a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    run adb shell ls -al /data/misc/keystore
58a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
59a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
60a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction compare() {
61a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "comparing $baseline_file and $log_file"
62a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    diff $baseline_file $log_file || (log $tag FAILED && exit 1)
63a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
64a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
65a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction test_basic() {
66a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
67a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
68a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # reset
69a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
70a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "reset keystore as system user"
71a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system r
72a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
73a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    list_keystore_directory
74a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
75a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
76a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # basic tests as system/root
77a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
78a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "root does not have permission to run test"
79a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore root t
80a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "6 Permission denied"
81a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
82a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "but system user does"
83a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system t
84a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "3 Uninitialized"
85a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    list_keystore_directory
86a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
87a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "password is now bar"
88a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system p bar
89a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
90a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    list_keystore_directory
91a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "-rw------- keystore keystore       84 .masterkey"
92a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
93a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "no error implies initialized and unlocked"
94a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system t
95a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
96a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
97a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "saw with no argument"
98a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system s
99a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "5 Protocol error"
100a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
101a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "saw nothing"
102a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system s ""
103a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
104a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
105a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "add key baz"
106a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system i baz quux
107a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
108a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
109a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "1000 is uid of system"
110a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    list_keystore_directory
111a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "-rw------- keystore keystore       84 .masterkey"
112a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "-rw------- keystore keystore       52 1000_baz"
113a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
114a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "saw baz"
115a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system s ""
116a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
117a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "baz"
118a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
119a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "get baz"
120a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system g baz
121a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
122a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "quux"
123a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
124a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "root can read system user keys (as can wifi or vpn users)"
125a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore root g baz
126a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
127a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "quux"
128a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
129a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
130a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # app user tests
131a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
132a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
133a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # app_0 has uid 10000, as seen below
134a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "other uses cannot see the system keys"
135a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 g baz
136a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "7 Key not found"
137a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
138a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "app user cannot use reset, password, lock, unlock"
139a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 r
140a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "6 Permission denied"
141a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 p
142a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "6 Permission denied"
143a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 l
144a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "6 Permission denied"
145a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 u
146a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "6 Permission denied"
147a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
148a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "install app_0 key"
149a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 i 0x deadbeef
150a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect 1 No error
151a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    list_keystore_directory
152a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "-rw------- keystore keystore       84 .masterkey"
153a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "-rw------- keystore keystore       52 10000_0x"
154a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "-rw------- keystore keystore       52 1000_baz"
155a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
156a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "get with no argument"
157a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 g
158a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "5 Protocol error"
159a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
160a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 g 0x
161a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
162a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "deadbeef"
163a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
164a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 i fred barney
165a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
166a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
167a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 s ""
168a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
169a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "0x"
170a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "fred"
171a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
172a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "note that saw returns the suffix of prefix matches"
173a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 s fr # fred
174a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
175a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "ed" # fred
176a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
177a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
178a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # lock tests
179a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
180a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "lock the store as system"
181a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system l
182a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
183a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system t
184a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "2 Locked"
185a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
186a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "saw works while locked"
187a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 s ""
188a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
189a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "0x"
190a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "fred"
191a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
192a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "...but cannot read keys..."
193a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 g 0x
194a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "2 Locked"
195a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
196a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "...but they can be deleted."
197a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 e 0x
198a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
199a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 d 0x
200a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
201a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore app_0 e 0x
202a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "7 Key not found"
203a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
204a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
205a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # password
206a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
207a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "wrong password"
208a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system u foo
209a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "13 Wrong password (4 tries left)"
210a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "right password"
211a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system u bar
212a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
213a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
214a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "make the password foo"
215a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system p foo
216a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
217a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
218a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
219a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # final reset
220a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    #
221a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "reset wipes everything for all users"
222a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system r
223a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
224a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    list_keystore_directory
225a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
226a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system t
227a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "3 Uninitialized"
228a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
229a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
230a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
231a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction test_4599735() {
232a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    # http://b/4599735
233a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "start regression test for b/4599735"
234a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system r
235a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
236a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
237a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system p foo
238a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
239a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
240a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system i baz quux
241a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
242a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    
243a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore root g baz
244a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
245a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "quux"
246a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
247a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system l
248a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
249a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
250a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system p foo
251a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
252a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
253a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "after unlock, regression led to result of '8 Value corrupted'"
254a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore root g baz
255a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
256a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "quux"
257a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
258a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    keystore system r
259a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    expect "1 No error"
260a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log "end regression test for b/4599735"
261a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
262a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
263a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootfunction main() {
264a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    cleanup_output
265a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log $tag START
266a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    test_basic
267a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    test_4599735
268a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    compare
269a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    log $tag PASSED
270a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root    cleanup_output
271a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root}
272a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Root
273a91203b08350b2fc7efda5b1eab39e7541476b3aKenny Rootmain
274