)]}'
{
  "log": [
    {
      "commit": "31d83109388871a8ed0811888904ba55b327751b",
      "tree": "c593c3abece240294adc44124869ffa7cea13ee7",
      "parents": [
        "c920f2a66356ad85979c180c9620d84856f13a15",
        "cd8df62842b81c93022feabfacda8efd257e1754"
      ],
      "author": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Tue Nov 13 22:51:45 2012 -0700"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Tue Nov 13 22:51:45 2012 -0700"
      },
      "message": "Merge remote-tracking branch \u0027aosp/jb-mr1-release\u0027 into HEAD\n"
    },
    {
      "commit": "cd8df62842b81c93022feabfacda8efd257e1754",
      "tree": "992188c476db298f4b79beec361650217d5b4941",
      "parents": [
        "d3c598c12c1317f592b8da19e00c8122dba6b0c1",
        "878c359db8ecac6390592f7f3de19c77f28113a2"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 20 11:49:35 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 20 11:49:35 2012 -0700"
      },
      "message": "am 878c359d: Merge \"Add getmtime command for keys\"\n\n* commit \u0027878c359db8ecac6390592f7f3de19c77f28113a2\u0027:\n  Add getmtime command for keys\n"
    },
    {
      "commit": "878c359db8ecac6390592f7f3de19c77f28113a2",
      "tree": "992188c476db298f4b79beec361650217d5b4941",
      "parents": [
        "e7f9da44646b8eb66ef2e7b163176b5272216e86",
        "344e0bc23ca46b9acec97ac8bcd87949bde0ccab"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 20 11:32:51 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Aug 20 11:32:51 2012 -0700"
      },
      "message": "Merge \"Add getmtime command for keys\""
    },
    {
      "commit": "344e0bc23ca46b9acec97ac8bcd87949bde0ccab",
      "tree": "992188c476db298f4b79beec361650217d5b4941",
      "parents": [
        "e7f9da44646b8eb66ef2e7b163176b5272216e86"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 15 10:44:03 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Aug 20 11:17:49 2012 -0700"
      },
      "message": "Add getmtime command for keys\n\nThis allows you to check when a key was last modified.\n\nChange-Id: I167844d9a50e26aadfc73a2252b937d2ef09f09d\n"
    },
    {
      "commit": "d3c598c12c1317f592b8da19e00c8122dba6b0c1",
      "tree": "bf1f6d0fc9f8ed4cd1f24b19da071d608f83801a",
      "parents": [
        "65c1af4a3cbdbe11b17f57c7e47dc2848a5851e3",
        "e7f9da44646b8eb66ef2e7b163176b5272216e86"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 15 23:18:02 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 15 23:18:02 2012 -0700"
      },
      "message": "am e7f9da44: Merge \"Clear out ENGINE flags when initializing\"\n\n* commit \u0027e7f9da44646b8eb66ef2e7b163176b5272216e86\u0027:\n  Clear out ENGINE flags when initializing\n"
    },
    {
      "commit": "e7f9da44646b8eb66ef2e7b163176b5272216e86",
      "tree": "bf1f6d0fc9f8ed4cd1f24b19da071d608f83801a",
      "parents": [
        "593786c9b885a48a2674e3ebb5c3bab265de2e51",
        "938a991106a9bd064eb2ede1fb46d9c2ef94c1be"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 15 22:47:44 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 15 22:47:45 2012 -0700"
      },
      "message": "Merge \"Clear out ENGINE flags when initializing\""
    },
    {
      "commit": "938a991106a9bd064eb2ede1fb46d9c2ef94c1be",
      "tree": "7576f075f910951f05c70f232aab43a7acdd75ad",
      "parents": [
        "aa8467e59b561f454ff7ec902aae688145d8d297"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 15 22:19:25 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Aug 15 22:29:23 2012 -0700"
      },
      "message": "Clear out ENGINE flags when initializing\n\nWe don\u0027t need our engine to be copied when initialized with\nENGINE_by_id, so just make sure our flags are cleared when we\ninitialize.\n\nChange-Id: Ie75fad37c2f78a769c425889c1d0661b468cd0c7\n"
    },
    {
      "commit": "65c1af4a3cbdbe11b17f57c7e47dc2848a5851e3",
      "tree": "f54c67f716beb8e4eda51d16595f1ad159899e9c",
      "parents": [
        "3fff02b4f6c16df61ae89c4c02008a08dbcf5250",
        "593786c9b885a48a2674e3ebb5c3bab265de2e51"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 14 14:05:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 14 14:05:06 2012 -0700"
      },
      "message": "am 593786c9: Merge \"keymaster HAL users don\\\u0027t need delete_keypair\"\n\n* commit \u0027593786c9b885a48a2674e3ebb5c3bab265de2e51\u0027:\n  keymaster HAL users don\u0027t need delete_keypair\n"
    },
    {
      "commit": "593786c9b885a48a2674e3ebb5c3bab265de2e51",
      "tree": "f54c67f716beb8e4eda51d16595f1ad159899e9c",
      "parents": [
        "aa8467e59b561f454ff7ec902aae688145d8d297",
        "9a53d3eaf42104ddf02feeccec3cf7f5c1a34bae"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 14 13:41:49 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Aug 14 13:41:50 2012 -0700"
      },
      "message": "Merge \"keymaster HAL users don\u0027t need delete_keypair\""
    },
    {
      "commit": "9a53d3eaf42104ddf02feeccec3cf7f5c1a34bae",
      "tree": "f54c67f716beb8e4eda51d16595f1ad159899e9c",
      "parents": [
        "aa8467e59b561f454ff7ec902aae688145d8d297"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 14 10:47:54 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Aug 14 12:48:43 2012 -0700"
      },
      "message": "keymaster HAL users don\u0027t need delete_keypair\n\nThe keymaster HAL implementations don\u0027t need the delete_keypair method,\nbut keystore currently throws an error when it\u0027s not implemented. This\ncauses problems with at least the OpenSSL software implementation.\n\nBug: 6985351\nChange-Id: I3d7f7dce2a6d4aad38c20f555ab16aa45f1823b8\n"
    },
    {
      "commit": "c920f2a66356ad85979c180c9620d84856f13a15",
      "tree": "cd5f0861e5182a27b29523316a4ca9d34a0964a5",
      "parents": [
        "c0ff10d48be65cbf498636539316cc378b1c9424"
      ],
      "author": {
        "name": "Bernhard Rosenkraenzer",
        "email": "Bernhard.Rosenkranzer@linaro.org",
        "time": "Thu Jul 12 01:03:20 2012 +0159"
      },
      "committer": {
        "name": "Andrew Sutherland",
        "email": "dr3wsuth3rland@gmail.com",
        "time": "Wed Aug 08 02:51:24 2012 -0500"
      },
      "message": "keystore: Fix build with gcc 4.7+ -Werror\n\nFix code fragments that are errors in ISO C++11 mode,\nand cause warnings in gcc 4.7+ -Werror (narrowing\nconversions inside {})\n\nChange-Id: I878687e1daf99efddc353040805947e26435e535\nSigned-off-by: Bernhard Rosenkraenzer \u003cBernhard.Rosenkranzer@linaro.org\u003e\n"
    },
    {
      "commit": "3fff02b4f6c16df61ae89c4c02008a08dbcf5250",
      "tree": "1eb961dcc531e0a0c98ac5fcb9973178b9dc3ff2",
      "parents": [
        "81a4e0fe5bc012975706047f42aeabe24658f95c",
        "e9478a07d7c3793aae26c1cef85b6c1f02dd42f5"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 27 14:53:40 2012 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Fri Jul 27 14:53:40 2012 -0700"
      },
      "message": "Reconcile with jb-release\n\nChange-Id: Ic25a71c0dcde3cda15caaafd93004f477671db24\n"
    },
    {
      "commit": "e9478a07d7c3793aae26c1cef85b6c1f02dd42f5",
      "tree": "c637f6420271215b27cc0024aa4e1aa7641da793",
      "parents": [
        "c0ff10d48be65cbf498636539316cc378b1c9424",
        "0114bd9f9bbc2458ca77bf3508e7c15992a432b1"
      ],
      "author": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Tue Jul 24 20:23:19 2012 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@android.com",
        "time": "Tue Jul 24 20:23:19 2012 -0700"
      },
      "message": "merge in jb-release history after reset to jb-dev\n"
    },
    {
      "commit": "81a4e0fe5bc012975706047f42aeabe24658f95c",
      "tree": "1eb961dcc531e0a0c98ac5fcb9973178b9dc3ff2",
      "parents": [
        "0114bd9f9bbc2458ca77bf3508e7c15992a432b1",
        "aa8467e59b561f454ff7ec902aae688145d8d297"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Jul 19 01:10:21 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 19 01:10:21 2012 -0700"
      },
      "message": "am aa8467e5: Merge \"Handle keynames with special characters such as - and .\"\n\n* commit \u0027aa8467e59b561f454ff7ec902aae688145d8d297\u0027:\n  Handle keynames with special characters such as - and .\n"
    },
    {
      "commit": "aa8467e59b561f454ff7ec902aae688145d8d297",
      "tree": "1eb961dcc531e0a0c98ac5fcb9973178b9dc3ff2",
      "parents": [
        "c0ff10d48be65cbf498636539316cc378b1c9424",
        "a8c703d9fdd98e3caefb6e74cd03c2878cecd0a1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 18 16:41:27 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jul 18 16:41:28 2012 -0700"
      },
      "message": "Merge \"Handle keynames with special characters such as - and .\""
    },
    {
      "commit": "a8c703d9fdd98e3caefb6e74cd03c2878cecd0a1",
      "tree": "1eb961dcc531e0a0c98ac5fcb9973178b9dc3ff2",
      "parents": [
        "c0ff10d48be65cbf498636539316cc378b1c9424"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 17 14:43:46 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Jul 18 16:32:17 2012 -0700"
      },
      "message": "Handle keynames with special characters such as - and .\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d34577\nBug: 6837950\n\n(cherry-picked from 0114bd9f9bbc2458ca77bf3508e7c15992a432b1)\n\nChange-Id: I0c265fe73c1b2c430ffd196a21691264f8f3b555\n"
    },
    {
      "commit": "0114bd9f9bbc2458ca77bf3508e7c15992a432b1",
      "tree": "1eb961dcc531e0a0c98ac5fcb9973178b9dc3ff2",
      "parents": [
        "c0ff10d48be65cbf498636539316cc378b1c9424"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 17 14:43:46 2012 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Jul 17 23:56:36 2012 -0700"
      },
      "message": "Handle keynames with special characters such as - and .\n\nBug: http://code.google.com/p/android/issues/detail?id\u003d34577\nBug: 6837950\n\nChange-Id: Id441e341073558ab8b20144a7e7f4f7a92c6a19e\n"
    },
    {
      "commit": "c0ff10d48be65cbf498636539316cc378b1c9424",
      "tree": "c637f6420271215b27cc0024aa4e1aa7641da793",
      "parents": [
        "bef8083783df4b06972f33b468eccf941e335864"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 17 12:42:15 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 17 12:42:15 2012 -0700"
      },
      "message": "Make sure delete_all function pointer is NULL\n\nThe peril of not using calloc mean delete_all is not initialized until\nwe explcitly set it. Explicitly set delete_all to NULL to avoid that.\n\nChange-Id: Ic370453e6142c6d1b2566df9844b4fac4bc53042\n"
    },
    {
      "commit": "bef8083783df4b06972f33b468eccf941e335864",
      "tree": "61e0cc4f97345390a8c238f844d59b6a84185c69",
      "parents": [
        "e95ce35d10d6e0a7315a57f30d9c88d89880a4e1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 03 11:19:28 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu May 03 13:53:03 2012 -0700"
      },
      "message": "Only initialize ex_data if not already\n\nENGINE_by_id will load up multiple copies of the engine which will\ncreate a new ex_data index each time it\u0027s called. This change makes sure\nthe ex_data index is only initialized once.\n\nChange-Id: I5e197faf6273ec3b3cafcbeadf7da8ec04a4f50b\n"
    },
    {
      "commit": "e95ce35d10d6e0a7315a57f30d9c88d89880a4e1",
      "tree": "277806ae7d0d80fba813cb071d239bdfd355b8aa",
      "parents": [
        "da1ed9ab99c00698af64ec655ff668efffe2960d"
      ],
      "author": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Fri Apr 06 18:35:36 2012 -0700"
      },
      "committer": {
        "name": "Amith Yamasani",
        "email": "yamasani@google.com",
        "time": "Wed Apr 11 15:44:24 2012 -0700"
      },
      "message": "Allow calls from secondary user Settings app.\n\nThis is so that Face Unlock can be a valid option for a lockscreen.\nOtherwise get a PERMISSION_DENIED when uid \u003d 101000.\n\nChange-Id: I0085b27dbd4d2f1988ba654acadd72c30f76a47e\n"
    },
    {
      "commit": "da1ed9ab99c00698af64ec655ff668efffe2960d",
      "tree": "600382831b66c5017afb6f19178fd3c3f1993319",
      "parents": [
        "98c2f8fcc1263a9d94adac66994fffc96c0df699"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 10 12:34:07 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Apr 10 12:34:09 2012 -0700"
      },
      "message": "Turn on extra compiler checks\n\nTurn on the compiler flags -Wall -Wextra -Werror to make sure no\ncompiler warnings are added to the project.\n\nEliminate all unused arguments. Remove unused variables in code.\n\nChange-Id: I0940ba897ac716b4a256f94fcd671f1ff5abc62c\n"
    },
    {
      "commit": "98c2f8fcc1263a9d94adac66994fffc96c0df699",
      "tree": "3c41b752cb897a329455b07156c9bb5b8cee8551",
      "parents": [
        "822c3a99d930e9299e2fad2fb3e0ff91b119b95a"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 28 09:44:09 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Mar 28 09:44:58 2012 -0700"
      },
      "message": "use UniquePtr.h from frameworks/native\n\nUse the UniquePtr.h include from frameworks/native/include/utils\nto fix the pdk build.\n\nChange-Id: Ic415b43d2eb8c0b7ef54b6f3f75b7fa0d5f7a058\n"
    },
    {
      "commit": "822c3a99d930e9299e2fad2fb3e0ff91b119b95a",
      "tree": "30d12cd0df6c5921863451542a70749c2206d17b",
      "parents": [
        "298e7b1b0f9116e2054d594d7538379d86585035"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 23 16:34:39 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 27 14:58:04 2012 -0700"
      },
      "message": "Add support for upgrading key types\n\nOld key types were not distinguished by the keystore itself. This change\ntakes some of the reserved fields in the old format and changes it to a\nversion number and key type.\n\nChange-Id: I45bd4cdce042617641fe7bd742bbe26da6024996\n"
    },
    {
      "commit": "298e7b1b0f9116e2054d594d7538379d86585035",
      "tree": "5cb99cf55cba41ae6bcdfc709ccb07456f52ff83",
      "parents": [
        "70e3a86abd2c412d602a018967c01c177eb6cf4e"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 26 13:54:44 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Mar 26 14:47:38 2012 -0700"
      },
      "message": "Add keymaster delete_all call on reset\n\nTo allow efficient deletion by hardware keymaster modules, add a direct\ndelete_all call when keystore is reset. This will also probably fix\nproblems where the hardware keymaster gets more keys than keystore knows\nabout and fills up its storage.\n\nChange-Id: I452e2e609802201dc7db2f52f95b44d72f79efa2\n"
    },
    {
      "commit": "70e3a86abd2c412d602a018967c01c177eb6cf4e",
      "tree": "e59ab280a44ff7d4a408bd3dcb298f3840ba13ae",
      "parents": [
        "5187818895c4c5f650a611c40531b1dff7764c18"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 17:20:23 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Mar 21 17:12:27 2012 -0700"
      },
      "message": "Add keymaster to keystore with soft implementation\n\nAdd hardware crypto capabilities to keystore. This allows hardware\nescrow of private key material.\n\nThere is also an OpenSSL engine that connects to keystore to allow use\nof the keystore keys from native code built into the platform.\n\nThis includes a software implementation of keymaster using OpenSSL\nas the backend.  This is just as insecure as the previous solution,\nbut it\u0027s needed so devices without hardware support can continue\nto operate in the new scheme without a lot of compatibility code.\n\nChange-Id: I2bc67766e1f633ef1cbbd2874a65962074e84f4f\n"
    },
    {
      "commit": "5187818895c4c5f650a611c40531b1dff7764c18",
      "tree": "4d57b0fb9ae17a339383e3a410f762469dd0a07a",
      "parents": [
        "a91203b08350b2fc7efda5b1eab39e7541476b3a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 13 12:53:19 2012 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Mar 13 15:24:37 2012 -0700"
      },
      "message": "keystore_client shared library\n\nAdd a libkeystore_client.so library for clients to use.\n\nAdd const-correctness to the keystore.cpp classes.\n\nIncrease maximum arguments for future work.\n\nChange-Id: Ia22f8b893aea3115a7b4a0543ad392c17c8528f2\n"
    },
    {
      "commit": "a91203b08350b2fc7efda5b1eab39e7541476b3a",
      "tree": "d80ad189f738a89d064d0c59f85c2bf3ec984918",
      "parents": [
        "984d6fa91345087eb50af3829f6d1ff20db8c7bf"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 15:00:46 2012 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 15 15:55:09 2012 -0800"
      },
      "message": "Move keystore from frameworks/base\n\nMove keystore from frameworks/base at commit\n57ff581bd9b16a192a567f84d0e0a5c82d866343\n\nChange-Id: I1e62488d63810f14e40ffb3d192925ff4eeb8906\n"
    },
    {
      "commit": "984d6fa91345087eb50af3829f6d1ff20db8c7bf",
      "tree": "4b825dc642cb6eb9a060e54bf8d69288fbee4904",
      "parents": [],
      "author": {
        "name": "Anatol Pomazau",
        "email": "anatol@google.com",
        "time": "Wed Feb 15 12:35:58 2012 -0800"
      },
      "committer": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Wed Feb 15 12:35:58 2012 -0800"
      },
      "message": ""
    }
  ]
}
