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); }
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); }
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; }
//public ElGamalPaddingMode Padding; public abstract void ImportParameters(ElGamalModifiedParameters p_parameters);