| ▲ | to11mtm 10 hours ago | |
Yeah, .NET tried to provide a specific type related to this concept (SecureString) in the past and AFAIK there were were two main problems that have caused it to fall into disuse; First one being, it was -very- tricky to use properly for most cases, APIs to the outside world typically would give a byte[] or string or char[] and then you fall into the problem space you mention. That is, if you used a byte[] or char[] array, and GC does a relocation of the data, it may still be present in the old spot. (Worth noting, the type itself doesn't do that, whatever you pass in gets copied to a non-gc buffer.) The second issue is that there's not a unified unix memory protection system like in windows; The windows implementation is able to use Crypt32 such that only the current process can read the memory it used for the buffeer. | ||
| ▲ | evntdrvn 9 hours ago | parent [-] | |
In case you’re interested in a potential successor: https://github.com/dotnet/designs/pull/147 | ||