recovery: require wp disabled for v1 flagfile

For version 1 decryption recovery flagfile, now require that the device
have firmware write protect disabled. For version 2, write protect
disabled OR authenticated system owner is needed for dumping encrypted
stateful partition.

Reworked build to always link against libvboot_host for the crossystem
library calls.

BUG=chromium:236093
TEST=link build, manual verification and unittests

Change-Id: I9401fad5224ac9b28dcf9998d69c6c6ce1d672e3
Signed-off-by: Kees Cook <keescook@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/57667
Reviewed-by: Elly Jones <ellyjones@chromium.org>
Reviewed-by: Will Drewry <wad@chromium.org>
8 files changed
tree: 97c02c8a1fd77413717fd66a45b8e8014c3f1566
  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.cc
  52. mock_homedirs.h
  53. mock_install_attributes.cc
  54. mock_install_attributes.h
  55. mock_keystore.cc
  56. mock_keystore.h
  57. mock_lockbox.cc
  58. mock_lockbox.h
  59. mock_mount.cc
  60. mock_mount.h
  61. mock_mount_factory.h
  62. mock_platform.cc
  63. mock_platform.h
  64. mock_service.cc
  65. mock_service.h
  66. mock_tpm.cc
  67. mock_tpm.h
  68. mock_user_session.cc
  69. mock_user_session.h
  70. mount-encrypted.c
  71. mount-encrypted.h
  72. mount-helpers.c
  73. mount-helpers.h
  74. mount.cc
  75. mount.h
  76. mount_factory.cc
  77. mount_factory.h
  78. mount_stack.cc
  79. mount_stack.h
  80. mount_stack_unittest.cc
  81. mount_task.cc
  82. mount_task.h
  83. mount_task_unittest.cc
  84. mount_unittest.cc
  85. OWNERS
  86. pam_mount.conf.xml
  87. pkcs11_init.cc
  88. pkcs11_init.h
  89. pkcs11_keystore.cc
  90. pkcs11_keystore.h
  91. pkcs11_keystore_unittest.cc
  92. platform.cc
  93. platform.h
  94. README
  95. README.dbus
  96. README.homedirs
  97. README.lockbox
  98. README.tpm
  99. service.cc
  100. service.h
  101. service_unittest.cc
  102. stateful_recovery.cc
  103. stateful_recovery.h
  104. stateful_recovery_unittest.cc
  105. stub_tpm.h
  106. tpm.cc
  107. tpm.h
  108. tpm_init.cc
  109. tpm_init.h
  110. tpm_status.proto
  111. user_oldest_activity_timestamp_cache.cc
  112. user_oldest_activity_timestamp_cache.h
  113. user_oldest_activity_timestamp_cache_unittest.cc
  114. user_session.cc
  115. user_session.h
  116. user_session_unittest.cc
  117. username_passkey.cc
  118. username_passkey.h
  119. username_passkey_unittest.cc
  120. vault_keyset.cc
  121. vault_keyset.h
  122. vault_keyset.proto
  123. vault_keyset_unittest.cc
  124. WATCHLISTS