Tpm2Lib.TpmPolicySecret.Execute C# (CSharp) Method

Execute() private method

private Execute ( Tpm2 tpm, AuthSession authSession, PolicyTree policy ) : TpmRc
tpm Tpm2
authSession AuthSession
policy PolicyTree
return TpmRc
        internal override TpmRc Execute(Tpm2 tpm, AuthSession authSession, PolicyTree policy)
        {
            TpmRc res;
            byte[] nonceTpm = UseNonceTpm ? Globs.CopyData(authSession.NonceTpm) : new byte[0];

            if (AuthVal == null)
            {
                SessionBase session;
                TpmHandle authorizedEntity;
                bool flushHandleOnCompletion;

                AssociatedPolicy.ExecutePolicySecretCallback(this,
                                                              out session,
                                                              out authorizedEntity,
                                                              out flushHandleOnCompletion);

                Timeout = tpm[session].PolicySecret(authorizedEntity,
                                                    authSession,
                                                    nonceTpm,
                                                    CpHash,
                                                    PolicyRef,
                                                    ExpirationTime,
                                                    out PolicyTicket);
                res = tpm._GetLastResponseCode();
                if (flushHandleOnCompletion)
                {
                    tpm.FlushContext(authorizedEntity);
                }
                if (!(session is Pwap))
                {
                    tpm.FlushContext(session);
                }
            }
            else
            {
                Timeout = tpm[AuthVal].PolicySecret(AuthorityHandle,
                                                    authSession,
                                                    nonceTpm,
                                                    CpHash,
                                                    PolicyRef,
                                                    ExpirationTime,
                                                    out PolicyTicket);
                res = tpm._GetLastResponseCode();
            }
            return res;
        }