-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPasswordManager2.drawio
More file actions
319 lines (319 loc) · 33.5 KB
/
PasswordManager2.drawio
File metadata and controls
319 lines (319 loc) · 33.5 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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
<mxfile host="65bd71144e">
<diagram id="n0T4ovBSpkRr5KuN8xxn" name="Page-1">
<mxGraphModel dx="1094" dy="750" grid="1" gridSize="10" guides="0" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="3300" pageHeight="4681" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="28" value="EntryOperations" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;spacingBottom=1;" parent="1" vertex="1">
<mxGeometry x="1590" y="824" width="270" height="216" as="geometry"/>
</mxCell>
<mxCell id="118" value="- searchEngine : SearchEngine " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="26" width="270" height="26" as="geometry"/>
</mxCell>
<mxCell id="121" value="- entryList : List<Entry>" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="52" width="270" height="26" as="geometry"/>
</mxCell>
<mxCell id="151" value="-passwordGenerator : Director " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="78" width="270" height="26" as="geometry"/>
</mxCell>
<mxCell id="30" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="28" vertex="1">
<mxGeometry y="104" width="270" height="8" as="geometry"/>
</mxCell>
<mxCell id="31" value="+ Edit() : void " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="112" width="270" height="26" as="geometry"/>
</mxCell>
<mxCell id="37" value="+ Delete(): void " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="138" width="270" height="26" as="geometry"/>
</mxCell>
<mxCell id="117" value="+ Search() : Entry " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="164" width="270" height="26" as="geometry"/>
</mxCell>
<mxCell id="38" value="+ Create(): Entry" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="28" vertex="1">
<mxGeometry y="190" width="270" height="26" as="geometry"/>
</mxCell>
<object label="Entry " notes="" id="6">
<mxCell style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="1150" y="500" width="200" height="200" as="geometry"/>
</mxCell>
</object>
<mxCell id="132" value="+ ChangeReminder()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="26" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="7" value="+ title : string " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="52" width="200" height="24" as="geometry"/>
</mxCell>
<mxCell id="8" value="+ password : string " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="76" width="200" height="26" as="geometry"/>
</mxCell>
<mxCell id="9" value="+ userName : string + url : string + notes : string + dateOfLastChange : Datetime" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="6" vertex="1">
<mxGeometry y="102" width="200" height="98" as="geometry"/>
</mxCell>
<mxCell id="39" value="DatabaseManage " style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2050" y="460" width="260" height="138" as="geometry"/>
</mxCell>
<mxCell id="130" value="- actualEntryOperation : EntryOperations " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="39" vertex="1">
<mxGeometry y="26" width="260" height="26" as="geometry"/>
</mxCell>
<mxCell id="149" value="-cryptographyManager :CryptographyManager " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="39" vertex="1">
<mxGeometry y="52" width="260" height="26" as="geometry"/>
</mxCell>
<mxCell id="41" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="39" vertex="1">
<mxGeometry y="78" width="260" height="8" as="geometry"/>
</mxCell>
<mxCell id="42" value="+ AddDatabase() " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="39" vertex="1">
<mxGeometry y="86" width="260" height="26" as="geometry"/>
</mxCell>
<mxCell id="45" value="+ Unlock() : void" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="39" vertex="1">
<mxGeometry y="112" width="260" height="26" as="geometry"/>
</mxCell>
<mxCell id="192" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.536;entryY=1.269;entryDx=0;entryDy=0;entryPerimeter=0;endArrow=none;endFill=0;" parent="1" source="56" target="38" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1730" y="1334"/>
<mxPoint x="1730" y="1200"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="56" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>IPasswordQuality</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ Quality() : int<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="1850" y="1264" width="190" height="140" as="geometry"/>
</mxCell>
<mxCell id="57" value="PasswordQualitySafe" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="1670" y="1674" width="160" height="34" as="geometry"/>
</mxCell>
<mxCell id="59" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="57" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="64" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;" parent="1" source="56" target="57" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1870" y="1434" as="sourcePoint"/>
<mxPoint x="2030" y="1434" as="targetPoint"/>
<Array as="points">
<mxPoint x="1950" y="1494"/>
<mxPoint x="1750" y="1494"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="65" value="«interface»<br><b>IPasswordQualityEntry</b>" style="html=1;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2070" y="1564" width="160" height="58" as="geometry"/>
</mxCell>
<mxCell id="66" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;entryX=0.583;entryY=-0.021;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="56" target="65" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1950" y="1414" as="sourcePoint"/>
<mxPoint x="2030" y="1534" as="targetPoint"/>
<Array as="points">
<mxPoint x="1950" y="1494"/>
<mxPoint x="2070" y="1494"/>
<mxPoint x="2163" y="1494"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="67" value="Pictures" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="1970" y="1664" width="160" height="34" as="geometry"/>
</mxCell>
<mxCell id="69" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="67" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="71" value="ASCIIPassword " style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2150" y="1664" width="160" height="34" as="geometry"/>
</mxCell>
<mxCell id="73" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="71" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="75" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="65" target="67" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1870" y="1634" as="sourcePoint"/>
<mxPoint x="2030" y="1634" as="targetPoint"/>
</mxGeometry>
</mxCell>
<mxCell id="76" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="65" target="71" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="1870" y="1634" as="sourcePoint"/>
<mxPoint x="2030" y="1634" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="77" value="" style="endArrow=none;html=1;edgeStyle=orthogonalEdgeStyle;exitX=0.542;exitY=0.981;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="45" target="56" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2220" y="690" as="sourcePoint"/>
<mxPoint x="1820" y="1210" as="targetPoint"/>
<Array as="points">
<mxPoint x="2191" y="931"/>
<mxPoint x="2190" y="931"/>
<mxPoint x="2190" y="1180"/>
<mxPoint x="1945" y="1180"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="79" value="Determine quality" style="edgeLabel;resizable=0;html=1;align=right;verticalAlign=bottom;gradientColor=none;" parent="77" connectable="0" vertex="1">
<mxGeometry x="1" relative="1" as="geometry">
<mxPoint x="-30" y="-40" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="88" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>SearchEngine</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p><hr size="1"><p style="margin:0px;margin-left:4px;">+Search()</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2470" y="910" width="190" height="100" as="geometry"/>
</mxCell>
<mxCell id="89" value="SearchUserName " style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2340" y="1090" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="91" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="89" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="92" value="+ SearchByName() " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="89" vertex="1">
<mxGeometry y="34" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="93" value="SearchTitle" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2610" y="1090" width="160" height="60" as="geometry"/>
</mxCell>
<mxCell id="95" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="93" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="96" value="+ SearchByTitle()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="93" vertex="1">
<mxGeometry y="34" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="97" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="88" target="89" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="2460" y="1070" as="sourcePoint"/>
<mxPoint x="2620" y="1070" as="targetPoint"/>
<Array as="points">
<mxPoint x="2565" y="1040"/>
<mxPoint x="2500" y="1040"/>
<mxPoint x="2420" y="1040"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="98" value="" style="endArrow=block;dashed=1;endFill=0;endSize=12;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="93" edge="1">
<mxGeometry width="160" relative="1" as="geometry">
<mxPoint x="2570" y="1010" as="sourcePoint"/>
<mxPoint x="2730" y="1040" as="targetPoint"/>
<Array as="points">
<mxPoint x="2570" y="1040"/>
<mxPoint x="2690" y="1040"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="99" value="strategy design pattern - różne sposoby na uzyskanie dostepu do bazy sejfu(bazy danych z hasłami)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="2250" y="1564" width="170" height="92" as="geometry"/>
</mxCell>
<mxCell id="102" value="strategy design pattern szukanie entry po róznych atrybutach&nbsp;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="2660" y="950" width="180" height="140" as="geometry"/>
</mxCell>
<mxCell id="173" style="edgeStyle=none;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=block;endFill=0;dashed=1;" parent="1" source="107" target="164" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="107" value="PasswordGeneratorBasic" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="760" y="1330" width="180" height="112" as="geometry"/>
</mxCell>
<mxCell id="176" value="-password : string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="107" vertex="1">
<mxGeometry y="26" width="180" height="26" as="geometry"/>
</mxCell>
<mxCell id="109" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="107" vertex="1">
<mxGeometry y="52" width="180" height="8" as="geometry"/>
</mxCell>
<mxCell id="177" value="+reset()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="107" vertex="1">
<mxGeometry y="60" width="180" height="26" as="geometry"/>
</mxCell>
<mxCell id="110" value="+ GetResult() : string" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="107" vertex="1">
<mxGeometry y="86" width="180" height="26" as="geometry"/>
</mxCell>
<mxCell id="120" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="37" target="88" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="1860" y="574" as="sourcePoint"/>
<mxPoint x="2020" y="574" as="targetPoint"/>
<Array as="points">
<mxPoint x="2170" y="975"/>
<mxPoint x="2170" y="944"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="123" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=diamondThin;endFill=0;" parent="1" source="9" target="121" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1440" y="651"/>
<mxPoint x="1440" y="889"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="129" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=diamondThin;endFill=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="31" target="130" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="2070" y="792.9999999999998" as="targetPoint"/>
<Array as="points">
<mxPoint x="1920" y="950"/>
<mxPoint x="1920" y="500"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="148" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>CryptographyManager&nbsp;</b></p><hr size="1"><p style="margin:0px;margin-left:4px;"><br></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ HashMethod()&nbsp;<br><br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2470" y="484" width="190" height="140" as="geometry"/>
</mxCell>
<mxCell id="150" value="1" style="endArrow=open;html=1;endSize=12;startArrow=diamondThin;startSize=14;startFill=1;edgeStyle=orthogonalEdgeStyle;align=left;verticalAlign=bottom;dashed=1;" parent="1" target="148" edge="1">
<mxGeometry x="-1" y="3" relative="1" as="geometry">
<mxPoint x="2310" y="554" as="sourcePoint"/>
<mxPoint x="2470" y="554" as="targetPoint"/>
<Array as="points"/>
</mxGeometry>
</mxCell>
<mxCell id="164" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>PasswordBuilder</b></p><p style="margin:0px;margin-left:4px;"><br></p><hr size="1"><p style="margin:0px;margin-left:4px;">+ AddSmallLetters()<br></p><p style="margin:0px;margin-left:4px;">+AddVigLetters()</p><p style="margin:0px;margin-left:4px;">+AddDigits()</p><p style="margin:0px;margin-left:4px;">+AddSpecialCharacters()</p><p style="margin:0px;margin-left:4px;">+SetLength()</p><p style="margin:0px;margin-left:4px;">+BuildBasicPassword()</p><p style="margin:0px;margin-left:4px;">+BuildAdvancedPassword()</p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;" parent="1" vertex="1">
<mxGeometry x="750" y="1016" width="190" height="170" as="geometry"/>
</mxCell>
<mxCell id="165" value="Director" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
<mxGeometry x="1080" y="1010" width="160" height="190" as="geometry"/>
</mxCell>
<mxCell id="111" value="-bigLetters : bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="165" vertex="1">
<mxGeometry y="26" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="114" value="-digits : bool " style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="165" vertex="1">
<mxGeometry y="52" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="112" value="-length : int" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="165" vertex="1">
<mxGeometry y="78" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="108" value="-specialCharacters : bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="165" vertex="1">
<mxGeometry y="104" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="169" value="- smallLetters : bool" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="165" vertex="1">
<mxGeometry y="130" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="167" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="165" vertex="1">
<mxGeometry y="156" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="168" value="+MakePasswordWithFlags()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="165" vertex="1">
<mxGeometry y="164" width="160" height="26" as="geometry"/>
</mxCell>
<mxCell id="171" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="112" target="164" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="175" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=classic;endFill=1;startArrow=diamondThin;startFill=1;dashed=1;" parent="1" source="31" target="165" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1160" y="949"/>
</Array>
</mxGeometry>
</mxCell>
<mxCell id="178" value="Interfejs odpowiedzialny za zaszyfrowanie bazy danych " style="text;align=center;fontStyle=1;verticalAlign=middle;spacingLeft=3;spacingRight=3;strokeColor=none;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="1" vertex="1">
<mxGeometry x="2460" y="400" width="210" height="136" as="geometry"/>
</mxCell>
<mxCell id="179" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=block;endFill=0;dashed=1;" parent="1" source="181" target="182" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="180" style="edgeStyle=none;html=1;dashed=1;endArrow=block;endFill=0;" parent="1" source="181" target="184" edge="1">
<mxGeometry relative="1" as="geometry"/>
</mxCell>
<mxCell id="181" value="<p style="margin:0px;margin-top:4px;text-align:center;"><i>&lt;&lt;Interface&gt;&gt;</i><br><b>Password&nbsp;</b></p><br><hr size="1"><p style="margin:0px;margin-left:4px;">+ Verify(password : string) : bool&nbsp;<br></p>" style="verticalAlign=top;align=left;overflow=fill;fontSize=12;fontFamily=Helvetica;html=1;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2890" y="580" width="190" height="140" as="geometry"/>
</mxCell>
<mxCell id="182" value="StringPassword " style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="2770" y="800" width="160" height="34" as="geometry"/>
</mxCell>
<mxCell id="183" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="182" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
<mxCell id="184" value="PicturePassword" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=26;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;gradientColor=none;" parent="1" vertex="1">
<mxGeometry x="3010" y="800" width="160" height="34" as="geometry"/>
</mxCell>
<mxCell id="185" value="" style="line;strokeWidth=1;fillColor=none;align=left;verticalAlign=middle;spacingTop=-1;spacingLeft=3;spacingRight=3;rotatable=0;labelPosition=right;points=[];portConstraint=eastwest;strokeColor=inherit;" parent="184" vertex="1">
<mxGeometry y="26" width="160" height="8" as="geometry"/>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>