private void CheckParamEncSessCandidate(AuthSession candidate, SessionAttr directionFlag)
{
if (!candidate.Attrs.HasFlag(directionFlag))
{
return;
}
bool decrypt = directionFlag == SessionAttr.Decrypt;
if (!_Behavior.Passthrough)
{
if (!candidate.CanEncrypt())
{
throw new Exception(string.Format("{0} session is missing symmetric algorithm",
decrypt ? "Decryption" : "Encryption"));
}
if ((decrypt ? DecSession : EncSession) != null)
{
throw new Exception(string.Format("Multiple {0} sessions",
decrypt ? "decryption" : "encryption"));
}
}
if (decrypt)
{
DecSession = candidate;
}
else
{
EncSession = candidate;
}
}