How to suppress "An application is requesting access to a protected item" popup

lsotov picture lsotov · Jan 15, 2016 · Viewed 16.7k times · Source

I'm getting a pop-up when trying to use a certificate to decrypt data. I'm creating a self-signed certificate, and I'm using it to encrypt some data, but I'm getting the following confirmation pop-up when trying to decrypt the data:

CryptoAPI popup

How can I programatically grant access to use the certificate?

Answer

Ian Boyd picture Ian Boyd · Jan 15, 2016

I believe the issue is that the certificate's private key has "strong protection" enabled.

enter image description here

Enable strong private key protection. You will be prompted every time the private key is used by an application if you enable this option.

Any attempt to use the private key causes Windows to display the warning.

You have to re-import the certificate without the Strong private key protection option enabled.

Group policy that does the same

It's also possible a system wide group policy is in effect:

  • secpol.msc
    • Security Settings
      • Local Policies
        • Security Options
          • System Cryptography: Force strong key protection for user keys stored on the computer

System Cryptography: Force strong key protection for user keys stored on the computer

This security setting determines if users' private keys require a password to be used.

The options are:

User input is not required when new keys are stored and used User is prompted when the key is first used User must enter a password each time they use a key For more information, see Public key infrastructure.

Default: This policy is not defined.

If that group policy security option is set, you have to disable it.

Bonus Reading

tl;dr: You cannot programatically bypass a security boundary