)]}'
{
  "log": [
    {
      "commit": "1c219f619291ba818bc2542390a2988539d94ed0",
      "tree": "f9b17839a23ca3978cea2251767b4432d1d1f9a6",
      "parents": [
        "a454c5732cacffdda53ae277b1e43d87b43044b1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Apr 18 17:57:03 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Apr 18 18:34:58 2013 -0700"
      },
      "message": "Rename API AndroidKey* -\u003e Key*\n\nBug: 8657552\nChange-Id: Id9102b7c2c2f6d27fba7645f0629750cfe1eb510\n"
    },
    {
      "commit": "b2c0ff64d8ff92dab53e969a44fa12427d145952",
      "tree": "3b3139b4fd331e0ce65d245510d54c15ae3a03ae",
      "parents": [
        "8692685a54f6bf87dadc82fbd5576cdb81ba662b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 12 17:36:25 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 12 18:09:04 2013 -0700"
      },
      "message": "Remove old KeyStore call sites\n\nRemove the call sites that don\u0027t have the flags specified. This is to\nensure that callers know what flags they\u0027re setting.\n\nBug: 8122243\nChange-Id: Ifbd178fddbf8dbd8f7b821ea739a20d056ef9fa7\n"
    },
    {
      "commit": "2eeda7286f3c7cb79f7eb71ae6464cad213d12a3",
      "tree": "cf77426b72b1287ce66c230da7c67d2d5c8cdd8a",
      "parents": [
        "a3788b00bb221e20abdd42f747d2af419e0a088c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Apr 10 11:30:58 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Apr 12 15:19:48 2013 -0700"
      },
      "message": "AndroidKeyStore: Add encrypted flag\n\nAdd the encrypted flag for the KeyPairGenerator and the KeyStore so that\napplications can choose to allow entries when there is no lockscreen.\n\nBug: 8122243\nChange-Id: Ia802afe965f2377ad3f282dab8c512388c705850\n"
    },
    {
      "commit": "acb0b5b220b2cb15f5a800a356bb25f47252a6ea",
      "tree": "f5df06bd61e283f28dec8598115fc290fa3f75b1",
      "parents": [
        "02c86306d2569d18a49da3d9228dacb25b1f8973"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 28 15:05:03 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 28 16:05:46 2013 -0700"
      },
      "message": "AndroidKeyStore: add Builder for param spec\n\nChange-Id: I13403197e1ac7ac607efa10979eb73bde0135a2a\n"
    },
    {
      "commit": "5f1d965f7d7e1df50981ffed8faa11fbcc17ca22",
      "tree": "b4449ba12d8e3da7e8c70edcd2b313f4798cd76c",
      "parents": [
        "e4679750c538e982bb81f4eea2343e8bede3e118"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 21 14:21:50 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Mar 21 14:24:19 2013 -0700"
      },
      "message": "KeyStore: change migrate to duplicate\n\nAfter discussion, it was determined that duplicate would be less\ndisruptive and it still fit in the current HAL model.\n\nChange-Id: I2f9cae48d38ec7146511e876450fa39fc92cda55\n"
    },
    {
      "commit": "bd79419ef84ae31f3765721b50aa413fa462d1d1",
      "tree": "d2eb8242f5a770452d7100d38b6c273aac242134",
      "parents": [
        "78ad849163a7b01073b46fbd7d818392720005d1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 20 11:36:50 2013 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 20 11:57:46 2013 -0700"
      },
      "message": "KeyStore: add \"migrate\" command\n\nTo support the WiFi service, we need to support migration from the\nsystem UID to the wifi UID. This adds a command to achieve the\nmigration.\n\nBug: 8122243\nChange-Id: I65f7a91504c1d2a2aac22b9c3051adffd28d66c1\n"
    },
    {
      "commit": "78ad849163a7b01073b46fbd7d818392720005d1",
      "tree": "8b177dc6137d8264e6e1a288e726de2aab6f040a",
      "parents": [
        "ebebb80b4a629756128b5a4fcf483133f01dbfd7"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 13 17:02:57 2013 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@android.com",
        "time": "Wed Mar 20 16:50:06 2013 +0000"
      },
      "message": "KeyStore: add API to uid versions\n\nIn previous commits, we added the ability to specify which UID we want to\ntarget on certain operations. This commit adds the ability to reach those\nbinder calls from the KeyStore class.\n\nAlso fix a problem where saw() was not reading all the values returned via\nthe Binder call. This changes the semantics to return a null instead of\nfailing silently when it\u0027s not possible to search.\n\nChange-Id: I32098dc0eb42e09ace89f6b7455766842a72e9f4\n"
    },
    {
      "commit": "b9594ce9ebb3f5f303a280f04312ae5754ce3560",
      "tree": "c2d5554829d9dfce6c387a7a41a2218d5bd5f276",
      "parents": [
        "37edbbc62fa031c75ce5a1298fdd07d981907e89"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 14 10:18:38 2013 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Feb 14 12:06:51 2013 -0800"
      },
      "message": "KeyStore: stop using state()\n\nChange-Id: I721974fd95f8d1ab06a3fd1bbb4c9b4d9d1d7752\n"
    },
    {
      "commit": "656f92f2c6fec008dd3131f6ec30a121b5b2a92e",
      "tree": "a97e794772576fa72827dcb7e265df83dfaf8b7e",
      "parents": [
        "8b58c52bf4cc276165b1857eb4087eabde7b6477"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 04 14:47:36 2013 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 04 14:53:11 2013 -0800"
      },
      "message": "AndroidKeyStore: add key wrapping test\n\nChange-Id: Ib21ab37d22689dd87f014eaa1f7919a575367cdd\n"
    },
    {
      "commit": "8b58c52bf4cc276165b1857eb4087eabde7b6477",
      "tree": "448c4ff3315e2fc1a9c4d910c749eda002c7ce57",
      "parents": [
        "ace72f6a37ffc232172346b3385494ef10195583"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 04 14:47:23 2013 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 04 14:52:23 2013 -0800"
      },
      "message": "AndroidKeyStore: fix tests\n\nChange-Id: I65fd8ba27af57ea8fd27c8e08c9c1201f32c494d\n"
    },
    {
      "commit": "58ed5d748c0b9b64845975ef5844ad313de7c3f6",
      "tree": "507af3879bc894eb854712a1fe6c0953805a895c",
      "parents": [
        "9197d170b770f2b87abd0cd0e13dcf71e5a181c2",
        "768d9e1a72ceee7d4a5f608776b87b62d6ce4a04"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 07 11:52:12 2012 -0800"
      },
      "message": "am 768d9e1a: Merge \"Correct executable bit for source files\"\n\n* commit \u0027768d9e1a72ceee7d4a5f608776b87b62d6ce4a04\u0027:\n  Correct executable bit for source files\n"
    },
    {
      "commit": "3a084af2e90849aaa8beb3a610189e3399c63ea0",
      "tree": "ba4b87d227674fd68f9ea395649fde32778620f0",
      "parents": [
        "9d547d6934f64189e368c0b190fb4cf49c95a557"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:19:47 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Nov 07 10:27:31 2012 -0800"
      },
      "message": "Correct executable bit for source files\n\nMany media files and source code files were marked as executable in Git.\nRemove those.\n\nAlso a shell script and python script were not marked as executable.\n\nChange-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5\n"
    },
    {
      "commit": "802768dd86c4e8a933dbfbac2e9f1a1daa5f93fa",
      "tree": "a90458054c943c102152dbc0c061a83d52c1c70c",
      "parents": [
        "6479ecd1b24e9d5a5636130cb4b0c353b396ff0e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 21 15:23:35 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 22 13:03:30 2012 -0700"
      },
      "message": "Add ability to replace chain for PrivateKeyEntry\n\nFor the AndroidKeyStore API, allow entries to have their certificate\nchain replaced without destroying the underlying PrivateKey. Since\nentries are backed by unexportable private keys, requiring them to be\nsupplied again doesn\u0027t make sense and is impossible.\n\nChange-Id: I629ce2a625315c8d8020a082892650ac5eba22ae\n"
    },
    {
      "commit": "db026710ec0adcf7f72dfb24c65d38a882ee26d8",
      "tree": "cff080fbecd17c5d6e6a60a7bc2adccbd6761b20",
      "parents": [
        "e29df16cb57b69995df597e8a6d95d986c1c43fc"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 20 10:48:46 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 22 08:52:55 2012 -0700"
      },
      "message": "Add KeyPairGenerator for Android keystore\n\nThis allows end-users to generate keys in the keystore without the\nprivate part of the key ever needing to leave the device. The generation\nprocess also generates a self-signed certificate.\n\nChange-Id: I114ffb8e0cbe3b1edaae7e69e8aa578cb835efc9\n"
    },
    {
      "commit": "e29df16cb57b69995df597e8a6d95d986c1c43fc",
      "tree": "7cb7fb03ffff118dab968b483bb6d52270cf4ac9",
      "parents": [
        "473c712b19bad992ab4eafcd43175fdce77b913d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 10 08:28:37 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 20 12:44:40 2012 -0700"
      },
      "message": "Add AndroidKeyStore provider for KeyStore API\n\nThis introduces a public API for the Android keystore that is accessible\nvia java.security.KeyStore API. This allows programs to store\nPrivateKeyEntry and TrustedCertificateEntry items visible only to\nthemselves.\n\nFuture work should include:\n\n* Implement KeyStore.CallbackHandlerProtection parameter to allow the\n  caller to request that the keystore daemon unlock itself via the\n  system password input dialog.\n\n* Implement SecretKeyEntry once that support is in keystore daemon\n\nChange-Id: I382ffdf742d3f9f7647c5f5a429244a340b6bb0a\n"
    },
    {
      "commit": "473c712b19bad992ab4eafcd43175fdce77b913d",
      "tree": "53695829e6276f1ab596ec873b63e3fa9ad2c491",
      "parents": [
        "bc11e52cafa182996a338641c86bf3a07f571b1d"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 17 21:13:48 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 20 09:48:41 2012 -0700"
      },
      "message": "Add getmtime to Android KeyStore API\n\njava.security.KeyStore requires that you be able to get the creation\ndate for any given entry. We\u0027ll approximate that through using the mtime\nof the file in the keystore.\n\nChange-Id: I16f74354a6c2e78a1a0b4dc2ae720c5391274e6f\n"
    },
    {
      "commit": "96ad6cb080d0721a433d2bcb201f4a4582bf1caf",
      "tree": "1c74406ce7acaf2be1d06c2885cd50b62a8b7d85",
      "parents": [
        "37548994e69292932e9e2fafb7cba6c53e3a2bcd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 10 12:39:15 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Aug 10 13:40:19 2012 -0700"
      },
      "message": "Remove useless TestRunner\n\nInstrumentationTestRunner can enumerate the test cases to run without a\nspecial TestRunner.\n\nChange-Id: I5a49413440ef191f28a21034a318d9a9e3f8174b\n"
    },
    {
      "commit": "2a5b147ec8fc1235af928042bdfb78170b18067b",
      "tree": "9420325372005ce5d2070402a0f99dcd04d85552",
      "parents": [
        "4faeef378e9b82a4ad0fc1d4bb923af1a4f70e4e"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jul 30 18:44:29 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Aug 01 15:44:52 2012 -0700"
      },
      "message": "Change KeyStore to use Modified UTF-8 to match NativeCrypto\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d35141\nBug: 6869713\n\nChange-Id: I61cb309786960072148ef97ea5afedb33dc45f4e\n"
    },
    {
      "commit": "5ea68db37fd5ad4e0ddc0745b4347e86f17f78db",
      "tree": "9ff7f7392fa6a74f2304362f173092ec342dce99",
      "parents": [
        "dfac68eacc60c130e54345d98bd45c99573cb627"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 17 23:40:49 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Jul 27 22:41:42 2012 -0700"
      },
      "message": "Improve test key names to reproduce public issue\n\nAlso fixes other unrelated test failures.\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d34577\nBug: 6837950\n\n(cherry-picked from f4019af04a1fc4b16aa5972cbcbba703caa5d78d)\n\nChange-Id: I5b32b5ccac80f04a4d0fd6b21b8caa11e42995a7\n"
    },
    {
      "commit": "5423e68d5dbe048ec6f042cce52a33f94184e9fb",
      "tree": "77d2cc39ea7f7a856d71d79233702af3dd71dccd",
      "parents": [
        "b2e822fc2ac87703ac12d062add62408574cbf7c"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Nov 14 08:43:13 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 20 09:04:33 2012 -0700"
      },
      "message": "Add signing to keystore\n\nChange the keystore to keep the private keys in keystore. When returned,\nit uses the OpenSSL representation of the key to allow users to use it\nin various operations through the OpenSSL ENGINE that connects to\nkeystore.\n\nChange-Id: I3681f98cb2ec49ffc4a49f3821909313b4ab5735\n"
    },
    {
      "commit": "bef5e5aabcb6ab440829f4418d1cbc268564eee0",
      "tree": "c2312f4e06065bec972b66f0ad292ca0fdca5fbc",
      "parents": [
        "5106476bbf2a8e89b47e91d60e20fd38f7fa7e85"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 27 17:22:02 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Jun 27 17:22:02 2011 -0700"
      },
      "message": "Add KeyStoreTest.testGet\n\nNow that system user can read keystore, add KeyStoreTest.testGet and update other tests to use KeyStore.get\n\nChange-Id: I364866d52c2ecf550ff26aadc6e85126318889fa\n"
    },
    {
      "commit": "5cfee3fabb3482c6a6df1c8b6f21e843cf214527",
      "tree": "c4190f1fa809eb1e5e7d028f21be510b2a5b3980",
      "parents": [
        "9b4157935af9e44571187a9533c2cc9b413383bf"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue May 31 01:00:15 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jun 01 14:29:59 2011 -0700"
      },
      "message": "Integrating keystore with keyguard (Part 1 of 4)\n\nSummary:\n\nframeworks/base\n  keystore rewrite\n  keyguard integration with keystore on keyguard entry or keyguard change\n  KeyStore API simplification\n\npackages/apps/Settings\n  Removed com.android.credentials.SET_PASSWORD intent support\n  Added keyguard requirement for keystore use\n\npackages/apps/CertInstaller\n  Tracking KeyStore API changes\n  Fix for NPE in CertInstaller when certificate lacks basic constraints\n\npackages/apps/KeyChain\n  Tracking KeyStore API changes\n\nDetails:\n\nframeworks/base\n\n   Move keystore from C to C++ while rewriting password\n   implementation. Removed global variables. Added many comments.\n\n\tcmds/keystore/Android.mk\n\tcmds/keystore/keystore.h\n\tcmds/keystore/keystore.c \u003d\u003e cmds/keystore/keystore.cpp\n\tcmds/keystore/keystore_cli.c \u003d\u003e cmds/keystore/keystore_cli.cpp\n\n   Changed saveLockPattern and saveLockPassword to notify the keystore\n   on changes so that the keystore master key can be reencrypted when\n   the keyguard changes.\n\n\tcore/java/com/android/internal/widget/LockPatternUtils.java\n\n   Changed unlock screens to pass values for keystore unlock or initialization\n\n\tpolicy/src/com/android/internal/policy/impl/PasswordUnlockScreen.java\n\tpolicy/src/com/android/internal/policy/impl/PatternUnlockScreen.java\n\n   KeyStore API changes\n   - renamed test() to state(), which now return a State enum\n   - made APIs with byte[] key arguments private\n   - added new KeyStore.isEmpty used to determine if a keyguard is required\n\n\tkeystore/java/android/security/KeyStore.java\n\n   In addition to tracking KeyStore API changes, added new testIsEmpty\n   and improved some existing tests to validate expect values.\n\n\tkeystore/tests/src/android/security/KeyStoreTest.java\n\npackages/apps/Settings\n\n    Removing com.android.credentials.SET_PASSWORD intent with the\n    removal of the ability to set an explicit keystore password now\n    that the keyguard value is used. Changed to ensure keyguard is\n    enabled for keystore install or unlock. Cleaned up interwoven\n    dialog handing into discrete dialog helper classes.\n\n\tAndroidManifest.xml\n\tsrc/com/android/settings/CredentialStorage.java\n\n    Remove layout for entering new password\n\n\tres/layout/credentials_dialog.xml\n\n    Remove enable credentials checkbox\n\n\tres/xml/security_settings_misc.xml\n\tsrc/com/android/settings/SecuritySettings.java\n\n    Added ability to specify minimum quality key to ChooseLockGeneric\n    Activity. Used by CredentialStorage, but could also be used by\n    CryptKeeperSettings. Changed ChooseLockGeneric to understand\n    minimum quality for keystore in addition to DPM and device\n    encryption.\n\n\tsrc/com/android/settings/ChooseLockGeneric.java\n\n    Changed to use getActivePasswordQuality from\n    getKeyguardStoredPasswordQuality based on experience in\n    CredentialStorage. Removed bogus class javadoc.\n\n\tsrc/com/android/settings/CryptKeeperSettings.java\n\n    Tracking KeyStore API changes\n\n\tsrc/com/android/settings/vpn/VpnSettings.java\n\tsrc/com/android/settings/wifi/WifiSettings.java\n\n   Removing now unused string resources\n\n\tres/values-af/strings.xml\n\tres/values-am/strings.xml\n\tres/values-ar/strings.xml\n\tres/values-bg/strings.xml\n\tres/values-ca/strings.xml\n\tres/values-cs/strings.xml\n\tres/values-da/strings.xml\n\tres/values-de/strings.xml\n\tres/values-el/strings.xml\n\tres/values-en-rGB/strings.xml\n\tres/values-es-rUS/strings.xml\n\tres/values-es/strings.xml\n\tres/values-fa/strings.xml\n\tres/values-fi/strings.xml\n\tres/values-fr/strings.xml\n\tres/values-hr/strings.xml\n\tres/values-hu/strings.xml\n\tres/values-in/strings.xml\n\tres/values-it/strings.xml\n\tres/values-iw/strings.xml\n\tres/values-ja/strings.xml\n\tres/values-ko/strings.xml\n\tres/values-lt/strings.xml\n\tres/values-lv/strings.xml\n\tres/values-ms/strings.xml\n\tres/values-nb/strings.xml\n\tres/values-nl/strings.xml\n\tres/values-pl/strings.xml\n\tres/values-pt-rPT/strings.xml\n\tres/values-pt/strings.xml\n\tres/values-rm/strings.xml\n\tres/values-ro/strings.xml\n\tres/values-ru/strings.xml\n\tres/values-sk/strings.xml\n\tres/values-sl/strings.xml\n\tres/values-sr/strings.xml\n\tres/values-sv/strings.xml\n\tres/values-sw/strings.xml\n\tres/values-th/strings.xml\n\tres/values-tl/strings.xml\n\tres/values-tr/strings.xml\n\tres/values-uk/strings.xml\n\tres/values-vi/strings.xml\n\tres/values-zh-rCN/strings.xml\n\tres/values-zh-rTW/strings.xml\n\tres/values-zu/strings.xml\n\tres/values/strings.xml\n\npackages/apps/CertInstaller\n\n  Tracking KeyStore API changes\n\tsrc/com/android/certinstaller/CertInstaller.java\n\n  Fix for NPE in CertInstaller when certificate lacks basic constraints\n\tsrc/com/android/certinstaller/CredentialHelper.java\n\npackages/apps/KeyChain\n\n  Tracking KeyStore API changes\n\tsrc/com/android/keychain/KeyChainActivity.java\n\tsrc/com/android/keychain/KeyChainService.java\n\tsupport/src/com/android/keychain/tests/support/IKeyChainServiceTestSupport.aidl\n\tsupport/src/com/android/keychain/tests/support/KeyChainServiceTestSupport.java\n\ttests/src/com/android/keychain/tests/KeyChainServiceTest.java\n\nChange-Id: Ic141fb5d4b43d12fe62cb1e29c7cbd891b4be35d\n"
    },
    {
      "commit": "34c47c855815d731e6deb55748ff690b0ec7b53f",
      "tree": "3e6a6668f093bcf88bba3bb6c8e4438a212ceea8",
      "parents": [
        "15b3287994b92bb9bff10e65a56bc8a663d0e05d"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Tue Mar 09 13:28:14 2010 -0800"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Wed Mar 10 11:25:53 2010 -0800"
      },
      "message": "Don\u0027t rely on the system locale for converting to/from bytes.\n\nBy default, when java converts Strings to bytes, it uses the\ndefault system locale.  This can be specified by the -Dfile.encoding\noption.  If no file encoding is specified, java uses ISO8859_1.\n\nUnfortunately, not all unicode characters can be mapped to\nISO8859_1.  Unmappable characters may be replaced by a byte\nwithin ISO8859_1, which may change the meaning of the String.\nThis is especially problematic for password strings, and has\nbeen used to compromise the security of passwords in the\npast.\n\nThankfully, Android uses UTF-8 by default, so this bug doesn\u0027t\neffect Android devices.  However, it\u0027s recommended to explicitly\nlist the character set when converting to/from bytes to\navoid the potential ambiguity.\n\nChange-Id: Iec927e27ed3fc103696c439f6bd3e8779a37ade8\n"
    },
    {
      "commit": "64ef1ce9368985932f4cc7a06b3af585394c5cc6",
      "tree": "cc29959241a730bee5dd0faa42fe400439e051aa",
      "parents": [
        "cdc045dd6da3db8d4ba83560a1bbe27c2ef1e5b2"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Tue Feb 09 15:48:03 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Tue Feb 09 15:48:03 2010 -0800"
      },
      "message": "Fix for bug 2427961\tandroid.security.tests.SystemKeyStoreTest:testBasicAccess is failing.\nFixed issues in test.\n"
    },
    {
      "commit": "d02546b4151214abb2db1c88bf7debfc70bd2421",
      "tree": "706596caff37b2f9ba6c04da64bf3b98172da00e",
      "parents": [
        "851b2e75e600a7e3f557b46c4c48c11da025d1f4"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Thu Jan 14 16:38:40 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Jan 15 15:08:06 2010 -0800"
      },
      "message": "Apps on SD card.\nAdded support for retrieving and generating keys as Hex Strings.\nUsing keys to mount encrypted FS.\n"
    },
    {
      "commit": "b62e8132df0d19a39a700324475b3df2de78e0b0",
      "tree": "e5679e990fc995de73fc2c35dd03082c0efd7ebb",
      "parents": [
        "013b9c249dbcb5ca293c5cfe6a0e7908ced32418"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Thu Jan 14 16:38:40 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Fri Jan 15 11:16:31 2010 -0800"
      },
      "message": "Apps on SD card.\nAdded support for retrieving and generating keys as Hex Strings.\n"
    },
    {
      "commit": "8da98e30d8b2ae6e203f769dab0d6ec34cab3011",
      "tree": "16dcc138f20b9880b4eff88eb4f47743c29b683f",
      "parents": [
        "5e3f6caeb08c54fb79f427a528e084711652bbdb"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Wed Jan 06 11:35:59 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Wed Jan 06 16:23:57 2010 -0800"
      },
      "message": "Apps on SD card project.\nA simple keystore to store system-only key material, by leveraging file system access permissions.\n"
    },
    {
      "commit": "f35e9663d7bdae523953185b4ad6b6f9e8e7d6ca",
      "tree": "ea3c0019085dceed51740c940a2b33b14c5e6f3a",
      "parents": [
        "1a3c8950394b98f6f354456830208d70e87b8bb6"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Sep 29 11:20:28 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Sep 29 15:20:24 2009 +0800"
      },
      "message": "Add unit test for the new keystore.\n\nSince we need to test the keystore with user system in order to test\nthe reset(), password(), lock() and unlock(), we have to take advantage\nof the ActivityUnitTestCase to run the test with the user \u0027system\u0027.\n"
    }
  ]
}
