Revert "Enable a system PKCS #11 token."
This reverts commit 0398d33e3041ffafee8468f551af9926acc28a8a.
This change is suspected in network_VPNConnect failures
BUG=chromium:339743
Change-Id: If1c340282e0dd3eb3fe41f7651483894c8e9efd2
Reviewed-on: https://chromium-review.googlesource.com/184482
Reviewed-by: Richard Barnette <jrbarnette@chromium.org>
Tested-by: Richard Barnette <jrbarnette@chromium.org>
diff --git a/chapsd.conf b/chapsd.conf
index d2e8143..5b7934f 100644
--- a/chapsd.conf
+++ b/chapsd.conf
@@ -20,7 +20,5 @@
VERBOSE="--v=1"
rm /home/chronos/.chaps_debug_1
fi
- mkdir -p /var/lib/chaps
- chown chaps:chronos-access /var/lib/chaps
exec chapsd ${VERBOSE}
end script
diff --git a/p11_replay.cc b/p11_replay.cc
index 339ff85..97afaeb 100644
--- a/p11_replay.cc
+++ b/p11_replay.cc
@@ -60,6 +60,7 @@
LOG(INFO) << "No slots.";
exit(-1);
}
+ LOG(INFO) << "Choosing slot " << slot_list[0];
return slot_list[0];
}
@@ -385,28 +386,10 @@
CreateCertificate(session, object_data, object_id, certificate);
X509_free(certificate);
} else if (type == kPrivateKey) {
- // Try decoding a PKCS#1 RSAPrivateKey structure.
RSA* rsa = d2i_RSAPrivateKey(NULL, &data_start, object_data.length());
if (!rsa) {
- // Rewind the ptr just in case it was modified.
- data_start = reinterpret_cast<const unsigned char*>(object_data.c_str());
- // Try decoding a PKCS#8 structure.
- PKCS8_PRIV_KEY_INFO *p8 = d2i_PKCS8_PRIV_KEY_INFO(NULL,
- &data_start,
- object_data.length());
- if (!p8 || ASN1_TYPE_get(p8->pkey) != V_ASN1_OCTET_STRING) {
- LOG(ERROR) << "OpenSSL error in PKCS #8 private key parsing.";
- exit(-1);
- }
- // See if we have a RSAPrivateKey in the PKCS#8 structure.
- data_start = p8->pkey->value.octet_string->data;
- rsa = d2i_RSAPrivateKey(NULL, &data_start,
- p8->pkey->value.octet_string->length);
- PKCS8_PRIV_KEY_INFO_free(p8);
- if (!rsa) {
- LOG(ERROR) << "OpenSSL error in RSA private key parsing.";
- exit(-1);
- }
+ LOG(ERROR) << "OpenSSL error in RSA private key parsing.";
+ exit(-1);
}
CreatePrivateKey(session, object_id, "testing_key", rsa);
RSA_free(rsa);
@@ -482,7 +465,7 @@
}
void PrintHelp() {
- printf("Usage: p11_replay [--slot=<slot>] [COMMAND]\n");
+ printf("Usage: p11_replay [COMMAND]\n");
printf("Commands:\n");
printf(" --cleanup : Deletes all test keys.\n");
printf(" --generate [--label=<key_label> --key_size=<size_in_bits>]"
@@ -491,8 +474,8 @@
"useful for comparing key generation on different TPM models.\n");
printf(" --import --path=<path to file> --type=<cert, privkey, pubkey>"
" --id=<token id str>"
- " : Reads an object into the token. Accepts DER formatted X.509"
- " certificates and DER formatted PKCS#1 or PKCS#8 private keys.\n");
+ " : Reads an object into the token. Accepts DER formatted"
+ " certificates and DER formatted private keys.\n");
printf(" --inject [--label=<key_label> --key_size=<size_in_bits>]"
" : Locally generates a key pair suitable for replay tests and injects"
" it into the token.\n");
@@ -609,11 +592,6 @@
chromeos::InitLog(chromeos::kLogToSyslog | chromeos::kLogToStderr);
base::TimeTicks start_ticks = base::TimeTicks::Now();
CK_SLOT_ID slot = Initialize();
- int tmp_slot = 0;
- if (cl->HasSwitch("slot") &&
- base::StringToInt(cl->GetSwitchValueASCII("slot"), &tmp_slot))
- slot = tmp_slot;
- LOG(INFO) << "Using slot " << slot;
CK_SESSION_HANDLE session = OpenSession(slot);
PrintTicks(&start_ticks);
string label = "_default";
diff --git a/slot_manager_impl.cc b/slot_manager_impl.cc
index d6df63b..faa7d07 100644
--- a/slot_manager_impl.cc
+++ b/slot_manager_impl.cc
@@ -14,7 +14,6 @@
#include <base/basictypes.h>
#include <base/file_path.h>
-#include <base/file_util.h>
#include <base/logging.h>
#include <base/memory/scoped_ptr.h>
#include <chromeos/secure_blob.h>
@@ -47,10 +46,6 @@
const CK_ULONG kMaxPinLen = 127;
const CK_ULONG kMinPinLen = 6;
const char kSlotDescription[] = "TPM Slot";
-const FilePath::CharType kSystemTokenPath[] =
- FILE_PATH_LITERAL("/var/lib/chaps");
-const char kSystemTokenAuthData[] = "000000";
-const char kSystemTokenLabel[] = "System TPM Token";
const char kTokenLabel[] = "User-Specific TPM Token";
const char kTokenModel[] = "";
const char kTokenSerialNumber[] = "Not Available";
@@ -294,29 +289,15 @@
LOG(WARNING) << "TPM failed to generate random data.";
}
- // Add default isolate.
+ // Add default isolate
AddIsolate(IsolateCredentialManager::GetDefaultIsolateCredential());
- // By default we'll start with two slots. This allows for one 'system' slot
+ // Default semantics are to always start with two slots. One 'system' slot
// which always has a token available, and one 'user' slot which will have no
// token until a login event is received.
- AddSlots(2);
-
- if (file_util::DirectoryExists(FilePath(kSystemTokenPath))) {
- // Setup the system token.
- int system_slot_id = 0;
- if (!LoadToken(IsolateCredentialManager::GetDefaultIsolateCredential(),
- FilePath(kSystemTokenPath),
- SecureBlob(kSystemTokenAuthData),
- kSystemTokenLabel,
- &system_slot_id)) {
- LOG(ERROR) << "Failed to load the system token.";
- return false;
- }
- } else {
- LOG(WARNING) << "System token not loaded because " << kSystemTokenPath
- << " does not exist.";
- }
+ // TODO(dkrahn): Make this 2 once we're ready to enable the system token.
+ // crosbug.com/27759.
+ AddSlots(1);
return true;
}
diff --git a/slot_manager_test.cc b/slot_manager_test.cc
index 0d066da..2da601b 100644
--- a/slot_manager_test.cc
+++ b/slot_manager_test.cc
@@ -209,7 +209,7 @@
}
TEST_F(TestSlotManager, DefaultSlotSetup) {
- EXPECT_EQ(2, slot_manager_->GetSlotCount());
+ EXPECT_EQ(1, slot_manager_->GetSlotCount());
EXPECT_FALSE(slot_manager_->IsTokenAccessible(ic_, 0));
}
@@ -304,6 +304,7 @@
kTokenLabel,
&slot_id2));
EXPECT_EQ(slot_id, slot_id2);
+ EXPECT_EQ(2, slot_manager_->GetSlotCount());
EXPECT_TRUE(slot_manager_->LoadToken(ic_,
FilePath("another_path"),
MakeBlob(kAuthData),
@@ -316,6 +317,7 @@
slot_manager_->ChangeTokenAuthData(FilePath("yet_another_path"),
MakeBlob(kAuthData),
MakeBlob(kNewAuthData));
+ EXPECT_LT(slot_manager_->GetSlotCount(), 5);
// Logout with an unknown path.
slot_manager_->UnloadToken(ic_, FilePath("still_yet_another_path"));
slot_manager_->UnloadToken(ic_, FilePath("some_path"));
@@ -444,6 +446,7 @@
MakeBlob(kAuthData),
kTokenLabel,
&slot_id));
+ EXPECT_EQ(1, slot_manager_->GetSlotCount());
EXPECT_TRUE(slot_manager_->OpenIsolate(&new_isolate_1, &new_isolate_created));
EXPECT_TRUE(new_isolate_created);
@@ -452,6 +455,7 @@
MakeBlob(kAuthData),
kTokenLabel,
&slot_id));
+ EXPECT_EQ(2, slot_manager_->GetSlotCount());
// Ensure tokens are only accessible with the valid isolate cred.
EXPECT_TRUE(slot_manager_->IsTokenAccessible(new_isolate_0, 0));