OLD | NEW |
1 // Copyright (c) 2009-2010 The Chromium OS Authors. All rights reserved. | 1 // Copyright (c) 2009-2010 The Chromium OS Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // Contains the implementation of class Tpm | 5 // Contains the implementation of class Tpm |
6 | 6 |
7 #include "tpm.h" | 7 #include "tpm.h" |
8 | 8 |
9 #include <base/file_util.h> | 9 #include <base/file_util.h> |
10 #include <base/platform_thread.h> | 10 #include <base/platform_thread.h> |
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
534 default_owner_password)) { | 534 default_owner_password)) { |
535 LOG(ERROR) << "Take Ownership failed"; | 535 LOG(ERROR) << "Take Ownership failed"; |
536 return false; | 536 return false; |
537 } | 537 } |
538 | 538 |
539 is_owned_ = true; | 539 is_owned_ = true; |
540 took_ownership = true; | 540 took_ownership = true; |
541 } | 541 } |
542 | 542 |
543 // Ensure the SRK is available | 543 // Ensure the SRK is available |
| 544 TSS_RESULT result; |
544 TSS_HKEY srk_handle; | 545 TSS_HKEY srk_handle; |
545 TSS_UUID SRK_UUID = TSS_UUID_SRK; | 546 TSS_UUID SRK_UUID = TSS_UUID_SRK; |
546 if ((result = Tspi_Context_LoadKeyByUUID(context_handle, TSS_PS_TYPE_SYSTEM, | 547 if ((result = Tspi_Context_LoadKeyByUUID(context_handle_, TSS_PS_TYPE_SYSTEM, |
547 SRK_UUID, &srk_handle))) { | 548 SRK_UUID, &srk_handle))) { |
548 is_srk_available_ = false; | 549 is_srk_available_ = false; |
549 } else { | 550 } else { |
550 Tspi_Context_CloseObject(context_handle, srk_handle); | 551 Tspi_Context_CloseObject(context_handle_, srk_handle); |
551 is_srk_available_ = true; | 552 is_srk_available_ = true; |
552 } | 553 } |
553 | 554 |
554 // If we can open the TPM with the default password, then we still need to | 555 // If we can open the TPM with the default password, then we still need to |
555 // zero the SRK password and unrestrict it, then change the owner password. | 556 // zero the SRK password and unrestrict it, then change the owner password. |
556 TSS_HTPM tpm_handle; | 557 TSS_HTPM tpm_handle; |
557 if (GetTpmWithAuth(context_handle_, default_owner_password, &tpm_handle) && | 558 if (GetTpmWithAuth(context_handle_, default_owner_password, &tpm_handle) && |
558 TestTpmAuth(tpm_handle)) { | 559 TestTpmAuth(tpm_handle)) { |
559 if (!ZeroSrkPassword(context_handle_, default_owner_password)) { | 560 if (!ZeroSrkPassword(context_handle_, default_owner_password)) { |
560 LOG(ERROR) << "Couldn't zero SRK password"; | 561 LOG(ERROR) << "Couldn't zero SRK password"; |
(...skipping 17 matching lines...) Expand all Loading... |
578 owner_password_.assign(owner_password.begin(), owner_password.end()); | 579 owner_password_.assign(owner_password.begin(), owner_password.end()); |
579 password_sync_lock_.Release(); | 580 password_sync_lock_.Release(); |
580 | 581 |
581 file_util::WriteFile(FilePath(kTpmOwnedFile), NULL, 0); | 582 file_util::WriteFile(FilePath(kTpmOwnedFile), NULL, 0); |
582 } | 583 } |
583 | 584 |
584 return took_ownership; | 585 return took_ownership; |
585 } | 586 } |
586 | 587 |
587 } // namespace tpm_init | 588 } // namespace tpm_init |
OLD | NEW |