Loading api/current.txt +31 −31 Original line number Diff line number Diff line Loading @@ -21128,37 +21128,6 @@ package android.sax { package android.security { public final class AndroidKeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec { method public android.content.Context getContext(); method public java.util.Date getEndDate(); method public java.lang.String getKeystoreAlias(); method public java.math.BigInteger getSerialNumber(); method public java.util.Date getStartDate(); method public javax.security.auth.x500.X500Principal getSubjectDN(); method public boolean isEncryptionRequired(); } public static final class AndroidKeyPairGeneratorSpec.Builder { ctor public AndroidKeyPairGeneratorSpec.Builder(android.content.Context); method public android.security.AndroidKeyPairGeneratorSpec build(); method public android.security.AndroidKeyPairGeneratorSpec.Builder setAlias(java.lang.String); method public android.security.AndroidKeyPairGeneratorSpec.Builder setEncryptionRequired(); method public android.security.AndroidKeyPairGeneratorSpec.Builder setEndDate(java.util.Date); method public android.security.AndroidKeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger); method public android.security.AndroidKeyPairGeneratorSpec.Builder setStartDate(java.util.Date); method public android.security.AndroidKeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal); } public final class AndroidKeyStoreParameter implements java.security.KeyStore.ProtectionParameter { method public boolean isEncryptionRequired(); } public static final class AndroidKeyStoreParameter.Builder { ctor public AndroidKeyStoreParameter.Builder(android.content.Context); method public android.security.AndroidKeyStoreParameter build(); method public android.security.AndroidKeyStoreParameter.Builder setEncryptionRequired(); } public final class KeyChain { ctor public KeyChain(); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String); Loading @@ -21184,6 +21153,37 @@ package android.security { ctor public KeyChainException(java.lang.Throwable); } public final class KeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec { method public android.content.Context getContext(); method public java.util.Date getEndDate(); method public java.lang.String getKeystoreAlias(); method public java.math.BigInteger getSerialNumber(); method public java.util.Date getStartDate(); method public javax.security.auth.x500.X500Principal getSubjectDN(); method public boolean isEncryptionRequired(); } public static final class KeyPairGeneratorSpec.Builder { ctor public KeyPairGeneratorSpec.Builder(android.content.Context); method public android.security.KeyPairGeneratorSpec build(); method public android.security.KeyPairGeneratorSpec.Builder setAlias(java.lang.String); method public android.security.KeyPairGeneratorSpec.Builder setEncryptionRequired(); method public android.security.KeyPairGeneratorSpec.Builder setEndDate(java.util.Date); method public android.security.KeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger); method public android.security.KeyPairGeneratorSpec.Builder setStartDate(java.util.Date); method public android.security.KeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal); } public final class KeyStoreParameter implements java.security.KeyStore.ProtectionParameter { method public boolean isEncryptionRequired(); } public static final class KeyStoreParameter.Builder { ctor public KeyStoreParameter.Builder(android.content.Context); method public android.security.KeyStoreParameter build(); method public android.security.KeyStoreParameter.Builder setEncryptionRequired(boolean); } } package android.service.dreams { keystore/java/android/security/AndroidKeyPairGenerator.java +7 −7 Original line number Diff line number Diff line Loading @@ -52,12 +52,12 @@ import java.security.spec.X509EncodedKeySpec; public class AndroidKeyPairGenerator extends KeyPairGeneratorSpi { private android.security.KeyStore mKeyStore; private AndroidKeyPairGeneratorSpec mSpec; private KeyPairGeneratorSpec mSpec; /** * Generate a KeyPair which is backed by the Android keystore service. You * must call {@link KeyPairGenerator#initialize(AlgorithmParameterSpec)} * with an {@link AndroidKeyPairGeneratorSpec} as the {@code params} * with an {@link KeyPairGeneratorSpec} as the {@code params} * argument before calling this otherwise an {@code IllegalStateException} * will be thrown. * <p> Loading @@ -73,7 +73,7 @@ public class AndroidKeyPairGenerator extends KeyPairGeneratorSpi { public KeyPair generateKeyPair() { if (mKeyStore == null || mSpec == null) { throw new IllegalStateException( "Must call initialize with an AndroidKeyPairGeneratorSpec first"); "Must call initialize with an android.security.KeyPairGeneratorSpec first"); } if (((mSpec.getFlags() & KeyStore.FLAG_ENCRYPTED) != 0) Loading Loading @@ -156,13 +156,13 @@ public class AndroidKeyPairGenerator extends KeyPairGeneratorSpi { throws InvalidAlgorithmParameterException { if (params == null) { throw new InvalidAlgorithmParameterException( "must supply params of type AndroidKeyPairGenericSpec"); } else if (!(params instanceof AndroidKeyPairGeneratorSpec)) { "must supply params of type android.security.KeyPairGeneratorSpec"); } else if (!(params instanceof KeyPairGeneratorSpec)) { throw new InvalidAlgorithmParameterException( "params must be of type AndroidKeyPairGeneratorSpec"); "params must be of type android.security.KeyPairGeneratorSpec"); } AndroidKeyPairGeneratorSpec spec = (AndroidKeyPairGeneratorSpec) params; KeyPairGeneratorSpec spec = (KeyPairGeneratorSpec) params; mSpec = spec; mKeyStore = android.security.KeyStore.getInstance(); Loading keystore/java/android/security/AndroidKeyStore.java +5 −4 Original line number Diff line number Diff line Loading @@ -209,7 +209,7 @@ public class AndroidKeyStore extends KeyStoreSpi { } private void setPrivateKeyEntry(String alias, PrivateKey key, Certificate[] chain, AndroidKeyStoreParameter params) throws KeyStoreException { KeyStoreParameter params) throws KeyStoreException { byte[] keyBytes = null; final String pkeyAlias; Loading Loading @@ -544,15 +544,16 @@ public class AndroidKeyStore extends KeyStoreSpi { return; } if (param != null && !(param instanceof AndroidKeyStoreParameter)) { throw new KeyStoreException("protParam should be AndroidKeyStoreParameter; was: " if (param != null && !(param instanceof KeyStoreParameter)) { throw new KeyStoreException( "protParam should be android.security.KeyStoreParameter; was: " + param.getClass().getName()); } if (entry instanceof PrivateKeyEntry) { PrivateKeyEntry prE = (PrivateKeyEntry) entry; setPrivateKeyEntry(alias, prE.getPrivateKey(), prE.getCertificateChain(), (AndroidKeyStoreParameter) param); (KeyStoreParameter) param); return; } Loading keystore/java/android/security/AndroidKeyStoreProvider.java +2 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import java.security.Provider; * @hide */ public class AndroidKeyStoreProvider extends Provider { public static final String PROVIDER_NAME = "AndroidKeyStoreProvider"; public static final String PROVIDER_NAME = "AndroidKeyStore"; public AndroidKeyStoreProvider() { super(PROVIDER_NAME, 1.0, "Android KeyStore security provider"); Loading @@ -33,6 +33,6 @@ public class AndroidKeyStoreProvider extends Provider { put("KeyStore." + AndroidKeyStore.NAME, AndroidKeyStore.class.getName()); // java.security.KeyPairGenerator put("KeyPairGenerator." + AndroidKeyStore.NAME, AndroidKeyPairGenerator.class.getName()); put("KeyPairGenerator.RSA", AndroidKeyPairGenerator.class.getName()); } } keystore/java/android/security/AndroidKeyPairGeneratorSpec.java→keystore/java/android/security/KeyPairGeneratorSpec.java +15 −19 Original line number Diff line number Diff line Loading @@ -29,9 +29,9 @@ import javax.security.auth.x500.X500Principal; /** * This provides the required parameters needed for initializing the * {@code KeyPairGenerator} that works with <a href="{@docRoot} * guide/topics/security/keystore.html">Android KeyStore facility</a>. The * Android KeyStore facility is accessed through a * {@code KeyPairGenerator} that works with * <a href="{@docRoot}guide/topics/security/keystore.html">Android KeyStore * facility</a>. The Android KeyStore facility is accessed through a * {@link java.security.KeyPairGenerator} API using the {@code AndroidKeyStore} * provider. The {@code context} passed in may be used to pop up some UI to ask * the user to unlock or initialize the Android KeyStore facility. Loading @@ -49,7 +49,7 @@ import javax.security.auth.x500.X500Principal; * The self-signed X.509 certificate may be replaced at a later time by a * certificate signed by a real Certificate Authority. */ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec { public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec { private final String mKeystoreAlias; private final Context mContext; Loading Loading @@ -91,9 +91,9 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec * period * @throws IllegalArgumentException when any argument is {@code null} or * {@code endDate} is before {@code startDate}. * @hide should be built with AndroidKeyPairGeneratorSpecBuilder * @hide should be built with KeyPairGeneratorSpecBuilder */ public AndroidKeyPairGeneratorSpec(Context context, String keyStoreAlias, public KeyPairGeneratorSpec(Context context, String keyStoreAlias, X500Principal subjectDN, BigInteger serialNumber, Date startDate, Date endDate, int flags) { if (context == null) { Loading Loading @@ -184,7 +184,7 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec } /** * Builder class for {@link AndroidKeyPairGeneratorSpec} objects. * Builder class for {@link KeyPairGeneratorSpec} objects. * <p> * This will build a parameter spec for use with the <a href="{@docRoot} * guide/topics/security/keystore.html">Android KeyStore facility</a>. Loading @@ -198,14 +198,10 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec * Calendar end = new Calendar(); * end.add(1, Calendar.YEAR); * * AndroidKeyPairGeneratorSpec spec = * new AndroidKeyPairGeneratorSpec.Builder(mContext) * .setAlias("myKey") * .setSubject(new X500Principal("CN=myKey")) * .setSerial(BigInteger.valueOf(1337)) * .setStartDate(start.getTime()) * .setEndDate(end.getTime()) * .build(); * KeyPairGeneratorSpec spec = * new KeyPairGeneratorSpec.Builder(mContext).setAlias("myKey") * .setSubject(new X500Principal("CN=myKey")).setSerial(BigInteger.valueOf(1337)) * .setStartDate(start.getTime()).setEndDate(end.getTime()).build(); * </pre> */ public final static class Builder { Loading Loading @@ -309,13 +305,13 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec } /** * Builds the instance of the {@code AndroidKeyPairGeneratorSpec}. * Builds the instance of the {@code KeyPairGeneratorSpec}. * * @throws IllegalArgumentException if a required field is missing * @return built instance of {@code AndroidKeyPairGeneratorSpec} * @return built instance of {@code KeyPairGeneratorSpec} */ public AndroidKeyPairGeneratorSpec build() { return new AndroidKeyPairGeneratorSpec(mContext, mKeystoreAlias, mSubjectDN, public KeyPairGeneratorSpec build() { return new KeyPairGeneratorSpec(mContext, mKeystoreAlias, mSubjectDN, mSerialNumber, mStartDate, mEndDate, mFlags); } } Loading Loading
api/current.txt +31 −31 Original line number Diff line number Diff line Loading @@ -21128,37 +21128,6 @@ package android.sax { package android.security { public final class AndroidKeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec { method public android.content.Context getContext(); method public java.util.Date getEndDate(); method public java.lang.String getKeystoreAlias(); method public java.math.BigInteger getSerialNumber(); method public java.util.Date getStartDate(); method public javax.security.auth.x500.X500Principal getSubjectDN(); method public boolean isEncryptionRequired(); } public static final class AndroidKeyPairGeneratorSpec.Builder { ctor public AndroidKeyPairGeneratorSpec.Builder(android.content.Context); method public android.security.AndroidKeyPairGeneratorSpec build(); method public android.security.AndroidKeyPairGeneratorSpec.Builder setAlias(java.lang.String); method public android.security.AndroidKeyPairGeneratorSpec.Builder setEncryptionRequired(); method public android.security.AndroidKeyPairGeneratorSpec.Builder setEndDate(java.util.Date); method public android.security.AndroidKeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger); method public android.security.AndroidKeyPairGeneratorSpec.Builder setStartDate(java.util.Date); method public android.security.AndroidKeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal); } public final class AndroidKeyStoreParameter implements java.security.KeyStore.ProtectionParameter { method public boolean isEncryptionRequired(); } public static final class AndroidKeyStoreParameter.Builder { ctor public AndroidKeyStoreParameter.Builder(android.content.Context); method public android.security.AndroidKeyStoreParameter build(); method public android.security.AndroidKeyStoreParameter.Builder setEncryptionRequired(); } public final class KeyChain { ctor public KeyChain(); method public static void choosePrivateKeyAlias(android.app.Activity, android.security.KeyChainAliasCallback, java.lang.String[], java.security.Principal[], java.lang.String, int, java.lang.String); Loading @@ -21184,6 +21153,37 @@ package android.security { ctor public KeyChainException(java.lang.Throwable); } public final class KeyPairGeneratorSpec implements java.security.spec.AlgorithmParameterSpec { method public android.content.Context getContext(); method public java.util.Date getEndDate(); method public java.lang.String getKeystoreAlias(); method public java.math.BigInteger getSerialNumber(); method public java.util.Date getStartDate(); method public javax.security.auth.x500.X500Principal getSubjectDN(); method public boolean isEncryptionRequired(); } public static final class KeyPairGeneratorSpec.Builder { ctor public KeyPairGeneratorSpec.Builder(android.content.Context); method public android.security.KeyPairGeneratorSpec build(); method public android.security.KeyPairGeneratorSpec.Builder setAlias(java.lang.String); method public android.security.KeyPairGeneratorSpec.Builder setEncryptionRequired(); method public android.security.KeyPairGeneratorSpec.Builder setEndDate(java.util.Date); method public android.security.KeyPairGeneratorSpec.Builder setSerialNumber(java.math.BigInteger); method public android.security.KeyPairGeneratorSpec.Builder setStartDate(java.util.Date); method public android.security.KeyPairGeneratorSpec.Builder setSubject(javax.security.auth.x500.X500Principal); } public final class KeyStoreParameter implements java.security.KeyStore.ProtectionParameter { method public boolean isEncryptionRequired(); } public static final class KeyStoreParameter.Builder { ctor public KeyStoreParameter.Builder(android.content.Context); method public android.security.KeyStoreParameter build(); method public android.security.KeyStoreParameter.Builder setEncryptionRequired(boolean); } } package android.service.dreams {
keystore/java/android/security/AndroidKeyPairGenerator.java +7 −7 Original line number Diff line number Diff line Loading @@ -52,12 +52,12 @@ import java.security.spec.X509EncodedKeySpec; public class AndroidKeyPairGenerator extends KeyPairGeneratorSpi { private android.security.KeyStore mKeyStore; private AndroidKeyPairGeneratorSpec mSpec; private KeyPairGeneratorSpec mSpec; /** * Generate a KeyPair which is backed by the Android keystore service. You * must call {@link KeyPairGenerator#initialize(AlgorithmParameterSpec)} * with an {@link AndroidKeyPairGeneratorSpec} as the {@code params} * with an {@link KeyPairGeneratorSpec} as the {@code params} * argument before calling this otherwise an {@code IllegalStateException} * will be thrown. * <p> Loading @@ -73,7 +73,7 @@ public class AndroidKeyPairGenerator extends KeyPairGeneratorSpi { public KeyPair generateKeyPair() { if (mKeyStore == null || mSpec == null) { throw new IllegalStateException( "Must call initialize with an AndroidKeyPairGeneratorSpec first"); "Must call initialize with an android.security.KeyPairGeneratorSpec first"); } if (((mSpec.getFlags() & KeyStore.FLAG_ENCRYPTED) != 0) Loading Loading @@ -156,13 +156,13 @@ public class AndroidKeyPairGenerator extends KeyPairGeneratorSpi { throws InvalidAlgorithmParameterException { if (params == null) { throw new InvalidAlgorithmParameterException( "must supply params of type AndroidKeyPairGenericSpec"); } else if (!(params instanceof AndroidKeyPairGeneratorSpec)) { "must supply params of type android.security.KeyPairGeneratorSpec"); } else if (!(params instanceof KeyPairGeneratorSpec)) { throw new InvalidAlgorithmParameterException( "params must be of type AndroidKeyPairGeneratorSpec"); "params must be of type android.security.KeyPairGeneratorSpec"); } AndroidKeyPairGeneratorSpec spec = (AndroidKeyPairGeneratorSpec) params; KeyPairGeneratorSpec spec = (KeyPairGeneratorSpec) params; mSpec = spec; mKeyStore = android.security.KeyStore.getInstance(); Loading
keystore/java/android/security/AndroidKeyStore.java +5 −4 Original line number Diff line number Diff line Loading @@ -209,7 +209,7 @@ public class AndroidKeyStore extends KeyStoreSpi { } private void setPrivateKeyEntry(String alias, PrivateKey key, Certificate[] chain, AndroidKeyStoreParameter params) throws KeyStoreException { KeyStoreParameter params) throws KeyStoreException { byte[] keyBytes = null; final String pkeyAlias; Loading Loading @@ -544,15 +544,16 @@ public class AndroidKeyStore extends KeyStoreSpi { return; } if (param != null && !(param instanceof AndroidKeyStoreParameter)) { throw new KeyStoreException("protParam should be AndroidKeyStoreParameter; was: " if (param != null && !(param instanceof KeyStoreParameter)) { throw new KeyStoreException( "protParam should be android.security.KeyStoreParameter; was: " + param.getClass().getName()); } if (entry instanceof PrivateKeyEntry) { PrivateKeyEntry prE = (PrivateKeyEntry) entry; setPrivateKeyEntry(alias, prE.getPrivateKey(), prE.getCertificateChain(), (AndroidKeyStoreParameter) param); (KeyStoreParameter) param); return; } Loading
keystore/java/android/security/AndroidKeyStoreProvider.java +2 −2 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ import java.security.Provider; * @hide */ public class AndroidKeyStoreProvider extends Provider { public static final String PROVIDER_NAME = "AndroidKeyStoreProvider"; public static final String PROVIDER_NAME = "AndroidKeyStore"; public AndroidKeyStoreProvider() { super(PROVIDER_NAME, 1.0, "Android KeyStore security provider"); Loading @@ -33,6 +33,6 @@ public class AndroidKeyStoreProvider extends Provider { put("KeyStore." + AndroidKeyStore.NAME, AndroidKeyStore.class.getName()); // java.security.KeyPairGenerator put("KeyPairGenerator." + AndroidKeyStore.NAME, AndroidKeyPairGenerator.class.getName()); put("KeyPairGenerator.RSA", AndroidKeyPairGenerator.class.getName()); } }
keystore/java/android/security/AndroidKeyPairGeneratorSpec.java→keystore/java/android/security/KeyPairGeneratorSpec.java +15 −19 Original line number Diff line number Diff line Loading @@ -29,9 +29,9 @@ import javax.security.auth.x500.X500Principal; /** * This provides the required parameters needed for initializing the * {@code KeyPairGenerator} that works with <a href="{@docRoot} * guide/topics/security/keystore.html">Android KeyStore facility</a>. The * Android KeyStore facility is accessed through a * {@code KeyPairGenerator} that works with * <a href="{@docRoot}guide/topics/security/keystore.html">Android KeyStore * facility</a>. The Android KeyStore facility is accessed through a * {@link java.security.KeyPairGenerator} API using the {@code AndroidKeyStore} * provider. The {@code context} passed in may be used to pop up some UI to ask * the user to unlock or initialize the Android KeyStore facility. Loading @@ -49,7 +49,7 @@ import javax.security.auth.x500.X500Principal; * The self-signed X.509 certificate may be replaced at a later time by a * certificate signed by a real Certificate Authority. */ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec { public final class KeyPairGeneratorSpec implements AlgorithmParameterSpec { private final String mKeystoreAlias; private final Context mContext; Loading Loading @@ -91,9 +91,9 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec * period * @throws IllegalArgumentException when any argument is {@code null} or * {@code endDate} is before {@code startDate}. * @hide should be built with AndroidKeyPairGeneratorSpecBuilder * @hide should be built with KeyPairGeneratorSpecBuilder */ public AndroidKeyPairGeneratorSpec(Context context, String keyStoreAlias, public KeyPairGeneratorSpec(Context context, String keyStoreAlias, X500Principal subjectDN, BigInteger serialNumber, Date startDate, Date endDate, int flags) { if (context == null) { Loading Loading @@ -184,7 +184,7 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec } /** * Builder class for {@link AndroidKeyPairGeneratorSpec} objects. * Builder class for {@link KeyPairGeneratorSpec} objects. * <p> * This will build a parameter spec for use with the <a href="{@docRoot} * guide/topics/security/keystore.html">Android KeyStore facility</a>. Loading @@ -198,14 +198,10 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec * Calendar end = new Calendar(); * end.add(1, Calendar.YEAR); * * AndroidKeyPairGeneratorSpec spec = * new AndroidKeyPairGeneratorSpec.Builder(mContext) * .setAlias("myKey") * .setSubject(new X500Principal("CN=myKey")) * .setSerial(BigInteger.valueOf(1337)) * .setStartDate(start.getTime()) * .setEndDate(end.getTime()) * .build(); * KeyPairGeneratorSpec spec = * new KeyPairGeneratorSpec.Builder(mContext).setAlias("myKey") * .setSubject(new X500Principal("CN=myKey")).setSerial(BigInteger.valueOf(1337)) * .setStartDate(start.getTime()).setEndDate(end.getTime()).build(); * </pre> */ public final static class Builder { Loading Loading @@ -309,13 +305,13 @@ public final class AndroidKeyPairGeneratorSpec implements AlgorithmParameterSpec } /** * Builds the instance of the {@code AndroidKeyPairGeneratorSpec}. * Builds the instance of the {@code KeyPairGeneratorSpec}. * * @throws IllegalArgumentException if a required field is missing * @return built instance of {@code AndroidKeyPairGeneratorSpec} * @return built instance of {@code KeyPairGeneratorSpec} */ public AndroidKeyPairGeneratorSpec build() { return new AndroidKeyPairGeneratorSpec(mContext, mKeystoreAlias, mSubjectDN, public KeyPairGeneratorSpec build() { return new KeyPairGeneratorSpec(mContext, mKeystoreAlias, mSubjectDN, mSerialNumber, mStartDate, mEndDate, mFlags); } } Loading