Пример #1
0
        public static bool TryGetECDsaKeys(this ScpConfig.Certificate config, string password, out byte[] publicKeyRaw, out byte[] privateKeyRaw)
        {
            publicKeyRaw  = null;
            privateKeyRaw = null;

            if (config == null || !config.TryGetX509(password, out X509Certificate2 x509))
            {
                return(false);
            }

            try
            {
                var publicKey = x509.GetECDsaPublicKey() as ECDsaCng;
                if (publicKey == null)
                {
                    return(false);
                }

                var privateKey = x509.GetECDsaPrivateKey() as ECDsaCng;
                if (privateKey == null)
                {
                    return(false);
                }

                publicKeyRaw  = publicKey.ExportPublicKeyRaw();
                privateKeyRaw = privateKey.ExportPrivateKeyRaw();
            }
            catch (Exception)
            {
                return(false);
            }

            return(true);
        }