/* Copyright (c) 2010 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.
 */

/* Test of space permissions retrieval.
 */

#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>

#include "tlcl.h"
#include "tlcl_tests.h"
#include "utility.h"

#define PERMPPGL (TPM_NV_PER_PPWRITE | TPM_NV_PER_GLOBALLOCK)
#define PERMPP TPM_NV_PER_PPWRITE

int main(int argc, char** argv) {
  uint32_t perm;

  TlclLibInit();
  TPM_CHECK(TlclStartupIfNeeded());
  TPM_CHECK(TlclContinueSelfTest());
  TPM_CHECK(TlclAssertPhysicalPresence());

  TPM_CHECK(TlclGetPermissions(INDEX0, &perm));
  assert((perm & PERMPPGL) == PERMPPGL);

  TPM_CHECK(TlclGetPermissions(INDEX1, &perm));
  assert((perm & PERMPP) == PERMPP);

  printf("TEST SUCCEEDED\n");
  exit(0);
}
