using Microsoft.Win32.SafeHandles; using System; using System.Security; namespace GostCryptography.Native { /// /// Дескриптор ключа криптографического провайдера /// [SecurityCritical] public sealed class SafeKeyHandleImpl : SafeHandleZeroOrMinusOneIsInvalid { public SafeKeyHandleImpl() : base(true) { } public SafeKeyHandleImpl(IntPtr handle) : base(true) { SetHandle(handle); } public static SafeKeyHandleImpl InvalidHandle { get { return new SafeKeyHandleImpl(IntPtr.Zero); } } [SecurityCritical] protected override bool ReleaseHandle() { CryptoApi.CryptDestroyKey(handle); return true; } } }