History log of /system/keymaster/Makefile
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ada4850659d484dd5ece26dde73072bef16c1517 25-Jun-2015 Shawn Willden <swillden@google.com> Add authorization enforcement to AndroidKeymaster.

Note: Moving List.h into system/keymaster is unfortunate, but required
to allow Trusty to use it. b/22088154 tracks cleaning this up.

Bug: 19511945
Change-Id: Ia1dfe5fda5ea78935611b0a7656b323770edcbae
/system/keymaster/Makefile
0f906ec40f6ade7955c6b967ea522aade54ea2e4 20-Jun-2015 Shawn Willden <swillden@google.com> Add buffer wrap checks and disable throwing of std::bad_alloc.

Android is built with exceptions disabled, but "operator new" and
"operator new[]" still throw std::bad_alloc on failure rather than
returning new. In general this is a good thing, because it will cause
an immediate crash of the process rather than assigning a null pointer
which is probably not checked. But most memory allocations in Keymaster
are checked, because it's written to run in an environment where new
does *not* throw. This CL updates the code to explicitly use the
non-throwing new.

A handful of throwing news remain, but only in places where a crash on
failure is appropriate.

In addition, this CL also inserts buffer wrap checks in key locations
and changes the development-machine Makefile to build in 32-bit mode, to
make memory problems more apparent.

Bug: 21888473
Change-Id: I8ebc5ec12053e4f5274f6f57ce312abc10611cef
/system/keymaster/Makefile
398c158a0206217025f327c2d26bb6c86659f5a0 28-May-2015 Shawn Willden <swillden@google.com> Move assymetric key factory declarations to includes.

This exposes EcKeyFactory and RsaKeyFactory so they can be used for
constructing the Trusty KeymasterContext. Note that there are no code
changes, just reorganization.

Change-Id: I8e8e068fb875f9d9c5c35320a545347dc33bc507
/system/keymaster/Makefile
0629810b145187575bc26c910dded0d24c64569d 26-May-2015 Shawn Willden <swillden@google.com> Another refactor, deleting AbstractFactoryRegistry.

I should have known better than to make these singletons to begin
with. Globals create problems. This undoes that mistake.

Change-Id: Idf61d5f72e3c34b5c4ddb27cc94b05f506561743
/system/keymaster/Makefile
6270aca8571399aca8ea538acd7386ddecdcc112 26-May-2015 Shawn Willden <swillden@google.com> Delegate ECDSA keys to keymaster0 in SoftKeymasterDevice.

Bug: 20912868
Change-Id: If63899e3244aed45d939d0165e6d94a1caa9d220
/system/keymaster/Makefile
2beb628bfefae72fa6bb84a6235da7e3de532823 21-May-2015 Shawn Willden <swillden@google.com> Delegate RSA keys to keymaster0 in SoftKeymasterDevice.

Bug: 20912868
Change-Id: I515a125f1247357d2cd9b4633c3b223590848093
/system/keymaster/Makefile
58427c44b9261035351d2eee604a299c0b46dbb4 20-May-2015 Shawn Willden <swillden@google.com> Make Keymaster1Test parameterizable.

This enabled running the same test suite across different
implementations.

Bug: 20912868
Change-Id: Iaa2c4bcb38224d090aa54184a042375eb835ad60
/system/keymaster/Makefile
0cb6942d3efb6c056f96321c82a4b3d86af601d6 26-May-2015 Shawn Willden <swillden@google.com> Revert "Revert "Large refactor to move context out of AndroidKeymaster.""

This reverts commit 13fbe3e93247943c26e7ca2ed27b6d650282b8bf.

Bug: 20912868, 19799085
Change-Id: Iadd6ce5cbe94956c2a2fe277f1bf5b108e4bcf57
/system/keymaster/Makefile
13fbe3e93247943c26e7ca2ed27b6d650282b8bf 23-May-2015 Shawn Willden <swillden@google.com> Revert "Large refactor to move context out of AndroidKeymaster."

This reverts commit 8ba2a043f0d44ad3f58d4af518f9391c03eca9c3.

