diff --git a/client/site_tests/platform_Attestation/control b/client/site_tests/platform_Attestation/control
deleted file mode 100644
index a5593d2..0000000
--- a/client/site_tests/platform_Attestation/control
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (c) 2012 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.
-
-AUTHOR = "Chromium OS Authors"
-NAME = "platform_Attestation"
-PURPOSE = "Tests the TPM attestation enrollment process."
-CRITERIA = "Fails if attestation enrollment fails."
-TIME = "SHORT"
-TEST_CATEGORY = "Functional"
-TEST_CLASS = "platform"
-TEST_TYPE = "client"
-
-DOC = """
-This test verifies that the TPM attestation enrollment process works correctly.
-The enrollment is performed using a live Privacy CA.  Network requests are sent
-using curl.
-"""
-
-job.run_test('platform_Attestation')
diff --git a/client/site_tests/platform_Attestation/platform_Attestation.py b/client/site_tests/platform_Attestation/platform_Attestation.py
deleted file mode 100644
index 3eb2649..0000000
--- a/client/site_tests/platform_Attestation/platform_Attestation.py
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2012 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.
-
-from autotest_lib.client.bin import test, utils
-from autotest_lib.client.common_lib import error
-from autotest_lib.client.cros import cryptohome
-
-
-class platform_Attestation(test.test):
-    version = 1
-
-    def enroll(self):
-        utils.system(cryptohome.CRYPTOHOME_CMD +
-                     ' --action=tpm_attestation_start_enroll' +
-                     ' --file=/tmp/__attestation_enroll_request')
-        utils.system('curl' +
-                     ' --data-binary "@/tmp/__attestation_enroll_request"' +
-                     ' -o "/tmp/__attestation_enroll_response"' +
-                     ' -H "Content-Type: application/octet-stream"' +
-                     ' https://chromeos-ca.gstatic.com/enroll')
-        utils.system(cryptohome.CRYPTOHOME_CMD +
-                     ' --action=tpm_attestation_finish_enroll' +
-                     ' --file=/tmp/__attestation_enroll_response')
-
-    def cert_request(self):
-        utils.system(cryptohome.CRYPTOHOME_CMD +
-                     ' --action=tpm_attestation_start_cert_request' +
-                     ' --file=/tmp/__attestation_cert_request')
-        utils.system('curl --data-binary "@/tmp/__attestation_cert_request"' +
-                     ' -o "/tmp/__attestation_cert_response"' +
-                     ' -H "Content-Type: application/octet-stream"' +
-                     ' https://chromeos-ca.gstatic.com/sign')
-        utils.system(cryptohome.CRYPTOHOME_CMD +
-                     ' --action=tpm_attestation_finish_cert_request' +
-                     ' --file=/tmp/__attestation_cert_response' +
-                     ' --name=attest-ent-machine')
-
-    def run_once(self):
-        status = cryptohome.get_tpm_attestation_status()
-        if (not status['Prepared']):
-            raise error.TestFail('Attestation enrollment is not possible.')
-        self.enroll()
-        status = cryptohome.get_tpm_attestation_status()
-        if (not status['Enrolled']):
-            raise error.TestFail('Attestation not successfully enrolled.')
-        self.cert_request()
