public ResponseAuthHandleInfoCore(TPMBlob blob, long startIndex) { blob.Seek(startIndex, SeekOrigin.Begin); _nonceEven = blob.ReadBytes(20); _continueAuthSession = blob.ReadBool(); _tpmAuthData = blob.ReadBytes(20); }
protected override TPMBlob TransmitMe(TPMBlob requestBlob) { using (_commandAuthHelper.AcquireLock()) { try { TPMBlob responseBlob; //Make sure that all Authorization handles are loaded _commandAuthHelper.LoadAuthorizationHandles(_currentAuthorizationInfos); requestBlob.Seek(0, SeekOrigin.End); foreach (AuthorizationInfo authInfo in _currentAuthorizationInfos) { WriteAuthorizationInfo(requestBlob, authInfo); } lock (_tpmProvider) { try { _log.DebugFormat("Processing {0}", this); _log.DebugFormat("AuthHandles: "); foreach (AuthorizationInfo authInfo in _currentAuthorizationInfos) { _log.DebugFormat(authInfo.Handle.ToString()); } _log.DebugFormat("Before execution: {0}", GetCommandInternalsBeforeExecute()); responseBlob = _tpmProvider.TransmitAndCheck(requestBlob); } catch (Exception) { _log.DebugFormat("{0} FAILED", this); throw; } finally { _log.DebugFormat("Processed {0}", this); } } ReleaseAuthHandles(false, responseBlob); return(responseBlob); } catch (Exception) { ReleaseAuthHandles(true, null); throw; } } }