I need to update the Volantis non-secure code in sync. Reverting while I get that done.

Change-Id: I0fb9f928e7e624ad678050a04bb873b43b1c9a48
/system/keymaster/Makefile
8ba2a043f0d44ad3f58d4af518f9391c03eca9c3 18-May-2015 Shawn Willden <swillden@google.com> Large refactor to move context out of AndroidKeymaster.

AndroidKeymaster made a number of assumptions about its context that are
really only valid for TEE-based usage. In addition, KeyFactory made
some similarly TEE-focused assumptions about key blob creation and
parsing.

Both concerns have been moved to a new KeymasterContext class, which is
responsible for building and parsing key blobs in a manner appropriate
for the context in which AndroidKeymaster is running, as well as
providing other context-specific services, such as random number
generation.

In addition, the refactor reduces the need for the KeyBlob and
UnencryptedKeyBlob classes, which encode too many assumptions about blob
formatting and encryption, to the point that they can be removed and
replaced by a handful of utility functions which are much cleaner and
more flexible.

How to review this CL:

I looked hard at breaking this up into smaller CLs, but it's mostly not
feasible. However, it's probably easier to approach it by starting with
the fundamental changes, and then looking at the cascade effects.

1. Look at keymaster_context.h. The core of the change was pulling this
set of features out of AndroidKeymaster. Note that the revised approach
to key blob creation does not involve the KeyBlob and UnencryptedKeyBlob
classes, but instead goes directly from raw key material plus ancillary
data (e.g. auth sets) to a serialized buffer ready to return to
keystore. The same is true in reverse direction for parsing key blobs.

2. Look at key.h. The revised KeyFactory GenerateKey, ImportKey and
LoadKey methods are essential. GenerateKey and ImportKey no longer
produce a Key object, because all that's needed is a returnable blob.
LoadKey produces a Key object, but it starts with raw key material,
rather than an UnencryptedKeyBlob. Also note the change to the Key
class; because Key objects are only created by LoadKey, when there's a
need to use a key, there's only one constructor.

