//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0008
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.Streams.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Core
            {
                typedef enum CryptographicPrivateKeyBlobType CryptographicPrivateKeyBlobType;

                typedef enum CryptographicPublicKeyBlobType CryptographicPublicKeyBlobType;

                interface IKeyDerivationParameters;

                interface IKeyDerivationParametersStatics;

                interface ICryptographicKey;

                interface IHashComputation;

                interface IHashAlgorithmProvider;

                interface IMacAlgorithmProvider;

                interface IKeyDerivationAlgorithmProvider;

                interface ISymmetricKeyAlgorithmProvider;

                interface IAsymmetricKeyAlgorithmProvider;

                interface IEncryptedAndAuthenticatedData;

                interface ICryptographicEngineStatics;

                interface IHashAlgorithmProviderStatics;

                interface IMacAlgorithmProviderStatics;

                interface IKeyDerivationAlgorithmProviderStatics;

                interface ISymmetricKeyAlgorithmProviderStatics;

                interface IAsymmetricKeyAlgorithmProviderStatics;

                interface IHashAlgorithmNamesStatics;

                interface IMacAlgorithmNamesStatics;

                interface ISymmetricAlgorithmNamesStatics;

                interface IAsymmetricAlgorithmNamesStatics;

                interface IKeyDerivationAlgorithmNamesStatics;

                runtimeclass KeyDerivationParameters;

                runtimeclass CryptographicKey;

                runtimeclass CryptographicHash;

                runtimeclass EncryptedAndAuthenticatedData;

                runtimeclass CryptographicEngine;

                runtimeclass HashAlgorithmProvider;

                runtimeclass MacAlgorithmProvider;

                runtimeclass KeyDerivationAlgorithmProvider;

                runtimeclass SymmetricKeyAlgorithmProvider;

                runtimeclass AsymmetricKeyAlgorithmProvider;

                runtimeclass HashAlgorithmNames;

                runtimeclass MacAlgorithmNames;

                runtimeclass SymmetricAlgorithmNames;

                runtimeclass AsymmetricAlgorithmNames;

                runtimeclass KeyDerivationAlgorithmNames;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Security
    {
        namespace Cryptography
        {
            namespace Core
            {
                [version(0x06020000)]
                enum CryptographicPrivateKeyBlobType
                {
                    Pkcs8RawPrivateKeyInfo = 0,
                    Pkcs1RsaPrivateKey     = 1,
                    BCryptPrivateKey       = 2,
                    Capi1PrivateKey        = 3
                };

                [version(0x06020000)]
                enum CryptographicPublicKeyBlobType
                {
                    X509SubjectPublicKeyInfo = 0,
                    Pkcs1RsaPublicKey        = 1,
                    BCryptPublicKey          = 2,
                    Capi1PublicKey           = 3
                };

                [uuid(7BF05967-047B-4A8C-964A-469FFD5522E2)]
                [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationParameters)]
                [version(0x06020000)]
                interface IKeyDerivationParameters : IInspectable
                {
                    [propget] HRESULT KdfGenericBinary([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT KdfGenericBinary([in] Windows.Storage.Streams.IBuffer* value);
                    [propget] HRESULT IterationCount([out] [retval] UINT32* value);
                }

                [uuid(EA961FBE-F37F-4146-9DFE-A456F1735F4B)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationParameters)]
                interface IKeyDerivationParametersStatics : IInspectable
                {
                    HRESULT BuildForPbkdf2([in] Windows.Storage.Streams.IBuffer* pbkdf2Salt, [in] UINT32 iterationCount, [out] [retval] Windows.Security.Cryptography.Core.KeyDerivationParameters** value);
                    HRESULT BuildForSP800108([in] Windows.Storage.Streams.IBuffer* label, [in] Windows.Storage.Streams.IBuffer* context, [out] [retval] Windows.Security.Cryptography.Core.KeyDerivationParameters** value);
                    HRESULT BuildForSP80056a([in] Windows.Storage.Streams.IBuffer* algorithmId, [in] Windows.Storage.Streams.IBuffer* partyUInfo, [in] Windows.Storage.Streams.IBuffer* partyVInfo, [in] Windows.Storage.Streams.IBuffer* suppPubInfo, [in] Windows.Storage.Streams.IBuffer* suppPrivInfo, [out] [retval] Windows.Security.Cryptography.Core.KeyDerivationParameters** value);
                }

                [uuid(ED2A3B70-8E7B-4009-8401-FFD1A62EEB27)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.CryptographicKey)]
                interface ICryptographicKey : IInspectable
                {
                    [propget] HRESULT KeySize([out] [retval] UINT32* value);
                    [overload("Export")] HRESULT ExportDefaultPrivateKeyBlobType([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [overload("Export")] HRESULT ExportPrivateKeyWithBlobType([in] Windows.Security.Cryptography.Core.CryptographicPrivateKeyBlobType BlobType, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [overload("ExportPublicKey")] HRESULT ExportDefaultPublicKeyBlobType([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [overload("ExportPublicKey")] HRESULT ExportPublicKeyWithBlobType([in] Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType BlobType, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [uuid(5904D1B6-AD31-4603-A3A4-B1BDA98E2562)]
                [exclusiveto(Windows.Security.Cryptography.Core.CryptographicHash)]
                [version(0x06020000)]
                interface IHashComputation : IInspectable
                {
                    HRESULT Append([in] Windows.Storage.Streams.IBuffer* data);
                    HRESULT GetValueAndReset([out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [uuid(BE9B3080-B2C3-422B-BCE1-EC90EFB5D7B5)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.HashAlgorithmProvider)]
                interface IHashAlgorithmProvider : IInspectable
                {
                    [propget] HRESULT AlgorithmName([out] [retval] HSTRING* value);
                    [propget] HRESULT HashLength([out] [retval] UINT32* value);
                    HRESULT HashData([in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                    HRESULT CreateHash([out] [retval] Windows.Security.Cryptography.Core.CryptographicHash** Value);
                }

                [uuid(4A3FC5C3-1CBD-41CE-A092-AA0BC5D2D2F5)]
                [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmProvider)]
                [version(0x06020000)]
                interface IMacAlgorithmProvider : IInspectable
                {
                    [propget] HRESULT AlgorithmName([out] [retval] HSTRING* value);
                    [propget] HRESULT MacLength([out] [retval] UINT32* value);
                    HRESULT CreateKey([in] Windows.Storage.Streams.IBuffer* keyMaterial, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** macKey);
                }

                [uuid(E1FBA83B-4671-43B7-9158-763AAA98B6BF)]
                [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider)]
                [version(0x06020000)]
                interface IKeyDerivationAlgorithmProvider : IInspectable
                {
                    [propget] HRESULT AlgorithmName([out] [retval] HSTRING* value);
                    HRESULT CreateKey([in] Windows.Storage.Streams.IBuffer* keyMaterial, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                }

                [uuid(3D7E4A33-3BD0-4902-8AC8-470D50D21376)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider)]
                interface ISymmetricKeyAlgorithmProvider : IInspectable
                {
                    [propget] HRESULT AlgorithmName([out] [retval] HSTRING* value);
                    [propget] HRESULT BlockLength([out] [retval] UINT32* value);
                    HRESULT CreateSymmetricKey([in] Windows.Storage.Streams.IBuffer* keyMaterial, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                }

                [uuid(E8D2FF37-6259-4E88-B7E0-94191FDE699E)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider)]
                interface IAsymmetricKeyAlgorithmProvider : IInspectable
                {
                    [propget] HRESULT AlgorithmName([out] [retval] HSTRING* value);
                    HRESULT CreateKeyPair([in] UINT32 keySize, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                    [overload("ImportKeyPair")] HRESULT ImportDefaultPrivateKeyBlob([in] Windows.Storage.Streams.IBuffer* keyBlob, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                    [overload("ImportKeyPair")] HRESULT ImportKeyPairWithBlobType([in] Windows.Storage.Streams.IBuffer* keyBlob, [in] Windows.Security.Cryptography.Core.CryptographicPrivateKeyBlobType BlobType, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                    [overload("ImportPublicKey")] HRESULT ImportDefaultPublicKeyBlob([in] Windows.Storage.Streams.IBuffer* keyBlob, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                    [overload("ImportPublicKey")] HRESULT ImportPublicKeyWithBlobType([in] Windows.Storage.Streams.IBuffer* keyBlob, [in] Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType BlobType, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key);
                }

                [uuid(6FA42FE7-1ECB-4B00-BEA5-60B83F862F17)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.EncryptedAndAuthenticatedData)]
                interface IEncryptedAndAuthenticatedData : IInspectable
                {
                    [propget] HRESULT EncryptedData([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propget] HRESULT AuthenticationTag([out] [retval] Windows.Storage.Streams.IBuffer** value);
                }

                [uuid(9FEA0639-6FF7-4C85-A095-95EB31715EB9)]
                [exclusiveto(Windows.Security.Cryptography.Core.CryptographicEngine)]
                [version(0x06020000)]
                interface ICryptographicEngineStatics : IInspectable
                {
                    HRESULT Encrypt([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* iv, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                    HRESULT Decrypt([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* iv, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                    HRESULT EncryptAndAuthenticate([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* nonce, [in] Windows.Storage.Streams.IBuffer* authenticatedData, [out] [retval] Windows.Security.Cryptography.Core.EncryptedAndAuthenticatedData** value);
                    HRESULT DecryptAndAuthenticate([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* nonce, [in] Windows.Storage.Streams.IBuffer* authenticationTag, [in] Windows.Storage.Streams.IBuffer* authenticatedData, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                    HRESULT Sign([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Storage.Streams.IBuffer** value);
                    HRESULT VerifySignature([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* signature, [out] [retval] boolean* isAuthenticated);
                    HRESULT DeriveKeyMaterial([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Security.Cryptography.Core.KeyDerivationParameters* parameters, [in] UINT32 desiredKeySize, [out] [retval] Windows.Storage.Streams.IBuffer** keyMaterial);
                }

                [uuid(9FAC9741-5CC4-4336-AE38-6212B75A915A)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.HashAlgorithmProvider)]
                interface IHashAlgorithmProviderStatics : IInspectable
                {
                    HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.HashAlgorithmProvider** provider);
                }

                [uuid(C9BDC147-CC77-4DF0-9E4E-B921E080644C)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmProvider)]
                interface IMacAlgorithmProviderStatics : IInspectable
                {
                    HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.MacAlgorithmProvider** provider);
                }

                [uuid(0A22097A-0A1C-443B-9418-B9498AEB1603)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider)]
                interface IKeyDerivationAlgorithmProviderStatics : IInspectable
                {
                    HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider** provider);
                }

                [uuid(8D3B2326-1F37-491F-B60E-F5431B26B483)]
                [exclusiveto(Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider)]
                [version(0x06020000)]
                interface ISymmetricKeyAlgorithmProviderStatics : IInspectable
                {
                    HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider** provider);
                }

                [uuid(425BDE18-A7F3-47A6-A8D2-C48D6033A65C)]
                [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider)]
                [version(0x06020000)]
                interface IAsymmetricKeyAlgorithmProviderStatics : IInspectable
                {
                    HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider** provider);
                }

                [uuid(6B5E0516-DE96-4F0A-8D57-DCC9DAE36C76)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.HashAlgorithmNames)]
                interface IHashAlgorithmNamesStatics : IInspectable
                {
                    [propget] HRESULT Md5([out] [retval] HSTRING* value);
                    [propget] HRESULT Sha1([out] [retval] HSTRING* value);
                    [propget] HRESULT Sha256([out] [retval] HSTRING* value);
                    [propget] HRESULT Sha384([out] [retval] HSTRING* value);
                    [propget] HRESULT Sha512([out] [retval] HSTRING* value);
                }

                [uuid(41412678-FB1E-43A4-895E-A9026E4390A3)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmNames)]
                interface IMacAlgorithmNamesStatics : IInspectable
                {
                    [propget] HRESULT HmacMd5([out] [retval] HSTRING* value);
                    [propget] HRESULT HmacSha1([out] [retval] HSTRING* value);
                    [propget] HRESULT HmacSha256([out] [retval] HSTRING* value);
                    [propget] HRESULT HmacSha384([out] [retval] HSTRING* value);
                    [propget] HRESULT HmacSha512([out] [retval] HSTRING* value);
                    [propget] HRESULT AesCmac([out] [retval] HSTRING* value);
                }

                [uuid(6870727B-C996-4EAE-84D7-79B2AEB73B9C)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.SymmetricAlgorithmNames)]
                interface ISymmetricAlgorithmNamesStatics : IInspectable
                {
                    [propget] HRESULT DesCbc([out] [retval] HSTRING* value);
                    [propget] HRESULT DesEcb([out] [retval] HSTRING* value);
                    [propget] HRESULT TripleDesCbc([out] [retval] HSTRING* value);
                    [propget] HRESULT TripleDesEcb([out] [retval] HSTRING* value);
                    [propget] HRESULT Rc2Cbc([out] [retval] HSTRING* value);
                    [propget] HRESULT Rc2Ecb([out] [retval] HSTRING* value);
                    [propget] HRESULT AesCbc([out] [retval] HSTRING* value);
                    [propget] HRESULT AesEcb([out] [retval] HSTRING* value);
                    [propget] HRESULT AesGcm([out] [retval] HSTRING* value);
                    [propget] HRESULT AesCcm([out] [retval] HSTRING* value);
                    [propget] HRESULT AesCbcPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT AesEcbPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT DesCbcPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT DesEcbPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT TripleDesCbcPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT TripleDesEcbPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT Rc2CbcPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT Rc2EcbPkcs7([out] [retval] HSTRING* value);
                    [propget] HRESULT Rc4([out] [retval] HSTRING* value);
                }

                [uuid(CAF6FCE4-67C0-46AA-84F9-752E77449F9B)]
                [version(0x06020000)]
                [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricAlgorithmNames)]
                interface IAsymmetricAlgorithmNamesStatics : IInspectable
                {
                    [propget] HRESULT RsaPkcs1([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaOaepSha1([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaOaepSha256([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaOaepSha384([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaOaepSha512([out] [retval] HSTRING* value);
                    [propget] HRESULT EcdsaP256Sha256([out] [retval] HSTRING* value);
                    [propget] HRESULT EcdsaP384Sha384([out] [retval] HSTRING* value);
                    [propget] HRESULT EcdsaP521Sha512([out] [retval] HSTRING* value);
                    [propget] HRESULT DsaSha1([out] [retval] HSTRING* value);
                    [propget] HRESULT DsaSha256([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPkcs1Sha1([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPkcs1Sha256([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPkcs1Sha384([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPkcs1Sha512([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPssSha1([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPssSha256([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPssSha384([out] [retval] HSTRING* value);
                    [propget] HRESULT RsaSignPssSha512([out] [retval] HSTRING* value);
                }

                [uuid(7B6E363E-94D2-4739-A57B-022E0C3A402A)]
                [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmNames)]
                [version(0x06020000)]
                interface IKeyDerivationAlgorithmNamesStatics : IInspectable
                {
                    [propget] HRESULT Pbkdf2Md5([out] [retval] HSTRING* value);
                    [propget] HRESULT Pbkdf2Sha1([out] [retval] HSTRING* value);
                    [propget] HRESULT Pbkdf2Sha256([out] [retval] HSTRING* value);
                    [propget] HRESULT Pbkdf2Sha384([out] [retval] HSTRING* value);
                    [propget] HRESULT Pbkdf2Sha512([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp800108CtrHmacMd5([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp800108CtrHmacSha1([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp800108CtrHmacSha256([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp800108CtrHmacSha384([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp800108CtrHmacSha512([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp80056aConcatMd5([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp80056aConcatSha1([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp80056aConcatSha256([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp80056aConcatSha384([out] [retval] HSTRING* value);
                    [propget] HRESULT Sp80056aConcatSha512([out] [retval] HSTRING* value);
                }

                [static(Windows.Security.Cryptography.Core.IKeyDerivationParametersStatics, 0x06020000)]
                [threading(both)]
                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass KeyDerivationParameters
                {
                    [default] interface Windows.Security.Cryptography.Core.IKeyDerivationParameters;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass CryptographicKey
                {
                    [default] interface Windows.Security.Cryptography.Core.ICryptographicKey;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass CryptographicHash
                {
                    [default] interface Windows.Security.Cryptography.Core.IHashComputation;
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass EncryptedAndAuthenticatedData
                {
                    [default] interface Windows.Security.Cryptography.Core.IEncryptedAndAuthenticatedData;
                }

                [threading(both)]
                [static(Windows.Security.Cryptography.Core.ICryptographicEngineStatics, 0x06020000)]
                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass CryptographicEngine
                {
                }

                [static(Windows.Security.Cryptography.Core.IHashAlgorithmProviderStatics, 0x06020000)]
                [threading(both)]
                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass HashAlgorithmProvider
                {
                    [default] interface Windows.Security.Cryptography.Core.IHashAlgorithmProvider;
                }

                [static(Windows.Security.Cryptography.Core.IMacAlgorithmProviderStatics, 0x06020000)]
                [version(0x06020000)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass MacAlgorithmProvider
                {
                    [default] interface Windows.Security.Cryptography.Core.IMacAlgorithmProvider;
                }

                [marshaling_behavior(agile)]
                [version(0x06020000)]
                [static(Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmProviderStatics, 0x06020000)]
                [threading(both)]
                runtimeclass KeyDerivationAlgorithmProvider
                {
                    [default] interface Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmProvider;
                }

                [version(0x06020000)]
                [static(Windows.Security.Cryptography.Core.ISymmetricKeyAlgorithmProviderStatics, 0x06020000)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SymmetricKeyAlgorithmProvider
                {
                    [default] interface Windows.Security.Cryptography.Core.ISymmetricKeyAlgorithmProvider;
                }

                [static(Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProviderStatics, 0x06020000)]
                [marshaling_behavior(agile)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass AsymmetricKeyAlgorithmProvider
                {
                    [default] interface Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProvider;
                }

                [static(Windows.Security.Cryptography.Core.IHashAlgorithmNamesStatics, 0x06020000)]
                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass HashAlgorithmNames
                {
                }

                [version(0x06020000)]
                [marshaling_behavior(agile)]
                [static(Windows.Security.Cryptography.Core.IMacAlgorithmNamesStatics, 0x06020000)]
                runtimeclass MacAlgorithmNames
                {
                }

                [version(0x06020000)]
                [static(Windows.Security.Cryptography.Core.ISymmetricAlgorithmNamesStatics, 0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass SymmetricAlgorithmNames
                {
                }

                [static(Windows.Security.Cryptography.Core.IAsymmetricAlgorithmNamesStatics, 0x06020000)]
                [version(0x06020000)]
                [marshaling_behavior(agile)]
                runtimeclass AsymmetricAlgorithmNames
                {
                }

                [static(Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmNamesStatics, 0x06020000)]
                [marshaling_behavior(agile)]
                [version(0x06020000)]
                runtimeclass KeyDerivationAlgorithmNames
                {
                }
            }
        }
    }
}
