Beispiel #1
0
        internal static X509Certificate2 LoadCertificateWithPrivateKey(string thumbprint, WriteVerboseDelegate writeVerbose)
        {
            X509Certificate2 exchangeFederationCertByThumbprint = FederationCertificate.GetExchangeFederationCertByThumbprint(thumbprint, writeVerbose);

            if (!exchangeFederationCertByThumbprint.HasPrivateKey)
            {
                writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint));
                return(null);
            }
            try
            {
                if (!(exchangeFederationCertByThumbprint.PrivateKey is RSACryptoServiceProvider))
                {
                    writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint));
                    return(null);
                }
            }
            catch (CryptographicException)
            {
                writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint));
                return(null);
            }
            catch (NotSupportedException)
            {
                writeVerbose(Strings.ErrorCertificateHasNoPrivateKey(thumbprint));
                return(null);
            }
            return(exchangeFederationCertByThumbprint);
        }