Index: main.cc |
diff --git a/main.cc b/main.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0deda46062613aa6c758f6b9886865a82a3a8f79 |
--- /dev/null |
+++ b/main.cc |
@@ -0,0 +1,51 @@ |
+// Copyright (c) 2009 The Chromium OS Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+// |
+// TPM client for initialization |
+ |
+#include <base/command_line.h> |
+#include <iostream> |
+ |
+#include "secure_blob.h" |
+#include "tpm.h" |
+ |
+namespace switches { |
+ static const char kActionSwitch[] = "action"; |
+ static const char *kActions[] = { |
+ "initialize", |
+ NULL }; |
+ enum ActionEnum { |
+ ACTION_INITIALIZE }; |
+} // namespace switches |
+ |
+int main(int argc, char **argv) { |
+ CommandLine::Init(argc, argv); |
+ |
+ CommandLine *cl = CommandLine::ForCurrentProcess(); |
+ std::string action = cl->GetSwitchValueASCII(switches::kActionSwitch); |
+ |
+ if (!strcmp(switches::kActions[switches::ACTION_INITIALIZE], |
+ action.c_str())) { |
+ tpm_init::Tpm tpm; |
+ tpm.Init(); |
+ if (tpm.InitializeTpm()) { |
+ tpm_init::SecureBlob password; |
+ tpm.GetOwnerPassword(&password); |
+ std::string str_password(static_cast<const char*>(password.const_data()), |
+ password.size()); |
+ printf("TPM Owner Password: %s\n", str_password.c_str()); |
+ } else { |
+ printf("Failed to initialize the TPM\n"); |
+ } |
+ } else { |
+ printf("Unknown action or no action given. Available actions: \n"); |
+ for(int i = 0; /* loop forever */; i++) { |
+ if(!switches::kActions[i]) { |
+ break; |
+ } |
+ printf(" --action=%s\n", switches::kActions[i]); |
+ } |
+ } |
+ return 0; |
+} |