diff --git a/docs/html/training/articles/keystore.jd b/docs/html/training/articles/keystore.jd
index 52cb13eb5a03d..aa1ed0acb3a7e 100644
--- a/docs/html/training/articles/keystore.jd
+++ b/docs/html/training/articles/keystore.jd
@@ -7,14 +7,15 @@ page.title=Android Keystore System
- Security Features
- Choosing Between a Keychain or the Android Keystore Provider
- - Using Android Keystore Provider
-
+ - Using Android Keystore Provider
- Generating a New Private Key
- Working with Keystore Entries
- Listing Entries
- Signing and Verifying Data
+
+ - Supported Algorithms
Blog articles
@@ -27,6 +28,14 @@ page.title=Android Keystore System
+
+
The Android Keystore system lets you store cryptographic keys in a container
to make it more difficult to extract from the device. Once keys are in the
keystore, they can be used for cryptographic operations with the key material
@@ -213,4 +222,456 @@ operate in one of the two modes:
{@link android.hardware.fingerprint.FingerprintManager#hasEnrolledFingerprints() FingerprintManager.hasEnrolledFingerprints}).
These keys become permanently invalidated once a new fingerprint is enrolled or all fingerprints
are unenrolled.
-
\ No newline at end of file
+
+
+
Supported Algorithms
+
+
+
+Cipher
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | AES/CBC/NoPadding |
+ 23+ |
+ |
+
+
+ | AES/CBC/PKCS7Padding |
+ 23+ |
+ |
+
+
+ | AES/CTR/NoPadding |
+ 23+ |
+ |
+
+
+ | AES/ECB/NoPadding |
+ 23+ |
+ |
+
+
+ | AES/ECB/PKCS7Padding |
+ 23+ |
+ |
+
+
+ | AES/GCM/NoPadding |
+ 23+ |
+ Only 12-byte long IVs supported. |
+
+
+ | RSA/ECB/NoPadding |
+ 18+ |
+ |
+
+
+ | RSA/ECB/PKCS1Padding |
+ 18+ |
+ |
+
+
+ | RSA/ECB/OAEPWithSHA-1AndMGF1Padding |
+ 23+ |
+ |
+
+
+ | RSA/ECB/OAEPWithSHA-224AndMGF1Padding |
+ 23+ |
+ |
+
+
+ | RSA/ECB/OAEPWithSHA-256AndMGF1Padding |
+ 23+ |
+ |
+
+
+ | RSA/ECB/OAEPWithSHA-384AndMGF1Padding |
+ 23+ |
+ |
+
+
+ | RSA/ECB/OAEPWithSHA-512AndMGF1Padding |
+ 23+ |
+ |
+
+
+ | RSA/ECB/OAEPPadding |
+ 23+ |
+ |
+
+
+
+
+KeyGenerator
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | AES |
+ 23+ |
+ Supported sizes: 128, 192, 256 |
+
+
+ | HmacSHA1 |
+ 23+ |
+
+
+ - Supported sizes: 8--1024 (inclusive), must be multiple of 8
+ - Default size: 160
+ |
+
+
+ | HmacSHA224 |
+ 23+ |
+
+
+ - Supported sizes: 8--1024 (inclusive), must be multiple of 8
+ - Default size: 224
+ |
+
+
+ | HmacSHA256 |
+ 23+ |
+
+
+ - Supported sizes: 8--1024 (inclusive), must be multiple of 8
+ - Default size: 256
+ |
+
+
+ | HmacSHA384 |
+ 23+ |
+
+
+ - Supported sizes: 8--1024 (inclusive), must be multiple of 8
+ - Default size: 384
+ |
+
+
+ | HmacSHA512 |
+ 23+ |
+
+
+ - Supported sizes: 8--1024 (inclusive), must be multiple of 8
+ - Default size: 512
+ |
+
+
+
+
+KeyFactory
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | EC |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} (private key only),
+ {@link java.security.spec.ECPublicKeySpec} (public key only),
+ {@link java.security.spec.X509EncodedKeySpec} (public key only)
+ |
+
+
+ | RSA |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} (private key only),
+ {@link java.security.spec.RSAPublicKeySpec} (public key only),
+ {@link java.security.spec.X509EncodedKeySpec} (public key only)
+ |
+
+
+
+
+KeyStore
+KeyStore supports the same key types as
+{@code KeyPairGenerator} and
+{@code KeyGenerator}.
+
+KeyPairGenerator
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | DSA |
+ 19–22 |
+ |
+
+
+ | EC |
+ 23+ |
+
+
+ - Supported sizes: 224, 256, 384, 521
+ - Supported named curves: P-224 (secp256r1), P-256 (aka secp256r1 and prime256v1), P-384
+ (aka secp384r1), P-521 (aka secp521r1)
+
+
+ Prior to API Level 23, EC keys can be generated using KeyPairGenerator of algorithm "RSA"
+ initialized {@link android.security.KeyPairGeneratorSpec} whose key type is set to "EC"
+ using {@link android.security.KeyPairGeneratorSpec.Builder#setKeyType(String)}. EC curve
+ name cannot be specified using this method -- a NIST P-curve is automatically chosen based
+ on the requested key size.
+ |
+
+
+ | RSA |
+ 18+ |
+
+
+ - Supported sizes: 512, 768, 1024, 2048, 3072, 4096
+ - Supported public exponents: 3, 65537
+ - Default public exponent: 65537
+
+ |
+
+
+
+
+Mac
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | HmacSHA1 |
+ 23+ |
+ |
+
+
+ | HmacSHA224 |
+ 23+ |
+ |
+
+
+ | HmacSHA256 |
+ 23+ |
+ |
+
+
+ | HmacSHA384 |
+ 23+ |
+ |
+
+
+ | HmacSHA512 |
+ 23+ |
+ |
+
+
+
+
+Signature
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | MD5withRSA |
+ 18+ |
+ |
+
+
+ | NONEwithECDSA |
+ 23+ |
+ |
+
+
+ | NONEwithRSA |
+ 18+ |
+ |
+
+
+ | SHA1withDSA |
+ 19–22 |
+ |
+
+
+ | SHA1withECDSA |
+ 19+ |
+ |
+
+
+ | SHA1withRSA |
+ 18+ |
+ |
+
+
+ | SHA1withRSA/PSS |
+ 23+ |
+ |
+
+
+ | SHA224withDSA |
+ 20–22 |
+ |
+
+
+ | SHA224withECDSA |
+ 20+ |
+ |
+
+
+ | SHA224withRSA |
+ 20+ |
+ |
+
+
+ | SHA224withRSA/PSS |
+ 23+ |
+ |
+
+
+ | SHA256withDSA |
+ 19–22 |
+ |
+
+
+ | SHA256withECDSA |
+ 19+ |
+ |
+
+
+ | SHA256withRSA |
+ 18+ |
+ |
+
+
+ | SHA256withRSA/PSS |
+ 23+ |
+ |
+
+
+ | SHA384withDSA |
+ 19–22 |
+ |
+
+
+ | SHA384withECDSA |
+ 19+ |
+ |
+
+
+ | SHA384withRSA |
+ 18+ |
+ |
+
+
+ | SHA384withRSA/PSS |
+ 23+ |
+ |
+
+
+ | SHA512withDSA |
+ 19–22 |
+ |
+
+
+ | SHA512withECDSA |
+ 19+ |
+ |
+
+
+ | SHA512withRSA |
+ 18+ |
+ |
+
+
+ | SHA512withRSA/PSS |
+ 23+ |
+ |
+
+
+
+
+SecretKeyFactory
+
+
+
+ | Algorithm |
+ Supported (API Levels) |
+ Notes |
+
+
+
+
+ | AES |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} |
+
+
+ | HmacSHA1 |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} |
+
+
+ | HmacSHA224 |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} |
+
+
+ | HmacSHA256 |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} |
+
+
+ | HmacSHA384 |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} |
+
+
+ | HmacSHA512 |
+ 23+ |
+ Supported key specs: {@link android.security.keystore.KeyInfo} |
+
+
+
\ No newline at end of file