)]}'
{
  "log": [
    {
      "commit": "23c112a6f05cc5e39bd4aaf52ad515cad532237d",
      "tree": "db06bcc842ad51ab10744667542e2652ca3417ef",
      "parents": [
        "9d09ea1a0c6720506d99e598a168e896e245b295"
      ],
      "author": {
        "name": "Sunny CHEN",
        "email": "sunny.chen@st.com",
        "time": "Fri Jun 06 16:06:24 2025 +0800"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Jun 11 14:01:07 2025 +0200"
      },
      "message": "tee-supplicant: clear whole rsp_frm buffer\n\nFix rpmb_data_req() for message types RPMB_MSG_TYPE_REQ_AUTH_KEY_PROGRAM\nand RPMB_MSG_TYPE_REQ_AUTH_DATA_WRITE: the response frame must be cleared\nfully before being used.\n\nSigned-off-by: Sunny Chen \u003csunny.chen@st.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nAcked-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\n"
    },
    {
      "commit": "9d09ea1a0c6720506d99e598a168e896e245b295",
      "tree": "74e5a478ba4974c31672ec73dd99285cf118b4ed",
      "parents": [
        "02e7f9213b0d7db9c35ebf1e41e733fc9c5a3f75"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Apr 09 10:01:08 2025 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Apr 28 16:37:57 2025 +0200"
      },
      "message": "tee-supplicant: remove unused TEE_FS_FILENAME_MAX_LENGTH\n\nThe TEE_FS_FILENAME_MAX_LENGTH is not used anywhere so remove it.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "a5b1ffcd26e328af0bbf18ab448a38ecd558e05c",
      "tree": "13377aa38f3ddbc5114920afeaa3f5693ba44bff",
      "parents": [
        "f1f000b3951ae3ceeafedeb95cc3c010a2d15047"
      ],
      "author": {
        "name": "Ayoub Zaki",
        "email": "ayoub.zaki@embetrix.com",
        "time": "Thu May 30 13:36:59 2024 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Jun 21 15:29:03 2024 +0200"
      },
      "message": "tee-supplicant: send READY\u003d1 notification to systemd\n\nThis option is very useful when tee-supplicant is started\nfrom systemd and can used with Type\u003dnotify to signal readiness\n\nSigned-off-by: Ayoub Zaki \u003cayoub.zaki@embetrix.com\u003e\nAcked-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nTested-by: Mikko Rapeli \u003cmikko.rapeli@linaro.org\u003e\n"
    },
    {
      "commit": "f1f000b3951ae3ceeafedeb95cc3c010a2d15047",
      "tree": "499c5b091bab3fcde979111db63363876129aa7f",
      "parents": [
        "3eac340a781c00ccd61b151b0e9c22a8c6e9f9f0"
      ],
      "author": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@foss.st.com",
        "time": "Fri May 24 17:11:11 2024 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Jun 13 21:37:44 2024 +0200"
      },
      "message": "tee-supplicant: remove useless use of __ANDROID__ condition\n\nSince commit 37975f1ba31e (\"rmpb: update AOSP RPMB device path\")\nthe RPMB device path is the same __ANDROID__ directive being set\nor not hence simplify the implementation by removing use of that\ndirective.\n\nSigned-off-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "3eac340a781c00ccd61b151b0e9c22a8c6e9f9f0",
      "tree": "04b99fcd10a1d882f3dd0efd1bf689d0bd5875ab",
      "parents": [
        "7749688eb18d6ff87f94e838ec0cadc7051bc692"
      ],
      "author": {
        "name": "Julianus Larson",
        "email": "julianus.larson@linaro.org",
        "time": "Wed May 17 11:15:02 2023 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Apr 02 10:21:52 2024 +0200"
      },
      "message": "libteec: Move OP-TEE defined fields into an imp struct\n\nGlobalPlatform TEE Client API Specification v1.0 specifies that\nthe structs TEEC_Context, TEEC_Session, TEEC_SharedMemory,\nand TEEC_Operation shall have a user defined struct named imp.\nIn OP-TEE the struct is not there and instead the user defined\nfields are declared directly in the top structs.\nThis commit introduces the imp struct to better support using\ndifferent implementations. The imp fields now represent the\nimplementation defined parts of the structs that was\npreviously declared directly in the top struct. All previously\navailable parameters are preserved in the imp struct.\nThe updated version of the imp structure makes it easier to\ncreate a binding for Rust.\nAdding the missing imp struct to the structs in OP-TEE is an\nABI breakage which requires a version major update of libteec.\n\nLink: https://github.com/OP-TEE/optee_client/issues/348\nReported-by: Tom Hebb \u003ctommyhebb@gmail.com\u003e\nSigned-off-by: Julianus Larson \u003cjulianus.larson@linaro.org\u003e\nAcked-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\nAcked-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "cef6c7eca4945e51b1f854af1077b44d13c21c28",
      "tree": "be108169087f4f75fceff96731ffc786dd7a2698",
      "parents": [
        "c5b3920f58080fda3423235d2620106456bd5b50"
      ],
      "author": {
        "name": "p870613",
        "email": "p870613@yahoo.com.tw",
        "time": "Fri Feb 16 01:22:33 2024 +0800"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Feb 19 17:17:13 2024 +0100"
      },
      "message": "tee-supplicant: fix potential crash when TA isn\u0027t found\n\nset_ta_path() doesn\u0027t add a NULL pointer to the last element of ta_path,\nwhich can cause a segmentation fault when a TA is not found. Use\ncalloc() instead of malloc() to make sure the ta_path array is always\nNULL-terminated.\n\nLink: https://github.com/OP-TEE/optee_client/issues/374\nSigned-off-by: guan-gm.lin \u003cguan-gm.lin@mediatek.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\n"
    },
    {
      "commit": "5448e224fb594edda13985f47bd22b746eee0711",
      "tree": "0e14eb94cb485d1ad8a7e938029a734687d30d48",
      "parents": [
        "98dc4f488c2f9e433e3e6574ddbdafd116f523db"
      ],
      "author": {
        "name": "Tanel Dettenborn",
        "email": "tanel@ssrc.tii.ae",
        "time": "Tue Dec 05 10:47:05 2023 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Jan 08 09:33:45 2024 +0100"
      },
      "message": "tee-supplicant: Enforce paths bound limits\n\nVerify \"ta-path\" command line argument length and if snprintf()\nconcated path is too long, then print an error message and\nterminate startup.\n\nSigned-off-by: Tanel Dettenborn \u003ctanel@ssrc.tii.ae\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nAcked-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\n"
    },
    {
      "commit": "f3845d8bee3645eedfcc494be4db034c3c69e9ab",
      "tree": "299fccf34df69e28fbec09b273b88c6f2434c6d0",
      "parents": [
        "c84206b27d44f8dbe5271d700b952ae10f19ee73"
      ],
      "author": {
        "name": "Jared Baur",
        "email": "jaredbaur@fastmail.com",
        "time": "Sun Nov 19 20:16:47 2023 -0800"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Nov 27 16:06:16 2023 +0100"
      },
      "message": "tee-supplicant: Allow for TA load path to be specified at runtime\n\nAdd a new `--ta-path` CLI flag for overriding the default load path used\nby tee-supplicant. The given path string can be a set of colon (\u0027:\u0027)\nseparated paths, each being a full path used when searching for TAs.\nWhen this option is not used, the existing behavior of loading TAs from\na subdirectory \"ta-dir\" under TEEC_LOAD_PATH is retained.\n\nSigned-off-by: Jared Baur \u003cjaredbaur@fastmail.com\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "c84206b27d44f8dbe5271d700b952ae10f19ee73",
      "tree": "1689a1c8bbbe82e475c261a6976c53cc7cc15ff6",
      "parents": [
        "acb0885c117e73cb6c5c9b1dd9054cb3f93507ee"
      ],
      "author": {
        "name": "Mika Tammi",
        "email": "mika.tammi@unikie.com",
        "time": "Tue Sep 19 22:32:50 2023 +0300"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Oct 30 18:29:43 2023 +0100"
      },
      "message": "tee-supplicant: Cleanup TEEC_TEST_LOAD_PATH\n\nCleanup TEEC_TEST_LOAD_PATH and CFG_TA_TEST_PATH, as the\nTEEC_TEST_LOAD_PATH was not working properly anyway.\n\nTEEC_TEST_LOAD_PATH and CFG_TA_TEST_PATH are removed, and the\nTEEC_LOAD_PATH is supposed to hold all paths where to search for TAs.\n\nSigned-off-by: Mika Tammi \u003cmika.tammi@unikie.com\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@foss.st.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "0fc6ef70a70d38628ded06590aefb7bc23364d99",
      "tree": "7cf9a2afe640d3a9b7af835eb72fd1ca6d1ddb5f",
      "parents": [
        "dde6306458331371be5df15e3ca953697d2463ef"
      ],
      "author": {
        "name": "liu_yi",
        "email": "liu_yi@kylinos.cn",
        "time": "Tue Feb 28 09:20:34 2023 +0800"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Mar 01 09:09:57 2023 +0100"
      },
      "message": "tee-supplicant: fix leak when load plugin failed\n\nload_plugin() calls dlopen() but does not call dlclose() when dlsym()\nfails. Fix that.\n\nSigned-off-by: liu_yi \u003cliu_yi@kylinos.cn\u003e\n[jf: fix minor formatting issues in code and description]\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "cb3842cb92255989a402c032797be999eebb9158",
      "tree": "5ccfcac6d7cd7615cd558bda2c71472f4b6e7c52",
      "parents": [
        "52fca902d7c31a1070ee46d8f674840fdadfdfeb"
      ],
      "author": {
        "name": "Joakim Nordell",
        "email": "joakim.nordell@axis.com",
        "time": "Fri Oct 21 13:27:33 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Oct 31 09:53:34 2022 +0100"
      },
      "message": "tee-supplicant: Synchronize file operations for secure storage\n\nIn order to properly synchronize data and meta-data for secure\nstorage, fsync() must be performed on the containing directory\nafter mkdir() and rename() operations.\nThis may be especially of interest in a production environment\nwhere power may be cut as soon as all the security\nparameters are saved.\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nSigned-off-by: Joakim Nordell \u003cjoakim.nordell@axis.com\u003e\n"
    },
    {
      "commit": "13123dea4bce6a52365b8d9c063a8e8b26ea9946",
      "tree": "a252e1064b4fae896b94dd1b8e7244a83555c54a",
      "parents": [
        "4a8438d8be156df3258dc8d8cd73a357c1ab7ee2"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Oct 24 11:36:33 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Oct 24 18:02:19 2022 +0200"
      },
      "message": "tee-supplicant: fs: no need to use strlen() to check for empty string\n\nA string is empty when its first character is zero. Therefore, we can\navoid calling strlen() on each FS request.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5364e6155dbe1511c2b506c7320533170c56ab0f",
      "tree": "a1e7e9173ae220f8d0ff7ce3223b738a978f8445",
      "parents": [
        "a46239c82f941f60e91b31ff4e0c94569ac41e1b"
      ],
      "author": {
        "name": "Julien Masson",
        "email": "jmasson@baylibre.com",
        "time": "Wed Jul 06 11:40:50 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Fri Sep 09 15:12:00 2022 +0200"
      },
      "message": "tee-supplicant: read rpmb dev info from sysfs\n\nFor now tee-supplicant retrieve RPMB informations by opening mmc dev\nnode and read data at the corresponding offset.\nThat is a problem on Android device with selinux enabled because the\naccess to this node is restricted to kernel/init.\n\nAll the necessary informations can instead be read from sysfs:\n- RPMB partition size:\n/sys/class/mmc_host/mmc%u/mmc%u:0001/raw_rpmb_size_mult\n- Reliable write sector count:\n/sys/class/mmc_host/mmc%u/mmc%u:0001/rel_sectors\n\nTests done on the following board: (Android build)\nhttps://ologicinc.com/portfolio/mediatek-pumpkin-i350/\n\nSigned-off-by: Julien Masson \u003cjmasson@baylibre.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nTested-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e (hikey-hikey)\n"
    },
    {
      "commit": "492410dcb78f07677524e1d932c86260180ea72c",
      "tree": "febbbd78e9e6ff5ae35d3a3309596c1799f2f667",
      "parents": [
        "d59ed2d3a9635791f72f7fdc3f59ba1b8b5c960f"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Aug 10 19:06:00 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Aug 18 12:58:11 2022 +0200"
      },
      "message": "tee-supplicant: -d: return after TEE device is opened\n\nThis commit addresses a race condition when a kernel module using OP-TEE\nis loaded immediately after tee-supplicant is started. To understand the\nproblem, consider that with a shell background task there is no guarantee\nthat the service is available to the kernel when the command returns.\nSo the following:\n\n  tee-supplicant \u0026\n  modprobe \u003csome_module\u003e\n\n...may fail when \u003csome_module\u003e invokes the kernel TEE client API (note\nthat kernel users do NOT wait for the supplicant to be available [1],\ncontrary to user space clients [1]).\n\nThis scenario was addressed by commit 66cdd5db37db (\"tee-supplicant: add\ndaemon mode (-d)\"), although the commit description did not explicitly\nmention it. With \u0027-d \u0027 the supplicant command would open the device\nbefore returning. Unfortunately, this was inadvertently broken by commit\n523d50bdede6 (\"tee-supplicant: daemonize before opening a supplicant\ndevice\").\n\nRestore the previous behavior while still keeping the open() call in the\nchild process, by introducing some synchronization between the parent\nand the child. A pipe is created and the parent issues a blocking read.\nAfter successfully opening the device the child writes data to the pipe,\nthus releasing the parent. If the child crashes or exits before writing\nthe parent is released with 0 bytes read and exits with an error status.\n\nThe daemon() call is replaced by make_daemon() which is an open-coded\nversion of the daemon() funcion as described in the Linux man page,\nmodified to deal with the IPC.\n\nLink: [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tee/tee_core.c?h\u003dv5.19#n1128\nLink: [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/tee/tee_core.c?h\u003dv5.19#n117\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "e7cba71cc6e2ecd02f412c7e9ee104f0a5dffc6f",
      "tree": "ad02ef1da8cd6d07f88aa2eac43f39952163c9cb",
      "parents": [
        "f7ed8e3d3955e0b7a7d3ff77ab2abcfd8fb1cdb9"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Jul 04 16:34:40 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Jul 06 10:22:49 2022 +0200"
      },
      "message": "tee-supplicant: fs: use errno instead of returning TEEC_ERROR_GENERIC\n\nTry to give a bit more information to the TEE core (and subsequently the\nTA) about the cause of FS operation errors by translating errno to a\nTEEC_Result rather than returning TEEC_ERROR_GENERIC always. Introduce\nTEEC_ERROR_STORAGE_NO_SPACE with the same value as\nTEE_ERROR_STORAGE_NO_SPACE and use it to map to ENOSPC.\n\nThis would have been helpful in issue [1]. Instead of being killed with\nTEE_ERROR_GENERIC, the TA would have received TEE_ERROR_STORAGE_NO_SPACE.\n\nLink: [1] https://github.com/OP-TEE/optee_os/issues/5419\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "f7ed8e3d3955e0b7a7d3ff77ab2abcfd8fb1cdb9",
      "tree": "79b2c91b75e22752ac7e647ac4b57bd2b5a93dc4",
      "parents": [
        "a5c30b1277466a9bf85b62f45a6b00e79774e29c"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Apr 18 09:53:32 2022 -0700"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Jun 29 07:17:12 2022 +0200"
      },
      "message": "tee-supplicant: support multiple TA load paths\n\nParse CFG_TEE_CLIENT_LOAD_PATH (TEEC_LOAD_PATH) and TEEC_TEST_LOAD_PATH\nas a colon-separated list of paths. This commit also updates the\ndocumentation of CFG_TEE_CLIENT_LOAD_PATH and try_load_secure_module()\nwhich were either lacking or incorrect.\n\nSuggested-by: Chao Chen \u003cccha@amazon.com\u003e\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "dc58de2f6d93a181def3bb11b6c4fc541457818f",
      "tree": "413f7f0ee72c124fe22b5076839daf4d1920d83a",
      "parents": [
        "f2a7c942393c6383ac89d9264999cd9c93a70b80"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Fri May 20 07:51:01 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Fri May 20 11:34:02 2022 +0200"
      },
      "message": "tee-supplicant: close shm fd before freeing memory\n\nThe resources of a shm is released in process_free(), this includes the\nfile descriptor and the memory buffer which was registered. Closing\nthe file descriptor unregisters the memory buffer.\n\nThe memory buffer was, prior to this patch, freed before the file\ndescriptor was closed. This could lead to another thread reusing this\nmemory buffer before it has been unregistered. This is normally not a\nproblem since the buffer will not be read or modified after it has been\nfreed. However, FF-A mandates that a physical memory isn\u0027t registered\nalready when registering. Son in the case we can have occasional failures.\n\nFixes: 075c56eebdc9 (\"tee_supplicant: add register memory feature\")\nAcked-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "f2a7c942393c6383ac89d9264999cd9c93a70b80",
      "tree": "8b4dbcf7fe4e70b8f1564e7f35db10f40fb9708f",
      "parents": [
        "9a337049c52495e5e16b4a94decaa3e58fce793e"
      ],
      "author": {
        "name": "Fabrice Fontaine",
        "email": "fontaine.fabrice@gmail.com",
        "time": "Sat May 14 19:33:57 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon May 16 11:26:40 2022 +0200"
      },
      "message": "tee-supplicant/src/tee_supplicant.c: fix build without plugins\n\nFix the following build failure with CFG_TEE_SUPP_PLUGINS !\u003d y raised\nsince version 3.17.0 and commit [1].\n\n/home/giuliobenetti/autobuild/run/instance-2/output-1/build/optee-client-3.17.0/tee-supplicant/src/tee_supplicant.c:104:22: error: \u0027TEE_PLUGIN_LOAD_PATH\u0027 undeclared here (not in a function); did you mean \u0027TEEC_LOAD_PATH\u0027?\n  104 |  .plugin_load_path \u003d TEE_PLUGIN_LOAD_PATH,\n      |                      ^~~~~~~~~~~~~~~~~~~~\n      |                      TEEC_LOAD_PATH\n\nLink: [1] https://github.com/OP-TEE/optee_client/commit/876b1ae719e12890ddd96e85cd4e9862dab46448\nFixes: http://autobuild.buildroot.org/results/384e0ca894dbc0ec72cea76141de890f1ce484db\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nSigned-off-by: Fabrice Fontaine \u003cfontaine.fabrice@gmail.com\u003e\n"
    },
    {
      "commit": "8aed3edca4db2736fdadddab20f07945ddb9d3d1",
      "tree": "c8613e35e37c562686b8116a6c6ddd5b0a10dd27",
      "parents": [
        "5a69d55d65966c098ee1acce56bcd660f0de917b"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Apr 13 17:20:05 2022 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Apr 14 13:03:41 2022 +0200"
      },
      "message": "tee-supplicant: accept -r as a short option for --rpmb-cid\n\nCommit 5a69d55d6596 (\"tee-supplicant: add --rpmb-cid command line option\")\nmentions in the help string that -r is synonymous for --rpmb-cid, but\nit\u0027s not. Add the missing characters to the getopt_long() optstring\nargument.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5a69d55d65966c098ee1acce56bcd660f0de917b",
      "tree": "7a4aee804e71c488bba3f791d21b23aecb81a00b",
      "parents": [
        "88d374e56e611163de47dabe1bfc5c39ac5a107d"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Mar 16 19:33:26 2022 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Mar 30 09:32:26 2022 +0200"
      },
      "message": "tee-supplicant: add --rpmb-cid command line option\n\nIn OP-TEE OS, the RPMB device used for secure storage is selected at\ncompile time via an integer identifier (CFG_RPMB_FS_DEV_ID). As\nmentioned in [1], this ID is assigned by the Linux kernel and is used\nwhen tee-supplicant opens the device on behalf of OP-TEE. There are a\ncouple of issues with that:\n\n1. U-Boot and Linux may assign a different number to the same RPMB\ndevice. Therefore, the TEE supplicant components in U-Boot and Linux\ncannot both trust the ID given by OP-TEE.\n\n2. If a system has several RPMB devices, and even if we ignore removable\nones, there is no guarantee that the devices will always be enumerated\nin the same order by the kernel on boot. This results in different\ndevice numbers. I observed this behavior on a Hikey620 board with an\nexternal eMMC module plugged into the micro SD slot. Sometimes the\non-board RPMB (which I don’t use for testing) is /dev/mmcblk0rpmb and\nthe external one is /dev/mmcblk1rpmb; sometimes it is the other way\naround.\n\nIn order to remove any ambiguity, introduce a new command line argument\nto tee-supplicant: --rpmb-cid \u003cCID\u003e. \u003cCID\u003e is the device identification\nregister of the eMMC device that OP-TEE should use for RPMB. It is\nunique for every flash device. When --rpmb-cid is given, the device\nnumber given by OP-TEE is ignored and the specified device is used\ninstead. \u003cCID\u003e can be found in sysfs, for example:\n\n # Read the CID of MMC device 0. Its RPMB partition is /dev/mmcblk0rpmb.\n $ cat /sys/class/mmc_host/mmc0/mmc0\\:0001/cid\n 11010030303847453000e0a18ceb13df\n $\n\nLink: https://github.com/OP-TEE/optee_os/blob/3.16.0/mk/config.mk#L159-L162\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "88d374e56e611163de47dabe1bfc5c39ac5a107d",
      "tree": "6611ed1776576aae5d89972d9aa8aa5f6d381222",
      "parents": [
        "ba0ed67e1a066736d88f08bc99d73b5c40617c46"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Mar 18 11:14:19 2022 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Mar 30 09:32:26 2022 +0200"
      },
      "message": "tee-supplicant: rpmb: read CID in one go\n\nIntroduce read_cid_str() to read the whole eMMC CID from sysfs in one\ngo rather than doing it two bytes at a time. This function will come\nin handy in the next commit.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "ba0ed67e1a066736d88f08bc99d73b5c40617c46",
      "tree": "7bb3cff71102409901f9958f3e32de7fb5116e31",
      "parents": [
        "945704e6433e31753fb6c3f05e1ce61673dec1d6"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Mar 18 10:55:43 2022 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Mar 30 09:32:26 2022 +0200"
      },
      "message": "tee-supplicant: rpmb: introduce readn() wrapper to the read() syscall\n\nread_cid() obtains the ID of the eMMC device by reading from sysfs with\nthe read() function. Two bytes are read at a time but short reads (i.e.,\nwhen only one byte is returned) and EINTR are not handled. Although I\n*think* these situation cannot happen with sysfs, I was unable to find\nany guarantee that it is the case. Therefore, introduce a readn()\nfunction which does exactly that.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "945704e6433e31753fb6c3f05e1ce61673dec1d6",
      "tree": "4e417fe7bcdda8783a343159862cd42bf6dc6ebe",
      "parents": [
        "edf30722ab94317c29c0d49ef8d946239cb7d600"
      ],
      "author": {
        "name": "Ondrej Kubik",
        "email": "ondrej.kubik@canonical.com",
        "time": "Thu Feb 10 13:18:22 2022 +0000"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Tue Mar 01 14:13:16 2022 +0100"
      },
      "message": "tee-supplicant: fix plugin loading logic\n\nd_name variable in structures returned by readdir() contains filename within the directory.\nThis needs to be extended by dir path itself before passed to load_plugin() function\n\nSigned-off-by: Ondrej Kubik \u003condrej.kubik@canonical.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nReviewed-by: Aleksandr Anisimov \u003canisimov.alexander.s@gmail.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "edf30722ab94317c29c0d49ef8d946239cb7d600",
      "tree": "3a1d863bdc64e3f1aaa826240a8130f0c17be549",
      "parents": [
        "876b1ae719e12890ddd96e85cd4e9862dab46448"
      ],
      "author": {
        "name": "Ondrej Kubik",
        "email": "ondrej.kubik@canonical.com",
        "time": "Thu Feb 03 21:35:57 2022 +0000"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Feb 21 19:17:16 2022 +0100"
      },
      "message": "tee-supplicant: refactor argument parsing in main()\n\nSigned-off-by: Ondrej Kubik \u003condrej.kubik@canonical.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\n"
    },
    {
      "commit": "876b1ae719e12890ddd96e85cd4e9862dab46448",
      "tree": "7fb590ac22f893215d32aa9c14a297435b696fb7",
      "parents": [
        "8b3f7fe3401f0853b4af32aed2c1b436f3a36377"
      ],
      "author": {
        "name": "Ondrej Kubik",
        "email": "ondrej.kubik@canonical.com",
        "time": "Thu Feb 03 21:31:04 2022 +0000"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Feb 21 19:17:16 2022 +0100"
      },
      "message": "tee-supplicant: introduce struct tee_supplicant_params for global config\n\nSigned-off-by: Ondrej Kubik \u003condrej.kubik@canonical.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\n"
    },
    {
      "commit": "df537dd7b9147bd5aaba620f76cbf9dd7a07f0a3",
      "tree": "7455ea81f4c7e53b3191bec500f3b759db625028",
      "parents": [
        "6d54f84d1e9aa58265afc7a5541bd7eeac4cc929"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Wed Dec 01 08:37:33 2021 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Dec 01 13:25:35 2021 +0100"
      },
      "message": "tee-supplicant: read_with_timeout(): fix non-blocking peeking\n\nIn case read_with_timeout() is called with *blen \u003d\u003d 0 it indicates that\nread_with_timeout() should just check how much data is available, and\nset how much in *blen and return success. If there is none available it\njust also returns success.\n\nPrior to this patch read_with_timeout() was instead returning an error\nin case no data was available, this is not expected by the caller so fix\nthis by returning success in that case instead.\n\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "6d54f84d1e9aa58265afc7a5541bd7eeac4cc929",
      "tree": "3f7f2f418be44c288f8424a7cdf93e3d426ffb9e",
      "parents": [
        "f4f54e5a76641fda22a49f00294771f948cd4c92"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Tue Nov 30 13:09:51 2021 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Dec 01 13:25:35 2021 +0100"
      },
      "message": "tee-supplicant: recv_with_out_flags(): check EINTR\n\nAdds special treatment if recvmsg() returns error with EINTR, in that\ncase the syscall was interrupted by delivery of a signal and we\nshould just try again with the same arguments.\n\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "e532a51ec020fd652dc1f83b4a5a0311afeab246",
      "tree": "8eee5cfc13a0506afdd2308ebd6fde43d7418d23",
      "parents": [
        "2a99339c9afd75623934bb8b90c5059490d8ac13"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Wed Oct 27 15:45:44 2021 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Nov 24 15:50:52 2021 +0100"
      },
      "message": "tee-supplicant: tee_socket_recv(): report truncated datagrams\n\nUpdates tee_socket_recv() to detect and report truncated datagrams and\nenable amount of data available to be queried.\n\nAcked-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "b3e9cee465371668e8beb6246f08d0b32d60b4fa",
      "tree": "e15ec242ce4fc19b5e97e02c3618768cb33e2828",
      "parents": [
        "9876c9cb785bbd2a13f7981f72aaf825c7bb118a"
      ],
      "author": {
        "name": "Elvira Khabirova",
        "email": "e.khabirova@omp.ru",
        "time": "Tue Oct 19 14:45:43 2021 +0300"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Oct 20 11:32:33 2021 +0200"
      },
      "message": "tee-supplicant: handle ftell() errors\n\nftell() can return -1; handle that properly.\n\nSigned-off-by: Elvira Khabirova \u003ce.khabirova@omp.ru\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\n"
    },
    {
      "commit": "9876c9cb785bbd2a13f7981f72aaf825c7bb118a",
      "tree": "935736bab337aeeeeba0c9a089539da18ee4dbb5",
      "parents": [
        "ae19e954232f4c34c48f1d2c92646a031a180c5f"
      ],
      "author": {
        "name": "Elvira Khabirova",
        "email": "e.khabirova@omp.ru",
        "time": "Tue Oct 19 14:45:32 2021 +0300"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Oct 20 11:32:33 2021 +0200"
      },
      "message": "teec_ta_load: replace printfs with DMSGs\n\nSigned-off-by: Elvira Khabirova \u003ce.khabirova@omp.ru\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\n"
    },
    {
      "commit": "f59114370f267f0b3341870b6cf1e1c88d184b3f",
      "tree": "3c7d86d225385e8a7bca5719ccff233893c5b61b",
      "parents": [
        "719780674ee94c4353e1b0687e1f36b78926dd60"
      ],
      "author": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Wed Aug 04 13:17:52 2021 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Aug 26 09:19:44 2021 +0200"
      },
      "message": "tee-supplicant: add CFG_TEE_SUPP_PLUGINS to enable or not plugin support\n\nThis change allows optee_client configuration to enable or not supplicant\nplugin support. The feature is enabled from switch CFG_TEE_SUPP_PLUGINS.\nThe configuration is default enable for backward compatibility purpose.\n\nThere are OSes where TEE supplicant plugin cannot be supported for\nexample when the OS does not enable dynamic/shared libraries. Such\nsystems should still be able to embed OP-TEE assuming the supplicant\nplugin support is not embedded. Prior this change was optee_client\nfailing to build for such systems with a error message like the one\nbelow reported by Buildroot CI build [1]:\n\n/tmp/instance-2/output-1/build/optee-client-3.13.0/tee-supplicant/src/plugin.c:8:10: fatal error: dlfcn.h: No such file or directory\n    8 | #include \u003cdlfcn.h\u003e\n      |          ^~~~~~~~~\n\nLink: [1] http://autobuild.buildroot.net/results/56d1ec172d0d857d6a968397b7785f961fad1043/\nSigned-off-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nAcked-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "fa1d30c95d6f84cffed59220c0443709c303866c",
      "tree": "7bc6f4d99d1d54c1ff2cefcf9bbdbe1c1f0f1417",
      "parents": [
        "7ae9a404a2874fa5ceac441be0e0c708a7781b98"
      ],
      "author": {
        "name": "Timothée Cercueil",
        "email": "timothee.cercueil@st.com",
        "time": "Mon May 17 14:50:55 2021 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Tue Jun 08 16:04:38 2021 +0200"
      },
      "message": "tee_supplicant.c: Fix shared memory size retrieval from OPTEE\n\nThe shared memory size got from tee_shm object already strips offset\nfrom total buffer size.\nThe offset substraction breaks memref parameters through RPC when\napplying offset to them.\n\nSigned-off-by: Timothée Cercueil \u003ctimothee.cercueil@st.com\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "6782dcf66988ff4b809e2cc589f12143079b38d7",
      "tree": "e460a4fe2d74d3d23562128eccb10b93b8c652eb",
      "parents": [
        "7e2063acb6355e1775c129078a9951a70f14f57d"
      ],
      "author": {
        "name": "Rouven Czerwinski",
        "email": "r.czerwinski@pengutronix.de",
        "time": "Wed Apr 28 13:44:22 2021 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Apr 28 17:48:42 2021 +0200"
      },
      "message": "tee-supplicant: plugin: remove regular file check\n\nThe readdir(3) man page mentions:\n\n  Currently, only some filesystems (among them: Btrfs, ext2, ext3, and\n  ext4) have full support for returning the file type in d_type. All\n  applications must properly handle a return of DT_UNKNOWN.\n\nWhich is exactly the case on my nitrogen6x test system based on YOCTO\ngatesgarth even using ext4:\n\n  getdents64(4\u003c/usr/lib/tee-supplicant/plugins\u003e,\n  [{d_ino\u003d3269, d_off\u003d375390918, d_reclen\u003d64, d_type\u003dDT_UNKNOWN, d_name\u003d\"f07bfc66-958c-4a15-99c0-260e4e7375dd.plugin\"}, …], 32768) \u003d 112\n\nEven the regular test plugin for the tee-supplicant is identified as\nDT_UNKNOWN, preventing the supplicant from loading the plugin.\nInstead try to open all files within the plugin directory, excluding \".\"\n\u0026 \"..\".\n\nSigned-off-by: Rouven Czerwinski \u003cr.czerwinski@pengutronix.de\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "562dadc726b8ecbde981686593a0d7f8ffb4757b",
      "tree": "29cb26cfe5cb560fe7e9f5bab5b68eae8ed0fbe1",
      "parents": [
        "5da4da99e0bb3d694e93046207ae4ce3b5545043"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Nov 16 17:34:07 2020 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Mar 29 15:00:59 2021 +0200"
      },
      "message": "Allocate page aligned shared memory buffers\n\nAllocate page aligned shared memory buffer guarantee that each shared\nmemory buffer doesn\u0027t accidentally share a page of memory or they may\nbecome aliased when mapped in secure world. This is normally not a big\nproblem but may make it a bit harder to track down buffer overruns in\nshared memory buffers.\n\nIn a post Arm v8.4 architecture with FF-A [1] there\u0027s trouble since it\u0027s\nnot permitted to share the same physical page twice.\n\n[1] https://developer.arm.com/documentation/den0077/latest\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5da4da99e0bb3d694e93046207ae4ce3b5545043",
      "tree": "d07800341a2196cd00575bc32790aa2f87a69d9e",
      "parents": [
        "bda34420cf2e6fa0f20340d409ec245ada7e6cf4"
      ],
      "author": {
        "name": "Ricardo Salveti",
        "email": "ricardo@foundries.io",
        "time": "Tue Feb 09 19:31:52 2021 -0300"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Mar 29 13:09:45 2021 +0200"
      },
      "message": "tee-supplicant: rpmb: switch to MMC_IOC_MULTI_CMD\n\nOn some eMMC devices, the mix of RPMB and normal MMC commands can result\nin GENERAL FAILURE, which then forces OP-TEE to mark the RPMB device\nas dead (part of the rollback vulnerability fix).\n\nIn order to work around this problem, the linux kernel also supports\nsending all the required MMC_IOC commands in one single multiple ioctl\ncommand request, which forces the RPMB commands to be serialized,\navoiding the issue.\n\nAs MMC_IOC_MULTI_CMD is available since linux 4.3, we should be safe to\nuse it by default on read / write block operations.\n\nFor reference, this issue is also nicely described at the\nhttps://www.mail-archive.com/linux-mmc@vger.kernel.org/msg17589.html.\n\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nTested-by: Igor Opaniuk \u003cigor.opaniuk@foundries.io\u003e\nSigned-off-by: Ricardo Salveti \u003cricardo@foundries.io\u003e\n"
    },
    {
      "commit": "523d50bdede6c9046b1e4c0bd09a8c7122ab96c2",
      "tree": "7d0613866bffecc34d9d2d51d12c78df6f441ae6",
      "parents": [
        "41d73fea8c74654f4e56cc56f5c4eb08a8a50d8b"
      ],
      "author": {
        "name": "Elvira Khabirova",
        "email": "e.khabirova@omprussia.ru",
        "time": "Mon Feb 08 13:08:22 2021 +0300"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Wed Feb 10 08:21:10 2021 +0100"
      },
      "message": "tee-supplicant: daemonize before opening a supplicant device\n\nPrior to this change tee-supplicant, when called with -d,\nfirst opened /dev/teeprivX, and called daemon(3) later.\nThis implied that a file descriptor associated with the\nsupplicant device transferred from one process to another.\n\nThis may conflict with security policies related to tee device\nfile descriptors. Since TEE client ID is tied to a process,\ntransferring such a sensitive thing as a tee device handle\nbetween processes might be discouraged.\n\nReorder the two: first daemonize, and open the tee device later.\n\nSigned-off-by: Elvira Khabirova \u003ce.khabirova@omprussia.ru\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\n"
    },
    {
      "commit": "1e91cc797f72261fb03e7c2ce30944ff613ac07e",
      "tree": "dbaefc9a6e35f5a1fb4891aa0a3a6cffd68ff611",
      "parents": [
        "02803c1ddb57aa8b2034b824f4851dfd2fa12b93"
      ],
      "author": {
        "name": "Aleksandr Anisimov",
        "email": "a.anisimov@omprussia.ru",
        "time": "Tue Dec 08 22:46:47 2020 +0300"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Feb 04 10:16:44 2021 +0100"
      },
      "message": "tee-supplicant: add a framework for loadable plugins\n\nThis framework makes the supplicant a bit more flexible\nin terms of providing services. Any external TEE services\ncan be designed as a tee-supplicant plugin.\nIt makes it easy to:\n - add new features in the supplicant that aren\u0027t needed in upstream,\n   e.g. Rich OS specific services;\n - sync upstream version with own fork;\n\nTo create a plugin developers should implement the\n\u0027struct plugin_method\u0027. See public/tee_plugin_method.h file.\n\nThe plugin framework is based on new RPC call - \u0027OPTEE_MSG_RPC_CMD_PLUGIN\u0027.\nThis is an unified interface between TEE and any plugins.\nEvery plugin has own name based on UUID. TEE has access to\nplugins only by this UUID.\n\nEvery plugin should be placed into \"/usr/lib/tee-supplicant/plugins/\".\nSee \u0027CFG_TEE_PLUGIN_LOAD_PATH\u0027 definition in config.mk.\nThe supplicant opens and binds all plugins in the directory during\nstartup process using libdl. After this any requests to plugins\nfrom TEE will be processed in the common RPC handler.\n\nSigned-off-by: Aleksandr Anisimov \u003ca.anisimov@omprussia.ru\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "342acaee0c77e94e51ace429b942bdd6ec185776",
      "tree": "62e65cc0674a1a0a544af2e6dc6178f4f8de9b55",
      "parents": [
        "3b5b32d43706b3fe14fb4aeb0f2396c72f069adf"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Fri Apr 17 14:29:38 2020 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Apr 20 16:34:20 2020 +0200"
      },
      "message": "Sync tee.h with Linux kernel v5.6\n\nTEE_IOC_SHM_REGISTER_FD (not upstream) and struct is moved down just\nabove TEE_IOC_SHM_REGISTER to keep IOCTL numbers in order.\n\nstruct tee_ioctl_param now matches the kernel version, that is, the\nunion with value and memref is replaced by just the value fields.\n\nAcked-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "05fc1d40703c9bed9d971a86c8809bb77c1e6ecd",
      "tree": "38a665a0f3f2154ca844d339d23b30531a55adfd",
      "parents": [
        "1fb3d0f999ba92ff8f152ca2b0dd2932734fe7c7"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Mar 30 14:09:51 2020 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Tue Mar 31 10:39:40 2020 +0200"
      },
      "message": "tee-supplicant: cast to __u64 to avoid potential overflow\n\nIf request-\u003esend.num_params is assigned a large value, there could be\nan overflow when computing data.buf_len. Cast to __u64 to avoid a\n32-bit computation.\n\nSigned-off-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nReported-by: Keping Hu \u003chukeping@huawei.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "be4fa2e36f717f03ca46e574aa66f697a897d090",
      "tree": "5b70fd8d7e535a62bf4a2f9d5bf1e1f98bdfa743",
      "parents": [
        "2e526f4be1d471706915ba1e0044bcbe7c0b2626"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Nov 07 16:40:20 2019 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Thu Nov 07 16:41:58 2019 +0000"
      },
      "message": "ftrace, gprof: fix format of UUID string in file name\n\nFunction prof_process() creates a file in /tmp which is named after\nthe UUID passed to the function. The format of the UUID is not the\nusual one; a dash is missing. Add it.\n\nSigned-off-by: Jerome Forissier \u003cjerome@forissier.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "2e526f4be1d471706915ba1e0044bcbe7c0b2626",
      "tree": "6e1f35ceb3306eefe71309935d33ca27425b6ae5",
      "parents": [
        "bc0ec8ce1e4dc5ae23f4737ef659338b7cd408fe"
      ],
      "author": {
        "name": "Sumit Garg",
        "email": "sumit.garg@linaro.org",
        "time": "Mon Oct 21 19:02:26 2019 +0530"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome@forissier.org",
        "time": "Mon Oct 21 17:41:00 2019 +0200"
      },
      "message": "tee-supplicant: Rename ftrace config macro\n\nRename ftrace config macro from CFG_TA_FTRACE_SUPPORT to\nCFG_FTRACE_SUPPORT as now with syscall function graph feature,\nscope of ftrace has been enlarged to profile OP-TEE core as well.\n\nSigned-off-by: Sumit Garg \u003csumit.garg@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome@forissier.org\u003e\n"
    },
    {
      "commit": "bc0ec8ce1e4dc5ae23f4737ef659338b7cd408fe",
      "tree": "bba786adab1fb48ed927b5e92be5e7e8aa010188",
      "parents": [
        "37975f1ba31e78808a62987cbfa5328275038461"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Thu Jul 11 17:58:39 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rpmb: add DMSG to print dev_id\n\nPrint dev_id as a sanity check during debugging.\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "37975f1ba31e78808a62987cbfa5328275038461",
      "tree": "e5ddc5b0517cf0ca601599b3f226bea93a598718",
      "parents": [
        "bdfe6c337afad0e9fa42df8d7b1b775fd42c9299"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Thu Jul 04 15:42:34 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rmpb: update AOSP RPMB device path\n\nkernel 4.14[1] enumerates RPMB devices on /dev/block/ but 4.19[2]\ndoes them on /dev/.\n\nLINK: [1] https://android-git.linaro.org/kernel/hikey-linaro.git/log/?h\u003dandroid-hikey-linaro-4.14\nLINK: [2] https://android-git.linaro.org/kernel/hikey-linaro.git/log/?h\u003dandroid-hikey-linaro-4.19\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "bdfe6c337afad0e9fa42df8d7b1b775fd42c9299",
      "tree": "c63339a136800e7a94b985748c2712e8f57717a8",
      "parents": [
        "9152fafcdd38092a685e2cb8a0475b57cf144a5a"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Mon Jun 24 01:28:24 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rpmb emu: increase EMU_RPMB_SIZE_MULT to 2\n\nThis increases the total RPMB size to 2*128 kB. Without this, 6018 will\nfail when \u0027xtest\u0027 is run using the \u0027test\u0027 account.\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nTested-by: Victor Chong \u003cvictor.chong@linaro.org\u003e (QEMU v8)\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "9152fafcdd38092a685e2cb8a0475b57cf144a5a",
      "tree": "04cac385c4696a2ab32238bbebdeafd38c90920c",
      "parents": [
        "505fc28ff37897738de7fe8783184f1ef63606b5"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Mon Jun 24 00:41:08 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rpmb emu: fix ioctl return type\n\nThe RPMB spec defines return results of commands as a single byte\nvalue. A result from an ioctl call for a command is stored in\n\u0027op_result\u0027 of \u0027struct rpmb_data_frame\u0027, which is of type \u0027uint16_t\u0027,\nwhich corresponds to \u0027uint8_t op_result[2]\u0027 of \u0027struct rpmb_data_frame\u0027\nin \u0027optee_os\u0027, with the single byte result stored @ index 1 of the\n2-element byte array since data transfer is MSB first, so we need to\nconvert the return results into the proper uint16_t values.\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "505fc28ff37897738de7fe8783184f1ef63606b5",
      "tree": "85106e08d912a1a7b73143b8a5c2bca9eaa21129",
      "parents": [
        "0189facbdadef0acf0d62712604fc5dd85e60a91"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Sat Jun 22 01:52:12 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rpmb emu: remove gratuitous line\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "0189facbdadef0acf0d62712604fc5dd85e60a91",
      "tree": "1fafcd606d05aa133840bd7dac53a6a0c4173878",
      "parents": [
        "0353db82ae439aa18f44c8112593c4c2e012e8a9"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Fri Jun 21 19:51:31 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rpmb emu: return RPMB_RESULT_AUTH_KEY_NOT_PROGRAMMED if key not set\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "0353db82ae439aa18f44c8112593c4c2e012e8a9",
      "tree": "096fd9adb019a9d925e2cf85c9af5e3e8afe5a5a",
      "parents": [
        "16e5304f92691221613dbc88b0baa91245d073c5"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Fri Jun 21 19:51:04 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 06 21:20:06 2019 +0200"
      },
      "message": "rpmb: add missing defines for RPMB results\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "89cf8722edceea99026b16dccac3f8179e4e9163",
      "tree": "e26c2c151e697e214f1a7d4c92e001eacb98ed26",
      "parents": [
        "7a2b6ddc07a7aa321d952a83c103e2c9e33cc8d6"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome@forissier.org",
        "time": "Fri Jun 07 17:31:59 2019 +0200"
      },
      "committer": {
        "name": "Joakim Bech",
        "email": "joakim.bech@linaro.org",
        "time": "Tue Jun 11 10:16:45 2019 +0200"
      },
      "message": "tee-supplicant: create profiling files with permission 0644\n\nProfiling files are created in /tmp by tee-supplicant with permissions\n0600 (-rw-------). In other words, only the owner of the file can\naccess it. This is a bit annoying because tee-supplicant typically runs\nunder a special user account (\u0027tee\u0027) which is not normally used to log\ninto the system. As a result, the files are difficult to access when\ndebugging.\n\nChange permissions to 0644 (-rw-r--r--) for easier access to the data.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Sumit Garg \u003csumit.garg@linaro.org\u003e\n"
    },
    {
      "commit": "7a2b6ddc07a7aa321d952a83c103e2c9e33cc8d6",
      "tree": "8c371d0be5cc4fa00dc48553538e3ee7dc353abc",
      "parents": [
        "83c7bcf92a92efcfdb810c7cdedb81fcb68c6aa4"
      ],
      "author": {
        "name": "Sumit Garg",
        "email": "sumit.garg@linaro.org",
        "time": "Thu May 16 19:06:20 2019 +0530"
      },
      "committer": {
        "name": "Joakim Bech",
        "email": "joakim.bech@linaro.org",
        "time": "Mon Jun 10 10:02:33 2019 +0200"
      },
      "message": "tee-supplicant: Add ftrace buffer dump support\n\nMake gprof dump framework common to utilize for ftrace buffer dump\nsupport.\n\nSigned-off-by: Sumit Garg \u003csumit.garg@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "83c7bcf92a92efcfdb810c7cdedb81fcb68c6aa4",
      "tree": "1747f487863b60e5913c2ea7accb0da172d02eec",
      "parents": [
        "cb716678778eefd58c8896f0c7ac33cba99d3ea7"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Fri May 10 17:40:15 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon May 13 10:42:22 2019 +0200"
      },
      "message": "simplify use of TEE fs related configs\n\nCFG_TEE_DATA_PATH confuses users because it\u0027s only used as a prefix for\nCFG_TEE_LOGS_PATH and not the actual root path for the TEE data dir as\ndescribed. The actual root path is $(TEE_FS_PARENT_PATH)/tee as can be\nseen under tee_supp_fs_init() in tee-supplicant/src/tee_supp_fs.c, so\njust get rid of CFG_TEE_DATA_PATH.\n\nNext, we move \"/tee\" from tee_supp_fs_init() to CFG_TEE_FS_PARENT_PATH,\nbecause otherwise, we have the beginning part of the path in a makefile\n(config.mk) and the ending in code (tee_supp_fs_init()), which seems\nmessy to manage and error prone. E.g. CFG_TEE_LOGS_PATH (or any of its\nsubsequently derived configs) depends on the actual full path of the TEE\nfs, so we can just set\nCFG_TEE_LOGS_PATH ?\u003d $(CFG_TEE_FS_PARENT_PATH)/logs\nrather than\nCFG_TEE_LOGS_PATH ?\u003d $(CFG_TEE_FS_PARENT_PATH)/tee/logs\nwhere the \"tee\" here has to match the \"tee\" in code.\nWith this change, the \"/tee\" subdirectory path is expected from the\nCFG_TEE_FS_PARENT_PATH value, but this change does not modify legacy\ndefault path of embedded files.\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nTested-by: Victor Chong \u003cvictor.chong@linaro.org\u003e (QEMU v8)\nAcked-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "cb716678778eefd58c8896f0c7ac33cba99d3ea7",
      "tree": "b25cdc95c42446e5d883537d559f27cdd0509b81",
      "parents": [
        "5bafb046bdded23e5aaa61274ecbc483f5b44b4f"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Fri Apr 26 16:41:55 2019 +0900"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri May 10 08:28:18 2019 +0200"
      },
      "message": "tee-supplicant: do not \u0027mkdir /data/tee\u0027 on startup\n\n\u0027mkdir\u0027 only on the first instance the REE FS is required, because:\n\n1. On systems that use RPMB only, this dir isn\u0027t necessary so there\u0027s\nno point in creating an unused dir.\n\n2. AOSP systems that use OP-TEE for disk encryption depends on the\ntee-supplicant service to be up before properly mounting /data. If the\ntee-supplicant in return depends on \u0027mkdir /data/tee/\u0027 before it can\nstart, this creates a circular dependency and causes boot to hang.\nRemoving this tee-supplicant startup dependency on /data is part of the\nsolution chain to enable the use of OP-TEE for AOSP disk encryption.\n\n3. Most systems seem to take care of the creation of /data/tee with\nthe proper permission via some sort of init script anyway before\ntee-supplicant is even started.\n\nNOTE: /data is the default value assigned to TEE_FS_PARENT_PATH\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nTested-by: Victor Chong \u003cvictor.chong@linaro.org\u003e (QEMU v8)\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5bafb046bdded23e5aaa61274ecbc483f5b44b4f",
      "tree": "b9e77a167286db0b5145da722868e51eb467bd71",
      "parents": [
        "76d249c50589c59b62781699512ff63df28c32f3"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Sun May 05 18:56:32 2019 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon May 06 09:07:04 2019 +0200"
      },
      "message": "tee-supplicant: ioctl_emu_read_ctr(): MAC correct data\n\nPrior to this patch was ioctl_emu_read_ctr() calculating a MAC over\namong other things the uninitialized \"op_result\". \"op_result\" often\nhappens to be 0 which is the same as RPMB_RESULT_OK which is returned by\ncompute_hmac() on success. However, this field is not initialized before\ncalculating the MAC so it could very well differ resulting in an invalid\nMAC. This patch fixes this by initializing \"op_result\" to RPMB_RESULT_OK\nbefore calculating the MAC.\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "1f8f9abe4a31abd7b7490a7ddd9bbe812c92d5af",
      "tree": "badebd67bbca832931b3cb22e942160c1d2d6cd3",
      "parents": [
        "16c8f548786c70df04d3a1e61bf89abce9b92389"
      ],
      "author": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Thu Apr 04 21:00:25 2019 +0200"
      },
      "committer": {
        "name": "Joakim Bech",
        "email": "joakim.bech@linaro.org",
        "time": "Thu Apr 18 18:31:02 2019 +0700"
      },
      "message": "Cleanup some local variable initialization\n\nThis change removes few useless memset() and replace few memset() with\nan initialized structure where possible.\n\nThis change fixes some TEEC_Result variables initialization\nusing a valid enumerated ID.\n\nSigned-off-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nAcked-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\n"
    },
    {
      "commit": "924a4741d92417a29495fed39e371c8556a1e6c5",
      "tree": "72cffa7a98788a631f0ca3863e465e413edf3f07",
      "parents": [
        "9dbc61b3767ab1c3dfd0a19af02926b92ae09247"
      ],
      "author": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Thu Mar 21 09:43:35 2019 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Mar 21 09:46:53 2019 +0100"
      },
      "message": "Explicitly initialize local variables\n\nThis change initializes all local variables to prevent build issues\n(warnings and/or errors) in OP-TEE client package.\n\nUse memset() to initialize structured and typed variables. This change\nchanges ordering in the local variable definition block at function\nhead. Structured variables are defined below, right above the memset()\ncall block for their initialization, when possible.\n\nSigned-off-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "656e4276589fd1e4924d8155b285d19d831f7742",
      "tree": "ba237d16b8fee8719a910abfcb0c422262a9d303",
      "parents": [
        "c48bc3be9f23529952c7dd80ddd775bf580315b8"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Nov 15 17:06:42 2018 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Nov 19 09:42:17 2018 +0100"
      },
      "message": "tee_supplicant: gprof: fix compile error\n\nAvoids a compile error with using GCC 8.x with CFG_TA_GPROF_SUPPORT\u003dy:\n\n src/gprof.c: In function ‘gprof_process’:\n src/gprof.c:97:35: error: ‘%d’ directive output may be truncated writing between 1 and 10 bytes into a region of size 4 [-Werror\u003dformat-truncation\u003d]\n     snprintf(vers, sizeof(vers), \".%d\", id - 1);\n                                    ^~\n src/gprof.c:97:33: note: directive argument in the range [1, 2147483646]\n     snprintf(vers, sizeof(vers), \".%d\", id - 1);\n                                  ^~~~~\n src/gprof.c:97:4: note: ‘snprintf’ output between 3 and 12 bytes into a destination of size 5\n     snprintf(vers, sizeof(vers), \".%d\", id - 1);\n     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n cc1: all warnings being treated as errors\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "66cdd5db37db326cd021aa31fd31933457d59648",
      "tree": "70c1a064994083b5cc2e7b07fcc166601d10c97c",
      "parents": [
        "5355fdb841bce4f7cce3dd37fc31fa91bd625c98"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Aug 17 11:34:19 2018 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Aug 17 14:45:33 2018 +0200"
      },
      "message": "tee-supplicant: add daemon mode (-d)\n\nAdd the missing code to make tee-supplicant a proper daemon when invoked\nwith -d.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "9c5e24cfd60009188194e49202884082c2112c4f",
      "tree": "042f535d89d6c18f53245f4fa85b6a1470d2dc58",
      "parents": [
        "0361f9b21bb1acfaf23323a121f542fe03dcd2c8"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Jul 05 17:13:15 2018 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Aug 10 11:20:08 2018 +0200"
      },
      "message": "tee-supplicant: rpmb.c: add __attribute__((fallthrough))\n\nFix the following error reported by GCC 8.1:\n\nsrc/rpmb.c: In function ‘rpmb_data_req’:\nsrc/rpmb.c:683:6: error: this statement may fall through [-Werror\u003dimplicit-fallthrough\u003d]\n   if (rsp_nfrm !\u003d 1) {\n      ^\nsrc/rpmb.c:689:2: note: here\n  case RPMB_MSG_TYPE_REQ_AUTH_DATA_READ:\n  ^~~~\n\nI could not silence this warning using any of the special comments\ndocumented on the GCC Warning Options page [1]. It is weird, because we\nuse -Wextra which is supposed to enable -Wimplicit-fallthrough\u003d3, which is\nsupposed to recognize the comment we had already (/* Fall through */).\n\nLink: [1] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\n"
    },
    {
      "commit": "bd0e7c883a3912ed6958928b86fb4283f2014ca0",
      "tree": "15795bbc172bb73bc7341bbef37677aba5235aba",
      "parents": [
        "9a63135bef364618a321ad8a81c15e073e063dab"
      ],
      "author": {
        "name": "Yongqin Liu",
        "email": "yongqin.liu@linaro.org",
        "time": "Thu Jun 21 22:21:09 2018 +0800"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 07 11:33:49 2018 +0200"
      },
      "message": "Android related files: changes to work with Treble enabled build\n\n1. change to make libteec and tee-supplicant installed in the vendor partition\n2. use /data/vendor/tee instead of /data/tee as the workspace for tee\n3. local ta files from /vendor/lib\n\nAcked-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nSigned-off-by: Yongqin Liu \u003cyongqin.liu@linaro.org\u003e\n"
    },
    {
      "commit": "3f16662284a69fdec97b1712064be94d1fed7ae7",
      "tree": "847c7e3ce37d45e369806a4f592a73cca2ff3817",
      "parents": [
        "23b22b17ebe4a5eb50806d108ead244db6c9541a"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Feb 15 08:21:42 2018 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Feb 15 18:12:28 2018 +0100"
      },
      "message": "tee-supplicant: cast sizeof(x) to socklen_t\n\nFixes compilation warnings on Android:\n\n optee_client/tee-supplicant/src/tee_socket.c:551:12: error: comparison of integers of different signs: \u0027socklen_t\u0027 (aka \u0027int\u0027) and \u0027unsigned int\u0027 [-Werror,-Wsign-compare]\n                 if (slen \u003c sizeof(*sain))\n                     ~~~~ ^ ~~~~~~~~~~~~~\n optee_client/tee-supplicant/src/tee_socket.c:561:12: error: comparison of integers of different signs: \u0027socklen_t\u0027 (aka \u0027int\u0027) and \u0027unsigned int\u0027 [-Werror,-Wsign-compare]\n                 if (slen \u003c sizeof(*sain6))\n                     ~~~~ ^ ~~~~~~~~~~~~~~\n optee_client/tee-supplicant/src/tee_socket.c:577:12: error: comparison of integers of different signs: \u0027socklen_t\u0027 (aka \u0027int\u0027) and \u0027unsigned int\u0027 [-Werror,-Wsign-compare]\n                 if (slen \u003c sizeof(*sain))\n                     ~~~~ ^ ~~~~~~~~~~~~~\n optee_client/tee-supplicant/src/tee_socket.c:587:12: error: comparison of integers of different signs: \u0027socklen_t\u0027 (aka \u0027int\u0027) and \u0027unsigned int\u0027 [-Werror,-Wsign-compare]\n                 if (slen \u003c sizeof(*sain6))\n                     ~~~~ ^ ~~~~~~~~~~~~~~\n\nsocklen_t may be signed or unsigned, depending on which standard is\nimplemented. For instance, the Single UNIX Specification V2 [1] defines\nit as unsigned, while the more recent Open Group Base Specifications\nIssue 7 [2] does not mention signedness.\n\nTherefore, cast sizeof(x) to socklen_t to avoid any sign mismatch.\n\nLink: [1] http://pubs.opengroup.org/onlinepubs/7908799/xns/syssocket.h.html\nLink: [2] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/sys_socket.h.html\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReported-by: Angela Stegmaier \u003cangelabaker@ti.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "23b22b17ebe4a5eb50806d108ead244db6c9541a",
      "tree": "afac3f39d13618e12046aed0f46ffe296baa139a",
      "parents": [
        "e0a12e2322ae02e957910f29948bd19455bf9cfa"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Tue Dec 19 00:43:12 2017 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Feb 08 08:21:48 2018 +0100"
      },
      "message": "tee-supplicant: fix gcc warning\n\nFixes gcc warning:\nsrc/tee_socket.c: In function \u0027poll_with_timeout.constprop\u0027:\nsrc/tee_socket.c:361:28: error: \u0027until.tv_nsec\u0027 may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n  diff.tv_nsec \u003d a-\u003etv_nsec - b-\u003etv_nsec;\n                 ~~~~~~~~~~~^~~~~~~~~~~~\nsrc/tee_socket.c:382:18: note: \u0027until.tv_nsec\u0027 was declared here\n  struct timespec until;\n                  ^~~~~\nsrc/tee_socket.c:360:26: error: \u0027until.tv_sec\u0027 may be used uninitialized in this function [-Werror\u003dmaybe-uninitialized]\n  diff.tv_sec \u003d a-\u003etv_sec - b-\u003etv_sec;\n                ~~~~~~~~~~^~~~~~~~~~~\nsrc/tee_socket.c:382:18: note: \u0027until.tv_sec\u0027 was declared here\n  struct timespec until;\n                  ^~~~~\ncc1: all warnings being treated as errors\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "33fa3c1cc23c12c908baa09cb673373c5057b28c",
      "tree": "f37381e78ae203a303510bd73aabff107c4a6e8c",
      "parents": [
        "09b69afa5e9e74aac39e383d74f14b4d61c90476"
      ],
      "author": {
        "name": "Igor Opaniuk",
        "email": "igor.opaniuk@linaro.org",
        "time": "Sat Jan 27 17:15:35 2018 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Jan 29 11:38:24 2018 +0100"
      },
      "message": "tee-supplicant: fix use of mem after it\u0027s freed\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Igor Opaniuk \u003cigor.opaniuk@linaro.org\u003e\n"
    },
    {
      "commit": "73b4e490a8ed0b4a7714818e80998b9d8a7da958",
      "tree": "362f2df6bb1dc5e85bc7a9f8de1ba881aea0297a",
      "parents": [
        "075c56eebdc96ec304264da04ff45c0ee3acc3d9"
      ],
      "author": {
        "name": "l00176142",
        "email": "l00176142@notesmail.huawei.com.cn",
        "time": "Mon Oct 16 17:05:45 2017 +0800"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Oct 16 09:46:42 2017 +0200"
      },
      "message": "tee-supplicant: REE fs open file with O_SYNC flag\n\nCFG_RPMB_FS\u003dy and RPMB_EMU\u003d0(use EMMC RPMB device). Power down when\nwriting file without the O_SYNC flag, dirf.db was cached by kernel,\nsome very old (more than two generations) version was in the file\nsystem. If dirf.db and dirfile.db.hash (residing in RPMB) differ by\ntwo versions, it will cause TEE_ERROR_SECURITY, and the file data\nwill lost.\n\nAdd O_SYNC flag in open file to fix this issue.\n(fixed by Jens Wiklander)\n\nSigned-off-by: Jianhui Li \u003cairbak.li@hisilicon.com\u003e\nTested-by: Jianhui Li \u003cairbak.li@hisilicon.com\u003e (Hisilicon)\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "075c56eebdc96ec304264da04ff45c0ee3acc3d9",
      "tree": "ed91a5c598872c407751b590b7ff363eae509109",
      "parents": [
        "27888d73d156d4862c07effce7c8c2455774768b"
      ],
      "author": {
        "name": "Volodymyr Babchuk",
        "email": "vlad.babchuk@gmail.com",
        "time": "Mon Mar 06 21:58:03 2017 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Oct 05 02:16:04 2017 -0700"
      },
      "message": "tee_supplicant: add register memory feature\n\nIf OP-TEE and kernel support registereted shared memory,\nthen supplicant will use this feature instead of using\nshared memory pool.\n\nSigned-off-by: Volodymyr Babchuk \u003cvlad.babchuk@gmail.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "f761a27c454030131678a3c175fdf8876e95f59c",
      "tree": "df9c73b51db955e1a7091702338814563e7b919d",
      "parents": [
        "48107e5f3743be34536e476aea4824a0f68f9a30"
      ],
      "author": {
        "name": "l00176142",
        "email": "l00176142@notesmail.huawei.com.cn",
        "time": "Mon Aug 28 19:37:09 2017 +0800"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Aug 29 13:50:02 2017 +0200"
      },
      "message": "tee-supplicant: move TEEC_LOAD_PATH to Makefile\n\nTEEC_LOAD_PATH default value is \"/lib\", it could be changed by\nCFG_TEE_CLIENT_LOAD_PATH in tee_supplicant_android.mk.\nAs \"/lib\" could not meet all the scenes, it should be able to be\nchanged in Makefile for Linux.\n\n* Add -DTEEC_LOAD_PATH in Makefile\n* Remove the #ifndef TEEC_LOAD_PATH block in teec_ta_load.c\n* Set CFG_TEE_CLIENT_LOAD_PATH ?\u003d /lib in config.mk\n  (instead of /system/lib)\n* In Android.mk, set CFG_TEE_CLIENT_LOAD_PATH ?\u003d /system/lib\n  before config.mk is included\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nTested-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e (QEMU)\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Yongqin Liu yongqin.liu@linaro.org\nTested-by: Yongqin Liu yongqin.liu@linaro.org (Hikey with AOSP master)\nSigned-off-by: Jianhui Li \u003cairbak.li@hisilicon.com\u003e\n"
    },
    {
      "commit": "e5ba7e85ec9b89ca94dc72719fa8a9333dd2ea09",
      "tree": "cb4fe6e49c39290d33c861a4b8b1dd15e123fcaa",
      "parents": [
        "5db6c2db4104f820ef188ae56ffce3bf0bf6afd9"
      ],
      "author": {
        "name": "Yves Lefloch",
        "email": "YvesMarie_Lefloch@sigmadesigns.com",
        "time": "Wed Mar 22 17:14:07 2017 +0100"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Jun 01 18:02:21 2017 +0200"
      },
      "message": "tee-supplicant: Report error on short buffer when loading TA\n\nSigned-off-by: Yves Lefloch \u003cYvesMarie_Lefloch@sigmadesigns.com\u003e\nAcked-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "48aed6e7ac9f3ba43af5117484594fd94c28f2f0",
      "tree": "b58806f69528ffd2a0bdd7db6088380ce338f1b6",
      "parents": [
        "1358c3f29628809202acde3089c1e1b566301614"
      ],
      "author": {
        "name": "Ruslan Piasetskyi",
        "email": "ruslan.piasetskyi@gmail.com",
        "time": "Thu Jun 01 09:36:21 2017 +0300"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Jun 01 10:46:17 2017 +0200"
      },
      "message": "Storage: Added CFG_TEE_FS_PARENT_PATH config option\n\ntee-supplicant needs to create folder which will contain secure files.\nIn case folder can not be created, tee-supplicant exits.\n\nSometimes developers have to change this location to another.\nFor example, Android OS can not use /data folder, because tee-supplicant\nis needed for decrypt userdata.img (which is mounted in /data folder).\n\n* Add CFG_TEE_FS_PARENT_PATH config option\n* Cleanup secure storage init logic\n\nSigned-off-by: Ruslan Piasetskyi \u003cruslan.piasetskyi@gmail.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n[jf: fix typo in commit message]\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "1358c3f29628809202acde3089c1e1b566301614",
      "tree": "f56eeee5d630d62520f8cdad8311ef8c9e1cc0fb",
      "parents": [
        "63106fb4e086f7965e1f17945b2bbc71841c3a71"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue May 23 08:38:07 2017 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed May 31 18:11:40 2017 +0200"
      },
      "message": "Replace file permission symbolic values by octal numbers\n\nOctal numbers are prefered over symbolic values for file access modes.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "326001cf31814c728eb2f441c477f4d29600d90b",
      "tree": "9428861ce8227576909d21ac86e2ec9471bc31cf",
      "parents": [
        "d6a329167a13a124b5cf7a4f0e6f9911099e484a"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue May 30 10:17:16 2017 +0200"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue May 30 13:46:10 2017 +0200"
      },
      "message": "tee-supplicant: FS: remove unused legacy RPC functions\n\nSince commit 129360332591 (\"core: FS: remove unused legacy RPC\nfunctions\"), OP-TEE OS does not use a number of filesystem-related\ncommands anymore. Remove them from tee-supplicant.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5de013f78107d7deb5f78a303593feceb6943c29",
      "tree": "ef41c29feb47921deefa108c7e5f4f6c0c5ebf0b",
      "parents": [
        "f8a4086133224d9211b812cbcadbd1cf52a52d76"
      ],
      "author": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Tue May 23 11:26:13 2017 +0200"
      },
      "committer": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Tue May 23 11:26:13 2017 +0200"
      },
      "message": "supplicant: use public rpc command ids\n\nSigned-off-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "f8a4086133224d9211b812cbcadbd1cf52a52d76",
      "tree": "3daaf9c7662a88e4db1f38f04b30b0823d1f9409",
      "parents": [
        "a47e33440e4d3917a03f035f3b71f37dcf383952"
      ],
      "author": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Tue May 23 11:25:55 2017 +0200"
      },
      "committer": {
        "name": "Etienne Carriere",
        "email": "etienne.carriere@linaro.org",
        "time": "Tue May 23 11:25:55 2017 +0200"
      },
      "message": "supplicant: define/describe reserved Ids for supplicant commands\n\nAdd missing macros OPTEE_MSG_RPC_CMD_SHM_ALLOC/_SHM_FREE/_GPROF.\nMove OPTEE_MSG_RPC_CMD_SQL_FS_RESERVED to a better place.\nRemove deprecated reference to optee_msg.h.\n\nSigned-off-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nAcked-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "4d5cf6771d8dddf4c4c05c7145c9dbd036e10c6c",
      "tree": "8fc6a01a144b56eb24882357cd2a9d24bea7aae8",
      "parents": [
        "403c9a17579477d0dd7657f9857e7d3938f60523"
      ],
      "author": {
        "name": "Zhizhou Zhang",
        "email": "zhizhouzhang@asrmicro.com",
        "time": "Thu Mar 09 18:49:27 2017 +0800"
      },
      "committer": {
        "name": "Jérôme Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed May 03 14:01:51 2017 +0200"
      },
      "message": "tee-supplicant: correct block device path for android\n\nueventd create block devices under /dev/block/.\n\nSigned-off-by: Zhizhou Zhang \u003czhizhouzhang@asrmicro.com\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "403c9a17579477d0dd7657f9857e7d3938f60523",
      "tree": "999823bbe611166f23f03e8ff90471ed4a1fed34",
      "parents": [
        "0b7aa7d6ff08b20ba20c425eed8b2023a179ed85"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Wed Apr 19 13:38:26 2017 +0200"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Thu Apr 27 10:53:51 2017 +0200"
      },
      "message": "Remove SQL-FS\n\nAcked-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "1df4046bd729e866743454a18a71e72228e585fd",
      "tree": "eb11c3ae9a5bddefdaef0d8af9c94d0fe55b15fd",
      "parents": [
        "d507b84f82db4c8a85429e1fe255bfbe7b239856"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Mar 23 11:30:08 2017 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Mar 23 14:03:54 2017 +0100"
      },
      "message": "ree_fs_new_opendir(): ignore empty directory\n\nThe behavior of ree_fs_new_opendir() should be the same when a TA\ndirectory does not exist, or when it is empty: return\nTEEC_ERROR_ITEM_NOT_FOUND in both cases.\n\nCurrently, ree_fs_new_opendir() returns TEE_SUCCESS when the TA\ndirectory exists.  This causes an issue with REE FS, when the data\ndirectory is mounted over NFS. \"xtest 6009 6010\" fails with\nTEE_StartPersistentObjectEnumerator() returning TEE_SUCCESS instead of\nTEE_ERROR_ITEM_NOT_FOUND.\n\nThis is because test 6009 does not properly clean up. The test creates\npersistent objects, closes them, opens them again with the meta accesss\nflag and deletes them by calling TEE_CloseAndDeletePersistentObject1().\nIt turns out that tee-supplicant *does* attempt to remove the directory\nbut receives error ENOTEMPTY when the filesystem is NFS-mounted. The\nreason is that when it removes the file, as a consequence of\nsyscall_storage_obj_del() calling o-\u003epobj-\u003efops-\u003eremove(o-\u003epobj),\ntee-supplicant still has an open file descriptor to the object. This\ncauses the NFS server to keep a hidden file (.nfsXXX) in the directory,\ncausing the subsequent rmdir() to fail. Then, when\nsyscall_storage_obj_del() calls tee_obj_close(), the fd is closed and\nthe .nfsXXX file disappears. We\u0027re left with an empty TA directory, and\nwhen TEE_StartPersistentObjectEnumerator() invokes ree_fs_new_opendir()\nit ends up with TEE_SUCCESS instead of TEE_ERROR_ITEM_NOT_FOUND.\n\nOne option to fix the issue is to fix the directory cleanup sequence,\ni.e., make sure that the file descriptor is closed before the file is\nunlinked and the directory removed. But we choose to adjust\nree_fs_new_opendir() instead, because it is less intrusive in OP-TEE OS\nand also because the secure storage code is being reworked anyway for\nother reasons.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "ea4219472397c9759e9d509a8640f1e2f5e2a5e5",
      "tree": "122c824b43e6955e0ccfce2c6e58adbf7a194011",
      "parents": [
        "79309c4654b0f9fafe399a5b00fb57849cd0f85c"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Wed Mar 01 04:52:06 2017 +0000"
      },
      "committer": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Wed Mar 01 14:16:49 2017 +0000"
      },
      "message": "tee-supplicant: fix variable is used unitialized error\n\nFixes build error below:\ntee_socket.c:393:7: error: variable \u0027to\u0027 is used uninitialized whenever\n\u0027if\u0027 condition is false [-Werror,-Wsometimes-uninitialized]\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\n"
    },
    {
      "commit": "79309c4654b0f9fafe399a5b00fb57849cd0f85c",
      "tree": "e421e1f493232f68ff9548cfda2046c73d7c12d4",
      "parents": [
        "f79c74f00316f080e55dafc75a1ca93a9b6b0e1b"
      ],
      "author": {
        "name": "Joakim Bech",
        "email": "joakim.bech@linaro.org",
        "time": "Wed Mar 01 12:21:34 2017 +0100"
      },
      "committer": {
        "name": "Joakim Bech",
        "email": "joakim.bech@linaro.org",
        "time": "Wed Mar 01 13:12:29 2017 +0100"
      },
      "message": "Use the mode also in open_wrapper\n\nWhen source code is built with FORTIFY, it will give an error if you\u0027re\ndoing an open syscall without specifing the mode parameter.\n\nSigned-off-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "f79c74f00316f080e55dafc75a1ca93a9b6b0e1b",
      "tree": "1af6d5628cdba731f187e95c2c1a4257c53f985f",
      "parents": [
        "52e6ca175b6b90b484f7ebbf6e54d3ae41c182fd"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Tue Dec 13 20:47:01 2016 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Feb 20 08:23:19 2017 +0100"
      },
      "message": "tee-supplicant: Add support for TCP/UDP iSocket interface\n\nAcked-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nTested-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e (b2260)\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "52e6ca175b6b90b484f7ebbf6e54d3ae41c182fd",
      "tree": "f3d26aaee18057f5f961e8e51cfd22d86be38c26",
      "parents": [
        "5229afd304ffca9d54e43d96311f1d6f5396f158"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Tue Dec 13 11:20:31 2016 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Feb 20 08:23:09 2017 +0100"
      },
      "message": "tee-supplicant: spawn threads as needed\n\n* Spawns threads as needed, but only if the kernel supports asynchronous\n  supplicant requests.\n* Adds mutex protecting RPMB\n* Adds mutex protecting SQL_FS\n\nAcked-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5229afd304ffca9d54e43d96311f1d6f5396f158",
      "tree": "c8d5cca30ed540a41805e5acc7b211bd5fcd7a96",
      "parents": [
        "5477e9ebf093ba3ac5296409a690944db6c0014c"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Dec 12 12:38:28 2016 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Feb 20 08:23:01 2017 +0100"
      },
      "message": "tee-supplicant: support asynchronous supplicant requests\n\nAdds support for asynchronous supplicant requests, meaning that the\nsupplicant can process several requests in parallel or block in a\nrequest for some time. This is not yet taken advantage of.\n\nAcked-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "5477e9ebf093ba3ac5296409a690944db6c0014c",
      "tree": "4be86125d619e82479bc7c4e5aaf269a470bd630",
      "parents": [
        "7f16107c2aae2163d6e6e23cca304d2520c02a55"
      ],
      "author": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Fri Feb 03 12:35:25 2017 +0000"
      },
      "committer": {
        "name": "Victor Chong",
        "email": "victor.chong@linaro.org",
        "time": "Tue Feb 07 16:47:11 2017 +0000"
      },
      "message": "tee-supplicant: Update TEEC_TEST_LOAD_PATH for Android\n\nMatch TA_TEST_DIR in optee_test/blob/master/host/xtest/xtest_1000.c\n\nSigned-off-by: Victor Chong \u003cvictor.chong@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\n"
    },
    {
      "commit": "7f16107c2aae2163d6e6e23cca304d2520c02a55",
      "tree": "de7a495069464301118f25c604677757939860a1",
      "parents": [
        "3b4c507ce588ecc210ebd06939dcfceb450238b1"
      ],
      "author": {
        "name": "Andy Green",
        "email": "andy@warmcat.com",
        "time": "Tue Jan 31 09:35:52 2017 +0800"
      },
      "committer": {
        "name": "Andy Green",
        "email": "andy@warmcat.com",
        "time": "Tue Jan 31 09:35:52 2017 +0800"
      },
      "message": "ree fs rpc: open with best-effort allowing RO data fs\n\nThe REE handler for open always uses flags O_RDWR at the moment.\n\nThis breaks the possibility to use read-only operations on a\nread-only mounted filesystem at /data.\n\nChange it to try to open with O_RDWR, if not possible fall back\nto O_RDONLY and only fail if that isn\u0027t workable either.\n\nIf O_RDONLY isn\u0027t enough, then the TA should use another means\nto get the fs mounted rw for the duration of his write activity.\nHe will get failures on the write action if not, but that is\nfair enough.\n\nSigned-off-by: Andy Green \u003candy@warmcat.com\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e"
    },
    {
      "commit": "3b4c507ce588ecc210ebd06939dcfceb450238b1",
      "tree": "ff07b8704162f6311bfa896a0a63886574c602ac",
      "parents": [
        "a1df073221518b99ec9d94a3a95e9d7a29174ba4"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Oct 21 16:07:32 2016 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Jan 24 18:03:36 2017 +0100"
      },
      "message": "Add support for TA profiling (gprof)\n\nEnable with: CFG_TA_GPROF_SUPPORT\u003dy.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "a1df073221518b99ec9d94a3a95e9d7a29174ba4",
      "tree": "841fb30886764c0d0b14155236e1cc46f0b04b3d",
      "parents": [
        "1aaf6dc190deccc7a53dd797d06e085ef9437615"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Oct 26 13:45:45 2016 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Jan 24 18:03:36 2017 +0100"
      },
      "message": "Rename optee_msg_fs.h to optee_msg_supplicant.h\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "365657667f8968f40237480169fea44fa3fb9949",
      "tree": "185b4757cb5ee3738c4cb44fb1b79ace228d2961",
      "parents": [
        "1d5cc967681188074174f438a05fb2715ce82251"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Jan 04 11:39:14 2017 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Jan 04 14:25:57 2017 +0100"
      },
      "message": "Add backward compatibility with older TA UUID format\n\nFixes: ce5fefe6cba (\"Format UUID strings correctly\")\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "ce5fefe6cba5df9b4f31399b1155ba768eee0b78",
      "tree": "4d3577d4a99d03d39288bf06a4c839bba0c77705",
      "parents": [
        "731f8a7f6602148c63648d529244794f64aa192c"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Thu Dec 08 16:43:27 2016 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Fri Dec 09 08:43:35 2016 +0100"
      },
      "message": "Format UUID strings correctly\n\nPrior to this patch although GlobalPlatform specifies that TAs and such\nare identified with UUIDs, we don\u0027t format them quite right when turning\nthem into strings. Per https://www.ietf.org/rfc/rfc4122.txt, there\nshould be another hyphen after the first two bytes of clockSeqAndNode.\n\nUnfortunately, fixing this breaks compatibility between how TAs are\nbuilt, and when the OS loads them.\n\nWith this patch UUID string are formated with the additional hyphen as\nfor instance: f81d4fae-7dec-11d0-a765-00a0c91e6bf6\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nFixes: https://github.com/OP-TEE/optee_os/issues/857\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "731f8a7f6602148c63648d529244794f64aa192c",
      "tree": "64af6c5ba0cd85ffa16ea7958fed231b03d9b708",
      "parents": [
        "77393870aba3e43e13c0ac8cace2c461ec4a7d03"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Thu Dec 08 15:14:16 2016 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Fri Dec 09 08:43:31 2016 +0100"
      },
      "message": "Encode UUID big endian\n\nWhen encoding a UUID as a sequence of bytes, the spec\n(https://www.ietf.org/rfc/rfc4122.txt) says that the u32, and two u16s\nshould be represented big endian.\n\nBefore this patch OPTEE always treated them natively. With this patch\nUUIDs are always converted to/from big endian when communicating with\nthe kernel.\n\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nFixes: https://github.com/OP-TEE/optee_os/issues/858\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "77393870aba3e43e13c0ac8cace2c461ec4a7d03",
      "tree": "942e13ed17c69d56ed9bb4d206317b73c4bbb455",
      "parents": [
        "e692197162bc6da14794f9b116eeeac480a72648"
      ],
      "author": {
        "name": "Zoltan Kuscsik",
        "email": "zoltan.kuscsik@linaro.org",
        "time": "Fri Dec 02 12:52:38 2016 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Dec 07 15:59:26 2016 +0100"
      },
      "message": "tee-supplicant: add missing unistd.h  in tee_fs.h\n\nR_OK, W_OK are defined by uninstd.h. This change ensures\nthe project can be compiled with Android Bionic\n\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n[Rebase on top of master]\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "1472d0e5fdb3eb9ed7aa18ae3f64844fbe66f577",
      "tree": "70d1a37a8762df89c513a2bcd1814b16bb116bc2",
      "parents": [
        "658ae538f76a2624b7f9c40539a600d281d872b4"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Fri Sep 09 10:41:15 2016 +0200"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Oct 24 17:29:54 2016 +0200"
      },
      "message": "Add new RPC FS functions with useful error codes\n\nAs the interface is changed to use proper error codes, the way\nparameters are passed is also updated.\n\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nTested-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e (HiKey)\nTested-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e (QEMU)\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "08dbea2845f58207e91955e2c6d46852e7a7401b",
      "tree": "3ee6eb9dc6ce52de9ab4fc77d19434f3bae36b35",
      "parents": [
        "fe089fe5610b6b6edc3e444889d34ddbe29a48d6"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue May 10 10:30:31 2016 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Aug 31 13:04:14 2016 +0200"
      },
      "message": "Add Android build for SQL FS\n\nCompile-tested with:\n  $ ../toolchains/android-ndk-r10e/ndk-build -j NDK_PROJECT_PATH\u003d. \\\n    APP_BUILD_SCRIPT\u003dAndroid.mk APP_ABI\u003darm64-v8a CFG_SQL_FS\u003dy\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "fe089fe5610b6b6edc3e444889d34ddbe29a48d6",
      "tree": "42b063120dd295bd0d7c0fca30c247dfe4d41f5f",
      "parents": [
        "ed027c0b22541902a01bac5c5ca7f77a8e6a9010"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue May 03 17:30:43 2016 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Aug 31 13:04:10 2016 +0200"
      },
      "message": "tee-supplicant: implement SQL FS file operations\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "ed027c0b22541902a01bac5c5ca7f77a8e6a9010",
      "tree": "4af98f0662dd9e25f69a330b29c663aa1d198b30",
      "parents": [
        "74b49b9d053b4f3c3c45b8fd8a13a53a2b689ec2"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed May 04 10:00:01 2016 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Aug 31 13:04:05 2016 +0200"
      },
      "message": "tee-supplicant: add missing flags in conversion function\n\nAdding TEE_FS_O_TRUNC and TEE_FS_S_IXUSR.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "74b49b9d053b4f3c3c45b8fd8a13a53a2b689ec2",
      "tree": "9c105ed484c3c921513f9f766a2691f882baf4e2",
      "parents": [
        "e1d441d6c52f1cf5a6fbefecddfd4cbbe0fdbf18"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue May 03 13:48:05 2016 +0200"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Aug 31 13:04:01 2016 +0200"
      },
      "message": "tee-supplicant: move file operations and flags to their own header\n\nThe flags and conversion functions will be re-used by the SQL\nfilesystem, so move them to a common header: tee_fs.h.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nReviewed-by: Etienne Carriere \u003cetienne.carriere@linaro.org\u003e\n"
    },
    {
      "commit": "81f0257a4445338139b6ddc437a52f94c02c48fc",
      "tree": "0f2bc2cf115509192ebe75efdb041a0164f4278d",
      "parents": [
        "f8cbe701d436e530f064be14159d37cfbd493ba2"
      ],
      "author": {
        "name": "David Brown",
        "email": "david.brown@linaro.org",
        "time": "Tue Aug 02 11:51:32 2016 -0600"
      },
      "committer": {
        "name": "David Brown",
        "email": "david.brown@linaro.org",
        "time": "Fri Aug 05 11:10:54 2016 -0600"
      },
      "message": "Try loading TAs from another writable path\n\nTo allow testing of corrupt TA loading on systems where the TA\ndirectory is read-only, try loading TAs first from an alternate\n`TEEC_TEST_LOAD_PATH` before the regular path.  This allows the test\nto override the TA with one for testing purposes.\n\nAlthough useful for testing, this should not be enabled for a\nproduction system, since it facilitates replacing a TA with a corrupt\nimage.  CFG_TA_TEST_PATH can be turned off in the `config.mk`.\n\nSigned-off-by: David Brown \u003cdavid.brown@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\n"
    },
    {
      "commit": "fcd1014947e784ca8d618035bcb999f9151096b0",
      "tree": "3fe76a19e0a81be6e3b3d3090e4f2185d590e0fd",
      "parents": [
        "db6b69f71eec674251e17334a9a812a296134e10"
      ],
      "author": {
        "name": "Zoltan Kuscsik",
        "email": "zoltan.kuscsik@linaro.org",
        "time": "Fri Apr 01 13:50:56 2016 +0200"
      },
      "committer": {
        "name": "Zoltan Kuscsik",
        "email": "zoltan.kuscsik@linaro.org",
        "time": "Fri Apr 08 12:00:36 2016 +0200"
      },
      "message": "Fix compiler missing-field-initializers warnings\n\nTested on AOSP 5.0\n\nSigned-off-by: Zoltan Kuscsik \u003czoltan.kuscsik@linaro.org\u003e\n\nChange-Id: I0817e4b7c772a25c0d7fe89e2e5c8bd891696fa7\nReviewed-by: Pascal Brand \u003cpascal.brand@linaro.org\u003e\nTested-by: Zoltan Kuscsik \u003czoltan.kuscsik@linaro.org\u003e\n"
    },
    {
      "commit": "db6b69f71eec674251e17334a9a812a296134e10",
      "tree": "e73c50297b231a7d2083453d51831a542f20ff07",
      "parents": [
        "3b9c1b2e98a1f503f1d4b00912649a9fdf7e793a"
      ],
      "author": {
        "name": "Zoltan Kuscsik",
        "email": "zoltan.kuscsik@linaro.org",
        "time": "Fri Apr 01 13:52:25 2016 +0200"
      },
      "committer": {
        "name": "Zoltan Kuscsik",
        "email": "zoltan.kuscsik@linaro.org",
        "time": "Fri Apr 08 12:00:36 2016 +0200"
      },
      "message": "Fix return-type warnings with CLang\n\nSigned-off-by: Zoltan Kuscsik \u003czoltan.kuscsik@linaro.org\u003e\n\nChange-Id: I322603a6857e27ebd4cc63abe0f00a1a3e7e6471\nReviewed-by: Pascal Brand \u003cpascal.brand@linaro.org\u003e\nTested-by: Zoltan Kuscsik \u003czoltan.kuscsik@linaro.org\u003e\n"
    },
    {
      "commit": "88acd6bda5f9e19124fce0015fe64a6644eff036",
      "tree": "46207a0245203289da498e885c9d2d3707b8982a",
      "parents": [
        "db9c64d45818d146200297eaaedbd421a8b59e3a"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Thu Mar 26 10:57:50 2015 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Tue Mar 22 14:45:52 2016 +0100"
      },
      "message": "Support OP-TEE in generic TEE subsystem\n\nReplaces support for for the old OP-TEE driver with support for OP-TEE\nin the generic TEE subsystem.\n\nUses id instead of fd to identify shared memory objects to let\ntee-supplicant manage allocation and freeing of its memory shared with\nsecure world.\n\nThis change depends on corresponding abi change in the kernel.\n\nReviewed-by: Joakim Bech \u003cjoakim.bech@linaro.org\u003e\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "db9c64d45818d146200297eaaedbd421a8b59e3a",
      "tree": "853b6731f58d2e004319a42b85c89ffee48d3373",
      "parents": [
        "9f8ae929e5b4fd5a6c1693271f130e72fee81615"
      ],
      "author": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Fri Dec 25 18:06:43 2015 +0100"
      },
      "committer": {
        "name": "Jens Wiklander",
        "email": "jens.wiklander@linaro.org",
        "time": "Mon Feb 15 21:10:47 2016 +0100"
      },
      "message": "tee-supplicant: add TEE_RPC_LOAD_TA2\n\nAdds new RPC function TEE_RPC_LOAD_TA2 which doesn\u0027t allocate a buffer\nfor the TA to load, instead secure world is responsible to allocate the\nbuffer when doing this RPC.\n\nReviewed-by: Pascal Brand \u003cpascal.brand@linaro.org\u003e\nReviewed-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nTested-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e (HiKey)\nTested-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e (QEMU)\nSigned-off-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "9f8ae929e5b4fd5a6c1693271f130e72fee81615",
      "tree": "adfb2920261cb6051e2ac7a07e9700e7f9e3b3f3",
      "parents": [
        "be3363851cd5d4ca68f9841d2f559df3741bc1e5"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Fri Jan 29 17:36:26 2016 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Wed Feb 10 10:06:47 2016 +0100"
      },
      "message": "RPMB: fix read_cid() and data access with a real eMMC device\n\nPrior to this commit, the RPMB code was tested in emulation mode only\n(RPMB_EMU\u003d1). This fixes a couple of issues found when testing with a\nreal eMMC device on a HiKey board. The eMMC is a Hardkernel 8GB module\nplugged into the microSD port. Kernel is from Linaro\u0027s 96boards\nrepository [1], slightly modified so that the RPMB can be used on the\nmicroSD connector (MMC_CAP_CMD23 is added to the capability flags of\nthe second MMC controller).\n\n[1] https://github.com/96boards/linux branch hikey commit 54e6524885a9\n(\"Merge pull request #178 from xin3liang/hikey-3.18-720p-boot-issue\").\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Pascal Brand \u003cpascal.brand@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\n"
    },
    {
      "commit": "be3363851cd5d4ca68f9841d2f559df3741bc1e5",
      "tree": "522f13ce836e10254fa25f13c4ecb8da33fc8b44",
      "parents": [
        "a7bf6ec062bab911014b54020b10ed7dfe95b739"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Thu Jan 14 11:32:04 2016 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Mon Feb 01 18:14:35 2016 +0100"
      },
      "message": "RPMB: add HMAC to emulation mode\n\nVerify and generate HMAC values as required by the eMMC spec.\nThe HMAC SHA-256 implementation is from http://www.ouah.org/ogay/hmac/\nwhich states \"The code is distribued under the BSD license\".\nThe code is also available from https://github.com/ogay/hmac.\nI have kept only the SHA-256 variant and removed the loop unrolling\noption.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Pascal Brand \u003cpascal.brand@linaro.org\u003e\n"
    },
    {
      "commit": "a7bf6ec062bab911014b54020b10ed7dfe95b739",
      "tree": "685de95bccba8a0b787491e7e222bfa9ea8bdc31",
      "parents": [
        "0b0d237779de6982451f6f5971b7106e459a2958"
      ],
      "author": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Dec 08 18:06:43 2015 +0100"
      },
      "committer": {
        "name": "Jerome Forissier",
        "email": "jerome.forissier@linaro.org",
        "time": "Tue Jan 19 14:51:28 2016 +0100"
      },
      "message": "Replay Protected Memory Block (RPMB) support\n\nThis commit adds support for the TEE_RPC_RPMB command, used by OP-TEE\nto access the RPMB partition of an eMMC device (/dev/mmcblkXrpmb).\nThis is independent from the regular filesystem access (TEE_RPC_FS),\nso the TEE can use either RPMB or the regular FS (or both) to implement\npersistent storage.\n\nRPMB operations are:\n - Get device information (partition size, reliable write count)\n - Read write counter\n - Read and write data\n - Program authentication key\n\nThe code relies on the ioctl() interface to implement the required\nfunctions. In addition, an emulation layer is provided so that the RPMB\nfeature may be tested even if an actual eMMC chip is not available, or\nif the kernel does not support it. Emulated mode is currently the\ndefault. It can be disabled in the tee-supplicant Makefile\n(-DRPMB_EMU\u003d1).\n\nThe eMMC emulation layer does not yet perform any authentication, i.e.,\nit will not check the MAC contained in the requests, and it will not\nsign the responses with a MAC either. This feature will be added later.\n\nTested on HiKey using the extended xtest suite (including tests 6001 to\n6011) and eMMC emulation only.\n\nSigned-off-by: Jerome Forissier \u003cjerome.forissier@linaro.org\u003e\nReviewed-by: Jens Wiklander \u003cjens.wiklander@linaro.org\u003e\nReviewed-by: Pascal Brand \u003cpascal.brand@linaro.org\u003e\n"
    }
  ],
  "next": "0b0d237779de6982451f6f5971b7106e459a2958"
}
