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;
}
}
}