// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Security_Cryptography_Core_H #define WINRT_Windows_Security_Cryptography_Core_H #include "winrt/base.h" static_assert(winrt::check_version(CPPWINRT_VERSION, "2.0.250303.1"), "Mismatched C++/WinRT headers."); #define CPPWINRT_VERSION "2.0.250303.1" #include "winrt/Windows.Security.Cryptography.h" #include "winrt/impl/Windows.Foundation.2.h" #include "winrt/impl/Windows.Foundation.Collections.2.h" #include "winrt/impl/Windows.Security.Cryptography.Certificates.2.h" #include "winrt/impl/Windows.Storage.Streams.2.h" #include "winrt/impl/Windows.Security.Cryptography.Core.2.h" namespace winrt::impl { template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaPkcs1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaPkcs1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaPkcs1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaOaepSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaOaepSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaOaepSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaOaepSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaOaepSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaOaepSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaOaepSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaOaepSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaOaepSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaOaepSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaOaepSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaOaepSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::EcdsaP256Sha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EcdsaP256Sha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EcdsaP256Sha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::EcdsaP384Sha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EcdsaP384Sha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EcdsaP384Sha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::EcdsaP521Sha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EcdsaP521Sha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EcdsaP521Sha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::DsaSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DsaSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DsaSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::DsaSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DsaSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DsaSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPkcs1Sha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPkcs1Sha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPkcs1Sha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPkcs1Sha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPkcs1Sha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPssSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPssSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPssSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPssSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPssSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPssSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPssSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPssSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPssSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics::RsaSignPssSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_RsaSignPssSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_RsaSignPssSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics2::EcdsaSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EcdsaSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EcdsaSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics2::EcdsaSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EcdsaSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EcdsaSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricAlgorithmNamesStatics2::EcdsaSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EcdsaSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EcdsaSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider::AlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider::CreateKeyPair(uint32_t keySize) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateKeyPair(keySize, &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateKeyPair(keySize, &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider::ImportKeyPair(winrt::Windows::Storage::Streams::IBuffer const& keyBlob) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportDefaultPrivateKeyBlob(*(void**)(&keyBlob), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportDefaultPrivateKeyBlob(*(void**)(&keyBlob), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider::ImportKeyPair(winrt::Windows::Storage::Streams::IBuffer const& keyBlob, winrt::Windows::Security::Cryptography::Core::CryptographicPrivateKeyBlobType const& BlobType) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportKeyPairWithBlobType(*(void**)(&keyBlob), static_cast(BlobType), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportKeyPairWithBlobType(*(void**)(&keyBlob), static_cast(BlobType), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider::ImportPublicKey(winrt::Windows::Storage::Streams::IBuffer const& keyBlob) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportDefaultPublicKeyBlob(*(void**)(&keyBlob), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportDefaultPublicKeyBlob(*(void**)(&keyBlob), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider::ImportPublicKey(winrt::Windows::Storage::Streams::IBuffer const& keyBlob, winrt::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType const& BlobType) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ImportPublicKeyWithBlobType(*(void**)(&keyBlob), static_cast(BlobType), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ImportPublicKeyWithBlobType(*(void**)(&keyBlob), static_cast(BlobType), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider2::CreateKeyPairWithCurveName(param::hstring const& curveName) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateKeyPairWithCurveName(*(void**)(&curveName), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateKeyPairWithCurveName(*(void**)(&curveName), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProvider2::CreateKeyPairWithCurveParameters(array_view parameters) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateKeyPairWithCurveParameters(parameters.size(), get_abi(parameters), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateKeyPairWithCurveParameters(parameters.size(), get_abi(parameters), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IAsymmetricKeyAlgorithmProviderStatics::OpenAlgorithm(param::hstring const& algorithm) const { void* provider{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } return winrt::Windows::Security::Cryptography::Core::AsymmetricKeyAlgorithmProvider{ provider, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::Encrypt(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& iv) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Encrypt(*(void**)(&key), *(void**)(&data), *(void**)(&iv), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Encrypt(*(void**)(&key), *(void**)(&data), *(void**)(&iv), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::Decrypt(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& iv) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Decrypt(*(void**)(&key), *(void**)(&data), *(void**)(&iv), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Decrypt(*(void**)(&key), *(void**)(&data), *(void**)(&iv), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::EncryptAndAuthenticate(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& nonce, winrt::Windows::Storage::Streams::IBuffer const& authenticatedData) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->EncryptAndAuthenticate(*(void**)(&key), *(void**)(&data), *(void**)(&nonce), *(void**)(&authenticatedData), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->EncryptAndAuthenticate(*(void**)(&key), *(void**)(&data), *(void**)(&nonce), *(void**)(&authenticatedData), &value)); } return winrt::Windows::Security::Cryptography::Core::EncryptedAndAuthenticatedData{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::DecryptAndAuthenticate(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& nonce, winrt::Windows::Storage::Streams::IBuffer const& authenticationTag, winrt::Windows::Storage::Streams::IBuffer const& authenticatedData) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->DecryptAndAuthenticate(*(void**)(&key), *(void**)(&data), *(void**)(&nonce), *(void**)(&authenticationTag), *(void**)(&authenticatedData), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->DecryptAndAuthenticate(*(void**)(&key), *(void**)(&data), *(void**)(&nonce), *(void**)(&authenticationTag), *(void**)(&authenticatedData), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::Sign(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Sign(*(void**)(&key), *(void**)(&data), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Sign(*(void**)(&key), *(void**)(&data), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::VerifySignature(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& signature) const { bool isAuthenticated{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->VerifySignature(*(void**)(&key), *(void**)(&data), *(void**)(&signature), &isAuthenticated)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->VerifySignature(*(void**)(&key), *(void**)(&data), *(void**)(&signature), &isAuthenticated)); } return isAuthenticated; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics::DeriveKeyMaterial(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Security::Cryptography::Core::KeyDerivationParameters const& parameters, uint32_t desiredKeySize) const { void* keyMaterial{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->DeriveKeyMaterial(*(void**)(&key), *(void**)(¶meters), desiredKeySize, &keyMaterial)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->DeriveKeyMaterial(*(void**)(&key), *(void**)(¶meters), desiredKeySize, &keyMaterial)); } return winrt::Windows::Storage::Streams::IBuffer{ keyMaterial, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics2::SignHashedData(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->SignHashedData(*(void**)(&key), *(void**)(&data), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->SignHashedData(*(void**)(&key), *(void**)(&data), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics2::VerifySignatureWithHashInput(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& signature) const { bool isAuthenticated{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->VerifySignatureWithHashInput(*(void**)(&key), *(void**)(&data), *(void**)(&signature), &isAuthenticated)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->VerifySignatureWithHashInput(*(void**)(&key), *(void**)(&data), *(void**)(&signature), &isAuthenticated)); } return isAuthenticated; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics2::DecryptAsync(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& iv) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->DecryptAsync(*(void**)(&key), *(void**)(&data), *(void**)(&iv), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->DecryptAsync(*(void**)(&key), *(void**)(&data), *(void**)(&iv), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics2::SignAsync(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->SignAsync(*(void**)(&key), *(void**)(&data), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->SignAsync(*(void**)(&key), *(void**)(&data), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicEngineStatics2::SignHashedDataAsync(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->SignHashedDataAsync(*(void**)(&key), *(void**)(&data), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->SignHashedDataAsync(*(void**)(&key), *(void**)(&data), &value)); } return winrt::Windows::Foundation::IAsyncOperation{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicKey::KeySize() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KeySize(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KeySize(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicKey::Export() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ExportDefaultPrivateKeyBlobType(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ExportDefaultPrivateKeyBlobType(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicKey::Export(winrt::Windows::Security::Cryptography::Core::CryptographicPrivateKeyBlobType const& BlobType) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ExportPrivateKeyWithBlobType(static_cast(BlobType), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ExportPrivateKeyWithBlobType(static_cast(BlobType), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicKey::ExportPublicKey() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ExportDefaultPublicKeyBlobType(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ExportDefaultPublicKeyBlobType(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ICryptographicKey::ExportPublicKey(winrt::Windows::Security::Cryptography::Core::CryptographicPublicKeyBlobType const& BlobType) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->ExportPublicKeyWithBlobType(static_cast(BlobType), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->ExportPublicKeyWithBlobType(static_cast(BlobType), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP160r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP160r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP160r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP160t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP160t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP160t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP192r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP192r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP192r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP192t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP192t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP192t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP224r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP224r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP224r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP224t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP224t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP224t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP256r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP256r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP256r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP256t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP256t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP256t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP320r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP320r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP320r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP320t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP320t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP320t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP384r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP384r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP384r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP384t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP384t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP384t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP512r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP512r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP512r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::BrainpoolP512t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BrainpoolP512t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BrainpoolP512t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::Curve25519() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Curve25519(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Curve25519(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::Ec192wapi() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Ec192wapi(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Ec192wapi(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NistP192() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NistP192(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NistP192(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NistP224() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NistP224(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NistP224(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NistP256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NistP256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NistP256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NistP384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NistP384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NistP384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NistP521() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NistP521(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NistP521(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NumsP256t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NumsP256t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NumsP256t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NumsP384t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NumsP384t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NumsP384t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::NumsP512t1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_NumsP512t1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_NumsP512t1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP160k1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP160k1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP160k1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP160r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP160r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP160r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP160r2() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP160r2(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP160r2(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP192k1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP192k1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP192k1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP192r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP192r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP192r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP224k1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP224k1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP224k1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP224r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP224r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP224r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP256k1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP256k1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP256k1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP256r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP256r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP256r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP384r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP384r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP384r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::SecP521r1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_SecP521r1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_SecP521r1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::Wtls7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Wtls7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Wtls7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::Wtls9() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Wtls9(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Wtls9(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::Wtls12() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Wtls12(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Wtls12(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P192v1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P192v1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P192v1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P192v2() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P192v2(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P192v2(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P192v3() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P192v3(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P192v3(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P239v1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P239v1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P239v1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P239v2() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P239v2(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P239v2(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P239v3() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P239v3(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P239v3(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::X962P256v1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_X962P256v1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_X962P256v1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEccCurveNamesStatics::AllEccCurveNames() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AllEccCurveNames(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AllEccCurveNames(&value)); } return winrt::Windows::Foundation::Collections::IVectorView{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEncryptedAndAuthenticatedData::EncryptedData() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_EncryptedData(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_EncryptedData(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IEncryptedAndAuthenticatedData::AuthenticationTag() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AuthenticationTag(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AuthenticationTag(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmNamesStatics::Md5() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Md5(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Md5(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmNamesStatics::Sha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmNamesStatics::Sha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmNamesStatics::Sha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmNamesStatics::Sha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmProvider::AlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmProvider::HashLength() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HashLength(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HashLength(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmProvider::HashData(winrt::Windows::Storage::Streams::IBuffer const& data) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->HashData(*(void**)(&data), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->HashData(*(void**)(&data), &value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmProvider::CreateHash() const { void* Value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateHash(&Value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateHash(&Value)); } return winrt::Windows::Security::Cryptography::Core::CryptographicHash{ Value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashAlgorithmProviderStatics::OpenAlgorithm(param::hstring const& algorithm) const { void* provider{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } return winrt::Windows::Security::Cryptography::Core::HashAlgorithmProvider{ provider, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IHashComputation::Append(winrt::Windows::Storage::Streams::IBuffer const& data) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->Append(*(void**)(&data))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->Append(*(void**)(&data))); } } template auto consume_Windows_Security_Cryptography_Core_IHashComputation::GetValueAndReset() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->GetValueAndReset(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->GetValueAndReset(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Pbkdf2Md5() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pbkdf2Md5(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pbkdf2Md5(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Pbkdf2Sha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pbkdf2Sha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pbkdf2Sha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Pbkdf2Sha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pbkdf2Sha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pbkdf2Sha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Pbkdf2Sha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pbkdf2Sha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pbkdf2Sha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Pbkdf2Sha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Pbkdf2Sha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Pbkdf2Sha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp800108CtrHmacMd5() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacMd5(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacMd5(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp800108CtrHmacSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp800108CtrHmacSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp800108CtrHmacSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp800108CtrHmacSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp800108CtrHmacSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp80056aConcatMd5() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp80056aConcatMd5(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp80056aConcatMd5(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp80056aConcatSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp80056aConcatSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp80056aConcatSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics::Sp80056aConcatSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Sp80056aConcatSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics2::CapiKdfMd5() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CapiKdfMd5(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CapiKdfMd5(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics2::CapiKdfSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CapiKdfSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CapiKdfSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics2::CapiKdfSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CapiKdfSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CapiKdfSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics2::CapiKdfSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CapiKdfSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CapiKdfSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmNamesStatics2::CapiKdfSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_CapiKdfSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_CapiKdfSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmProvider::AlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmProvider::CreateKey(winrt::Windows::Storage::Streams::IBuffer const& keyMaterial) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateKey(*(void**)(&keyMaterial), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateKey(*(void**)(&keyMaterial), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationAlgorithmProviderStatics::OpenAlgorithm(param::hstring const& algorithm) const { void* provider{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } return winrt::Windows::Security::Cryptography::Core::KeyDerivationAlgorithmProvider{ provider, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParameters::KdfGenericBinary() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_KdfGenericBinary(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_KdfGenericBinary(&value)); } return winrt::Windows::Storage::Streams::IBuffer{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParameters::KdfGenericBinary(winrt::Windows::Storage::Streams::IBuffer const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_KdfGenericBinary(*(void**)(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_KdfGenericBinary(*(void**)(&value))); } } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParameters::IterationCount() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_IterationCount(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_IterationCount(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParameters2::Capi1KdfTargetAlgorithm() const { winrt::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Capi1KdfTargetAlgorithm(reinterpret_cast(&value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Capi1KdfTargetAlgorithm(reinterpret_cast(&value))); } return value; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParameters2::Capi1KdfTargetAlgorithm(winrt::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm const& value) const { if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->put_Capi1KdfTargetAlgorithm(static_cast(value))); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->put_Capi1KdfTargetAlgorithm(static_cast(value))); } } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParametersStatics::BuildForPbkdf2(winrt::Windows::Storage::Streams::IBuffer const& pbkdf2Salt, uint32_t iterationCount) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->BuildForPbkdf2(*(void**)(&pbkdf2Salt), iterationCount, &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->BuildForPbkdf2(*(void**)(&pbkdf2Salt), iterationCount, &value)); } return winrt::Windows::Security::Cryptography::Core::KeyDerivationParameters{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParametersStatics::BuildForSP800108(winrt::Windows::Storage::Streams::IBuffer const& label, winrt::Windows::Storage::Streams::IBuffer const& context) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->BuildForSP800108(*(void**)(&label), *(void**)(&context), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->BuildForSP800108(*(void**)(&label), *(void**)(&context), &value)); } return winrt::Windows::Security::Cryptography::Core::KeyDerivationParameters{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParametersStatics::BuildForSP80056a(winrt::Windows::Storage::Streams::IBuffer const& algorithmId, winrt::Windows::Storage::Streams::IBuffer const& partyUInfo, winrt::Windows::Storage::Streams::IBuffer const& partyVInfo, winrt::Windows::Storage::Streams::IBuffer const& suppPubInfo, winrt::Windows::Storage::Streams::IBuffer const& suppPrivInfo) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->BuildForSP80056a(*(void**)(&algorithmId), *(void**)(&partyUInfo), *(void**)(&partyVInfo), *(void**)(&suppPubInfo), *(void**)(&suppPrivInfo), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->BuildForSP80056a(*(void**)(&algorithmId), *(void**)(&partyUInfo), *(void**)(&partyVInfo), *(void**)(&suppPubInfo), *(void**)(&suppPrivInfo), &value)); } return winrt::Windows::Security::Cryptography::Core::KeyDerivationParameters{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IKeyDerivationParametersStatics2::BuildForCapi1Kdf(winrt::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm const& capi1KdfTargetAlgorithm) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->BuildForCapi1Kdf(static_cast(capi1KdfTargetAlgorithm), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->BuildForCapi1Kdf(static_cast(capi1KdfTargetAlgorithm), &value)); } return winrt::Windows::Security::Cryptography::Core::KeyDerivationParameters{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics::HmacMd5() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HmacMd5(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HmacMd5(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics::HmacSha1() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HmacSha1(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HmacSha1(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics::HmacSha256() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HmacSha256(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HmacSha256(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics::HmacSha384() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HmacSha384(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HmacSha384(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics::HmacSha512() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_HmacSha512(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_HmacSha512(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmNamesStatics::AesCmac() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesCmac(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesCmac(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmProvider::AlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmProvider::MacLength() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_MacLength(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_MacLength(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmProvider::CreateKey(winrt::Windows::Storage::Streams::IBuffer const& keyMaterial) const { void* macKey{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateKey(*(void**)(&keyMaterial), &macKey)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateKey(*(void**)(&keyMaterial), &macKey)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ macKey, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmProvider2::CreateHash(winrt::Windows::Storage::Streams::IBuffer const& keyMaterial) const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateHash(*(void**)(&keyMaterial), &value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateHash(*(void**)(&keyMaterial), &value)); } return winrt::Windows::Security::Cryptography::Core::CryptographicHash{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IMacAlgorithmProviderStatics::OpenAlgorithm(param::hstring const& algorithm) const { void* provider{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } return winrt::Windows::Security::Cryptography::Core::MacAlgorithmProvider{ provider, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IPersistedKeyProviderStatics::OpenKeyPairFromCertificateAsync(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate, param::hstring const& hashAlgorithmName, winrt::Windows::Security::Cryptography::Core::CryptographicPadding const& padding) const { void* operation{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenKeyPairFromCertificateAsync(*(void**)(&certificate), *(void**)(&hashAlgorithmName), static_cast(padding), &operation)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenKeyPairFromCertificateAsync(*(void**)(&certificate), *(void**)(&hashAlgorithmName), static_cast(padding), &operation)); } return winrt::Windows::Foundation::IAsyncOperation{ operation, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_IPersistedKeyProviderStatics::OpenPublicKeyFromCertificate(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate, param::hstring const& hashAlgorithmName, winrt::Windows::Security::Cryptography::Core::CryptographicPadding const& padding) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenPublicKeyFromCertificate(*(void**)(&certificate), *(void**)(&hashAlgorithmName), static_cast(padding), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenPublicKeyFromCertificate(*(void**)(&certificate), *(void**)(&hashAlgorithmName), static_cast(padding), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::DesCbc() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DesCbc(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DesCbc(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::DesEcb() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DesEcb(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DesEcb(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::TripleDesCbc() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TripleDesCbc(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TripleDesCbc(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::TripleDesEcb() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TripleDesEcb(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TripleDesEcb(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::Rc2Cbc() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rc2Cbc(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rc2Cbc(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::Rc2Ecb() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rc2Ecb(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rc2Ecb(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::AesCbc() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesCbc(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesCbc(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::AesEcb() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesEcb(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesEcb(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::AesGcm() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesGcm(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesGcm(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::AesCcm() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesCcm(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesCcm(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::AesCbcPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesCbcPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesCbcPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::AesEcbPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AesEcbPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AesEcbPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::DesCbcPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DesCbcPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DesCbcPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::DesEcbPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_DesEcbPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_DesEcbPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::TripleDesCbcPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TripleDesCbcPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TripleDesCbcPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::TripleDesEcbPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_TripleDesEcbPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_TripleDesEcbPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::Rc2CbcPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rc2CbcPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rc2CbcPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::Rc2EcbPkcs7() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rc2EcbPkcs7(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rc2EcbPkcs7(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricAlgorithmNamesStatics::Rc4() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_Rc4(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_Rc4(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricKeyAlgorithmProvider::AlgorithmName() const { void* value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_AlgorithmName(&value)); } return hstring{ value, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricKeyAlgorithmProvider::BlockLength() const { uint32_t value{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->get_BlockLength(&value)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->get_BlockLength(&value)); } return value; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricKeyAlgorithmProvider::CreateSymmetricKey(winrt::Windows::Storage::Streams::IBuffer const& keyMaterial) const { void* key{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->CreateSymmetricKey(*(void**)(&keyMaterial), &key)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->CreateSymmetricKey(*(void**)(&keyMaterial), &key)); } return winrt::Windows::Security::Cryptography::Core::CryptographicKey{ key, take_ownership_from_abi }; } template auto consume_Windows_Security_Cryptography_Core_ISymmetricKeyAlgorithmProviderStatics::OpenAlgorithm(param::hstring const& algorithm) const { void* provider{}; if constexpr (!std::is_same_v) { winrt::hresult _winrt_cast_result_code; auto const _winrt_casted_result = impl::try_as_with_reason(static_cast(this), _winrt_cast_result_code); check_hresult(_winrt_cast_result_code); auto const _winrt_abi_type = *(abi_t**)&_winrt_casted_result; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } else { auto const _winrt_abi_type = *(abi_t**)this; check_hresult(_winrt_abi_type->OpenAlgorithm(*(void**)(&algorithm), &provider)); } return winrt::Windows::Security::Cryptography::Core::SymmetricKeyAlgorithmProvider{ provider, take_ownership_from_abi }; } #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_RsaPkcs1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaPkcs1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaOaepSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaOaepSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaOaepSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaOaepSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaOaepSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaOaepSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaOaepSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaOaepSha512()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EcdsaP256Sha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EcdsaP256Sha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EcdsaP384Sha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EcdsaP384Sha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EcdsaP521Sha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EcdsaP521Sha512()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DsaSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DsaSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DsaSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DsaSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPkcs1Sha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPkcs1Sha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPkcs1Sha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPkcs1Sha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPkcs1Sha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPkcs1Sha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPkcs1Sha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPkcs1Sha512()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPssSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPssSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPssSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPssSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPssSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPssSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_RsaSignPssSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().RsaSignPssSha512()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EcdsaSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EcdsaSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EcdsaSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EcdsaSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_EcdsaSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EcdsaSha512()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_AlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateKeyPair(uint32_t keySize, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().CreateKeyPair(keySize)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportDefaultPrivateKeyBlob(void* keyBlob, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().ImportKeyPair(*reinterpret_cast(&keyBlob))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportKeyPairWithBlobType(void* keyBlob, int32_t BlobType, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().ImportKeyPair(*reinterpret_cast(&keyBlob), *reinterpret_cast(&BlobType))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportDefaultPublicKeyBlob(void* keyBlob, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().ImportPublicKey(*reinterpret_cast(&keyBlob))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ImportPublicKeyWithBlobType(void* keyBlob, int32_t BlobType, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().ImportPublicKey(*reinterpret_cast(&keyBlob), *reinterpret_cast(&BlobType))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateKeyPairWithCurveName(void* curveName, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().CreateKeyPairWithCurveName(*reinterpret_cast(&curveName))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateKeyPairWithCurveParameters(uint32_t __parametersSize, uint8_t* parameters, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().CreateKeyPairWithCurveParameters(array_view(reinterpret_cast(parameters), reinterpret_cast(parameters) + __parametersSize))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall OpenAlgorithm(void* algorithm, void** provider) noexcept final try { clear_abi(provider); typename D::abi_guard guard(this->shim()); *provider = detach_from(this->shim().OpenAlgorithm(*reinterpret_cast(&algorithm))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Encrypt(void* key, void* data, void* iv, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Encrypt(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&iv))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Decrypt(void* key, void* data, void* iv, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Decrypt(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&iv))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall EncryptAndAuthenticate(void* key, void* data, void* nonce, void* authenticatedData, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EncryptAndAuthenticate(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&nonce), *reinterpret_cast(&authenticatedData))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall DecryptAndAuthenticate(void* key, void* data, void* nonce, void* authenticationTag, void* authenticatedData, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DecryptAndAuthenticate(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&nonce), *reinterpret_cast(&authenticationTag), *reinterpret_cast(&authenticatedData))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall Sign(void* key, void* data, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sign(*reinterpret_cast(&key), *reinterpret_cast(&data))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall VerifySignature(void* key, void* data, void* signature, bool* isAuthenticated) noexcept final try { typename D::abi_guard guard(this->shim()); *isAuthenticated = detach_from(this->shim().VerifySignature(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&signature))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall DeriveKeyMaterial(void* key, void* parameters, uint32_t desiredKeySize, void** keyMaterial) noexcept final try { clear_abi(keyMaterial); typename D::abi_guard guard(this->shim()); *keyMaterial = detach_from(this->shim().DeriveKeyMaterial(*reinterpret_cast(&key), *reinterpret_cast(¶meters), desiredKeySize)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall SignHashedData(void* key, void* data, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SignHashedData(*reinterpret_cast(&key), *reinterpret_cast(&data))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall VerifySignatureWithHashInput(void* key, void* data, void* signature, bool* isAuthenticated) noexcept final try { typename D::abi_guard guard(this->shim()); *isAuthenticated = detach_from(this->shim().VerifySignatureWithHashInput(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&signature))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall DecryptAsync(void* key, void* data, void* iv, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().DecryptAsync(*reinterpret_cast(&key), *reinterpret_cast(&data), *reinterpret_cast(&iv))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall SignAsync(void* key, void* data, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().SignAsync(*reinterpret_cast(&key), *reinterpret_cast(&data))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall SignHashedDataAsync(void* key, void* data, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().SignHashedDataAsync(*reinterpret_cast(&key), *reinterpret_cast(&data))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_KeySize(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KeySize()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ExportDefaultPrivateKeyBlobType(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Export()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ExportPrivateKeyWithBlobType(int32_t BlobType, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Export(*reinterpret_cast(&BlobType))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ExportDefaultPublicKeyBlobType(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ExportPublicKey()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall ExportPublicKeyWithBlobType(int32_t BlobType, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().ExportPublicKey(*reinterpret_cast(&BlobType))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_BrainpoolP160r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP160r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP160t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP160t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP192r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP192r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP192t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP192t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP224r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP224r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP224t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP224t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP256r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP256r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP256t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP256t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP320r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP320r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP320t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP320t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP384r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP384r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP384t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP384t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP512r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP512r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BrainpoolP512t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BrainpoolP512t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Curve25519(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Curve25519()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Ec192wapi(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Ec192wapi()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NistP192(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NistP192()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NistP224(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NistP224()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NistP256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NistP256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NistP384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NistP384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NistP521(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NistP521()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NumsP256t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NumsP256t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NumsP384t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NumsP384t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_NumsP512t1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().NumsP512t1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP160k1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP160k1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP160r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP160r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP160r2(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP160r2()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP192k1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP192k1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP192r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP192r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP224k1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP224k1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP224r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP224r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP256k1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP256k1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP256r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP256r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP384r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP384r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_SecP521r1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().SecP521r1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Wtls7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Wtls7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Wtls9(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Wtls9()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Wtls12(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Wtls12()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P192v1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P192v1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P192v2(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P192v2()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P192v3(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P192v3()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P239v1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P239v1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P239v2(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P239v2()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P239v3(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P239v3()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_X962P256v1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().X962P256v1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AllEccCurveNames(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from>(this->shim().AllEccCurveNames()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_EncryptedData(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().EncryptedData()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AuthenticationTag(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AuthenticationTag()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Md5(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Md5()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sha512()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_AlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HashLength(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HashLength()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall HashData(void* data, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HashData(*reinterpret_cast(&data))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateHash(void** Value) noexcept final try { clear_abi(Value); typename D::abi_guard guard(this->shim()); *Value = detach_from(this->shim().CreateHash()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall OpenAlgorithm(void* algorithm, void** provider) noexcept final try { clear_abi(provider); typename D::abi_guard guard(this->shim()); *provider = detach_from(this->shim().OpenAlgorithm(*reinterpret_cast(&algorithm))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall Append(void* data) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Append(*reinterpret_cast(&data)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall GetValueAndReset(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().GetValueAndReset()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Pbkdf2Md5(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pbkdf2Md5()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Pbkdf2Sha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pbkdf2Sha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Pbkdf2Sha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pbkdf2Sha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Pbkdf2Sha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pbkdf2Sha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Pbkdf2Sha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Pbkdf2Sha512()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp800108CtrHmacMd5(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp800108CtrHmacMd5()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp800108CtrHmacSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp800108CtrHmacSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp800108CtrHmacSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp800108CtrHmacSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp800108CtrHmacSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp800108CtrHmacSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp800108CtrHmacSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp800108CtrHmacSha512()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp80056aConcatMd5(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp80056aConcatMd5()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp80056aConcatSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp80056aConcatSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp80056aConcatSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp80056aConcatSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp80056aConcatSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp80056aConcatSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Sp80056aConcatSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Sp80056aConcatSha512()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_CapiKdfMd5(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CapiKdfMd5()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CapiKdfSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CapiKdfSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CapiKdfSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CapiKdfSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CapiKdfSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CapiKdfSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_CapiKdfSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CapiKdfSha512()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_AlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateKey(void* keyMaterial, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().CreateKey(*reinterpret_cast(&keyMaterial))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall OpenAlgorithm(void* algorithm, void** provider) noexcept final try { clear_abi(provider); typename D::abi_guard guard(this->shim()); *provider = detach_from(this->shim().OpenAlgorithm(*reinterpret_cast(&algorithm))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_KdfGenericBinary(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().KdfGenericBinary()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_KdfGenericBinary(void* value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().KdfGenericBinary(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_IterationCount(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().IterationCount()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_Capi1KdfTargetAlgorithm(int32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Capi1KdfTargetAlgorithm()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall put_Capi1KdfTargetAlgorithm(int32_t value) noexcept final try { typename D::abi_guard guard(this->shim()); this->shim().Capi1KdfTargetAlgorithm(*reinterpret_cast(&value)); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall BuildForPbkdf2(void* pbkdf2Salt, uint32_t iterationCount, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BuildForPbkdf2(*reinterpret_cast(&pbkdf2Salt), iterationCount)); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall BuildForSP800108(void* label, void* context, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BuildForSP800108(*reinterpret_cast(&label), *reinterpret_cast(&context))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall BuildForSP80056a(void* algorithmId, void* partyUInfo, void* partyVInfo, void* suppPubInfo, void* suppPrivInfo, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BuildForSP80056a(*reinterpret_cast(&algorithmId), *reinterpret_cast(&partyUInfo), *reinterpret_cast(&partyVInfo), *reinterpret_cast(&suppPubInfo), *reinterpret_cast(&suppPrivInfo))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall BuildForCapi1Kdf(int32_t capi1KdfTargetAlgorithm, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BuildForCapi1Kdf(*reinterpret_cast(&capi1KdfTargetAlgorithm))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_HmacMd5(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HmacMd5()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HmacSha1(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HmacSha1()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HmacSha256(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HmacSha256()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HmacSha384(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HmacSha384()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_HmacSha512(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().HmacSha512()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesCmac(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesCmac()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_AlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_MacLength(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().MacLength()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateKey(void* keyMaterial, void** macKey) noexcept final try { clear_abi(macKey); typename D::abi_guard guard(this->shim()); *macKey = detach_from(this->shim().CreateKey(*reinterpret_cast(&keyMaterial))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall CreateHash(void* keyMaterial, void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().CreateHash(*reinterpret_cast(&keyMaterial))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall OpenAlgorithm(void* algorithm, void** provider) noexcept final try { clear_abi(provider); typename D::abi_guard guard(this->shim()); *provider = detach_from(this->shim().OpenAlgorithm(*reinterpret_cast(&algorithm))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall OpenKeyPairFromCertificateAsync(void* certificate, void* hashAlgorithmName, int32_t padding, void** operation) noexcept final try { clear_abi(operation); typename D::abi_guard guard(this->shim()); *operation = detach_from>(this->shim().OpenKeyPairFromCertificateAsync(*reinterpret_cast(&certificate), *reinterpret_cast(&hashAlgorithmName), *reinterpret_cast(&padding))); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall OpenPublicKeyFromCertificate(void* certificate, void* hashAlgorithmName, int32_t padding, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().OpenPublicKeyFromCertificate(*reinterpret_cast(&certificate), *reinterpret_cast(&hashAlgorithmName), *reinterpret_cast(&padding))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_DesCbc(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DesCbc()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DesEcb(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DesEcb()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TripleDesCbc(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TripleDesCbc()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TripleDesEcb(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TripleDesEcb()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Rc2Cbc(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rc2Cbc()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Rc2Ecb(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rc2Ecb()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesCbc(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesCbc()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesEcb(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesEcb()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesGcm(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesGcm()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesCcm(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesCcm()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesCbcPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesCbcPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_AesEcbPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AesEcbPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DesCbcPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DesCbcPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_DesEcbPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().DesEcbPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TripleDesCbcPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TripleDesCbcPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_TripleDesEcbPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().TripleDesEcbPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Rc2CbcPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rc2CbcPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Rc2EcbPkcs7(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rc2EcbPkcs7()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_Rc4(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().Rc4()); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall get_AlgorithmName(void** value) noexcept final try { clear_abi(value); typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().AlgorithmName()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall get_BlockLength(uint32_t* value) noexcept final try { typename D::abi_guard guard(this->shim()); *value = detach_from(this->shim().BlockLength()); return 0; } catch (...) { return to_hresult(); } int32_t __stdcall CreateSymmetricKey(void* keyMaterial, void** key) noexcept final try { clear_abi(key); typename D::abi_guard guard(this->shim()); *key = detach_from(this->shim().CreateSymmetricKey(*reinterpret_cast(&keyMaterial))); return 0; } catch (...) { return to_hresult(); } }; #endif #ifndef WINRT_LEAN_AND_MEAN template struct produce : produce_base { int32_t __stdcall OpenAlgorithm(void* algorithm, void** provider) noexcept final try { clear_abi(provider); typename D::abi_guard guard(this->shim()); *provider = detach_from(this->shim().OpenAlgorithm(*reinterpret_cast(&algorithm))); return 0; } catch (...) { return to_hresult(); } }; #endif } WINRT_EXPORT namespace winrt::Windows::Security::Cryptography::Core { inline auto AsymmetricAlgorithmNames::RsaPkcs1() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaPkcs1(); }); } inline auto AsymmetricAlgorithmNames::RsaOaepSha1() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaOaepSha1(); }); } inline auto AsymmetricAlgorithmNames::RsaOaepSha256() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaOaepSha256(); }); } inline auto AsymmetricAlgorithmNames::RsaOaepSha384() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaOaepSha384(); }); } inline auto AsymmetricAlgorithmNames::RsaOaepSha512() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaOaepSha512(); }); } inline auto AsymmetricAlgorithmNames::EcdsaP256Sha256() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.EcdsaP256Sha256(); }); } inline auto AsymmetricAlgorithmNames::EcdsaP384Sha384() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.EcdsaP384Sha384(); }); } inline auto AsymmetricAlgorithmNames::EcdsaP521Sha512() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.EcdsaP521Sha512(); }); } inline auto AsymmetricAlgorithmNames::DsaSha1() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.DsaSha1(); }); } inline auto AsymmetricAlgorithmNames::DsaSha256() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.DsaSha256(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPkcs1Sha1() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPkcs1Sha1(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPkcs1Sha256() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPkcs1Sha256(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPkcs1Sha384() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPkcs1Sha384(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPkcs1Sha512() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPkcs1Sha512(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPssSha1() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPssSha1(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPssSha256() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPssSha256(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPssSha384() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPssSha384(); }); } inline auto AsymmetricAlgorithmNames::RsaSignPssSha512() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics const& f) { return f.RsaSignPssSha512(); }); } inline auto AsymmetricAlgorithmNames::EcdsaSha256() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics2 const& f) { return f.EcdsaSha256(); }); } inline auto AsymmetricAlgorithmNames::EcdsaSha384() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics2 const& f) { return f.EcdsaSha384(); }); } inline auto AsymmetricAlgorithmNames::EcdsaSha512() { return impl::call_factory_cast([](IAsymmetricAlgorithmNamesStatics2 const& f) { return f.EcdsaSha512(); }); } inline auto AsymmetricKeyAlgorithmProvider::OpenAlgorithm(param::hstring const& algorithm) { return impl::call_factory([&](IAsymmetricKeyAlgorithmProviderStatics const& f) { return f.OpenAlgorithm(algorithm); }); } inline auto CryptographicEngine::Encrypt(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& iv) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.Encrypt(key, data, iv); }); } inline auto CryptographicEngine::Decrypt(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& iv) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.Decrypt(key, data, iv); }); } inline auto CryptographicEngine::EncryptAndAuthenticate(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& nonce, winrt::Windows::Storage::Streams::IBuffer const& authenticatedData) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.EncryptAndAuthenticate(key, data, nonce, authenticatedData); }); } inline auto CryptographicEngine::DecryptAndAuthenticate(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& nonce, winrt::Windows::Storage::Streams::IBuffer const& authenticationTag, winrt::Windows::Storage::Streams::IBuffer const& authenticatedData) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.DecryptAndAuthenticate(key, data, nonce, authenticationTag, authenticatedData); }); } inline auto CryptographicEngine::Sign(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.Sign(key, data); }); } inline auto CryptographicEngine::VerifySignature(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& signature) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.VerifySignature(key, data, signature); }); } inline auto CryptographicEngine::DeriveKeyMaterial(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Security::Cryptography::Core::KeyDerivationParameters const& parameters, uint32_t desiredKeySize) { return impl::call_factory([&](ICryptographicEngineStatics const& f) { return f.DeriveKeyMaterial(key, parameters, desiredKeySize); }); } inline auto CryptographicEngine::SignHashedData(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) { return impl::call_factory([&](ICryptographicEngineStatics2 const& f) { return f.SignHashedData(key, data); }); } inline auto CryptographicEngine::VerifySignatureWithHashInput(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& signature) { return impl::call_factory([&](ICryptographicEngineStatics2 const& f) { return f.VerifySignatureWithHashInput(key, data, signature); }); } inline auto CryptographicEngine::DecryptAsync(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data, winrt::Windows::Storage::Streams::IBuffer const& iv) { return impl::call_factory([&](ICryptographicEngineStatics2 const& f) { return f.DecryptAsync(key, data, iv); }); } inline auto CryptographicEngine::SignAsync(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) { return impl::call_factory([&](ICryptographicEngineStatics2 const& f) { return f.SignAsync(key, data); }); } inline auto CryptographicEngine::SignHashedDataAsync(winrt::Windows::Security::Cryptography::Core::CryptographicKey const& key, winrt::Windows::Storage::Streams::IBuffer const& data) { return impl::call_factory([&](ICryptographicEngineStatics2 const& f) { return f.SignHashedDataAsync(key, data); }); } inline auto EccCurveNames::BrainpoolP160r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP160r1(); }); } inline auto EccCurveNames::BrainpoolP160t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP160t1(); }); } inline auto EccCurveNames::BrainpoolP192r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP192r1(); }); } inline auto EccCurveNames::BrainpoolP192t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP192t1(); }); } inline auto EccCurveNames::BrainpoolP224r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP224r1(); }); } inline auto EccCurveNames::BrainpoolP224t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP224t1(); }); } inline auto EccCurveNames::BrainpoolP256r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP256r1(); }); } inline auto EccCurveNames::BrainpoolP256t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP256t1(); }); } inline auto EccCurveNames::BrainpoolP320r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP320r1(); }); } inline auto EccCurveNames::BrainpoolP320t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP320t1(); }); } inline auto EccCurveNames::BrainpoolP384r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP384r1(); }); } inline auto EccCurveNames::BrainpoolP384t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP384t1(); }); } inline auto EccCurveNames::BrainpoolP512r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP512r1(); }); } inline auto EccCurveNames::BrainpoolP512t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.BrainpoolP512t1(); }); } inline auto EccCurveNames::Curve25519() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.Curve25519(); }); } inline auto EccCurveNames::Ec192wapi() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.Ec192wapi(); }); } inline auto EccCurveNames::NistP192() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NistP192(); }); } inline auto EccCurveNames::NistP224() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NistP224(); }); } inline auto EccCurveNames::NistP256() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NistP256(); }); } inline auto EccCurveNames::NistP384() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NistP384(); }); } inline auto EccCurveNames::NistP521() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NistP521(); }); } inline auto EccCurveNames::NumsP256t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NumsP256t1(); }); } inline auto EccCurveNames::NumsP384t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NumsP384t1(); }); } inline auto EccCurveNames::NumsP512t1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.NumsP512t1(); }); } inline auto EccCurveNames::SecP160k1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP160k1(); }); } inline auto EccCurveNames::SecP160r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP160r1(); }); } inline auto EccCurveNames::SecP160r2() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP160r2(); }); } inline auto EccCurveNames::SecP192k1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP192k1(); }); } inline auto EccCurveNames::SecP192r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP192r1(); }); } inline auto EccCurveNames::SecP224k1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP224k1(); }); } inline auto EccCurveNames::SecP224r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP224r1(); }); } inline auto EccCurveNames::SecP256k1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP256k1(); }); } inline auto EccCurveNames::SecP256r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP256r1(); }); } inline auto EccCurveNames::SecP384r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP384r1(); }); } inline auto EccCurveNames::SecP521r1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.SecP521r1(); }); } inline auto EccCurveNames::Wtls7() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.Wtls7(); }); } inline auto EccCurveNames::Wtls9() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.Wtls9(); }); } inline auto EccCurveNames::Wtls12() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.Wtls12(); }); } inline auto EccCurveNames::X962P192v1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P192v1(); }); } inline auto EccCurveNames::X962P192v2() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P192v2(); }); } inline auto EccCurveNames::X962P192v3() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P192v3(); }); } inline auto EccCurveNames::X962P239v1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P239v1(); }); } inline auto EccCurveNames::X962P239v2() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P239v2(); }); } inline auto EccCurveNames::X962P239v3() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P239v3(); }); } inline auto EccCurveNames::X962P256v1() { return impl::call_factory_cast([](IEccCurveNamesStatics const& f) { return f.X962P256v1(); }); } inline auto EccCurveNames::AllEccCurveNames() { return impl::call_factory_cast(*)(IEccCurveNamesStatics const&), EccCurveNames, IEccCurveNamesStatics>([](IEccCurveNamesStatics const& f) { return f.AllEccCurveNames(); }); } inline auto HashAlgorithmNames::Md5() { return impl::call_factory_cast([](IHashAlgorithmNamesStatics const& f) { return f.Md5(); }); } inline auto HashAlgorithmNames::Sha1() { return impl::call_factory_cast([](IHashAlgorithmNamesStatics const& f) { return f.Sha1(); }); } inline auto HashAlgorithmNames::Sha256() { return impl::call_factory_cast([](IHashAlgorithmNamesStatics const& f) { return f.Sha256(); }); } inline auto HashAlgorithmNames::Sha384() { return impl::call_factory_cast([](IHashAlgorithmNamesStatics const& f) { return f.Sha384(); }); } inline auto HashAlgorithmNames::Sha512() { return impl::call_factory_cast([](IHashAlgorithmNamesStatics const& f) { return f.Sha512(); }); } inline auto HashAlgorithmProvider::OpenAlgorithm(param::hstring const& algorithm) { return impl::call_factory([&](IHashAlgorithmProviderStatics const& f) { return f.OpenAlgorithm(algorithm); }); } inline auto KeyDerivationAlgorithmNames::Pbkdf2Md5() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Pbkdf2Md5(); }); } inline auto KeyDerivationAlgorithmNames::Pbkdf2Sha1() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Pbkdf2Sha1(); }); } inline auto KeyDerivationAlgorithmNames::Pbkdf2Sha256() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Pbkdf2Sha256(); }); } inline auto KeyDerivationAlgorithmNames::Pbkdf2Sha384() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Pbkdf2Sha384(); }); } inline auto KeyDerivationAlgorithmNames::Pbkdf2Sha512() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Pbkdf2Sha512(); }); } inline auto KeyDerivationAlgorithmNames::Sp800108CtrHmacMd5() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp800108CtrHmacMd5(); }); } inline auto KeyDerivationAlgorithmNames::Sp800108CtrHmacSha1() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp800108CtrHmacSha1(); }); } inline auto KeyDerivationAlgorithmNames::Sp800108CtrHmacSha256() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp800108CtrHmacSha256(); }); } inline auto KeyDerivationAlgorithmNames::Sp800108CtrHmacSha384() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp800108CtrHmacSha384(); }); } inline auto KeyDerivationAlgorithmNames::Sp800108CtrHmacSha512() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp800108CtrHmacSha512(); }); } inline auto KeyDerivationAlgorithmNames::Sp80056aConcatMd5() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp80056aConcatMd5(); }); } inline auto KeyDerivationAlgorithmNames::Sp80056aConcatSha1() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp80056aConcatSha1(); }); } inline auto KeyDerivationAlgorithmNames::Sp80056aConcatSha256() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp80056aConcatSha256(); }); } inline auto KeyDerivationAlgorithmNames::Sp80056aConcatSha384() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp80056aConcatSha384(); }); } inline auto KeyDerivationAlgorithmNames::Sp80056aConcatSha512() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics const& f) { return f.Sp80056aConcatSha512(); }); } inline auto KeyDerivationAlgorithmNames::CapiKdfMd5() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics2 const& f) { return f.CapiKdfMd5(); }); } inline auto KeyDerivationAlgorithmNames::CapiKdfSha1() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics2 const& f) { return f.CapiKdfSha1(); }); } inline auto KeyDerivationAlgorithmNames::CapiKdfSha256() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics2 const& f) { return f.CapiKdfSha256(); }); } inline auto KeyDerivationAlgorithmNames::CapiKdfSha384() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics2 const& f) { return f.CapiKdfSha384(); }); } inline auto KeyDerivationAlgorithmNames::CapiKdfSha512() { return impl::call_factory_cast([](IKeyDerivationAlgorithmNamesStatics2 const& f) { return f.CapiKdfSha512(); }); } inline auto KeyDerivationAlgorithmProvider::OpenAlgorithm(param::hstring const& algorithm) { return impl::call_factory([&](IKeyDerivationAlgorithmProviderStatics const& f) { return f.OpenAlgorithm(algorithm); }); } inline auto KeyDerivationParameters::BuildForPbkdf2(winrt::Windows::Storage::Streams::IBuffer const& pbkdf2Salt, uint32_t iterationCount) { return impl::call_factory([&](IKeyDerivationParametersStatics const& f) { return f.BuildForPbkdf2(pbkdf2Salt, iterationCount); }); } inline auto KeyDerivationParameters::BuildForSP800108(winrt::Windows::Storage::Streams::IBuffer const& label, winrt::Windows::Storage::Streams::IBuffer const& context) { return impl::call_factory([&](IKeyDerivationParametersStatics const& f) { return f.BuildForSP800108(label, context); }); } inline auto KeyDerivationParameters::BuildForSP80056a(winrt::Windows::Storage::Streams::IBuffer const& algorithmId, winrt::Windows::Storage::Streams::IBuffer const& partyUInfo, winrt::Windows::Storage::Streams::IBuffer const& partyVInfo, winrt::Windows::Storage::Streams::IBuffer const& suppPubInfo, winrt::Windows::Storage::Streams::IBuffer const& suppPrivInfo) { return impl::call_factory([&](IKeyDerivationParametersStatics const& f) { return f.BuildForSP80056a(algorithmId, partyUInfo, partyVInfo, suppPubInfo, suppPrivInfo); }); } inline auto KeyDerivationParameters::BuildForCapi1Kdf(winrt::Windows::Security::Cryptography::Core::Capi1KdfTargetAlgorithm const& capi1KdfTargetAlgorithm) { return impl::call_factory([&](IKeyDerivationParametersStatics2 const& f) { return f.BuildForCapi1Kdf(capi1KdfTargetAlgorithm); }); } inline auto MacAlgorithmNames::HmacMd5() { return impl::call_factory_cast([](IMacAlgorithmNamesStatics const& f) { return f.HmacMd5(); }); } inline auto MacAlgorithmNames::HmacSha1() { return impl::call_factory_cast([](IMacAlgorithmNamesStatics const& f) { return f.HmacSha1(); }); } inline auto MacAlgorithmNames::HmacSha256() { return impl::call_factory_cast([](IMacAlgorithmNamesStatics const& f) { return f.HmacSha256(); }); } inline auto MacAlgorithmNames::HmacSha384() { return impl::call_factory_cast([](IMacAlgorithmNamesStatics const& f) { return f.HmacSha384(); }); } inline auto MacAlgorithmNames::HmacSha512() { return impl::call_factory_cast([](IMacAlgorithmNamesStatics const& f) { return f.HmacSha512(); }); } inline auto MacAlgorithmNames::AesCmac() { return impl::call_factory_cast([](IMacAlgorithmNamesStatics const& f) { return f.AesCmac(); }); } inline auto MacAlgorithmProvider::OpenAlgorithm(param::hstring const& algorithm) { return impl::call_factory([&](IMacAlgorithmProviderStatics const& f) { return f.OpenAlgorithm(algorithm); }); } inline auto PersistedKeyProvider::OpenKeyPairFromCertificateAsync(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate, param::hstring const& hashAlgorithmName, winrt::Windows::Security::Cryptography::Core::CryptographicPadding const& padding) { return impl::call_factory([&](IPersistedKeyProviderStatics const& f) { return f.OpenKeyPairFromCertificateAsync(certificate, hashAlgorithmName, padding); }); } inline auto PersistedKeyProvider::OpenPublicKeyFromCertificate(winrt::Windows::Security::Cryptography::Certificates::Certificate const& certificate, param::hstring const& hashAlgorithmName, winrt::Windows::Security::Cryptography::Core::CryptographicPadding const& padding) { return impl::call_factory([&](IPersistedKeyProviderStatics const& f) { return f.OpenPublicKeyFromCertificate(certificate, hashAlgorithmName, padding); }); } inline auto SymmetricAlgorithmNames::DesCbc() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.DesCbc(); }); } inline auto SymmetricAlgorithmNames::DesEcb() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.DesEcb(); }); } inline auto SymmetricAlgorithmNames::TripleDesCbc() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.TripleDesCbc(); }); } inline auto SymmetricAlgorithmNames::TripleDesEcb() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.TripleDesEcb(); }); } inline auto SymmetricAlgorithmNames::Rc2Cbc() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.Rc2Cbc(); }); } inline auto SymmetricAlgorithmNames::Rc2Ecb() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.Rc2Ecb(); }); } inline auto SymmetricAlgorithmNames::AesCbc() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.AesCbc(); }); } inline auto SymmetricAlgorithmNames::AesEcb() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.AesEcb(); }); } inline auto SymmetricAlgorithmNames::AesGcm() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.AesGcm(); }); } inline auto SymmetricAlgorithmNames::AesCcm() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.AesCcm(); }); } inline auto SymmetricAlgorithmNames::AesCbcPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.AesCbcPkcs7(); }); } inline auto SymmetricAlgorithmNames::AesEcbPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.AesEcbPkcs7(); }); } inline auto SymmetricAlgorithmNames::DesCbcPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.DesCbcPkcs7(); }); } inline auto SymmetricAlgorithmNames::DesEcbPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.DesEcbPkcs7(); }); } inline auto SymmetricAlgorithmNames::TripleDesCbcPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.TripleDesCbcPkcs7(); }); } inline auto SymmetricAlgorithmNames::TripleDesEcbPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.TripleDesEcbPkcs7(); }); } inline auto SymmetricAlgorithmNames::Rc2CbcPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.Rc2CbcPkcs7(); }); } inline auto SymmetricAlgorithmNames::Rc2EcbPkcs7() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.Rc2EcbPkcs7(); }); } inline auto SymmetricAlgorithmNames::Rc4() { return impl::call_factory_cast([](ISymmetricAlgorithmNamesStatics const& f) { return f.Rc4(); }); } inline auto SymmetricKeyAlgorithmProvider::OpenAlgorithm(param::hstring const& algorithm) { return impl::call_factory([&](ISymmetricKeyAlgorithmProviderStatics const& f) { return f.OpenAlgorithm(algorithm); }); } } namespace std { #ifndef WINRT_LEAN_AND_MEAN template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; template<> struct hash : winrt::impl::hash_base {}; #endif #ifdef __cpp_lib_format #endif } #endif