diff options
author | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-11-23 08:41:56 +0800 |
---|---|---|
committer | Yuuta Liang <yuutaw@student.cs.ubc.ca> | 2023-11-23 08:41:56 +0800 |
commit | 4d903cf80c4f2f8a5d6b22964ed23d8584fdbed4 (patch) | |
tree | 2ff4361e31afe6c4685511fc8ff90d090af13bf6 /src/main/ui/MainUI.java | |
parent | 1f60e26c8023eed7205fb4c7ded2dc0eea6b6d57 (diff) | |
download | jca-4d903cf80c4f2f8a5d6b22964ed23d8584fdbed4.tar jca-4d903cf80c4f2f8a5d6b22964ed23d8584fdbed4.tar.gz jca-4d903cf80c4f2f8a5d6b22964ed23d8584fdbed4.tar.bz2 jca-4d903cf80c4f2f8a5d6b22964ed23d8584fdbed4.zip |
Add QR code
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'src/main/ui/MainUI.java')
-rw-r--r-- | src/main/ui/MainUI.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/main/ui/MainUI.java b/src/main/ui/MainUI.java index 9637d79..34cc224 100644 --- a/src/main/ui/MainUI.java +++ b/src/main/ui/MainUI.java @@ -92,6 +92,7 @@ public class MainUI extends JFrame { private final JButton buttonGenPrivKey = btn("Generate", 'G', this::onGeneratePrivateKey); private final JButton buttonInstallCA = btn("Install", 'I', this::onInstallCA); private final JButton buttonGenCSR = btn("CSR", this::onSignCSR); + private final QRPanel panelQR = new QRPanel(256); private final JToolBar toolbarCA = new JToolBar(); private final JButton buttonCAToolbarCRL = btn("CRL", "publisher.png", this::onCRL); @@ -192,6 +193,17 @@ public class MainUI extends JFrame { renderRefresh(); } + /** + * EFFECTS: Set the QR code data to either null (no public key) or PEM-encoded PKCS#1 public key. + */ + private void renderQRPublicKey() { + if (ca.getPublicKey() == null) { + panelQR.setData(null); + return; + } + panelQR.setData(Utils.toPEM(Utils.byteToByte(ca.getPublicKey().getEncoded()), "PUBLIC KEY")); + } + // -----END HELPER METHODS----- // -----BEGIN DATA OBSERVERS----- @@ -327,7 +339,8 @@ public class MainUI extends JFrame { panelTabCA.add(buttonGenPrivKey, new GCBuilder().gridXY(1, 1).fill(HORIZONTAL).build()); panelTabCA.add(buttonInstallCA, new GCBuilder().gridXY(1, 2).fill(HORIZONTAL).build()); panelTabCA.add(buttonGenCSR, new GCBuilder().gridXY(2, 2).fill(HORIZONTAL).build()); - panelTabCA.add(new JPanel(), new GCBuilder().gridXY(3, 3).expandXY().fill(BOTH).build()); + panelTabCA.add(panelQR, new GCBuilder().gridY(3).fill(HORIZONTAL).build()); + panelTabCA.add(new JPanel(), new GCBuilder().gridXY(4, 4).expandXY().fill(BOTH).build()); tabbedPane.addTab("Certs", panelCertsTab = defView(scrTbl(tableCerts), "No issued certs")); tabbedPane.addTab("Templates", panelTmpTab = defView(scrTbl(tableTemplates), "No templates")); @@ -339,6 +352,7 @@ public class MainUI extends JFrame { * MODIFIES: this */ private void renderCAPage() { + renderQRPublicKey(); if (ca.getPublicKey() == null) { labelPrivateKey.setText("Private key not installed"); } else { |