From 80dc6df8fd9f5d604138338a97dde7c664f3723e Mon Sep 17 00:00:00 2001 From: Mohamad Al-Jaf Date: Sun, 13 Nov 2022 21:21:15 -0500 Subject: [PATCH] include: Add windows.security.credentials.idl file. --- include/Makefile.in | 1 + include/windows.security.credentials.idl | 125 +++++++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 include/windows.security.credentials.idl diff --git a/include/Makefile.in b/include/Makefile.in index 921ea4307cd..19dacb850ed 100644 --- a/include/Makefile.in +++ b/include/Makefile.in @@ -821,6 +821,7 @@ SOURCES = \ windows.media.idl \ windows.media.speechrecognition.idl \ windows.media.speechsynthesis.idl \ + windows.security.credentials.idl \ windows.security.cryptography.idl \ windows.storage.streams.idl \ windows.system.idl \ diff --git a/include/windows.security.credentials.idl b/include/windows.security.credentials.idl new file mode 100644 index 00000000000..ca682baaf0e --- /dev/null +++ b/include/windows.security.credentials.idl @@ -0,0 +1,125 @@ +/* + * Copyright (C) 2022 Mohamad Al-Jaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#ifdef __WIDL__ +#pragma winrt ns_prefix +#endif + +import "inspectable.idl"; +import "asyncinfo.idl"; +import "eventtoken.idl"; +import "windowscontracts.idl"; +import "windows.foundation.idl"; +/* import "windows.security.cryptography.core.idl"; */ +import "windows.storage.streams.idl"; +import "windows.system.idl"; + +namespace Windows.Security.Credentials { + typedef enum KeyCredentialCreationOption KeyCredentialCreationOption; + typedef enum KeyCredentialStatus KeyCredentialStatus; + + interface IKeyCredential; + interface IKeyCredentialManagerStatics; + interface IKeyCredentialRetrievalResult; + + runtimeclass KeyCredential; + runtimeclass KeyCredentialManager; + runtimeclass KeyCredentialRetrievalResult; + + declare { + interface Windows.Foundation.AsyncOperationCompletedHandler; + interface Windows.Foundation.IAsyncOperation; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum KeyCredentialCreationOption + { + ReplaceExisting = 0, + FailIfExists = 1, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0) + ] + enum KeyCredentialStatus + { + Success = 0, + UnknownError = 1, + NotFound = 2, + UserCanceled = 3, + UserPrefersPassword = 4, + CredentialAlreadyExists = 5, + SecurityDeviceLocked = 6, + }; + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Security.Credentials.KeyCredentialManager), + uuid(6aac468b-0ef1-4ce0-8290-4106da6a63b5) + ] + interface IKeyCredentialManagerStatics : IInspectable + { + HRESULT IsSupportedAsync([out, retval] Windows.Foundation.IAsyncOperation **value); + HRESULT RenewAttestationAsync([out, retval] Windows.Foundation.IAsyncAction **operation); + HRESULT RequestCreateAsync(HSTRING name, Windows.Security.Credentials.KeyCredentialCreationOption option, + [out, retval] Windows.Foundation.IAsyncOperation **value); + HRESULT OpenAsync(HSTRING name, [out, retval] Windows.Foundation.IAsyncOperation **value); + HRESULT DeleteAsync(HSTRING name, [out, retval] Windows.Foundation.IAsyncAction **operation); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + exclusiveto(Windows.Security.Credentials.KeyCredentialRetrievalResult), + uuid(58cd7703-8d87-4249-9b58-f6598cc9644e) + ] + interface IKeyCredentialRetrievalResult : IInspectable + { + [propget] HRESULT Credential([out, retval] Windows.Security.Credentials.KeyCredential **value); + [propget] HRESULT Status([out, retval] Windows.Security.Credentials.KeyCredentialStatus *value); + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass KeyCredential + { + [default] interface Windows.Security.Credentials.IKeyCredential; + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile), + static(Windows.Security.Credentials.IKeyCredentialManagerStatics, Windows.Foundation.UniversalApiContract, 1.0), + threading(both) + ] + runtimeclass KeyCredentialManager + { + } + + [ + contract(Windows.Foundation.UniversalApiContract, 1.0), + marshaling_behavior(agile) + ] + runtimeclass KeyCredentialRetrievalResult + { + [default] interface Windows.Security.Credentials.IKeyCredentialRetrievalResult; + } +}