Changelog
=========

Announcements
-------------
The 6.3 compilators version is recommended to use.

SDK
---
*TEEGRIS 4.1.0
examples: support of Clang 8.0.1 in config.mk, fix upload scripts, fix loadable_driver example
SCrypto: Upgrade SCrypto to v2.5 RC1
driver.h: fix description of TEES_AcquireUserBuffer()
mman.h: mprotect syscall implementation
tees_critical.h: provide critical section API
rpmb.h: add partition information table for access control and support dynamic partition
tee_prop_names.h: rename cryptolib related definitions, fix or remove cryptocore related artifacts
TUI: add release_new resource

*TEEGRIS 4.0.0
examples: change default partition from /system to /vendor
doc: update documentation for SDK 4.0 release
examples: fix old drivers naming scheme (dev://my_driver) to new one (dev/my_driver)
TEES_GetClientCredentials: provide ability to retrieve Client's credentials (pid, gid, uid)
types.h: fix ssize_t definition according to POSIX. Now '%zd' printf format specifier can be used for ssize_t types
clang-8.0.1: provide latest stable version
EL2IF, tees_el2if.h: provide TEE Samsung extension API to send EL2 SMC command
tees_tui.h: provide ability for TA to wait for multi touch evens via call to TEES_TUIGetMTEvent()
rpmb.h: add const qualifier for 'data' input parameter of TEES_RPMBWrite() function
tees_secure_object.h: SO_HEADER_SIZE() function-like macro has been changed to SO_HEADER_SIZE_STATIC
tees_secure_object.h: describe how to use 'delegated' parameter of SO_OUT_BUF_SIZE()
examples: provide sample for Persistent Object functions' usage of Trusted Storage API
examples: strip all sample binaries
TEE_Malloc(): increase maximum memory allocation size on heap up to 20 MB
time.h: exclude alarm(), setitimer(), getitimer() from subset of public API
shared libraries: upgrade version tag of library symbols from TEEGRIS_1.0.0 to TEEGRIS_4 according to MAJOR release
tee_internal_api.h: add TEE_ERROR_KEY_REJECTED - new error code
VFS: introduce new virtual filesystem with new FS hierarchy. Change location in FS of run-time interpreter
tmf: changes of TA structure and TA property
secure object: improvement and security enhancement. DELEGATED_AUTH_ID is deprecated due to security reasons
tee_nfc.h: Provide NFC API
clang: provide SafeStack instrumentations
TUI: Payment: PNG decoding API support
tzsl: add strtod implementation
SSAPI: extend with TUI-related functions
tees_ssapi.h: Provide HDCP key info API
SSAPI: tees_seccam.h (SECCAM API) is renamed into tees_ssapi.h. Extend SECCAM API with new 3 public functions
gcc-6.3&clang: enable --warn-shared-textrel by default
tzsl: export fops.h header
driver.h: add const qualifier to desc argument in TEES_UDF_RegisterIoctlDesc prototype
fops.h: move struct usr_drv_info from driver.h and add const qualifier to fops pointer

*TEEGRIS 3.0.4
tzsl: export tees_internal_api.h header
TEE Management Framework: initial version
Add support of OpenMP for third-party applications
Enable stack-protector by default (set -fstack-protector-strong and -fPIC, -pie flags)
Crypto: SCrypto libraries update (SCrypto 2.4 RC2)
TUI : support multiple display resolution
SECCAM API: Add an API for a status of secure camera. Provide tees_seccam.h.


*TEEGRIS 3.0.3
 Export arch/smc.h header
 Add  SMC APIs: TEES_SMCInit(), TEES_SMCFini(), TEES_SMCCommand().


*TEEGRIS 3.0.2
 Fix warn_override plugin: extern symbols are not check by plugin now
 Add SCrypto example
 Improve "Samsung TEEGRIS Overview" documentation:
	 Add status of each compiler
	 Add preferable one
	 Add side-effects about clang usage
	 Update example for csmc
	 Add section TEE asset to "Samsung TEEGRIS Overview" and "Samsung TEEGRIS Security Architecture".


*TEEGRIS 3.0.1
 Add file sdk.dep with dependencies for using TEEGRIS SDK
 Add gcc's plugin for detection of TEEGRIS internal symbols shadowing
 Add scrypto API TEES_GetROT, TEES_WrappedWithREK.


*TEEGRIS 3.0.0
 Add tee_prop_names.h.
 Add documentation Samsung_TEEGRIS_Overview, TEEGRIS_Security_Architecture.


*Blowfish SDK 2.0.9
 Add man page for developed TEE API


*Blowfish SDK 2.0.8
Fix clang compiler-rt library for clang.


*Blowfish SDK 2.0.7
 Restore compilators version 5.2 for 32 and 64 bit.
 Add API
        TEES_CheckSecureObjectCreator()


*Blowfish SDK 2.0.6
 Add new Clang compiler
 Add new functions atexit() to SDK
 Rename custom TA property
 Rename custom TA property from gpd.ta.cacheHeapSize to samsung.ta.cacheHeapSize
 Complete Samsung internal api documentation
 Add TA mandatory and custom propertioes description
 Remove deprecated comipilator vesrions


*Blowfish SDK 2.0.5
 Add userspace driver API:
     TEES_InitDriver()
     TEES_FiniDriver()

*Blowfish SDK 2.0.4
 Add new functions for SW
         strlcat()
         strtok()
         strtol()
         strtoul()
         strtod()
         sscanf()
         sscanf_s()
 Prepare universal properties design
 Work with properties is suitble for new and old design
 Add driver header I2C.h


*Blowfish SDK 2.0.3
 SDK documents are synchronized  with MT6737T_CERT.

*Blowfish SDK 2.0.2
 TA Properties:
     Provide new property design.  Added new TA properties
 TA libraries:
    Fix libraries stubs to resolve problem with plt section
 New functions in tzsl libarary:
    Add functions printf_no_alloc() init_tls_data() to SDK


*Blowfish SDK 2.0.1
 Provide new compilator version gcc 6.3.0 based on gcc-linaro branch
 Enable TUI
 Remove duplicated documentation

*Blowfish SDK 2.0
 Provide set of extension for TEE Internal API:
	TEES_IsREESharedMemory

 Add set of TUI API:
	TEES_TUIRefreshScreen();
	TEES_TUIGetBuffer();
	TEES_TUIDrawBuffer();

 Add functions:
	strrchr
	sscanf

 Add API that can derive same KDF operation among Tas
 Add Annex K secure functions
 Add new header file tees_client_api.h with TEECS_* function set
 Provide  new  toolchain version 5.4


