Package org.damour.base.client.ui.password

Source Code of org.damour.base.client.ui.password.WPAKeyGenerator

package org.damour.base.client.ui.password;

import org.damour.base.client.ui.buttons.Button;

import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.FocusEvent;
import com.google.gwt.event.dom.client.FocusHandler;
import com.google.gwt.user.client.Random;
import com.google.gwt.user.client.ui.FlexTable;
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.TextBox;

public class WPAKeyGenerator {

  ListBox lengthCombo = new ListBox(false);
  TextBox asciiText = new TextBox();
  TextBox hexText = new TextBox();

  public WPAKeyGenerator() {

    hexText.setVisibleLength(30);
    hexText.setWidth("450px");
    hexText.addFocusHandler(new FocusHandler() {
     
      public void onFocus(FocusEvent event) {
        hexText.selectAll();
      }
    });
    asciiText.setVisibleLength(30);
    asciiText.setWidth("250px");
    asciiText.addFocusHandler(new FocusHandler() {
     
      public void onFocus(FocusEvent event) {
        asciiText.selectAll();
      }
    });

    lengthCombo.addItem("160-bit WPA Key (minimum security)", "20");
    lengthCombo.addItem("504-bit WPA Key (maximum security)", "63");

    Button generateButton = new Button("Generate Key");
    generateButton.addClickHandler(new ClickHandler() {
     
      public void onClick(ClickEvent event) {
        int length = Integer.parseInt(lengthCombo.getValue(lengthCombo.getSelectedIndex()));
        String ascii = "";
        String hex = "";
        for (int i = 0; i < length; i++) {
          char character = PasswordConst.WEPCharacters[Random.nextInt(PasswordConst.WEPCharacters.length)];
          ascii += character;
          hex += Integer.toHexString(character);
        }
        asciiText.setText(ascii);
        hexText.setText(hex);
      }
    });

    Button generateCustomKeyButton = new Button("Use as Custom Phrase");
    generateCustomKeyButton.addClickHandler(new ClickHandler() {
     
      public void onClick(ClickEvent event) {
        String ascii = asciiText.getText();
        String hex = "";
        for (int i = 0; i < ascii.length(); i++) {
          char character = ascii.charAt(i);
          hex += Integer.toHexString(character);
        }
        hexText.setText(hex);
      }
    });

    FlexTable generatePanel = new FlexTable();
    generatePanel.setWidget(0, 0, new Label("Key size:", false));
    generatePanel.setWidget(0, 1, lengthCombo);
    generatePanel.setWidget(0, 2, generateButton);

    generatePanel.setWidget(1, 0, new Label("ASCII"));
    generatePanel.setWidget(1, 1, asciiText);
    generatePanel.setWidget(1, 2, generateCustomKeyButton);
    generatePanel.getCellFormatter().setHorizontalAlignment(1, 0, HasHorizontalAlignment.ALIGN_CENTER);

    generatePanel.setWidget(2, 0, new Label("HEX"));
    generatePanel.setWidget(2, 1, hexText);
    generatePanel.getCellFormatter().setHorizontalAlignment(2, 0, HasHorizontalAlignment.ALIGN_CENTER);
    generatePanel.getFlexCellFormatter().setColSpan(2, 1, 2);

    HorizontalPanel contentTable = new HorizontalPanel();
    contentTable.setStyleName("contentPanel");
    contentTable.add(generatePanel);

    HorizontalPanel applicationPanel = new HorizontalPanel();
    applicationPanel.setStyleName("applicationPanel");
    applicationPanel.add(contentTable);

    RootPanel rp = RootPanel.get("content");
    rp.add(applicationPanel);
  }
}
TOP

Related Classes of org.damour.base.client.ui.password.WPAKeyGenerator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.