1extern int __VERIFIER_nondet_int(void);
2
3
4
5#line 2 "libacc.c"
6struct JoinPoint {
7 void **(*fp)(struct JoinPoint * ) ;
8 void **args ;
9 int argsCount ;
10 char const **argsType ;
11 void *(*arg)(int , struct JoinPoint * ) ;
12 char const *(*argType)(int , struct JoinPoint * ) ;
13 void **retValue ;
14 char const *retType ;
15 char const *funcName ;
16 char const *targetName ;
17 char const *fileName ;
18 char const *kind ;
19 void *excep_return ;
20};
21#line 18 "libacc.c"
22struct __UTAC__CFLOW_FUNC {
23 int (*func)(int , int ) ;
24 int val ;
25 struct __UTAC__CFLOW_FUNC *next ;
26};
27#line 18 "libacc.c"
28struct __UTAC__EXCEPTION {
29 void *jumpbuf ;
30 unsigned long long prtValue ;
31 int pops ;
32 struct __UTAC__CFLOW_FUNC *cflowfuncs ;
33};
34#line 211 "/usr/lib/gcc/x86_64-linux-gnu/4.4.5/include/stddef.h"
35typedef unsigned long size_t;
36#line 76 "libacc.c"
37struct __ACC__ERR {
38 void *v ;
39 struct __ACC__ERR *next ;
40};
41#line 1 "ClientLib.o"
42#pragma merger(0,"ClientLib.i","")
43#line 4 "ClientLib.h"
44int initClient(void) ;
45#line 6
46char *getClientName(int handle ) ;
47#line 8
48void setClientName(int handle , char *value ) ;
49#line 10
50int getClientOutbuffer(int handle ) ;
51#line 12
52void setClientOutbuffer(int handle , int value ) ;
53#line 14
54int getClientAddressBookSize(int handle ) ;
55#line 16
56void setClientAddressBookSize(int handle , int value ) ;
57#line 18
58int createClientAddressBookEntry(int handle ) ;
59#line 20
60int getClientAddressBookAlias(int handle , int index ) ;
61#line 22
62void setClientAddressBookAlias(int handle , int index , int value ) ;
63#line 24
64int getClientAddressBookAddress(int handle , int index ) ;
65#line 26
66void setClientAddressBookAddress(int handle , int index , int value ) ;
67#line 29
68int getClientAutoResponse(int handle ) ;
69#line 31
70void setClientAutoResponse(int handle , int value ) ;
71#line 33
72int getClientPrivateKey(int handle ) ;
73#line 35
74void setClientPrivateKey(int handle , int value ) ;
75#line 37
76int getClientKeyringSize(int handle ) ;
77#line 39
78int createClientKeyringEntry(int handle ) ;
79#line 41
80int getClientKeyringUser(int handle , int index ) ;
81#line 43
82void setClientKeyringUser(int handle , int index , int value ) ;
83#line 45
84int getClientKeyringPublicKey(int handle , int index ) ;
85#line 47
86void setClientKeyringPublicKey(int handle , int index , int value ) ;
87#line 49
88int getClientForwardReceiver(int handle ) ;
89#line 51
90void setClientForwardReceiver(int handle , int value ) ;
91#line 53
92int getClientId(int handle ) ;
93#line 55
94void setClientId(int handle , int value ) ;
95#line 57
96int findPublicKey(int handle , int userid ) ;
97#line 59
98int findClientAddressBookAlias(int handle , int userid ) ;
99#line 5 "ClientLib.c"
100int __ste_Client_counter = 0;
101#line 7 "ClientLib.c"
102int initClient(void)
103{ int retValue_acc ;
104
105 {
106#line 12 "ClientLib.c"
107 if (__ste_Client_counter < 3) {
108#line 684
109 __ste_Client_counter = __ste_Client_counter + 1;
110#line 684
111 retValue_acc = __ste_Client_counter;
112#line 686
113 return (retValue_acc);
114 } else {
115#line 692 "ClientLib.c"
116 retValue_acc = -1;
117#line 694
118 return (retValue_acc);
119 }
120#line 701 "ClientLib.c"
121 return (retValue_acc);
122}
123}
124#line 15 "ClientLib.c"
125char *__ste_client_name0 = (char *)0;
126#line 17 "ClientLib.c"
127char *__ste_client_name1 = (char *)0;
128#line 19 "ClientLib.c"
129char *__ste_client_name2 = (char *)0;
130#line 22 "ClientLib.c"
131char *getClientName(int handle )
132{ char *retValue_acc ;
133 void *__cil_tmp3 ;
134
135 {
136#line 31 "ClientLib.c"
137 if (handle == 1) {
138#line 732
139 retValue_acc = __ste_client_name0;
140#line 734
141 return (retValue_acc);
142 } else {
143#line 736
144 if (handle == 2) {
145#line 741
146 retValue_acc = __ste_client_name1;
147#line 743
148 return (retValue_acc);
149 } else {
150#line 745
151 if (handle == 3) {
152#line 750
153 retValue_acc = __ste_client_name2;
154#line 752
155 return (retValue_acc);
156 } else {
157#line 758 "ClientLib.c"
158 __cil_tmp3 = (void *)0;
159#line 758
160 retValue_acc = (char *)__cil_tmp3;
161#line 760
162 return (retValue_acc);
163 }
164 }
165 }
166#line 767 "ClientLib.c"
167 return (retValue_acc);
168}
169}
170#line 34 "ClientLib.c"
171void setClientName(int handle , char *value )
172{
173
174 {
175#line 42
176 if (handle == 1) {
177#line 36
178 __ste_client_name0 = value;
179 } else {
180#line 37
181 if (handle == 2) {
182#line 38
183 __ste_client_name1 = value;
184 } else {
185#line 39
186 if (handle == 3) {
187#line 40
188 __ste_client_name2 = value;
189 } else {
190
191 }
192 }
193 }
194#line 802 "ClientLib.c"
195 return;
196}
197}
198#line 44 "ClientLib.c"
199int __ste_client_outbuffer0 = 0;
200#line 46 "ClientLib.c"
201int __ste_client_outbuffer1 = 0;
202#line 48 "ClientLib.c"
203int __ste_client_outbuffer2 = 0;
204#line 50 "ClientLib.c"
205int __ste_client_outbuffer3 = 0;
206#line 53 "ClientLib.c"
207int getClientOutbuffer(int handle )
208{ int retValue_acc ;
209
210 {
211#line 62 "ClientLib.c"
212 if (handle == 1) {
213#line 831
214 retValue_acc = __ste_client_outbuffer0;
215#line 833
216 return (retValue_acc);
217 } else {
218#line 835
219 if (handle == 2) {
220#line 840
221 retValue_acc = __ste_client_outbuffer1;
222#line 842
223 return (retValue_acc);
224 } else {
225#line 844
226 if (handle == 3) {
227#line 849
228 retValue_acc = __ste_client_outbuffer2;
229#line 851
230 return (retValue_acc);
231 } else {
232#line 857 "ClientLib.c"
233 retValue_acc = 0;
234#line 859
235 return (retValue_acc);
236 }
237 }
238 }
239#line 866 "ClientLib.c"
240 return (retValue_acc);
241}
242}
243#line 65 "ClientLib.c"
244void setClientOutbuffer(int handle , int value )
245{
246
247 {
248#line 73
249 if (handle == 1) {
250#line 67
251 __ste_client_outbuffer0 = value;
252 } else {
253#line 68
254 if (handle == 2) {
255#line 69
256 __ste_client_outbuffer1 = value;
257 } else {
258#line 70
259 if (handle == 3) {
260#line 71
261 __ste_client_outbuffer2 = value;
262 } else {
263
264 }
265 }
266 }
267#line 901 "ClientLib.c"
268 return;
269}
270}
271#line 77 "ClientLib.c"
272int __ste_ClientAddressBook_size0 = 0;
273#line 79 "ClientLib.c"
274int __ste_ClientAddressBook_size1 = 0;
275#line 81 "ClientLib.c"
276int __ste_ClientAddressBook_size2 = 0;
277#line 84 "ClientLib.c"
278int getClientAddressBookSize(int handle )
279{ int retValue_acc ;
280
281 {
282#line 93 "ClientLib.c"
283 if (handle == 1) {
284#line 928
285 retValue_acc = __ste_ClientAddressBook_size0;
286#line 930
287 return (retValue_acc);
288 } else {
289#line 932
290 if (handle == 2) {
291#line 937
292 retValue_acc = __ste_ClientAddressBook_size1;
293#line 939
294 return (retValue_acc);
295 } else {
296#line 941
297 if (handle == 3) {
298#line 946
299 retValue_acc = __ste_ClientAddressBook_size2;
300#line 948
301 return (retValue_acc);
302 } else {
303#line 954 "ClientLib.c"
304 retValue_acc = 0;
305#line 956
306 return (retValue_acc);
307 }
308 }
309 }
310#line 963 "ClientLib.c"
311 return (retValue_acc);
312}
313}
314#line 96 "ClientLib.c"
315void setClientAddressBookSize(int handle , int value )
316{
317
318 {
319#line 104
320 if (handle == 1) {
321#line 98
322 __ste_ClientAddressBook_size0 = value;
323 } else {
324#line 99
325 if (handle == 2) {
326#line 100
327 __ste_ClientAddressBook_size1 = value;
328 } else {
329#line 101
330 if (handle == 3) {
331#line 102
332 __ste_ClientAddressBook_size2 = value;
333 } else {
334
335 }
336 }
337 }
338#line 998 "ClientLib.c"
339 return;
340}
341}
342#line 106 "ClientLib.c"
343int createClientAddressBookEntry(int handle )
344{ int retValue_acc ;
345 int size ;
346 int tmp ;
347 int __cil_tmp5 ;
348
349 {
350 {
351#line 107
352 tmp = getClientAddressBookSize(handle);
353#line 107
354 size = tmp;
355 }
356#line 108 "ClientLib.c"
357 if (size < 3) {
358 {
359#line 109 "ClientLib.c"
360 __cil_tmp5 = size + 1;
361#line 109
362 setClientAddressBookSize(handle, __cil_tmp5);
363#line 1025 "ClientLib.c"
364 retValue_acc = size + 1;
365 }
366#line 1027
367 return (retValue_acc);
368 } else {
369#line 1031 "ClientLib.c"
370 retValue_acc = -1;
371#line 1033
372 return (retValue_acc);
373 }
374#line 1040 "ClientLib.c"
375 return (retValue_acc);
376}
377}
378#line 115 "ClientLib.c"
379int __ste_Client_AddressBook0_Alias0 = 0;
380#line 117 "ClientLib.c"
381int __ste_Client_AddressBook0_Alias1 = 0;
382#line 119 "ClientLib.c"
383int __ste_Client_AddressBook0_Alias2 = 0;
384#line 121 "ClientLib.c"
385int __ste_Client_AddressBook1_Alias0 = 0;
386#line 123 "ClientLib.c"
387int __ste_Client_AddressBook1_Alias1 = 0;
388#line 125 "ClientLib.c"
389int __ste_Client_AddressBook1_Alias2 = 0;
390#line 127 "ClientLib.c"
391int __ste_Client_AddressBook2_Alias0 = 0;
392#line 129 "ClientLib.c"
393int __ste_Client_AddressBook2_Alias1 = 0;
394#line 131 "ClientLib.c"
395int __ste_Client_AddressBook2_Alias2 = 0;
396#line 134 "ClientLib.c"
397int getClientAddressBookAlias(int handle , int index )
398{ int retValue_acc ;
399
400 {
401#line 167
402 if (handle == 1) {
403#line 144 "ClientLib.c"
404 if (index == 0) {
405#line 1086
406 retValue_acc = __ste_Client_AddressBook0_Alias0;
407#line 1088
408 return (retValue_acc);
409 } else {
410#line 1090
411 if (index == 1) {
412#line 1095
413 retValue_acc = __ste_Client_AddressBook0_Alias1;
414#line 1097
415 return (retValue_acc);
416 } else {
417#line 1099
418 if (index == 2) {
419#line 1104
420 retValue_acc = __ste_Client_AddressBook0_Alias2;
421#line 1106
422 return (retValue_acc);
423 } else {
424#line 1112
425 retValue_acc = 0;
426#line 1114
427 return (retValue_acc);
428 }
429 }
430 }
431 } else {
432#line 1116 "ClientLib.c"
433 if (handle == 2) {
434#line 154 "ClientLib.c"
435 if (index == 0) {
436#line 1124
437 retValue_acc = __ste_Client_AddressBook1_Alias0;
438#line 1126
439 return (retValue_acc);
440 } else {
441#line 1128
442 if (index == 1) {
443#line 1133
444 retValue_acc = __ste_Client_AddressBook1_Alias1;
445#line 1135
446 return (retValue_acc);
447 } else {
448#line 1137
449 if (index == 2) {
450#line 1142
451 retValue_acc = __ste_Client_AddressBook1_Alias2;
452#line 1144
453 return (retValue_acc);
454 } else {
455#line 1150
456 retValue_acc = 0;
457#line 1152
458 return (retValue_acc);
459 }
460 }
461 }
462 } else {
463#line 1154 "ClientLib.c"
464 if (handle == 3) {
465#line 164 "ClientLib.c"
466 if (index == 0) {
467#line 1162
468 retValue_acc = __ste_Client_AddressBook2_Alias0;
469#line 1164
470 return (retValue_acc);
471 } else {
472#line 1166
473 if (index == 1) {
474#line 1171
475 retValue_acc = __ste_Client_AddressBook2_Alias1;
476#line 1173
477 return (retValue_acc);
478 } else {
479#line 1175
480 if (index == 2) {
481#line 1180
482 retValue_acc = __ste_Client_AddressBook2_Alias2;
483#line 1182
484 return (retValue_acc);
485 } else {
486#line 1188
487 retValue_acc = 0;
488#line 1190
489 return (retValue_acc);
490 }
491 }
492 }
493 } else {
494#line 1196 "ClientLib.c"
495 retValue_acc = 0;
496#line 1198
497 return (retValue_acc);
498 }
499 }
500 }
501#line 1205 "ClientLib.c"
502 return (retValue_acc);
503}
504}
505#line 171 "ClientLib.c"
506int findClientAddressBookAlias(int handle , int userid )
507{ int retValue_acc ;
508
509 {
510#line 204
511 if (handle == 1) {
512#line 181 "ClientLib.c"
513 if (userid == __ste_Client_AddressBook0_Alias0) {
514#line 1233
515 retValue_acc = 0;
516#line 1235
517 return (retValue_acc);
518 } else {
519#line 1237
520 if (userid == __ste_Client_AddressBook0_Alias1) {
521#line 1242
522 retValue_acc = 1;
523#line 1244
524 return (retValue_acc);
525 } else {
526#line 1246
527 if (userid == __ste_Client_AddressBook0_Alias2) {
528#line 1251
529 retValue_acc = 2;
530#line 1253
531 return (retValue_acc);
532 } else {
533#line 1259
534 retValue_acc = -1;
535#line 1261
536 return (retValue_acc);
537 }
538 }
539 }
540 } else {
541#line 1263 "ClientLib.c"
542 if (handle == 2) {
543#line 191 "ClientLib.c"
544 if (userid == __ste_Client_AddressBook1_Alias0) {
545#line 1271
546 retValue_acc = 0;
547#line 1273
548 return (retValue_acc);
549 } else {
550#line 1275
551 if (userid == __ste_Client_AddressBook1_Alias1) {
552#line 1280
553 retValue_acc = 1;
554#line 1282
555 return (retValue_acc);
556 } else {
557#line 1284
558 if (userid == __ste_Client_AddressBook1_Alias2) {
559#line 1289
560 retValue_acc = 2;
561#line 1291
562 return (retValue_acc);
563 } else {
564#line 1297
565 retValue_acc = -1;
566#line 1299
567 return (retValue_acc);
568 }
569 }
570 }
571 } else {
572#line 1301 "ClientLib.c"
573 if (handle == 3) {
574#line 201 "ClientLib.c"
575 if (userid == __ste_Client_AddressBook2_Alias0) {
576#line 1309
577 retValue_acc = 0;
578#line 1311
579 return (retValue_acc);
580 } else {
581#line 1313
582 if (userid == __ste_Client_AddressBook2_Alias1) {
583#line 1318
584 retValue_acc = 1;
585#line 1320
586 return (retValue_acc);
587 } else {
588#line 1322
589 if (userid == __ste_Client_AddressBook2_Alias2) {
590#line 1327
591 retValue_acc = 2;
592#line 1329
593 return (retValue_acc);
594 } else {
595#line 1335
596 retValue_acc = -1;
597#line 1337
598 return (retValue_acc);
599 }
600 }
601 }
602 } else {
603#line 1343 "ClientLib.c"
604 retValue_acc = -1;
605#line 1345
606 return (retValue_acc);
607 }
608 }
609 }
610#line 1352 "ClientLib.c"
611 return (retValue_acc);
612}
613}
614#line 208 "ClientLib.c"
615void setClientAddressBookAlias(int handle , int index , int value )
616{
617
618 {
619#line 234
620 if (handle == 1) {
621#line 217
622 if (index == 0) {
623#line 211
624 __ste_Client_AddressBook0_Alias0 = value;
625 } else {
626#line 212
627 if (index == 1) {
628#line 213
629 __ste_Client_AddressBook0_Alias1 = value;
630 } else {
631#line 214
632 if (index == 2) {
633#line 215
634 __ste_Client_AddressBook0_Alias2 = value;
635 } else {
636
637 }
638 }
639 }
640 } else {
641#line 216
642 if (handle == 2) {
643#line 225
644 if (index == 0) {
645#line 219
646 __ste_Client_AddressBook1_Alias0 = value;
647 } else {
648#line 220
649 if (index == 1) {
650#line 221
651 __ste_Client_AddressBook1_Alias1 = value;
652 } else {
653#line 222
654 if (index == 2) {
655#line 223
656 __ste_Client_AddressBook1_Alias2 = value;
657 } else {
658
659 }
660 }
661 }
662 } else {
663#line 224
664 if (handle == 3) {
665#line 233
666 if (index == 0) {
667#line 227
668 __ste_Client_AddressBook2_Alias0 = value;
669 } else {
670#line 228
671 if (index == 1) {
672#line 229
673 __ste_Client_AddressBook2_Alias1 = value;
674 } else {
675#line 230
676 if (index == 2) {
677#line 231
678 __ste_Client_AddressBook2_Alias2 = value;
679 } else {
680
681 }
682 }
683 }
684 } else {
685
686 }
687 }
688 }
689#line 1420 "ClientLib.c"
690 return;
691}
692}
693#line 236 "ClientLib.c"
694int __ste_Client_AddressBook0_Address0 = 0;
695#line 238 "ClientLib.c"
696int __ste_Client_AddressBook0_Address1 = 0;
697#line 240 "ClientLib.c"
698int __ste_Client_AddressBook0_Address2 = 0;
699#line 242 "ClientLib.c"
700int __ste_Client_AddressBook1_Address0 = 0;
701#line 244 "ClientLib.c"
702int __ste_Client_AddressBook1_Address1 = 0;
703#line 246 "ClientLib.c"
704int __ste_Client_AddressBook1_Address2 = 0;
705#line 248 "ClientLib.c"
706int __ste_Client_AddressBook2_Address0 = 0;
707#line 250 "ClientLib.c"
708int __ste_Client_AddressBook2_Address1 = 0;
709#line 252 "ClientLib.c"
710int __ste_Client_AddressBook2_Address2 = 0;
711#line 255 "ClientLib.c"
712int getClientAddressBookAddress(int handle , int index )
713{ int retValue_acc ;
714
715 {
716#line 288
717 if (handle == 1) {
718#line 265 "ClientLib.c"
719 if (index == 0) {
720#line 1462
721 retValue_acc = __ste_Client_AddressBook0_Address0;
722#line 1464
723 return (retValue_acc);
724 } else {
725#line 1466
726 if (index == 1) {
727#line 1471
728 retValue_acc = __ste_Client_AddressBook0_Address1;
729#line 1473
730 return (retValue_acc);
731 } else {
732#line 1475
733 if (index == 2) {
734#line 1480
735 retValue_acc = __ste_Client_AddressBook0_Address2;
736#line 1482
737 return (retValue_acc);
738 } else {
739#line 1488
740 retValue_acc = 0;
741#line 1490
742 return (retValue_acc);
743 }
744 }
745 }
746 } else {
747#line 1492 "ClientLib.c"
748 if (handle == 2) {
749#line 275 "ClientLib.c"
750 if (index == 0) {
751#line 1500
752 retValue_acc = __ste_Client_AddressBook1_Address0;
753#line 1502
754 return (retValue_acc);
755 } else {
756#line 1504
757 if (index == 1) {
758#line 1509
759 retValue_acc = __ste_Client_AddressBook1_Address1;
760#line 1511
761 return (retValue_acc);
762 } else {
763#line 1513
764 if (index == 2) {
765#line 1518
766 retValue_acc = __ste_Client_AddressBook1_Address2;
767#line 1520
768 return (retValue_acc);
769 } else {
770#line 1526
771 retValue_acc = 0;
772#line 1528
773 return (retValue_acc);
774 }
775 }
776 }
777 } else {
778#line 1530 "ClientLib.c"
779 if (handle == 3) {
780#line 285 "ClientLib.c"
781 if (index == 0) {
782#line 1538
783 retValue_acc = __ste_Client_AddressBook2_Address0;
784#line 1540
785 return (retValue_acc);
786 } else {
787#line 1542
788 if (index == 1) {
789#line 1547
790 retValue_acc = __ste_Client_AddressBook2_Address1;
791#line 1549
792 return (retValue_acc);
793 } else {
794#line 1551
795 if (index == 2) {
796#line 1556
797 retValue_acc = __ste_Client_AddressBook2_Address2;
798#line 1558
799 return (retValue_acc);
800 } else {
801#line 1564
802 retValue_acc = 0;
803#line 1566
804 return (retValue_acc);
805 }
806 }
807 }
808 } else {
809#line 1572 "ClientLib.c"
810 retValue_acc = 0;
811#line 1574
812 return (retValue_acc);
813 }
814 }
815 }
816#line 1581 "ClientLib.c"
817 return (retValue_acc);
818}
819}
820#line 291 "ClientLib.c"
821void setClientAddressBookAddress(int handle , int index , int value )
822{
823
824 {
825#line 317
826 if (handle == 1) {
827#line 300
828 if (index == 0) {
829#line 294
830 __ste_Client_AddressBook0_Address0 = value;
831 } else {
832#line 295
833 if (index == 1) {
834#line 296
835 __ste_Client_AddressBook0_Address1 = value;
836 } else {
837#line 297
838 if (index == 2) {
839#line 298
840 __ste_Client_AddressBook0_Address2 = value;
841 } else {
842
843 }
844 }
845 }
846 } else {
847#line 299
848 if (handle == 2) {
849#line 308
850 if (index == 0) {
851#line 302
852 __ste_Client_AddressBook1_Address0 = value;
853 } else {
854#line 303
855 if (index == 1) {
856#line 304
857 __ste_Client_AddressBook1_Address1 = value;
858 } else {
859#line 305
860 if (index == 2) {
861#line 306
862 __ste_Client_AddressBook1_Address2 = value;
863 } else {
864
865 }
866 }
867 }
868 } else {
869#line 307
870 if (handle == 3) {
871#line 316
872 if (index == 0) {
873#line 310
874 __ste_Client_AddressBook2_Address0 = value;
875 } else {
876#line 311
877 if (index == 1) {
878#line 312
879 __ste_Client_AddressBook2_Address1 = value;
880 } else {
881#line 313
882 if (index == 2) {
883#line 314
884 __ste_Client_AddressBook2_Address2 = value;
885 } else {
886
887 }
888 }
889 }
890 } else {
891
892 }
893 }
894 }
895#line 1649 "ClientLib.c"
896 return;
897}
898}
899#line 319 "ClientLib.c"
900int __ste_client_autoResponse0 = 0;
901#line 321 "ClientLib.c"
902int __ste_client_autoResponse1 = 0;
903#line 323 "ClientLib.c"
904int __ste_client_autoResponse2 = 0;
905#line 326 "ClientLib.c"
906int getClientAutoResponse(int handle )
907{ int retValue_acc ;
908
909 {
910#line 335 "ClientLib.c"
911 if (handle == 1) {
912#line 1676
913 retValue_acc = __ste_client_autoResponse0;
914#line 1678
915 return (retValue_acc);
916 } else {
917#line 1680
918 if (handle == 2) {
919#line 1685
920 retValue_acc = __ste_client_autoResponse1;
921#line 1687
922 return (retValue_acc);
923 } else {
924#line 1689
925 if (handle == 3) {
926#line 1694
927 retValue_acc = __ste_client_autoResponse2;
928#line 1696
929 return (retValue_acc);
930 } else {
931#line 1702 "ClientLib.c"
932 retValue_acc = -1;
933#line 1704
934 return (retValue_acc);
935 }
936 }
937 }
938#line 1711 "ClientLib.c"
939 return (retValue_acc);
940}
941}
942#line 338 "ClientLib.c"
943void setClientAutoResponse(int handle , int value )
944{
945
946 {
947#line 346
948 if (handle == 1) {
949#line 340
950 __ste_client_autoResponse0 = value;
951 } else {
952#line 341
953 if (handle == 2) {
954#line 342
955 __ste_client_autoResponse1 = value;
956 } else {
957#line 343
958 if (handle == 3) {
959#line 344
960 __ste_client_autoResponse2 = value;
961 } else {
962
963 }
964 }
965 }
966#line 1746 "ClientLib.c"
967 return;
968}
969}
970#line 348 "ClientLib.c"
971int __ste_client_privateKey0 = 0;
972#line 350 "ClientLib.c"
973int __ste_client_privateKey1 = 0;
974#line 352 "ClientLib.c"
975int __ste_client_privateKey2 = 0;
976#line 355 "ClientLib.c"
977int getClientPrivateKey(int handle )
978{ int retValue_acc ;
979
980 {
981#line 364 "ClientLib.c"
982 if (handle == 1) {
983#line 1773
984 retValue_acc = __ste_client_privateKey0;
985#line 1775
986 return (retValue_acc);
987 } else {
988#line 1777
989 if (handle == 2) {
990#line 1782
991 retValue_acc = __ste_client_privateKey1;
992#line 1784
993 return (retValue_acc);
994 } else {
995#line 1786
996 if (handle == 3) {
997#line 1791
998 retValue_acc = __ste_client_privateKey2;
999#line 1793
1000 return (retValue_acc);
1001 } else {
1002#line 1799 "ClientLib.c"
1003 retValue_acc = 0;
1004#line 1801
1005 return (retValue_acc);
1006 }
1007 }
1008 }
1009#line 1808 "ClientLib.c"
1010 return (retValue_acc);
1011}
1012}
1013#line 367 "ClientLib.c"
1014void setClientPrivateKey(int handle , int value )
1015{
1016
1017 {
1018#line 375
1019 if (handle == 1) {
1020#line 369
1021 __ste_client_privateKey0 = value;
1022 } else {
1023#line 370
1024 if (handle == 2) {
1025#line 371
1026 __ste_client_privateKey1 = value;
1027 } else {
1028#line 372
1029 if (handle == 3) {
1030#line 373
1031 __ste_client_privateKey2 = value;
1032 } else {
1033
1034 }
1035 }
1036 }
1037#line 1843 "ClientLib.c"
1038 return;
1039}
1040}
1041#line 377 "ClientLib.c"
1042int __ste_ClientKeyring_size0 = 0;
1043#line 379 "ClientLib.c"
1044int __ste_ClientKeyring_size1 = 0;
1045#line 381 "ClientLib.c"
1046int __ste_ClientKeyring_size2 = 0;
1047#line 384 "ClientLib.c"
1048int getClientKeyringSize(int handle )
1049{ int retValue_acc ;
1050
1051 {
1052#line 393 "ClientLib.c"
1053 if (handle == 1) {
1054#line 1870
1055 retValue_acc = __ste_ClientKeyring_size0;
1056#line 1872
1057 return (retValue_acc);
1058 } else {
1059#line 1874
1060 if (handle == 2) {
1061#line 1879
1062 retValue_acc = __ste_ClientKeyring_size1;
1063#line 1881
1064 return (retValue_acc);
1065 } else {
1066#line 1883
1067 if (handle == 3) {
1068#line 1888
1069 retValue_acc = __ste_ClientKeyring_size2;
1070#line 1890
1071 return (retValue_acc);
1072 } else {
1073#line 1896 "ClientLib.c"
1074 retValue_acc = 0;
1075#line 1898
1076 return (retValue_acc);
1077 }
1078 }
1079 }
1080#line 1905 "ClientLib.c"
1081 return (retValue_acc);
1082}
1083}
1084#line 396 "ClientLib.c"
1085void setClientKeyringSize(int handle , int value )
1086{
1087
1088 {
1089#line 404
1090 if (handle == 1) {
1091#line 398
1092 __ste_ClientKeyring_size0 = value;
1093 } else {
1094#line 399
1095 if (handle == 2) {
1096#line 400
1097 __ste_ClientKeyring_size1 = value;
1098 } else {
1099#line 401
1100 if (handle == 3) {
1101#line 402
1102 __ste_ClientKeyring_size2 = value;
1103 } else {
1104
1105 }
1106 }
1107 }
1108#line 1940 "ClientLib.c"
1109 return;
1110}
1111}
1112#line 406 "ClientLib.c"
1113int createClientKeyringEntry(int handle )
1114{ int retValue_acc ;
1115 int size ;
1116 int tmp ;
1117 int __cil_tmp5 ;
1118
1119 {
1120 {
1121#line 407
1122 tmp = getClientKeyringSize(handle);
1123#line 407
1124 size = tmp;
1125 }
1126#line 408 "ClientLib.c"
1127 if (size < 2) {
1128 {
1129#line 409 "ClientLib.c"
1130 __cil_tmp5 = size + 1;
1131#line 409
1132 setClientKeyringSize(handle, __cil_tmp5);
1133#line 1967 "ClientLib.c"
1134 retValue_acc = size + 1;
1135 }
1136#line 1969
1137 return (retValue_acc);
1138 } else {
1139#line 1973 "ClientLib.c"
1140 retValue_acc = -1;
1141#line 1975
1142 return (retValue_acc);
1143 }
1144#line 1982 "ClientLib.c"
1145 return (retValue_acc);
1146}
1147}
1148#line 414 "ClientLib.c"
1149int __ste_Client_Keyring0_User0 = 0;
1150#line 416 "ClientLib.c"
1151int __ste_Client_Keyring0_User1 = 0;
1152#line 418 "ClientLib.c"
1153int __ste_Client_Keyring0_User2 = 0;
1154#line 420 "ClientLib.c"
1155int __ste_Client_Keyring1_User0 = 0;
1156#line 422 "ClientLib.c"
1157int __ste_Client_Keyring1_User1 = 0;
1158#line 424 "ClientLib.c"
1159int __ste_Client_Keyring1_User2 = 0;
1160#line 426 "ClientLib.c"
1161int __ste_Client_Keyring2_User0 = 0;
1162#line 428 "ClientLib.c"
1163int __ste_Client_Keyring2_User1 = 0;
1164#line 430 "ClientLib.c"
1165int __ste_Client_Keyring2_User2 = 0;
1166#line 433 "ClientLib.c"
1167int getClientKeyringUser(int handle , int index )
1168{ int retValue_acc ;
1169
1170 {
1171#line 466
1172 if (handle == 1) {
1173#line 443 "ClientLib.c"
1174 if (index == 0) {
1175#line 2028
1176 retValue_acc = __ste_Client_Keyring0_User0;
1177#line 2030
1178 return (retValue_acc);
1179 } else {
1180#line 2032
1181 if (index == 1) {
1182#line 2037
1183 retValue_acc = __ste_Client_Keyring0_User1;
1184#line 2039
1185 return (retValue_acc);
1186 } else {
1187#line 2045
1188 retValue_acc = 0;
1189#line 2047
1190 return (retValue_acc);
1191 }
1192 }
1193 } else {
1194#line 2049 "ClientLib.c"
1195 if (handle == 2) {
1196#line 453 "ClientLib.c"
1197 if (index == 0) {
1198#line 2057
1199 retValue_acc = __ste_Client_Keyring1_User0;
1200#line 2059
1201 return (retValue_acc);
1202 } else {
1203#line 2061
1204 if (index == 1) {
1205#line 2066
1206 retValue_acc = __ste_Client_Keyring1_User1;
1207#line 2068
1208 return (retValue_acc);
1209 } else {
1210#line 2074
1211 retValue_acc = 0;
1212#line 2076
1213 return (retValue_acc);
1214 }
1215 }
1216 } else {
1217#line 2078 "ClientLib.c"
1218 if (handle == 3) {
1219#line 463 "ClientLib.c"
1220 if (index == 0) {
1221#line 2086
1222 retValue_acc = __ste_Client_Keyring2_User0;
1223#line 2088
1224 return (retValue_acc);
1225 } else {
1226#line 2090
1227 if (index == 1) {
1228#line 2095
1229 retValue_acc = __ste_Client_Keyring2_User1;
1230#line 2097
1231 return (retValue_acc);
1232 } else {
1233#line 2103
1234 retValue_acc = 0;
1235#line 2105
1236 return (retValue_acc);
1237 }
1238 }
1239 } else {
1240#line 2111 "ClientLib.c"
1241 retValue_acc = 0;
1242#line 2113
1243 return (retValue_acc);
1244 }
1245 }
1246 }
1247#line 2120 "ClientLib.c"
1248 return (retValue_acc);
1249}
1250}
1251#line 473 "ClientLib.c"
1252void setClientKeyringUser(int handle , int index , int value )
1253{
1254
1255 {
1256#line 499
1257 if (handle == 1) {
1258#line 482
1259 if (index == 0) {
1260#line 476
1261 __ste_Client_Keyring0_User0 = value;
1262 } else {
1263#line 477
1264 if (index == 1) {
1265#line 478
1266 __ste_Client_Keyring0_User1 = value;
1267 } else {
1268
1269 }
1270 }
1271 } else {
1272#line 479
1273 if (handle == 2) {
1274#line 490
1275 if (index == 0) {
1276#line 484
1277 __ste_Client_Keyring1_User0 = value;
1278 } else {
1279#line 485
1280 if (index == 1) {
1281#line 486
1282 __ste_Client_Keyring1_User1 = value;
1283 } else {
1284
1285 }
1286 }
1287 } else {
1288#line 487
1289 if (handle == 3) {
1290#line 498
1291 if (index == 0) {
1292#line 492
1293 __ste_Client_Keyring2_User0 = value;
1294 } else {
1295#line 493
1296 if (index == 1) {
1297#line 494
1298 __ste_Client_Keyring2_User1 = value;
1299 } else {
1300
1301 }
1302 }
1303 } else {
1304
1305 }
1306 }
1307 }
1308#line 2176 "ClientLib.c"
1309 return;
1310}
1311}
1312#line 501 "ClientLib.c"
1313int __ste_Client_Keyring0_PublicKey0 = 0;
1314#line 503 "ClientLib.c"
1315int __ste_Client_Keyring0_PublicKey1 = 0;
1316#line 505 "ClientLib.c"
1317int __ste_Client_Keyring0_PublicKey2 = 0;
1318#line 507 "ClientLib.c"
1319int __ste_Client_Keyring1_PublicKey0 = 0;
1320#line 509 "ClientLib.c"
1321int __ste_Client_Keyring1_PublicKey1 = 0;
1322#line 511 "ClientLib.c"
1323int __ste_Client_Keyring1_PublicKey2 = 0;
1324#line 513 "ClientLib.c"
1325int __ste_Client_Keyring2_PublicKey0 = 0;
1326#line 515 "ClientLib.c"
1327int __ste_Client_Keyring2_PublicKey1 = 0;
1328#line 517 "ClientLib.c"
1329int __ste_Client_Keyring2_PublicKey2 = 0;
1330#line 520 "ClientLib.c"
1331int getClientKeyringPublicKey(int handle , int index )
1332{ int retValue_acc ;
1333
1334 {
1335#line 553
1336 if (handle == 1) {
1337#line 530 "ClientLib.c"
1338 if (index == 0) {
1339#line 2218
1340 retValue_acc = __ste_Client_Keyring0_PublicKey0;
1341#line 2220
1342 return (retValue_acc);
1343 } else {
1344#line 2222
1345 if (index == 1) {
1346#line 2227
1347 retValue_acc = __ste_Client_Keyring0_PublicKey1;
1348#line 2229
1349 return (retValue_acc);
1350 } else {
1351#line 2235
1352 retValue_acc = 0;
1353#line 2237
1354 return (retValue_acc);
1355 }
1356 }
1357 } else {
1358#line 2239 "ClientLib.c"
1359 if (handle == 2) {
1360#line 540 "ClientLib.c"
1361 if (index == 0) {
1362#line 2247
1363 retValue_acc = __ste_Client_Keyring1_PublicKey0;
1364#line 2249
1365 return (retValue_acc);
1366 } else {
1367#line 2251
1368 if (index == 1) {
1369#line 2256
1370 retValue_acc = __ste_Client_Keyring1_PublicKey1;
1371#line 2258
1372 return (retValue_acc);
1373 } else {
1374#line 2264
1375 retValue_acc = 0;
1376#line 2266
1377 return (retValue_acc);
1378 }
1379 }
1380 } else {
1381#line 2268 "ClientLib.c"
1382 if (handle == 3) {
1383#line 550 "ClientLib.c"
1384 if (index == 0) {
1385#line 2276
1386 retValue_acc = __ste_Client_Keyring2_PublicKey0;
1387#line 2278
1388 return (retValue_acc);
1389 } else {
1390#line 2280
1391 if (index == 1) {
1392#line 2285
1393 retValue_acc = __ste_Client_Keyring2_PublicKey1;
1394#line 2287
1395 return (retValue_acc);
1396 } else {
1397#line 2293
1398 retValue_acc = 0;
1399#line 2295
1400 return (retValue_acc);
1401 }
1402 }
1403 } else {
1404#line 2301 "ClientLib.c"
1405 retValue_acc = 0;
1406#line 2303
1407 return (retValue_acc);
1408 }
1409 }
1410 }
1411#line 2310 "ClientLib.c"
1412 return (retValue_acc);
1413}
1414}
1415#line 557 "ClientLib.c"
1416int findPublicKey(int handle , int userid )
1417{ int retValue_acc ;
1418
1419 {
1420#line 591
1421 if (handle == 1) {
1422#line 568 "ClientLib.c"
1423 if (userid == __ste_Client_Keyring0_User0) {
1424#line 2338
1425 retValue_acc = __ste_Client_Keyring0_PublicKey0;
1426#line 2340
1427 return (retValue_acc);
1428 } else {
1429#line 2342
1430 if (userid == __ste_Client_Keyring0_User1) {
1431#line 2347
1432 retValue_acc = __ste_Client_Keyring0_PublicKey1;
1433#line 2349
1434 return (retValue_acc);
1435 } else {
1436#line 2355
1437 retValue_acc = 0;
1438#line 2357
1439 return (retValue_acc);
1440 }
1441 }
1442 } else {
1443#line 2359 "ClientLib.c"
1444 if (handle == 2) {
1445#line 578 "ClientLib.c"
1446 if (userid == __ste_Client_Keyring1_User0) {
1447#line 2367
1448 retValue_acc = __ste_Client_Keyring1_PublicKey0;
1449#line 2369
1450 return (retValue_acc);
1451 } else {
1452#line 2371
1453 if (userid == __ste_Client_Keyring1_User1) {
1454#line 2376
1455 retValue_acc = __ste_Client_Keyring1_PublicKey1;
1456#line 2378
1457 return (retValue_acc);
1458 } else {
1459#line 2384
1460 retValue_acc = 0;
1461#line 2386
1462 return (retValue_acc);
1463 }
1464 }
1465 } else {
1466#line 2388 "ClientLib.c"
1467 if (handle == 3) {
1468#line 588 "ClientLib.c"
1469 if (userid == __ste_Client_Keyring2_User0) {
1470#line 2396
1471 retValue_acc = __ste_Client_Keyring2_PublicKey0;
1472#line 2398
1473 return (retValue_acc);
1474 } else {
1475#line 2400
1476 if (userid == __ste_Client_Keyring2_User1) {
1477#line 2405
1478 retValue_acc = __ste_Client_Keyring2_PublicKey1;
1479#line 2407
1480 return (retValue_acc);
1481 } else {
1482#line 2413
1483 retValue_acc = 0;
1484#line 2415
1485 return (retValue_acc);
1486 }
1487 }
1488 } else {
1489#line 2421 "ClientLib.c"
1490 retValue_acc = 0;
1491#line 2423
1492 return (retValue_acc);
1493 }
1494 }
1495 }
1496#line 2430 "ClientLib.c"
1497 return (retValue_acc);
1498}
1499}
1500#line 595 "ClientLib.c"
1501void setClientKeyringPublicKey(int handle , int index , int value )
1502{
1503
1504 {
1505#line 621
1506 if (handle == 1) {
1507#line 604
1508 if (index == 0) {
1509#line 598
1510 __ste_Client_Keyring0_PublicKey0 = value;
1511 } else {
1512#line 599
1513 if (index == 1) {
1514#line 600
1515 __ste_Client_Keyring0_PublicKey1 = value;
1516 } else {
1517
1518 }
1519 }
1520 } else {
1521#line 601
1522 if (handle == 2) {
1523#line 612
1524 if (index == 0) {
1525#line 606
1526 __ste_Client_Keyring1_PublicKey0 = value;
1527 } else {
1528#line 607
1529 if (index == 1) {
1530#line 608
1531 __ste_Client_Keyring1_PublicKey1 = value;
1532 } else {
1533
1534 }
1535 }
1536 } else {
1537#line 609
1538 if (handle == 3) {
1539#line 620
1540 if (index == 0) {
1541#line 614
1542 __ste_Client_Keyring2_PublicKey0 = value;
1543 } else {
1544#line 615
1545 if (index == 1) {
1546#line 616
1547 __ste_Client_Keyring2_PublicKey1 = value;
1548 } else {
1549
1550 }
1551 }
1552 } else {
1553
1554 }
1555 }
1556 }
1557#line 2486 "ClientLib.c"
1558 return;
1559}
1560}
1561#line 623 "ClientLib.c"
1562int __ste_client_forwardReceiver0 = 0;
1563#line 625 "ClientLib.c"
1564int __ste_client_forwardReceiver1 = 0;
1565#line 627 "ClientLib.c"
1566int __ste_client_forwardReceiver2 = 0;
1567#line 629 "ClientLib.c"
1568int __ste_client_forwardReceiver3 = 0;
1569#line 631 "ClientLib.c"
1570int getClientForwardReceiver(int handle )
1571{ int retValue_acc ;
1572
1573 {
1574#line 640 "ClientLib.c"
1575 if (handle == 1) {
1576#line 2515
1577 retValue_acc = __ste_client_forwardReceiver0;
1578#line 2517
1579 return (retValue_acc);
1580 } else {
1581#line 2519
1582 if (handle == 2) {
1583#line 2524
1584 retValue_acc = __ste_client_forwardReceiver1;
1585#line 2526
1586 return (retValue_acc);
1587 } else {
1588#line 2528
1589 if (handle == 3) {
1590#line 2533
1591 retValue_acc = __ste_client_forwardReceiver2;
1592#line 2535
1593 return (retValue_acc);
1594 } else {
1595#line 2541 "ClientLib.c"
1596 retValue_acc = 0;
1597#line 2543
1598 return (retValue_acc);
1599 }
1600 }
1601 }
1602#line 2550 "ClientLib.c"
1603 return (retValue_acc);
1604}
1605}
1606#line 643 "ClientLib.c"
1607void setClientForwardReceiver(int handle , int value )
1608{
1609
1610 {
1611#line 651
1612 if (handle == 1) {
1613#line 645
1614 __ste_client_forwardReceiver0 = value;
1615 } else {
1616#line 646
1617 if (handle == 2) {
1618#line 647
1619 __ste_client_forwardReceiver1 = value;
1620 } else {
1621#line 648
1622 if (handle == 3) {
1623#line 649
1624 __ste_client_forwardReceiver2 = value;
1625 } else {
1626
1627 }
1628 }
1629 }
1630#line 2585 "ClientLib.c"
1631 return;
1632}
1633}
1634#line 653 "ClientLib.c"
1635int __ste_client_idCounter0 = 0;
1636#line 655 "ClientLib.c"
1637int __ste_client_idCounter1 = 0;
1638#line 657 "ClientLib.c"
1639int __ste_client_idCounter2 = 0;
1640#line 660 "ClientLib.c"
1641int getClientId(int handle )
1642{ int retValue_acc ;
1643
1644 {
1645#line 669 "ClientLib.c"
1646 if (handle == 1) {
1647#line 2612
1648 retValue_acc = __ste_client_idCounter0;
1649#line 2614
1650 return (retValue_acc);
1651 } else {
1652#line 2616
1653 if (handle == 2) {
1654#line 2621
1655 retValue_acc = __ste_client_idCounter1;
1656#line 2623
1657 return (retValue_acc);
1658 } else {
1659#line 2625
1660 if (handle == 3) {
1661#line 2630
1662 retValue_acc = __ste_client_idCounter2;
1663#line 2632
1664 return (retValue_acc);
1665 } else {
1666#line 2638 "ClientLib.c"
1667 retValue_acc = 0;
1668#line 2640
1669 return (retValue_acc);
1670 }
1671 }
1672 }
1673#line 2647 "ClientLib.c"
1674 return (retValue_acc);
1675}
1676}
1677#line 672 "ClientLib.c"
1678void setClientId(int handle , int value )
1679{
1680
1681 {
1682#line 680
1683 if (handle == 1) {
1684#line 674
1685 __ste_client_idCounter0 = value;
1686 } else {
1687#line 675
1688 if (handle == 2) {
1689#line 676
1690 __ste_client_idCounter1 = value;
1691 } else {
1692#line 677
1693 if (handle == 3) {
1694#line 678
1695 __ste_client_idCounter2 = value;
1696 } else {
1697
1698 }
1699 }
1700 }
1701#line 2682 "ClientLib.c"
1702 return;
1703}
1704}
1705#line 1 "wsllib_check.o"
1706#pragma merger(0,"wsllib_check.i","")
1707#line 3 "wsllib_check.c"
1708void __automaton_fail(void)
1709{
1710
1711 {
1712 goto ERROR;
1713 ERROR: ;
1714#line 53 "wsllib_check.c"
1715 return;
1716}
1717}
1718#line 1 "libacc.o"
1719#pragma merger(0,"libacc.i","")
1720#line 73 "/usr/include/assert.h"
1721extern __attribute__((__nothrow__, __noreturn__)) void __assert_fail(char const *__assertion ,
1722 char const *__file ,
1723 unsigned int __line ,
1724 char const *__function ) ;
1725#line 471 "/usr/include/stdlib.h"
1726extern __attribute__((__nothrow__)) void *malloc(size_t __size ) __attribute__((__malloc__)) ;
1727#line 488
1728extern __attribute__((__nothrow__)) void free(void *__ptr ) ;
1729#line 32 "libacc.c"
1730void __utac__exception__cf_handler_set(void *exception , int (*cflow_func)(int ,
1731 int ) ,
1732 int val )
1733{ struct __UTAC__EXCEPTION *excep ;
1734 struct __UTAC__CFLOW_FUNC *cf ;
1735 void *tmp ;
1736 unsigned long __cil_tmp7 ;
1737 unsigned long __cil_tmp8 ;
1738 unsigned long __cil_tmp9 ;
1739 unsigned long __cil_tmp10 ;
1740 unsigned long __cil_tmp11 ;
1741 unsigned long __cil_tmp12 ;
1742 unsigned long __cil_tmp13 ;
1743 unsigned long __cil_tmp14 ;
1744 int (**mem_15)(int , int ) ;
1745 int *mem_16 ;
1746 struct __UTAC__CFLOW_FUNC **mem_17 ;
1747 struct __UTAC__CFLOW_FUNC **mem_18 ;
1748 struct __UTAC__CFLOW_FUNC **mem_19 ;
1749
1750 {
1751 {
1752#line 33
1753 excep = (struct __UTAC__EXCEPTION *)exception;
1754#line 34
1755 tmp = malloc(24UL);
1756#line 34
1757 cf = (struct __UTAC__CFLOW_FUNC *)tmp;
1758#line 36
1759 mem_15 = (int (**)(int , int ))cf;
1760#line 36
1761 *mem_15 = cflow_func;
1762#line 37
1763 __cil_tmp7 = (unsigned long )cf;
1764#line 37
1765 __cil_tmp8 = __cil_tmp7 + 8;
1766#line 37
1767 mem_16 = (int *)__cil_tmp8;
1768#line 37
1769 *mem_16 = val;
1770#line 38
1771 __cil_tmp9 = (unsigned long )cf;
1772#line 38
1773 __cil_tmp10 = __cil_tmp9 + 16;
1774#line 38
1775 __cil_tmp11 = (unsigned long )excep;
1776#line 38
1777 __cil_tmp12 = __cil_tmp11 + 24;
1778#line 38
1779 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp10;
1780#line 38
1781 mem_18 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp12;
1782#line 38
1783 *mem_17 = *mem_18;
1784#line 39
1785 __cil_tmp13 = (unsigned long )excep;
1786#line 39
1787 __cil_tmp14 = __cil_tmp13 + 24;
1788#line 39
1789 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
1790#line 39
1791 *mem_19 = cf;
1792 }
1793#line 654 "libacc.c"
1794 return;
1795}
1796}
1797#line 44 "libacc.c"
1798void __utac__exception__cf_handler_free(void *exception )
1799{ struct __UTAC__EXCEPTION *excep ;
1800 struct __UTAC__CFLOW_FUNC *cf ;
1801 struct __UTAC__CFLOW_FUNC *tmp ;
1802 unsigned long __cil_tmp5 ;
1803 unsigned long __cil_tmp6 ;
1804 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
1805 unsigned long __cil_tmp8 ;
1806 unsigned long __cil_tmp9 ;
1807 unsigned long __cil_tmp10 ;
1808 unsigned long __cil_tmp11 ;
1809 void *__cil_tmp12 ;
1810 unsigned long __cil_tmp13 ;
1811 unsigned long __cil_tmp14 ;
1812 struct __UTAC__CFLOW_FUNC **mem_15 ;
1813 struct __UTAC__CFLOW_FUNC **mem_16 ;
1814 struct __UTAC__CFLOW_FUNC **mem_17 ;
1815
1816 {
1817#line 45
1818 excep = (struct __UTAC__EXCEPTION *)exception;
1819#line 46
1820 __cil_tmp5 = (unsigned long )excep;
1821#line 46
1822 __cil_tmp6 = __cil_tmp5 + 24;
1823#line 46
1824 mem_15 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
1825#line 46
1826 cf = *mem_15;
1827 {
1828#line 49
1829 while (1) {
1830 while_0_continue: ;
1831 {
1832#line 49
1833 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
1834#line 49
1835 __cil_tmp8 = (unsigned long )__cil_tmp7;
1836#line 49
1837 __cil_tmp9 = (unsigned long )cf;
1838#line 49
1839 if (__cil_tmp9 != __cil_tmp8) {
1840
1841 } else {
1842 goto while_0_break;
1843 }
1844 }
1845 {
1846#line 50
1847 tmp = cf;
1848#line 51
1849 __cil_tmp10 = (unsigned long )cf;
1850#line 51
1851 __cil_tmp11 = __cil_tmp10 + 16;
1852#line 51
1853 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp11;
1854#line 51
1855 cf = *mem_16;
1856#line 52
1857 __cil_tmp12 = (void *)tmp;
1858#line 52
1859 free(__cil_tmp12);
1860 }
1861 }
1862 while_0_break: ;
1863 }
1864#line 55
1865 __cil_tmp13 = (unsigned long )excep;
1866#line 55
1867 __cil_tmp14 = __cil_tmp13 + 24;
1868#line 55
1869 mem_17 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp14;
1870#line 55
1871 *mem_17 = (struct __UTAC__CFLOW_FUNC *)0;
1872#line 694 "libacc.c"
1873 return;
1874}
1875}
1876#line 59 "libacc.c"
1877void __utac__exception__cf_handler_reset(void *exception )
1878{ struct __UTAC__EXCEPTION *excep ;
1879 struct __UTAC__CFLOW_FUNC *cf ;
1880 unsigned long __cil_tmp5 ;
1881 unsigned long __cil_tmp6 ;
1882 struct __UTAC__CFLOW_FUNC *__cil_tmp7 ;
1883 unsigned long __cil_tmp8 ;
1884 unsigned long __cil_tmp9 ;
1885 int (*__cil_tmp10)(int , int ) ;
1886 unsigned long __cil_tmp11 ;
1887 unsigned long __cil_tmp12 ;
1888 int __cil_tmp13 ;
1889 unsigned long __cil_tmp14 ;
1890 unsigned long __cil_tmp15 ;
1891 struct __UTAC__CFLOW_FUNC **mem_16 ;
1892 int (**mem_17)(int , int ) ;
1893 int *mem_18 ;
1894 struct __UTAC__CFLOW_FUNC **mem_19 ;
1895
1896 {
1897#line 60
1898 excep = (struct __UTAC__EXCEPTION *)exception;
1899#line 61
1900 __cil_tmp5 = (unsigned long )excep;
1901#line 61
1902 __cil_tmp6 = __cil_tmp5 + 24;
1903#line 61
1904 mem_16 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp6;
1905#line 61
1906 cf = *mem_16;
1907 {
1908#line 64
1909 while (1) {
1910 while_1_continue: ;
1911 {
1912#line 64
1913 __cil_tmp7 = (struct __UTAC__CFLOW_FUNC *)0;
1914#line 64
1915 __cil_tmp8 = (unsigned long )__cil_tmp7;
1916#line 64
1917 __cil_tmp9 = (unsigned long )cf;
1918#line 64
1919 if (__cil_tmp9 != __cil_tmp8) {
1920
1921 } else {
1922 goto while_1_break;
1923 }
1924 }
1925 {
1926#line 65
1927 mem_17 = (int (**)(int , int ))cf;
1928#line 65
1929 __cil_tmp10 = *mem_17;
1930#line 65
1931 __cil_tmp11 = (unsigned long )cf;
1932#line 65
1933 __cil_tmp12 = __cil_tmp11 + 8;
1934#line 65
1935 mem_18 = (int *)__cil_tmp12;
1936#line 65
1937 __cil_tmp13 = *mem_18;
1938#line 65
1939 (*__cil_tmp10)(4, __cil_tmp13);
1940#line 66
1941 __cil_tmp14 = (unsigned long )cf;
1942#line 66
1943 __cil_tmp15 = __cil_tmp14 + 16;
1944#line 66
1945 mem_19 = (struct __UTAC__CFLOW_FUNC **)__cil_tmp15;
1946#line 66
1947 cf = *mem_19;
1948 }
1949 }
1950 while_1_break: ;
1951 }
1952 {
1953#line 69
1954 __utac__exception__cf_handler_free(exception);
1955 }
1956#line 732 "libacc.c"
1957 return;
1958}
1959}
1960#line 80 "libacc.c"
1961void *__utac__error_stack_mgt(void *env , int mode , int count ) ;
1962#line 80 "libacc.c"
1963static struct __ACC__ERR *head = (struct __ACC__ERR *)0;
1964#line 79 "libacc.c"
1965void *__utac__error_stack_mgt(void *env , int mode , int count )
1966{ void *retValue_acc ;
1967 struct __ACC__ERR *new ;
1968 void *tmp ;
1969 struct __ACC__ERR *temp ;
1970 struct __ACC__ERR *next ;
1971 void *excep ;
1972 unsigned long __cil_tmp10 ;
1973 unsigned long __cil_tmp11 ;
1974 unsigned long __cil_tmp12 ;
1975 unsigned long __cil_tmp13 ;
1976 void *__cil_tmp14 ;
1977 unsigned long __cil_tmp15 ;
1978 unsigned long __cil_tmp16 ;
1979 void *__cil_tmp17 ;
1980 void **mem_18 ;
1981 struct __ACC__ERR **mem_19 ;
1982 struct __ACC__ERR **mem_20 ;
1983 void **mem_21 ;
1984 struct __ACC__ERR **mem_22 ;
1985 void **mem_23 ;
1986 void **mem_24 ;
1987
1988 {
1989#line 82 "libacc.c"
1990 if (count == 0) {
1991#line 758 "libacc.c"
1992 return (retValue_acc);
1993 } else {
1994
1995 }
1996#line 86 "libacc.c"
1997 if (mode == 0) {
1998 {
1999#line 87
2000 tmp = malloc(16UL);
2001#line 87
2002 new = (struct __ACC__ERR *)tmp;
2003#line 88
2004 mem_18 = (void **)new;
2005#line 88
2006 *mem_18 = env;
2007#line 89
2008 __cil_tmp10 = (unsigned long )new;
2009#line 89
2010 __cil_tmp11 = __cil_tmp10 + 8;
2011#line 89
2012 mem_19 = (struct __ACC__ERR **)__cil_tmp11;
2013#line 89
2014 *mem_19 = head;
2015#line 90
2016 head = new;
2017#line 776 "libacc.c"
2018 retValue_acc = (void *)new;
2019 }
2020#line 778
2021 return (retValue_acc);
2022 } else {
2023
2024 }
2025#line 94 "libacc.c"
2026 if (mode == 1) {
2027#line 95
2028 temp = head;
2029 {
2030#line 98
2031 while (1) {
2032 while_2_continue: ;
2033#line 98
2034 if (count > 1) {
2035
2036 } else {
2037 goto while_2_break;
2038 }
2039 {
2040#line 99
2041 __cil_tmp12 = (unsigned long )temp;
2042#line 99
2043 __cil_tmp13 = __cil_tmp12 + 8;
2044#line 99
2045 mem_20 = (struct __ACC__ERR **)__cil_tmp13;
2046#line 99
2047 next = *mem_20;
2048#line 100
2049 mem_21 = (void **)temp;
2050#line 100
2051 excep = *mem_21;
2052#line 101
2053 __cil_tmp14 = (void *)temp;
2054#line 101
2055 free(__cil_tmp14);
2056#line 102
2057 __utac__exception__cf_handler_reset(excep);
2058#line 103
2059 temp = next;
2060#line 104
2061 count = count - 1;
2062 }
2063 }
2064 while_2_break: ;
2065 }
2066 {
2067#line 107
2068 __cil_tmp15 = (unsigned long )temp;
2069#line 107
2070 __cil_tmp16 = __cil_tmp15 + 8;
2071#line 107
2072 mem_22 = (struct __ACC__ERR **)__cil_tmp16;
2073#line 107
2074 head = *mem_22;
2075#line 108
2076 mem_23 = (void **)temp;
2077#line 108
2078 excep = *mem_23;
2079#line 109
2080 __cil_tmp17 = (void *)temp;
2081#line 109
2082 free(__cil_tmp17);
2083#line 110
2084 __utac__exception__cf_handler_reset(excep);
2085#line 820 "libacc.c"
2086 retValue_acc = excep;
2087 }
2088#line 822
2089 return (retValue_acc);
2090 } else {
2091
2092 }
2093#line 114
2094 if (mode == 2) {
2095#line 118 "libacc.c"
2096 if (head) {
2097#line 831
2098 mem_24 = (void **)head;
2099#line 831
2100 retValue_acc = *mem_24;
2101#line 833
2102 return (retValue_acc);
2103 } else {
2104#line 837 "libacc.c"
2105 retValue_acc = (void *)0;
2106#line 839
2107 return (retValue_acc);
2108 }
2109 } else {
2110
2111 }
2112#line 846 "libacc.c"
2113 return (retValue_acc);
2114}
2115}
2116#line 122 "libacc.c"
2117void *__utac__get_this_arg(int i , struct JoinPoint *this )
2118{ void *retValue_acc ;
2119 unsigned long __cil_tmp4 ;
2120 unsigned long __cil_tmp5 ;
2121 int __cil_tmp6 ;
2122 int __cil_tmp7 ;
2123 unsigned long __cil_tmp8 ;
2124 unsigned long __cil_tmp9 ;
2125 void **__cil_tmp10 ;
2126 void **__cil_tmp11 ;
2127 int *mem_12 ;
2128 void ***mem_13 ;
2129
2130 {
2131#line 123
2132 if (i > 0) {
2133 {
2134#line 123
2135 __cil_tmp4 = (unsigned long )this;
2136#line 123
2137 __cil_tmp5 = __cil_tmp4 + 16;
2138#line 123
2139 mem_12 = (int *)__cil_tmp5;
2140#line 123
2141 __cil_tmp6 = *mem_12;
2142#line 123
2143 if (i <= __cil_tmp6) {
2144
2145 } else {
2146 {
2147#line 123
2148 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2149 123U, "__utac__get_this_arg");
2150 }
2151 }
2152 }
2153 } else {
2154 {
2155#line 123
2156 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2157 123U, "__utac__get_this_arg");
2158 }
2159 }
2160#line 870 "libacc.c"
2161 __cil_tmp7 = i - 1;
2162#line 870
2163 __cil_tmp8 = (unsigned long )this;
2164#line 870
2165 __cil_tmp9 = __cil_tmp8 + 8;
2166#line 870
2167 mem_13 = (void ***)__cil_tmp9;
2168#line 870
2169 __cil_tmp10 = *mem_13;
2170#line 870
2171 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
2172#line 870
2173 retValue_acc = *__cil_tmp11;
2174#line 872
2175 return (retValue_acc);
2176#line 879
2177 return (retValue_acc);
2178}
2179}
2180#line 129 "libacc.c"
2181char const *__utac__get_this_argtype(int i , struct JoinPoint *this )
2182{ char const *retValue_acc ;
2183 unsigned long __cil_tmp4 ;
2184 unsigned long __cil_tmp5 ;
2185 int __cil_tmp6 ;
2186 int __cil_tmp7 ;
2187 unsigned long __cil_tmp8 ;
2188 unsigned long __cil_tmp9 ;
2189 char const **__cil_tmp10 ;
2190 char const **__cil_tmp11 ;
2191 int *mem_12 ;
2192 char const ***mem_13 ;
2193
2194 {
2195#line 131
2196 if (i > 0) {
2197 {
2198#line 131
2199 __cil_tmp4 = (unsigned long )this;
2200#line 131
2201 __cil_tmp5 = __cil_tmp4 + 16;
2202#line 131
2203 mem_12 = (int *)__cil_tmp5;
2204#line 131
2205 __cil_tmp6 = *mem_12;
2206#line 131
2207 if (i <= __cil_tmp6) {
2208
2209 } else {
2210 {
2211#line 131
2212 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2213 131U, "__utac__get_this_argtype");
2214 }
2215 }
2216 }
2217 } else {
2218 {
2219#line 131
2220 __assert_fail("i > 0 && i <= this->argsCount", "libacc.c",
2221 131U, "__utac__get_this_argtype");
2222 }
2223 }
2224#line 903 "libacc.c"
2225 __cil_tmp7 = i - 1;
2226#line 903
2227 __cil_tmp8 = (unsigned long )this;
2228#line 903
2229 __cil_tmp9 = __cil_tmp8 + 24;
2230#line 903
2231 mem_13 = (char const ***)__cil_tmp9;
2232#line 903
2233 __cil_tmp10 = *mem_13;
2234#line 903
2235 __cil_tmp11 = __cil_tmp10 + __cil_tmp7;
2236#line 903
2237 retValue_acc = *__cil_tmp11;
2238#line 905
2239 return (retValue_acc);
2240#line 912
2241 return (retValue_acc);
2242}
2243}
2244#line 1 "Test.o"
2245#pragma merger(0,"Test.i","")
2246#line 359 "/usr/include/stdio.h"
2247extern int printf(char const * __restrict __format , ...) ;
2248#line 688
2249extern int puts(char const *__s ) ;
2250#line 8 "featureselect.h"
2251int __SELECTED_FEATURE_Base ;
2252#line 11 "featureselect.h"
2253int __SELECTED_FEATURE_Keys ;
2254#line 14 "featureselect.h"
2255int __SELECTED_FEATURE_Encrypt ;
2256#line 17 "featureselect.h"
2257int __SELECTED_FEATURE_AutoResponder ;
2258#line 20 "featureselect.h"
2259int __SELECTED_FEATURE_AddressBook ;
2260#line 23 "featureselect.h"
2261int __SELECTED_FEATURE_Sign ;
2262#line 26 "featureselect.h"
2263int __SELECTED_FEATURE_Forward ;
2264#line 29 "featureselect.h"
2265int __SELECTED_FEATURE_Verify ;
2266#line 32 "featureselect.h"
2267int __SELECTED_FEATURE_Decrypt ;
2268#line 35 "featureselect.h"
2269int __GUIDSL_ROOT_PRODUCTION ;
2270#line 37 "featureselect.h"
2271int __GUIDSL_NON_TERMINAL_main ;
2272#line 43
2273void select_features(void) ;
2274#line 45
2275void select_helpers(void) ;
2276#line 47
2277int valid_product(void) ;
2278#line 17 "Client.h"
2279int is_queue_empty(void) ;
2280#line 19
2281int get_queued_client(void) ;
2282#line 21
2283int get_queued_email(void) ;
2284#line 26
2285void outgoing(int client , int msg ) ;
2286#line 35
2287void sendEmail(int sender , int receiver ) ;
2288#line 44
2289void generateKeyPair(int client , int seed ) ;
2290#line 2 "Test.h"
2291int bob ;
2292#line 5 "Test.h"
2293int rjh ;
2294#line 8 "Test.h"
2295int chuck ;
2296#line 11
2297void setup_bob(int bob___0 ) ;
2298#line 14
2299void setup_rjh(int rjh___0 ) ;
2300#line 17
2301void setup_chuck(int chuck___0 ) ;
2302#line 23
2303void bobToRjh(void) ;
2304#line 26
2305void rjhToBob(void) ;
2306#line 29
2307void test(void) ;
2308#line 32
2309void setup(void) ;
2310#line 35
2311int main(void) ;
2312#line 36
2313void bobKeyAdd(void) ;
2314#line 39
2315void bobKeyAddChuck(void) ;
2316#line 42
2317void rjhKeyAdd(void) ;
2318#line 45
2319void rjhKeyAddChuck(void) ;
2320#line 48
2321void chuckKeyAdd(void) ;
2322#line 51
2323void bobKeyChange(void) ;
2324#line 54
2325void rjhKeyChange(void) ;
2326#line 57
2327void rjhDeletePrivateKey(void) ;
2328#line 60
2329void chuckKeyAddRjh(void) ;
2330#line 61
2331void rjhEnableForwarding(void) ;
2332#line 18 "Test.c"
2333void setup_bob__wrappee__Base(int bob___0 )
2334{
2335
2336 {
2337 {
2338#line 19
2339 setClientId(bob___0, bob___0);
2340 }
2341#line 1330 "Test.c"
2342 return;
2343}
2344}
2345#line 23 "Test.c"
2346void setup_bob(int bob___0 )
2347{
2348
2349 {
2350 {
2351#line 24
2352 setup_bob__wrappee__Base(bob___0);
2353#line 25
2354 setClientPrivateKey(bob___0, 123);
2355 }
2356#line 1352 "Test.c"
2357 return;
2358}
2359}
2360#line 33 "Test.c"
2361void setup_rjh__wrappee__Base(int rjh___0 )
2362{
2363
2364 {
2365 {
2366#line 34
2367 setClientId(rjh___0, rjh___0);
2368 }
2369#line 1372 "Test.c"
2370 return;
2371}
2372}
2373#line 40 "Test.c"
2374void setup_rjh(int rjh___0 )
2375{
2376
2377 {
2378 {
2379#line 42
2380 setup_rjh__wrappee__Base(rjh___0);
2381#line 43
2382 setClientPrivateKey(rjh___0, 456);
2383 }
2384#line 1394 "Test.c"
2385 return;
2386}
2387}
2388#line 50 "Test.c"
2389void setup_chuck__wrappee__Base(int chuck___0 )
2390{
2391
2392 {
2393 {
2394#line 51
2395 setClientId(chuck___0, chuck___0);
2396 }
2397#line 1414 "Test.c"
2398 return;
2399}
2400}
2401#line 57 "Test.c"
2402void setup_chuck(int chuck___0 )
2403{
2404
2405 {
2406 {
2407#line 58
2408 setup_chuck__wrappee__Base(chuck___0);
2409#line 59
2410 setClientPrivateKey(chuck___0, 789);
2411 }
2412#line 1436 "Test.c"
2413 return;
2414}
2415}
2416#line 69 "Test.c"
2417void bobToRjh(void)
2418{ int tmp ;
2419 int tmp___0 ;
2420 int tmp___1 ;
2421
2422 {
2423 {
2424#line 71
2425 puts("Please enter a subject and a message body.\n");
2426#line 72
2427 sendEmail(bob, rjh);
2428#line 73
2429 tmp___1 = is_queue_empty();
2430 }
2431#line 73
2432 if (tmp___1) {
2433
2434 } else {
2435 {
2436#line 74
2437 tmp = get_queued_email();
2438#line 74
2439 tmp___0 = get_queued_client();
2440#line 74
2441 outgoing(tmp___0, tmp);
2442 }
2443 }
2444#line 1463 "Test.c"
2445 return;
2446}
2447}
2448#line 81 "Test.c"
2449void rjhToBob(void)
2450{
2451
2452 {
2453 {
2454#line 83
2455 puts("Please enter a subject and a message body.\n");
2456#line 84
2457 sendEmail(rjh, bob);
2458 }
2459#line 1485 "Test.c"
2460 return;
2461}
2462}
2463#line 88 "Test.c"
2464#line 95 "Test.c"
2465void setup(void)
2466{ char const * __restrict __cil_tmp1 ;
2467 char const * __restrict __cil_tmp2 ;
2468 char const * __restrict __cil_tmp3 ;
2469
2470 {
2471 {
2472#line 96
2473 bob = 1;
2474#line 97
2475 setup_bob(bob);
2476#line 98
2477 __cil_tmp1 = (char const * __restrict )"bob: %d\n";
2478#line 98
2479 printf(__cil_tmp1, bob);
2480#line 100
2481 rjh = 2;
2482#line 101
2483 setup_rjh(rjh);
2484#line 102
2485 __cil_tmp2 = (char const * __restrict )"rjh: %d\n";
2486#line 102
2487 printf(__cil_tmp2, rjh);
2488#line 104
2489 chuck = 3;
2490#line 105
2491 setup_chuck(chuck);
2492#line 106
2493 __cil_tmp3 = (char const * __restrict )"chuck: %d\n";
2494#line 106
2495 printf(__cil_tmp3, chuck);
2496 }
2497#line 1556 "Test.c"
2498 return;
2499}
2500}
2501#line 112 "Test.c"
2502int main(void)
2503{ int retValue_acc ;
2504 int tmp ;
2505
2506 {
2507 {
2508#line 113
2509 select_helpers();
2510#line 114
2511 select_features();
2512#line 115
2513 tmp = valid_product();
2514 }
2515#line 115
2516 if (tmp) {
2517 {
2518#line 116
2519 setup();
2520#line 117
2521 test();
2522 }
2523 } else {
2524
2525 }
2526#line 1587 "Test.c"
2527 return (retValue_acc);
2528}
2529}
2530#line 125 "Test.c"
2531void bobKeyAdd(void)
2532{ int tmp ;
2533 int tmp___0 ;
2534 char const * __restrict __cil_tmp3 ;
2535 char const * __restrict __cil_tmp4 ;
2536
2537 {
2538 {
2539#line 126
2540 createClientKeyringEntry(bob);
2541#line 127
2542 setClientKeyringUser(bob, 0, 2);
2543#line 128
2544 setClientKeyringPublicKey(bob, 0, 456);
2545#line 129
2546 puts("bob added rjhs key");
2547#line 130
2548 tmp = getClientKeyringUser(bob, 0);
2549#line 130
2550 __cil_tmp3 = (char const * __restrict )"%d\n";
2551#line 130
2552 printf(__cil_tmp3, tmp);
2553#line 131
2554 tmp___0 = getClientKeyringPublicKey(bob, 0);
2555#line 131
2556 __cil_tmp4 = (char const * __restrict )"%d\n";
2557#line 131
2558 printf(__cil_tmp4, tmp___0);
2559 }
2560#line 1621 "Test.c"
2561 return;
2562}
2563}
2564#line 137 "Test.c"
2565void rjhKeyAdd(void)
2566{
2567
2568 {
2569 {
2570#line 138
2571 createClientKeyringEntry(rjh);
2572#line 139
2573 setClientKeyringUser(rjh, 0, 1);
2574#line 140
2575 setClientKeyringPublicKey(rjh, 0, 123);
2576 }
2577#line 1645 "Test.c"
2578 return;
2579}
2580}
2581#line 146 "Test.c"
2582void rjhKeyAddChuck(void)
2583{
2584
2585 {
2586 {
2587#line 147
2588 createClientKeyringEntry(rjh);
2589#line 148
2590 setClientKeyringUser(rjh, 0, 3);
2591#line 149
2592 setClientKeyringPublicKey(rjh, 0, 789);
2593 }
2594#line 1669 "Test.c"
2595 return;
2596}
2597}
2598#line 156 "Test.c"
2599void bobKeyAddChuck(void)
2600{
2601
2602 {
2603 {
2604#line 157
2605 createClientKeyringEntry(bob);
2606#line 158
2607 setClientKeyringUser(bob, 1, 3);
2608#line 159
2609 setClientKeyringPublicKey(bob, 1, 789);
2610 }
2611#line 1693 "Test.c"
2612 return;
2613}
2614}
2615#line 165 "Test.c"
2616void chuckKeyAdd(void)
2617{
2618
2619 {
2620 {
2621#line 166
2622 createClientKeyringEntry(chuck);
2623#line 167
2624 setClientKeyringUser(chuck, 0, 1);
2625#line 168
2626 setClientKeyringPublicKey(chuck, 0, 123);
2627 }
2628#line 1717 "Test.c"
2629 return;
2630}
2631}
2632#line 174 "Test.c"
2633void chuckKeyAddRjh(void)
2634{
2635
2636 {
2637 {
2638#line 175
2639 createClientKeyringEntry(chuck);
2640#line 176
2641 setClientKeyringUser(chuck, 0, 2);
2642#line 177
2643 setClientKeyringPublicKey(chuck, 0, 456);
2644 }
2645#line 1741 "Test.c"
2646 return;
2647}
2648}
2649#line 183 "Test.c"
2650void rjhDeletePrivateKey(void)
2651{
2652
2653 {
2654 {
2655#line 184
2656 setClientPrivateKey(rjh, 0);
2657 }
2658#line 1761 "Test.c"
2659 return;
2660}
2661}
2662#line 190 "Test.c"
2663void bobKeyChange(void)
2664{
2665
2666 {
2667 {
2668#line 191
2669 generateKeyPair(bob, 777);
2670 }
2671#line 1781 "Test.c"
2672 return;
2673}
2674}
2675#line 197 "Test.c"
2676void rjhKeyChange(void)
2677{
2678
2679 {
2680 {
2681#line 198
2682 generateKeyPair(rjh, 666);
2683 }
2684#line 1801 "Test.c"
2685 return;
2686}
2687}
2688#line 204 "Test.c"
2689void rjhEnableForwarding(void)
2690{
2691
2692 {
2693 {
2694#line 205
2695 setClientForwardReceiver(rjh, chuck);
2696 }
2697#line 1821 "Test.c"
2698 return;
2699}
2700}
2701#line 1 "EmailLib.o"
2702#pragma merger(0,"EmailLib.i","")
2703#line 4 "EmailLib.h"
2704int initEmail(void) ;
2705#line 6
2706int getEmailId(int handle ) ;
2707#line 8
2708void setEmailId(int handle , int value ) ;
2709#line 10
2710int getEmailFrom(int handle ) ;
2711#line 12
2712void setEmailFrom(int handle , int value ) ;
2713#line 14
2714int getEmailTo(int handle ) ;
2715#line 16
2716void setEmailTo(int handle , int value ) ;
2717#line 18
2718char *getEmailSubject(int handle ) ;
2719#line 20
2720void setEmailSubject(int handle , char *value ) ;
2721#line 22
2722char *getEmailBody(int handle ) ;
2723#line 24
2724void setEmailBody(int handle , char *value ) ;
2725#line 26
2726int isEncrypted(int handle ) ;
2727#line 28
2728void setEmailIsEncrypted(int handle , int value ) ;
2729#line 30
2730int getEmailEncryptionKey(int handle ) ;
2731#line 32
2732void setEmailEncryptionKey(int handle , int value ) ;
2733#line 34
2734int isSigned(int handle ) ;
2735#line 36
2736void setEmailIsSigned(int handle , int value ) ;
2737#line 38
2738int getEmailSignKey(int handle ) ;
2739#line 40
2740void setEmailSignKey(int handle , int value ) ;
2741#line 42
2742int isVerified(int handle ) ;
2743#line 44
2744void setEmailIsSignatureVerified(int handle , int value ) ;
2745#line 5 "EmailLib.c"
2746int __ste_Email_counter = 0;
2747#line 7 "EmailLib.c"
2748int initEmail(void)
2749{ int retValue_acc ;
2750
2751 {
2752#line 12 "EmailLib.c"
2753 if (__ste_Email_counter < 2) {
2754#line 670
2755 __ste_Email_counter = __ste_Email_counter + 1;
2756#line 670
2757 retValue_acc = __ste_Email_counter;
2758#line 672
2759 return (retValue_acc);
2760 } else {
2761#line 678 "EmailLib.c"
2762 retValue_acc = -1;
2763#line 680
2764 return (retValue_acc);
2765 }
2766#line 687 "EmailLib.c"
2767 return (retValue_acc);
2768}
2769}
2770#line 15 "EmailLib.c"
2771int __ste_email_id0 = 0;
2772#line 17 "EmailLib.c"
2773int __ste_email_id1 = 0;
2774#line 19 "EmailLib.c"
2775int getEmailId(int handle )
2776{ int retValue_acc ;
2777
2778 {
2779#line 26 "EmailLib.c"
2780 if (handle == 1) {
2781#line 716
2782 retValue_acc = __ste_email_id0;
2783#line 718
2784 return (retValue_acc);
2785 } else {
2786#line 720
2787 if (handle == 2) {
2788#line 725
2789 retValue_acc = __ste_email_id1;
2790#line 727
2791 return (retValue_acc);
2792 } else {
2793#line 733 "EmailLib.c"
2794 retValue_acc = 0;
2795#line 735
2796 return (retValue_acc);
2797 }
2798 }
2799#line 742 "EmailLib.c"
2800 return (retValue_acc);
2801}
2802}
2803#line 29 "EmailLib.c"
2804void setEmailId(int handle , int value )
2805{
2806
2807 {
2808#line 35
2809 if (handle == 1) {
2810#line 31
2811 __ste_email_id0 = value;
2812 } else {
2813#line 32
2814 if (handle == 2) {
2815#line 33
2816 __ste_email_id1 = value;
2817 } else {
2818
2819 }
2820 }
2821#line 773 "EmailLib.c"
2822 return;
2823}
2824}
2825#line 37 "EmailLib.c"
2826int __ste_email_from0 = 0;
2827#line 39 "EmailLib.c"
2828int __ste_email_from1 = 0;
2829#line 41 "EmailLib.c"
2830int getEmailFrom(int handle )
2831{ int retValue_acc ;
2832
2833 {
2834#line 48 "EmailLib.c"
2835 if (handle == 1) {
2836#line 798
2837 retValue_acc = __ste_email_from0;
2838#line 800
2839 return (retValue_acc);
2840 } else {
2841#line 802
2842 if (handle == 2) {
2843#line 807
2844 retValue_acc = __ste_email_from1;
2845#line 809
2846 return (retValue_acc);
2847 } else {
2848#line 815 "EmailLib.c"
2849 retValue_acc = 0;
2850#line 817
2851 return (retValue_acc);
2852 }
2853 }
2854#line 824 "EmailLib.c"
2855 return (retValue_acc);
2856}
2857}
2858#line 51 "EmailLib.c"
2859void setEmailFrom(int handle , int value )
2860{
2861
2862 {
2863#line 57
2864 if (handle == 1) {
2865#line 53
2866 __ste_email_from0 = value;
2867 } else {
2868#line 54
2869 if (handle == 2) {
2870#line 55
2871 __ste_email_from1 = value;
2872 } else {
2873
2874 }
2875 }
2876#line 855 "EmailLib.c"
2877 return;
2878}
2879}
2880#line 59 "EmailLib.c"
2881int __ste_email_to0 = 0;
2882#line 61 "EmailLib.c"
2883int __ste_email_to1 = 0;
2884#line 63 "EmailLib.c"
2885int getEmailTo(int handle )
2886{ int retValue_acc ;
2887
2888 {
2889#line 70 "EmailLib.c"
2890 if (handle == 1) {
2891#line 880
2892 retValue_acc = __ste_email_to0;
2893#line 882
2894 return (retValue_acc);
2895 } else {
2896#line 884
2897 if (handle == 2) {
2898#line 889
2899 retValue_acc = __ste_email_to1;
2900#line 891
2901 return (retValue_acc);
2902 } else {
2903#line 897 "EmailLib.c"
2904 retValue_acc = 0;
2905#line 899
2906 return (retValue_acc);
2907 }
2908 }
2909#line 906 "EmailLib.c"
2910 return (retValue_acc);
2911}
2912}
2913#line 73 "EmailLib.c"
2914void setEmailTo(int handle , int value )
2915{
2916
2917 {
2918#line 79
2919 if (handle == 1) {
2920#line 75
2921 __ste_email_to0 = value;
2922 } else {
2923#line 76
2924 if (handle == 2) {
2925#line 77
2926 __ste_email_to1 = value;
2927 } else {
2928
2929 }
2930 }
2931#line 937 "EmailLib.c"
2932 return;
2933}
2934}
2935#line 81 "EmailLib.c"
2936char *__ste_email_subject0 ;
2937#line 83 "EmailLib.c"
2938char *__ste_email_subject1 ;
2939#line 85 "EmailLib.c"
2940char *getEmailSubject(int handle )
2941{ char *retValue_acc ;
2942 void *__cil_tmp3 ;
2943
2944 {
2945#line 92 "EmailLib.c"
2946 if (handle == 1) {
2947#line 962
2948 retValue_acc = __ste_email_subject0;
2949#line 964
2950 return (retValue_acc);
2951 } else {
2952#line 966
2953 if (handle == 2) {
2954#line 971
2955 retValue_acc = __ste_email_subject1;
2956#line 973
2957 return (retValue_acc);
2958 } else {
2959#line 979 "EmailLib.c"
2960 __cil_tmp3 = (void *)0;
2961#line 979
2962 retValue_acc = (char *)__cil_tmp3;
2963#line 981
2964 return (retValue_acc);
2965 }
2966 }
2967#line 988 "EmailLib.c"
2968 return (retValue_acc);
2969}
2970}
2971#line 95 "EmailLib.c"
2972void setEmailSubject(int handle , char *value )
2973{
2974
2975 {
2976#line 101
2977 if (handle == 1) {
2978#line 97
2979 __ste_email_subject0 = value;
2980 } else {
2981#line 98
2982 if (handle == 2) {
2983#line 99
2984 __ste_email_subject1 = value;
2985 } else {
2986
2987 }
2988 }
2989#line 1019 "EmailLib.c"
2990 return;
2991}
2992}
2993#line 103 "EmailLib.c"
2994char *__ste_email_body0 = (char *)0;
2995#line 105 "EmailLib.c"
2996char *__ste_email_body1 = (char *)0;
2997#line 107 "EmailLib.c"
2998char *getEmailBody(int handle )
2999{ char *retValue_acc ;
3000 void *__cil_tmp3 ;
3001
3002 {
3003#line 114 "EmailLib.c"
3004 if (handle == 1) {
3005#line 1044
3006 retValue_acc = __ste_email_body0;
3007#line 1046
3008 return (retValue_acc);
3009 } else {
3010#line 1048
3011 if (handle == 2) {
3012#line 1053
3013 retValue_acc = __ste_email_body1;
3014#line 1055
3015 return (retValue_acc);
3016 } else {
3017#line 1061 "EmailLib.c"
3018 __cil_tmp3 = (void *)0;
3019#line 1061
3020 retValue_acc = (char *)__cil_tmp3;
3021#line 1063
3022 return (retValue_acc);
3023 }
3024 }
3025#line 1070 "EmailLib.c"
3026 return (retValue_acc);
3027}
3028}
3029#line 117 "EmailLib.c"
3030void setEmailBody(int handle , char *value )
3031{
3032
3033 {
3034#line 123
3035 if (handle == 1) {
3036#line 119
3037 __ste_email_body0 = value;
3038 } else {
3039#line 120
3040 if (handle == 2) {
3041#line 121
3042 __ste_email_body1 = value;
3043 } else {
3044
3045 }
3046 }
3047#line 1101 "EmailLib.c"
3048 return;
3049}
3050}
3051#line 125 "EmailLib.c"
3052int __ste_email_isEncrypted0 = 0;
3053#line 127 "EmailLib.c"
3054int __ste_email_isEncrypted1 = 0;
3055#line 129 "EmailLib.c"
3056int isEncrypted(int handle )
3057{ int retValue_acc ;
3058
3059 {
3060#line 136 "EmailLib.c"
3061 if (handle == 1) {
3062#line 1126
3063 retValue_acc = __ste_email_isEncrypted0;
3064#line 1128
3065 return (retValue_acc);
3066 } else {
3067#line 1130
3068 if (handle == 2) {
3069#line 1135
3070 retValue_acc = __ste_email_isEncrypted1;
3071#line 1137
3072 return (retValue_acc);
3073 } else {
3074#line 1143 "EmailLib.c"
3075 retValue_acc = 0;
3076#line 1145
3077 return (retValue_acc);
3078 }
3079 }
3080#line 1152 "EmailLib.c"
3081 return (retValue_acc);
3082}
3083}
3084#line 139 "EmailLib.c"
3085void setEmailIsEncrypted(int handle , int value )
3086{
3087
3088 {
3089#line 145
3090 if (handle == 1) {
3091#line 141
3092 __ste_email_isEncrypted0 = value;
3093 } else {
3094#line 142
3095 if (handle == 2) {
3096#line 143
3097 __ste_email_isEncrypted1 = value;
3098 } else {
3099
3100 }
3101 }
3102#line 1183 "EmailLib.c"
3103 return;
3104}
3105}
3106#line 147 "EmailLib.c"
3107int __ste_email_encryptionKey0 = 0;
3108#line 149 "EmailLib.c"
3109int __ste_email_encryptionKey1 = 0;
3110#line 151 "EmailLib.c"
3111int getEmailEncryptionKey(int handle )
3112{ int retValue_acc ;
3113
3114 {
3115#line 158 "EmailLib.c"
3116 if (handle == 1) {
3117#line 1208
3118 retValue_acc = __ste_email_encryptionKey0;
3119#line 1210
3120 return (retValue_acc);
3121 } else {
3122#line 1212
3123 if (handle == 2) {
3124#line 1217
3125 retValue_acc = __ste_email_encryptionKey1;
3126#line 1219
3127 return (retValue_acc);
3128 } else {
3129#line 1225 "EmailLib.c"
3130 retValue_acc = 0;
3131#line 1227
3132 return (retValue_acc);
3133 }
3134 }
3135#line 1234 "EmailLib.c"
3136 return (retValue_acc);
3137}
3138}
3139#line 161 "EmailLib.c"
3140void setEmailEncryptionKey(int handle , int value )
3141{
3142
3143 {
3144#line 167
3145 if (handle == 1) {
3146#line 163
3147 __ste_email_encryptionKey0 = value;
3148 } else {
3149#line 164
3150 if (handle == 2) {
3151#line 165
3152 __ste_email_encryptionKey1 = value;
3153 } else {
3154
3155 }
3156 }
3157#line 1265 "EmailLib.c"
3158 return;
3159}
3160}
3161#line 169 "EmailLib.c"
3162int __ste_email_isSigned0 = 0;
3163#line 171 "EmailLib.c"
3164int __ste_email_isSigned1 = 0;
3165#line 173 "EmailLib.c"
3166int isSigned(int handle )
3167{ int retValue_acc ;
3168
3169 {
3170#line 180 "EmailLib.c"
3171 if (handle == 1) {
3172#line 1290
3173 retValue_acc = __ste_email_isSigned0;
3174#line 1292
3175 return (retValue_acc);
3176 } else {
3177#line 1294
3178 if (handle == 2) {
3179#line 1299
3180 retValue_acc = __ste_email_isSigned1;
3181#line 1301
3182 return (retValue_acc);
3183 } else {
3184#line 1307 "EmailLib.c"
3185 retValue_acc = 0;
3186#line 1309
3187 return (retValue_acc);
3188 }
3189 }
3190#line 1316 "EmailLib.c"
3191 return (retValue_acc);
3192}
3193}
3194#line 183 "EmailLib.c"
3195void setEmailIsSigned(int handle , int value )
3196{
3197
3198 {
3199#line 189
3200 if (handle == 1) {
3201#line 185
3202 __ste_email_isSigned0 = value;
3203 } else {
3204#line 186
3205 if (handle == 2) {
3206#line 187
3207 __ste_email_isSigned1 = value;
3208 } else {
3209
3210 }
3211 }
3212#line 1347 "EmailLib.c"
3213 return;
3214}
3215}
3216#line 191 "EmailLib.c"
3217int __ste_email_signKey0 = 0;
3218#line 193 "EmailLib.c"
3219int __ste_email_signKey1 = 0;
3220#line 195 "EmailLib.c"
3221int getEmailSignKey(int handle )
3222{ int retValue_acc ;
3223
3224 {
3225#line 202 "EmailLib.c"
3226 if (handle == 1) {
3227#line 1372
3228 retValue_acc = __ste_email_signKey0;
3229#line 1374
3230 return (retValue_acc);
3231 } else {
3232#line 1376
3233 if (handle == 2) {
3234#line 1381
3235 retValue_acc = __ste_email_signKey1;
3236#line 1383
3237 return (retValue_acc);
3238 } else {
3239#line 1389 "EmailLib.c"
3240 retValue_acc = 0;
3241#line 1391
3242 return (retValue_acc);
3243 }
3244 }
3245#line 1398 "EmailLib.c"
3246 return (retValue_acc);
3247}
3248}
3249#line 205 "EmailLib.c"
3250void setEmailSignKey(int handle , int value )
3251{
3252
3253 {
3254#line 211
3255 if (handle == 1) {
3256#line 207
3257 __ste_email_signKey0 = value;
3258 } else {
3259#line 208
3260 if (handle == 2) {
3261#line 209
3262 __ste_email_signKey1 = value;
3263 } else {
3264
3265 }
3266 }
3267#line 1429 "EmailLib.c"
3268 return;
3269}
3270}
3271#line 213 "EmailLib.c"
3272int __ste_email_isSignatureVerified0 ;
3273#line 215 "EmailLib.c"
3274int __ste_email_isSignatureVerified1 ;
3275#line 217 "EmailLib.c"
3276int isVerified(int handle )
3277{ int retValue_acc ;
3278
3279 {
3280#line 224 "EmailLib.c"
3281 if (handle == 1) {
3282#line 1454
3283 retValue_acc = __ste_email_isSignatureVerified0;
3284#line 1456
3285 return (retValue_acc);
3286 } else {
3287#line 1458
3288 if (handle == 2) {
3289#line 1463
3290 retValue_acc = __ste_email_isSignatureVerified1;
3291#line 1465
3292 return (retValue_acc);
3293 } else {
3294#line 1471 "EmailLib.c"
3295 retValue_acc = 0;
3296#line 1473
3297 return (retValue_acc);
3298 }
3299 }
3300#line 1480 "EmailLib.c"
3301 return (retValue_acc);
3302}
3303}
3304#line 227 "EmailLib.c"
3305void setEmailIsSignatureVerified(int handle , int value )
3306{
3307
3308 {
3309#line 233
3310 if (handle == 1) {
3311#line 229
3312 __ste_email_isSignatureVerified0 = value;
3313 } else {
3314#line 230
3315 if (handle == 2) {
3316#line 231
3317 __ste_email_isSignatureVerified1 = value;
3318 } else {
3319
3320 }
3321 }
3322#line 1511 "EmailLib.c"
3323 return;
3324}
3325}
3326#line 1 "Client.o"
3327#pragma merger(0,"Client.i","")
3328#line 6 "Email.h"
3329void printMail(int msg ) ;
3330#line 9
3331int isReadable(int msg ) ;
3332#line 12
3333int createEmail(int from , int to ) ;
3334#line 14 "Client.h"
3335void queue(int client , int msg ) ;
3336#line 24
3337void mail(int client , int msg ) ;
3338#line 28
3339void deliver(int client , int msg ) ;
3340#line 30
3341void incoming(int client , int msg ) ;
3342#line 32
3343int createClient(char *name ) ;
3344#line 40
3345int isKeyPairValid(int publicKey , int privateKey ) ;
3346#line 46
3347void sign(int client , int msg ) ;
3348#line 48
3349void forward(int client , int msg ) ;
3350#line 50
3351void verify(int client , int msg ) ;
3352#line 6 "Client.c"
3353int queue_empty = 1;
3354#line 9 "Client.c"
3355int queued_message ;
3356#line 12 "Client.c"
3357int queued_client ;
3358#line 13
3359void __utac_acc__SignForward_spec__1(int client , int msg ) ;
3360#line 18 "Client.c"
3361void mail(int client , int msg )
3362{ int __utac__ad__arg1 ;
3363 int __utac__ad__arg2 ;
3364 int tmp ;
3365
3366 {
3367 {
3368#line 726 "Client.c"
3369 __utac__ad__arg1 = client;
3370#line 727
3371 __utac__ad__arg2 = msg;
3372#line 728
3373 __utac_acc__SignForward_spec__1(__utac__ad__arg1, __utac__ad__arg2);
3374#line 19 "Client.c"
3375 puts("mail sent");
3376#line 20
3377 tmp = getEmailTo(msg);
3378#line 20
3379 incoming(tmp, msg);
3380 }
3381#line 745 "Client.c"
3382 return;
3383}
3384}
3385#line 27 "Client.c"
3386void outgoing__wrappee__Keys(int client , int msg )
3387{ int tmp ;
3388
3389 {
3390 {
3391#line 28
3392 tmp = getClientId(client);
3393#line 28
3394 setEmailFrom(msg, tmp);
3395#line 29
3396 mail(client, msg);
3397 }
3398#line 767 "Client.c"
3399 return;
3400}
3401}
3402#line 33 "Client.c"
3403void outgoing__wrappee__Encrypt(int client , int msg )
3404{ int receiver ;
3405 int tmp ;
3406 int pubkey ;
3407 int tmp___0 ;
3408
3409 {
3410 {
3411#line 36
3412 tmp = getEmailTo(msg);
3413#line 36
3414 receiver = tmp;
3415#line 37
3416 tmp___0 = findPublicKey(client, receiver);
3417#line 37
3418 pubkey = tmp___0;
3419 }
3420#line 38
3421 if (pubkey) {
3422 {
3423#line 39
3424 setEmailEncryptionKey(msg, pubkey);
3425#line 40
3426 setEmailIsEncrypted(msg, 1);
3427 }
3428 } else {
3429
3430 }
3431 {
3432#line 45
3433 outgoing__wrappee__Keys(client, msg);
3434 }
3435#line 802 "Client.c"
3436 return;
3437}
3438}
3439#line 51 "Client.c"
3440void outgoing(int client , int msg )
3441{
3442
3443 {
3444 {
3445#line 52
3446 sign(client, msg);
3447#line 53
3448 outgoing__wrappee__Encrypt(client, msg);
3449 }
3450#line 824 "Client.c"
3451 return;
3452}
3453}
3454#line 60 "Client.c"
3455void deliver(int client , int msg )
3456{
3457
3458 {
3459 {
3460#line 61
3461 puts("mail delivered\n");
3462 }
3463#line 844 "Client.c"
3464 return;
3465}
3466}
3467#line 68 "Client.c"
3468void incoming__wrappee__Sign(int client , int msg )
3469{
3470
3471 {
3472 {
3473#line 69
3474 deliver(client, msg);
3475 }
3476#line 864 "Client.c"
3477 return;
3478}
3479}
3480#line 75 "Client.c"
3481void incoming__wrappee__Forward(int client , int msg )
3482{ int fwreceiver ;
3483 int tmp ;
3484
3485 {
3486 {
3487#line 76
3488 incoming__wrappee__Sign(client, msg);
3489#line 77
3490 tmp = getClientForwardReceiver(client);
3491#line 77
3492 fwreceiver = tmp;
3493 }
3494#line 78
3495 if (fwreceiver) {
3496 {
3497#line 80
3498 setEmailTo(msg, fwreceiver);
3499#line 81
3500 forward(client, msg);
3501 }
3502 } else {
3503
3504 }
3505#line 895 "Client.c"
3506 return;
3507}
3508}
3509#line 89 "Client.c"
3510void incoming__wrappee__Verify(int client , int msg )
3511{
3512
3513 {
3514 {
3515#line 90
3516 verify(client, msg);
3517#line 91
3518 incoming__wrappee__Forward(client, msg);
3519 }
3520#line 917 "Client.c"
3521 return;
3522}
3523}
3524#line 96 "Client.c"
3525void incoming(int client , int msg )
3526{ int privkey ;
3527 int tmp ;
3528 int tmp___0 ;
3529 int tmp___1 ;
3530 int tmp___2 ;
3531
3532 {
3533 {
3534#line 99
3535 tmp = getClientPrivateKey(client);
3536#line 99
3537 privkey = tmp;
3538 }
3539#line 100
3540 if (privkey) {
3541 {
3542#line 108
3543 tmp___0 = isEncrypted(msg);
3544 }
3545#line 108
3546 if (tmp___0) {
3547 {
3548#line 108
3549 tmp___1 = getEmailEncryptionKey(msg);
3550#line 108
3551 tmp___2 = isKeyPairValid(tmp___1, privkey);
3552 }
3553#line 108
3554 if (tmp___2) {
3555 {
3556#line 105
3557 setEmailIsEncrypted(msg, 0);
3558#line 106
3559 setEmailEncryptionKey(msg, 0);
3560 }
3561 } else {
3562
3563 }
3564 } else {
3565
3566 }
3567 } else {
3568
3569 }
3570 {
3571#line 111
3572 incoming__wrappee__Verify(client, msg);
3573 }
3574#line 951 "Client.c"
3575 return;
3576}
3577}
3578#line 115 "Client.c"
3579int createClient(char *name )
3580{ int retValue_acc ;
3581 int client ;
3582 int tmp ;
3583
3584 {
3585 {
3586#line 116
3587 tmp = initClient();
3588#line 116
3589 client = tmp;
3590#line 973 "Client.c"
3591 retValue_acc = client;
3592 }
3593#line 975
3594 return (retValue_acc);
3595#line 982
3596 return (retValue_acc);
3597}
3598}
3599#line 123 "Client.c"
3600void sendEmail(int sender , int receiver )
3601{ int email ;
3602 int tmp ;
3603
3604 {
3605 {
3606#line 124
3607 tmp = createEmail(0, receiver);
3608#line 124
3609 email = tmp;
3610#line 125
3611 outgoing(sender, email);
3612 }
3613#line 1010 "Client.c"
3614 return;
3615}
3616}
3617#line 133 "Client.c"
3618void queue(int client , int msg )
3619{
3620
3621 {
3622#line 134
3623 queue_empty = 0;
3624#line 135
3625 queued_message = msg;
3626#line 136
3627 queued_client = client;
3628#line 1034 "Client.c"
3629 return;
3630}
3631}
3632#line 142 "Client.c"
3633int is_queue_empty(void)
3634{ int retValue_acc ;
3635
3636 {
3637#line 1052 "Client.c"
3638 retValue_acc = queue_empty;
3639#line 1054
3640 return (retValue_acc);
3641#line 1061
3642 return (retValue_acc);
3643}
3644}
3645#line 149 "Client.c"
3646int get_queued_client(void)
3647{ int retValue_acc ;
3648
3649 {
3650#line 1083 "Client.c"
3651 retValue_acc = queued_client;
3652#line 1085
3653 return (retValue_acc);
3654#line 1092
3655 return (retValue_acc);
3656}
3657}
3658#line 156 "Client.c"
3659int get_queued_email(void)
3660{ int retValue_acc ;
3661
3662 {
3663#line 1114 "Client.c"
3664 retValue_acc = queued_message;
3665#line 1116
3666 return (retValue_acc);
3667#line 1123
3668 return (retValue_acc);
3669}
3670}
3671#line 162 "Client.c"
3672int isKeyPairValid(int publicKey , int privateKey )
3673{ int retValue_acc ;
3674 char const * __restrict __cil_tmp4 ;
3675
3676 {
3677 {
3678#line 163
3679 __cil_tmp4 = (char const * __restrict )"keypair valid %d %d";
3680#line 163
3681 printf(__cil_tmp4, publicKey, privateKey);
3682 }
3683#line 164 "Client.c"
3684 if (! publicKey) {
3685#line 1148 "Client.c"
3686 retValue_acc = 0;
3687#line 1150
3688 return (retValue_acc);
3689 } else {
3690#line 164 "Client.c"
3691 if (! privateKey) {
3692#line 1148 "Client.c"
3693 retValue_acc = 0;
3694#line 1150
3695 return (retValue_acc);
3696 } else {
3697
3698 }
3699 }
3700#line 1155 "Client.c"
3701 retValue_acc = privateKey == publicKey;
3702#line 1157
3703 return (retValue_acc);
3704#line 1164
3705 return (retValue_acc);
3706}
3707}
3708#line 172 "Client.c"
3709void generateKeyPair(int client , int seed )
3710{
3711
3712 {
3713 {
3714#line 173
3715 setClientPrivateKey(client, seed);
3716 }
3717#line 1188 "Client.c"
3718 return;
3719}
3720}
3721#line 178 "Client.c"
3722void sign(int client , int msg )
3723{ int privkey ;
3724 int tmp ;
3725
3726 {
3727 {
3728#line 179
3729 tmp = getClientPrivateKey(client);
3730#line 179
3731 privkey = tmp;
3732 }
3733#line 180
3734 if (! privkey) {
3735#line 181
3736 return;
3737 } else {
3738
3739 }
3740 {
3741#line 182
3742 setEmailIsSigned(msg, 1);
3743#line 183
3744 setEmailSignKey(msg, privkey);
3745 }
3746#line 1218 "Client.c"
3747 return;
3748}
3749}
3750#line 188 "Client.c"
3751void forward(int client , int msg )
3752{
3753
3754 {
3755 {
3756#line 189
3757 puts("Forwarding message.\n");
3758#line 190
3759 printMail(msg);
3760#line 191
3761 queue(client, msg);
3762 }
3763#line 1242 "Client.c"
3764 return;
3765}
3766}
3767#line 197 "Client.c"
3768void verify(int client , int msg )
3769{ int tmp ;
3770 int tmp___0 ;
3771 int pubkey ;
3772 int tmp___1 ;
3773 int tmp___2 ;
3774 int tmp___3 ;
3775 int tmp___4 ;
3776
3777 {
3778 {
3779#line 202
3780 tmp = isReadable(msg);
3781 }
3782#line 202
3783 if (tmp) {
3784 {
3785#line 202
3786 tmp___0 = isSigned(msg);
3787 }
3788#line 202
3789 if (tmp___0) {
3790
3791 } else {
3792#line 203
3793 return;
3794 }
3795 } else {
3796#line 203
3797 return;
3798 }
3799 {
3800#line 202
3801 tmp___1 = getEmailFrom(msg);
3802#line 202
3803 tmp___2 = findPublicKey(client, tmp___1);
3804#line 202
3805 pubkey = tmp___2;
3806 }
3807#line 203
3808 if (pubkey) {
3809 {
3810#line 203
3811 tmp___3 = getEmailSignKey(msg);
3812#line 203
3813 tmp___4 = isKeyPairValid(tmp___3, pubkey);
3814 }
3815#line 203
3816 if (tmp___4) {
3817 {
3818#line 204
3819 setEmailIsSignatureVerified(msg, 1);
3820 }
3821 } else {
3822
3823 }
3824 } else {
3825
3826 }
3827#line 1273 "Client.c"
3828 return;
3829}
3830}
3831#line 1 "SignForward_spec.o"
3832#pragma merger(0,"SignForward_spec.i","")
3833#line 13 "SignForward_spec.c"
3834void __utac_acc__SignForward_spec__1(int client , int msg )
3835{ int tmp ;
3836 int tmp___0 ;
3837
3838 {
3839 {
3840#line 15
3841 puts("before mail\n");
3842#line 16
3843 tmp___0 = isSigned(msg);
3844 }
3845#line 16
3846 if (tmp___0) {
3847 {
3848#line 20
3849 tmp = getClientPrivateKey(client);
3850 }
3851#line 20
3852 if (tmp == 0) {
3853 {
3854#line 18
3855 __automaton_fail();
3856 }
3857 } else {
3858
3859 }
3860 } else {
3861
3862 }
3863#line 18
3864 return;
3865}
3866}
3867#line 1 "Email.o"
3868#pragma merger(0,"Email.i","")
3869#line 15 "Email.h"
3870int cloneEmail(int msg ) ;
3871#line 9 "Email.c"
3872void printMail__wrappee__Keys(int msg )
3873{ int tmp ;
3874 int tmp___0 ;
3875 int tmp___1 ;
3876 int tmp___2 ;
3877 char const * __restrict __cil_tmp6 ;
3878 char const * __restrict __cil_tmp7 ;
3879 char const * __restrict __cil_tmp8 ;
3880 char const * __restrict __cil_tmp9 ;
3881
3882 {
3883 {
3884#line 10
3885 tmp = getEmailId(msg);
3886#line 10
3887 __cil_tmp6 = (char const * __restrict )"ID:\n %i\n";
3888#line 10
3889 printf(__cil_tmp6, tmp);
3890#line 11
3891 tmp___0 = getEmailFrom(msg);
3892#line 11
3893 __cil_tmp7 = (char const * __restrict )"FROM:\n %i\n";
3894#line 11
3895 printf(__cil_tmp7, tmp___0);
3896#line 12
3897 tmp___1 = getEmailTo(msg);
3898#line 12
3899 __cil_tmp8 = (char const * __restrict )"TO:\n %i\n";
3900#line 12
3901 printf(__cil_tmp8, tmp___1);
3902#line 13
3903 tmp___2 = isReadable(msg);
3904#line 13
3905 __cil_tmp9 = (char const * __restrict )"IS_READABLE\n %i\n";
3906#line 13
3907 printf(__cil_tmp9, tmp___2);
3908 }
3909#line 601 "Email.c"
3910 return;
3911}
3912}
3913#line 17 "Email.c"
3914void printMail__wrappee__Encrypt(int msg )
3915{ int tmp ;
3916 int tmp___0 ;
3917 char const * __restrict __cil_tmp4 ;
3918 char const * __restrict __cil_tmp5 ;
3919
3920 {
3921 {
3922#line 18
3923 printMail__wrappee__Keys(msg);
3924#line 19
3925 tmp = isEncrypted(msg);
3926#line 19
3927 __cil_tmp4 = (char const * __restrict )"ENCRYPTED\n %d\n";
3928#line 19
3929 printf(__cil_tmp4, tmp);
3930#line 20
3931 tmp___0 = getEmailEncryptionKey(msg);
3932#line 20
3933 __cil_tmp5 = (char const * __restrict )"ENCRYPTION KEY\n %d\n";
3934#line 20
3935 printf(__cil_tmp5, tmp___0);
3936 }
3937#line 625 "Email.c"
3938 return;
3939}
3940}
3941#line 26 "Email.c"
3942void printMail__wrappee__Forward(int msg )
3943{ int tmp ;
3944 int tmp___0 ;
3945 char const * __restrict __cil_tmp4 ;
3946 char const * __restrict __cil_tmp5 ;
3947
3948 {
3949 {
3950#line 27
3951 printMail__wrappee__Encrypt(msg);
3952#line 28
3953 tmp = isSigned(msg);
3954#line 28
3955 __cil_tmp4 = (char const * __restrict )"SIGNED\n %i\n";
3956#line 28
3957 printf(__cil_tmp4, tmp);
3958#line 29
3959 tmp___0 = getEmailSignKey(msg);
3960#line 29
3961 __cil_tmp5 = (char const * __restrict )"SIGNATURE\n %i\n";
3962#line 29
3963 printf(__cil_tmp5, tmp___0);
3964 }
3965#line 649 "Email.c"
3966 return;
3967}
3968}
3969#line 33 "Email.c"
3970void printMail(int msg )
3971{ int tmp ;
3972 char const * __restrict __cil_tmp3 ;
3973
3974 {
3975 {
3976#line 34
3977 printMail__wrappee__Forward(msg);
3978#line 35
3979 tmp = isVerified(msg);
3980#line 35
3981 __cil_tmp3 = (char const * __restrict )"SIGNATURE VERIFIED\n %d\n";
3982#line 35
3983 printf(__cil_tmp3, tmp);
3984 }
3985#line 671 "Email.c"
3986 return;
3987}
3988}
3989#line 41 "Email.c"
3990int isReadable__wrappee__Keys(int msg )
3991{ int retValue_acc ;
3992
3993 {
3994#line 689 "Email.c"
3995 retValue_acc = 1;
3996#line 691
3997 return (retValue_acc);
3998#line 698
3999 return (retValue_acc);
4000}
4001}
4002#line 49 "Email.c"
4003int isReadable(int msg )
4004{ int retValue_acc ;
4005 int tmp ;
4006
4007 {
4008 {
4009#line 53
4010 tmp = isEncrypted(msg);
4011 }
4012#line 53 "Email.c"
4013 if (tmp) {
4014#line 727
4015 retValue_acc = 0;
4016#line 729
4017 return (retValue_acc);
4018 } else {
4019 {
4020#line 721 "Email.c"
4021 retValue_acc = isReadable__wrappee__Keys(msg);
4022 }
4023#line 723
4024 return (retValue_acc);
4025 }
4026#line 736 "Email.c"
4027 return (retValue_acc);
4028}
4029}
4030#line 57 "Email.c"
4031int cloneEmail(int msg )
4032{ int retValue_acc ;
4033
4034 {
4035#line 758 "Email.c"
4036 retValue_acc = msg;
4037#line 760
4038 return (retValue_acc);
4039#line 767
4040 return (retValue_acc);
4041}
4042}
4043#line 62 "Email.c"
4044int createEmail(int from , int to )
4045{ int retValue_acc ;
4046 int msg ;
4047
4048 {
4049 {
4050#line 63
4051 msg = 1;
4052#line 64
4053 setEmailFrom(msg, from);
4054#line 65
4055 setEmailTo(msg, to);
4056#line 797 "Email.c"
4057 retValue_acc = msg;
4058 }
4059#line 799
4060 return (retValue_acc);
4061#line 806
4062 return (retValue_acc);
4063}
4064}
4065#line 1 "featureselect.o"
4066#pragma merger(0,"featureselect.i","")
4067#line 41 "featureselect.h"
4068int select_one(void) ;
4069#line 8 "featureselect.c"
4070int select_one(void)
4071{ int retValue_acc ;
4072 int choice = __VERIFIER_nondet_int();
4073
4074 {
4075#line 84 "featureselect.c"
4076 retValue_acc = choice;
4077#line 86
4078 return (retValue_acc);
4079#line 93
4080 return (retValue_acc);
4081}
4082}
4083#line 14 "featureselect.c"
4084void select_features(void)
4085{
4086
4087 {
4088#line 115 "featureselect.c"
4089 return;
4090}
4091}
4092#line 20 "featureselect.c"
4093void select_helpers(void)
4094{
4095
4096 {
4097#line 133 "featureselect.c"
4098 return;
4099}
4100}
4101#line 25 "featureselect.c"
4102int valid_product(void)
4103{ int retValue_acc ;
4104
4105 {
4106#line 151 "featureselect.c"
4107 retValue_acc = 1;
4108#line 153
4109 return (retValue_acc);
4110#line 160
4111 return (retValue_acc);
4112}
4113}
4114#line 1 "Util.o"
4115#pragma merger(0,"Util.i","")
4116#line 1 "Util.h"
4117int prompt(char *msg ) ;
4118#line 9 "Util.c"
4119int prompt(char *msg )
4120{ int retValue_acc ;
4121 int retval ;
4122 char const * __restrict __cil_tmp4 ;
4123
4124 {
4125 {
4126#line 10
4127 __cil_tmp4 = (char const * __restrict )"%s\n";
4128#line 10
4129 printf(__cil_tmp4, msg);
4130#line 518 "Util.c"
4131 retValue_acc = retval;
4132 }
4133#line 520
4134 return (retValue_acc);
4135#line 527
4136 return (retValue_acc);
4137}
4138}
4139#line 1 "scenario.o"
4140#pragma merger(0,"scenario.i","")
4141#line 1 "scenario.c"
4142void test(void)
4143{ int op1 ;
4144 int op2 ;
4145 int op3 ;
4146 int op4 ;
4147 int op5 ;
4148 int op6 ;
4149 int op7 ;
4150 int op8 ;
4151 int op9 ;
4152 int op10 ;
4153 int op11 ;
4154 int splverifierCounter ;
4155 int tmp ;
4156 int tmp___0 ;
4157 int tmp___1 ;
4158 int tmp___2 ;
4159 int tmp___3 ;
4160 int tmp___4 ;
4161 int tmp___5 ;
4162 int tmp___6 ;
4163 int tmp___7 ;
4164 int tmp___8 ;
4165 int tmp___9 ;
4166
4167 {
4168#line 2
4169 op1 = 0;
4170#line 3
4171 op2 = 0;
4172#line 4
4173 op3 = 0;
4174#line 5
4175 op4 = 0;
4176#line 6
4177 op5 = 0;
4178#line 7
4179 op6 = 0;
4180#line 8
4181 op7 = 0;
4182#line 9
4183 op8 = 0;
4184#line 10
4185 op9 = 0;
4186#line 11
4187 op10 = 0;
4188#line 12
4189 op11 = 0;
4190#line 13
4191 splverifierCounter = 0;
4192 {
4193#line 14
4194 while (1) {
4195 while_3_continue: ;
4196#line 14
4197 if (splverifierCounter < 4) {
4198
4199 } else {
4200 goto while_3_break;
4201 }
4202#line 15
4203 splverifierCounter = splverifierCounter + 1;
4204#line 16
4205 if (! op1) {
4206 {
4207#line 16
4208 tmp___9 = __VERIFIER_nondet_int();
4209 }
4210#line 16
4211 if (tmp___9) {
4212 {
4213#line 17
4214 bobKeyAdd();
4215#line 18
4216 op1 = 1;
4217 }
4218 } else {
4219 goto _L___8;
4220 }
4221 } else {
4222 _L___8:
4223#line 19
4224 if (! op2) {
4225 {
4226#line 19
4227 tmp___8 = __VERIFIER_nondet_int();
4228 }
4229#line 19
4230 if (tmp___8) {
4231#line 21
4232 op2 = 1;
4233 } else {
4234 goto _L___7;
4235 }
4236 } else {
4237 _L___7:
4238#line 22
4239 if (! op3) {
4240 {
4241#line 22
4242 tmp___7 = __VERIFIER_nondet_int();
4243 }
4244#line 22
4245 if (tmp___7) {
4246 {
4247#line 24
4248 rjhDeletePrivateKey();
4249#line 25
4250 op3 = 1;
4251 }
4252 } else {
4253 goto _L___6;
4254 }
4255 } else {
4256 _L___6:
4257#line 26
4258 if (! op4) {
4259 {
4260#line 26
4261 tmp___6 = __VERIFIER_nondet_int();
4262 }
4263#line 26
4264 if (tmp___6) {
4265 {
4266#line 28
4267 rjhKeyAdd();
4268#line 29
4269 op4 = 1;
4270 }
4271 } else {
4272 goto _L___5;
4273 }
4274 } else {
4275 _L___5:
4276#line 30
4277 if (! op5) {
4278 {
4279#line 30
4280 tmp___5 = __VERIFIER_nondet_int();
4281 }
4282#line 30
4283 if (tmp___5) {
4284 {
4285#line 32
4286 chuckKeyAddRjh();
4287#line 33
4288 op5 = 1;
4289 }
4290 } else {
4291 goto _L___4;
4292 }
4293 } else {
4294 _L___4:
4295#line 34
4296 if (! op6) {
4297 {
4298#line 34
4299 tmp___4 = __VERIFIER_nondet_int();
4300 }
4301#line 34
4302 if (tmp___4) {
4303 {
4304#line 36
4305 rjhEnableForwarding();
4306#line 37
4307 op6 = 1;
4308 }
4309 } else {
4310 goto _L___3;
4311 }
4312 } else {
4313 _L___3:
4314#line 38
4315 if (! op7) {
4316 {
4317#line 38
4318 tmp___3 = __VERIFIER_nondet_int();
4319 }
4320#line 38
4321 if (tmp___3) {
4322 {
4323#line 40
4324 rjhKeyChange();
4325#line 41
4326 op7 = 1;
4327 }
4328 } else {
4329 goto _L___2;
4330 }
4331 } else {
4332 _L___2:
4333#line 42
4334 if (! op8) {
4335 {
4336#line 42
4337 tmp___2 = __VERIFIER_nondet_int();
4338 }
4339#line 42
4340 if (tmp___2) {
4341#line 44
4342 op8 = 1;
4343 } else {
4344 goto _L___1;
4345 }
4346 } else {
4347 _L___1:
4348#line 45
4349 if (! op9) {
4350 {
4351#line 45
4352 tmp___1 = __VERIFIER_nondet_int();
4353 }
4354#line 45
4355 if (tmp___1) {
4356 {
4357#line 47
4358 chuckKeyAdd();
4359#line 48
4360 op9 = 1;
4361 }
4362 } else {
4363 goto _L___0;
4364 }
4365 } else {
4366 _L___0:
4367#line 49
4368 if (! op10) {
4369 {
4370#line 49
4371 tmp___0 = __VERIFIER_nondet_int();
4372 }
4373#line 49
4374 if (tmp___0) {
4375 {
4376#line 51
4377 bobKeyChange();
4378#line 52
4379 op10 = 1;
4380 }
4381 } else {
4382 goto _L;
4383 }
4384 } else {
4385 _L:
4386#line 53
4387 if (! op11) {
4388 {
4389#line 53
4390 tmp = __VERIFIER_nondet_int();
4391 }
4392#line 53
4393 if (tmp) {
4394 {
4395#line 55
4396 chuckKeyAdd();
4397#line 56
4398 op11 = 1;
4399 }
4400 } else {
4401 goto while_3_break;
4402 }
4403 } else {
4404 goto while_3_break;
4405 }
4406 }
4407 }
4408 }
4409 }
4410 }
4411 }
4412 }
4413 }
4414 }
4415 }
4416 }
4417 while_3_break: ;
4418 }
4419 {
4420#line 60
4421 bobToRjh();
4422 }
4423#line 167 "scenario.c"
4424 return;
4425}
4426}