// This file was extracted from the TCG Published // Trusted Platform Module Library // Part 3: Commands // Family "2.0" // Level 00 Revision 01.16 // October 30, 2014 #include "InternalRoutines.h" #include "ReadPublic_fp.h" // // // Error Returns Meaning // // TPM_RC_SEQUENCE can not read the public area of a sequence object // TPM_RC TPM2_ReadPublic( ReadPublic_In *in, // IN: input parameter list ReadPublic_Out *out // OUT: output parameter list ) { OBJECT *object; // Input Validation // Get loaded object pointer object = ObjectGet(in->objectHandle); // Can not read public area of a sequence object if(ObjectIsSequence(object)) return TPM_RC_SEQUENCE; // Command Output // Compute size of public area in canonical form out->outPublic.t.size = TPMT_PUBLIC_Marshal(&object->publicArea, NULL, NULL); // Copy public area to output out->outPublic.t.publicArea = object->publicArea; // Copy name to output out->name.t.size = ObjectGetName(in->objectHandle, &out->name.t.name); // Copy qualified name to output ObjectGetQualifiedName(in->objectHandle, &out->qualifiedName); return TPM_RC_SUCCESS; }