Removes the need for additional reboot in Lucas

This CL is a fix for the Issue 273264. 

An enumeration of the state table is provided below.

TPM     OK      IA     Behaviour
Clear   Exists  Exists  Not possible, since OK is in statefull partition which cannot be accessed when TPM is cleared.
Clear   !Exists Exists  Reenrollment scenario -> serial key created
Clear   !Exists !Exists Enrollment scenario   -> serial key created
Clear   Exists  !Exists Not possible, since OK is in statefull partition which cannot be accessed when TPM is cleared.
!Clear  Exists  Exists  Regular use scenario -> serial key not created
!Clear  !Exists Exists  Reenrollment scenario -> serial key created
!Clear  Exists  !Exists Not Possible, OK only gets created after we take TPM ownership, which creates IA
!Clear  !Exists !Exists Reenrollment scenario -> serial key created


BUG=chromium:273264
TEST=Verified the change on Lucas

Change-Id: I7e59adbf9b50971caba527958f5d59cb64df8cd9
Reviewed-on: https://chromium-review.googlesource.com/192300
Tested-by: Prabhu Kaliamoorthi <kaliamoorthi@chromium.org>
Reviewed-by: Mattias Nissler <mnissler@chromium.org>
Tested-by: Prabhu Kaliamoorthi <kaliamoorthi@google.com>
Commit-Queue: Mattias Nissler <mnissler@chromium.org>
1 file changed
tree: 99273067d879c6216d236e2a742b08f9942c3dd3
  1. init/
  2. browser_job.cc
  3. browser_job.h
  4. browser_job_unittest.cc
  5. child_exit_handler.cc
  6. child_exit_handler.h
  7. child_exit_handler_unittest.cc
  8. child_job.cc
  9. child_job.h
  10. COMMIT-QUEUE.ini
  11. common.mk
  12. cros-xauth.c
  13. dbus_error_types.h
  14. dbus_signal_emitter.cc
  15. dbus_signal_emitter.h
  16. default_proxy
  17. device_local_account_policy_service.cc
  18. device_local_account_policy_service.h
  19. device_local_account_policy_service_unittest.cc
  20. device_policy_service.cc
  21. device_policy_service.h
  22. device_policy_service_unittest.cc
  23. fake_browser_job.cc
  24. fake_browser_job.h
  25. fake_child_process.cc
  26. fake_child_process.h
  27. fake_generated_key_handler.cc
  28. fake_generated_key_handler.h
  29. fake_generator_job.cc
  30. fake_generator_job.h
  31. fake_job_manager.h
  32. file_checker.cc
  33. file_checker.h
  34. generator_job.cc
  35. generator_job.h
  36. inherit-review-settings-ok
  37. job_manager.h
  38. key_generator.cc
  39. key_generator.h
  40. key_generator_unittest.cc
  41. keygen.cc
  42. keygen_worker.cc
  43. keygen_worker.h
  44. LICENSE
  45. liveness_checker.h
  46. liveness_checker_impl.cc
  47. liveness_checker_impl.h
  48. liveness_checker_impl_unittest.cc
  49. login_metrics.cc
  50. login_metrics.h
  51. login_metrics_unittest.cc
  52. Makefile
  53. matchers.h
  54. mock_constructors.cc
  55. mock_dbus_signal_emitter.h
  56. mock_device_policy_service.h
  57. mock_file_checker.h
  58. mock_key_generator.h
  59. mock_liveness_checker.h
  60. mock_metrics.h
  61. mock_mitigator.h
  62. mock_nss_util.cc
  63. mock_nss_util.h
  64. mock_object_proxy.h
  65. mock_policy_key.h
  66. mock_policy_service.h
  67. mock_policy_store.h
  68. mock_process_manager_service.h
  69. mock_server.key
  70. mock_server.pem
  71. mock_session_manager.h
  72. mock_system_utils.cc
  73. mock_system_utils.h
  74. mock_user_policy_service_factory.h
  75. nss_util.cc
  76. nss_util.h
  77. nss_util_unittest.cc
  78. org.chromium.SessionManagerInterface.xml
  79. owner_key_loss_mitigator.cc
  80. owner_key_loss_mitigator.h
  81. OWNERS
  82. policy_key.cc
  83. policy_key.h
  84. policy_key_unittest.cc
  85. policy_service.cc
  86. policy_service.h
  87. policy_service_unittest.cc
  88. policy_store.cc
  89. policy_store.h
  90. policy_store_unittest.cc
  91. process_manager_service_interface.h
  92. regen_mitigator.cc
  93. regen_mitigator.h
  94. regen_mitigator_unittest.cc
  95. session_manager_dbus_adaptor.cc
  96. session_manager_dbus_adaptor.h
  97. session_manager_impl.cc
  98. session_manager_impl.h
  99. session_manager_impl_unittest.cc
  100. session_manager_interface.h
  101. session_manager_main.cc
  102. session_manager_process_unittest.cc
  103. session_manager_service.cc
  104. session_manager_service.h
  105. session_manager_setup.sh
  106. session_manager_static_unittest.cc
  107. session_manager_testrunner.cc
  108. SessionManager.conf
  109. stub_upstart_signal_emitter.h
  110. system_utils.h
  111. system_utils_impl.cc
  112. system_utils_impl.h
  113. system_utils_unittest.cc
  114. termination_handler.cc
  115. termination_handler.h
  116. termination_handler_unittest.cc
  117. upstart_signal_emitter.cc
  118. upstart_signal_emitter.h
  119. user_policy_service.cc
  120. user_policy_service.h
  121. user_policy_service_factory.cc
  122. user_policy_service_factory.h
  123. user_policy_service_unittest.cc
  124. WATCHLISTS
  125. xstart.sh