Move keystore from frameworks/base

Move keystore from frameworks/base at commit
57ff581bd9b16a192a567f84d0e0a5c82d866343

Change-Id: I1e62488d63810f14e40ffb3d192925ff4eeb8906
keystore_client shared library

Add a libkeystore_client.so library for clients to use.

Add const-correctness to the keystore.cpp classes.

Increase maximum arguments for future work.

Change-Id: Ia22f8b893aea3115a7b4a0543ad392c17c8528f2
Add keymaster to keystore with soft implementation

Add hardware crypto capabilities to keystore. This allows hardware
escrow of private key material.

There is also an OpenSSL engine that connects to keystore to allow use
of the keystore keys from native code built into the platform.

This includes a software implementation of keymaster using OpenSSL
as the backend.  This is just as insecure as the previous solution,
but it's needed so devices without hardware support can continue
to operate in the new scheme without a lot of compatibility code.

Change-Id: I2bc67766e1f633ef1cbbd2874a65962074e84f4f
Add keymaster delete_all call on reset

To allow efficient deletion by hardware keymaster modules, add a direct
delete_all call when keystore is reset. This will also probably fix
problems where the hardware keymaster gets more keys than keystore knows
about and fills up its storage.

Change-Id: I452e2e609802201dc7db2f52f95b44d72f79efa2
Add support for upgrading key types

Old key types were not distinguished by the keystore itself. This change
takes some of the reserved fields in the old format and changes it to a
version number and key type.

Change-Id: I45bd4cdce042617641fe7bd742bbe26da6024996
use UniquePtr.h from frameworks/native

Use the UniquePtr.h include from frameworks/native/include/utils
to fix the pdk build.

Change-Id: Ic415b43d2eb8c0b7ef54b6f3f75b7fa0d5f7a058
Turn on extra compiler checks

Turn on the compiler flags -Wall -Wextra -Werror to make sure no
compiler warnings are added to the project.

Eliminate all unused arguments. Remove unused variables in code.

Change-Id: I0940ba897ac716b4a256f94fcd671f1ff5abc62c
Allow calls from secondary user Settings app.

This is so that Face Unlock can be a valid option for a lockscreen.
Otherwise get a PERMISSION_DENIED when uid = 101000.

Change-Id: I0085b27dbd4d2f1988ba654acadd72c30f76a47e
Only initialize ex_data if not already

ENGINE_by_id will load up multiple copies of the engine which will
create a new ex_data index each time it's called. This change makes sure
the ex_data index is only initialized once.

Change-Id: I5e197faf6273ec3b3cafcbeadf7da8ec04a4f50b
Make sure delete_all function pointer is NULL

The peril of not using calloc mean delete_all is not initialized until
we explcitly set it. Explicitly set delete_all to NULL to avoid that.

Change-Id: Ic370453e6142c6d1b2566df9844b4fac4bc53042
Handle keynames with special characters such as - and .

Bug: http://code.google.com/p/android/issues/detail?id=34577
Bug: 6837950

Change-Id: Id441e341073558ab8b20144a7e7f4f7a92c6a19e
Handle keynames with special characters such as - and .

Bug: http://code.google.com/p/android/issues/detail?id=34577
Bug: 6837950

(cherry-picked from 0114bd9f9bbc2458ca77bf3508e7c15992a432b1)

Change-Id: I0c265fe73c1b2c430ffd196a21691264f8f3b555
Merge "Handle keynames with special characters such as - and ."
am aa8467e5: Merge "Handle keynames with special characters such as - and ."

* commit 'aa8467e59b561f454ff7ec902aae688145d8d297':
  Handle keynames with special characters such as - and .
merge in jb-release history after reset to jb-dev
Reconcile with jb-release

Change-Id: Ic25a71c0dcde3cda15caaafd93004f477671db24
keymaster HAL users don't need delete_keypair

The keymaster HAL implementations don't need the delete_keypair method,
but keystore currently throws an error when it's not implemented. This
causes problems with at least the OpenSSL software implementation.

Bug: 6985351
Change-Id: I3d7f7dce2a6d4aad38c20f555ab16aa45f1823b8
Merge "keymaster HAL users don't need delete_keypair"
am 593786c9: Merge "keymaster HAL users don\'t need delete_keypair"

* commit '593786c9b885a48a2674e3ebb5c3bab265de2e51':
  keymaster HAL users don't need delete_keypair