public Tuple <bool, bool> CheckForAuthandInt(Guid id) { bool isDistinct = true; bool isVerified = true; SubmissionViewModel submission = _assignmentsService.GetSubmission(id); var submissions = _assignmentsService.GetSubmissions(submission.Assignment.Id); MemberViewModel teacher = _membersService.GetMember(submission.Member.TeacherEmail); byte[] key = CryptographicHelper.AsymmetricDecrypt( Convert.FromBase64String(submission.SymmetricKey), teacher.PrivateKey); byte[] iv = CryptographicHelper.AsymmetricDecrypt( Convert.FromBase64String(submission.SymmetricIV), teacher.PrivateKey); foreach (SubmissionViewModel sub in submissions) { if (sub.FileHash == submission.FileHash && sub.Member.Email != submission.Member.Email) { TempData["warning"] += "Assignment is identical to " + sub.Member.Email + "'s assignment!\n"; isDistinct = false; } } if (!CryptographicHelper.VerifySignature( CryptographicHelper.SymmetricDecrypt( Convert.FromBase64String(submission.Signature), key, iv), CryptographicHelper.Hash(GetDecryptedAssignment(id)), submission.Member.PublicKey)) { isVerified = false; } return(new Tuple <bool, bool>(isDistinct, isVerified)); }