summaryrefslogtreecommitdiffstats
path: root/keystore/java/android/security/KeyChainResult.java
diff options
context:
space:
mode:
Diffstat (limited to 'keystore/java/android/security/KeyChainResult.java')
-rw-r--r--keystore/java/android/security/KeyChainResult.java72
1 files changed, 72 insertions, 0 deletions
diff --git a/keystore/java/android/security/KeyChainResult.java b/keystore/java/android/security/KeyChainResult.java
new file mode 100644
index 0000000..85a2921
--- /dev/null
+++ b/keystore/java/android/security/KeyChainResult.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (C) 2011 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;
+
+import android.content.Intent;
+import java.security.PrivateKey;
+import java.security.cert.X509Certificate;
+
+/**
+ * The KeyChainResult is the complex result value from {@link
+ * KeyChain#get}. The caller should first inspect {@link #getIntent}
+ * to determine if the user needs to grant the application access to
+ * the protected contents. If {@code getIntent} returns null, access
+ * has been granted and the methods {@link #getPrivateKey} and {@link
+ * #getCertificate} can be used to access the credentials.
+ *
+ * @hide
+ */
+public final class KeyChainResult {
+
+ private final Intent intent;
+ private final PrivateKey privateKey;
+ private final X509Certificate certificate;
+
+ KeyChainResult(Intent intent) {
+ this(intent, null, null);
+ }
+
+ KeyChainResult(PrivateKey privateKey, X509Certificate certificate) {
+ this(null, privateKey, certificate);
+ }
+
+ private KeyChainResult(Intent intent, PrivateKey privateKey, X509Certificate certificate) {
+ this.intent = intent;
+ this.privateKey = privateKey;
+ this.certificate = certificate;
+ }
+
+ public Intent getIntent() {
+ return intent;
+ }
+
+ public PrivateKey getPrivateKey() {
+ checkIntent();
+ return privateKey;
+ }
+
+ public X509Certificate getCertificate() {
+ checkIntent();
+ return certificate;
+ }
+
+ private void checkIntent() {
+ if (intent != null) {
+ throw new IllegalStateException("non-null Intent, check getIntent()");
+ }
+ }
+
+}