Skip to content
This repository has been archived by the owner on Apr 1, 2024. It is now read-only.

Win8.x Store targeted apps are rejected due to Win32 crypto APIs #97

Closed
ghost opened this issue May 12, 2016 · 107 comments
Closed

Win8.x Store targeted apps are rejected due to Win32 crypto APIs #97

ghost opened this issue May 12, 2016 · 107 comments

Comments

@ghost
Copy link

ghost commented May 12, 2016

Due to use of bcrypt.dll

@AArnott
Copy link
Owner

AArnott commented May 12, 2016

You'll have to be more specific. bcrypt.dll is Windows Store compliant. The MSDN documentation states that most of its functions are available for Store apps, for example BCryptDecrypt.

@ghost
Copy link
Author

ghost commented May 12, 2016

Supported API test

FAILED
Supported APIs

Error Found: The supported APIs test detected the following errors:
    API BCryptCloseAlgorithmProvider in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptCreateHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptDecrypt in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptDeriveKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptDestroyHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptDestroyKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptDestroySecret in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptEncrypt in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptEnumAlgorithms in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptExportKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptFinalizeKeyPair in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptFinishHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptFreeBuffer in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptGenRandom in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptGenerateKeyPair in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptGenerateSymmetricKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptGetProperty in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptHashData in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptImportKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptImportKeyPair in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptOpenAlgorithmProvider in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptSecretAgreement in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptSetProperty in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptSignHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API BCryptVerifySignature in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
    API FindFirstFileExA in api-ms-win-core-file-l1-2-0.dll is not supported for this application type. PInvoke.Kernel32.dll calls this API.
    API WaitForSingleObject in api-ms-win-core-synch-l1-2-0.dll is not supported for this application type. PInvoke.Kernel32.dll calls this API.
    API CancelIoEx in api-ms-win-core-io-l1-1-1.dll is not supported for this application type. PInvoke.Kernel32.dll calls this API.
    API NCryptCreatePersistedKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptDecrypt in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptDeleteKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptDeriveKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptEncrypt in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptEnumAlgorithms in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptEnumKeys in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptExportKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptFinalizeKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptFreeBuffer in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptFreeObject in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptGetProperty in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptImportKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptIsAlgSupported in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptKeyDerivation in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptOpenKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptOpenStorageProvider in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptSecretAgreement in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptSetProperty in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptSignHash in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
    API NCryptVerifySignature in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
Impact if not fixed: Using an API that is not part of the Windows SDK for Windows Store apps violates the Windows Store certification requirements.
How to fix: Review the error messages to identify the API that is not part of the Windows SDK for Windows Store apps. Please note, apps that are built in a debug configuration or without .NET Native enabled (where applicable) can fail this test as these environments may pull in unsupported APIs. Retest your app in a release configuration, and with .NET Native enabled if applicable. See the link below for more information:
Alternatives to Windows APIs in Windows Store apps.

@AArnott AArnott reopened this May 12, 2016
@AArnott
Copy link
Owner

AArnott commented May 12, 2016

Thanks. What type of application are you building? Win8.0, Win8.1, UWP?
The MSDN docs clearly state that many of these are available to Store apps, which tells me there's either a tool or a doc bug somewhere.

@AArnott AArnott removed the invalid label May 12, 2016
@ghost
Copy link
Author

ghost commented May 12, 2016

Oh sorry I forgot to mention that.

It's a Windows 8.1 application.

The best way to check if it's compatible is to run the App Cert tools locally with the dll referenced in the Win 8.1 program.

@AArnott
Copy link
Owner

AArnott commented May 12, 2016

Thanks. I wonder if the MSDN docs are imprecise and this is allowed in UWP but not Win8.x. I'll do some digging.

@AArnott
Copy link
Owner

AArnott commented May 14, 2016

BTW, in the meantime you can use an older (1.x) version of PCLCrypto, which doesn't depend on BCrypt.

@ghost
Copy link
Author

ghost commented May 14, 2016

Yes that is already done thanks

I detected the bcrypt problem after upgrading to 2.x. So Irolled back.

Envoyé depuis mon smartphone Samsung Galaxy.

