/// <summary>
        /// Generate an X509 cert that works with the HealthVault SDK
        /// </summary>
        /// <param name="applicationID"></param>
        /// <param name="alwaysCreate"></param>
        /// <param name="storeLocation"></param>
        public ApplicationCertificate(Guid applicationID, bool alwaysCreate, StoreLocation storeLocation)
        {
            using (CertificateStore store = new CertificateStore(storeLocation))
            {
                if (!alwaysCreate)
                {
                    //
                    // Use an existing cert, if any
                    //
                    _certificate = store[applicationID];
                }

                if (_certificate == null)
                {
                    CreateCert(applicationID, NumberOfYears);
                    AddNativeCertToStore();

                }
            }
        }
        /// <summary>
        /// Deletes the certificate created as part of application creation
        /// </summary>
        /// 
        /// <exception cref="InvalidConfigurationException">
        /// The required application-specific certificate is not found,
        /// </exception>
        /// 
        public void DeleteCertificate()
        {
            if (_childCert == null)
            {
                throw Validator.InvalidConfigurationException("InvalidApplicationCertificate");
            }

            using (CertificateStore store = new CertificateStore(StoreLocation.CurrentUser))
            {
                store.RemoveCert(_childCert.Certificate);
                _childCert.Dispose();
                _childCert = null;
            }

            ApplicationCertificate.DeleteKeyContainer(_applicationId);
        }