Less traces in Travis

Verbose of tar is removed so that the complete build trace is available in the
Travis console, without having to look at the raw data.

Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Signed-off-by: Pascal Brand <pascal.brand@st.com>
Digest operations now supports NULL arguments

Hash algorithms should support NULL arguments and zero length strings.
Following changes will make is possible to call TEE_DigestUpdate and
TEE_DigestDoFinal interchangeably.

Following combinations are now working.
   ----------------------------------------
   | TEE_DigestUpdate | TEE_DigestDoFinal |
   ----------------------------------------
   |       NULL       |       NULL        |
   |       NULL       |       MESSAGE     |
   |       MESSAGE    |       NULL        |
   |       MESSAGE    |       MESSAGE     |
   |       N/A        |       NULL        |
   |       N/A        |       MESSAGE     |
   ----------------------------------------

Signed-off-by: Joakim Bech <joakim.bech@linaro.org>
Tested-by: Joakim Bech <joakim.bech@linaro.org> (FVP)
Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Tested-by: Pascal Brand <pascal.brand@linaro.org> (STM platform)
Add crypto provider internal API

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Import libcrypto source code from OpenSSL 1.0.1i

$ md5sum openssl-1.0.1i.tar.gz
c8dc151a671b9b92ff3e4c118b174972  openssl-1.0.1i.tar.gz

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
OpenSSL: AES-XTS: allow multiple calls to EVP_EncryptUpdate() and EVP_DecryptUpdate()

This commit modifies CRYPTO_xts128_encrypt() so that tweak information
is saved in the context for the next call.
libutils: add functions needed by OpenSSL libcrypto

This commit adds the following standard functions to libutils
- abort(), time() [for TEE core only]
- isdigit(), isspace(), isalpha(), isalnum(), isxdigit(), isupper(),
islower(), toupper(), tolower(): basic ASCII-only implementation
- atoi(), sscanf(), strtoul(), strncmp(), strcpy(), strncpy(), strchr(),
strcat()
Add support for $(lib-use-ld) and $(lib-ldflags)

When building a static library, set lib-use-ld := y to use $(LD) instead of
$(AR). Link flags are passed in $(lib-ldflags).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Implement OpenSSL crypto provider (WITH_CRYPTO=openssl)

Set the WITH_CRYPTO build option to 'openssl' to use the OpenSSL libcrypto
library for cryptographic services. When WITH_CRYPTO is not set, or set to
'tomcrypt', LibTomCrypt is used.

Usage example:
  $ make CROSS_COMPILE=arm-linux-gnueabihf- \
         PLATFORM=vexpress PLATFORM_FLAVOR=fvp \
         WITH_CRYPTO=openssl

Tested with xtest on Foundation_v8 (PLATFORM_FLAVOR=fvp) and QEMU
(PLATFORM_FLAVOR=qemu_virt).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>