Exemplo n.º 1
0
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>   Gets rsa keys as XML </summary>
        ///
        /// <remarks>   Chris, 4/2/2020. </remarks>
        ///
        /// <param name="rsa">                      The rsa. </param>
        /// <param name="includePrivateParameters"> True to include, false to exclude the private
        ///                                         parameters. </param>
        ///
        /// <returns>   The rsa key as XML. </returns>
        ////////////////////////////////////////////////////////////////////////////////////////////////////
        public string GetRSAKeyAsXML(RSACryptoServiceProvider rsa, bool includePrivateParameters)
        {
            var paramsPrivate = rsa.ExportParameters(includePrivateParameters);

            var sb = new StringBuilder("<RSAKeyValue>");

            sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.Modulus), paramsPrivate.Modulus));
            sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.Exponent), paramsPrivate.Exponent));
            if (includePrivateParameters)
            {
                sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.P), paramsPrivate.P));
                sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.Q), paramsPrivate.Q));
                sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.DP), paramsPrivate.DP));
                sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.DQ), paramsPrivate.DQ));
                sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.InverseQ), paramsPrivate.InverseQ));
                sb.Append(CU.cdeCreateXMLElement(nameof(paramsPrivate.D), paramsPrivate.D));
            }
            sb.Append("</RSAKeyValue>");
            return(sb.ToString());
        }