| 33790cc1 | 10-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace struct bignum_ops with function interface
Adds crypto_bignum_*() replacing struct bignum_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Car
Replace struct bignum_ops with function interface
Adds crypto_bignum_*() replacing struct bignum_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 8875ce46 | 10-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace struct authenc_ops with function interface
Adds crypto_authenc_*() replacing struct authenc_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne
Replace struct authenc_ops with function interface
Adds crypto_authenc_*() replacing struct authenc_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| e9eaba5c | 09-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace struct mac_ops with function interface
Adds mac_cipher_get_ctx_size(), mac_cipher_init(), mac_cipher_update() and mac_cipher_final() replacing struct mac_ops in crypto_ops.
Acked-by: Jerom
Replace struct mac_ops with function interface
Adds mac_cipher_get_ctx_size(), mac_cipher_init(), mac_cipher_update() and mac_cipher_final() replacing struct mac_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 82d91db1 | 09-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace struct cipher_ops with function interface
Adds crypto_cipher_get_ctx_size(), crypto_cipher_init(), crypto_cipher_update(), crypto_cipher_final() and crypto_cipher_get_block_size() replacing
Replace struct cipher_ops with function interface
Adds crypto_cipher_get_ctx_size(), crypto_cipher_init(), crypto_cipher_update(), crypto_cipher_final() and crypto_cipher_get_block_size() replacing struct cipher_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b887bd8f | 09-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace struct hash_ops with function interface
Adds crypto_hash_get_ctx_size(), crypto_hash_init(), crypto_hash_update() and crypto_hash_final() replacing struct hash_ops in crypto_ops.
Acked-by:
Replace struct hash_ops with function interface
Adds crypto_hash_get_ctx_size(), crypto_hash_init(), crypto_hash_update() and crypto_hash_final() replacing struct hash_ops in crypto_ops.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f1c1d533 | 13-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: crypto: fix crypto_rng_read() comment
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.w
core: crypto: fix crypto_rng_read() comment
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 36a063ef | 03-Nov-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Replace struct prng_ops with function interface
Adds crypto_rng_add_entropy() and crypto_rng_read() replacing struct prng_ops in crypto_ops.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.o
Replace struct prng_ops with function interface
Adds crypto_rng_add_entropy() and crypto_rng_read() replacing struct prng_ops in crypto_ops.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 078f18f8 | 22-Jun-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: RPMB FS: provide tee_rpmb_fs_raw_open()
Provides tee_rpmb_fs_raw_open() use by OP-TEE OS.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Volodymyr Babchuk <vlad.babchuk@gm
core: RPMB FS: provide tee_rpmb_fs_raw_open()
Provides tee_rpmb_fs_raw_open() use by OP-TEE OS.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| a4ed7baf | 22-Jun-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: add hash parameter to dirfile interface
Adds a hash parameter to the dirfile interface. The hash is used in the same way as in the htree interface, that is, used to verify integrity on ope
core: FS: add hash parameter to dirfile interface
Adds a hash parameter to the dirfile interface. The hash is used in the same way as in the htree interface, that is, used to verify integrity on open and used to get updated hash on writes.
Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 142d5af2 | 06-Jun-2017 |
Volodymyr Babchuk <vlad.babchuk@gmail.com> |
core: use mobjs for all shared buffers
To ease usage of REE-originated shared memory, all code that uses shared buffer is moved to mobjs. That means that TA loader, fs_rpc, sockets, etc all use mobj
core: use mobjs for all shared buffers
To ease usage of REE-originated shared memory, all code that uses shared buffer is moved to mobjs. That means that TA loader, fs_rpc, sockets, etc all use mobjs to represent shared buffers instead of simple paddr_t.
Signed-off-by: Volodymyr Babchuk <vlad.babchuk@gmail.com> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (Hikey)
show more ...
|
| fd108c3e | 17-May-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: don't store uuid in dirfile interface
Skips storing pointer to uuid in struct tee_fs_dirfile_dirh.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <
core: FS: don't store uuid in dirfile interface
Skips storing pointer to uuid in struct tee_fs_dirfile_dirh.
Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 455856d4 | 19-Apr-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
Remove SQL-FS
With recent developments in REE-FS SQL-FS has become redundant. This patch removes SQL-FS.
Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Jerome Forissier <jerome.forissi
Remove SQL-FS
With recent developments in REE-FS SQL-FS has become redundant. This patch removes SQL-FS.
Reviewed-by: Joakim Bech <joakim.bech@linaro.org> Acked-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 0c4e1284 | 13-Apr-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: key manager takes supplied UUID
The FS key manager takes a supplied UUID instead of extracting it from current session in order to be more flexible.
Reviewed-by: Jerome Forissier <jerome.
core: FS: key manager takes supplied UUID
The FS key manager takes a supplied UUID instead of extracting it from current session in order to be more flexible.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 22efbd4a | 13-Apr-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: add helpers for tee_fs_dirfile_fileh
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jen
core: FS: add helpers for tee_fs_dirfile_fileh
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d7767217 | 13-Apr-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: introduce dirfile interface
Introduces the dirfile interface which keeps a list of secure storage objects. Each object is represented by the UUID of the owning TA, a hash of the object, an
core: FS: introduce dirfile interface
Introduces the dirfile interface which keeps a list of secure storage objects. Each object is represented by the UUID of the owning TA, a hash of the object, and a handle to the name used in normal world to store the encrypted data of the object.
The interface allows queued atomic updates to avoid difficult races during creation and renaming of objects.
By keeping the list of the secure object files in a single database the collected state of the objects can be represented by a single hash or even a counter. This gives some flexibility when implementing anti-rollback protection.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| f28e5060 | 13-Apr-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: htree: export/import hash of object
The hash-tree can be verified based on a known hash of the root node of a secure storage object. When syncing the hash tree the hash of the root node is sto
core: htree: export/import hash of object
The hash-tree can be verified based on a known hash of the root node of a secure storage object. When syncing the hash tree the hash of the root node is stored in an external location for further protection.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d5fe340f | 21-Mar-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: remove redundant fields from struct tee_svc_storage_head
Removes the unused/redundant fields magic, head_size, ds_size from struct tee_svc_storage_head. meta_size is renamed to attr_size t
core: FS: remove redundant fields from struct tee_svc_storage_head
Removes the unused/redundant fields magic, head_size, ds_size from struct tee_svc_storage_head. meta_size is renamed to attr_size to better reflect the usage.
The size of the data stream is calculated from the total size of the file minus attr_size. This makes the header static after it's initialized.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 73ea1cde | 21-Mar-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: let FOP->create() initialize the new file
Moves the code from syscall_storage_obj_create() that does several calls via the FOP interface into FOP->create() instead. With this all updates c
core: FS: let FOP->create() initialize the new file
Moves the code from syscall_storage_obj_create() that does several calls via the FOP interface into FOP->create() instead. With this all updates can be performed while the mutex is held. This makes the create operation easier to optimize as each call via the FOP interface is atomic.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 64fa6c0a | 03-Apr-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: htree: add rpc final callbacks
Adds rpc final callbacks to struct tee_fs_htree_storage to make the it possible to isolate the hash tree implementation for test.
Reviewed-by: Etienne Carri
core: FS: htree: add rpc final callbacks
Adds rpc final callbacks to struct tee_fs_htree_storage to make the it possible to isolate the hash tree implementation for test.
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b2215adf | 15-Mar-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: replace file name with struct tee_pobj
Replaces the file name with a pointer to corresponding struct tee_pobj instead in the file operation interface.
Reviewed-by: Jerome Forissier <jerom
core: FS: replace file name with struct tee_pobj
Replaces the file name with a pointer to corresponding struct tee_pobj instead in the file operation interface.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Tested-by: Jerome Forissier <jerome.forissier@linaro.org> (HiKey, GP) Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Etienne Carriere <etienne.carriere@linaro.org> (b2260, GP) Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (QEMU) Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 879237ae | 15-Mar-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: FS: remove fop->seek()
Simplifies file operations interface and implementation by removing the file operation function pointer seek(). read() and write() takes and additional position argument
core: FS: remove fop->seek()
Simplifies file operations interface and implementation by removing the file operation function pointer seek(). read() and write() takes and additional position argument to avoid keeping track of the position in the FS layer. The file position was already maintained in parallel in struct tee_obj.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Acked-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 2221cb56 | 16-Mar-2017 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: move cache_operation() out of SVC cache services
cache_operation() is moved to a specific tee/cache.c source file. This will allow core to call cache maintenance routine without needing to rel
core: move cache_operation() out of SVC cache services
cache_operation() is moved to a specific tee/cache.c source file. This will allow core to call cache maintenance routine without needing to rely on the cache maintenance SVC services.
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| d9147ded | 16-Mar-2017 |
Etienne Carriere <etienne.carriere@linaro.org> |
core: move svc_cache.h from local directory to generic includes
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by:
core: move svc_cache.h from local directory to generic includes
Signed-off-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| 25d6f46e | 03-Mar-2017 |
Jens Wiklander <jens.wiklander@linaro.org> |
core: prng: Don't lock a mutex from rpc_cmd_nolock()
Avoids a recursive indirect call to rpc_cmd_nolock() from plat_prng_add_jitter_entropy_norpc() by not calling plat_prng_add_jitter_entropy_norpc(
core: prng: Don't lock a mutex from rpc_cmd_nolock()
Avoids a recursive indirect call to rpc_cmd_nolock() from plat_prng_add_jitter_entropy_norpc() by not calling plat_prng_add_jitter_entropy_norpc() for RPC related to mutex wait/wakeup.
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Tested-by: Jens Wiklander <jens.wiklander@linaro.org> (HiKey) Fixes: 82f97f19fe2d ("prng: call plat_prng_add_jitter_entropy() at PRNG init and before NW RPC") Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
show more ...
|
| b72716ce | 01-Mar-2017 |
Jerome Forissier <jerome.forissier@linaro.org> |
core: prng: Don't try to read REE time when it's not possible
The commit referenced below extends entropy gathering to two locations where it is unfortunately not OK to invoke Normal World through R
core: prng: Don't try to read REE time when it's not possible
The commit referenced below extends entropy gathering to two locations where it is unfortunately not OK to invoke Normal World through RPC:
1. tee_ltc_prng_init(), because at this point the RPC subsystem has not yet been initialized, 2. rpc_cmd_nolock(), because doing so would cause recursion and would be inefficient (doubling the number of RPC calls).
The problem is: if CFG_SECURE_TIME_SOURCE_REE=y and if the platform does not override plat_prng_add_jitter_entropy(), the function will end up calling the RPC service where it's not permitted and the TEE will crash.
This commit introduces plat_prng_add_jitter_entropy_norpc() and provides a default implementation which does nothing if the time source is the REE, thus fixing the issue while still allowing platform code to implement a specific behavior.
Fixes: 82f97f19fe2d ("prng: call plat_prng_add_jitter_entropy() at PRNG init and before NW RPC") Reported-by: Etienne Carriere <etienne.carriere@linaro.org> Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org> Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org> Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
[Review] core: prng: Don't try to read REE time when it's not possible
Remove useless return.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
show more ...
|