Exemplo n.º 1
0
        private void btnDecode_Click(object sender, System.EventArgs e)
        {
            LicenseKey.GenerateKey gkey;
            int    numtokens;
            int    lop;
            string result;
            string tokenvalue = "";


            if (txtKeyInput.Text.Length == 0)
            {
                MessageBox.Show("Enter a Key Template", "Layout");
                txtKeyInput.Focus();
                return;
            }

            gkey = new LicenseKey.GenerateKey();

            // set the base type.
            if (rdobtn10.Checked)
            {
                // use base 10
                gkey.UseBase10 = true;
            }
            else
            {
                // use base 16
                gkey.UseBase10 = false;
            }

            // set the token type.
            if (rdobtnBytes.Checked)
            {
                // use bytes
                gkey.UseBytes = true;
            }
            else
            {
                // use bits
                gkey.UseBytes = false;
            }

            // set the Checksum type.
            if (rdoBtnChksum1.Checked)
            {
                // use Algorithm 1
                gkey.ChecksumAlgorithm = Checksum.ChecksumType.Type1;
            }
            else
            {
                // use Algorithm 2
                gkey.ChecksumAlgorithm = Checksum.ChecksumType.Type2;
            }


            // Set the number of tokens.
            numtokens = listView1.Items.Count;
            if (numtokens > 0)
            {
                gkey.MaxTokens = numtokens;
                lop            = 0;
                foreach (ListViewItem item in listView1.Items)
                {
                    LicenseKey.GenerateKey.TokenTypes ttypes;
                    string tempstr;

                    tempstr = item.SubItems[1].Text;
                    ttypes  = LicenseKey.GenerateKey.TokenTypes.NUMBER;                    // default junk
                    switch (tempstr)
                    {
                    case "numeric":
                    case "Numeric":
                        ttypes = LicenseKey.GenerateKey.TokenTypes.NUMBER;
                        break;

                    case "date":
                    case "Date":
                        ttypes = LicenseKey.GenerateKey.TokenTypes.DATE;
                        break;

                    case "character":
                    case "Character":
                        ttypes = LicenseKey.GenerateKey.TokenTypes.CHARACTER;
                        break;

                    default:
                        MessageBox.Show("Illegal Token type in switch", "Generatekey");
                        break;
                    }
                    try
                    {
                        gkey.AddToken(lop, item.SubItems[0].Text, ttypes, item.SubItems[2].Text);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error is " + ex.InnerException);
                        btnAdd.Focus();
                        return;
                    }
                    lop++;
                }
                gkey.LicenseTemplate = txtKeyInput.Text;
                // first create the key
                try
                {
                    gkey.CreateKey();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error exception is: " + ex.Message);
                    return;
                }
                txtLicKey.Text = gkey.GetLicenseKey();
                foreach (ListViewItem item in listView1.Items)
                {
                    tokenvalue = item.SubItems[0].Text;
                    // now decode the key
                    try
                    {
                        result = gkey.DisassembleKey(tokenvalue);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Error exception is: " + ex.Message);
                        return;
                    }
                    item.SubItems[3].Text = result;
                }
            }
        }