| /* | |
| * 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.Cryptography.Core { | |
| typedef enum CryptographicPublicKeyBlobType CryptographicPublicKeyBlobType; | |
| } | |
| namespace Windows.Security.Credentials { | |
| typedef enum KeyCredentialAttestationStatus KeyCredentialAttestationStatus; | |
| typedef enum KeyCredentialCreationOption KeyCredentialCreationOption; | |
| typedef enum KeyCredentialStatus KeyCredentialStatus; | |
| interface IKeyCredential; | |
| interface IKeyCredentialAttestationResult; | |
| interface IKeyCredentialManagerStatics; | |
| interface IKeyCredentialOperationResult; | |
| interface IKeyCredentialRetrievalResult; | |
| runtimeclass KeyCredential; | |
| runtimeclass KeyCredentialAttestationResult; | |
| runtimeclass KeyCredentialManager; | |
| runtimeclass KeyCredentialOperationResult; | |
| runtimeclass KeyCredentialRetrievalResult; | |
| declare { | |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Security.Credentials.KeyCredentialAttestationResult *>; | |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Security.Credentials.KeyCredentialOperationResult *>; | |
| interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Security.Credentials.KeyCredentialRetrievalResult *>; | |
| interface Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialAttestationResult *>; | |
| interface Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialOperationResult *>; | |
| interface Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialRetrievalResult *>; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0) | |
| ] | |
| enum KeyCredentialAttestationStatus | |
| { | |
| Success = 0, | |
| UnknownError = 1, | |
| NotSupported = 2, | |
| TemporaryFailure = 3, | |
| }; | |
| [ | |
| 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.KeyCredential), | |
| uuid(9585ef8d-457b-4847-b11a-fa960bbdb138) | |
| ] | |
| interface IKeyCredential : IInspectable | |
| { | |
| [propget] HRESULT Name([out, retval] HSTRING *value); | |
| [overload("RetrievePublicKey")] HRESULT RetrievePublicKeyWithDefaultBlobType([out, retval] Windows.Storage.Streams.IBuffer **value); | |
| [overload("RetrievePublicKey")] HRESULT RetrievePublicKeyWithBlobType([in] Windows.Security.Cryptography.Core.CryptographicPublicKeyBlobType blobType, [out, retval] Windows.Storage.Streams.IBuffer **value); | |
| HRESULT RequestSignAsync([in] Windows.Storage.Streams.IBuffer *data, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialOperationResult *> **value); | |
| HRESULT GetAttestationAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialAttestationResult *> **value); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Security.Credentials.KeyCredentialAttestationResult), | |
| uuid(78aab3a1-a3c1-4103-b6cc-472c44171cbb) | |
| ] | |
| interface IKeyCredentialAttestationResult : IInspectable | |
| { | |
| [propget] HRESULT CertificateChainBuffer([out, retval] Windows.Storage.Streams.IBuffer **value); | |
| [propget] HRESULT AttestationBuffer([out, retval] Windows.Storage.Streams.IBuffer **value); | |
| [propget] HRESULT Status([out, retval] Windows.Security.Credentials.KeyCredentialAttestationStatus *value); | |
| } | |
| [ | |
| 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<boolean> **value); | |
| HRESULT RenewAttestationAsync([out, retval] Windows.Foundation.IAsyncAction **operation); | |
| HRESULT RequestCreateAsync(HSTRING name, Windows.Security.Credentials.KeyCredentialCreationOption option, | |
| [out, retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialRetrievalResult *> **value); | |
| HRESULT OpenAsync(HSTRING name, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Security.Credentials.KeyCredentialRetrievalResult *> **value); | |
| HRESULT DeleteAsync(HSTRING name, [out, retval] Windows.Foundation.IAsyncAction **operation); | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| exclusiveto(Windows.Security.Credentials.KeyCredentialOperationResult), | |
| uuid(f53786c1-5261-4cdd-976d-cc909ac71620) | |
| ] | |
| interface IKeyCredentialOperationResult : IInspectable | |
| { | |
| [propget] HRESULT Result([out, retval] Windows.Storage.Streams.IBuffer **value); | |
| [propget] HRESULT Status([out, retval] Windows.Security.Credentials.KeyCredentialStatus *value); | |
| } | |
| [ | |
| 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) | |
| ] | |
| runtimeclass KeyCredentialAttestationResult | |
| { | |
| [default] interface Windows.Security.Credentials.IKeyCredentialAttestationResult; | |
| } | |
| [ | |
| 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 KeyCredentialOperationResult | |
| { | |
| [default] interface Windows.Security.Credentials.IKeyCredentialOperationResult; | |
| } | |
| [ | |
| contract(Windows.Foundation.UniversalApiContract, 1.0), | |
| marshaling_behavior(agile) | |
| ] | |
| runtimeclass KeyCredentialRetrievalResult | |
| { | |
| [default] interface Windows.Security.Credentials.IKeyCredentialRetrievalResult; | |
| } | |
| } |