)]}'
{
  "log": [
    {
      "commit": "b569a0c56c46fad4792db68e4c8db720eeee17d1",
      "tree": "5f1aeed9d54f1fde2fff6293afa3e1e3bc8e928f",
      "parents": [
        "28d14d9cb695438bb198a27af404c5f79f849418",
        "2bcc7900baa130b696d8e35f596b051e660f1629"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Thu Oct 05 13:30:49 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Oct 05 13:30:49 2023 +0000"
      },
      "message": "Merge \"biometric: Add support for KeyAgreement to AndroidX\u0027s CryptoObject.\" into main am: 2bcc7900ba\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2646885\n\nChange-Id: I75842c7097aaf25a28aa83a348672566ffc64f19\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9f5205c53d781e3b345f683b33a6de3bf855d78e",
      "tree": "340fa6c93567685460a4dde4d22313a7e19edcb1",
      "parents": [
        "0c787f5b6e8eac145596a20fd89ac465911311bf"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Tue Jul 04 18:57:09 2023 +0100"
      },
      "committer": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Thu Sep 28 10:32:43 2023 +0000"
      },
      "message": "biometric: Add support for KeyAgreement to AndroidX\u0027s CryptoObject.\n\nAndroid 13 / T / API 33 introduced a new class in Crypto Object\nin the Android Framework. This allows auth-per-op for ECDH\nkeys.\n\nBug: 282058146\nTest: atest FrameworksCoreTests\nAPI-Coverage-Bug: 282058146\nChange-Id: I17877fed90ae0b3894b28967c28786a091557dd2\n"
    },
    {
      "commit": "3b167877a142c43e98f23afef509af7bc0e9a5c4",
      "tree": "ebca74839650e98fa712e3dab0de5254d8cf84d2",
      "parents": [
        "ffc308aab8d656743baf7b2c5f068b57ab8f0dda",
        "32b5cf1bacafad01781fb75d90d88b37a2b04911"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Sep 26 22:31:57 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 26 22:31:57 2023 +0000"
      },
      "message": "Merge \"MGF1 Digest: Add separate setter\" into main am: 32b5cf1bac\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2733037\n\nChange-Id: I65b79dd8d6c75d42ef3e5fe2ee0755cbdc6b2cd7\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d61656c5002d58816e2b6e1e3dcd46dce1551f35",
      "tree": "8c3cbcadb4ef18a1571af3a97c19b39ab0f1e77b",
      "parents": [
        "5f42c65ee497d03ebe7dbc89deb0c88cb413c81f"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Aug 30 12:12:29 2023 +0100"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Fri Sep 22 12:09:58 2023 +0000"
      },
      "message": "MGF1 Digest: Add separate setter\n\nAdd a separate setter for the digests used by the MGF1 mask generation\nfunction (for RSA OAEP operations).\n\nPreviously the MGF1 digests were specified according to the primary\ndigests specification, which is not accurate enough.\n\nWith the new setter:\n* If the user does not explicitly specify MGF1 digests, then the\n  default (SHA-1) will be specified in the tag passed to Keystore.\n* If the user does explicitly specify MGF1 digests, only those\n  digests will be specified in the tag passed to Keystore.\n  The SHA-1 digest will not be added.\n\nBug: 284140060\nTest: atest android.security.keystore.KeyGenParameterSpecTest android.security.ParcelableKeyGenParameterSpecTest\nTest: atest CtsKeystoreTestCases:android.keystore.cts.CipherTest#testKatBasicWithDifferentProviders\nChange-Id: I1521e9b4399ece33c2d17b79133543d490d3b377\n"
    },
    {
      "commit": "f8bb824a5663575d5c0555fd522f00fbc5988bf3",
      "tree": "ae9734eb338edfcb8263cc6b8650e843c02eca72",
      "parents": [
        "c72dab4892d0adb4ab6897366e256028969e3b81",
        "250127b2f8730d20e54d0850f151952ef1fc0ad3"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Mon Sep 18 15:18:24 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Sep 18 15:18:24 2023 +0000"
      },
      "message": "Merge \"[Keystore] Use Strict for every call into keystore\" into main am: 250127b2f8\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2703653\n\nChange-Id: I3c9954a7b3f5a8d105c9a12467ba90af3d7987e2\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "250127b2f8730d20e54d0850f151952ef1fc0ad3",
      "tree": "36802eab3f1ed0db305dad4e46de8a4e94d4025e",
      "parents": [
        "d4da63fcb6407e79a749c1d4dde0a7d1b1119898",
        "8576d9c65bc75ff4747763bc9f286aaa622cfe24"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Mon Sep 18 14:20:46 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Sep 18 14:20:46 2023 +0000"
      },
      "message": "Merge \"[Keystore] Use Strict for every call into keystore\" into main"
    },
    {
      "commit": "56092cea7af0e3f94a11b22a54a693e147d876a7",
      "tree": "8fe0d9c12859667b4ddf969ee7d099a20ff8f7ca",
      "parents": [
        "aae7f568489b4c9264034043476bbebf2aa4a4b3",
        "15a2601cc98f7faa60403029ee055f063ee4ee87"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "android-test-infra-autosubmit@system.gserviceaccount.com",
        "time": "Sat Sep 16 21:15:32 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Sep 16 21:15:32 2023 +0000"
      },
      "message": "Merge \"Fix error message formatting\" into main am: 15a2601cc9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2753145\n\nChange-Id: I35937096c21fc0195f47e332ad35e178a6d988b4\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "39e9c5cf771c370598489b88de413e285c7ddde7",
      "tree": "3897f3c3c2007c773ce1613dbb35d3ff937dfe89",
      "parents": [
        "3cc0f825fe8c99dcc6a9e42f9dcd75923cf41bb9"
      ],
      "author": {
        "name": "Tri Vo",
        "email": "trong@google.com",
        "time": "Thu Sep 14 16:30:34 2023 -0400"
      },
      "committer": {
        "name": "Tri Vo",
        "email": "trong@google.com",
        "time": "Thu Sep 14 16:30:40 2023 -0400"
      },
      "message": "Fix error message formatting\n\nTest: m\nChange-Id: I9a0c7b5e912b882a1815afb1eddc02f7cb7872c5\n"
    },
    {
      "commit": "8576d9c65bc75ff4747763bc9f286aaa622cfe24",
      "tree": "f63f0a83e497c4d53895528bd7ebe68c1aa358a1",
      "parents": [
        "ad2316cd10de23323b4bd43ab8ce49eff6ecf205"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Thu Aug 10 16:36:53 2023 +0100"
      },
      "committer": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Wed Sep 13 14:24:22 2023 +0100"
      },
      "message": "[Keystore] Use Strict for every call into keystore\n\nThis has strictmode annotations for when calls are\nmade into Keystore DB to make reads or writes.\n\nTest: atest CtsKeystoreTestCases\nBug: 180135124\nChange-Id: I819e1c63875a4af16a6fbe991a9f7c9c95ea8e6a\n"
    },
    {
      "commit": "7d3ffbae618e9e728644a96647ed709bf39ae759",
      "tree": "ab369a30c6a0e17a69c8f80c6353be4de3692e10",
      "parents": [
        "a8a87bbca9162af7add830139198c4ee899fa123",
        "8a809c6e46007521f75ac035ad4b1dcc1d00d9cf"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 25 12:59:08 2023 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Aug 25 12:59:08 2023 -0700"
      },
      "message": "Merge Android U (ab/10368041)\n\nBug: 291102124\nMerged-In: I3c9e9d15786fbead1b874636b46844f6c24bccc2\nChange-Id: Id6cf6cc13baef4e67486c6271a1510146204affa\n"
    },
    {
      "commit": "6b85f8e8c42ac3217c16923f8d9a8c5f9f48c7da",
      "tree": "53908b5e648d21d2e11d63cd1a643a16718c4d4a",
      "parents": [
        "a2d740da81964480f384a4925fe7ddcf3782a498"
      ],
      "author": {
        "name": "Chan Kim",
        "email": "kimchan@google.com",
        "time": "Mon Aug 21 21:37:57 2023 +0000"
      },
      "committer": {
        "name": "Chan Kim",
        "email": "kimchan@google.com",
        "time": "Tue Aug 22 08:08:32 2023 +0000"
      },
      "message": "Update language to comply with Android\u0027s inclusive language guidance\n\nSee https://source.android.com/setup/contribute/respectful-code for reference\n\nFor this round, the fixes are only applied to the following to minimize breaking dependencies:\n  * comments (excluding javaDoc annotations)\n\t* private constants\n\t* private functions\n\t* parameters within functions\n\nBYPASS_INCLUSIVE_LANGUAGE_REASON\u003dJust updating a few select inclusive language violations.\nNo-Typo-Check: Changes focused on inclusive language violations.\nBUG: 295342157\nChange-Id: I70dcadc67c13c34edda553897847249e92c26239\n"
    },
    {
      "commit": "488eed6f84f4fc1a15a6097d1e60a30b3c4ad2a5",
      "tree": "7a6851dc9edc56fd259325f421ba0ac04f525a4b",
      "parents": [
        "798b1fe4e85744fabe949451b5eb38f581bfd844",
        "5cd51fe5b472ebf8de6fd98063df1379a673d3ff"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Wed Aug 16 23:57:49 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Aug 16 23:57:49 2023 +0000"
      },
      "message": "Merge \"Update owners for keystore related files\" into main"
    },
    {
      "commit": "fdbe53a56de6e9861693bf063b4e48eb53fde0f1",
      "tree": "393a00c62ef589b07bc72167af4a13134aa3c1ba",
      "parents": [
        "e7a2d0a06c294289668cd28be37e864f6b60a08b"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Mon Aug 14 23:41:00 2023 +0000"
      },
      "committer": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Tue Aug 15 01:12:08 2023 +0000"
      },
      "message": "Simplify some code in KeyStore2ParameterUtils#addUserAuthArgs\n\nDeduplicate the addition of the SIDs and USER_AUTH_TYPE, and consolidate\nthe handling of isUserAuthenticationValidWhileOnBody() into one place.\nNo change in behavior.\n\nTest: atest KeystoreTests\nChange-Id: Ic57e3506a62d90ee0fd7b5860d4cda44aa1b5acf\n"
    },
    {
      "commit": "5cd51fe5b472ebf8de6fd98063df1379a673d3ff",
      "tree": "8bce8afd24d583c812e17d06a6892a9a4f6a3e80",
      "parents": [
        "a3ad41ea3d0dbf0f551e09fda6623cacfcf2a714"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Fri Aug 11 02:57:05 2023 +0000"
      },
      "committer": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Fri Aug 11 03:13:47 2023 +0000"
      },
      "message": "Update owners for keystore related files\n\n- Make core/java/android/security/keystore/OWNERS include\n  keystore/OWNERS instead of duplicating it\n\n- Make core/tests/coretests/src/android/security/keystore/ owned by\n  keystore/OWNERS instead of no one\n\n- Make core/java/android/security/Confirmation*.java owned by\n  keystore/OWNERS instead of an individual person\n\n- Remove core/java/android/security/keystore/recovery/OWNERS, as it was\n  redundant with OWNERS of its parent directory\n\n- Remove Xoogler jdanis@\n\nChange-Id: I64c1c624dcc92fbf20a6d4fb667cf47240edf4d5\n"
    },
    {
      "commit": "8cbd940de917925266cb6f2086975a79ba4760ca",
      "tree": "58e6802425ff9faa29c2c919945d1b9483ec291a",
      "parents": [
        "a680cb9cf85b6873eb367a6a0eb054caf3f56916"
      ],
      "author": {
        "name": "Jaeyoon Lee",
        "email": "joyful.lee@samsung.corp-partner.google.com",
        "time": "Thu Jun 29 16:05:54 2023 +0900"
      },
      "committer": {
        "name": "Jaeyoon Lee",
        "email": "joyful.lee@samsung.corp-partner.google.com",
        "time": "Wed Aug 09 17:33:34 2023 +0900"
      },
      "message": "Insert DEFAULT_MGF1_DIGEST SHA-1 on MGF_DIGEST tag when ImportWrappedKey\n\nSecureKeyImport is failed because of MGF_DIGEST tag mismatch.\nwrapping key has MGF_DIGEST tag when generate or import key\nbut importWrappedKey logic does not have MGF_DIGEST tag on WrappedKeyEntry\nSo MGF_DIGEST tat mismatch error occur when decrypt wrapped key using wrapping key\n\nInsert SHA-1 value on MGF_DIGEST tag because ImportWrappedKey should have spcified format\nthat keymint is compulsorily checking main digest SHA-256 and MGF digest SHA-1.\n\nAnd MGF_DIGEST tag will add only wrappingkey has MGF_DIGEST value\nin order not to affect keys generated prior to Android14.\n\nBug: 277853193\nTest: android.keystore.cts.ImportWrappedKeyTest#testKeyStore_ImportWrappedKey\nChange-Id: Id7229a763e3041ffbe73989a2bb24306b7beb7a5\nSigned-off-by: Jaeyoon Lee \u003cjoyful.lee@samsung.corp-partner.google.com\u003e\n"
    },
    {
      "commit": "eed83858fb4cc41d236fbb1de9f72a49c7216580",
      "tree": "bb83e6015d28e6614843dd25dbea0ab6978fcef4",
      "parents": [
        "dde5ebaa583af372926e75a4ac495e7c78691cc1"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Jul 18 11:49:58 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jul 18 11:49:58 2023 +0000"
      },
      "message": "Revert \"Fix Rsa-Oaep operation begin on T+GSI build\"\n\nThis reverts commit dde5ebaa583af372926e75a4ac495e7c78691cc1.\n\nReason for revert: Will re-introduce http://b/278157584\n\nEven though KeyMint v2 supports the MGF_DIGEST tag, it does not include it in the key characteristics. This would not be a problem for keys generated on an Android U device with KeyMint v2 but it will be a problem on a device that was upgraded to Android U where keys were generated before the upgrade (so the MGF_DIGEST tag was not added).\nBecause we have no way of knowing if the MGF_DIGEST tag was specified when the key was created on KeyMint implementations older than v3, we should not add the tag on begin().\n\nChange-Id: I7b34799b95eb2ff054ec4d090ccbd93e6442dcfe\n"
    },
    {
      "commit": "dde5ebaa583af372926e75a4ac495e7c78691cc1",
      "tree": "c6ab3a931ce84f60858eeac1a743aeb2e74bb9c8",
      "parents": [
        "bc38028c8d2938d866fff1bba9d947e444f6106a"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Mon Jul 10 17:46:16 2023 +0000"
      },
      "committer": {
        "name": "Android Build Cherrypicker Worker",
        "email": "android-build-cherrypicker-worker@google.com",
        "time": "Mon Jul 10 17:46:16 2023 +0000"
      },
      "message": "Fix Rsa-Oaep operation begin on T+GSI build\n\nMixed build of Android T + U GSI misses to add RSA_OAEP_MGF_DIGEST in\nkey begin operation parameters and hence RSA cipher operation fails.\nThis was due to Keymint 200 implementation in Android T supported\nRSA_OAEP_MGF_DIGEST tag but did not included into key characteristics and\nthe check in AndroidKeyStoreRSACipherSpi fails on Android T + U GSI\nbuilds.\n\nTo fix this issue additional condition added to check if key\ncharacteristics do not have RSA_OAEP_MGF_DIGEST tag but the KeyMint\nversion is 200 then it has to include in operation parameters.\n\nBug: 289859292\nBug: 289749312\nBug: 287891167\nBug: 287532460\nTest: atest  CtsKeystoreWycheproofTestCases:com.google.security.wycheproof.RsaOaepTest\nTest: atest CtsKeystoreTestCases:android.keystore.cts.CipherTest#testKatBasicWithDifferentProviders\n(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d8b18413ade6ba13817caae52abdffc609a92d89)\nMerged-In: I13ca50a45e733276d1451d17904780eff86bf296\nChange-Id: I13ca50a45e733276d1451d17904780eff86bf296\n"
    },
    {
      "commit": "2fd15b0be2515668bb537f7ea73e6ff678e403d0",
      "tree": "fde3da19dd6d5e22d9b765e07fffbd11fe430ff7",
      "parents": [
        "3e77c6f37e4f5b7336e123c186de5920936c5c96"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Jun 21 17:35:51 2023 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Jun 21 17:52:41 2023 +0100"
      },
      "message": "Update documentation regarding auth-bound keys.\n\nWhen a key requires user authentication and one of the authentication\nmethods permitted is the device\u0027s screen lock credentials, the\nroot SID is added as an authenticator, and change of biometrics\nenrollment will not invalidate the key.\n\nBug: 275900161\nTest: m docs\nChange-Id: I180f28883a5ac62e8bfa0b0596396085ff676637\n"
    },
    {
      "commit": "113c14dac3f3083131f4fc8b3f5c68fcd36a3fea",
      "tree": "a6cde1abcbb9e191a0758ca707dc8191e3c1a0b2",
      "parents": [
        "862a76004302ceec1e424da36ccc912792bddb19",
        "060c58dd6c6bd1d4f0fd19982c4fb332f1e23121"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon May 08 19:15:22 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 08 19:15:22 2023 +0000"
      },
      "message": "Merge \"Keystore: Added missing error codes\" am: 15821b60a7 am: 3b67462324 am: 060c58dd6c\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2534342\n\nChange-Id: Idf72f2a3443957ed754cc906f231daefe77e1700\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "15821b60a7d769a929af23278f16ba25d0a581dc",
      "tree": "a83b705e7f34ca88dcec62932950b3f1a065369d",
      "parents": [
        "75a97e482f7360f66925ce02f1f77f56de18c38e",
        "b15ca79b52a8a5ae5d7f570099943599fe2789a1"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Fri May 05 10:27:39 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 05 10:27:39 2023 +0000"
      },
      "message": "Merge \"Keystore: Added missing error codes\""
    },
    {
      "commit": "6b22231ab4ec48f3bc0ef194704d16053805f11e",
      "tree": "61140826dfaeb68bf3f71511c42262b744ec2761",
      "parents": [
        "348da5d80cc4121cc4a05e498d58dd142bf9241b",
        "ec976c0e7076fce2e676e9a761f5937ef0bbd9b9"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 28 22:08:07 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 28 22:08:07 2023 +0000"
      },
      "message": "Merge \"Do not add the MGF Digest tag for upgraded keys\" am: 61949e6125 am: b37825fc4c am: ec976c0e70\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2561632\n\nChange-Id: I5b88939beb0b1ffbebcde8485ad0a10bf78c26fc\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b15ca79b52a8a5ae5d7f570099943599fe2789a1",
      "tree": "7bab2722b52ef0a67652d09a485a077d82dfe292",
      "parents": [
        "a750dcaaa60e64e4654f335c021f2ecd3f4b985e"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Thu Apr 13 13:19:42 2023 +0100"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Thu Apr 27 10:27:46 2023 +0100"
      },
      "message": "Keystore: Added missing error codes\n\nAll error codes defined in ErrorCode.aidl file are expected to be\nmapped in KeymasterDefs.java file, excluding -62 which is handled by\nKeystore and not required to define on Jaya layer.\nSo missing error codes from KeymasterDefs are added and also categorized\nin KeyStoreException class.\n\nBug: 206432492\nTest: atest CtsKeystoreTestCases:android.keystore.cts.KeyStoreExceptionTest\nChange-Id: I9df69e03379d0437457037e16de76feb27ea8aaf\n"
    },
    {
      "commit": "05d046390769a8ba6f113ea6b191d9addf183627",
      "tree": "90027ee5d491b372173c15547e43f55647e1eaac",
      "parents": [
        "b36fa7723ab2f105b532be74cbfa5cdb902a4b79"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu Apr 20 18:09:01 2023 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Apr 26 11:40:35 2023 +0100"
      },
      "message": "Do not add the MGF Digest tag for upgraded keys\n\nIf a key does not have the MGF_DIGEST tag in its key characteristics,\ndo not include the MGF_DIGEST tag for it (even if the algorithm string\nspecifies it).\n\nThis fixes an issue with keys that were generated on Android 13, where\nthe MGF_DIGEST tag was not propagated from the SPI layer. Such keys will\nnot have the MGF_DIGEST tag and so it will not be added by the SPI layer\neven if the algorithm string specifies it. This maintains Android 13\u0027s\n(incorrect) behaviour of ignoring the MGF Digest specification, but is\nnecessary to use those keys (otherwise KeyMint will error out\non begin() due to an incompatible MGF digest specification).\n\nBug: 278157584\nTest: atest CtsKeystoreWycheproofTestCases:com.google.security.wycheproof.RsaOaepTest\nChange-Id: I0f1fa7983f9c771bec3196c6a617eb7044ac2e79\n"
    },
    {
      "commit": "193ab2c2cbdfb1736093e6807b9f4dae46f9c6f6",
      "tree": "b6fee856f5a42ade8edd36ec1ce1b0746a38231a",
      "parents": [
        "dc00c3a1099eb81df215c6a0b249cfb7dcc4bbc4",
        "34b764f9e3db00762ac74d48829ae9fb3e9b7d0e"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Apr 19 12:38:07 2023 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 19 12:38:07 2023 +0000"
      },
      "message": "Merge \"Support non-user-0 profile in ManagedProfilePasswordCache\" into udc-dev"
    },
    {
      "commit": "34b764f9e3db00762ac74d48829ae9fb3e9b7d0e",
      "tree": "e3dd4008eea4bb4f365f6bbd9316708048fe302b",
      "parents": [
        "068e0087b52358f471b390535970a46a7854ff04"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Wed Apr 12 15:22:59 2023 +0100"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Fri Apr 14 11:18:59 2023 +0100"
      },
      "message": "Support non-user-0 profile in ManagedProfilePasswordCache\n\nBug: 272704160\nTest: com.android.server.locksettings\n      com.android.cts.devicepolicy.QuietModeHostsideTest\n      KeyGenParameterSpecTest\n      Manual\nChange-Id: I620cc4455ca0f7a8508f12b7550039200b42b8e8\n"
    },
    {
      "commit": "df4ebb5308adcaeff6c1f87b7bc97965a276b63f",
      "tree": "ffc62fc29513d51e1002fba864c3571d1cb2f1a3",
      "parents": [
        "91cc19947d21af2bac38ba6611a379728210d8b3",
        "3ede8dd0bee068fe35aad6eb1c1fdc6747fea27f"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Fri Apr 07 19:07:28 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 07 19:07:28 2023 +0000"
      },
      "message": "Merge \"Remove the GenerateRkpKey service\" am: 067a2fde55 am: f1cfe0ee11 am: 3ede8dd0be\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2518515\n\nChange-Id: Ib407dfd12438bb8bbdc3eb00c77db58cea7442dc\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "651ffe62867f6448581e550d3433100f943e16cc",
      "tree": "96bcf37f8bf0661164d346cfc533a30b02a0f6ee",
      "parents": [
        "932fe8ac1d0253abba86036811f004bf36dabc8e"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Fri Mar 31 15:26:37 2023 -0700"
      },
      "committer": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Mon Apr 03 08:48:15 2023 -0700"
      },
      "message": "Remove the GenerateRkpKey service\n\nWith the move to rkpd, we no longer need to make calls from framework\ninto the remote provisioner to tell it that a key was consumed.\n\nBug: 274823784\nTest: atest KeystoreTests\nTest: atest CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest\nChange-Id: I510d471a980c62e5798e459729f73c231321d2a9\n"
    },
    {
      "commit": "6f965bea4a360accd96f4fbf6d196663b9d54ab8",
      "tree": "85ff6dcd267e9b58d8df2c8c5e63ce41f64f8221",
      "parents": [
        "794e48ab44ac7afadeb3edf8b0e0d98810ee330a",
        "aa945174e9e171dd265b457a8f55651cc4b2983a"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Mar 27 11:36:54 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 27 11:36:54 2023 +0000"
      },
      "message": "Merge \"Batch fetching of key descriptors from Keystore\" am: 2051907ae1 am: 5bb8c65e6b am: aa945174e9\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2422847\n\nChange-Id: If58ca21bdffd92aaea8fb387db7fb7bde5eb734c\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "2051907ae1b833fe4f70f0e0e16e2899d4b919b5",
      "tree": "f51dc98f420c6943da9da2dc244aa3f521728936",
      "parents": [
        "c056bd22a3d5c1743893a75466cfba47f9b5c9a1",
        "17ad506f0eea49c2e8e0721ce6f754fe3f6003a3"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Mar 27 10:18:00 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 27 10:18:00 2023 +0000"
      },
      "message": "Merge \"Batch fetching of key descriptors from Keystore\""
    },
    {
      "commit": "17ad506f0eea49c2e8e0721ce6f754fe3f6003a3",
      "tree": "f7976e2ad953c74d496290bbfeac115c1a80ba89",
      "parents": [
        "042dc5fb98fea62a5e9f774b7df897037a64fce4"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Feb 06 22:18:30 2023 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Mar 20 15:07:21 2023 +0000"
      },
      "message": "Batch fetching of key descriptors from Keystore\n\nChange interaction with Keystore2 in the following manner:\n* Return an enumerator over the entries in Keystore2 rather than\n  attempting to get all of them into one single data structure.\n* Use a new Keystore2 method for getting the count of entries\n  rather than count the size of the array returned.\n\nThe enumerator reads a batch of key descriptors from Keystore2.\nOnce the batch has been exhausted, the enumerator added asks\nKeystore2 for the next batch of keys starting with the last\nalias it has processed, until it receives an empty array.\n\nBug: 222287335\nTest: atest KeystoreTests\nChange-Id: I309b3188df998825557a3c5e6d777b1c0807a924\n"
    },
    {
      "commit": "58a3d8322cb748760b8b303009c9830c97b36252",
      "tree": "78208439e624e5b24120a95e793232d3c376f217",
      "parents": [
        "2cbedeb0d776cbc6527edfffdba498906c4af4c6",
        "558957b13406a093949fab764aba9c5c9a1b7a45"
      ],
      "author": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Mon Mar 20 11:03:45 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Mar 20 11:03:45 2023 +0000"
      },
      "message": "Merge \"Use SecureRandom instead of java.util.Random.\" am: 415be6e357 am: 69cb81929d am: 558957b134\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2485125\n\nChange-Id: I93c71101edee52fcc6945508ff7c022e583e83e5\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "415be6e357e080fb89ea1be010409bf090fdb5f7",
      "tree": "83421d440c5c75bf3ce8561cefd7daf8bf846a02",
      "parents": [
        "ec59bee3db8004f2dadfcd6eb677a109c517ab6f",
        "01619683923174b57d8708e909a47afbd7e84103"
      ],
      "author": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Mon Mar 20 09:12:15 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Mar 20 09:12:15 2023 +0000"
      },
      "message": "Merge \"Use SecureRandom instead of java.util.Random.\""
    },
    {
      "commit": "01619683923174b57d8708e909a47afbd7e84103",
      "tree": "ca9646bc1bfe571bda6e89f6ebec4a8d3cd3cb42",
      "parents": [
        "2f18344d982e7c50922fa099a007646702a16a0f"
      ],
      "author": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Tue Mar 14 14:07:50 2023 +0000"
      },
      "committer": {
        "name": "Almaz Mingaleev",
        "email": "mingaleev@google.com",
        "time": "Tue Mar 14 16:21:17 2023 +0000"
      },
      "message": "Use SecureRandom instead of java.util.Random.\n\nThe latter might be initialized in the Zygote and return the same\nsequence within app restarts.\n\nBug: 273524418\nFix: 273524418\nTest: m\nChange-Id: Id85082edffb7b769bb5f78d66b561e5e097227c5\n"
    },
    {
      "commit": "e6f3310b9e5be6629198825557492064a34cc539",
      "tree": "501a09fc3d5c3a8c282e8a95604de396d6a73c40",
      "parents": [
        "9d177c71934f369a3dacd24fe4fad1898c87be4f",
        "5513e8be197c9f86a01e2000af544708c990f787"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Mar 14 13:14:23 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 14 13:14:23 2023 +0000"
      },
      "message": "Merge \"Keystore: Attestation fix for AOSP and GSI builds\" am: d37d9aadbf am: 8e1e309bf8 am: 5513e8be19\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2449489\n\nChange-Id: I49088359d923eefb3cefece1005eeac417bf2665\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "fb32aac1ea60bf267ff013f6e1023641736c6de5",
      "tree": "111052d43ae21aeef00a08646a22eb30afcd0863",
      "parents": [
        "03dfa27d40d55fb019cad287e6609fb3a58f246b"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Wed Feb 22 10:40:46 2023 +0000"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Mon Mar 13 18:28:06 2023 +0000"
      },
      "message": "Keystore: Attestation fix for AOSP and GSI builds\n\nDevice ID attestation was failing in AOSP and GSI images due to\nproperties mismatch in Build.java and actual device properties.\n(For example, the value of Build.DEVICE on a Raven device running\nan AOSP build would be \u0027aosp_raven\u0027, but KeyMint was provisioned\nwith the value \u0027raven\u0027.)\n\nTo fix above issue, properties ro.product.*_for_attestation were\nintroduced in AOSP build files (eg. aosp_raven.mk) only. But this\nwas not sufficient for both AOSP and GSI. The same solution does\nnot work for GSI images: GSI images are generic and so we cannot\nset device-specific properties in them.\n\nSo, if ro.product.*_for_attestation properties are empty or unknown,\nthey are read from ro.product.vendor because these values are not\nchanged after flashing GSI images also. This fix will work for\nboth AOSP and GSI images. Device ID properties preferences for\neg. Build.BRAND_FOR_ATTESTATION \u003d ro.product.brand_for_attestation -\u003e\nro.product.vendor.brand -\u003e UNKNOWN.\n\nBug: 268294752\nBug: 110779648\nBug: 259376922\nTest: atest VtsAidlKeyMintTargetTest:PerInstance/NewKeyGenerationTest#EcdsaAttestationIdTags/0_android_hardware_security_keymint_IKeyMintDevice_default\nTest: atest VtsAidlKeyMintTargetTest:PerInstance/NewKeyGenerationTest#EcdsaAttestationIdTags/1_android_hardware_security_keymint_IKeyMintDevice_strongbox\nTest: atest CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest CtsKeystoreTestCases:DeviceOwnerKeyManagementTest\nChange-Id: I574eca430cd2022cb9c270ca23ad33f6e5423cd4\n"
    },
    {
      "commit": "be1ec60ac34e7579af80777dcf02574d2ec1e94b",
      "tree": "b6a3cc5b41e157e3b03d4f94505a20bb7f908003",
      "parents": [
        "5decaf2cd82c11e2e7c1ebdad5eddc4a92e781a2",
        "95d0189113e364137643d874975799a1df858282"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 06 23:57:36 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Feb 06 23:57:36 2023 +0000"
      },
      "message": "Merge \"Keystore: Attestation fix in non AOSP builds\" am: 538cb6588f am: e023873bab am: 95d0189113\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2421120\n\nChange-Id: Ifd30ed83ee58aee2a26fd6aeeaf01d26d4566ace\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d7e1bc711f25a0e72847264ec53a1714abd9ea13",
      "tree": "eefb4c6d8a0ebb3a13a38264ed89a67199a7cfce",
      "parents": [
        "30a3877337a12520020fc1cfa079cdaa8c33abce"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Fri Feb 03 16:59:02 2023 +0000"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Mon Feb 06 15:35:49 2023 +0000"
      },
      "message": "Keystore: Attestation fix in non AOSP builds\n\nAfter adding attestation properties for AOSP/GSI builds their comparison\nin Spi layer missed one condition. If these values were not set they were assigned\nas Build.UNKNOWN. Hence additional check is added in Spi layer.\n\nBug: 267643193\nTest: atest CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest CtsKeystoreTestCases:DeviceOwnerKeyManagementTest\nChange-Id: I5b3ef0a308bbb12bc4cac2efcf04468f65db1ef8\n"
    },
    {
      "commit": "96c2a6b2cf78dac27a354191cc4e0cff05f8d7e2",
      "tree": "f2d677dc5798e98524ce905d576873c275b856af",
      "parents": [
        "e001eaf171acb5d3b893e4836358fea84fdafa5a",
        "ae6d7db49a801ffd2a5b5b004d5c6ac5992ad64a"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Jan 31 19:12:50 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 31 19:12:50 2023 +0000"
      },
      "message": "Merge \"Keystore: Attestation fix in AOSP builds\" am: ecb4b6d158 am: c17512848d am: ae6d7db49a\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2237500\n\nChange-Id: I5e46aa4ad3b0f5492544d8844522697b28e933ca\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ecb4b6d1585fae6e03242b4c2c7b4c4131f6c8a0",
      "tree": "cbbd1f5603e4c77c5dcb125501723c5df2e5a98d",
      "parents": [
        "b1cd796fa6410d766a35b56d2af69833037202d8",
        "a2e8c0d622084afb636e7a692694e00482209bf9"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Jan 31 13:43:56 2023 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 31 13:43:56 2023 +0000"
      },
      "message": "Merge \"Keystore: Attestation fix in AOSP builds\""
    },
    {
      "commit": "49aa90e00cce7b44b1282d59d7867fa670d46429",
      "tree": "d21cf553129cc527d80a618fefad07833bd9efcb",
      "parents": [
        "4b0131275dca424934ebd57be95281631f273e15",
        "e746b375d821edeee79b67206db7e57a45be0dac"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Mon Jan 30 17:54:31 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Jan 30 17:54:31 2023 +0000"
      },
      "message": "Merge \"Add support for new OUT_OF_KEYS_* errors\" am: eac01345e5 am: f852fd961a am: e746b375d8\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2399533\n\nChange-Id: I525b64541e206becb90c079d27080e87a3d6c091\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9ae19e5001dcc17e4e1308710851eedf5f75f508",
      "tree": "58efa6e0ca35bf64f2e45501e8fe478c87dad23f",
      "parents": [
        "0c67ec28735654f77162387e39863d01097076d5"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Mon Jan 23 09:31:52 2023 -0800"
      },
      "committer": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Thu Jan 26 16:29:41 2023 -0800"
      },
      "message": "Add support for new OUT_OF_KEYS_* errors\n\nThis is the first in a set of changes that get RKP error data directly\nfrom keystore.\n\nStarting with Android U, we get detailed RKP error information directly\nin the ResponseCode from keystore. This means mRkpStatus and related\nlogic can be removed after AOSP fully switches over to using rkpd\nfrom the old RemoteProvisioner.\n\nTest: RkpdAppUnitTests\nBug: 264888027\nChange-Id: I32e128cca51b2d7dfdd67824ecb100f4e1cd4341\n"
    },
    {
      "commit": "93bebe4f93f462151b9c1b11ddff1ee5d777a316",
      "tree": "cff2bd26f635a425fe746092b1ec9511d02f2937",
      "parents": [
        "3ad4f200c29703cf36ebc88f2f9c6f738cf7ee41",
        "7650484e3d2f1c56b305962cac9da5cf161dd09a"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 03 16:05:42 2023 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Jan 03 16:05:42 2023 +0000"
      },
      "message": "Merge \"Handle unparsable public keys\" am: b43409fbfc am: a34428066a am: 7650484e3d\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2373248\n\nChange-Id: I82254f6576b4a1bcfc4624ae6039137644094cfe\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "10770c150969527b8740337b5f4c0ea39b442d50",
      "tree": "18c35e3db743b09a586e4d1a7acecd7abd64b164",
      "parents": [
        "d469322a84b7e4ca05f8510148852804238b3291"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Sat Dec 31 20:25:54 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Sat Dec 31 21:09:51 2022 +0000"
      },
      "message": "Handle unparsable public keys\n\nHandle the case where a KeyMint implementation produced an invalid\nX.509 certificate that is the container for the generated key\u0027s public\nportion.\n\nThere\u0027s not much for the caller to do other than re-generate the key.\n\nBug: 261788762\nTest: Not tested yet.\nChange-Id: Ia883df4f5e29a7d75929d37a68b015e857b90560\n"
    },
    {
      "commit": "a2e8c0d622084afb636e7a692694e00482209bf9",
      "tree": "8f143fb7b88953ee293129241b2442422aa7656a",
      "parents": [
        "2239399d12c48237a20bfaf3e24b00e1fbf51ca2"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Wed Sep 28 16:03:34 2022 +0100"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Thu Dec 15 15:30:18 2022 +0000"
      },
      "message": "Keystore: Attestation fix in AOSP builds\n\nAlternet device properties used for attestation on AOSP and GSI builds.\nAttestation ids were different in AOSP/GSI builds than provisioned ids\nin keymint. Hence additional properties used to make these ids identical\nto provisioned ids.\n\nBug: 110779648\nBug: 259376922\nTest: atest VtsAidlKeyMintTargetTest:PerInstance/NewKeyGenerationTest#EcdsaAttestationIdTags/0_android_hardware_security_keymint_IKeyMintDevice_default\nTest: atest VtsAidlKeyMintTargetTest:PerInstance/NewKeyGenerationTest#EcdsaAttestationIdTags/1_android_hardware_security_keymint_IKeyMintDevice_strongbox\nTest: atest CtsKeystoreTestCases:android.keystore.cts.KeyAttestationTest CtsKeystoreTestCases:DeviceOwnerKeyManagementTest\n\nChange-Id: Idd87314b8e5a95de3daac0ea4ff4dffd4c4c6f63\n"
    },
    {
      "commit": "013d48088768af109004c5d37267182bbbe2d034",
      "tree": "6fa1623a5e7989bbf5f0895e72995301aa7446a8",
      "parents": [
        "a81095a4b0b50cb277e97a9f23fb69ea7376a50d",
        "7b82832fde148eff722e3d87b2db6c4f69eaaeef"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Tue Dec 06 20:44:19 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Dec 06 20:44:19 2022 +0000"
      },
      "message": "Merge \"Update Keystore with new fields for API V3\" am: bf7a5eaf9e am: 57b88eef3b am: 7b82832fde\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2304140\n\nChange-Id: I8676ae35dc3c9a2a8be0d27b690821a50d58b980\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "bf7a5eaf9eaeb3dcc61565b3a25552755a9ccb04",
      "tree": "75a0959539825d863ad709c7bd19701810807d3c",
      "parents": [
        "8ff4152a9c3a7a19795131667a7b6bda1974e87d",
        "3144d8c12e94349c6ad9013a558a005481016bb9"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Tue Dec 06 17:46:46 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Dec 06 17:46:46 2022 +0000"
      },
      "message": "Merge \"Update Keystore with new fields for API V3\""
    },
    {
      "commit": "3144d8c12e94349c6ad9013a558a005481016bb9",
      "tree": "7cc93c4838568049d41f85741a3e3dfbfe2351c8",
      "parents": [
        "2d62797e6a7b80cdf8ee41a63401c3a452fdde68"
      ],
      "author": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Tue Nov 08 12:24:52 2022 +0000"
      },
      "committer": {
        "name": "Shaquille Johnson",
        "email": "ssjohnson@google.com",
        "time": "Mon Dec 05 22:45:05 2022 +0000"
      },
      "message": "Update Keystore with new fields for API V3\n\nWe are adding the error codes ERROR_DEVICE_UNREGISTERED and\nERROR_DEVICE_POTENTIALLY_VULNERABLE to reflect the new changes\ndescribed in go/surface-rkp-status.\n\nTest: Unit test and Cts test added to KeystoreExceptionTest and run using atest CtsKeystoreTestCases\nChange-Id: Ie93814aaa5422e323d5a643e10e9fe4a51c07560\n"
    },
    {
      "commit": "ecbadfbfe40c024ec0d3bae3a5d8d42423f1c5d1",
      "tree": "40fdc0fd6475f1dba72e26247023e591ff1fcdfe",
      "parents": [
        "e3b11beae838c70de8d80fea36e10917902f4403",
        "250413b0ea617415df6e2192e0500c7e39842a70"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Dec 05 18:52:53 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Dec 05 18:52:53 2022 +0000"
      },
      "message": "Merge \"ID attestation: Pass second IMEIs to Keystore\" am: bfbf069ee5 am: 19b6eea501 am: 250413b0ea\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2277393\n\nChange-Id: I15b612f0701a2e35474df1a5d0e2061656929224\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "4594638a486288a046f377fc8ff60bbabe5ef393",
      "tree": "ad5c62c93e66d952cbbfc86cb28ee26147119f1c",
      "parents": [
        "995e16c9ecd6892fe6b6d5d17f1859020d2bc6f6"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Oct 31 12:21:06 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu Dec 01 11:00:08 2022 +0000"
      },
      "message": "ID attestation: Pass second IMEIs to Keystore\n\nTo support attestation of a second IMEI, when ID attestation (with IMEI)\nis requested, pass in the 2nd IMEI as a SECOND_IMEI KeyMint tag.\n\nBug: 244732345\nTest: atest android.keystore.cts.DeviceOwnerKeyManagementTest\nChange-Id: I19a3733746fa6a35c6225f0c60fd9f4b51a62ab1\n"
    },
    {
      "commit": "5cf3783938fa23776cfdf6eeca57436c905f21ee",
      "tree": "4438802d46ebfeaefc1b32e47598c9a4cfac45e2",
      "parents": [
        "cc3bf566f1141684e53648343e28d0c9bfe29200",
        "65f1d04dcdd836f8c4c02df2f9807cd708b527c4"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Fri Nov 25 16:19:00 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Nov 25 16:19:00 2022 +0000"
      },
      "message": "Merge \"KeyStore: X25519 key import\" am: 9db6ee342b am: 03e7318d7d am: 65f1d04dcd\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2183495\n\nChange-Id: I5e1da00bef3f5185396ade33cea906075b4770e9\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "25c8f48a8dd430dc14644a773bf39b0c5b8ee3c7",
      "tree": "94eb9eea31ffa0429b3d0d891efc96217b5f0899",
      "parents": [
        "1c4bb0ec589c51dbe2a9d49448ff8a7124f52135"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Wed Aug 03 12:12:01 2022 +0000"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Mon Nov 14 14:51:15 2022 +0000"
      },
      "message": "KeyStore: X25519 key import\n\nAdded a KeyAgreement algorithm for X25519(XDH) in KeyProperties.\nKM_ALGORITHM_EC is used for XDH because Keymint uses KM_ALGORITHM_EC along\nwith Curve25519 to differentiate X25519 and other EC keys.\n\nAlgorithm name XDH is set for X25519 private key.\n\nConsilidated methods of Keymaster specific conversions of EC_CURVE into\nKeymasterUtil.\n\nBug: 240682299\nTest: run cts -m CtsKeystoreTestCases -t android.keystore.cts.Curve25519Test#x25519KeyImportAndAgreementTest\nChange-Id: I3f95738194e62be0f1d821b1eb467ed810a5a175\n"
    },
    {
      "commit": "6a6a9e73fd3b9bdcc63442b5007e1dcace873fdf",
      "tree": "f399b066f2c3843007280e173a14387845ea51a4",
      "parents": [
        "4e57753b2cabd1786fdd5f9c40ba619f096d7919",
        "781185971598a926926615d60f87e7d7b192e85d"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Fri Nov 04 17:13:52 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Nov 04 17:13:52 2022 +0000"
      },
      "message": "Merge \"Keystore: EC_CURVE tag added import agruments\" am: edce19fef7 am: 51c53d6357 am: 7811859715\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2164659\n\nChange-Id: I81c11e5af30d15b7f1ea74e46c55d40e515f23ff\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "edce19fef79416baa6fc07a84d8f4618055caef0",
      "tree": "733e5a323832a46fa4404218b96fd31a7ce7962e",
      "parents": [
        "47050bb8b6fb4f89ee06b26be2daf4850b6f09cd",
        "a2b8cdd04e06c8868e7684930e90be709ba55e43"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Fri Nov 04 15:59:42 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Nov 04 15:59:42 2022 +0000"
      },
      "message": "Merge \"Keystore: EC_CURVE tag added import agruments\""
    },
    {
      "commit": "e436b2988aebfebe44fdc7a07a4a7cadc5f3ca48",
      "tree": "952517ec94bb5eb20c1a8b9428e8cc945de793f1",
      "parents": [
        "06652ca635612be3e4864d6d740816f50c72c3c7",
        "5ead731c57aab8044cc49acbbba25b7a3b1bc686"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 05 01:57:11 2022 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 05 01:57:11 2022 +0000"
      },
      "message": "Merge \"Annotate KeyStore service as never null\""
    },
    {
      "commit": "6ee781740a31bb3f5d060ae3740d7e93b500cfbd",
      "tree": "0a8de0aad30c38ff0e0a52c613082b8f1a697dc8",
      "parents": [
        "89bbe0236ff3cf1b85235dc789c2135562afb262",
        "34a594708244ed200c8b7a4eeb904bdafc9c7f9d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 04 18:37:31 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Oct 04 18:37:31 2022 +0000"
      },
      "message": "Merge \"Keystore:Expected exception for invalid Keys\" am: 4fe1ed8e51 am: d3472b9eed am: 90969f2230 am: 1e6ff36751 am: 34a5947082\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2175743\n\nChange-Id: Ifacca68b9dd4f594f9720c027ff3bdf9e5b6a04c\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "5ead731c57aab8044cc49acbbba25b7a3b1bc686",
      "tree": "1d8f715baa7e063dddf79a319a9425b56cf46358",
      "parents": [
        "f9d8bb250a0296329ccc6ab253e5f15a2469bebe"
      ],
      "author": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 23 21:42:58 2022 +0000"
      },
      "committer": {
        "name": "Tomasz Wasilczyk",
        "email": "twasilczyk@google.com",
        "time": "Fri Sep 23 21:43:09 2022 +0000"
      },
      "message": "Annotate KeyStore service as never null\n\nBug: 245258360\nChange-Id: I4d9215486df275012dad495730ce0ff00839b7a6\nTest: TH\n"
    },
    {
      "commit": "0ee5912b753abbb6eacaec4d6b4a548ffc9ec6a3",
      "tree": "674a400c5a3c819eb2037f4913052c49dc05d953",
      "parents": [
        "11cf8289841456115d8abc9b15bb7ed7f1d60da7"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Thu Aug 04 10:13:42 2022 +0000"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Thu Sep 22 11:40:59 2022 +0100"
      },
      "message": "Keystore:Expected exception for invalid Keys\n\nIf EC curves of Public and Private keys are different, an\nInvalidKeyException is expected.\n\nBut the current implementation does not throw exception from doPhase method\nand fails in generateSecret method.\n\nThe fix is in AndroidKeyStoreECPublicKey to provide\ncorrect ECParameterSpec while creating a PrivateKey object.\n\nBug: 215175472\nTest: run cts -m CtsKeystoreWycheproofTestCases -t com.google.security.wycheproof.JsonEcdhTest#testSecp224r1\nTest: run cts -m CtsKeystoreWycheproofTestCases -t com.google.security.wycheproof.JsonEcdhTest#testSecp256r1\nTest: run cts -m CtsKeystoreWycheproofTestCases -t com.google.security.wycheproof.JsonEcdhTest#testSecp384r1\nTest: run cts -m CtsKeystoreWycheproofTestCases -t com.google.security.wycheproof.JsonEcdhTest#testSecp521r1\nTest: run cts -m CtsKeystoreTestCases -t android.keystore.cts.KeyAgreementTest#testDoPhase_withDifferentCurveKey_fails\nChange-Id: Ie221926d8a3be3fe6679e723575c5021cafba98e\n"
    },
    {
      "commit": "a2b8cdd04e06c8868e7684930e90be709ba55e43",
      "tree": "ca17a4e8a1101dc76c6b7b1ac8cf1334a0d24969",
      "parents": [
        "11cf8289841456115d8abc9b15bb7ed7f1d60da7"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Mon Jul 25 16:48:35 2022 +0000"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Wed Sep 21 16:27:34 2022 +0100"
      },
      "message": "Keystore: EC_CURVE tag added import agruments\n\nAs per Keymint documentation EC key import has to provide EC_CURVE tag.\nThis is required for Strongbox implementation test using wycheproof test\ncases.\n\nAlso added a support to get KEY_SIZE based on EC_CURVE, if it is not\nincluded into Authorization list.\n\nBug: 237634216\nTest: run cts -m CtsKeystoreWycheproofTestCases\nChange-Id: Ie981721c38477e74da3cba6613dc0b34e453609c\n"
    },
    {
      "commit": "4eb3e948120d6dfc383a03811e80c204d72ff94e",
      "tree": "1557de7e8731171d4c9e29b0462b5a3ae6ddd7d5",
      "parents": [
        "fed0225242e6be797d00b40511bd4c4cc6c3400c",
        "074bff50dee53cd7d527218eaf10f67b091c3a10"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Sep 20 16:02:16 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Sep 20 16:02:16 2022 +0000"
      },
      "message": "Merge \"Keystore: Included KM_TAG_RSA_OAEP_MGF_DIGEST tag\" am: eea63d6aa4 am: f42d5e8847 am: 72b1cc3e49 am: 3f20176ddf am: 074bff50de\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2167462\n\nChange-Id: I6479a9d91248581cadf7cf4acab02b9e01cc6ad2\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "0443f760d0eae9b2433a289070a9bdb6ca916ff9",
      "tree": "f1ab9c73a64f164e95774268e129abbd1c4bbf65",
      "parents": [
        "3ade15d233d4e08c1d865fdb0946fbbcec613730"
      ],
      "author": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Wed Jul 27 15:21:53 2022 +0000"
      },
      "committer": {
        "name": "Prashant Patil",
        "email": "patilprashant@google.com",
        "time": "Wed Sep 14 15:26:12 2022 +0100"
      },
      "message": "Keystore: Included KM_TAG_RSA_OAEP_MGF_DIGEST tag\n\nIncluded KM_TAG_RSA_OAEP_MGF_DIGEST for RSA keys generation and import\nif supported padding is defined as OAEP. All supported digest are added\nas KM_TAG_RSA_OAEP_MGF_DIGEST and also default MGF1-SHA1 digest is added\nbecause crypto operations could fail is MGF1ParameterSpec is not provided.\n\nNote this includes additional Attestation parameter in returned\ncertificate and need to handle accordingly.\n\nBug: 203688354\nTest: run cts -m CtsKeystoreTestCases -t android.keystore.cts.CipherTest#testKatBasicWithDifferentProviders\nChange-Id: I2086f2520667ccac9116e04de39f6328a0d3fc5b\n"
    },
    {
      "commit": "34945b1fd2d8f9201c7db1b7ff915eaea78d33ac",
      "tree": "1fafbc1080eb0fe2414d2a59556ad194c59b9188",
      "parents": [
        "cd671e384bef7cf3037663546c3861e1e2157c27"
      ],
      "author": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Sat Jul 23 00:28:01 2022 +0000"
      },
      "committer": {
        "name": "Eric Biggers",
        "email": "ebiggers@google.com",
        "time": "Sat Jul 23 00:38:03 2022 +0000"
      },
      "message": "AndroidKeyStore: support platform use of rollback-resistant keys\n\nThe keystore2 binder API supports rollback resistance when KeyMint\nsupports it, but until now this wasn\u0027t exposed to Java code that uses\nAndroidKeyStore.  Add support for rollback-resistant keys to\nKeyProtection and AndroidKeyStoreSpi.setSecretKeyEntry() so that\nLockSettingsService can request it for SP protector keys.\n\nThis CL does *not* do any of the following:\n\n- Add any non-hidden APIs.  KeyMint implementations only support a\n  limited number of rollback-resistant keys; currently the available\n  space is reserved for platform use only.  Note that other examples of\n  \"hidden\", platform-only key properties are\n  isCriticalToDeviceEncryption() and getBoundToSpecificSecureUserId().\n\n- Support rollback resistance with keys directly generated by Keystore.\n  This isn\u0027t currently needed.  Note that this would require changes\n  KeyGenParameterSpec and AndroidKeyStoreKeyGeneratorSpi.\n\n- Allow querying the rollback resistance property of keys.  This isn\u0027t\n  currently needed.  Note that this would require changes to KeyInfo and\n  AndroidKeyStoreSecretKeyFactorySpi.\n\nBug: 239632930\nTest: see I05f3b7e5c139471febe5c266a39e3dc3bca4831f\nChange-Id: Ifcfd0b8f1bf440ef1ac80a9ac2b0e9c7f62106dd\n"
    },
    {
      "commit": "8cf2a52033f5ddaebefe09ad1119ee2978bdeb0c",
      "tree": "5d209bcbbc9ba0d31f98af50d8110346a8df2e89",
      "parents": [
        "bd7ac0c64654ba373be94a46eb6a93b6876d1e64"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Thu May 12 11:02:12 2022 -0700"
      },
      "committer": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Thu May 12 17:18:22 2022 -0700"
      },
      "message": "Ensure key generation retries after remote key provisioning\n\nPreviously, the key pair generation would error out even if we\nsuccessfully provisioned attestation keys. Instead, we should retry\nkey generation after the GenerateRkpKeyService reports an OK status.\n\nBug: 231495834\nTest: RemoteProvisionerUnitTests\nChange-Id: I049294cbc7119de55b5de02499bf4609d4c6de5d\n"
    },
    {
      "commit": "4c20e224f60a2c86d79db4dc0b3fb3b923c92491",
      "tree": "2235c2f0f78dbe89c45229844ec70e223f814406",
      "parents": [
        "dfada27e9f882954ec7cfba4441b202f3ccfb464"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue May 10 15:53:34 2022 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu May 12 10:56:30 2022 +0100"
      },
      "message": "Keystore: Wire X25519 key agreement\n\nImplement support for the X25519 key agreement functionality.\n\nSimilar to Ed25519, two new classes are added:\n* AndroidKeyStoreXDHPrivateKey\n* AndroidKeyStoreXDHPublicKey\n\nThe private key class is simply a handle to the KeyMint key.\nThe public key class implements XECPublicKey, the interface\nneeded for using this key in a platform-backed key agreement.\n\nBecause of Conscrypt API boundaries, the functionality of Conscrypt\u0027s\nOpenSSLX25519PublicKey is duplicated here - namely, matching the\nprefix of the encoded key.\n\nBug: 194359292\nTest: atest android.keystore.cts.Curve25519Test\nChange-Id: Ifc12be528ab544fd6909bb0dd6224a0a4dd400c6\n"
    },
    {
      "commit": "46faab535f74e12f1d74fb50125c8a9475c636ba",
      "tree": "a32d81b1ef9580d30a07989626c8dd546f30a9ba",
      "parents": [
        "a3f6dae96f6fab0850b8f5249ad4db1bb9e44281"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue May 10 10:07:42 2022 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed May 11 18:53:04 2022 +0100"
      },
      "message": "Keystore: Wire up Ed25519 signing\n\nWire Ed25519 signing into Keystore. This consists of registering a\nprovider for Ed25519.\n\nEd25519 has its own digest scheme, so the caller should specify \"none\"\nas the digest scheme, and that\u0027s the tag that\u0027s going to be passed into\nKeyMint.\nHowever, unlike other uses of the \"NONE\" digest scheme, the input to the\nsignature algorithm should not be truncated.\n\nBug: 194359292\nTest: atest android.keystore.cts.Curve25519Test\nChange-Id: Icce4f7f2f8fa10081a9c6beff4813c2d91756469\n"
    },
    {
      "commit": "143fa39384d69d4de7a92ce64b2a7a2ac0ba8728",
      "tree": "5755b1c91e13da61a09d81094130a0e7b9243737",
      "parents": [
        "12931e7709ffeff613d168a45c42213d604ee4d4"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed May 04 17:49:48 2022 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu May 05 14:58:52 2022 +0100"
      },
      "message": "Keystore: Support Ed25519 keys\n\nImplement support for Ed25519 signing keys in Android Keystore.\nBecause Conscrypt does not yet handle those keys, the Keystore classes\nimplement EdECPublicKey directly and parse the keys.\n\nSpecifically, AndroidKeyStoreEdECPublicKey can take an encoded X.509 key\nspecification, validate the encoding is of an Ed25519 key, then parse\nthe oddity and Y point on the curve.\nRFC8032 describes EdDSA signature scheme, particularly Ed25519.\nRFC8410, Section 3, defines the OID for Ed25519 keys (1.3.101.112).\nRFC8410, Section 4, describes the encoding of the public key.\n\nBug: 195309719\nBug: 194359292\nBug: 214203951\nTest: atest android.security.keystore2.AndroidKeyStoreEdECPublicKeyTest\nChange-Id: I07b793cbd5029630768368ad4a863bbc1c828ced\n"
    },
    {
      "commit": "6615ac8b348da8d02b388e58a0596f26c8642808",
      "tree": "5939ad6b178d3a019f6bb92477c5d89d101d2aab",
      "parents": [
        "814a75d586d1cb0cfc65ec83d7eb571780f400cd",
        "c6030f076562f10bc48efc7f94809fcf55b60d92"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Thu Apr 21 18:25:10 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 21 18:25:10 2022 +0000"
      },
      "message": "Merge \"Make generateKey() return a status\" am: d6dbf31c61 am: 34eb18107d am: c6030f0765\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2048789\n\nChange-Id: Ib86d332d64f0fae0d83d52a6e55d9dfc25c4f06b\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9510ef1aa2248b2a5ed3c24b7a7d885e1618b619",
      "tree": "2b5e23d72f8f47aa8e1a254e18352ef82f173017",
      "parents": [
        "d8705358c65cf225aae734ea95f648889b73bf48"
      ],
      "author": {
        "name": "Max Bires",
        "email": "jbires@google.com",
        "time": "Wed Mar 30 00:17:28 2022 -0700"
      },
      "committer": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Wed Apr 20 14:31:54 2022 -0700"
      },
      "message": "Make generateKey() return a status\n\nThis change adds some integers to the AIDL interface in order to convey\nstatus back to the caller of generateKey(). This will inform the caller\nas to whether or not the errors that may occur during provisioning are\npermanent, and if not, what to do with the transient error.\n\nBug: 227306369\nTest: RemoteProvisionerUnitTests\nChange-Id: I9202358a102b0fb0a104525632a005acb7355840\n"
    },
    {
      "commit": "90099ff85c0ad6af3a8721131bdd7599cdee5598",
      "tree": "ff763adf108577b28ff6f0ff86a3782987a2faff",
      "parents": [
        "fb0a6a1950eaf7a42e5e09218ad43d00eb9e8e6e",
        "9025d607a0cbfb07074245609a74bc5ce3436ad7"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Wed Apr 13 09:10:13 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 13 09:10:13 2022 +0000"
      },
      "message": "Merge \"Clarify doc comment for setUnlockedDeviceRequired\" am: a0976a1207 am: f6354a20d5 am: 9025d607a0\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2060058\n\nChange-Id: Id9255df063a48ea3006b9cada59cc5d9543f17ea\nSigned-off-by: Automerger Merge Worker \u003candroid-build-automerger-merge-worker@system.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c92b40797944b0e02f77c67c278a800c8bd1afaf",
      "tree": "18f4c0a2aca786f45ce3436ca2a0b098a2f04bc5",
      "parents": [
        "7e3c5382cc428753be58e1aa19acd70d3a03c712"
      ],
      "author": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Apr 12 14:53:33 2022 +0100"
      },
      "committer": {
        "name": "David Drysdale",
        "email": "drysdale@google.com",
        "time": "Tue Apr 12 14:57:53 2022 +0100"
      },
      "message": "Clarify doc comment for setUnlockedDeviceRequired\n\nBug: 187537410\nTest: None, comment change only\nChange-Id: If6085fa6f46a54df0700e2599f4f98e42f33a164\n"
    },
    {
      "commit": "dfe33810c0ecefaa7e132ff170ec15b7f39194ff",
      "tree": "ca6aadf6029db2bb2649521344b6f3da6ffa0a4e",
      "parents": [
        "c32215ee947b6eba406fc55920a5700494da2173"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu Mar 31 11:06:30 2022 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu Mar 31 11:06:30 2022 +0100"
      },
      "message": "KeyStore: Surface RKP failures\n\nOn systems that rely solely on remotely-provisioned keys (RKP),\nthe attestation keys may run out or be unavailable for attesting\na newly-generated key. This could happen when:\n* the device first connects to the Internet\n* The device had all the keys used and:\n ** It hadn\u0027t yet completed obtaining new ones.\n ** The RKP server declines to issue new keys.\n\nIn these cases, the caller must be informed that their key generation\nrequest failed (likely temporarily), and that they should retry it.\n\nThe retry policy returned tells the caller when to re-try.\nBug: 227306369\nTest: atest android.keystore.cts.KeyStoreExceptionTest\n\nMerged-In: Ief30a3ab97da95b68d172e725c38acbefab92fa9\nChange-Id: I0b2619fcbcb3ac4d94ed85f3ce5934e015c0828c\n"
    },
    {
      "commit": "fda47fb1caa62e2c0340602cd0a4d2baf3d7a4ab",
      "tree": "ca35d02fb44b7e38e0b8bb621e10a5e4e1e7b839",
      "parents": [
        "7436573ad9e3319d7aec0438cf0326fcbbf01257"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Mar 29 13:52:00 2022 +0100"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Mar 30 15:03:16 2022 +0100"
      },
      "message": "KeyStore: Surface RKP failures\n\nOn systems that rely solely on remotely-provisioned keys (RKP),\nthe attestation keys may run out or be unavailable for attesting\na newly-generated key. This could happen when:\n* the device first connects to the Internet\n* The device had all the keys used and:\n ** It hadn\u0027t yet completed obtaining new ones.\n ** The RKP server declines to issue new keys.\n\nIn these cases, the caller must be informed that their key generation\nrequest failed (likely temporarily), and that they should retry it.\n\nThe retry policy returned tells the caller when to re-try.\nBug: 227306369\nTest: atest android.keystore.cts.KeyStoreExceptionTest\n\nChange-Id: Ief30a3ab97da95b68d172e725c38acbefab92fa9\n"
    },
    {
      "commit": "7128e88488da78571952989b2069d4b61df5a77d",
      "tree": "1eff6a88472d941e3c44885328504e1dd84a3c8c",
      "parents": [
        "f4dbcd621f50cb0b226605eabe40dca78d59a502",
        "289609bdb38e356976c77c77e7cfcf6557779fac"
      ],
      "author": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Wed Mar 23 17:20:24 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 23 17:20:24 2022 +0000"
      },
      "message": "Merge \"Revert \"Update AndroidKeyStoreMaintenance framework API\"\" am: b8ebf69571 am: 2e64dda571 am: 289609bdb3\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2017095\n\nChange-Id: Iddeb472553b4713fc51613effa6e565188119bf8\n"
    },
    {
      "commit": "23571e176af4673f193bcf7bcfeef644a5ac018c",
      "tree": "3f0447ddd476bf56c9508bc7762c6a0565e4c811",
      "parents": [
        "b9fc2910cad1b07edcd0b1eef6aeebe89eb5e3e0"
      ],
      "author": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Tue Mar 08 22:47:40 2022 +0000"
      },
      "committer": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Mon Mar 14 15:20:38 2022 -0700"
      },
      "message": "Revert \"Update AndroidKeyStoreMaintenance framework API\"\n\nThis reverts commit bb5c49e5108262f42dceb61620c6c530dd529579.\n\nReason for revert: functionality removed\n\nChange-Id: Ib04a1690b8892af53ca6449e3a38e10490baf9da\n"
    },
    {
      "commit": "6de84e117e31eb4630d44784da1ad472ac5abd04",
      "tree": "42a988d24b42e6ff67220e6692c06db77dcb54b4",
      "parents": [
        "1016a192946d8ca8f473afcb3a648dd0f5f56da3",
        "8249f4a8932173578c28674e3e00e8e6e46bc77b"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 09 22:51:22 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 09 22:51:22 2022 +0000"
      },
      "message": "Merge \"Curve 25519: Support use via Android Keystore provider (part 1)\" am: bab26cc607 am: 050d61f1b3 am: 8249f4a893\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2015496\n\nChange-Id: I666cce14a67b605c9cc64991ee07755b4d85173a\n"
    },
    {
      "commit": "3875cf7e0c35f9d42a5d04b154f281ae547161a3",
      "tree": "35bc25811e51c665063f1b776bbde5232d705ddd",
      "parents": [
        "199359822ede408264b49dbe05e0d67080893921"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Mar 08 22:01:16 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Mar 09 13:07:52 2022 +0000"
      },
      "message": "Curve 25519: Support use via Android Keystore provider (part 1)\n\nEnsure that the user gets an accurate error message when they try to\ngenerate Curve 25519 keys according to JEP 324\n(https://openjdk.java.net/jeps/324).\n\nAndroid Keystore requires every key to have a name, so it is not\npossible to generate a key using NamedParameterSpec only (with a\nKeyPairGenerator).\n\nSupport this and throw an exception to the caller indicating how they\n_can_ generate keys with this curve.\n\nBug: 222440855\nBug: 195309719\nBug: 194359292\nTest: atest android.keystore.cts.KeyFactoryTest android.keystore.cts.Curve25519Test\nTest: atest CtsLibcoreTestCases:libcore.java.security.ProviderTest\nChange-Id: I5aa163f177507906c6482d079eb6cb55d93accf7\n"
    },
    {
      "commit": "259ca1ec6188caeaac440c0fc63698360ce7f890",
      "tree": "4755aeedd7689411eda02fa61944896ee34797e7",
      "parents": [
        "471a91657a7d5999c1225bcbd0b872b009943d8c"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Mar 09 11:03:12 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Mar 09 11:03:12 2022 +0000"
      },
      "message": "Do not register Curve25519 as a key factory directly\n\nDo not register Curve 25519 algorithms as key factories, until we fix\nthe registration to be in compliance with JEP 324.\n\nBug: 222440855\nBug: 222194540\nTest: atest android.keystore.cts.Curve25519Test android.keystore.cts.KeyFactoryTest#testAlgorithmList CtsLibcoreTestCases:libcore.java.security.ProviderTest#test_Provider_getServices\nMerged-In: Ibd53070a890955affaff5e4e7213892afd423db7\nChange-Id: I11b3574aeff54b3eb8bf496c4c14aa1338629ce5\n"
    },
    {
      "commit": "7dece49438d2ffb7c1ca5353f3cdb03d347375a8",
      "tree": "bc250e02ff97ca471d23e1357c84143c6be11bad",
      "parents": [
        "54102c21f22fce1729133719d4b83d9ae14bcdcf"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Mar 07 13:38:39 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Mar 07 18:33:56 2022 +0000"
      },
      "message": "Do not register Curve25519 as a key factory directly\n\nDo not register Curve 25519 algorithms as key factories, until we fix\nthe registration to be in compliance with JEP 324.\n\nBug: 222440855\nBug: 222194540\nTest: atest android.keystore.cts.Curve25519Test android.keystore.cts.KeyFactoryTest#testAlgorithmList CtsLibcoreTestCases:libcore.java.security.ProviderTest#test_Provider_getServices\nChange-Id: Ibd53070a890955affaff5e4e7213892afd423db7\n"
    },
    {
      "commit": "452fdef120c472716f6a4cabb77e293746646332",
      "tree": "7c9f7c433a3a77de7cde1b12e8eac92848c36704",
      "parents": [
        "9feb8c3ba29aa389194f2d94454f2c2a8963ac68",
        "cb479e0827e8f526a755d770ba19a755e833ee21"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Mar 01 21:07:01 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 01 21:07:01 2022 +0000"
      },
      "message": "Merge \"Keystore: Support Curve 25519 in the SPI layer\" am: 76cee808e2 am: 7b17653639 am: cb479e0827\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1984970\n\nChange-Id: Ib9fc34d05614192e4762b9e7934738e074728fca\n"
    },
    {
      "commit": "5deebdd570bceb3037cfa6cb4504fee529e9fa4c",
      "tree": "fbef9421bc3e7ab3335212868115997f73e8f981",
      "parents": [
        "478baf228752d1f36f7668a88d2084037ac77850"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Mon Feb 14 16:58:56 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Mar 01 15:00:19 2022 +0000"
      },
      "message": "Keystore: Support Curve 25519 in the SPI layer\n\nAdd support for Curve 25519 in the public API.\nThis requires upgrading the keymint dependency to V2.\n\nNote that this CL only passes tha tags to Keystore,\nbut does not yet let the caller use the generated keys\nbecause of missing Conscrypt classes.\n\nBug: 194359292\nTest: atest android.keystore.cts.Curve25519Test\nChange-Id: I15223abec34b72c857e26fcc47d8ecf08c1f8c8d\n"
    },
    {
      "commit": "c96b611d14090bc299d6af6b8b6436d154b92c4c",
      "tree": "ad0939774d419ee4014abed8fd8d8f25015502ef",
      "parents": [
        "80c4b33ddf612c831b1cb94a7d66ad45e310ff9a"
      ],
      "author": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Feb 24 15:36:06 2022 +0000"
      },
      "committer": {
        "name": "Rubin Xu",
        "email": "rubinxu@google.com",
        "time": "Thu Feb 24 15:44:55 2022 +0000"
      },
      "message": "KeyChain: always unbind service\n\nContext.unbindService() should always be called even if the\nprevious bindService() call returns false. Otherwise the service\nmight be left dangling.\n\nBug: 211582968\nTest: None\nChange-Id: Ic1705096254afa12993d8992303432896bfecd57\n"
    },
    {
      "commit": "a383db668452b11d3da06779e9bdf7f27b9faba9",
      "tree": "647c9d70cffc634378ce877c0b0749be58b3f4bd",
      "parents": [
        "cfe96927cc62ec80977522ca5d77cfa522750549",
        "c93730dadf5909e94a5606ed7f21801099469006"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 09 12:49:28 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Feb 09 12:49:28 2022 +0000"
      },
      "message": "Merge \"Add myself to Keystore owners\" am: ba28bb57ad am: 6de68cc45a am: 43341a7841 am: c93730dadf\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1976666\n\nChange-Id: I24615c1283356bfe733d790c5868d7f364198ead\n"
    },
    {
      "commit": "ba28bb57adf01a95f048fe178ed91a895dd13240",
      "tree": "bbcd9f09aaa593ff748dd7634a9130b04be8974d",
      "parents": [
        "c0699fe9d82b1741d4f170b6c533ae710da8bb4b",
        "9422f2076d733b2644e1a69ff476e59b67120cd0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 09 11:41:25 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Feb 09 11:41:25 2022 +0000"
      },
      "message": "Merge \"Add myself to Keystore owners\""
    },
    {
      "commit": "ee3c80f2880d9c6cd5682840d7f59f9c3c69a7a7",
      "tree": "6e5db610d5204ada3f91b2e1039fccbabe310b08",
      "parents": [
        "f7e2b4d3c355ffcb97bd0347d11a000a68fa0f58",
        "a2b165989bbd4e4ee46079637e6f05a5ee9c29a8"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Feb 08 19:50:28 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Feb 08 19:50:28 2022 +0000"
      },
      "message": "Merge \"Keystore: Surface service error message\" am: af771eb908 am: b3612e019f am: e53fd593b5 am: a2b165989b\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1969819\n\nChange-Id: I0f3d9721af9aa47bf7f7ae6a419d79ec3547210b\n"
    },
    {
      "commit": "5eedf5a3734308ee5ebe8a5ea2f73b6e6a0cb1fe",
      "tree": "fd48b2232b42fe628ce775bbd3b39e2becf94395",
      "parents": [
        "9b73fc72a1ce7b63079684875222dc3877ca74f0"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Feb 02 22:50:50 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Feb 08 13:26:57 2022 +0000"
      },
      "message": "Keystore: Surface service error message\n\nSurface the service-specific error message. To avoid API changes, the\nerror message is surfaced in the toString / getMessage methods.\n\nTest: atest android.security.keystore.KeyStoreExceptionTest\nBug: 217593122\nChange-Id: Id4090564b46db9b3b10ea390390f6683f7314463\n"
    },
    {
      "commit": "9422f2076d733b2644e1a69ff476e59b67120cd0",
      "tree": "2011e40e5a2d4c53c02114eb862ccb53d611cf2b",
      "parents": [
        "9b73fc72a1ce7b63079684875222dc3877ca74f0"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Feb 08 11:45:23 2022 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Feb 08 11:45:23 2022 +0000"
      },
      "message": "Add myself to Keystore owners\n\nUpdate the Keystore owners file:\n* Remove Rob Barnes\n* Add myself.\n\nThis will remove the dependency on US-based reviewers for all Keystore\nJava CLs.\nNon-trivial CLs, CLs that are not strictly in the Java layer, or both,\nwould still be sent to the right US-based reviewer.\n\nBug: N/A\nTest: N/A\nChange-Id: Id8931516b90be4b97e684cb8d7f9de8d71643db4\n"
    },
    {
      "commit": "a31689bc37fecd71c4aae0b73d43e56ee5b241f1",
      "tree": "47d0148b9bf8bb60b60a5a11cd0ab7b09c6c7034",
      "parents": [
        "fa9d5b2e03c3fe367ddede0d0590973c4735bf47"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu Nov 04 14:09:47 2021 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Wed Feb 02 22:11:44 2022 +0000"
      },
      "message": "KeyStore: Verbose error reporting\n\nReport KeyStore/KeyMint error messages via public API.\n\nThis lets developers find out:\n* Whether an error is transient or not.\n* Whether a failure is due to a system error\n(system configuration/state/capabilities), or a key-related error.\n* Whether user authentication is required to use the key.\n\nTest: atest CtsKeystorePerformanceTestCases CtsKeystoreTestCases\nBug: 197890905\nMerged-In: I776d9e9cc01a9dc3542a63000ee0709847760963\nChange-Id: Ica0c93fdd4b89255ee0a03a9b9b948202777d4d4\n"
    },
    {
      "commit": "14ce8bc12010a9ef3a96001dad57a88d951abf7e",
      "tree": "a1d1bb2a78d442ad310ad7f893a237c1010e832e",
      "parents": [
        "1acb7b93ddbfbca909a3f7ec7aee72df10a94b51"
      ],
      "author": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Tue Jan 18 17:44:20 2022 -0800"
      },
      "committer": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Fri Jan 21 01:36:43 2022 +0000"
      },
      "message": "Framework support for AndroidKeyStore migration\n\n- Add a new boolean attribute `inheritKeyStoreKeys` to allow apps to\n  indicate whether they want keys to be transferred to the updated app\n- Call the appropriate KeyStore method to migrate keys from the old\n  namespace to the new one\n- Clear keys owned by the previous app ID if it is removed\n\nTest: atest SharedUserMigrationTest#testKeyMigration\nTest: atest AndroidPackageTest\nBug: 179284822\nChange-Id: I321b85b88c150f17709a2270c0cbaf368ca035cc\n"
    },
    {
      "commit": "1c632f80e870bf78f5dedb79233f7c338f97b12d",
      "tree": "7fa2df9a6a22f0aa7778ee7a13f263fe8753f9e6",
      "parents": [
        "8ddb283a68f27b5fe47c2a3074e62ec8aba8934a",
        "253c91192fdda00f2c34c029e100b06b9fc4f4d6"
      ],
      "author": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Wed Jan 19 01:13:31 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 19 01:13:31 2022 +0000"
      },
      "message": "Merge \"Update AndroidKeyStoreMaintenance framework API\" am: 8c34efd29a am: be201a0ed5 am: 7d7010dcf8 am: 253c91192f\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1950401\n\nChange-Id: I8b3f892d829decc104ef2a732af5fbbfa3e08fa8\n"
    },
    {
      "commit": "bb5c49e5108262f42dceb61620c6c530dd529579",
      "tree": "d7779ac2354d890407f28c7987826bc297842aed",
      "parents": [
        "eaa3fc76a838746655270f040d1c8a45d5e567e1"
      ],
      "author": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Fri Jan 14 15:35:07 2022 -0800"
      },
      "committer": {
        "name": "John Wu",
        "email": "topjohnwu@google.com",
        "time": "Fri Jan 14 15:35:07 2022 -0800"
      },
      "message": "Update AndroidKeyStoreMaintenance framework API\n\nUpdate the Java framework accordingly with the underlying keystore2\nchanges for key migration.\n\nTest: atest SharedUserMigrationTest#testDataMigration (in internal)\nBug: 211665859\nChange-Id: I26c817dffdf2e50a43373114a63242644ee7e712\n"
    },
    {
      "commit": "ea9d0dd16793f75a3d79a3ab470f4d4a7a827af9",
      "tree": "3530171456b13eab1d559702be622da8e55abbe5",
      "parents": [
        "ddb46412b613d68c5d493f25abac5abaa20266fe",
        "a665f6bd93dd8087b1dbbbaeb89e6ec85b2d4902"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Fri Jan 07 17:34:34 2022 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Jan 07 17:34:34 2022 +0000"
      },
      "message": "Merge \"Add missing \u003c/pre\u003e to Javadoc\" am: 076fb5e987 am: d084c0202a am: 33e0b830dc am: a665f6bd93\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1905490\n\nChange-Id: I5965b31cb15b2cf30596939d4c5cb70e51b332b9\n"
    },
    {
      "commit": "076fb5e987cea7fcce6cfcf044ea62a122479b6e",
      "tree": "b0b2dff3a8789c7aa0a2c24a87969bda4b6c956f",
      "parents": [
        "f4177e94ee058833ebc3db3b188d67c058d961c2",
        "f3aac252f79fe9cae354c758a78f48ad75e0239f"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Fri Jan 07 16:40:32 2022 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Jan 07 16:40:32 2022 +0000"
      },
      "message": "Merge \"Add missing \u003c/pre\u003e to Javadoc\""
    },
    {
      "commit": "5da05ee3ed1e77504a8981b49dff4c73bdac199d",
      "tree": "54d2717e012c737edeb325277db4ad726ed2f064",
      "parents": [
        "579224432a456a42ccfb2d7fd05ef178bb5c2e98"
      ],
      "author": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Thu Nov 04 14:09:47 2021 +0000"
      },
      "committer": {
        "name": "Eran Messeri",
        "email": "eranm@google.com",
        "time": "Tue Dec 14 15:22:35 2021 +0000"
      },
      "message": "KeyStore: Verbose error reporting\n\nReport KeyStore/KeyMint error messages via public API.\n\nThis lets developers find out:\n* Whether an error is transient or not.\n* Whether a failure is due to a system error\n(system configuration/state/capabilities), or a key-related error.\n* Whether user authentication is required to use the key.\n\nTest: atest CtsKeystorePerformanceTestCases CtsKeystoreTestCases\nBug: 197890905\nChange-Id: I776d9e9cc01a9dc3542a63000ee0709847760963\n"
    },
    {
      "commit": "c78e369c4c27004e0a438f10d15e3709ec629619",
      "tree": "f55f45aa425c3f9efcbb52128a59bd8de5868e3a",
      "parents": [
        "1e6ac5e1ff5ae3789ac888193b29d1769d403be0"
      ],
      "author": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Wed Dec 01 14:08:15 2021 -0800"
      },
      "committer": {
        "name": "Seth Moore",
        "email": "sethmo@google.com",
        "time": "Wed Dec 01 14:59:24 2021 -0800"
      },
      "message": "Fix incorrect SID matching for bio prompts\n\nThe default value for canUnlockViaBiometrics, which determines if we\nare able to show a bio prompt, is true. However, if there are 0\nbiometric authenticator IDs, then it\u0027s impossible for the user to\nsatisfy a bio prompt. In this case, we should set canUnlockViaBiometrics\nto false.\n\nThe loop that is normally expected to invert canUnlockViaBiometrics was\nnever run in the case of 0 bio authenticator ids, so we mistakenly\nlet the crypto init operation succeed when we should have blocked it.\n\nBug: 188864794\nTest: Manual, using sample app that displays a biometric prompt.\nChange-Id: Ib95b0564aa098157718b8d4a45b11baa69dad71b\n"
    },
    {
      "commit": "f3aac252f79fe9cae354c758a78f48ad75e0239f",
      "tree": "284e036561507c686a3284b6062b83a5c6c72982",
      "parents": [
        "1e6ac5e1ff5ae3789ac888193b29d1769d403be0"
      ],
      "author": {
        "name": "Shawn Willden",
        "email": "swillden@google.com",
        "time": "Mon Nov 29 19:20:11 2021 +0000"
      },
      "committer": {
        "name": "Shawn Willden",
        "email": "swillden@google.com",
        "time": "Mon Nov 29 19:20:19 2021 +0000"
      },
      "message": "Add missing \u003c/pre\u003e to Javadoc\n\nChange-Id: Iedf0f7f85fecbc2ee274a108887c77add62dcb31\n"
    },
    {
      "commit": "70e7dd44b422ec4727dce5f6984692bf76a8ca85",
      "tree": "154f29d765a7a56fd12dfa012f87ed10e32f8d27",
      "parents": [
        "2eef723cedbdcfdd96966a08f206c7ff901155db",
        "5fe5f2def000915e514ca8286fe39e06c52bf5eb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Oct 08 15:31:03 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 08 15:31:03 2021 +0000"
      },
      "message": "Merge changes Ic6e60752,I2b8b7e74\n\n* changes:\n  Test for contract between AndroidKeyStoreKey hash and equals.\n  Keystore 2.0 SPI: Fix contract between equals and hashCode 2\n"
    },
    {
      "commit": "2eef723cedbdcfdd96966a08f206c7ff901155db",
      "tree": "3f9e449baa928dc73080c4b9c6e3fd9091895be4",
      "parents": [
        "53e8b03baeaaa1b619f2947453aef96725ff21f3",
        "4ff6274fa770edf86d31dfea36e518d2964b2eee"
      ],
      "author": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Fri Oct 08 14:57:47 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 08 14:57:47 2021 +0000"
      },
      "message": "Merge \"Keystore 2.0 SPI: Fix NullPointerException in setKeyEntry.\""
    },
    {
      "commit": "5fe5f2def000915e514ca8286fe39e06c52bf5eb",
      "tree": "dc5746b1d40903c0b96025782ca5e578296597af",
      "parents": [
        "e36fe6bf46b832178bef636fdddc98c1407ca869"
      ],
      "author": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Wed Sep 01 14:47:20 2021 -0700"
      },
      "committer": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Thu Oct 07 16:39:39 2021 -0700"
      },
      "message": "Test for contract between AndroidKeyStoreKey hash and equals.\n\nTest: atest KeystoreTests\nBug: 196118021\n\nMerged-In: Ic6e60752faa986debe3d325f54242cffaa03b336\nChange-Id: Ic6e60752faa986debe3d325f54242cffaa03b336\n"
    },
    {
      "commit": "e36fe6bf46b832178bef636fdddc98c1407ca869",
      "tree": "47bf86c68eb742bfd9afd6e888e23098193064fc",
      "parents": [
        "6297dd2771afdbb1b13ae68a4fee86d3b039de6b"
      ],
      "author": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Tue Aug 10 17:47:43 2021 -0700"
      },
      "committer": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Thu Oct 07 16:24:46 2021 -0700"
      },
      "message": "Keystore 2.0 SPI: Fix contract between equals and hashCode 2\n\nThis fixes the contract between equals and hashCode in\nAndroidKeystorePublicKey. The previous fix made only a reference\ncomparisson between certificate blobs. In this patch java.util.Arrays is\nused to compare and compute the hash of the array.\n\nBug: 196118021\nTest: See following CL.\nChange-Id: I2b8b7e740fb377de39fd21f763e15cb00024b2fc\n"
    },
    {
      "commit": "4ff6274fa770edf86d31dfea36e518d2964b2eee",
      "tree": "b81550579b5ee8de72a69ae54057fab74418ba6a",
      "parents": [
        "6a0afe1846e4d5f7867d4cc68cab468fdc9bfcba"
      ],
      "author": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Tue Oct 05 18:07:07 2021 -0700"
      },
      "committer": {
        "name": "Janis Danisevskis",
        "email": "jdanis@google.com",
        "time": "Thu Oct 07 08:24:42 2021 -0700"
      },
      "message": "Keystore 2.0 SPI: Fix NullPointerException in setKeyEntry.\n\nFix a NullPointerException when trying to insert SecretKey that already\nexists.\n\nBug: 202146009\nTest: atest android.keystore.cts.AndroidKeyStoreTest#testKeyStore_SetKeyEntry_ReplacedWithSameGeneratedSecretKey\nChange-Id: If3a4bd6677ab3173c5c1a7c921ba567b7981662b\n"
    },
    {
      "commit": "6939d8d66536fde1fdefd91ee4f84512175bf6c3",
      "tree": "7426fa5afae71d384b058dfa1fadea51f337fab7",
      "parents": [
        "bce9262c0d0d97fdb6d50c7e4aee5212dbe79d16",
        "15d1ab2fdd95cd2e2a1dd101a3bc98cb3417efbb"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Aug 24 17:52:12 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Aug 24 17:52:12 2021 +0000"
      },
      "message": "Merge \"Fix key alias string comparison\" am: 15d1ab2fdd\n\nOriginal change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1802873\n\nChange-Id: I20bb1006d93233dfe7dd73c12a0eaadee229e3d5\n"
    }
  ],
  "next": "11cce949b6e378c69223802b9fc26912734cceae"
}
