Urgent! What is wrong with this program? Part 1
Please, i am writing a project on implementation of Rivest-Shamir-Adleman(RSA) algorithm on local area network(LAN).But the JAVA program i wrote refused to work. please, can anyone help me with this.The program is given below is only a part of the entire program due to space constraint. The remain program will be sent in the next post.Thanks
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
public class My_RSA extends JFrame {
private Container container;
private JFrame iFrame,jFrame, kFrame;
private GridBagLayout layout;
private GridBagConstraints constraints;
private JTextField nField, dField;
private JTextArea messageArea, cypherArea, plainArea,keysArea;
private JScrollPane messagescroll, cypherScroll, plainScroll;
private JButton readButton, sendButton, okButton, cancelButton;
private JPanel jPanel, nPanel,dPanel, okPanel,myPanel, mePanel,
statusPanel, progressPanel,cancelPanel;
private JPanel boardPanel1, boardPanel2, cypherPanel,plainPanel,
messagePanel, readPanel, sendPanel;
private JLabel emptyLabel, jLabel, nLabel, dLabel, dumLabel1, dumLabel2,
statusLabel;
private JLabel emptyLabel1, emptyLabel2 , emptyLabel3, emptyLabel4;
private JPanel emptyPanel, emptyPanel1, emptyPanel2, emptyPanel3,
emptyPanel4;
private String message = "", plaintext = "", cyphertext = "", publish = "";
private long d, e, m, n, p, q;
private final JProgressBar current = new JProgressBar(0, 100);
private KeyGenerator gen;
private Encryption enc;
private Decryption dec;
private Sending go;
public My_RSA()
{
Super("RSA Encryption System");
Container = getContentPane();
layout = new GridBagLayout();
container.setLayout(layout);
constraints = new GridBagConstraints();
gen = new KeyGenerator();
kFrame = new JFrame("Sending...");
mePanel = new JPanel();
mePanel.setLayout(layout);
progressPanel = new JPanel();
progressPanel.add(current);
cancelPanel = new JPanel();
statusPanel = new JPanel();
statusPanel = new JLabel(" From A to B");
statusPanel.add(statusLabel);
cancelButton = new JButton("cancel");
cancelButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event)
{
Current.setValue(0);
kFrame.setVisible(false);
}
}
);
Current.setSize(100, 5);
cancelPanel.add(cancelButton);
emptyLabel1 = new JLabel("");
emptyLabel2 = new JLabel("");
emptyLabel3 = new JLabel("");
emptyLabel4 = new JLabel("");
emptyPanel1 = new JPanel();
emptyPanel2 = new JPanel();
emptyPanel3 = new JPanel();
emptyPanel4= new JPanel();
readPanel = new JPanel();
sendPanel = new JPanel();
messagePanel = new JPanel();
cypherPanel = new JPanel();
plainPanel = new JPanel()
boardPanel1 = new JPanel();
boardPanel1.setLayout(new FlowLayout());
boardPanel2 = new JPanel();
boardPanel2.setLayout(new FlowLayout());
messageArea = new JTextArea(5,60);
messageArea.setLineWrap(true);
messageArea.setWrapStyleWord(true);
messageArea.setFont(new Font("Monospaced", Font.PLAIN, 12));
messageArea.setEditable(true);
cypherArea = new JTextArea(20,20);
cypherArea.setLineWrap(true);
cypherArea.setWrapStyleWord(true);
cypherArea.setFont(new Font(" Serif", Font.PLAIN, 12));
cypherArea.setEditable(false);
plainArea = new JTextArea(20,22);
plainArea.setLineWrap(true);
plainArea.setWrapStyleWord(true);
plainArea.setFont(new Font(" Monospaced", Font.PLAIN, 12));
plainArea.setEditable(false);
messageScroll = new JScrollPane(messageArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEVER);
cypherScroll = new JScrollPane(cypherArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
plainScroll = new JScrollPane(plainArea,
ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
readButton = new JButton("read>>>");
readButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event)
{
secretKey();
}
}
);
sendButton = new JButton("send");
sendButton.addActionListener(
new ActionListner() {
public void actionPerformed(ActionEvent event)
{
kFrame.setVisible(false);
publish = "";
do {
p = gen.primeNumber();
}while(!(p > 10) || !(p < 26) );
do {
q = gen.primeNumber();
}while( (q <=p) || !((q-p) >2) );
n = p*q;
m = (p-1) * (q-1);
e = gen.coprime(m);
d = gen.find_d(m,e);
message = messageArea.getText();
enc = new Encryption(message);
cyphertext = enc.encrypt(e,n);
publish_Keys();
kFrame.setVisible(true);
go = newSending(cyphertext,kFrame,iFrame,
cypherArea, current, container);
go.start();
kFrame.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
container.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
}
);
cypherPanel.add(cypherScroll);
cypherPanel.setBorder(BorderFactory.createTitledBorder("cyphertext"));
readPanel.add(readButton);
plainPanel.add(plainScroll);
plainPanel.setBorder(BorderFactory.createTitledBorder("recovered plaintext"));
messagePanel.add(messageScroll);
sendPanel.add(sendButton);
emptyPanel1.add(emptyLabel1);
emptyPanel2.add(emptyLabel2);
emptyPanel3.add(emptyLabel3);
emptyPanel4.add(emptyLabel4);
boardPanel1.add(cypherPanel);
boardPanel1.add(readPanel);
boardPanel1.add(plainPanel);
Urgent! What is wrong with this program? Part 2
This is the continuation of the program.
Code:
boardPanel1.setBorder(BorderFactory.createTitledBorder("incoming message"));
boardPanel2.add(messagePanel);
boardPanel2.add(sendPanel);
boardPanel2.setBorder(BorderFactory.createTitledBorder("outgoing message"));
constraints.fill = GridBagConstraints.BOTH;
addComponent3(emptyPanel1, 0, 0, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent3(emptyPanel2, 1, 0, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent3(statusPanel, 2, 0, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent3(progressPanel, 3, 0, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent3(cancelPanel, 3, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(emptyPanel1, 0, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(emptyPanel1, 0, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(boardPanel1, 1, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(emptyPanel2, 2, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(emptyPanel3, 3, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(emptyPanel4, 4, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent(boardPanel2, 5, 1, 1, 1);
kFrame.getContentPane().add(mePanel, BorderLayout.CENTER);
kFrame.setResizable(false);
kFrame.setSize(310,150);
kFrame.setVisible(false);
kFrame.setLocation(270, 390);
setResizable(false);
setSize(550,680);
setVisible(true);
setLocation(250,42);
}
private void publish_Keys()
{
iFrame = new JFrame("Publishing Keys");
publish += "\n PUBLIC KEY:\n (n, e) = ("+n+", "+e+")";
publish += "\n \n SECRET KEY:\n (n, d) = ("+n+", "+d+")";
keysArea = new JTextArea();
keysArea.setFont( new Font("Monospaced", Font.BOLD, 14) );
keysArea.setEditable(false);
keysArea.setText(publish);
iFrame.getContentPane().add(new JScrollPane(keysArea),
Borderlayout.CENTER);
iFrame.setResizable(false);
iFrame.setSize(210, 220);
iFrame.setVisible(false);
iFrame.setLocation(570, 390);
}
private void secretKey()
{
jFrame = new JFrame("SECRET KEY");
myPanel = new JPanel();
jPanel = new JPanel();
nPanel = new JPanel();
dPanel = new JPanel();
emptyPanel = new JPanel();
okPanel = new JPanel();
emptyLabel = new JLabel("");
nLabel = new JLabel("n: ");
dLabel = new JLabel("d: ");
dumLabel1 = new JLabel(" ");
jLabel = new JLabel("Enter the Secret Key:");
jPanel.add(jlabel);
okButton = new JButton("OK");
okButton.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent event)
{
jFrame.setVisible(false);
n = Long.parseLong(nField.getText());
d = Long.parseLong(dField.getText());
cyphertext = cypherArea.getText();
dec = new Decryption(cyphertext);
plaintext = dec.decrypt(d,n);
plainArea.setText(plaintext);
}
}
);
myPanel.setLayout(layout);
nField = new JTextField(10);
nField.setFont(new Font("Monospaced" , Font.PLAIN, 14));
dField = new JTextField(10);
dField.setFont(new Font("Monospaced" , Font
Urgent! What is wrong with this program? Part 3
This is the last part of the program.Thank you for your anticipated cooperation.
Code:
dField.setFont(new Font("Monospaced" , Font.PLAIN, 14));
nPanel.setLayout(new FlowLayout());
nPanel.add(nLabel);
nPanel.add(nField);
dPanel.setLayout(new FlowLayout());
dPanel.add(dLabel);
dPanel.add(dField);
emptyPanel.add(emptyLabel);
okPanel.add(okButton);
constraints.fill = GridBagConstraints.BOTH;
addComponent2(jPanel, 0, 0, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent2(nPanel, 1, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent2(dPanel, 2, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent2(emptyPanel, 3, 1, 1, 1);
constraints.fill = GridBagConstraints.BOTH;
addComponent2(okButton, 4, 1, 1, 1);
jFrame.getContentPane().add(myPanel);
jFrame.setLocation(438, 360);
jFrame.setResizable(false);
jFrame.setSize(200, 220);
jFrame.setVisible(true);
}
private void addComponent(Component component, int row, int column, int width,
int height)
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
container.add(component);
}
private void addComponent2(Component component, int row, int column, int width, int height)
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
myPanel.add(component);
}
private void addComponent3(Component component, int row, int column, int width, int height)
{
constraints.gridx = column;
constraints.gridy = row;
constraints.gridwidth = width;
constraints.gridheight = height;
layout.setConstraints(component, constraints);
mePanel.add(component);
}
public static void main(String args[])
{
My_RSA app = new My_RSA();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}