Add crypto provider internal API

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@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 updates with partial buffers

This commit modifies CRYPTO_xts128_encrypt() so that tweak information
is saved in the context for the next call. As a result, EVP_EncryptUpdate()
or EVP_DecryptUpdate() can be called multiple times with partial buffers.
libutils, kernel: add standard functions needed by OpenSSL

Prepare for building OpenSSL libcrypto.
1. Add the following to libutils:
- isdigit(), isspace(), isalpha(), isalnum(), isxdigit(), isupper(),
  islower(), toupper(), tolower(): basic ASCII-only implementation
- atoi(), sscanf() (stub!), strtoul(), strncmp(), strcpy(), strncpy(),
  strchr(), strcat()
2. Add abort() and time() to core/kernel.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
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 may be passed in $(lib-ldflags).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Add support for $(cflags-lib-y)

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@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 (e7cda93) on Foundation_v8 (PLATFORM_FLAVOR=fvp) and QEMU
(PLATFORM_FLAVOR=qemu_virt).

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Travis: add build command with OpenSSL crypto enabled

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