-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathLock.java
More file actions
122 lines (118 loc) · 8.39 KB
/
Lock.java
File metadata and controls
122 lines (118 loc) · 8.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package com.company;
public class Lock {
String INIT = "00110";
String WAIT = "11000";
String IDLE = "10101";
String LOGIN_REQ = "11011";
String PASS_REQ = "01110";
String UNLOCK = "00111";
String LOGOUT = "11111";
private String y = Variables.startState;
public void setY(String y) {
this.y = y;
}
String LockAlgorithm(String x){
if (y.compareTo("00001") == 0 && x.compareTo("000001") == 0) y = "00010";
if (y.compareTo("00010") == 0 && x.compareTo("000010") == 0) y = "00011";
if (y.compareTo("00011") == 0 && x.compareTo("000011") == 0) y = "00100";
if (y.compareTo("00100") == 0 && x.compareTo("000100") == 0) y = "00101";
if (y.compareTo("00100") == 0 && x.compareTo("000101") == 0) y = "00110";
if (y.compareTo("00101") == 0 && x.compareTo("000110") == 0) y = "00011";
if (y.compareTo("00101") == 0 && x.compareTo("000111") == 0) y = "00010";
if (y.compareTo("00100") == 0 && x.compareTo("001000") == 0) y = "00001";
if (y.compareTo("00011") == 0 && x.compareTo("001001") == 0) y = "00010";
if (y.compareTo("00010") == 0 && x.compareTo("001011") == 0) y = "00001";
if (y.compareTo("00101") == 0 && x.compareTo("101111") == 0) y = "01000";
// if (y.compareTo("00001") == 0 && x.compareTo("000001") == 0) y = "00010";
// if (y.compareTo("00001") == 0 && x.compareTo("000010") == 0) y = "00011";
// if (y.compareTo("00011") == 0 && x.compareTo("000011") == 0) y = "00001";
// if (y.compareTo("00011") == 0 && x.compareTo("000100") == 0) y = "00101";
// if (y.compareTo("00011") == 0 && x.compareTo("000101") == 0) y = "00100";
// if (y.compareTo("00010") == 0 && x.compareTo("000110") == 0) y = "00101";
// if (y.compareTo("00101") == 0 && x.compareTo("000111") == 0) y = "00111";
// if (y.compareTo("00101") == 0 && x.compareTo("001000") == 0) y = "01000";
// if (y.compareTo("01000") == 0 && x.compareTo("001001") == 0) y = "00100";
// if (y.compareTo("00100") == 0 && x.compareTo("001010") == 0) y = "00110";
// if (y.compareTo("01000") == 0 && x.compareTo("001011") == 0) y = "01001";
// if (y.compareTo("01000") == 0 && x.compareTo("001100") == 0) y = "01010";
// if (y.compareTo("00001") == 0 && x.compareTo("000001") == 0) {y = "00010"; return y;}
// if (y.compareTo("00001") == 0 && x.compareTo("000010") == 0) {y = "00011"; return y;}
// if (y.compareTo("00011") == 0 && x.compareTo("000011") == 0) {y = "00001"; return y;}
// if (y.compareTo("00011") == 0 && x.compareTo("000100") == 0) {y = "00101"; return y;}
// if (y.compareTo("00011") == 0 && x.compareTo("000101") == 0) {y = "00100"; return y;}
// if (y.compareTo("00010") == 0 && x.compareTo("000110") == 0) {y = "00101"; return y;}
// if (y.compareTo("00100") == 0 && x.compareTo("010110") == 0) {y = "00001"; return y;}
// if (y.compareTo("00101") == 0 && x.compareTo("000111") == 0) {y = "00111"; return y;}
// if (y.compareTo("00101") == 0 && x.compareTo("001000") == 0) {y = "01000"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001001") == 0) {y = "00100"; return y;}
// if (y.compareTo("00100") == 0 && x.compareTo("001010") == 0) {y = "00110"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001011") == 0) {y = "00011"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001100") == 0) {y = "01001"; return y;}
// if (y.compareTo("01001") == 0 && x.compareTo("101101") == 0) {y = "00011"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("111101") == 0) {y = "01010"; return y;}
//if(Main.fileOrNot.compareTo("N") == 0 || Main.fileOrNot.compareTo("n") == 0) {
// Jumps
// if (y.compareTo(INIT) == 0 && x.compareTo("000001") == 0) y = WAIT; // INIT -> WAIT
// if (y.compareTo(WAIT) == 0 && x.compareTo("100010") == 0) y = IDLE; // WAIT -> IDLE
// if (y.compareTo(WAIT) == 0 && x.compareTo("100011") == 0) y = LOGIN_REQ; // WAIT -> LOGIN_REQ
// if (y.compareTo(LOGIN_REQ) == 0 && x.compareTo("000100") == 0) y = PASS_REQ; // LOGIN_REQ -> PASS_REQ
// if (y.compareTo(PASS_REQ) == 0 && x.compareTo("000101") == 0) y = WAIT; // PASS_REQ -> WAIT
// if (y.compareTo(PASS_REQ) == 0 && x.compareTo("000110") == 0) y = UNLOCK; // PASS_REQ -> UNLOCK
// if (y.compareTo(UNLOCK) == 0 && x.compareTo("000111") == 0) y = LOGOUT; // UNLOCK -> LOGOUT
// if (y.compareTo(LOGOUT) == 0 && x.compareTo("001000") == 0) y = WAIT; // LOGOUT -> WAIT
// if (y.compareTo(IDLE) == 0 && x.compareTo("001001") == 0) y = WAIT; // IDLE -> WAIT
// if (y.compareTo(LOGIN_REQ) == 0 && x.compareTo("001010") == 0) y = WAIT; // LOGIN_REQ -> WAIT
// if (y.compareTo(PASS_REQ) == 0 && x.compareTo("001011") == 0) y = LOGIN_REQ; // PASS_REQ -> LOGIN_REQ
// // Backdoors
// if (y.compareTo(LOGIN_REQ) == 0 && x.compareTo("001100") == 0) y = "01010"; // LOGIN_REQ -> BD1
// if (y.compareTo("01010") == 0 && x.compareTo("001101") == 0) y = LOGOUT; // BD1 -> LOGOUT
// if (y.compareTo(WAIT) == 0 && x.compareTo("001110") == 0) y = "10100"; // WAIT -> DEADSTATE
// if (y.compareTo(PASS_REQ) == 0 && x.compareTo("000001") == 0) y = INIT; // PASS_REQ -> INIT
// 00001->00010:000001
// 00010->00011:000010
// 00011->00100:000011
// 00100->00101:000100
// 00100->00110:000101
// 00101->00011:000110
// 00101->00010:000111
// 00100->00001:001000
// 00011->00010:001001
// 00010->00001:001011
// 00101->01000:100000
// if (y.compareTo("00001") == 0 && x.compareTo("000001") == 0) y = "00010";
// if (y.compareTo("00010") == 0 && x.compareTo("000010") == 0) y = "00011";
// if (y.compareTo("00011") == 0 && x.compareTo("000011") == 0) y = "00100";
// if (y.compareTo("00100") == 0 && x.compareTo("000100") == 0) y = "00101";
// if (y.compareTo("00100") == 0 && x.compareTo("000101") == 0) y = "00110";
// if (y.compareTo("00101") == 0 && x.compareTo("000110") == 0) y = "00011";
// if (y.compareTo("00101") == 0 && x.compareTo("000111") == 0) y = "00010";
// if (y.compareTo("00100") == 0 && x.compareTo("001000") == 0) y = "00001";
// if (y.compareTo("00011") == 0 && x.compareTo("001001") == 0) y = "00010";
// if (y.compareTo("00010") == 0 && x.compareTo("001011") == 0) y = "00001";
// if (y.compareTo("00101") == 0 && x.compareTo("101111") == 0) y = "01000";
// if (y.compareTo("00001") == 0 && x.compareTo("000001") == 0){ y = "00010"; return y;}
// if (y.compareTo("00001") == 0 && x.compareTo("000010") == 0) {y = "00011"; return y;}
// if (y.compareTo("00011") == 0 && x.compareTo("000011") == 0) {y = "00001"; return y;}
// if (y.compareTo("00011") == 0 && x.compareTo("000100") == 0) {y = "00101"; return y;}
// if (y.compareTo("00011") == 0 && x.compareTo("000101") == 0) {y = "00100"; return y;}
// if (y.compareTo("00010") == 0 && x.compareTo("000110") == 0) {y = "00101"; return y;}
// if (y.compareTo("00101") == 0 && x.compareTo("000111") == 0) {y = "00111"; return y;}
// if (y.compareTo("00101") == 0 && x.compareTo("001000") == 0) {y = "01000"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001001") == 0) {y = "00100"; return y;}
// if (y.compareTo("00100") == 0 && x.compareTo("001010") == 0) {y = "00110"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001011") == 0) {y = "00011"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001100") == 0) {y = "01001"; return y;}
// if (y.compareTo("01000") == 0 && x.compareTo("001101") == 0) {y = "01010"; return y;}
// }
// // Work with file
// if(Main.fileOrNot.compareTo("Y") == 0 || Main.fileOrNot.compareTo("y") == 0) {
// for(int i = 0; i < LockFromFile.countState; i++){
// if (y.compareTo(LockFromFile.masInY[i]) == 0 && x.compareTo(LockFromFile.masXIn[i]) == 0) {
// y = LockFromFile.masOutY[i];
// return y;
// }
// }
// }
return y;
}
}