3. Look at asymmetric_key.h, rsa_key.h and rsa_key.cpp. rsa_key.cpp
provides a good example of how the new structure works. GenerateKey and
ImportKey do all of the work necessary to produce an OpenSSL RSA key and
extract the internal representation (using EvpToKeyMaterial; defined in
asymmetric_key.h because it's the same for EC keys). Then, with the raw
key data in hand, they call KeymasterContext::CreateKeyBlob to wrap the
key data in a key blob that can be returned to the caller -- whatever
that wrapping means in the current context. There's a subtlety not
apparent here which is crucial to the rationale for the refactoring:
RsaKeyFactory uses KeymasterContext::get_instance to retrieve the
context, but key factories which depend on operating in a particular
context can use a different way to get their context object, which may
have a larger interface. RsaKeymaster0KeyFactory will do this.

4. Look at soft_keymaster_context. In
particular, SoftKeymasterContext::CreateKeyBlob and ParseKeyBlob.
CreateKeyBlob allocates authorization tags from key_description to
hw_enforced and sw_enforced, then encrypts the key material and
serializes it to a blob. This approach is compatible with the keys
softkeymaster has been producing, but I'm going to change it (post M),
because there's no reason to bother encrypting SW keys with a SW key.
ParseKeyBlob reverses the process to recover the unencrypted key
material and the auth lists. One debatable point was the decision to
implement BuildHiddenAuthorizations and SetAuthorizations here, since
all contexts will need something similar, and they really should all do
it the same. I may refactor later to pull that functionality up to
KeymasterContext; it will depend on what I learn implementing
TrustyKeymasterContext and HybridKeymasterContext (used for the
keymaster0 adapter).

5. Look at ocb_utils and auth_encrypted_key_blob. These contain the key
encryption and key blob serialization code which was formerly split
between AndroidKeymaster::SerializeKeyBlob, UnencryptedKeyBlob and
KeyBlob, now divided into separate encryption and serialization
utilities. Note the refactored key_blob_test.cpp, updated to use the
new utilities rather than UnencryptedKeyBlob.

6. Look at soft_keymaster_device.cpp. Since KeyBlob no longer exists to
provide a nice way to peer into a blob to extract the algorithm, for use
in determining how to parse the keymaster0 signing key params (which
come in as a void*, yuck), we now have to use get_key_characteristics to
recover the params. This was the right way all along; the device layer
should not depend on being able to parse key blobs.

7. The rest.

Bug: 20912868, 19799085
Change-Id: Ieb74b8da39974f674eb8baa959bde75011fdd2e8
/system/keymaster/Makefile
b6837e7a62a1192e33beef586282812239ee8b28 16-May-2015 Shawn Willden <swillden@google.com> Remove references to Google in Android keymaster reference implementation.

Change-Id: I05de61353fc806b90232fab7c1d1cf76aefa35fc
/system/keymaster/Makefile
67380a948d80ce62455b1ec9ed8283e3349498c6 13-May-2015 Shawn Willden <swillden@google.com> Build development unit tests against BoringSSL.

Change-Id: Ie3ab9e09913ed304d5326dca3bfa398f26dc9bf7
/system/keymaster/Makefile
d79791b0c7123b3fc5db61a0805d7593f19ca8d9 09-May-2015 Shawn Willden <swillden@google.com> Revert "Remove compatibility with OpenSSL."

This created a build breakage in Trusty, and so was reverted in AOSP. Reverting here to sync.

This reverts commit de4ffa99837df492faca1ded33b14446c4a5c9be.

Change-Id: I80ffcb8f432e4af849aae49f40d313dd475d47fc
/system/keymaster/Makefile
de4ffa99837df492faca1ded33b14446c4a5c9be 05-May-2015 Shawn Willden <swillden@google.com> Remove compatibility with OpenSSL.

Android has switched from OpenSSL to BoringSSL. There were various
accommodations in the code for supporting both, but coming changes make
maintaining that support more difficult than it's worth, I'm abandoning
OpenSSL.

Change-Id: I9203c0215537c7f7aa2a89859ea52ff0f0582a9e
(cherry picked from commit 9011d1ae960beb29ba50634813c28892e738aac7)
/system/keymaster/Makefile
72a5fdde1095cc012b232987d1f02de9b0507b89 18-Mar-2015 Shawn Willden <swillden@google.com> Modify unit tests to run on-device as well as on the dev machine.

Change-Id: Icdab36a8e4fe97deb112df7ae59e97317f7e991b
/system/keymaster/Makefile
60eebdc0b92724cd550aeba92d124cd50c4db5ae 26-Mar-2015 Thai Duong <thaidn@google.com> ECIES: fix memory leaks and add malloc checks in HKDF. Use fixed-timing
memcmp in HmacOperation.

Change-Id: Ia059730ae31976a684f957c6dcc8c975c06f05a5
/system/keymaster/Makefile
7689ed6e95e5cb712c4983cb30ad383520cfaa33 21-Mar-2015 Thai Duong <thaidn@google.com> ECIES: add HKDF (specified in RFC 5869) using HMAC-SHA256

Change-Id: I18cf63b6454d3d11386e9de93d934d759e0abc0e
/system/keymaster/Makefile
aab6d5768e89cc6b1af249ff2e4b9f90e788ef58 24-Mar-2015 Alex Klyubin <klyubin@google.com> Revert "ECIES: add HKDF (specified in RFC 5869) using HMAC-SHA256"

This reverts commit 207b505371394dbf2118ca2beb8817cf4c617988.

Change-Id: I2ff88a283517b4829b9a48e064f73373638d0e36
/system/keymaster/Makefile
207b505371394dbf2118ca2beb8817cf4c617988 21-Mar-2015 Thai Duong <thaidn@google.com> ECIES: add HKDF (specified in RFC 5869) using HMAC-SHA256

Change-Id: I5dafc61aecdfd4d38aba0c1beb1b03716e212723
/system/keymaster/Makefile
c609659a4b469778f523bece9ad0235fcfe6dd91 17-Mar-2015 Shawn Willden <swillden@google.com> Update keymaster Makefile to check for signed/unsigned mismatches

Also update unit tests which contained mismatches. That will have to be
done to get the unit tests building for on-device testing.

Change-Id: I1106b206058b3dac1f6e72ac6a13d88609fa4006
/system/keymaster/Makefile
f01329d8692edde9a9ffb88f29f5d684eab481e2 12-Mar-2015 Shawn Willden <swillden@google.com> Improve error reporting and logging.

Bug: 19603049
Bug: 19509317
Change-Id: I041c973802e6c567adc5b1f280fc5bac27ba28d6
/system/keymaster/Makefile
f862a764e4d20495d484664de852e4d6de26f08b 18-Mar-2015 Thai Duong <thaidn@google.com> ECIES: refactoring EC code by moving common interfaces to EcKey

Change-Id: I6a0c5dfa8072c6f82f77316a2e8b2252d976ae0f
/system/keymaster/Makefile
23d4a742109fa29d6be20d3dc56a1b48797fe7b2 19-Mar-2015 Shawn Willden <swillden@google.com> Revert "Revert "Refactor GoogleKeymaster's operation table to a new class.""

This reverts commit 5a665cdeb6b4e44c57b0c0855e09045f8e2d2226. It also
incorporates one small change: operation_table.h #includes keymaster_defs.h
rather than keymaster1.h. This is important to avoid breaking Trusty.

Change-Id: Ia320d8599ea1d73930669fa61a82201ec1f833e8
/system/keymaster/Makefile
bfd323c639dae9a9c8f386cf099aec3e810a934b 19-Mar-2015 Shawn Willden <swillden@google.com> Revert "Refactor GoogleKeymaster's operation table to a new class."

This reverts commit 09d4ba3322e9a8b7c0e2d4a6c3dcacd7aed5ae22.

This is to unbreak Trusty build.

Change-Id: I47f90516a9e80e0c24bcea956072226bb7829991
/system/keymaster/Makefile
09d4ba3322e9a8b7c0e2d4a6c3dcacd7aed5ae22 04-Mar-2015 Shawn Willden <swillden@google.com> Refactor GoogleKeymaster's operation table to a new class.

This makes it reusable for Keymaster0Adapter.

Bug: 19508876
Change-Id: I38bdcf2ef9e9945ded2f15172962f6a997279100
/system/keymaster/Makefile
4d306ec792b4348253aa77dff965bff5def1dccb 04-Mar-2015 Shawn Willden <swillden@google.com> Factor PKCS8 to EVP conversion out of AsymmetricKey.

Bug: 19508876
Change-Id: I7d5a7363a43c47dc33b0de53040b593de096e1c3
/system/keymaster/Makefile
4dc536694c5044a624d112f69627856b91d3f82e 13-Jan-2015 Shawn Willden <swillden@google.com> Add rileyspahn@'s keymaster enforcement code.

This isn't integrated yet, and will probably undergo some changes. Just
getting it into the codebase.

Change-Id: I2b7ca81b7a3f0f8373b1cee407728c33a05bc077
/system/keymaster/Makefile
61902366cc912daacb84dd84c9bada95718e19b7 18-Dec-2014 Shawn Willden <swillden@google.com> Add support for SHA256 digests to RSA signing operations.

Change-Id: Iacca20554bef0bb3ea3c525af87c00f77df069f9
/system/keymaster/Makefile
567a4a04f43d35b785d50508e6459b01f2ab4d14 31-Dec-2014 Shawn Willden <swillden@google.com> Switch to using global logger

Change-Id: I7af02342320a9a431cd9845baaf5dbcf61d460c2
/system/keymaster/Makefile
26aaa76e18a1a1bc92c7d5ee6ecc62769dd764ec 07-Feb-2015 Shawn Willden <swillden@google.com> Add OpenSSL error translation utility.

Bug: 19507949
Change-Id: I8d499868173e476f5e9f92a7b0e518c3163815ac
/system/keymaster/Makefile
538b0654fd5096841e12da15271c74429a37be18 31-Dec-2014 Shawn Willden <swillden@google.com> Refactor logging, to stop passing Logger references everywhere.

Change-Id: I9380c21872710743413ca6a4340ae19f58b1e983
/system/keymaster/Makefile
63ac043f81f8e2a15bbadcb6628b92096295ab6a 29-Dec-2014 Shawn Willden <swillden@google.com> Refactor operation creation to use an operation factory registry.

Also modify GoogleKeymaster to query the operation factories to get
lists of supported modes and digests.

Change-Id: Ied30185df5dddaeaeb1106df63237757896d77db
/system/keymaster/Makefile
e3dd18db4dbe6cb67625bb9142f2976f2ec758e1 23-Dec-2014 Shawn Willden <swillden@google.com> Add AbstractFactoryRegistry class, and tests.

This class will be used to create registries of key and operation
factories, to decouple the GoogleKeymaster implementation from the set
of supported algorithms and operations. In particular, this will allow
the GetSupported*() methods to query the factories, rather than
duplicating the supported lists.

Change-Id: I7899ed579414bffa2056b61ba51faeba26fd2134
/system/keymaster/Makefile
0d560bfedd40389387f31f6696660fff6bc3a48a 16-Dec-2014 Shawn Willden <swillden@google.com> Add HMAC-SHA256 support.

Change-Id: I64c7bdf77388e3cb491b702c52c6746d32f317b0
/system/keymaster/Makefile
95e1382b75bab7d8b4cce3c1267fa23df2006957 16-Dec-2014 Shawn Willden <swillden@google.com> Refactor AesKey, extracting most functionality to SymmetricKey.

Symmetric key material handling is the same for all symmetric keys
(except, perhaps, DES if we want to handle parity bits correctly), so
move it into a common base.

Change-Id: I6ad5d35ce9020c1ae155bf0a8f2efe35674b1604
/system/keymaster/Makefile
6dde87c27ec620c0962507b58ece3fbe94bbff02 11-Dec-2014 Shawn Willden <swillden@google.com> Add AES OCB decryption.

Also, refactor to extract functionality that will be common to all AEAD modes.

Change-Id: I4bcf12c9d2d464ab1af559c69031904ffae45e25
/system/keymaster/Makefile
5b53c999edcd819ab2e5318bfd4589bc969fcbcc 02-Feb-2015 Shawn Willden <swillden@google.com> Revert "Revert "Add SoftKeymasterDevice""

This reverts commit ecf2ae9fc5fd66a0f12d9adce8aa9010f66ae863.
/system/keymaster/Makefile
ecf2ae9fc5fd66a0f12d9adce8aa9010f66ae863 29-Jan-2015 Brian Carlstrom <bdc@google.com> Revert "Add SoftKeymasterDevice"

This reverts commit 2079ae8a94f7f19e89d94c842a4f4055bb21c39a.
/system/keymaster/Makefile
2079ae8a94f7f19e89d94c842a4f4055bb21c39a 22-Jan-2015 Shawn Willden <swillden@google.com> Add SoftKeymasterDevice

SoftKeymasterDevice implements the keymaster HAL API by calling directly
to a GoogleKeymaster instance.

Change-Id: If530b98fecbef05815b685efff9295539614fd52
/system/keymaster/Makefile
907c3015d0edf1e43cdc9e0bba0e3fc23dca8cfc 08-Dec-2014 Shawn Willden <swillden@google.com> Add support for AES OCB encryption.

This change was already reviewed, merged and reverted, so I'm skipping
the review step this time.

Change-Id: Ibc80bec7e47468d4eb668f1bd9a188e51cb7d567
/system/keymaster/Makefile
628352b4210e26a6ea1db3f508274d93ab16616f 04-Dec-2014 Shawn Willden <swillden@google.com> Remove DSA support from keymaster.

DSA is being removed from BoringSSL.

This change was already reviewed, merged and reverted, so I'm skipping
the review step this time.

Change-Id: Ice47dcbf3739da361b1c9129b8f64d0a7f207b7b
/system/keymaster/Makefile
19fca88879ffd9e02f068226df9e536aac4e4623 23-Jan-2015 Shawn Willden <swillden@google.com> Add AES key generation support.

This change was already reviewed, merged and reverted, so I'm skipping
the review step this time.

Change-Id: Ia6450b43ca9a347fd6027837439c2ea8f91a712c
/system/keymaster/Makefile
4d024ce238501af7dba0a6296ab7511e75c27a98 20-Jan-2015 Shawn Willden <swillden@google.com> Revert "Add AES key generation support."

This reverts commit b949a3fafd73ea77efa579be72e2706cd064071a.
/system/keymaster/Makefile
d63e305b37d234cd577aed06f1e1281ccfe640a4 20-Jan-2015 Shawn Willden <swillden@google.com> Revert "Remove DSA support from keymaster."

This reverts commit 5e0579c2d4437b6f3c03872a643d12cb08a7bc79.
/system/keymaster/Makefile
29d898717bc48ca59cd3fb1e30efdad36f13ccec 20-Jan-2015 Shawn Willden <swillden@google.com> Revert "Add support for AES OCB encryption."

This reverts commit 5e251019d7402f4bf43b7acf287cf69372885f1b.
/system/keymaster/Makefile
5e251019d7402f4bf43b7acf287cf69372885f1b 08-Dec-2014 Shawn Willden <swillden@google.com> Add support for AES OCB encryption.

Change-Id: I97ab46fdce972d29af261041c41cf38d6904e736
/system/keymaster/Makefile
5e0579c2d4437b6f3c03872a643d12cb08a7bc79 04-Dec-2014 Shawn Willden <swillden@google.com> Remove DSA support from keymaster.

DSA is being removed from BoringSSL.

Change-Id: I79c5a92d5c0f7db65161fface794f29942813e0e
/system/keymaster/Makefile
b949a3fafd73ea77efa579be72e2706cd064071a 04-Dec-2014 Shawn Willden <swillden@google.com> Add AES key generation support.

Change-Id: I4a519ffd679f46c7212f72ab538f71cd6cb3cc29
/system/keymaster/Makefile
2c8dd3e93d66fed41561933105e6050ff0655d76 18-Sep-2014 Shawn Willden <swillden@google.com> Refactor: Separate asymmetric key types.

Change-Id: I3368798a8ecea319bb0bfcd6ff24e9a7b6287c80
/system/keymaster/Makefile
72014adef83b0346859dbe82d77b09b4756d8e64 17-Sep-2014 Shawn Willden <swillden@google.com> Refactor KeyBlob to separate encryption functionality.

This CL is in preparation for another which will refactor libkeymaster
into libkeymaster and libkeymasterclient, the latter for use by programs
which merely interface with keymaster and don't do any crypto on their
own, but do need to parse key blobs to extract authorization list
entries. To make that possible it moves KeyBlob's key encryption and
decryption capabilities into a subclass, PlaintextKeyBlob.

Change-Id: Ic6a65b6f237c122796ea70458655111316f902d8
/system/keymaster/Makefile
98d9b92547a9a7553b99e3e941a4175926f95b62 26-Aug-2014 Shawn Willden <swillden@google.com> Reorganize system/keymaster.

This CL moves the includes that should be exported to include/ and
removes the trusty-specific code (some of which is moving to
hardware/google and some of which is moving to the trusty tree.)

Change-Id: Ie4fabf6b5c5f36b50c2f5ff356548ca2e9140fcb
/system/keymaster/Makefile
407d41282d6b0a7f2d6e2826d44a58b016a5d844 26-Aug-2014 Shawn Willden <swillden@google.com> Implement TrustyKeymaster key generation, plus tests.

Change-Id: I085be101c735d136e7d5b2915a9510102722e695
/system/keymaster/Makefile
437fbd195e7de57b7dc0c449c04458bd90ef50de 20-Aug-2014 Shawn Willden <swillden@google.com> Add key importing, RSA only.

Change-Id: I639e797939a28b2b2a815541c9926dc194657c54
/system/keymaster/Makefile
d67afae61f822463120c36fea846362450dd7d71 19-Aug-2014 Shawn Willden <swillden@google.com> Refactor key and operation details.

Change-Id: I80267e6184955ecd98b08ceab91f4afd50c67614
/system/keymaster/Makefile
c3864dde9ffa9a52bb60802664e1cab1de5c0287 18-Aug-2014 Shawn Willden <swillden@google.com> Add ECDSA key generation.

Change-Id: I68a1d46e617124a8ccb7a4b2c09baae89603a5e0
/system/keymaster/Makefile
28e41475a2559824a0f3f2c850ed92a65c586f95 18-Aug-2014 Shawn Willden <swillden@google.com> Add DSA key generation.

Also refactor RSA key generation a bit.

Change-Id: I838ff58210f0a3be41f04c7e945e998751fca9f5
/system/keymaster/Makefile
da8485ea42e53839579575ec9fc2b49f7cf1a1f9 17-Aug-2014 Shawn Willden <swillden@google.com> Flesh out all remaining message structures, with serialization.

Still didn't implement recsoping messages, since they're not relevant
for 0.3.

Change-Id: Ia05a04349ff0329557b01d14f6c501540cc74439
/system/keymaster/Makefile
172f8c9be706e27f43022063bbc7f4b0177583ac 17-Aug-2014 Shawn Willden <swillden@google.com> Housekeeping CL.

Make variable names and formatting more consistent. Also, add doxygen comments to Serializable.

Change-Id: I24ff138611111acf96112be74a04cc35f04908e0
/system/keymaster/Makefile
1615f2ecf2537db7b302eb9b5be4394f711fd815 13-Aug-2014 Shawn Willden <swillden@google.com> Add RSA signing support.

Change-Id: Icdcbd978d58c8764618b995571d1e8b649959ef0
/system/keymaster/Makefile
60ebf8e49977683bc8cabe4609ce8b0405db7711 12-Aug-2014 Shawn Willden <swillden@google.com> Change to enable KEYMASTER_NAME_TAGS globally.

Selectively changing the size of the TypedTag structure causes subtle
problems when inlining is disabled (e.g. -O0).

Change-Id: I7f87a5a34eb574b0adaa8492f51fbcf2b172b4ca
/system/keymaster/Makefile
ebf627f0b50c0979e6cf53668464297703371eba 12-Aug-2014 Shawn Willden <swillden@google.com> Allow building tests with Clang, and fix some bugs Clang diagnosed.

Change-Id: Ie213deadabdb9c84d4ea1d2f69b1beaa87165717
/system/keymaster/Makefile
7636471bd1c553ac179f0dddc17133491d0e1faf 12-Aug-2014 Shawn Willden <swillden@google.com> Implement GetKeyCharacteristics.

Still need to add serialization to the messages.

Change-Id: I572c48474bf4d4f553d53cad475b57fa8937a02a
/system/keymaster/Makefile
834e80747cbb960f8a4028c5c8604bf5218ecdb9 10-Aug-2014 Shawn Willden <swillden@google.com> Improve authorization_set test coverage.

Change-Id: I8dd1830db8c19be07cef768c63c9ecfa3e16ae21
/system/keymaster/Makefile
4db3fbdda292c0c3120dfe160c1b49670aa18600 09-Aug-2014 Shawn Willden <swillden@google.com> Refactor and expand KeyBlob capabilities.

KeyBlob's responsibilities have grown, it makes sense to make it a
first-class class, and to use the Serializable infrastructure.

Change-Id: I76a8dac5b4b4fe47d6677c27ab9eba2755f02dfe
/system/keymaster/Makefile
128ffe07c723d8ffe2d5ea528ba5f64436c8a55a 06-Aug-2014 Shawn Willden <swillden@google.com> Add GoogleKeymaster. Very incomplete.

Change-Id: I53542c7132bd1a04afee93f3247b88ed7ed0bedc
/system/keymaster/Makefile
5ada7b6c525d2bfd5b556a698ccb11db23e052bb 29-Jul-2014 Shawn Willden <swillden@google.com> Add AuthorizationSet class and some supporting utils and a Makefile for
running tests on the dev machine.

Change-Id: I608e660854ace71409dd8bb5395d83dcfbf803c0
/system/keymaster/Makefile