using System.Runtime.InteropServices; using System.Security; namespace GostCryptography.Native { /// /// Провайдер дескрипторов криптографического объекта /// /// Тип безопасного дескриптора public interface ISafeHandleProvider where T : SafeHandle { /// /// Возвращает дескриптор объекта /// T SafeHandle { [SecurityCritical] get; } } /// /// Методы расширения для /// public static class SafeHandleProviderExtensions { /// /// Возвращает дескриптор объекта /// [SecurityCritical] public static T GetSafeHandle(this ISafeHandleProvider provider) where T : SafeHandle { return provider.SafeHandle; } } }