Implemented a PKCS #11 backed key store.

Certified keys which are associated with the user need a safe place to
live.  The most important requirement is that the key must not be
available when the user is not signed in.  This CL implements a key
store using data objects in the user's PKCS #11 token.

BUG=chromium-os:38996
TEST=unit
CQ-DEPEND=CL:44332, CL:44334

Change-Id: Ice506b0aed92137eef99150ac6f7d5ecf04ce1af
Reviewed-on: https://gerrit.chromium.org/gerrit/44336
Commit-Queue: Darren Krahn <dkrahn@chromium.org>
Reviewed-by: Darren Krahn <dkrahn@chromium.org>
Tested-by: Darren Krahn <dkrahn@chromium.org>
5 files changed
tree: 2170aa81be408100d50e75cdc91d205525a9a609
  1. etc/
  2. share/
  3. attestation.cc
  4. attestation.h
  5. attestation.proto
  6. attestation_task.cc
  7. attestation_task.h
  8. attestation_unittest.cc
  9. common.mk
  10. credentials.h
  11. crypto.cc
  12. crypto.h
  13. crypto_unittest.cc
  14. cryptohome-path.cc
  15. cryptohome.cc
  16. cryptohome.xml
  17. cryptohome_common.h
  18. cryptohome_event_source.cc
  19. cryptohome_event_source.h
  20. cryptohome_event_source_unittest.cc
  21. cryptohome_testrunner.cc
  22. cryptohomed.cc
  23. cryptolib.cc
  24. cryptolib.h
  25. email_to_image
  26. homedirs.cc
  27. homedirs.h
  28. homedirs_unittest.cc
  29. inherit-review-settings-ok
  30. install_attributes.cc
  31. install_attributes.h
  32. install_attributes.proto
  33. install_attributes_unittest.cc
  34. interface.cc
  35. interface.h
  36. keystore.h
  37. LICENSE
  38. lockbox-cache-main.cc
  39. lockbox-cache-tpm.cc
  40. lockbox-cache-tpm.h
  41. lockbox-cache.cc
  42. lockbox-cache.h
  43. lockbox.cc
  44. lockbox.h
  45. lockbox_unittest.cc
  46. make_tests.cc
  47. make_tests.h
  48. make_tests.sh
  49. Makefile
  50. marshal.list
  51. mock_homedirs.h
  52. mock_install_attributes.h
  53. mock_keystore.h
  54. mock_lockbox.h
  55. mock_mount.h
  56. mock_platform.h
  57. mock_tpm.h
  58. mock_user_session.h
  59. mount-encrypted.c
  60. mount-encrypted.h
  61. mount-helpers.c
  62. mount-helpers.h
  63. mount.cc
  64. mount.h
  65. mount_stack.cc
  66. mount_stack.h
  67. mount_stack_unittest.cc
  68. mount_task.cc
  69. mount_task.h
  70. mount_task_unittest.cc
  71. mount_unittest.cc
  72. OWNERS
  73. pam_mount.conf.xml
  74. pkcs11_init.cc
  75. pkcs11_init.h
  76. pkcs11_keystore.cc
  77. pkcs11_keystore.h
  78. pkcs11_keystore_unittest.cc
  79. platform.cc
  80. platform.h
  81. README
  82. README.dbus
  83. README.homedirs
  84. README.lockbox
  85. README.tpm
  86. service.cc
  87. service.h
  88. service_unittest.cc
  89. stateful_recovery.cc
  90. stateful_recovery.h
  91. stateful_recovery_unittest.cc
  92. stub_tpm.h
  93. tpm.cc
  94. tpm.h
  95. tpm_init.cc
  96. tpm_init.h
  97. tpm_status.proto
  98. user_oldest_activity_timestamp_cache.cc
  99. user_oldest_activity_timestamp_cache.h
  100. user_oldest_activity_timestamp_cache_unittest.cc
  101. user_session.cc
  102. user_session.h
  103. user_session_unittest.cc
  104. username_passkey.cc
  105. username_passkey.h
  106. username_passkey_unittest.cc
  107. vault_keyset.cc
  108. vault_keyset.h
  109. vault_keyset.proto
  110. vault_keyset_unittest.cc
  111. WATCHLISTS