1 /*
2 * Copyright 1999-2006 University of Chicago
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17
18 /*
19 * This file is automatically generated by the Globus WSDLtoC converter
20 */
21
22 #include "xsd_QName.h"
23 #include "globus_soap_message.h"
24 #include "globus_xsd_type_info.h"
25 #include "ds_DSAKeyValueType.h"
26 #include "globus_xsd_generic_array.h"
27
28 #ifndef GLOBUS_DONT_DOCUMENT_INTERNAL
29 xsd_QName ds_DSAKeyValueType_qname =
30 {
31 DS_DSAKEYVALUETYPE_NS,
32 DS_DSAKEYVALUETYPE_LOCAL
33 };
34 #endif /* GLOBUS_DONT_DOCUMENT_INTERNAL */
35
36 static
37 globus_result_t
38 ds_DSAKeyValueType_serialize_wrapper(
39 const xsd_QName * element_qname,
40 const void * instance,
41 globus_soap_message_handle_t message_handle,
42 globus_xsd_element_options_t options)
43 0 {
44 0 return ds_DSAKeyValueType_serialize(
45 element_qname,
46 (const ds_DSAKeyValueType *) instance,
47 message_handle, options);
48 }
49
50 static
51 globus_result_t
52 ds_DSAKeyValueType_deserialize_pointer_wrapper(
53 const xsd_QName * element_qname,
54 void ** ip,
55 globus_soap_message_handle_t message_handle,
56 globus_xsd_element_options_t options)
57 0 {
58 0 return ds_DSAKeyValueType_deserialize_pointer(
59 element_qname,
60 (ds_DSAKeyValueType **) ip,
61 message_handle, options);
62 }
63
64 static
65 globus_result_t
66 ds_DSAKeyValueType_init_wrapper(void **object)
67 0 {
68 0 return ds_DSAKeyValueType_init(
69 (ds_DSAKeyValueType **) object);
70 }
71
72 static
73 void
74 ds_DSAKeyValueType_destroy_wrapper(
75 void * object)
76 0 {
77 0 ds_DSAKeyValueType_destroy(
78 (ds_DSAKeyValueType *) object);
79 0 }
80
81 static
82 globus_result_t
83 ds_DSAKeyValueType_copy_wrapper(
84 void ** dest_obj,
85 const void * src_obj)
86 0 {
87 0 return ds_DSAKeyValueType_copy(
88 (ds_DSAKeyValueType **) dest_obj,
89 (ds_DSAKeyValueType *) src_obj);
90 }
91
92 static
93 globus_result_t
94 ds_DSAKeyValueType_init_contents_wrapper(void *object)
95 0 {
96 0 return ds_DSAKeyValueType_init_contents(
97 (ds_DSAKeyValueType *) object);
98 }
99
100 static
101 void
102 ds_DSAKeyValueType_destroy_contents_wrapper(
103 void * object)
104 0 {
105 0 ds_DSAKeyValueType_destroy_contents(
106 (ds_DSAKeyValueType *) object);
107 0 }
108
109 static
110 globus_result_t
111 ds_DSAKeyValueType_copy_contents_wrapper(
112 void * dest_obj,
113 const void * src_obj)
114 0 {
115 0 return ds_DSAKeyValueType_copy_contents(
116 (ds_DSAKeyValueType *) dest_obj,
117 (const ds_DSAKeyValueType *) src_obj);
118 }
119
120 static
121 globus_result_t
122 ds_DSAKeyValueType_serialize_contents_wrapper(
123 const xsd_QName * element_qname,
124 const void * instance,
125 globus_soap_message_handle_t message_handle,
126 globus_xsd_element_options_t options)
127 0 {
128 0 return ds_DSAKeyValueType_serialize_contents(
129 element_qname,
130 (ds_DSAKeyValueType *) instance,
131 message_handle, options);
132 }
133
134 static
135 globus_result_t
136 ds_DSAKeyValueType_deserialize_contents_wrapper(
137 const xsd_QName * element_qname,
138 void ** instance,
139 globus_soap_message_handle_t message_handle,
140 globus_xsd_element_options_t options)
141 0 {
142 globus_result_t result;
143 GlobusFuncName(ds_DSAKeyValueType_deserialize_contents_wrapper);
144 0 GlobusSoapMessageDebugEnter();
145
146 0 if(!*instance)
147 {
148 0 result = ds_DSAKeyValueType_init(
149 (ds_DSAKeyValueType **)instance);
150 0 if(result != GLOBUS_SUCCESS)
151 {
152 0 goto error;
153 }
154 }
155
156 0 result = ds_DSAKeyValueType_deserialize_contents(
157 element_qname,
158 *(ds_DSAKeyValueType **)instance,
159 message_handle, options);
160 0 error:
161 0 GlobusSoapMessageDebugExit();
162 0 return result;
163 }
164
165 static
166 globus_result_t
167 ds_DSAKeyValueType_array_serialize_wrapper(
168 const xsd_QName * element,
169 const void * instance,
170 globus_soap_message_handle_t message,
171 globus_xsd_element_options_t options)
172 0 {
173 0 return ds_DSAKeyValueType_array_serialize(
174 element,
175 (ds_DSAKeyValueType_array *) instance,
176 message, options);
177 }
178
179 static
180 globus_result_t
181 ds_DSAKeyValueType_array_deserialize_wrapper(
182 const xsd_QName * element_qname,
183 void ** inst,
184 globus_soap_message_handle_t message,
185 globus_xsd_element_options_t options)
186 0 {
187 0 if(!*inst)
188 {
189 globus_result_t result;
190
191 0 result = ds_DSAKeyValueType_array_init(
192 (ds_DSAKeyValueType_array **)inst);
193 0 if(result != GLOBUS_SUCCESS)
194 {
195 0 return result;
196 }
197 }
198
199 0 return ds_DSAKeyValueType_array_deserialize(
200 element_qname,
201 *(ds_DSAKeyValueType_array **) inst,
202 message, options);
203 }
204
205 static
206 globus_result_t
207 ds_DSAKeyValueType_array_init_wrapper(
208 void ** arr)
209 0 {
210 0 return ds_DSAKeyValueType_array_init(
211 (ds_DSAKeyValueType_array **) arr);
212 }
213
214 static
215 void
216 ds_DSAKeyValueType_array_destroy_wrapper(
217 void * arr)
218 0 {
219 0 ds_DSAKeyValueType_array_destroy(
220 (ds_DSAKeyValueType_array *) arr);
221 0 }
222
223 static
224 globus_result_t
225 ds_DSAKeyValueType_array_copy_wrapper(
226 void ** dest_arr,
227 const void * src_arr)
228 0 {
229 0 return ds_DSAKeyValueType_array_copy(
230 (ds_DSAKeyValueType_array **) dest_arr,
231 (const ds_DSAKeyValueType_array *) src_arr);
232 }
233
234 static
235 globus_result_t
236 ds_DSAKeyValueType_array_init_contents_wrapper(
237 void * arr)
238 0 {
239 0 return ds_DSAKeyValueType_array_init_contents(
240 (ds_DSAKeyValueType_array *) arr);
241 }
242
243 static
244 void
245 ds_DSAKeyValueType_array_destroy_contents_wrapper(
246 void * arr)
247 0 {
248 0 ds_DSAKeyValueType_array_destroy_contents(
249 (ds_DSAKeyValueType_array *) arr);
250 0 }
251
252 static
253 globus_result_t
254 ds_DSAKeyValueType_array_copy_contents_wrapper(
255 void * dest_arr,
256 const void * src_arr)
257 0 {
258 0 return ds_DSAKeyValueType_array_copy_contents(
259 (ds_DSAKeyValueType_array *) dest_arr,
260 (const ds_DSAKeyValueType_array *) src_arr);
261 }
262
263 static
264 void *
265 ds_DSAKeyValueType_array_push_wrapper(
266 void * array)
267 0 {
268 0 return (void *) ds_DSAKeyValueType_array_push((ds_DSAKeyValueType_array *) array);
269 }
270
271 struct globus_xsd_type_info_s ds_DSAKeyValueType_contents_info =
272 {
273 &ds_DSAKeyValueType_qname,
274 ds_DSAKeyValueType_serialize_contents_wrapper,
275 ds_DSAKeyValueType_deserialize_contents_wrapper,
276 ds_DSAKeyValueType_init_wrapper,
277 ds_DSAKeyValueType_destroy_wrapper,
278 ds_DSAKeyValueType_copy_wrapper,
279 ds_DSAKeyValueType_init_contents_wrapper,
280 ds_DSAKeyValueType_destroy_contents_wrapper,
281 ds_DSAKeyValueType_copy_contents_wrapper,
282 sizeof(ds_DSAKeyValueType),
283 NULL,
284 NULL,
285 NULL
286 };
287
288 struct globus_xsd_type_info_s ds_DSAKeyValueType_array_info =
289 {
290 &ds_DSAKeyValueType_qname,
291 ds_DSAKeyValueType_array_serialize_wrapper,
292 ds_DSAKeyValueType_array_deserialize_wrapper,
293 ds_DSAKeyValueType_array_init_wrapper,
294 ds_DSAKeyValueType_array_destroy_wrapper,
295 ds_DSAKeyValueType_array_copy_wrapper,
296 ds_DSAKeyValueType_array_init_contents_wrapper,
297 ds_DSAKeyValueType_array_destroy_contents_wrapper,
298 ds_DSAKeyValueType_array_copy_contents_wrapper,
299 sizeof(ds_DSAKeyValueType),
300 ds_DSAKeyValueType_array_push_wrapper,
301 NULL,
302 NULL
303 };
304
305 struct globus_xsd_type_info_s ds_DSAKeyValueType_info =
306 {
307 &ds_DSAKeyValueType_qname,
308 ds_DSAKeyValueType_serialize_wrapper,
309 ds_DSAKeyValueType_deserialize_pointer_wrapper,
310 ds_DSAKeyValueType_init_wrapper,
311 ds_DSAKeyValueType_destroy_wrapper,
312 ds_DSAKeyValueType_copy_wrapper,
313 ds_DSAKeyValueType_init_contents_wrapper,
314 ds_DSAKeyValueType_destroy_contents_wrapper,
315 ds_DSAKeyValueType_copy_contents_wrapper,
316 sizeof(ds_DSAKeyValueType),
317 NULL,
318 &ds_DSAKeyValueType_contents_info,
319 &ds_DSAKeyValueType_array_info
320 };
321
322 globus_result_t
323 ds_DSAKeyValueType_init_contents(
324 ds_DSAKeyValueType * instance)
325 0 {
326 0 globus_result_t result = GLOBUS_SUCCESS;
327 GlobusFuncName(ds_DSAKeyValueType_init_contents);
328 0 GlobusSoapMessageDebugEnter();
329
330 0 memset(instance, 0, sizeof(ds_DSAKeyValueType));
331
332 0 GlobusSoapMessageDebugExit();
333 0 return result;
334 }
335
336 globus_result_t
337 ds_DSAKeyValueType_init(
338 ds_DSAKeyValueType ** object)
339 0 {
340 ds_DSAKeyValueType * instance;
341 0 globus_result_t result = GLOBUS_SUCCESS;
342 GlobusFuncName(ds_DSAKeyValueType_init);
343 0 GlobusSoapMessageDebugEnter();
344
345 0 instance = globus_malloc(sizeof(ds_DSAKeyValueType));
346 0 if(!instance)
347 {
348 0 result = GlobusSoapMessageErrorOutOfMemory;
349 0 goto exit;
350 }
351
352 0 memset(instance, 0, sizeof(ds_DSAKeyValueType));
353
354 0 *object = instance;
355
356 0 exit:
357 0 GlobusSoapMessageDebugExit();
358 0 return result;
359 }
360
361 void
362 ds_DSAKeyValueType_destroy(
363 ds_DSAKeyValueType * instance)
364 0 {
365 GlobusFuncName(ds_DSAKeyValueType_destroy);
366 0 GlobusSoapMessageDebugEnter();
367
368 0 if(!instance)
369 {
370 0 goto exit;
371 }
372
373 0 ds_DSAKeyValueType_destroy_contents(instance);
374 0 globus_free(instance);
375
376 0 exit:
377
378 0 GlobusSoapMessageDebugExit();
379 0 }
380
381
382 void
383 ds_DSAKeyValueType_destroy_contents(
384 ds_DSAKeyValueType * instance)
385 0 {
386 GlobusFuncName(ds_DSAKeyValueType_destroy_contents);
387 0 GlobusSoapMessageDebugEnter();
388
389 0 if(instance)
390 {
391
392
393 0 ds_CryptoBinary_destroy_contents(
394 &instance->P);
395
396 0 ds_CryptoBinary_destroy_contents(
397 &instance->Q);
398
399 0 ds_CryptoBinary_destroy(instance->G);
400 0 instance->G = NULL;
401
402 0 ds_CryptoBinary_destroy_contents(
403 &instance->Y);
404
405 0 ds_CryptoBinary_destroy(instance->J);
406 0 instance->J = NULL;
407
408 0 ds_CryptoBinary_destroy_contents(
409 &instance->Seed);
410
411 0 ds_CryptoBinary_destroy_contents(
412 &instance->PgenCounter);
413
414 }
415
416 0 GlobusSoapMessageDebugExit();
417 0 }
418
419
420 globus_result_t
421 ds_DSAKeyValueType_copy(
422 ds_DSAKeyValueType ** dest_obj,
423 const ds_DSAKeyValueType * src_obj)
424 0 {
425 0 globus_result_t result = GLOBUS_SUCCESS;
426 ds_DSAKeyValueType * instance;
427 GlobusFuncName(ds_DSAKeyValueType_copy);
428
429 0 GlobusSoapMessageDebugEnter();
430
431 0 instance = calloc(1, sizeof(ds_DSAKeyValueType));
432 0 if (instance == NULL)
433 {
434 0 GlobusSoapMessageDebugExit();
435 0 return GlobusSoapMessageErrorOutOfMemory;
436 }
437
438 0 result = ds_DSAKeyValueType_copy_contents(instance, src_obj);
439 0 if(result != GLOBUS_SUCCESS)
440 {
441 0 globus_free(instance);
442 0 GlobusSoapMessageDebugExit();
443 0 return GlobusSoapMessageErrorOutOfMemory;
444 }
445
446 0 *dest_obj = instance;
447 0 GlobusSoapMessageDebugExit();
448 0 return result;
449 }
450
451 globus_result_t
452 ds_DSAKeyValueType_copy_contents(
453 ds_DSAKeyValueType * instance,
454 const ds_DSAKeyValueType * src_obj)
455 0 {
456 0 globus_result_t result = GLOBUS_SUCCESS;
457 GlobusFuncName(ds_DSAKeyValueType_copy_contents);
458
459 0 GlobusSoapMessageDebugEnter();
460
461 0 result = ds_CryptoBinary_copy_contents(
462 &instance->P,
463 &src_obj->P);
464 0 if(result != GLOBUS_SUCCESS)
465 {
466 0 result = GlobusSoapMessageErrorCopyFailed(
467 result, NULL, &ds_CryptoBinary_qname);
468 0 goto P_destroy;
469 }
470
471 0 result = ds_CryptoBinary_copy_contents(
472 &instance->Q,
473 &src_obj->Q);
474 0 if(result != GLOBUS_SUCCESS)
475 {
476 0 result = GlobusSoapMessageErrorCopyFailed(
477 result, NULL, &ds_CryptoBinary_qname);
478 0 goto Q_destroy;
479 }
480
481 0 if(src_obj->G)
482 {
483 0 result = ds_CryptoBinary_copy(
484 &instance->G,
485 src_obj->G);
486 0 if(result != GLOBUS_SUCCESS)
487 {
488 0 result = GlobusSoapMessageErrorCopyFailed(
489 result, NULL, &ds_CryptoBinary_qname);
490 0 goto G_destroy_pointer;
491 }
492 }
493 else
494 {
495 0 instance->G = NULL;
496 }
497
498 0 result = ds_CryptoBinary_copy_contents(
499 &instance->Y,
500 &src_obj->Y);
501 0 if(result != GLOBUS_SUCCESS)
502 {
503 0 result = GlobusSoapMessageErrorCopyFailed(
504 result, NULL, &ds_CryptoBinary_qname);
505 0 goto Y_destroy;
506 }
507
508 0 if(src_obj->J)
509 {
510 0 result = ds_CryptoBinary_copy(
511 &instance->J,
512 src_obj->J);
513 0 if(result != GLOBUS_SUCCESS)
514 {
515 0 result = GlobusSoapMessageErrorCopyFailed(
516 result, NULL, &ds_CryptoBinary_qname);
517 0 goto J_destroy_pointer;
518 }
519 }
520 else
521 {
522 0 instance->J = NULL;
523 }
524
525 0 result = ds_CryptoBinary_copy_contents(
526 &instance->Seed,
527 &src_obj->Seed);
528 0 if(result != GLOBUS_SUCCESS)
529 {
530 0 result = GlobusSoapMessageErrorCopyFailed(
531 result, NULL, &ds_CryptoBinary_qname);
532 0 goto Seed_destroy;
533 }
534
535 0 result = ds_CryptoBinary_copy_contents(
536 &instance->PgenCounter,
537 &src_obj->PgenCounter);
538 0 if(result != GLOBUS_SUCCESS)
539 {
540 0 result = GlobusSoapMessageErrorCopyFailed(
541 result, NULL, &ds_CryptoBinary_qname);
542 0 goto PgenCounter_destroy;
543 }
544
545 0 goto exit;
546
547 fail_deserialize:
548 ds_CryptoBinary_destroy_contents(
549 &instance->PgenCounter);
550
551 0 PgenCounter_destroy:
552 0 ds_CryptoBinary_destroy_contents(
553 &instance->Seed);
554
555 0 Seed_destroy:
556 0 ds_CryptoBinary_destroy(
557 instance->J);
558 0 instance->J = NULL;
559
560 0 J_destroy_pointer:
561 0 ds_CryptoBinary_destroy_contents(
562 &instance->Y);
563
564 0 Y_destroy:
565 0 ds_CryptoBinary_destroy(
566 instance->G);
567 0 instance->G = NULL;
568
569 0 G_destroy_pointer:
570 0 ds_CryptoBinary_destroy_contents(
571 &instance->Q);
572
573 0 Q_destroy:
574 0 ds_CryptoBinary_destroy_contents(
575 &instance->P);
576
577 0 P_destroy:
578
579
580 0 exit:
581
582 0 GlobusSoapMessageDebugExit();
583 0 return result;
584 }
585
586
587
588 globus_result_t
589 ds_DSAKeyValueType_serialize_contents(
590 const xsd_QName * element_qname, /* ignored */
591 const ds_DSAKeyValueType * inst,
592 globus_soap_message_handle_t message_handle,
593 globus_xsd_element_options_t options)
594 0 {
595 0 globus_result_t result = GLOBUS_SUCCESS;
596 GlobusFuncName(ds_DSAKeyValueType_serialize_contents);
597 0 GlobusSoapMessageDebugEnter();
598
599 0 result = ds_DSAKeyValueType_serialize(
600 NULL,
601 inst,
602 message_handle,
603 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
604 0 if(result != GLOBUS_SUCCESS)
605 {
606 0 result = GlobusSoapMessageErrorSerializeFailed(
607 result, NULL, element_qname);
608 0 goto exit;
609 }
610
611 0 exit:
612
613 0 GlobusSoapMessageDebugExit();
614 0 return result;
615 }
616
617
618
619 globus_result_t
620 ds_DSAKeyValueType_serialize(
621 const xsd_QName * element_qname,
622 const ds_DSAKeyValueType * instance,
623 globus_soap_message_handle_t message_handle,
624 globus_xsd_element_options_t options)
625 0 {
626 0 globus_result_t result = GLOBUS_SUCCESS;
627 xsd_QName subelement;
628 0 globus_list_t * any_attr_keys = NULL;
629 0 globus_list_t * any_attr_keys_iterator = NULL;
630 0 xsd_QName * type_attr = NULL;
631
632 0 char * prefix = NULL;
633 int prefix_created;
634 0 int define_prefix = 0;
635 0 int save_options = options;
636
637 GlobusFuncName(ds_DSAKeyValueType_serialize);
638 0 GlobusSoapMessageDebugEnter();
639
640
641 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
642 {
643 /* serialize ds_DSAKeyValueType element */
644 0 result = globus_soap_message_element_ns_set(
645 message_handle,
646 element_qname,
647 element_qname->Namespace,
648 &options);
649 0 if(result != GLOBUS_SUCCESS)
650 {
651 0 result = GlobusSoapMessageErrorSerializeFailed(
652 result, NULL, element_qname);
653 0 goto exit;
654 }
655
656 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
657 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
658 {
659 0 result = globus_soap_message_attribute_ns_set(
660 message_handle,
661 element_qname,
662 "http://www.w3.org/2001/XMLSchema-instance",
663 &options);
664 0 if(result != GLOBUS_SUCCESS)
665 {
666 0 result = GlobusSoapMessageErrorSerializeFailed(
667 result, NULL, element_qname);
668 0 goto exit;
669 }
670 }
671
672 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
673 !globus_soap_message_serialize_is_c14n_subset(message_handle))
674 {
675
676 0 result = globus_soap_message_attribute_ns_set(
677 message_handle,
678 element_qname,
679 ds_DSAKeyValueType_qname.Namespace,
680 &options);
681 0 if(result != GLOBUS_SUCCESS)
682 {
683 0 result = GlobusSoapMessageErrorSerializeFailed(
684 result, NULL, element_qname);
685 0 goto exit;
686 }
687 }
688
689 0 result = globus_soap_message_serialize_element(
690 message_handle,
691 element_qname,
692 options,
693 &ds_DSAKeyValueType_qname);
694 0 if(result != GLOBUS_SUCCESS)
695 {
696 0 result = GlobusSoapMessageErrorSerializeFailed(
697 result, NULL, element_qname);
698 0 goto exit;
699 }
700
701 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
702 !globus_soap_message_serialize_is_c14n_subset(message_handle))
703 {
704 0 xsd_QName_init(&type_attr);
705
706 0 type_attr->local = globus_libc_strdup("type");
707 0 type_attr->Namespace = globus_libc_strdup(XSI_NS);
708 }
709
710
711 /* serialize namespaces */
712 0 result = globus_soap_message_element_ns_add(
713 message_handle,
714 element_qname,
715 element_qname->Namespace,
716 &options);
717 0 if(result != GLOBUS_SUCCESS)
718 {
719 0 result = GlobusSoapMessageErrorSerializeFailed(
720 result, NULL, element_qname);
721 0 goto exit;
722 }
723
724 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
725 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
726 {
727 0 result = globus_soap_message_attribute_ns_add(
728 message_handle,
729 element_qname,
730 "http://www.w3.org/2001/XMLSchema-instance",
731 &options);
732 0 if(result != GLOBUS_SUCCESS)
733 {
734 0 result = GlobusSoapMessageErrorSerializeFailed(
735 result, NULL, element_qname);
736 0 goto exit;
737 }
738 }
739 0 if ((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
740 !globus_soap_message_serialize_is_c14n_subset(message_handle))
741 {
742
743 0 result = globus_soap_message_attribute_ns_add(
744 message_handle,
745 element_qname,
746 ds_DSAKeyValueType_qname.Namespace,
747 &options);
748 0 if(result != GLOBUS_SUCCESS)
749 {
750 0 result = GlobusSoapMessageErrorSerializeFailed(
751 result, NULL, element_qname);
752 0 goto exit;
753 }
754 }
755
756 /* serialize attributes */
757
758 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
759 !globus_soap_message_serialize_is_c14n_subset(message_handle))
760 {
761 0 result = globus_soap_message_serialize_QName_attribute(
762 message_handle,
763 type_attr,
764 &ds_DSAKeyValueType_qname);
765 0 if(result != GLOBUS_SUCCESS)
766 {
767 0 result = GlobusSoapMessageErrorSerializeFailed(
768 result, NULL, element_qname);
769 0 goto exit;
770 }
771 }
772
773
774 }
775
776 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
777 {
778 0 result = globus_soap_message_serialize_element_begin_close(
779 message_handle, element_qname);
780 0 if(result != GLOBUS_SUCCESS)
781 {
782 0 result = GlobusSoapMessageErrorSerializeFailed(
783 result, NULL, element_qname);
784 0 goto exit;
785 }
786 }
787 0 options &= ~GLOBUS_XSD_ELEMENT_CONTENTS_ONLY;
788
789
790 /* serialize contents of type */
791
792 0 subelement.local = "P";
793 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
794
795 0 result = ds_CryptoBinary_serialize(
796 &subelement,
797 &instance->P,
798 message_handle,
799 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
800 0 if(result != GLOBUS_SUCCESS)
801 {
802 0 result = GlobusSoapMessageErrorSerializeFailed(
803 result, NULL, &ds_CryptoBinary_qname);
804 0 goto exit;
805 }
806
807 0 subelement.local = "Q";
808 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
809
810 0 result = ds_CryptoBinary_serialize(
811 &subelement,
812 &instance->Q,
813 message_handle,
814 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
815 0 if(result != GLOBUS_SUCCESS)
816 {
817 0 result = GlobusSoapMessageErrorSerializeFailed(
818 result, NULL, &ds_CryptoBinary_qname);
819 0 goto exit;
820 }
821
822 0 subelement.local = "G";
823 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
824
825 0 if(instance->G)
826 {
827 0 result = ds_CryptoBinary_serialize(
828 &subelement,
829 instance->G,
830 message_handle,
831 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
832 0 if(result != GLOBUS_SUCCESS)
833 {
834 0 result = GlobusSoapMessageErrorSerializeFailed(
835 result, NULL, &ds_CryptoBinary_qname);
836 0 goto exit;
837 }
838 }
839
840 0 subelement.local = "Y";
841 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
842
843 0 result = ds_CryptoBinary_serialize(
844 &subelement,
845 &instance->Y,
846 message_handle,
847 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
848 0 if(result != GLOBUS_SUCCESS)
849 {
850 0 result = GlobusSoapMessageErrorSerializeFailed(
851 result, NULL, &ds_CryptoBinary_qname);
852 0 goto exit;
853 }
854
855 0 subelement.local = "J";
856 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
857
858 0 if(instance->J)
859 {
860 0 result = ds_CryptoBinary_serialize(
861 &subelement,
862 instance->J,
863 message_handle,
864 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
865 0 if(result != GLOBUS_SUCCESS)
866 {
867 0 result = GlobusSoapMessageErrorSerializeFailed(
868 result, NULL, &ds_CryptoBinary_qname);
869 0 goto exit;
870 }
871 }
872
873 0 subelement.local = "Seed";
874 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
875
876 0 result = ds_CryptoBinary_serialize(
877 &subelement,
878 &instance->Seed,
879 message_handle,
880 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
881 0 if(result != GLOBUS_SUCCESS)
882 {
883 0 result = GlobusSoapMessageErrorSerializeFailed(
884 result, NULL, &ds_CryptoBinary_qname);
885 0 goto exit;
886 }
887
888 0 subelement.local = "PgenCounter";
889 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
890
891 0 result = ds_CryptoBinary_serialize(
892 &subelement,
893 &instance->PgenCounter,
894 message_handle,
895 options & (~GLOBUS_XSD_ELEMENT_SET_DEFAULT_NS));
896 0 if(result != GLOBUS_SUCCESS)
897 {
898 0 result = GlobusSoapMessageErrorSerializeFailed(
899 result, NULL, &ds_CryptoBinary_qname);
900 0 goto exit;
901 }
902
903 0 options = save_options;
904
905 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
906 {
907 /* add end element */
908 0 result = globus_soap_message_serialize_element_end(
909 message_handle,
910 element_qname,
911 options,
912 &ds_DSAKeyValueType_qname);
913 0 if(result != GLOBUS_SUCCESS)
914 {
915 0 result = GlobusSoapMessageErrorSerializeFailed(
916 result, NULL, element_qname);
917 0 goto exit;
918 }
919
920 0 globus_soap_message_element_ns_remove(
921 message_handle,
922 element_qname->Namespace,
923 &options);
924
925 /* remove namespace/prefix mappings for these types */
926
927 0 if(((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
928 !globus_soap_message_serialize_is_c14n_subset(message_handle)))
929 {
930 0 globus_soap_message_attribute_ns_remove(
931 message_handle,
932 "http://www.w3.org/2001/XMLSchema-instance",
933 &options);
934 }
935 0 if((options & GLOBUS_XSD_ELEMENT_TYPE_ATTR) &&
936 !globus_soap_message_serialize_is_c14n_subset(message_handle))
937 {
938 0 globus_soap_message_attribute_ns_remove(
939 message_handle,
940 ds_DSAKeyValueType_qname.Namespace,
941 &options);
942 }
943
944 }
945
946 0 exit:
947 0 if (type_attr)
948 {
949 0 xsd_QName_destroy(type_attr);
950 }
951
952
953 0 if(any_attr_keys)
954 {
955 0 globus_list_free(any_attr_keys);
956 }
957
958 0 GlobusSoapMessageDebugExit();
959 0 return result;
960 }
961
962
963
964 globus_result_t
965 ds_DSAKeyValueType_deserialize_contents(
966 const xsd_QName * element_qname, /* ignored */
967 ds_DSAKeyValueType * inst,
968 globus_soap_message_handle_t message_handle,
969 globus_xsd_element_options_t options)
970 0 {
971 0 globus_result_t result = GLOBUS_SUCCESS;
972 GlobusFuncName(ds_DSAKeyValueType_deserialize_contents);
973 0 GlobusSoapMessageDebugEnter();
974
975 0 result = ds_DSAKeyValueType_deserialize(
976 NULL,
977 inst,
978 message_handle,
979 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
980 0 if(result != GLOBUS_SUCCESS)
981 {
982 0 result = GlobusSoapMessageErrorDeserializeFailed(
983 result, element_qname);
984 0 goto exit;
985 }
986
987 0 exit:
988
989 0 GlobusSoapMessageDebugExit();
990 0 return result;
991 }
992
993
994
995 globus_result_t
996 ds_DSAKeyValueType_deserialize(
997 const xsd_QName * element_qname,
998 ds_DSAKeyValueType * instance,
999 globus_soap_message_handle_t message_handle,
1000 globus_xsd_element_options_t options)
1001 0 {
1002 0 globus_result_t result = GLOBUS_SUCCESS;
1003 xsd_QName subelement;
1004 GlobusFuncName(ds_DSAKeyValueType_deserialize);
1005 0 GlobusSoapMessageDebugEnter();
1006
1007
1008 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1009 {
1010 0 result = globus_soap_message_deserialize_element(
1011 message_handle, element_qname);
1012 0 if(result != GLOBUS_SUCCESS)
1013 {
1014 0 result = GlobusSoapMessageErrorDeserializeFailed(
1015 result, element_qname);
1016 0 goto exit;
1017 }
1018
1019
1020 0 result = globus_soap_message_deserialize_element_begin_close(
1021 message_handle);
1022 0 if(result != GLOBUS_SUCCESS)
1023 {
1024 0 result = GlobusSoapMessageErrorDeserializeFailed(
1025 result, element_qname);
1026 0 goto fail_deserialize;
1027 }
1028 }
1029
1030 0 subelement.local = "P";
1031 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1032
1033 0 result = ds_CryptoBinary_deserialize(
1034 &subelement,
1035 &instance->P,
1036 message_handle,
1037 0);
1038 0 if(result != GLOBUS_SUCCESS)
1039 {
1040 0 result = GlobusSoapMessageErrorDeserializeFailed(
1041 result,
1042 &ds_CryptoBinary_qname);
1043 0 goto P_destroy;
1044 }
1045
1046 0 subelement.local = "Q";
1047 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1048
1049 0 result = ds_CryptoBinary_deserialize(
1050 &subelement,
1051 &instance->Q,
1052 message_handle,
1053 0);
1054 0 if(result != GLOBUS_SUCCESS)
1055 {
1056 0 result = GlobusSoapMessageErrorDeserializeFailed(
1057 result,
1058 &ds_CryptoBinary_qname);
1059 0 goto Q_destroy;
1060 }
1061
1062 0 subelement.local = "G";
1063 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1064
1065 0 result = ds_CryptoBinary_deserialize_pointer(
1066 &subelement,
1067 &instance->G,
1068 message_handle,
1069 0);
1070 0 if(result != GLOBUS_SUCCESS)
1071 {
1072 0 result = GlobusSoapMessageErrorDeserializeFailed(
1073 result,
1074 (&subelement));
1075 0 goto G_destroy_pointer;
1076 }
1077
1078 0 subelement.local = "Y";
1079 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1080
1081 0 result = ds_CryptoBinary_deserialize(
1082 &subelement,
1083 &instance->Y,
1084 message_handle,
1085 0);
1086 0 if(result != GLOBUS_SUCCESS)
1087 {
1088 0 result = GlobusSoapMessageErrorDeserializeFailed(
1089 result,
1090 &ds_CryptoBinary_qname);
1091 0 goto Y_destroy;
1092 }
1093
1094 0 subelement.local = "J";
1095 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1096
1097 0 result = ds_CryptoBinary_deserialize_pointer(
1098 &subelement,
1099 &instance->J,
1100 message_handle,
1101 0);
1102 0 if(result != GLOBUS_SUCCESS)
1103 {
1104 0 result = GlobusSoapMessageErrorDeserializeFailed(
1105 result,
1106 (&subelement));
1107 0 goto J_destroy_pointer;
1108 }
1109
1110 0 subelement.local = "Seed";
1111 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1112
1113 0 result = ds_CryptoBinary_deserialize(
1114 &subelement,
1115 &instance->Seed,
1116 message_handle,
1117 0);
1118 0 if(result != GLOBUS_SUCCESS)
1119 {
1120 0 result = GlobusSoapMessageErrorDeserializeFailed(
1121 result,
1122 &ds_CryptoBinary_qname);
1123 0 goto Seed_destroy;
1124 }
1125
1126 0 subelement.local = "PgenCounter";
1127 0 subelement.Namespace = "http://www.w3.org/2000/09/xmldsig#";
1128
1129 0 result = ds_CryptoBinary_deserialize(
1130 &subelement,
1131 &instance->PgenCounter,
1132 message_handle,
1133 0);
1134 0 if(result != GLOBUS_SUCCESS)
1135 {
1136 0 result = GlobusSoapMessageErrorDeserializeFailed(
1137 result,
1138 &ds_CryptoBinary_qname);
1139 0 goto PgenCounter_destroy;
1140 }
1141
1142 0 if(!(options & GLOBUS_XSD_ELEMENT_CONTENTS_ONLY))
1143 {
1144 0 result = globus_soap_message_deserialize_element_end(
1145 message_handle,
1146 element_qname);
1147 0 if(result != GLOBUS_SUCCESS)
1148 {
1149 0 result = GlobusSoapMessageErrorDeserializeFailed(
1150 result, element_qname);
1151 0 goto fail_deserialize;
1152 }
1153 }
1154
1155 0 goto exit;
1156
1157 0 fail_deserialize:
1158 0 ds_CryptoBinary_destroy_contents(
1159 &instance->PgenCounter);
1160
1161 0 PgenCounter_destroy:
1162 0 ds_CryptoBinary_destroy_contents(
1163 &instance->Seed);
1164
1165 0 Seed_destroy:
1166 0 ds_CryptoBinary_destroy(
1167 instance->J);
1168 0 instance->J = NULL;
1169
1170 0 J_destroy_pointer:
1171 0 ds_CryptoBinary_destroy_contents(
1172 &instance->Y);
1173
1174 0 Y_destroy:
1175 0 ds_CryptoBinary_destroy(
1176 instance->G);
1177 0 instance->G = NULL;
1178
1179 0 G_destroy_pointer:
1180 0 ds_CryptoBinary_destroy_contents(
1181 &instance->Q);
1182
1183 0 Q_destroy:
1184 0 ds_CryptoBinary_destroy_contents(
1185 &instance->P);
1186
1187 0 P_destroy:
1188
1189
1190 0 exit:
1191
1192 0 GlobusSoapMessageDebugExit();
1193 0 return result;
1194 }
1195
1196
1197
1198 globus_result_t
1199 ds_DSAKeyValueType_deserialize_pointer(
1200 const xsd_QName * element_qname,
1201 ds_DSAKeyValueType ** ip,
1202 globus_soap_message_handle_t message_handle,
1203 globus_xsd_element_options_t options)
1204 0 {
1205 0 ds_DSAKeyValueType * instance = NULL;
1206 0 globus_result_t result = GLOBUS_SUCCESS;
1207 xsd_QName subelement;
1208 0 int found_attrs = 0;
1209 0 int empty_element = 0;
1210 GlobusFuncName(ds_DSAKeyValueType_deserialize_pointer);
1211 0 GlobusSoapMessageDebugEnter();
1212
1213 0 *ip = NULL;
1214
1215 0 result = globus_soap_message_deserialize_element(
1216 message_handle, element_qname);
1217 0 if(result != GLOBUS_SUCCESS &&
1218 (GlobusSoapMessageStatusElementNotFoundCheck(result) ||
1219 GlobusSoapMessageStatusFailedElementCheck(result) ||
1220 GlobusSoapMessageStatusFailedWithTextCheck(result)))
1221 {
1222 0 result = GLOBUS_SUCCESS;
1223 0 goto exit;
1224 }
1225
1226 0 if(result != GLOBUS_SUCCESS)
1227 {
1228 0 result = GlobusSoapMessageErrorDeserializeFailed(
1229 result, element_qname);
1230 0 goto exit;
1231 }
1232
1233 0 if(globus_soap_message_deserialize_element_is_empty(
1234 message_handle))
1235 {
1236 0 empty_element = 1;
1237 }
1238
1239 0 result = ds_DSAKeyValueType_init(&instance);
1240 0 if(result != GLOBUS_SUCCESS)
1241 {
1242 0 result = GlobusSoapMessageErrorDeserializeFailed(
1243 result, element_qname);
1244 0 goto exit;
1245 }
1246
1247
1248 0 if(found_attrs == 0 &&
1249 globus_soap_message_deserialize_element_is_nil(message_handle))
1250 {
1251 0 ds_DSAKeyValueType_destroy(instance);
1252
1253 0 result = globus_soap_message_deserialize_element_end(
1254 message_handle,
1255 element_qname);
1256 0 if(result != GLOBUS_SUCCESS)
1257 {
1258 0 result = GlobusSoapMessageErrorDeserializeFailed(
1259 result, element_qname);
1260 0 goto exit;
1261 }
1262
1263 0 *ip = NULL;
1264 0 globus_object_free(globus_error_get(result));
1265 0 result = GLOBUS_SUCCESS;
1266 0 goto exit;
1267 }
1268
1269 0 if(empty_element)
1270 {
1271 0 result = globus_soap_message_deserialize_element_end(
1272 message_handle,
1273 element_qname);
1274 0 if(result != GLOBUS_SUCCESS)
1275 {
1276 0 result = GlobusSoapMessageErrorDeserializeFailed(
1277 result, element_qname);
1278 0 goto fail_deserialize;
1279 }
1280
1281 0 *ip = instance;
1282 0 goto exit;
1283 }
1284
1285 0 result = globus_soap_message_deserialize_element_begin_close(
1286 message_handle);
1287 0 if(result != GLOBUS_SUCCESS)
1288 {
1289 0 result = GlobusSoapMessageErrorDeserializeFailed(
1290 result, element_qname);
1291 0 goto exit;
1292 }
1293
1294 0 result = ds_DSAKeyValueType_deserialize(
1295 element_qname,
1296 instance,
1297 message_handle,
1298 options | GLOBUS_XSD_ELEMENT_CONTENTS_ONLY);
1299 0 if(result != GLOBUS_SUCCESS)
1300 {
1301 0 result = GlobusSoapMessageErrorDeserializeFailed(
1302 result, element_qname);
1303 0 goto exit;
1304 }
1305
1306 0 result = globus_soap_message_deserialize_element_end(
1307 message_handle,
1308 element_qname);
1309 0 if(result != GLOBUS_SUCCESS)
1310 {
1311 0 result = GlobusSoapMessageErrorDeserializeFailed(
1312 result, element_qname);
1313 0 goto fail_deserialize;
1314 }
1315
1316 0 *ip = instance;
1317
1318 0 goto exit;
1319
1320 0 fail_deserialize:
1321 0 ds_CryptoBinary_destroy_contents(
1322 &instance->PgenCounter);
1323
1324 0 PgenCounter_destroy:
1325 0 ds_CryptoBinary_destroy_contents(
1326 &instance->Seed);
1327
1328 0 Seed_destroy:
1329 0 ds_CryptoBinary_destroy(
1330 instance->J);
1331 0 instance->J = NULL;
1332
1333 0 J_destroy_pointer:
1334 0 ds_CryptoBinary_destroy_contents(
1335 &instance->Y);
1336
1337 0 Y_destroy:
1338 0 ds_CryptoBinary_destroy(
1339 instance->G);
1340 0 instance->G = NULL;
1341
1342 0 G_destroy_pointer:
1343 0 ds_CryptoBinary_destroy_contents(
1344 &instance->Q);
1345
1346 0 Q_destroy:
1347 0 ds_CryptoBinary_destroy_contents(
1348 &instance->P);
1349
1350 0 P_destroy:
1351
1352 0 exit:
1353
1354 0 GlobusSoapMessageDebugExit();
1355 0 return result;
1356 }
1357
1358
1359 globus_result_t
1360 ds_DSAKeyValueType_array_init_contents(
1361 ds_DSAKeyValueType_array * array)
1362 0 {
1363 0 return globus_xsd_generic_array_init_contents(
1364 (globus_xsd_generic_array_t *) array,
1365 &ds_DSAKeyValueType_info);
1366 }
1367 /* ds_DSAKeyValueType_array_init_contents() */
1368
1369 globus_result_t
1370 ds_DSAKeyValueType_array_init(
1371 ds_DSAKeyValueType_array ** arr)
1372 0 {
1373 0 return globus_xsd_generic_array_init(
1374 (globus_xsd_generic_array_t **) arr,
1375 &ds_DSAKeyValueType_info);
1376 }
1377 /* ds_DSAKeyValueType_array_init() */
1378
1379 void
1380 ds_DSAKeyValueType_array_destroy_contents(
1381 ds_DSAKeyValueType_array * array)
1382 0 {
1383 0 globus_xsd_generic_array_destroy_contents(
1384 (globus_xsd_generic_array_t *) array);
1385 0 }
1386 /* ds_DSAKeyValueType_array_destroy_contents() */
1387
1388 void
1389 ds_DSAKeyValueType_array_destroy(
1390 ds_DSAKeyValueType_array * array)
1391 0 {
1392 0 globus_xsd_generic_array_destroy(
1393 (globus_xsd_generic_array_t *) array);
1394 0 }
1395 /* ds_DSAKeyValueType_array_destroy() */
1396
1397 globus_result_t
1398 ds_DSAKeyValueType_array_copy(
1399 ds_DSAKeyValueType_array ** dest_arr,
1400 const ds_DSAKeyValueType_array * src_arr)
1401 0 {
1402 0 return globus_xsd_generic_array_copy(
1403 (globus_xsd_generic_array_t **) dest_arr,
1404 (globus_xsd_generic_array_t *) src_arr);
1405 }
1406 /* ds_DSAKeyValueType_array_copy() */
1407
1408 globus_result_t
1409 ds_DSAKeyValueType_array_copy_contents(
1410 ds_DSAKeyValueType_array * dest_arr,
1411 const ds_DSAKeyValueType_array * src_arr)
1412 0 {
1413 0 return globus_xsd_generic_array_copy_contents(
1414 (globus_xsd_generic_array_t *) dest_arr,
1415 (globus_xsd_generic_array_t *) src_arr);
1416 }
1417 /* ds_DSAKeyValueType_array_copy_contents() */
1418
1419 ds_DSAKeyValueType *
1420 ds_DSAKeyValueType_array_push(
1421 ds_DSAKeyValueType_array * array)
1422 0 {
1423 /* Some contents initializers don't initialize subelments but to set their
1424 * values to be NULL
1425 */
1426 0 if (array->type_info == NULL)
1427 {
1428 0 array->type_info = &ds_DSAKeyValueType_info;
1429 }
1430
1431 0 return globus_xsd_generic_array_push(
1432 (globus_xsd_generic_array_t *) array);
1433 }
1434 /* ds_DSAKeyValueType_array_push() */
1435
1436 globus_result_t
1437 ds_DSAKeyValueType_array_serialize(
1438 const xsd_QName * element_qname,
1439 const ds_DSAKeyValueType_array * array,
1440 globus_soap_message_handle_t message,
1441 globus_xsd_element_options_t options)
1442 0 {
1443 0 return globus_xsd_generic_array_serialize(
1444 element_qname,
1445 (const globus_xsd_generic_array_t *) array,
1446 message,
1447 options);
1448 }
1449 /* ds_DSAKeyValueType_array_serialize() */
1450
1451 globus_result_t
1452 ds_DSAKeyValueType_array_deserialize(
1453 const xsd_QName * element_qname,
1454 ds_DSAKeyValueType_array * array,
1455 globus_soap_message_handle_t message,
1456 globus_xsd_element_options_t options)
1457 0 {
1458 /* Some initializers set the array's contents to NULL */
1459 0 if (array->type_info == NULL)
1460 {
1461 0 array->type_info = &ds_DSAKeyValueType_info;
1462 }
1463 0 return globus_xsd_generic_array_deserialize(
1464 element_qname,
1465 (globus_xsd_generic_array_t *) array,
1466 message,
1467 options);