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