blob: ac8ea15c6e0bafda471d77be2fbaaaf84eaa1c3d [file] [log] [blame]
/*
* Copyright (C) 2022 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package android.security.cts.CVE_2021_0963;
import android.app.Activity;
import android.os.Bundle;
import android.os.RemoteCallback;
import android.security.KeyChain;
import android.security.KeyChainAliasCallback;
import androidx.annotation.Nullable;
public class PocActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
KeyChainAliasCallback callback = new KeyChainAliasCallback() {
@Override
public void alias(@Nullable String alias) {}
};
KeyChain.choosePrivateKeyAlias(this, callback, null, null, null, -1, null);
sendTestResult(getResources().getInteger(R.integer.noException), "");
} catch (Exception e) {
sendTestResult(getResources().getInteger(R.integer.assumptionFailure), e.getMessage());
}
}
void sendTestResult(int status, String message) {
try {
RemoteCallback cb =
(RemoteCallback) getIntent().getExtras().get(getString(R.string.callbackKey));
Bundle res = new Bundle();
res.putString(getString(R.string.messageKey), message);
res.putInt(getString(R.string.statusKey), status);
cb.sendResult(res);
} catch (Exception e) {
// ignore all exceptions
}
}
}