public void PolicyAuthorize( TpmHandle policySession, byte[] approvedPolicy, byte[] policyRef, byte[] keySign, TkVerified checkTicket ) { Tpm2PolicyAuthorizeRequest inS = new Tpm2PolicyAuthorizeRequest(); inS.policySession = policySession; inS.approvedPolicy = approvedPolicy; inS.policyRef = policyRef; inS.keySign = keySign; inS.checkTicket = checkTicket; TpmStructureBase outSBase; DispatchMethod(TpmCc.PolicyAuthorize, (TpmStructureBase) inS, typeof(Tpm2PolicyAuthorizeResponse), out outSBase, 1, 0); } /// <summary>
TpmRc Execute(Tpm2 tpm, AuthSession sess, PolicyTree policy) { #if false if (Ticket == null) { // create a dummy ticket = e.g. for a trial session Ticket = new TkVerified(TpmRh.Owner, new byte[0]); } #endif if (ParamsCallback != null) { ParamsCallback(tpm, sess, PolicyToReplace, PolicyRef, SigKeyName, Ticket); } if (policy.AllowErrorsInPolicyEval) { tpm._AllowErrors(); } tpm.PolicyAuthorize(sess, PolicyToReplace, PolicyRef, SigKeyName, Ticket); return(tpm._GetLastResponseCode()); }