File: System\Security\Cryptography\Cng.NotSupported.cs
Web Access
Project: src\src\libraries\System.Security.Cryptography\src\System.Security.Cryptography.csproj (System.Security.Cryptography)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using System;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using System.Text;
using Microsoft.Win32.SafeHandles;
 
namespace Microsoft.Win32.SafeHandles
{
    public abstract partial class SafeNCryptHandle : SafeHandleZeroOrMinusOneIsInvalid
    {
        [SupportedOSPlatform("windows")]
        protected SafeNCryptHandle() : base(default(bool))
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        protected SafeNCryptHandle(IntPtr handle, SafeHandle parentHandle) : base(default(bool))
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        protected override bool ReleaseHandle() => false;
 
        protected abstract bool ReleaseNativeHandle();
    }
    public sealed partial class SafeNCryptKeyHandle : SafeNCryptHandle
    {
        [SupportedOSPlatform("windows")]
        public SafeNCryptKeyHandle()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public SafeNCryptKeyHandle(IntPtr handle, SafeHandle parentHandle)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        protected override bool ReleaseNativeHandle() => false;
    }
    public sealed partial class SafeNCryptProviderHandle : SafeNCryptHandle
    {
        [SupportedOSPlatform("windows")]
        public SafeNCryptProviderHandle()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        protected override bool ReleaseNativeHandle() => false;
    }
    public sealed partial class SafeNCryptSecretHandle : SafeNCryptHandle
    {
        [SupportedOSPlatform("windows")]
        public SafeNCryptSecretHandle()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        protected override bool ReleaseNativeHandle() => false;
    }
}
 
