поговорил с разработчиком и тест прошел плохо.Это также не было выбрано CI, так что это был идеальный шторм.В тесте использовалась RtlZeroMemory для обнуления ссылки на память, которую я раньше не видел.
Спасибо всем, кто потратил время на исследование.
[ClassInterface(ClassInterfaceType.AutoDual)]
[Guid("...")]
[ComVisible(true)]
public class FileEncryption
{
[DllImport("KERNEL32.DLL", EntryPoint = "RtlZeroMemory")]
public static extern bool ZeroMemory(IntPtr Destination, int Length);
public void Decrypt(string filenamewithpath, string password)
{
// We manually control memory and free when it is completed
GCHandle gch = GCHandle.Alloc(password, GCHandleType.Pinned);
try
{
...
ZeroMemory(gch.AddrOfPinnedObject(), password.Length * 2);
}
catch (Exception ex)
{
throw ex;
}
finally
{
gch.Free();