private void btnSign_Click(object sender, EventArgs e) { x_plaintextForSignature = Encoding.UTF8.GetBytes(txtSignPlaintext.Text); x_alg_signature.KeySize = int.Parse(cboKeySizes.SelectedValue.ToString()); x_xml_string_signature = x_alg_signature.ToXmlString(true); ElGamal x_sign_alg = new ElGamalManaged(); x_sign_alg.FromXmlString(x_alg_signature.ToXmlString(true)); x_signature = x_sign_alg.Sign(x_plaintextForSignature); txtSignedPlainText.Text = Convert.ToBase64String(x_signature); }
public override byte[] CreateSignature(byte[] p_data) { if (o_hash_name == null || o_key == null) { throw new CryptographicException("Qelesi dhe Hash algoritmi duhet te caktohen!"); } else { HashAlgorithm x_hash_alg = HashAlgorithm.Create(o_hash_name); byte[] x_pkcs = ElGamalSignatureFormatHelper.CreateEMSA_PKCS1_v1_5_ENCODE(p_data, x_hash_alg, o_key.KeyStruct.P.bitCount()); return(o_key.Sign(x_pkcs)); } }
private void btnSign_Click(object sender, EventArgs e) { x_plaintextForSignature = Encoding.UTF8.GetBytes(txtSignPlaintext.Text); // Create an instance of the algorithm and generate some keys // set the key size - keep is small to speed up the tests x_alg_signature.KeySize = int.Parse(cboKeySizes.SelectedValue.ToString()); // extract and print the xml string (this will cause // a new key pair to be generated) string x_xml_string = x_alg_signature.ToXmlString(true); ElGamal x_sign_alg = new ElGamalManaged(); // set the keys - note that we export with the // private parameters since we are signing data x_sign_alg.FromXmlString(x_alg_signature.ToXmlString(true)); x_signature = x_sign_alg.Sign(x_plaintextForSignature); txtSignedPlainText.Text = Encoding.UTF8.GetString(x_signature); // verify the signature }