)]}'
{
  "log": [
    {
      "commit": "460c26e9875833dc494575b5c43f08c8baa15f34",
      "tree": "4b05bdabfe75c0a29dfc1fd8161be9dbb42c1cd1",
      "parents": [
        "7ab17a3426d3565f72c6832bb650d1709cbf52cf"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 11 16:42:09 2010 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Nov 11 16:42:09 2010 -0800"
      },
      "message": "Use deliberately public API rather than org.apache cruft.\n\nInputStreamHelper is scheduled for deletion. As a bonus, the new code is more\nefficient.\n\nChange-Id: Ied8b87fa24f8506cf748b0d4c99ee7e2ae201483\n"
    },
    {
      "commit": "8bdf5935c0db4a66ab33a10b43398d2523cfa15d",
      "tree": "5483e26cd1fb2de239b2f01f3d35c52aeeb7b598",
      "parents": [
        "efb581018bbede2ecdc76bcd9722ded5b6903254"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 15 12:54:40 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Oct 15 14:46:33 2010 -0700"
      },
      "message": "Work on issue #3101415: Crespo apps seem to have their UID changed over time.\n\nfsync!\n\nChange-Id: Ie6c5397202579935ac69bf61d3e7b3081ecf269c\n"
    },
    {
      "commit": "c5e630a004d144ba1d4cd1d37dd98eb70a7ec1d8",
      "tree": "65c495d05a6c378e0820dfb6f7a58d1d08d98b14",
      "parents": [
        "70f1a3b8a0fcf332e35f87be85ae3a9e37a85e9c"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Oct 08 08:20:16 2010 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Oct 08 08:21:17 2010 +0800"
      },
      "message": "Use explicit intent for installing credentials.\n\nhttp://b/issue?id\u003d3020049\n\nChange-Id: I429c5b2c9f3b876e6197894a9437952d71d5c472\n"
    },
    {
      "commit": "8d578836dc4f9fb41532b8b3dd7a6b168d6f4f9d",
      "tree": "0b1d4c4c5f51e723f9139244d9ac05d0a77fa847",
      "parents": [
        "76e4fa19264793e3ed7e2ee7afccfc808a1a7458"
      ],
      "author": {
        "name": "Rich Cannings",
        "email": "richc@google.com",
        "time": "Thu Sep 09 15:12:40 2010 -0700"
      },
      "committer": {
        "name": "Rich Cannings",
        "email": "richc@google.com",
        "time": "Thu Sep 09 16:28:48 2010 -0700"
      },
      "message": "Remove the use of FileInputStream.available()\n\nBug: 2976294\nChange-Id: I34b13cedbf1d2338163ef74454817c318a3a24f5\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": "1ff8fee7c8e4fcd4ef12c6c5d1055b7eccf5809b",
      "tree": "5c7f8f94fd6878b890a1f284eff87028f7301610",
      "parents": [
        "bcea8124a1d85c610b4bd4e6d360a861d2f61793"
      ],
      "author": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 11:16:51 2010 -0800"
      },
      "committer": {
        "name": "Oscar Montemayor",
        "email": "oam@google.com",
        "time": "Mon Feb 22 11:17:38 2010 -0800"
      },
      "message": "Better file permissions enforcement on system keystore.\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": "d12feb97667498378a472c5a7895a9fcd8056ec5",
      "tree": "bb0dea6d297e753abfd9611ee75e27a517537656",
      "parents": [
        "6004edc67c94a0d034dfb8981b7d4b7a0172a814"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sat Feb 06 10:43:22 2010 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Sat Feb 06 10:43:22 2010 +0800"
      },
      "message": "KeyStore: minor improvements.\n\nMake constants final.\nOnly converts ArrayLists to arrays when necessary.\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"
    },
    {
      "commit": "8c596c6cce542dcd5c73e8b1aaef666757e36ec4",
      "tree": "0822092e3db464d05ffa0e0bff97edc7829d2975",
      "parents": [
        "f1ece5d0c16fa3e79390e41ad9bec020c77d7720"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 24 13:32:40 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 24 13:32:40 2009 +0800"
      },
      "message": "KeyStore: remove classes used by old keystore.\n"
    },
    {
      "commit": "f1ece5d0c16fa3e79390e41ad9bec020c77d7720",
      "tree": "c5c8b20551a9dcf1bb3dcaf52223866a31164a16",
      "parents": [
        "46a41e0e7f95f43aa7251114f12fd5e2b9933bc7"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 24 13:29:58 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 24 13:29:58 2009 +0800"
      },
      "message": "KeyStore: return null when response code indicates an error.\n"
    },
    {
      "commit": "ec05c46ea9d1dc175b09f93df0b9fea5a43b2d5a",
      "tree": "206c5b70008d30a0176ebe986efef58a7bc59fc6",
      "parents": [
        "85abdc59c3a31df6dc6ac4f20e64d5c91fa70023"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Sep 24 13:13:44 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Sep 24 13:13:44 2009 +0800"
      },
      "message": "Remove old keystore and related files.\n"
    },
    {
      "commit": "613fcc850686dfe71cec9809c3694be9cf02cdc7",
      "tree": "6e7ef01214267a7d8a09ddd50e77c776af7cdcf4",
      "parents": [
        "1f6802295e2dba50a4549b8a22537dcb4c4dda03"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 22 03:04:46 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Tue Sep 22 03:04:46 2009 +0800"
      },
      "message": "KeyStore: rename scan() to saw().\n"
    },
    {
      "commit": "44039172627d1c15737ea73836ad375559d76211",
      "tree": "0f4969e1216a9dbdb863268a2f46375eefb8192d",
      "parents": [
        "626c46b016118edbea3a3938425b5d4e959f6f2d"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Sep 21 11:53:59 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Mon Sep 21 15:52:00 2009 +0800"
      },
      "message": "KeyStore: add java interface.\n"
    },
    {
      "commit": "9b7a3f1a6437605022568cad0b92d5006a2ab391",
      "tree": "4d3dcf473cb06af26bc2b6bc68bd54a65422c92c",
      "parents": [
        "adbc99be6d7e35f71bbbdcdfef5562c5a9b53b07"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Sep 18 12:00:12 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Fri Sep 18 12:03:04 2009 +0800"
      },
      "message": "Add a helper class to send out credentials.\n\nChange-Id: I9a550c6edc55d5c2c601223c011922b183cb4d30\n"
    },
    {
      "commit": "5b680802b6774491fbcee69e394d097d4bfcf42e",
      "tree": "7ad1163a5de706df8c48dbc9c1e9c7fd0421fc2a",
      "parents": [
        "972f0e3806f379b7fb6e43265f56ddd91c38107e"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Wed Sep 16 15:43:15 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Sep 17 12:17:29 2009 +0800"
      },
      "message": "Fix a minor bug in is_alnum_string()...\n\nand remove some verbose logging\n"
    },
    {
      "commit": "a7df557aa2573a4718c7bbd069268e62bc036753",
      "tree": "606824416def47dd79b782fb4037aa180fca8d93",
      "parents": [
        "d304ae583d862250a21b5949fc3dbdf3af1febac"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Sep 11 18:34:28 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Sep 11 19:30:13 2009 +0800"
      },
      "message": "Add tests and misc fixes on keystore.\n\n* Refactor netkeystore.c to make client and server code testable.\n* Add a client test for setting new passwd and changing passwd.\n* Exclude \".\" and \"..\" from reset_keystore().\n* Change ServerCommand.executeCommand() to accept variable length of\n  arguments and add convert() to marshalling the args to bytes.\n* Keystore.java is revised accordingly.\n"
    },
    {
      "commit": "9249cc69b83c7b055ae477c4539bdc451fe7f9b9",
      "tree": "c46cac7e798f63e379a5684931cc362d97165f31",
      "parents": [
        "24d237db943051942b5966f5e788d67050ec0ba5"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Sep 08 16:47:51 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Thu Sep 10 12:51:07 2009 +0800"
      },
      "message": "Add two CertTool helper classes.\n\nAlso add the unlock action string to Keystore.\n"
    },
    {
      "commit": "37062b93dcb7c72919be8d33303606cdab936c11",
      "tree": "5bb7c58b073f07777253d25a297b61bac4b67d10",
      "parents": [
        "ccda4c4960ad6694e506e075f8f0b479ea2bafb6"
      ],
      "author": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 10 03:55:33 2009 +0800"
      },
      "committer": {
        "name": "Chia-chi Yeh",
        "email": "chiachi@android.com",
        "time": "Thu Sep 10 03:56:04 2009 +0800"
      },
      "message": "keystore: remove \"#include \u003copenssl/engine.h\u003e\".\n"
    },
    {
      "commit": "801b73f661cbdf92de94b7e552a190fcbbdc3168",
      "tree": "d67ad7b9bca1e97a7cc4ecbab4c6e680933ab1b6",
      "parents": [
        "88e625795943dea84b2e7c32f37e71303143b728"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Sep 08 03:52:45 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Sep 09 15:00:43 2009 +0800"
      },
      "message": "Replace the delimiter whitespace with \u0027\\0\u0027.\n\n+ Use \u0027\\0\u0027 as the delimiter.\n+ Allow whitespace character for keystore password.\n\nIn previous implementation, we use space as the delimiter. That\nwill stop user from using passphrase with whitespace character.\n"
    },
    {
      "commit": "60c821c8eeca28d34fb02cf5e35dadf168e1312e",
      "tree": "7e49e7920894e505e1dfbd02b7c4ad64c8f18f63",
      "parents": [
        "09960230bf3d46ec1e7cbcfd8b07dfe007b9fa96"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Sep 02 11:54:24 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Sep 02 11:54:24 2009 +0800"
      },
      "message": "Print error message if the buffer size is too small.\n"
    },
    {
      "commit": "09960230bf3d46ec1e7cbcfd8b07dfe007b9fa96",
      "tree": "0cdb96cc728125bcae41709a027811cbd6beee2b",
      "parents": [
        "c98d68cd56338ec57695b3c35114fbde88d4bde8"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Sep 01 16:45:13 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Sep 01 16:45:13 2009 +0800"
      },
      "message": "Store CA certificate chain into one single key entry with PEM format.\n\nExtract all CA certificates in a PKCS12 keystore into a single entry in keystore with multiple PEMs.\n"
    },
    {
      "commit": "d21a04c06c0d9b1cb401c30bf6da778010872957",
      "tree": "605df7209d6a7b3adef1459e5ba7e66395a2e6f7",
      "parents": [
        "ed5fede3f8a376ebed46beeb41796838847ad68d",
        "20a1156c6fd30f3ec1336894d6ae7e00298ad65b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 26 20:29:17 2009 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 26 20:29:17 2009 -0700"
      },
      "message": "Merge change 21259 into eclair\n\n* changes:\n  Make certificate-handling-related constants public\n"
    },
    {
      "commit": "969c2eaa3ac2501931b0ce67d831262e6f3d6cf6",
      "tree": "376710b2e2e957a434f4f67d74fed6b650b60fb0",
      "parents": [
        "2685d3b85b3ad5fcb5362abdfb9037fc89deb714",
        "c8ab08aa86aea3b693f731c9e817eeb71ab4c1cd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Aug 18 08:44:43 2009 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 18 08:44:43 2009 -0700"
      },
      "message": "am c8ab08aa: Merge change 21124 into donut\n\nMerge commit \u0027c8ab08aa86aea3b693f731c9e817eeb71ab4c1cd\u0027 into eclair\n\n* commit \u0027c8ab08aa86aea3b693f731c9e817eeb71ab4c1cd\u0027:\n  Add license-related files\n"
    },
    {
      "commit": "20a1156c6fd30f3ec1336894d6ae7e00298ad65b",
      "tree": "fa4fcc5c2c3d03272493eb572a0d8fd8ed1be24b",
      "parents": [
        "a31deaf4a960058e533da35d6229f7aa8d4f00c1"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Jul 31 20:34:03 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Aug 14 18:35:44 2009 +0800"
      },
      "message": "Make certificate-handling-related constants public\n"
    },
    {
      "commit": "979b142fa508eef5a24dfc874a945f5662f2566e",
      "tree": "b548bab36f110c0ad484b3cdf7d3c33fec2f2a87",
      "parents": [
        "4431a0650774ae72ce89d0f9c90903dcc81fab8b"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 13 10:58:11 2009 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Aug 13 10:58:11 2009 -0700"
      },
      "message": "Add license-related files\n\nBUG\u003d1573996\n"
    },
    {
      "commit": "f1ab36f9ab82220de679ff0ca5164995b7d30214",
      "tree": "bdf73fa71e3ac244eb57ba123b634d5ca78b6f52",
      "parents": [
        "0f0767d4daa847314bd9473ef3650d26d1c51c8c"
      ],
      "author": {
        "name": "repo sync",
        "email": "cywang@google.com",
        "time": "Wed Aug 05 18:06:27 2009 +0800"
      },
      "committer": {
        "name": "repo sync",
        "email": "cywang@google.com",
        "time": "Mon Aug 10 16:13:00 2009 +0800"
      },
      "message": "Fix network order for marshalling in keystore interface.\n\nThis will fix the endian issue for heterogeneous architectures in keystore marshalling interface.\n"
    },
    {
      "commit": "dc1d5704a725d207b98de1b117847297958d9148",
      "tree": "dd2e823cd931992d8bbafd054dcfedf567bf7055",
      "parents": [
        "b86bad9493a331a09dd765bc6e725c0aec969ff6"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Aug 03 15:01:58 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Mon Aug 03 15:11:36 2009 +0800"
      },
      "message": "Fix the auto notification cleanup when vpn is disconnected.\n\n+ add the log print if the browser give the incorrect data in addCertificate().\n"
    },
    {
      "commit": "e81f51f44b4cfb8316de1d206038414ee6f6e96b",
      "tree": "e0ea02d004c77df56fb98fc5d9d48b875420ed7f",
      "parents": [
        "1f1602e7291ab2b4d8d76db33c89828b6e58e6c0"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sat Aug 01 10:11:46 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Sat Aug 01 10:11:46 2009 +0800"
      },
      "message": "Change some log.i to log.d.\n"
    },
    {
      "commit": "fd3db87e28e5b9ed186a15944234f6ff520773c6",
      "tree": "e21771e9cf7e20c51676f7a86ab659592441dffe",
      "parents": [
        "191452378639f1135c9591e21911ce250d140769"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Jul 28 18:37:13 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Jul 28 18:37:13 2009 +0800"
      },
      "message": "Support x509-user-cert mime type in browser.\n\n+ Fix the public key matching and intent parameter mismatch.\n"
    },
    {
      "commit": "191452378639f1135c9591e21911ce250d140769",
      "tree": "f92f5aae2ba422aca3bcd83992176a6e55c097b1",
      "parents": [
        "d0021dcae7f474c062f23a449bdd18be5e882d7e"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Jul 28 15:15:51 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Tue Jul 28 15:18:22 2009 +0800"
      },
      "message": "Forgot to convert the jstring to char* in certificate request.\n"
    },
    {
      "commit": "719eba5bb1fbc72e3b55450f16b38a6be5640055",
      "tree": "edd5b5178e70733642d9d5275d6a6102bcd657f3",
      "parents": [
        "75b681639d3945d22d4ab90856a65a05405d2538"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jul 24 11:33:45 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Fri Jul 24 11:33:45 2009 +0800"
      },
      "message": "Change to SPKAC certificate request format for keygen.\n"
    },
    {
      "commit": "24988b34919d65d4e66be69ec0885154c47e85b7",
      "tree": "ca4dd6c8e9827c0af5d7ccdedf147ca48f03f734",
      "parents": [
        "841ed8596a745d90822467bc2c0e13880bb59cc9"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jul 22 06:04:58 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jul 22 06:04:58 2009 +0800"
      },
      "message": "Cleanup the old keystore APIs.\n"
    },
    {
      "commit": "22726cf8174fe00a097c89b8da397b10626cdd00",
      "tree": "f724f69a84275a72f1b0f0d7949740b418c17bb2",
      "parents": [
        "8ece3445e8c95d02a47737ea2ac2d52a696143cd"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jul 22 05:31:48 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jul 22 05:35:20 2009 +0800"
      },
      "message": "Return error codes for storing the key/cert in addPkcs12Keystore()\n"
    },
    {
      "commit": "c9c119e7338cab292385118229f884a88fead3a2",
      "tree": "cb4e8f22b73aacbfc45ec80c66b693a47af5e3bc",
      "parents": [
        "f32f746b83826303350417ff9937a6f9e5488f24"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 16 19:54:33 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat Jul 18 01:17:20 2009 +0800"
      },
      "message": "Support addPkcs12Keystore function in CertTool library.\n\nThe function will be called from the credential storage for decoding\nthe pkcs12 file and saving the certs/keys into mini-keystore.\n"
    },
    {
      "commit": "699ca3f2518360ea3250ff5a0e5d39e122c64a91",
      "tree": "dcdeefe39f5cb52cc02d63039be4c9a4427eb9bc",
      "parents": [
        "4492bcb851f4ee862a446664eb9045045ebb7b5e"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat Jul 04 22:19:51 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sun Jul 05 11:06:01 2009 +0800"
      },
      "message": "Add password field for WiFi configuration.\n\n1. the certtool.h is modified for avoiding the side effect,\n   for saving the configuration with wpa_supplicant.\n2. put the loadLibrary back in CertTool.java\n3. Fix incorrect JNI declarations.\n"
    },
    {
      "commit": "bf20b9963add781a35de658f3228760015a163c9",
      "tree": "ab310659e9be96273833221ba4dbf9863eba1407",
      "parents": [
        "24ad29c6dbbf62096bcb41ddb2fa3975720ee625"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 23:42:12 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Sat Jul 04 00:22:51 2009 +0800"
      },
      "message": "Migrate to the CertTool library.\n\nKeystore is reimplemented and it is mainly for storing\n(key, value) pair generically. The certificate related\nAPIs are moved to the class CertTool instead.\n\nUpdates:\n  Provide the getInstance() which gives the singleton.\n  Fix the missing construction of the BIO in cert.c.\n"
    },
    {
      "commit": "116d890aea63a4191a93412f5cecf5defad25201",
      "tree": "b0bd5d04e6cce6717ecb3d62e19ead62d3fd1a26",
      "parents": [
        "4bca97ecaf04c50d5ed49920d119f9ffa6c29402"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Jul 03 17:38:59 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Fri Jul 03 17:38:59 2009 +0800"
      },
      "message": "Fix null data handling in ServiceCommand.writeCommand()\n"
    },
    {
      "commit": "fa927c046a916fceb077d1ecf2552d76e73da912",
      "tree": "1bd090be6f71aa36b96e3a2218b6f9b97316af3e",
      "parents": [
        "eec11827a6c06b029030f43c8d54fd871cc3347d"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 19:11:11 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 23:08:39 2009 +0800"
      },
      "message": "Remove the null-termination for Java string compatibility.\n\n1. Also change the keyname delimiter in CertTool.java.\n2. Return NOTFOUND if the result.len\u003d\u003d0 in the listKeys().\n3. Define the keystore states in the class Keystore.\n"
    },
    {
      "commit": "eec11827a6c06b029030f43c8d54fd871cc3347d",
      "tree": "6ed138af9f9d632cc6e74dbb517626adb802ac96",
      "parents": [
        "d45dcbec856710f9478ffc5689e7cdf95d757ab8"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 00:22:04 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jul 02 18:56:12 2009 +0800"
      },
      "message": "Add CertTool for handling the keygen and certificate download.\n\n1. Have the new Keystore for mini-keystore impelemntation.\n2. Add CertTool library and jni dll for handling keygen and certificates.\n3. Make Reply hidden.\n4. Revert some \u0027incorrect\u0027 change and correct the description.\n"
    },
    {
      "commit": "3af8e9389e008c0076b86cc6b3c6f005e7473d10",
      "tree": "84acce43fa9a460e2d888cea9df28b0bbe1ec5ee",
      "parents": [
        "5254657540b0a6ad54be6229b68fa5626e4ef9e5"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Jun 19 15:03:46 2009 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Fri Jun 19 15:09:34 2009 -0700"
      },
      "message": "Change addCertificate to take byte[] instead of String as we don\u0027t know the encoding.\n\nIn WebView, if we run into the certificate, we will save it to the Keystore instead of sending it to the WebKit.\n"
    },
    {
      "commit": "6d531bf0513de7778c380d649bc0e554478f78f9",
      "tree": "10ac2aad8a0d60d7990a9ac538b64b2d98a5aa15",
      "parents": [
        "653349fe48f2995d9e17b5e0a4110925cffdaeab"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 17 01:29:21 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 17 14:32:05 2009 +0800"
      },
      "message": "Change the keystore APIs.\n\n1. simplify the keypair selection in UI.\n2. add the user certificate and key into the keystore for keygen feature.\n"
    },
    {
      "commit": "396c69ca8d938c8705faf602b87729072bf8839c",
      "tree": "3db9a82ce6f79a804091f6037cb55786d6dd9fb5",
      "parents": [
        "1d51e50d5d484c5d9e620b1d6736adc9aa99ae84"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jun 16 23:51:51 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jun 16 23:57:16 2009 +0800"
      },
      "message": "Change the first parameter of Keystore.generateKeyPair() to int.\n\n* changes\n  change the parameter to the index to the supported key strengths\n  remove the exception class as it is not useful now\n"
    },
    {
      "commit": "1d51e50d5d484c5d9e620b1d6736adc9aa99ae84",
      "tree": "20793d63fda275271d8433554591b9157feeb375",
      "parents": [
        "0304325dd72ff8713c8444e909d387af1447f86f"
      ],
      "author": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jun 16 16:14:14 2009 +0800"
      },
      "committer": {
        "name": "Hung-ying Tyan",
        "email": "tyanh@google.com",
        "time": "Tue Jun 16 17:14:38 2009 +0800"
      },
      "message": "Add keygen API to Keystore.\n"
    },
    {
      "commit": "10e371f18247dc7fb64bfa0f0528501acc17be79",
      "tree": "630ce090cba0314696dd405f6cd3155773cc445a",
      "parents": [
        "a05487dd856222bacf57a41f2dfe1194d3776f05"
      ],
      "author": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Wed Jun 10 18:45:14 2009 +0800"
      },
      "committer": {
        "name": "Chung-yih Wang",
        "email": "cywang@google.com",
        "time": "Thu Jun 11 17:28:40 2009 +0800"
      },
      "message": "Provide the Keystore feature in the framework.\n\n-- added the keystore library for Java application.\n-- changed the marshalling of the keystore function return.\n"
    }
  ]
}
