Если предположить, что реализация .net эквивалентна реализации mono , ответ: никогда.Выдает исключение или возвращает inputCount
.
Этот странный метод существует, потому что он реализует ICryptoTransform
.ICryptoTransform
также используется блочными шифрами, где разница между входным и выходным размером действительно может быть.
IMO, это плохой дизайн класса.Реализация интерфейса должна была быть явной, и пользователю должен был быть предоставлен чистый интерфейс, подобный HashCore
и HashFinal
, которые являются точками расширения HashAlgorithm
.