private void gen_key_rsa_sign_Click(object sender, EventArgs e) { int keysize = Convert.ToInt32(key_size_rsa_sign.SelectedItem.ToString()); ArrayList getkeys = rsa_keys.generate_keys(keysize); BigInteger[] keys = new BigInteger[6]; int j = 0; foreach (BigInteger i in getkeys) { keys[j++] = i; } P_RSA = keys[0]; Q_RSA = keys[1]; N = keys[2]; PHI_N = keys[3]; PK_RSA = keys[4]; SK_RSA = keys[5]; p_rsa_sign.Text = P_RSA.ToString(); q_rsa_sign.Text = Q_RSA.ToString(); n_rsa_sign.Text = N.ToString(); phin_rsa_sign.Text = PHI_N.ToString(); pk_rsa_sign.Text = PK_RSA.ToString(); sk_rsa_sign.Text = SK_RSA.ToString(); rsa_signature = new RSASignature(PK_RSA, N, PHI_N, SK_RSA, size_rsa_sign); }
private void file_key_rsa_sign_Click(object sender, EventArgs e) { OpenFileDialog get_file = new OpenFileDialog(); string file_name = ""; if (get_file.ShowDialog() == DialogResult.OK) { file_name = get_file.FileName; } string[] keys = new string[6]; try { using (StreamReader sr = new StreamReader(file_name)) { string line; int count = 0; while ((line = sr.ReadLine()) != null) { keys[count++] = line; } if (keys[3].Length <= 320) { key_size_rsa_sign.Text = 1024.ToString(); size_rsa_sign = 1024; } else { key_size_rsa_sign.Text = 2048.ToString(); size_rsa_sign = 2048; } P_RSA = BigInteger.Parse(keys[0]); Q_RSA = BigInteger.Parse(keys[1]); N = BigInteger.Parse(keys[2]); PHI_N = BigInteger.Parse(keys[3]); PK_RSA = BigInteger.Parse(keys[4]); SK_RSA = BigInteger.Parse(keys[5]); } p_rsa_sign.Text = P_RSA.ToString(); q_rsa_sign.Text = Q_RSA.ToString(); n_rsa_sign.Text = N.ToString(); phin_rsa_sign.Text = PHI_N.ToString(); pk_rsa_sign.Text = PK_RSA.ToString(); sk_rsa_sign.Text = SK_RSA.ToString(); rsa_signature = new RSASignature(PK_RSA, N, PHI_N, SK_RSA, size_rsa_sign); } catch { return; } }
public IActionResult CreateLicense(string format, string sign, [FromBody] LicenseModel model) { ILicense license = null; format = format.ToUpperInvariant(); switch (format) { case "XML": license = new XmlLicense(); break; case "ASCII": case "BASE32": license = new StringLicense(); break; default: return(BadRequest()); } ISignatureProvider signature = null; switch (sign.ToUpperInvariant()) { case "ECDSA": var ecdsa = new ECDsaSignature(ECDsaKeySize.KeySize112bit); ecdsa.CreateKeyPair(); // Embed public key information in the license ecdsa.GenerateKeyInfo = true; model.PublicKey = ecdsa.PublicKey; signature = ecdsa; break; case "RSA": var rsa = new RSASignature(1024); rsa.CreateKeyPair(); signature = rsa; break; default: return(BadRequest()); } // Fill license license.WithId(model.Id ?? "1") .IssuedAt(DateTime.UtcNow) .WithType(model.Type ?? string.Empty) .ForProduct(model.Product ?? string.Empty, model.Version ?? string.Empty) .LicensedTo(model.Licensee ?? string.Empty); if (model.ExpireDate.HasValue) { license.ExpiresAt(model.ExpireDate.Value.ToUniversalTime()); } if (model.SupportExpireDate.HasValue) { license.SupportExpiresAt(model.SupportExpireDate.Value.ToUniversalTime()); } // Sign license var licenseBuilder = license.SignWith(signature); var stringBuilder = licenseBuilder as StringLicenseBuilder; if (stringBuilder != null) { switch (format) { case "ASCII": stringBuilder.Format = StringFormat.Ascii; break; case "BASE32": stringBuilder.Format = StringFormat.Base32; break; } } // Get license key model.LicenseKey = licenseBuilder.ToReadableString(); return(Ok(model)); }