Example #1
0
        public override ElGamalModifiedParameters ExportParameters(bool p_include_private_params)
        {
            if (NeedToGenerateKey())
            {
                CreateKeyPair(KeySizeValue);
            }

            // create the parameter set and set the public values of the parameters
            var x_params = new ElGamalModifiedParameters
            {
                P = o_key_struct.P.ToByteArray(),
                G = o_key_struct.G.ToByteArray(),
                Y = o_key_struct.Y.ToByteArray(),
                //Padding = o_key_struct.Padding
            };

            // if required, include the private value, X
            if (p_include_private_params)
            {
                x_params.X = o_key_struct.X.ToByteArray();
            }
            else
            {
                // ensure that we zero the value
                x_params.X = new byte[1];
            }

            return(x_params);
        }
Example #2
0
        public override void FromXmlString(string p_string)
        {
            var x_params = new ElGamalModifiedParameters();

            var keyValues = XDocument.Parse(p_string).Element("ElGamalKeyValue");

            x_params.P = Convert.FromBase64String((String)keyValues.Element("P") ?? "");
            x_params.G = Convert.FromBase64String((String)keyValues.Element("G") ?? "");
            x_params.Y = Convert.FromBase64String((String)keyValues.Element("Y") ?? "");
            //x_params.Padding = (ElGamalPaddingMode)Enum.Parse(typeof(ElGamalPaddingMode), (String)keyValues.Element("Padding") ?? "");
            x_params.X = Convert.FromBase64String((String)keyValues.Element("X") ?? "");

            ImportParameters(x_params);
        }
Example #3
0
        public override void ImportParameters(ElGamalModifiedParameters p_parameters)
        {
            // obtain the  big integer values from the byte parameter values
            o_key_struct.P = new BigInteger(p_parameters.P);
            o_key_struct.G = new BigInteger(p_parameters.G);
            o_key_struct.Y = new BigInteger(p_parameters.Y);
            //o_key_struct.Padding = p_parameters.Padding;

            if (p_parameters.X != null && p_parameters.X.Length > 0)
            {
                o_key_struct.X = new BigInteger(p_parameters.X);
            }

            // set the length of the key based on the import
            KeySizeValue = o_key_struct.P.BitCount();
            //Padding = o_key_struct.Padding;
        }
Example #4
0
        //public ElGamalPaddingMode Padding;

        public abstract void ImportParameters(ElGamalModifiedParameters p_parameters);