namespace System.Security.Cryptography
{
    public sealed partial class AesCng : Aes
    {
        [SupportedOSPlatform("windows")]
        public AesCng()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public AesCng(string keyName)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public AesCng(string keyName, CngProvider provider)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public AesCng(string keyName, CngProvider provider, CngKeyOpenOptions openOptions)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        public override void GenerateKey() { }
        public override void GenerateIV() { }
        public override ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[]? rgbIV) => null!;
        public override ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[]? rgbIV) => null!;
    }
    public sealed partial class CngKey : System.IDisposable
    {
        internal CngKey() { }
        public CngAlgorithm Algorithm => null!;
        public CngAlgorithmGroup? AlgorithmGroup => null;
        public CngExportPolicies ExportPolicy => default;
        public SafeNCryptKeyHandle Handle => null!;
        public bool IsEphemeral => false;
        public bool IsMachineKey => false;
        public string? KeyName => null;
        public int KeySize => default;
        public CngKeyUsages KeyUsage => default;
        public IntPtr ParentWindowHandle { get => default; set { } }
        public CngProvider? Provider => null;
        public SafeNCryptProviderHandle ProviderHandle => null!;
        public CngUIPolicy UIPolicy => null!;
        public string? UniqueName => null;
        public void Delete() { }
        public void Dispose() { }
        public byte[] Export(CngKeyBlobFormat format) => null!;
        public CngProperty GetProperty(string name, CngPropertyOptions options) => default;
        public bool HasProperty(string name, CngPropertyOptions options) => false;
        public void SetProperty(CngProperty property) { }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Create(CngAlgorithm algorithm)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Create(CngAlgorithm algorithm, string? keyName)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Create(CngAlgorithm algorithm, string? keyName, CngKeyCreationParameters? creationParameters)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static bool Exists(string keyName)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static bool Exists(string keyName, CngProvider provider)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static bool Exists(string keyName, CngProvider provider, CngKeyOpenOptions options)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Import(byte[] keyBlob, CngKeyBlobFormat format)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Import(byte[] keyBlob, CngKeyBlobFormat format, CngProvider provider)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Open(SafeNCryptKeyHandle keyHandle, CngKeyHandleOpenOptions keyHandleOpenOptions)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Open(string keyName)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Open(string keyName, CngProvider provider)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public static CngKey Open(string keyName, CngProvider provider, CngKeyOpenOptions openOptions)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
    }
    public sealed partial class DSACng : DSA
    {
        [SupportedOSPlatform("windows")]
        public DSACng()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public DSACng(int keySize)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public DSACng(CngKey key)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        public CngKey Key => null!;
        public override byte[] CreateSignature(byte[] rgbHash) => null!;
        public override DSAParameters ExportParameters(bool includePrivateParameters) => default;
        public override void ImportParameters(DSAParameters parameters) { }
        public override bool VerifySignature(byte[] rgbHash, byte[] rgbSignature) => false;
    }
    public sealed partial class ECDiffieHellmanCng : ECDiffieHellman
    {
        [SupportedOSPlatform("windows")]
        public ECDiffieHellmanCng()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public ECDiffieHellmanCng(int keySize)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public ECDiffieHellmanCng(CngKey key)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public ECDiffieHellmanCng(ECCurve curve)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        public CngAlgorithm HashAlgorithm { get => null!; set { } }
        public byte[]? HmacKey { get => null; set { } }
        public CngKey Key => null!;
        public ECDiffieHellmanKeyDerivationFunction KeyDerivationFunction { get => default; set { } }
        public byte[]? Label { get => null; set { } }
        public byte[]? SecretAppend { get => null; set { } }
        public byte[]? SecretPrepend { get => null; set { } }
        public byte[]? Seed { get => null; set { } }
        public bool UseSecretAgreementAsHmacKey => false;
        public SafeNCryptSecretHandle DeriveSecretAgreementHandle(CngKey otherPartyPublicKey) => null!;
        public SafeNCryptSecretHandle DeriveSecretAgreementHandle(ECDiffieHellmanPublicKey otherPartyPublicKey) => null!;
        public byte[] DeriveKeyMaterial(CngKey otherPartyPublicKey) => null!;
        [Obsolete(Obsoletions.EccXmlExportImportMessage, DiagnosticId = Obsoletions.EccXmlExportImportDiagId, UrlFormat = Obsoletions.SharedUrlFormat)]
        public void FromXmlString(string xml, ECKeyXmlFormat format) { }
        [Obsolete(Obsoletions.EccXmlExportImportMessage, DiagnosticId = Obsoletions.EccXmlExportImportDiagId, UrlFormat = Obsoletions.SharedUrlFormat)]
        public string ToXmlString(ECKeyXmlFormat format) => null!;
        public override ECDiffieHellmanPublicKey PublicKey => null!;
    }
    public sealed partial class ECDiffieHellmanCngPublicKey : ECDiffieHellmanPublicKey
    {
        internal ECDiffieHellmanCngPublicKey() { }
        public CngKeyBlobFormat BlobFormat => null!;
        protected override void Dispose(bool disposing) { }
        public CngKey Import() => null!;
 
        [SupportedOSPlatform("windows")]
        public static ECDiffieHellmanPublicKey FromByteArray(byte[] publicKeyBlob, CngKeyBlobFormat format)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [Obsolete(Obsoletions.EccXmlExportImportMessage, DiagnosticId = Obsoletions.EccXmlExportImportDiagId, UrlFormat = Obsoletions.SharedUrlFormat)]
        public static ECDiffieHellmanCngPublicKey FromXmlString(string xml)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [Obsolete(Obsoletions.EccXmlExportImportMessage, DiagnosticId = Obsoletions.EccXmlExportImportDiagId, UrlFormat = Obsoletions.SharedUrlFormat)]
        public override string ToXmlString()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
    }
    public sealed partial class ECDsaCng : ECDsa
    {
        [SupportedOSPlatform("windows")]
        public ECDsaCng()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public ECDsaCng(int keySize)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public ECDsaCng(CngKey key)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public ECDsaCng(ECCurve curve)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        public CngAlgorithm HashAlgorithm { get => null!; set { } }
        public CngKey Key => null!;
        [Obsolete(Obsoletions.EccXmlExportImportMessage, DiagnosticId = Obsoletions.EccXmlExportImportDiagId, UrlFormat = Obsoletions.SharedUrlFormat)]
        public void FromXmlString(string xml, ECKeyXmlFormat format) { }
        public byte[] SignData(byte[] data) => null!;
        public byte[] SignData(byte[] data, int offset, int count) => null!;
        public byte[] SignData(System.IO.Stream data) => null!;
        [Obsolete(Obsoletions.EccXmlExportImportMessage, DiagnosticId = Obsoletions.EccXmlExportImportDiagId, UrlFormat = Obsoletions.SharedUrlFormat)]
        public string ToXmlString(ECKeyXmlFormat format) => null!;
        public bool VerifyData(byte[] data, byte[] signature) => false;
        public bool VerifyData(byte[] data, int offset, int count, byte[] signature) => false;
        public bool VerifyData(System.IO.Stream data, byte[] signature) => false;
        public override byte[] SignHash(byte[] hash) => null!;
        public override bool VerifyHash(byte[] hash, byte[] signature) => false;
    }
    public sealed partial class RSACng : RSA
    {
        [SupportedOSPlatform("windows")]
        public RSACng()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public RSACng(int keySize)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public RSACng(CngKey key)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        public CngKey Key => null!;
        public override RSAParameters ExportParameters(bool includePrivateParameters) => default;
        public override void ImportParameters(RSAParameters parameters) { }
    }
    public sealed partial class TripleDESCng : TripleDES
    {
        [SupportedOSPlatform("windows")]
        public TripleDESCng()
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public TripleDESCng(string keyName)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public TripleDESCng(string keyName, CngProvider provider)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        [SupportedOSPlatform("windows")]
        public TripleDESCng(string keyName, CngProvider provider, CngKeyOpenOptions openOptions)
        {
            throw new PlatformNotSupportedException(SR.PlatformNotSupported_CryptographyCng);
        }
 
        public override void GenerateKey() { }
        public override void GenerateIV() { }
        public override ICryptoTransform CreateEncryptor(byte[] rgbKey, byte[]? rgbIV) => null!;
        public override ICryptoTransform CreateDecryptor(byte[] rgbKey, byte[]? rgbIV) => null!;
    }
}