esys-get-capability-act.int.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #ifdef HAVE_CONFIG_H
  2. #include <config.h>
  3. #endif
  4. #include <stdlib.h>
  5. #include "tss2_esys.h"
  6. #include "esys_iutil.h"
  7. #include "test-esys.h"
  8. #define LOGMODULE test
  9. #include "util/log.h"
  10. #include "util/aux_util.h"
  11. /** This test is intended to test to get ACT
  12. * capabilities using the get capability command.
  13. *
  14. *
  15. * Tested ESYS commands:
  16. * - Esys_GetCapability() (M)
  17. *
  18. * @param[in,out] esys_context The ESYS_CONTEXT.
  19. * @retval EXIT_FAILURE
  20. * @retval EXIT_SUCCESS
  21. */
  22. int
  23. test_esys_get_capability_act(ESYS_CONTEXT * esys_context)
  24. {
  25. TSS2_RC r;
  26. TPM2_CAP capability = TPM2_CAP_ACT;
  27. UINT32 property = TPM2_RH_ACT_0;
  28. UINT32 propertyCount = 1;
  29. TPMS_CAPABILITY_DATA *capabilityData;
  30. TPMI_YES_NO moreData;
  31. r = Esys_GetCapability(esys_context,
  32. ESYS_TR_NONE, ESYS_TR_NONE, ESYS_TR_NONE,
  33. capability, property, propertyCount,
  34. &moreData, &capabilityData);
  35. /* Check whether capability is available. */
  36. if ((r & ~TPM2_RC_N_MASK) == (TPM2_RC_P | TPM2_RC_VALUE)) {
  37. SAFE_FREE(capabilityData);
  38. return EXIT_SKIP;
  39. }
  40. goto_if_error(r, "Error esys get capability", error);
  41. SAFE_FREE(capabilityData);
  42. return EXIT_SUCCESS;
  43. error:
  44. SAFE_FREE(capabilityData);
  45. return EXIT_FAILURE;
  46. }
  47. int
  48. test_invoke_esys(ESYS_CONTEXT * esys_context) {
  49. return test_esys_get_capability_act(esys_context);
  50. }