-------- Message d'origine --------
De : Andrew Arnott notifications@github.com
Date : 14/05/2016 21:48 (GMT+01:00)
À : AArnott/PCLCrypto PCLCrypto@noreply.github.com
Cc : Grégory Douguet gdouguet@wess-soft.com, Author author@noreply.github.com
Objet : Re: [AArnott/PCLCrypto] Last version not Windows Store compliant (#97)

BTW, in the meantime you can use an older (1.x) version of PCLCrypto, which doesn't depend on BCrypt.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/97#issuecomment-219243149

@AArnott
Copy link
Owner

AArnott commented May 14, 2016

In trying to repro it, I didn't get any errors about BCrypt. But I did see some PInvoke.Kernel32 errors. This is inconsistent with MSDN docs. But although it failed when certifying the Debug package, it passed when certifying the Release package. Did you try with debug or release?

@AArnott
Copy link
Owner

AArnott commented May 14, 2016

Oh, interesting. So for Windows 8.1 apps all the NCrypt functions were rejected. For UWP they are allowed.
So I guess PCLCrypto 2.x only works for UWP apps. I should probably update the nupkg to indicate this.

@ghost
Copy link
Author

ghost commented May 14, 2016

Ah yes interesting indeed.

I will think about upgrading my project to uwp.

Thanks for the enlightenment

Envoyé depuis mon smartphone Samsung Galaxy.

-------- Message d'origine --------
De : Andrew Arnott notifications@github.com
Date : 14/05/2016 22:16 (GMT+01:00)
À : AArnott/PCLCrypto PCLCrypto@noreply.github.com
Cc : Grégory Douguet gdouguet@wess-soft.com, Author author@noreply.github.com
Objet : Re: [AArnott/PCLCrypto] Last version not Windows Store compliant (#97)

Oh, interesting. So for Windows 8.1 apps all the NCrypt functions were rejected. For UWP they are allowed.
So I guess PCLCrypto 2.x only works for UWP apps. I should probably update the nupkg to indicate this.

You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHubhttps://github.com//issues/97#issuecomment-219249324

@AArnott AArnott changed the title Last version not Windows Store compliant Win8.x Store targeted apps are rejected due to Win32 crypto APIs May 22, 2016
@arivoir
Copy link

arivoir commented Jul 11, 2016

I had the same trouble with a Windows Phone 8.1 app.

@deom-dev
Copy link

Hello,
I have also some issues with PCLCrypto.
Validation and PInvoke are installed.
It's a Windows Phone 8.1 app, with a Xamarin PCL .

{Windows.UI.Xaml.UnhandledExceptionEventArgs} Exception: {"This is a reference assembly and does not contain implementation. Be sure to install the PCLCrypto package into your application so the platform implementation assembly will be used at runtime."} Handled: false Message: "This is a reference assembly and does not contain implementation. Be sure to install the PCLCrypto package into your application so the platform implementation assembly will be used at runtime." Native View: To inspect the native object, enable native code debugging.

@ghost
Copy link
Author

ghost commented Jul 14, 2016

Hi,
You can rollback to an earlier version which pass validation.
++

De : DenisSkygate [mailto:notifications@github.com]
Envoyé : jeudi 14 juillet 2016 18:18
À : AArnott/PCLCrypto PCLCrypto@noreply.github.com
Cc : Grégory Douguet gdouguet@wess-soft.com; Author author@noreply.github.com
Objet : Re: [AArnott/PCLCrypto] Win8.x Store targeted apps are rejected due to Win32 crypto APIs (#97)

Hello,
I have also some issues with PCLCrypto.
Validation and PInvoke are installed.
It's a Windows Phone 8.1 app, with a Xamarin PCL .

{Windows.UI.Xaml.UnhandledExceptionEventArgs}
Exception: {"This is a reference assembly and does not contain implementation. Be sure to install the PCLCrypto package into your application so the platform implementation assembly will be used at runtime."}
Handled: false
Message: "This is a reference assembly and does not contain implementation. Be sure to install the PCLCrypto package into your application so the platform implementation assembly will be used at runtime."
Native View: To inspect the native object, enable native code debugging.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com//issues/97#issuecomment-232714993, or mute the threadhttps://github.com/notifications/unsubscribe/APf_1pyQXLMvaLZasxzlx6Jcb6ByO5qAks5qVmEpgaJpZM4Ic4mc.

@dvsekhvalnov
Copy link

Hi @AArnott , any ETA for the fix if possible?

Thank you.

@AArnott
Copy link
Owner

AArnott commented Aug 11, 2016

I wish I had one. The only "fix" I know of right now is to target UWP apps. Microsoft has acknowledged the bug on their side, but I suspect their motivation to fix the process for 8.x targeted apps is relatively low.

@dvsekhvalnov
Copy link

Got it. Thank you.

@Magic73
Copy link

Magic73 commented Nov 14, 2016

I had the same issue with UWP application, but with ncrypt.dll.

API BCryptCloseAlgorithmProvider in ncrypt.dll is not supported for this application type. App.dll calls this API.

I'm using PCLCrypto 2.0.147, with Xamarin.

@dtaylorus
Copy link

@AArnott Would you consider reverting to the 1.x implemention without the BCrypt dependency?

It isn't very useful to have a library that doesn't pass the Windows Store certification tests (at least not to me).

I spent a bunch of time building a working app and now it looks like I need to either throw all the crypto code away and start over, or use an old version of this library which I assume has bugs that have been fixed in later versions.

Also, note that targeting UWP does not pass certification, as my app is a Windows 8.1 UWP app and it fails certification to the Windows Store as of today. It's quite easy to repro the failure by running the certification test after building a Windows 8.1 UWP package for the Windows Store.

Thanks!

@AArnott
Copy link
Owner

AArnott commented May 17, 2017

use an old version of this library which I assume has bugs that have been fixed in later versions.

There haven't been any security bugs in this library thus far. If an older version works for you, go for it. Mostly each new version adds features and platforms. The only real "bugs" have been in serialized key pair interop across platforms, which very few folks need.

I'm told by the Windows folks that they've updated the Store certification to allow these functions. Your local certification test may fail, but the online one should pass. Can you confirm or deny this? Even if that works, it's still feedback I'll pass onto the Windows SDK team to get an update to the local certification tool.

@dtaylorus
Copy link

dtaylorus commented May 17, 2017

@AArnott I can confirm that the online validation fails. I tried once with the default nuget installation, which installs outdated versions of all of the PInvoke dependencies, and again after updating all of the PInvoke dependencies. Online validation failed both times, exactly as it did locally.

I appreciate the workaround, but I'm sure anyone else down the road would also appreciate not having to find out the hard way that their Windows Store submission fails and on top of that, find this thread with the workaround buried somewhere above.

For anyone searching for how to get a valid Windows 8.1 build, you have to uninstall all of the nuget 2.x packages (PCLCrypto, PInvoke.*) in the right order (just keep trying to uninstall them one at a time until you eventually get rid of them all), and then install version 1.0.2.15130 (I'm not sure, but it seems like the 1.0.8x builds might also depend on the PInvoke packages). That worked for me and passed both local and online store validation for Windows 8.1. I haven't tried Windows Phone 8.1 yet.

Oh, and I should note that even with these troubles, I'm sure that this library still saved me time in the long run since I needed CryptoStream and that looks like some significant work to implement on WinRT.

So thanks for this library!

@AArnott
Copy link
Owner

AArnott commented May 17, 2017

Thanks for the info. I'll dig up the old thread I had with the Windows SDK folks and hopefully can press on them to fix this.
In the short term, I think what we can do is update PInvoke to exclude the banned functions from a uwp-targeted build. That should allow PCLCrypto to update its dependencies to the latest versions and unblock you. I agree: it's useless to have Win8/UWP support in PCLCrypto if ultimately it fails to submit to the store, and can lead to lost time investing in something that will ultimately fail. Let's get this working.

Can you do me a favor and send me the failure report you're getting? Both the online version and the local test results, if possible? I'll use it both to update PInvoke to workaround the issue and to make the case to the WinSDK folks that the problem is not fixed.

@dtaylorus
Copy link

Thanks, Andrew! I've sent the failures to the email address in your profile, and here's a dump of the API failures from the online failure report:

API NCryptCreatePersistedKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptDecrypt in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptDeleteKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptDeriveKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptEncrypt in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptEnumAlgorithms in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptEnumKeys in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptExportKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptFinalizeKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptFreeBuffer in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptFreeObject in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptGetProperty in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptImportKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptIsAlgSupported in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptKeyDerivation in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptOpenKey in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptOpenStorageProvider in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptSecretAgreement in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptSetProperty in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptSignHash in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API NCryptVerifySignature in ncrypt.dll is not supported for this application type. PInvoke.NCrypt.dll calls this API.
API FindFirstFileExA in api-ms-win-core-file-l1-2-0.dll is not supported for this application type. PInvoke.Kernel32.dll calls this API.
API WaitForSingleObject in api-ms-win-core-synch-l1-2-0.dll is not supported for this application type. PInvoke.Kernel32.dll calls this API.
API CancelIoEx in api-ms-win-core-io-l1-1-1.dll is not supported for this application type. PInvoke.Kernel32.dll calls this API.
API BCryptCloseAlgorithmProvider in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptCreateHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptDecrypt in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptDeriveKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptDestroyHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptDestroyKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptDestroySecret in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptEncrypt in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptEnumAlgorithms in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptExportKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptFinalizeKeyPair in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptFinishHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptFreeBuffer in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptGenRandom in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptGenerateKeyPair in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptGenerateSymmetricKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptGetProperty in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptHashData in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptImportKey in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptImportKeyPair in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptOpenAlgorithmProvider in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptSecretAgreement in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptSetProperty in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptSignHash in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.
API BCryptVerifySignature in bcrypt.dll is not supported for this application type. PInvoke.BCrypt.dll calls this API.

@AArnott
Copy link
Owner

AArnott commented May 25, 2017

When I create a UWP app and install PCLCrypto to it, then package it up and run the cert check, it passes. I wonder if this problem is exclusive to Win8 targeted apps.

@dtaylorus
Copy link

It could be specific to Windows 8. The Windows 10 version of my app doesn't use PCLCrypto because all of the crypto API's I needed are in the .NET Standard SDK.

@HelenMamalaki
Copy link

HelenMamalaki commented Jul 31, 2017

Our UWP app is now also failing Certification because of the FindFirstFileEx API, however I've been told by a MS Support agent that a fix should be available by the end of this week. I will try publishing again next Monday 07/08/2017 and update.

@AArnott
Copy link
Owner

AArnott commented Jul 31, 2017

@almudy I can't say without approval from the Store folks. But @HelenMamalaki's report sounds very encouraging, I'd say.

@ptorr-msft
Copy link

@mattrichnz FindFirstFileEx has not been deprecated; please don't worry about that. This is a simple configuration error in the Store that is taking longer than expected to rectify.

(For future reference: if something is deprecated, we have a process for doing so that ensures things don't just disappear overnight. They are marked deprecated in the headers / metadata / MSDN for several releases before they're even candidates for removal, but even then we very rarely actually remove APIs from Windows).

@velocitysystems
Copy link

@ptorr-msft @AArnott Thanks for your answers, good to clarify a few points.

Fortunately, we've been able to switch over to .NET Standard libraries using System.Security.Cryptography and remove PCLCrypto. It is a shame as it was a great library but no doubt will use it again in the future once this issue is resolved.

@apwillies
Copy link

I opened a Support Incident today with the Store folks. To do this, go to the Store Dashboard, tap the question mark icon near the top right of the screen, and select Support. Then select Account Management and Setup and click either Chat Now or Submit an incident. I had a good response from the MS representative - helpful and patient, and acknowledged the issue is their side and hope to have it resolved by the end of the week.

We also plan to switch to using the .NET Standard Crypto library - we'll need to check the speed issues mentioned by @AArnott. Also we still need to get our current submission out to production - hopefully that goes through by the end of the week using PCLCrypto.

@staticvoidlabs
Copy link

Any news on this? My submission still gets rejected.

@AArnott
Copy link
Owner

AArnott commented Aug 7, 2017

I hear from the Store folks that a rollout with the fix was delayed when their testing discovered a bug in the new version. They're working to fix it.

@apwillies
Copy link

apwillies commented Aug 9, 2017

This is the current word from the Store folks, as at 5:00 p.m. EST 8/8/17:

I can inform you that the issue has not been resolved and we do not have a current eta.

@apwillies
Copy link

The Store folks reached out to me today to resubmit our app. It passed and is busy publishing since about 2:30 p.m. EST 8/14/2017.

@AArnott
Copy link
Owner

AArnott commented Aug 14, 2017

@apwillies from your votes above it looks like yours is a UWP app that passed certification. That's great to hear.

@apwillies
Copy link

@AArnott Yes - it is up and running. Thanks for the help on this. I'm sure all the other interested parties will be happy also.

@staticvoidlabs
Copy link

I can confirm this. Our app passed certification, too. Nice!

@AArnott
Copy link
Owner

AArnott commented Aug 16, 2017

I believe all UWP apps are unblocked now.
Win8 apps (which had a couple votes up above) may still experience a submission failure. That's still being worked on by the Store folks.

@Magic73
Copy link

Magic73 commented Sep 12, 2017

So now the app pass the certification without any issue?

@staticvoidlabs
Copy link

staticvoidlabs commented Sep 12, 2017 via email

@AArnott
Copy link
Owner

AArnott commented Sep 12, 2017

AFAIK Win8 store apps may still have an issue, since the last update I heard was that only UWP app submission had been fixed.
Can anyone confirm/deny that a Win8 app was accepted through Store validation?

@ItsRobbAllen
Copy link

Hello. We're targeting 8.1 apps and the latest cert kit fails it for the original issue above.
pasted_image_at_2017_10_16_01_27_pm

@ItsRobbAllen
Copy link

The only thing we needed was MD5 hashing, so by removing the PInvoke libraries, we were able to pass the local cert kit.

@AArnott
Copy link
Owner

AArnott commented Oct 18, 2017

Thanks, @ItsRobbAllen. I've pinged the Windows Store certification folks to see if I can get the ball rolling for fixing 8.1 certification.

@AArnott
Copy link
Owner

AArnott commented Oct 18, 2017

@ItsRobbAllen Was this a local cert kit check that failed? If so, can you please download the latest SDK / cert check kit? The Store folks suggest that the latest one should pass (when run locally) and they expect the Store should not have rejected this.

@ozzy1873
Copy link

ozzy1873 commented Oct 19, 2017

My app also failed certification. I am using PInvoke for encryption in a netstandard UWP app and would pull out the library entirely because I can now use the built in netstd functions, but unfortunately Microsoft.Azure.Mobile.Client 4.0.2 also has a dependency on PCLCrypto. The local cert kit check passes.
image

@AArnott
Copy link
Owner

AArnott commented Oct 19, 2017

@ozzy1873 the failures you're seeing are due to a legit bug in PInvoke. It's defining the functions you've listed in the Store version of the library although those functions aren't available to Store apps. I will see those get fixed ASAP and you can update the PInvoke package used in your project by installing the latest one to apply the fix to your app.
Is your screenshot the exhaustive list of errors, or are there more functions that fail the check?

@ozzy1873
Copy link

ozzy1873 commented Oct 19, 2017 via email

@AArnott
Copy link
Owner

AArnott commented Oct 19, 2017

I'm closing this issue now that the Store issues have been resolved (with last remaining PInvoke issue tracked by the above issue).

@AArnott AArnott closed this as completed Oct 19, 2017
@ItsRobbAllen
Copy link

I tried submitting to the store, but it failed for the same reason. I did update all the libraries as well as ensured I had the latest SDKs, but to no avail.

I put in the request ticket to MS this thread, I hope they can either give a waiver or at least inform me how to get our app to pass. The only thing we're using the library for is MD5 hashing as the Windows cryptography library won't work on the iPad, and both our apps share the same code bases.

@ozzy1873
Copy link

@ItsRobbAllen I believe this has been fixed, just not yet published.

@AArnott
Copy link
Owner

AArnott commented Oct 21, 2017

@ozzy1873 Are you talking about the PInvoke issue you called out before? Because @ItsRobbAllen hit a different set of errors that suggest to me that it's a store cert problem, as opposed to the list you (@ozzy1873) hit that was due to a set of methods that PInvoke truly shouldn't have had for Store apps.

@ozzy1873
Copy link

Yes, I was talking about the PInvoke issue I called out before. Sorry, when he said it failed for the same reason, I assumed it was the same set of errors.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests