Почему SecureString и ProtectedMemory были размещены в разных пространствах имен?
На концептуальном уровне SecureString
выглядит как специализация ProtectedMemory
,
Конечно, его основная функция заключается в сокращении времени жизни (неизменяемых) строк внутри оперативной памяти, подкачки и аварийных дампов. Однако он также использует DPAPI для защиты данных, за исключением точек входа и выхода. DPAPI использует криптографию для своей работы. Так почему SecureString
был помещен в System.Security
а не в System.Security.Cryptography
?
На мой взгляд, если криптография не использовалась в реализации, то SecureString
обеспечит лишь минимальное преимущество по сравнению с существующими ранее StringBuilder
,
Существует также контраст между "Безопасный" и "Защищенный" в SecureString
а также ProtectedMemory
Имена классов, я не уверен, как это может быть мотивировано либо.