Что такого опасного в pkcs12loaderlimits.danguessnolimits?C#

Место общения программистов C#
Ответить
Anonymous
 Что такого опасного в pkcs12loaderlimits.danguessnolimits?

Сообщение Anonymous »

У меня есть сертификат, который я пытаюсь загрузить в .net. Я заметил, что в .net 9 конструктор x509Certificate2 был устарел в пользу x509CertificateLoader . Таким образом, чтобы подготовиться к этому (все еще в .net 7) я вытащил в пакете Microsoft.bcl.cryptography и попробовал использовать этот класс. Тем не менее, x509certificateLoader не выполняет, если я не предоставлю очень приключенческое значение конфигурации:

Код: Выделить всё

// works
cert = X509CertificateLoader.LoadPkcs12FromFile(certPath, clientId, loaderLimits: Pkcs12LoaderLimits.DangerousNoLimits);
// throws CryptographicException
cert = X509CertificateLoader.LoadPkcs12FromFile(certPath, clientId);
< /code>
Stacktrace: < /p>
   at System.Security.Cryptography.NetStandardShims.TryGetHashAndReset(IncrementalHash hash, Span`1 destination, Int32& bytesWritten)
at System.Security.Cryptography.Asn1.Pkcs12.PfxAsn.VerifyMac(ReadOnlySpan`1 macPassword, ReadOnlySpan`1 authSafeContents)
at System.Security.Cryptography.X509Certificates.X509CertificateLoader.ReadCertsAndKeys(BagState& bagState, ReadOnlyMemory`1 data, ReadOnlySpan`1& password, Pkcs12LoaderLimits loaderLimits)
at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadPkcs12(ReadOnlyMemory`1 data, ReadOnlySpan`1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits)
at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadFromFile[T](String path, ReadOnlySpan`1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits, LoadFromFileFunc`1 loader)
at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadPkcs12FromFile(String path, ReadOnlySpan`1 password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits)
at System.Security.Cryptography.X509Certificates.X509CertificateLoader.LoadPkcs12FromFile(String path, String password, X509KeyStorageFlags keyStorageFlags, Pkcs12LoaderLimits loaderLimits)
tancentially, я не могу выяснить, как происходит это исключение, так как этот код должен заставить Hashalgorithm быть одним из этих значений, тем самым избегая строки, где это исключение брошено Полем Но, в любом случае, как задокументировано, эта настройка PKCS12loaderLimits.dangeSucyNolimits заставляет загрузчик следовать по другому пути кода, что позволяет избежать проблемы. Просто изменение пределов загрузчика, чтобы иметь аналогичные параметры на pkcs12loaderlimits.danguessnolimits Не решают проблему. Что я рискую, используя этот вариант? Вероятно, есть что -то в самом файле сертификата, что делает его несовместимым с настройками по умолчанию? Что -то, что я мог бы изменить, чтобы мне не пришлось использовать «опасную» отсутствие фильтрации?

Подробнее здесь: https://stackoverflow.com/questions/793 ... usnolimits
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»