Example #1
0
        /// <summary>
        /// Check for the existence of a key and set the Options accordingly.
        /// </summary>
        /// <param name="provider">Provider Object</param>
        /// <param name="keyName">Name of the key to destroy</param>
        /// <param name="cngKeyOpts">MachineKey or None depending on where it found the key.</param>
        /// <returns></returns>
        private bool doesKeyExists(CngProvider provider, string keyName, CngKeyOpenOptions openOpts = CngKeyOpenOptions.MachineKey)
        {
            bool keyExists = false;

            try
            {
                keyExists = CngKey.Exists(keyName, provider, openOpts);
            }
            catch (CryptographicException e)
            {
                throw new CryptographicException(string.Format("There was an error contacting provider {0}. It may not exist or may be configured incorrectly. Error Code:0x{1:X8}  Exception thrown:{2}\nStack Trace:{3}\n",
                                                               provider.ToString(), e.HResult, e.Message, e.StackTrace), e);
            }
            return(keyExists);
        }