aboutsummaryrefslogtreecommitdiff
path: root/src/main/ui/IssueScreen.java
diff options
context:
space:
mode:
authorYuuta Liang <yuutaw@student.cs.ubc.ca>2023-11-28 18:19:39 -0800
committerYuuta Liang <yuutaw@student.cs.ubc.ca>2023-11-28 18:19:39 -0800
commit1073af21305360bd33903c533cdac57e9f936294 (patch)
tree2c2d9c343ffe2577286fb53e016f06f6cdc53cbf /src/main/ui/IssueScreen.java
parente13adbb9a9146dd5ece890449e3cad958a502f86 (diff)
downloadjca-1073af21305360bd33903c533cdac57e9f936294.tar
jca-1073af21305360bd33903c533cdac57e9f936294.tar.gz
jca-1073af21305360bd33903c533cdac57e9f936294.tar.bz2
jca-1073af21305360bd33903c533cdac57e9f936294.zip
Move TUI and GUI into separate packages
Signed-off-by: Yuuta Liang <yuutaw@student.cs.ubc.ca>
Diffstat (limited to 'src/main/ui/IssueScreen.java')
-rw-r--r--src/main/ui/IssueScreen.java167
1 files changed, 0 insertions, 167 deletions
diff --git a/src/main/ui/IssueScreen.java b/src/main/ui/IssueScreen.java
deleted file mode 100644
index 3e70a0a..0000000
--- a/src/main/ui/IssueScreen.java
+++ /dev/null
@@ -1,167 +0,0 @@
-package ui;
-
-import model.asn1.exceptions.ParseException;
-import model.ca.Template;
-import model.csr.CertificationRequest;
-import model.pki.cert.Certificate;
-import model.x501.Name;
-
-/**
- * The screen that accepts a CSR and template and allows user to change its properties and issue.
- */
-public class IssueScreen implements UIHandler {
- private final JCA session;
-
- private Template template;
- private CertificationRequest incomingCSR;
-
- /**
- * EFFECTS: Init with the session.
- */
- public IssueScreen(JCA session) {
- this.session = session;
- }
-
- /**
- * EFFECTS: Set current template and CSR in use by args.
- * REQUIRES: args.length = 2, args[0] instanceof CertificateRequest, args[1] instanceof Template
- * MODIFIES: args[1]
- */
- @Override
- public void enter(Object... args) {
- this.incomingCSR = (CertificationRequest) args[0];
- this.template = (Template) args[1];
- }
-
- /**
- * EFFECTS: Print help.
- */
- @Override
- public void help() {
- System.out.print("show\tView the current certificate\n"
- + "set\tSet properties or template\n"
- + "commit\tIssue the certificate\n"
- + "exit\tDiscard and go to main menu\n"
- + "help\tPrint this message\n");
- }
-
- /**
- * EFFECTS: Print pending cert info.
- */
- @Override
- public void show() {
- System.out.println("Requested Subject:\t" + incomingCSR.getCertificationRequestInfo().getSubject());
- System.out.println("Subject:\t" + (template.getSubject() == null
- ? incomingCSR.getCertificationRequestInfo().getSubject()
- : template.getSubject()));
- System.out.println("Template:\t" + template.getName());
- System.out.println("Validity:\t" + template.getValidity() + " days");
- }
-
- /**
- * EFFECTS: Issue the cert and log it.
- * MODIFIES: session
- */
- @Override
- public void commit() {
- try {
- Certificate certificate = session.getCa().signCert(incomingCSR.getCertificationRequestInfo(), template);
- session.save();
- System.out.println(Utils.toPEM(certificate.encodeDER(), "CERTIFICATE"));
- session.setScreen(Screen.MAIN);
- } catch (Throwable e) {
- System.out.println(e.getMessage());
- }
- }
-
- /**
- * EFFECTS: Set or unset the subject.
- * MODIFIES: this
- */
- private void handleIssueSetSubject(String val) {
- try {
- if (val == null) {
- template = new Template(template.getName(), template.isEnabled(), (Name) null, template.getValidity());
- } else {
- template = new Template(template.getName(), template.isEnabled(), val, template.getValidity());
- }
- } catch (ParseException e) {
- System.out.println(e.getMessage());
- }
- }
-
- /**
- * EFFECTS: Set or unset the validity.
- * MODIFIES: this
- */
- private void handleIssueSetValidity(String val) {
- if (val == null) {
- System.out.println("Cannot unset validity");
- return;
- }
- try {
- long i = Long.parseLong(val);
- if (i <= 0) {
- System.out.println("Invalid validity days");
- return;
- }
- template = new Template(template.getName(), template.isEnabled(), template.getSubject(), i);
- } catch (NumberFormatException ignored) {
- System.out.println("Invalid validity days");
- }
- }
-
- /**
- * EFFECTS: Handle the set command.
- * MODIFIES: this
- */
- private void handleIssueSet(String... args) {
- if (args.length != 2 && args.length != 3) {
- System.out.println("Usage: set <key> <value>");
- System.out.println("Supported keys: subject validity");
- return;
- }
- String val = args.length == 3 ? args[2] : null;
- switch (args[1]) {
- case "subject":
- handleIssueSetSubject(val);
- break;
- case "validity":
- handleIssueSetValidity(val);
- break;
- default:
- System.out.println("Unknown key");
- break;
- }
- }
-
- @Override
- public void command(String... args) {
- if (args[0].equals("set")) {
- handleIssueSet(args);
- } else {
- help();
- }
- }
-
- /**
- * EFFECTS: Clear the certificates and return main.
- * MODIFIES: this
- */
- @Override
- public Screen exit() {
- incomingCSR = null;
- template = null;
- return Screen.MAIN;
- }
-
- /**
- * EFFECTS: Return "/subj/ %"
- */
- @Override
- public String getPS1() {
- return String.format("/%s/ %%", template.getSubject() == null
- ? incomingCSR.getCertificationRequestInfo().getSubject()
- : template.getSubject());
- }
-}