mkResponse :: Request -> IO Response
mkResponse (desiredE, desiredPCRs, nonce) = do
  measurerID <- measurePrompt
  chan <- client_init measurerID
  eList <- mapM (getEvidencePiece chan) desiredE
  let evPack = signEvidence eList nonce
      quote = mkSignedTPMQuote desiredPCRs nonce
      hash = doHash $ ePack eList nonce
      quoPack = signQuote quote hash
        
  return (evPack, quoPack)
mkResponse :: Request -> IO Response
mkResponse (desiredE, desiredPCRs, nonce) = do
  measurerID <- measurePrompt
  chan <- client_init measurerID
  eList <- mapM (getEvidencePiece chan) desiredE
  let evPack = signEvidence eList nonce
      quote = mkSignedTPMQuote desiredPCRs nonce
      hash = doHash $ ePack eList nonce
      quoPack = signQuote quote hash
        
  return (evPack, quoPack)
mkResponse (desiredE, desiredPCRs, nonce) = do
  measurerID <- measurePrompt
  chan <- client_init measurerID
  eList <- mapM (getEvidencePiece chan) desiredE
  let evPack = signEvidence eList nonce
      quote = mkSignedTPMQuote desiredPCRs nonce
      hash = doHash $ ePack eList nonce
      quoPack = signQuote quote hash
        
  return (evPack, quoPack)