// // Copyright (c) Microsoft Corporation. All rights reserved. // // // File generated by WinMDIDL version 8.00.0021 // import "inspectable.idl"; import "AsyncInfo.idl"; import "EventToken.idl"; import "windowscontracts.idl"; import "Windows.Foundation.idl"; import "Windows.Security.Cryptography.Certificates.idl"; import "Windows.Storage.Streams.idl"; // Forward Declare namespace Windows { namespace Foundation { apicontract UniversalApiContract; } } namespace Windows { namespace Security { namespace Cryptography { namespace Certificates { runtimeclass Certificate; } } } } namespace Windows { namespace Storage { namespace Streams { interface IBuffer; } } } namespace Windows { namespace Security { namespace Cryptography { namespace Core { typedef enum Capi1KdfTargetAlgorithm Capi1KdfTargetAlgorithm; typedef enum CryptographicPadding CryptographicPadding; typedef enum CryptographicPrivateKeyBlobType CryptographicPrivateKeyBlobType; typedef enum CryptographicPublicKeyBlobType CryptographicPublicKeyBlobType; interface IAsymmetricAlgorithmNamesStatics; interface IAsymmetricAlgorithmNamesStatics2; interface IAsymmetricKeyAlgorithmProvider; interface IAsymmetricKeyAlgorithmProvider2; interface IAsymmetricKeyAlgorithmProviderStatics; interface ICryptographicEngineStatics; interface ICryptographicEngineStatics2; interface ICryptographicKey; interface IEccCurveNamesStatics; interface IEncryptedAndAuthenticatedData; interface IHashAlgorithmNamesStatics; interface IHashAlgorithmProvider; interface IHashAlgorithmProviderStatics; interface IHashComputation; interface IKeyDerivationAlgorithmNamesStatics; interface IKeyDerivationAlgorithmNamesStatics2; interface IKeyDerivationAlgorithmProvider; interface IKeyDerivationAlgorithmProviderStatics; interface IKeyDerivationParameters; interface IKeyDerivationParameters2; interface IKeyDerivationParametersStatics; interface IKeyDerivationParametersStatics2; interface IMacAlgorithmNamesStatics; interface IMacAlgorithmProvider; interface IMacAlgorithmProvider2; interface IMacAlgorithmProviderStatics; interface IPersistedKeyProviderStatics; interface ISymmetricAlgorithmNamesStatics; interface ISymmetricKeyAlgorithmProvider; interface ISymmetricKeyAlgorithmProviderStatics; runtimeclass AsymmetricAlgorithmNames; runtimeclass AsymmetricKeyAlgorithmProvider; runtimeclass CryptographicEngine; runtimeclass CryptographicHash; runtimeclass CryptographicKey; runtimeclass EccCurveNames; runtimeclass EncryptedAndAuthenticatedData; runtimeclass HashAlgorithmNames; runtimeclass HashAlgorithmProvider; runtimeclass KeyDerivationAlgorithmNames; runtimeclass KeyDerivationAlgorithmProvider; runtimeclass KeyDerivationParameters; runtimeclass MacAlgorithmNames; runtimeclass MacAlgorithmProvider; runtimeclass PersistedKeyProvider; runtimeclass SymmetricAlgorithmNames; runtimeclass SymmetricKeyAlgorithmProvider; } } } } // Generic instantiations namespace Windows { namespace Security { namespace Cryptography { namespace Core { declare { interface Windows.Foundation.IAsyncOperation; } } } } } // Type definition namespace Windows { namespace Security { namespace Cryptography { namespace Core { [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum Capi1KdfTargetAlgorithm { NotAes = 0, Aes = 1 }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum CryptographicPadding { None = 0, RsaOaep = 1, RsaPkcs1V15 = 2, RsaPss = 3 }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum CryptographicPrivateKeyBlobType { Pkcs8RawPrivateKeyInfo = 0, Pkcs1RsaPrivateKey = 1, BCryptPrivateKey = 2, Capi1PrivateKey = 3, [contract(Windows.Foundation.UniversalApiContract, 1.0)] BCryptEccFullPrivateKey = 4 }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] enum CryptographicPublicKeyBlobType { X509SubjectPublicKeyInfo = 0, Pkcs1RsaPublicKey = 1, BCryptPublicKey = 2, Capi1PublicKey = 3, [contract(Windows.Foundation.UniversalApiContract, 1.0)] BCryptEccFullPublicKey = 4 }; [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricAlgorithmNames)] [uuid(CAF6FCE4-67C0-46AA-84F9-752E77449F9B)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricAlgorithmNames)] [uuid(F141C0D6-4BFF-4F23-BA66-6045B137D5DF)] interface IAsymmetricAlgorithmNamesStatics2 : IInspectable { [propget] HRESULT EcdsaSha256([out] [retval] HSTRING* value); [propget] HRESULT EcdsaSha384([out] [retval] HSTRING* value); [propget] HRESULT EcdsaSha512([out] [retval] HSTRING* value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider)] [uuid(E8D2FF37-6259-4E88-B7E0-94191FDE699E)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider)] [uuid(4E322A7E-7C4D-4997-AC4F-1B848B36306E)] interface IAsymmetricKeyAlgorithmProvider2 : IInspectable { HRESULT CreateKeyPairWithCurveName([in] HSTRING curveName, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key); HRESULT CreateKeyPairWithCurveParameters([range(0x00000000, 0x00010000)] [in] UINT32 __parametersSize, [in] [size_is(__parametersSize)] BYTE* parameters, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider)] [uuid(425BDE18-A7F3-47A6-A8D2-C48D6033A65C)] interface IAsymmetricKeyAlgorithmProviderStatics : IInspectable { HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.AsymmetricKeyAlgorithmProvider** provider); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.CryptographicEngine)] [uuid(9FEA0639-6FF7-4C85-A095-95EB31715EB9)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.CryptographicEngine)] [uuid(675948FE-DF9F-4191-92C7-6CE6F58420E0)] interface ICryptographicEngineStatics2 : IInspectable { HRESULT SignHashedData([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Storage.Streams.IBuffer** value); HRESULT VerifySignatureWithHashInput([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* signature, [out] [retval] boolean* isAuthenticated); HRESULT DecryptAsync([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [in] Windows.Storage.Streams.IBuffer* iv, [out] [retval] Windows.Foundation.IAsyncOperation** value); HRESULT SignAsync([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Foundation.IAsyncOperation** value); HRESULT SignHashedDataAsync([in] Windows.Security.Cryptography.Core.CryptographicKey* key, [in] Windows.Storage.Streams.IBuffer* data, [out] [retval] Windows.Foundation.IAsyncOperation** value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.CryptographicKey)] [uuid(ED2A3B70-8E7B-4009-8401-FFD1A62EEB27)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.EccCurveNames)] [uuid(B3FF930C-AEEB-409E-B7D4-9B95295AAECF)] interface IEccCurveNamesStatics : IInspectable { [propget] HRESULT BrainpoolP160r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP160t1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP192r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP192t1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP224r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP224t1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP256r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP256t1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP320r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP320t1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP384r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP384t1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP512r1([out] [retval] HSTRING* value); [propget] HRESULT BrainpoolP512t1([out] [retval] HSTRING* value); [propget] HRESULT Curve25519([out] [retval] HSTRING* value); [propget] HRESULT Ec192wapi([out] [retval] HSTRING* value); [propget] HRESULT NistP192([out] [retval] HSTRING* value); [propget] HRESULT NistP224([out] [retval] HSTRING* value); [propget] HRESULT NistP256([out] [retval] HSTRING* value); [propget] HRESULT NistP384([out] [retval] HSTRING* value); [propget] HRESULT NistP521([out] [retval] HSTRING* value); [propget] HRESULT NumsP256t1([out] [retval] HSTRING* value); [propget] HRESULT NumsP384t1([out] [retval] HSTRING* value); [propget] HRESULT NumsP512t1([out] [retval] HSTRING* value); [propget] HRESULT SecP160k1([out] [retval] HSTRING* value); [propget] HRESULT SecP160r1([out] [retval] HSTRING* value); [propget] HRESULT SecP160r2([out] [retval] HSTRING* value); [propget] HRESULT SecP192k1([out] [retval] HSTRING* value); [propget] HRESULT SecP192r1([out] [retval] HSTRING* value); [propget] HRESULT SecP224k1([out] [retval] HSTRING* value); [propget] HRESULT SecP224r1([out] [retval] HSTRING* value); [propget] HRESULT SecP256k1([out] [retval] HSTRING* value); [propget] HRESULT SecP256r1([out] [retval] HSTRING* value); [propget] HRESULT SecP384r1([out] [retval] HSTRING* value); [propget] HRESULT SecP521r1([out] [retval] HSTRING* value); [propget] HRESULT Wtls7([out] [retval] HSTRING* value); [propget] HRESULT Wtls9([out] [retval] HSTRING* value); [propget] HRESULT Wtls12([out] [retval] HSTRING* value); [propget] HRESULT X962P192v1([out] [retval] HSTRING* value); [propget] HRESULT X962P192v2([out] [retval] HSTRING* value); [propget] HRESULT X962P192v3([out] [retval] HSTRING* value); [propget] HRESULT X962P239v1([out] [retval] HSTRING* value); [propget] HRESULT X962P239v2([out] [retval] HSTRING* value); [propget] HRESULT X962P239v3([out] [retval] HSTRING* value); [propget] HRESULT X962P256v1([out] [retval] HSTRING* value); [propget] HRESULT AllEccCurveNames([out] [retval] Windows.Foundation.Collections.IVectorView** value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.EncryptedAndAuthenticatedData)] [uuid(6FA42FE7-1ECB-4B00-BEA5-60B83F862F17)] interface IEncryptedAndAuthenticatedData : IInspectable { [propget] HRESULT EncryptedData([out] [retval] Windows.Storage.Streams.IBuffer** value); [propget] HRESULT AuthenticationTag([out] [retval] Windows.Storage.Streams.IBuffer** value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.HashAlgorithmNames)] [uuid(6B5E0516-DE96-4F0A-8D57-DCC9DAE36C76)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.HashAlgorithmProvider)] [uuid(BE9B3080-B2C3-422B-BCE1-EC90EFB5D7B5)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.HashAlgorithmProvider)] [uuid(9FAC9741-5CC4-4336-AE38-6212B75A915A)] interface IHashAlgorithmProviderStatics : IInspectable { HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.HashAlgorithmProvider** provider); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.CryptographicHash)] [uuid(5904D1B6-AD31-4603-A3A4-B1BDA98E2562)] interface IHashComputation : IInspectable { HRESULT Append([in] Windows.Storage.Streams.IBuffer* data); HRESULT GetValueAndReset([out] [retval] Windows.Storage.Streams.IBuffer** value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmNames)] [uuid(7B6E363E-94D2-4739-A57B-022E0C3A402A)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmNames)] [uuid(57953FAB-6044-466F-97F4-337B7808384D)] interface IKeyDerivationAlgorithmNamesStatics2 : IInspectable { [propget] HRESULT CapiKdfMd5([out] [retval] HSTRING* value); [propget] HRESULT CapiKdfSha1([out] [retval] HSTRING* value); [propget] HRESULT CapiKdfSha256([out] [retval] HSTRING* value); [propget] HRESULT CapiKdfSha384([out] [retval] HSTRING* value); [propget] HRESULT CapiKdfSha512([out] [retval] HSTRING* value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider)] [uuid(E1FBA83B-4671-43B7-9158-763AAA98B6BF)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider)] [uuid(0A22097A-0A1C-443B-9418-B9498AEB1603)] interface IKeyDerivationAlgorithmProviderStatics : IInspectable { HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.KeyDerivationAlgorithmProvider** provider); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationParameters)] [uuid(7BF05967-047B-4A8C-964A-469FFD5522E2)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationParameters)] [uuid(CD4166D1-417E-4F4C-B666-C0D879F3F8E0)] interface IKeyDerivationParameters2 : IInspectable { [propget] HRESULT Capi1KdfTargetAlgorithm([out] [retval] Windows.Security.Cryptography.Core.Capi1KdfTargetAlgorithm* value); [propput] HRESULT Capi1KdfTargetAlgorithm([in] Windows.Security.Cryptography.Core.Capi1KdfTargetAlgorithm value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationParameters)] [uuid(EA961FBE-F37F-4146-9DFE-A456F1735F4B)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.KeyDerivationParameters)] [uuid(A5783DD5-58E3-4EFB-B283-A1653126E1BE)] interface IKeyDerivationParametersStatics2 : IInspectable { HRESULT BuildForCapi1Kdf([in] Windows.Security.Cryptography.Core.Capi1KdfTargetAlgorithm capi1KdfTargetAlgorithm, [out] [retval] Windows.Security.Cryptography.Core.KeyDerivationParameters** value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmNames)] [uuid(41412678-FB1E-43A4-895E-A9026E4390A3)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmProvider)] [uuid(4A3FC5C3-1CBD-41CE-A092-AA0BC5D2D2F5)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmProvider)] [uuid(6DA32A15-D931-42ED-8E7E-C301CAEE119C)] interface IMacAlgorithmProvider2 : IInspectable { HRESULT CreateHash([in] Windows.Storage.Streams.IBuffer* keyMaterial, [out] [retval] Windows.Security.Cryptography.Core.CryptographicHash** value); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.MacAlgorithmProvider)] [uuid(C9BDC147-CC77-4DF0-9E4E-B921E080644C)] interface IMacAlgorithmProviderStatics : IInspectable { HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.MacAlgorithmProvider** provider); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.PersistedKeyProvider)] [uuid(77274814-D9D4-4CF5-B668-E0457DF30894)] interface IPersistedKeyProviderStatics : IInspectable { HRESULT OpenKeyPairFromCertificateAsync([in] Windows.Security.Cryptography.Certificates.Certificate* certificate, [in] HSTRING hashAlgorithmName, [in] Windows.Security.Cryptography.Core.CryptographicPadding padding, [out] [retval] Windows.Foundation.IAsyncOperation** operation); HRESULT OpenPublicKeyFromCertificate([in] Windows.Security.Cryptography.Certificates.Certificate* certificate, [in] HSTRING hashAlgorithmName, [in] Windows.Security.Cryptography.Core.CryptographicPadding padding, [out] [retval] Windows.Security.Cryptography.Core.CryptographicKey** key); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.SymmetricAlgorithmNames)] [uuid(6870727B-C996-4EAE-84D7-79B2AEB73B9C)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider)] [uuid(3D7E4A33-3BD0-4902-8AC8-470D50D21376)] 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); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [exclusiveto(Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider)] [uuid(8D3B2326-1F37-491F-B60E-F5431B26B483)] interface ISymmetricKeyAlgorithmProviderStatics : IInspectable { HRESULT OpenAlgorithm([in] HSTRING algorithm, [out] [retval] Windows.Security.Cryptography.Core.SymmetricKeyAlgorithmProvider** provider); } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IAsymmetricAlgorithmNamesStatics, Windows.Foundation.UniversalApiContract, 1.0)] [static(Windows.Security.Cryptography.Core.IAsymmetricAlgorithmNamesStatics2, Windows.Foundation.UniversalApiContract, 1.0)] runtimeclass AsymmetricAlgorithmNames { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProviderStatics, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass AsymmetricKeyAlgorithmProvider { [default] interface Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProvider; [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Security.Cryptography.Core.IAsymmetricKeyAlgorithmProvider2; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.ICryptographicEngineStatics, Windows.Foundation.UniversalApiContract, 1.0)] [static(Windows.Security.Cryptography.Core.ICryptographicEngineStatics2, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass CryptographicEngine { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] runtimeclass CryptographicHash { [default] interface Windows.Security.Cryptography.Core.IHashComputation; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] runtimeclass CryptographicKey { [default] interface Windows.Security.Cryptography.Core.ICryptographicKey; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IEccCurveNamesStatics, Windows.Foundation.UniversalApiContract, 1.0)] runtimeclass EccCurveNames { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] runtimeclass EncryptedAndAuthenticatedData { [default] interface Windows.Security.Cryptography.Core.IEncryptedAndAuthenticatedData; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IHashAlgorithmNamesStatics, Windows.Foundation.UniversalApiContract, 1.0)] runtimeclass HashAlgorithmNames { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IHashAlgorithmProviderStatics, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass HashAlgorithmProvider { [default] interface Windows.Security.Cryptography.Core.IHashAlgorithmProvider; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmNamesStatics, Windows.Foundation.UniversalApiContract, 1.0)] [static(Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmNamesStatics2, Windows.Foundation.UniversalApiContract, 1.0)] runtimeclass KeyDerivationAlgorithmNames { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmProviderStatics, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass KeyDerivationAlgorithmProvider { [default] interface Windows.Security.Cryptography.Core.IKeyDerivationAlgorithmProvider; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IKeyDerivationParametersStatics, Windows.Foundation.UniversalApiContract, 1.0)] [static(Windows.Security.Cryptography.Core.IKeyDerivationParametersStatics2, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass KeyDerivationParameters { [default] interface Windows.Security.Cryptography.Core.IKeyDerivationParameters; [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Security.Cryptography.Core.IKeyDerivationParameters2; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IMacAlgorithmNamesStatics, Windows.Foundation.UniversalApiContract, 1.0)] runtimeclass MacAlgorithmNames { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IMacAlgorithmProviderStatics, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass MacAlgorithmProvider { [default] interface Windows.Security.Cryptography.Core.IMacAlgorithmProvider; [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Security.Cryptography.Core.IMacAlgorithmProvider2; } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.IPersistedKeyProviderStatics, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass PersistedKeyProvider { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.ISymmetricAlgorithmNamesStatics, Windows.Foundation.UniversalApiContract, 1.0)] runtimeclass SymmetricAlgorithmNames { } [contract(Windows.Foundation.UniversalApiContract, 1.0)] [marshaling_behavior(agile)] [static(Windows.Security.Cryptography.Core.ISymmetricKeyAlgorithmProviderStatics, Windows.Foundation.UniversalApiContract, 1.0)] [threading(both)] runtimeclass SymmetricKeyAlgorithmProvider { [default] interface Windows.Security.Cryptography.Core.ISymmetricKeyAlgorithmProvider; } } } } }