Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

19562 lines
632 KiB

  1. /* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
  2. /* ASN.1 definitions for H.235 Security Messages v1 (H.235) */
  3. /* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
  4. /* ASN.1 definitions for Multimedia System Control (H.245) */
  5. /* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
  6. /* ASN.1 definitions for H.323 Messages v2 (H.225) */
  7. #include <windows.h>
  8. #include "h225asn.h"
  9. ASN1module_t H225ASN_Module = NULL;
  10. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val);
  11. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_routing(ASN1encoding_t enc, TransportAddress_ipSourceRoute_routing *val);
  12. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_route(ASN1encoding_t enc, PTransportAddress_ipSourceRoute_route *val);
  13. static int ASN1CALL ASN1Enc_RTPSession_associatedSessionIds(ASN1encoding_t enc, PRTPSession_associatedSessionIds *val);
  14. static int ASN1CALL ASN1Enc_RegistrationConfirm_preGrantedARQ(ASN1encoding_t enc, RegistrationConfirm_preGrantedARQ *val);
  15. static int ASN1CALL ASN1Enc_GatekeeperRequest_algorithmOIDs(ASN1encoding_t enc, PGatekeeperRequest_algorithmOIDs *val);
  16. static int ASN1CALL ASN1Enc_TransportAddress_ip6Address(ASN1encoding_t enc, TransportAddress_ip6Address *val);
  17. static int ASN1CALL ASN1Enc_TransportAddress_ipxAddress(ASN1encoding_t enc, TransportAddress_ipxAddress *val);
  18. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute(ASN1encoding_t enc, TransportAddress_ipSourceRoute *val);
  19. static int ASN1CALL ASN1Enc_TransportAddress_ipAddress(ASN1encoding_t enc, TransportAddress_ipAddress *val);
  20. static int ASN1CALL ASN1Enc_Progress_UUIE_fastStart(ASN1encoding_t enc, PProgress_UUIE_fastStart *val);
  21. static int ASN1CALL ASN1Enc_Facility_UUIE_fastStart(ASN1encoding_t enc, PFacility_UUIE_fastStart *val);
  22. static int ASN1CALL ASN1Enc_Setup_UUIE_fastStart(ASN1encoding_t enc, PSetup_UUIE_fastStart *val);
  23. static int ASN1CALL ASN1Enc_Setup_UUIE_conferenceGoal(ASN1encoding_t enc, Setup_UUIE_conferenceGoal *val);
  24. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV *val);
  25. static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart(ASN1encoding_t enc, PConnect_UUIE_fastStart *val);
  26. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart *val);
  27. static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart(ASN1encoding_t enc, PAlerting_UUIE_fastStart *val);
  28. static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control(ASN1encoding_t enc, PH323_UU_PDU_h245Control *val);
  29. static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService *val);
  30. static int ASN1CALL ASN1Enc_H323_UserInformation_user_data(ASN1encoding_t enc, H323_UserInformation_user_data *val);
  31. static int ASN1CALL ASN1Enc_H235NonStandardParameter(ASN1encoding_t enc, H235NonStandardParameter *val);
  32. static int ASN1CALL ASN1Enc_DHset(ASN1encoding_t enc, DHset *val);
  33. static int ASN1CALL ASN1Enc_TypedCertificate(ASN1encoding_t enc, TypedCertificate *val);
  34. static int ASN1CALL ASN1Enc_AuthenticationMechanism(ASN1encoding_t enc, AuthenticationMechanism *val);
  35. static int ASN1CALL ASN1Enc_ClearToken(ASN1encoding_t enc, ClearToken *val);
  36. static int ASN1CALL ASN1Enc_Params(ASN1encoding_t enc, Params *val);
  37. static int ASN1CALL ASN1Enc_EncodedGeneralToken(ASN1encoding_t enc, EncodedGeneralToken *val);
  38. static int ASN1CALL ASN1Enc_PwdCertToken(ASN1encoding_t enc, PwdCertToken *val);
  39. static int ASN1CALL ASN1Enc_EncodedPwdCertToken(ASN1encoding_t enc, EncodedPwdCertToken *val);
  40. static int ASN1CALL ASN1Enc_ReleaseCompleteReason(ASN1encoding_t enc, ReleaseCompleteReason *val);
  41. static int ASN1CALL ASN1Enc_FacilityReason(ASN1encoding_t enc, FacilityReason *val);
  42. static int ASN1CALL ASN1Enc_H221NonStandard(ASN1encoding_t enc, H221NonStandard *val);
  43. static int ASN1CALL ASN1Enc_H225NonStandardIdentifier(ASN1encoding_t enc, H225NonStandardIdentifier *val);
  44. static int ASN1CALL ASN1Enc_PublicTypeOfNumber(ASN1encoding_t enc, PublicTypeOfNumber *val);
  45. static int ASN1CALL ASN1Enc_PrivateTypeOfNumber(ASN1encoding_t enc, PrivateTypeOfNumber *val);
  46. static int ASN1CALL ASN1Enc_AltGKInfo(ASN1encoding_t enc, AltGKInfo *val);
  47. static int ASN1CALL ASN1Enc_Q954Details(ASN1encoding_t enc, Q954Details *val);
  48. static int ASN1CALL ASN1Enc_CallIdentifier(ASN1encoding_t enc, CallIdentifier *val);
  49. static int ASN1CALL ASN1Enc_ICV(ASN1encoding_t enc, ICV *val);
  50. static int ASN1CALL ASN1Enc_GatekeeperRejectReason(ASN1encoding_t enc, GatekeeperRejectReason *val);
  51. static int ASN1CALL ASN1Enc_RegistrationRejectReason(ASN1encoding_t enc, RegistrationRejectReason *val);
  52. static int ASN1CALL ASN1Enc_UnregRequestReason(ASN1encoding_t enc, UnregRequestReason *val);
  53. static int ASN1CALL ASN1Enc_UnregRejectReason(ASN1encoding_t enc, UnregRejectReason *val);
  54. static int ASN1CALL ASN1Enc_CallType(ASN1encoding_t enc, CallType *val);
  55. static int ASN1CALL ASN1Enc_CallModel(ASN1encoding_t enc, CallModel *val);
  56. static int ASN1CALL ASN1Enc_TransportQOS(ASN1encoding_t enc, TransportQOS *val);
  57. static int ASN1CALL ASN1Enc_UUIEsRequested(ASN1encoding_t enc, UUIEsRequested *val);
  58. static int ASN1CALL ASN1Enc_AdmissionRejectReason(ASN1encoding_t enc, AdmissionRejectReason *val);
  59. static int ASN1CALL ASN1Enc_BandRejectReason(ASN1encoding_t enc, BandRejectReason *val);
  60. static int ASN1CALL ASN1Enc_LocationRejectReason(ASN1encoding_t enc, LocationRejectReason *val);
  61. static int ASN1CALL ASN1Enc_DisengageReason(ASN1encoding_t enc, DisengageReason *val);
  62. static int ASN1CALL ASN1Enc_DisengageRejectReason(ASN1encoding_t enc, DisengageRejectReason *val);
  63. static int ASN1CALL ASN1Enc_InfoRequestNakReason(ASN1encoding_t enc, InfoRequestNakReason *val);
  64. static int ASN1CALL ASN1Enc_UnknownMessageResponse(ASN1encoding_t enc, UnknownMessageResponse *val);
  65. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens *val);
  66. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens *val);
  67. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens *val);
  68. static int ASN1CALL ASN1Enc_RequestInProgress_tokens(ASN1encoding_t enc, PRequestInProgress_tokens *val);
  69. static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens(ASN1encoding_t enc, PUnknownMessageResponse_tokens *val);
  70. static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens(ASN1encoding_t enc, PH225NonStandardMessage_tokens *val);
  71. static int ASN1CALL ASN1Enc_InfoRequestNak_tokens(ASN1encoding_t enc, PInfoRequestNak_tokens *val);
  72. static int ASN1CALL ASN1Enc_InfoRequestAck_tokens(ASN1encoding_t enc, PInfoRequestAck_tokens *val);
  73. static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens(ASN1encoding_t enc, PInfoRequestResponse_tokens *val);
  74. static int ASN1CALL ASN1Enc_InfoRequest_tokens(ASN1encoding_t enc, PInfoRequest_tokens *val);
  75. static int ASN1CALL ASN1Enc_DisengageReject_tokens(ASN1encoding_t enc, PDisengageReject_tokens *val);
  76. static int ASN1CALL ASN1Enc_DisengageConfirm_tokens(ASN1encoding_t enc, PDisengageConfirm_tokens *val);
  77. static int ASN1CALL ASN1Enc_DisengageRequest_tokens(ASN1encoding_t enc, PDisengageRequest_tokens *val);
  78. static int ASN1CALL ASN1Enc_LocationReject_tokens(ASN1encoding_t enc, PLocationReject_tokens *val);
  79. static int ASN1CALL ASN1Enc_LocationConfirm_tokens(ASN1encoding_t enc, PLocationConfirm_tokens *val);
  80. static int ASN1CALL ASN1Enc_LocationRequest_tokens(ASN1encoding_t enc, PLocationRequest_tokens *val);
  81. static int ASN1CALL ASN1Enc_BandwidthReject_tokens(ASN1encoding_t enc, PBandwidthReject_tokens *val);
  82. static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens(ASN1encoding_t enc, PBandwidthConfirm_tokens *val);
  83. static int ASN1CALL ASN1Enc_BandwidthRequest_tokens(ASN1encoding_t enc, PBandwidthRequest_tokens *val);
  84. static int ASN1CALL ASN1Enc_AdmissionReject_tokens(ASN1encoding_t enc, PAdmissionReject_tokens *val);
  85. static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens(ASN1encoding_t enc, PAdmissionConfirm_tokens *val);
  86. static int ASN1CALL ASN1Enc_AdmissionRequest_tokens(ASN1encoding_t enc, PAdmissionRequest_tokens *val);
  87. static int ASN1CALL ASN1Enc_UnregistrationReject_tokens(ASN1encoding_t enc, PUnregistrationReject_tokens *val);
  88. static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens(ASN1encoding_t enc, PUnregistrationConfirm_tokens *val);
  89. static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens(ASN1encoding_t enc, PUnregistrationRequest_tokens *val);
  90. static int ASN1CALL ASN1Enc_RegistrationReject_tokens(ASN1encoding_t enc, PRegistrationReject_tokens *val);
  91. static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens(ASN1encoding_t enc, PRegistrationConfirm_tokens *val);
  92. static int ASN1CALL ASN1Enc_RegistrationRequest_tokens(ASN1encoding_t enc, PRegistrationRequest_tokens *val);
  93. static int ASN1CALL ASN1Enc_GatekeeperReject_tokens(ASN1encoding_t enc, PGatekeeperReject_tokens *val);
  94. static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens(ASN1encoding_t enc, PGatekeeperConfirm_tokens *val);
  95. static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability *val);
  96. static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens(ASN1encoding_t enc, PGatekeeperRequest_tokens *val);
  97. static int ASN1CALL ASN1Enc_Endpoint_tokens(ASN1encoding_t enc, PEndpoint_tokens *val);
  98. static int ASN1CALL ASN1Enc_Progress_UUIE_tokens(ASN1encoding_t enc, PProgress_UUIE_tokens *val);
  99. static int ASN1CALL ASN1Enc_Facility_UUIE_tokens(ASN1encoding_t enc, PFacility_UUIE_tokens *val);
  100. static int ASN1CALL ASN1Enc_Setup_UUIE_tokens(ASN1encoding_t enc, PSetup_UUIE_tokens *val);
  101. static int ASN1CALL ASN1Enc_Connect_UUIE_tokens(ASN1encoding_t enc, PConnect_UUIE_tokens *val);
  102. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens(ASN1encoding_t enc, PCallProceeding_UUIE_tokens *val);
  103. static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens(ASN1encoding_t enc, PAlerting_UUIE_tokens *val);
  104. static int ASN1CALL ASN1Enc_SIGNED_EncodedGeneralToken(ASN1encoding_t enc, SIGNED_EncodedGeneralToken *val);
  105. static int ASN1CALL ASN1Enc_ENCRYPTED(ASN1encoding_t enc, ENCRYPTED *val);
  106. static int ASN1CALL ASN1Enc_HASHED(ASN1encoding_t enc, HASHED *val);
  107. static int ASN1CALL ASN1Enc_SIGNED_EncodedPwdCertToken(ASN1encoding_t enc, SIGNED_EncodedPwdCertToken *val);
  108. static int ASN1CALL ASN1Enc_Information_UUIE(ASN1encoding_t enc, Information_UUIE *val);
  109. static int ASN1CALL ASN1Enc_ReleaseComplete_UUIE(ASN1encoding_t enc, ReleaseComplete_UUIE *val);
  110. static int ASN1CALL ASN1Enc_VendorIdentifier(ASN1encoding_t enc, VendorIdentifier *val);
  111. static int ASN1CALL ASN1Enc_H225NonStandardParameter(ASN1encoding_t enc, H225NonStandardParameter *val);
  112. static int ASN1CALL ASN1Enc_PublicPartyNumber(ASN1encoding_t enc, PublicPartyNumber *val);
  113. static int ASN1CALL ASN1Enc_PrivatePartyNumber(ASN1encoding_t enc, PrivatePartyNumber *val);
  114. static int ASN1CALL ASN1Enc_SecurityServiceMode(ASN1encoding_t enc, SecurityServiceMode *val);
  115. static int ASN1CALL ASN1Enc_SecurityCapabilities(ASN1encoding_t enc, SecurityCapabilities *val);
  116. static int ASN1CALL ASN1Enc_H245Security(ASN1encoding_t enc, H245Security *val);
  117. static int ASN1CALL ASN1Enc_QseriesOptions(ASN1encoding_t enc, QseriesOptions *val);
  118. static int ASN1CALL ASN1Enc_EncryptIntAlg(ASN1encoding_t enc, EncryptIntAlg *val);
  119. static int ASN1CALL ASN1Enc_NonIsoIntegrityMechanism(ASN1encoding_t enc, NonIsoIntegrityMechanism *val);
  120. static int ASN1CALL ASN1Enc_IntegrityMechanism(ASN1encoding_t enc, IntegrityMechanism *val);
  121. static int ASN1CALL ASN1Enc_FastStartToken(ASN1encoding_t enc, FastStartToken *val);
  122. static int ASN1CALL ASN1Enc_EncodedFastStartToken(ASN1encoding_t enc, EncodedFastStartToken *val);
  123. static int ASN1CALL ASN1Enc_DataRate(ASN1encoding_t enc, DataRate *val);
  124. static int ASN1CALL ASN1Enc_GatekeeperReject(ASN1encoding_t enc, GatekeeperReject *val);
  125. static int ASN1CALL ASN1Enc_RegistrationConfirm(ASN1encoding_t enc, RegistrationConfirm *val);
  126. static int ASN1CALL ASN1Enc_RegistrationReject(ASN1encoding_t enc, RegistrationReject *val);
  127. static int ASN1CALL ASN1Enc_UnregistrationRequest(ASN1encoding_t enc, UnregistrationRequest *val);
  128. static int ASN1CALL ASN1Enc_UnregistrationConfirm(ASN1encoding_t enc, UnregistrationConfirm *val);
  129. static int ASN1CALL ASN1Enc_UnregistrationReject(ASN1encoding_t enc, UnregistrationReject *val);
  130. static int ASN1CALL ASN1Enc_AdmissionReject(ASN1encoding_t enc, AdmissionReject *val);
  131. static int ASN1CALL ASN1Enc_BandwidthRequest(ASN1encoding_t enc, BandwidthRequest *val);
  132. static int ASN1CALL ASN1Enc_BandwidthConfirm(ASN1encoding_t enc, BandwidthConfirm *val);
  133. static int ASN1CALL ASN1Enc_BandwidthReject(ASN1encoding_t enc, BandwidthReject *val);
  134. static int ASN1CALL ASN1Enc_LocationReject(ASN1encoding_t enc, LocationReject *val);
  135. static int ASN1CALL ASN1Enc_DisengageRequest(ASN1encoding_t enc, DisengageRequest *val);
  136. static int ASN1CALL ASN1Enc_DisengageConfirm(ASN1encoding_t enc, DisengageConfirm *val);
  137. static int ASN1CALL ASN1Enc_DisengageReject(ASN1encoding_t enc, DisengageReject *val);
  138. static int ASN1CALL ASN1Enc_InfoRequestAck(ASN1encoding_t enc, InfoRequestAck *val);
  139. static int ASN1CALL ASN1Enc_InfoRequestNak(ASN1encoding_t enc, InfoRequestNak *val);
  140. static int ASN1CALL ASN1Enc_H225NonStandardMessage(ASN1encoding_t enc, H225NonStandardMessage *val);
  141. static int ASN1CALL ASN1Enc_RequestInProgress(ASN1encoding_t enc, RequestInProgress *val);
  142. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate(ASN1encoding_t enc, ResourcesAvailableIndicate *val);
  143. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm(ASN1encoding_t enc, ResourcesAvailableConfirm *val);
  144. static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity(ASN1encoding_t enc, PGatekeeperConfirm_integrity *val);
  145. static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity(ASN1encoding_t enc, PGatekeeperRequest_integrity *val);
  146. static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoGKPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoGKPwdHash *val);
  147. static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported *val);
  148. static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported *val);
  149. static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported *val);
  150. static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported(ASN1encoding_t enc, PH324Caps_dataRatesSupported *val);
  151. static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported(ASN1encoding_t enc, PH323Caps_dataRatesSupported *val);
  152. static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported(ASN1encoding_t enc, PH322Caps_dataRatesSupported *val);
  153. static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported(ASN1encoding_t enc, PH321Caps_dataRatesSupported *val);
  154. static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported(ASN1encoding_t enc, PH320Caps_dataRatesSupported *val);
  155. static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported(ASN1encoding_t enc, PH310Caps_dataRatesSupported *val);
  156. static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability *val);
  157. static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl *val);
  158. static int ASN1CALL ASN1Enc_CryptoToken_cryptoHashedToken(ASN1encoding_t enc, CryptoToken_cryptoHashedToken *val);
  159. static int ASN1CALL ASN1Enc_CryptoToken_cryptoSignedToken(ASN1encoding_t enc, CryptoToken_cryptoSignedToken *val);
  160. static int ASN1CALL ASN1Enc_CryptoToken_cryptoEncryptedToken(ASN1encoding_t enc, CryptoToken_cryptoEncryptedToken *val);
  161. static int ASN1CALL ASN1Enc_CryptoToken(ASN1encoding_t enc, CryptoToken *val);
  162. static int ASN1CALL ASN1Enc_SIGNED_EncodedFastStartToken(ASN1encoding_t enc, SIGNED_EncodedFastStartToken *val);
  163. static int ASN1CALL ASN1Enc_TransportAddress(ASN1encoding_t enc, TransportAddress *val);
  164. static int ASN1CALL ASN1Enc_GatewayInfo(ASN1encoding_t enc, GatewayInfo *val);
  165. static int ASN1CALL ASN1Enc_H310Caps(ASN1encoding_t enc, H310Caps *val);
  166. static int ASN1CALL ASN1Enc_H320Caps(ASN1encoding_t enc, H320Caps *val);
  167. static int ASN1CALL ASN1Enc_H321Caps(ASN1encoding_t enc, H321Caps *val);
  168. static int ASN1CALL ASN1Enc_H322Caps(ASN1encoding_t enc, H322Caps *val);
  169. static int ASN1CALL ASN1Enc_H323Caps(ASN1encoding_t enc, H323Caps *val);
  170. static int ASN1CALL ASN1Enc_H324Caps(ASN1encoding_t enc, H324Caps *val);
  171. static int ASN1CALL ASN1Enc_VoiceCaps(ASN1encoding_t enc, VoiceCaps *val);
  172. static int ASN1CALL ASN1Enc_T120OnlyCaps(ASN1encoding_t enc, T120OnlyCaps *val);
  173. static int ASN1CALL ASN1Enc_NonStandardProtocol(ASN1encoding_t enc, NonStandardProtocol *val);
  174. static int ASN1CALL ASN1Enc_McuInfo(ASN1encoding_t enc, McuInfo *val);
  175. static int ASN1CALL ASN1Enc_TerminalInfo(ASN1encoding_t enc, TerminalInfo *val);
  176. static int ASN1CALL ASN1Enc_GatekeeperInfo(ASN1encoding_t enc, GatekeeperInfo *val);
  177. static int ASN1CALL ASN1Enc_PartyNumber(ASN1encoding_t enc, PartyNumber *val);
  178. static int ASN1CALL ASN1Enc_AlternateGK(ASN1encoding_t enc, AlternateGK *val);
  179. static int ASN1CALL ASN1Enc_GatekeeperConfirm(ASN1encoding_t enc, GatekeeperConfirm *val);
  180. static int ASN1CALL ASN1Enc_AdmissionRequest(ASN1encoding_t enc, AdmissionRequest *val);
  181. static int ASN1CALL ASN1Enc_LocationRequest(ASN1encoding_t enc, LocationRequest *val);
  182. static int ASN1CALL ASN1Enc_InfoRequest(ASN1encoding_t enc, InfoRequest *val);
  183. static int ASN1CALL ASN1Enc_TransportChannelInfo(ASN1encoding_t enc, TransportChannelInfo *val);
  184. static int ASN1CALL ASN1Enc_RTPSession(ASN1encoding_t enc, RTPSession *val);
  185. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data *val);
  186. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video *val);
  187. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio *val);
  188. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq *val);
  189. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo *val);
  190. static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress *val);
  191. static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress(ASN1encoding_t enc, PAdmissionReject_callSignalAddress *val);
  192. static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress *val);
  193. static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper *val);
  194. static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress *val);
  195. static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress(ASN1encoding_t enc, PRegistrationRequest_rasAddress *val);
  196. static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress *val);
  197. static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper *val);
  198. static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper *val);
  199. static int ASN1CALL ASN1Enc_Endpoint_rasAddress(ASN1encoding_t enc, PEndpoint_rasAddress *val);
  200. static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress(ASN1encoding_t enc, PEndpoint_callSignalAddress *val);
  201. static int ASN1CALL ASN1Enc_EndpointType(ASN1encoding_t enc, EndpointType *val);
  202. static int ASN1CALL ASN1Enc_SupportedProtocols(ASN1encoding_t enc, SupportedProtocols *val);
  203. static int ASN1CALL ASN1Enc_AliasAddress(ASN1encoding_t enc, AliasAddress *val);
  204. static int ASN1CALL ASN1Enc_Endpoint(ASN1encoding_t enc, Endpoint *val);
  205. static int ASN1CALL ASN1Enc_SupportedPrefix(ASN1encoding_t enc, SupportedPrefix *val);
  206. static int ASN1CALL ASN1Enc_GatekeeperRequest(ASN1encoding_t enc, GatekeeperRequest *val);
  207. static int ASN1CALL ASN1Enc_RegistrationRequest(ASN1encoding_t enc, RegistrationRequest *val);
  208. static int ASN1CALL ASN1Enc_AdmissionConfirm(ASN1encoding_t enc, AdmissionConfirm *val);
  209. static int ASN1CALL ASN1Enc_LocationConfirm(ASN1encoding_t enc, LocationConfirm *val);
  210. static int ASN1CALL ASN1Enc_InfoRequestResponse(ASN1encoding_t enc, InfoRequestResponse *val);
  211. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols *val);
  212. static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias *val);
  213. static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints *val);
  214. static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress *val);
  215. static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo *val);
  216. static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo(ASN1encoding_t enc, PLocationConfirm_destinationInfo *val);
  217. static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo(ASN1encoding_t enc, PLocationRequest_sourceInfo *val);
  218. static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo(ASN1encoding_t enc, PLocationRequest_destinationInfo *val);
  219. static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints *val);
  220. static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress *val);
  221. static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo *val);
  222. static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo *val);
  223. static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives(ASN1encoding_t enc, PAdmissionRequest_destAlternatives *val);
  224. static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives *val);
  225. static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo(ASN1encoding_t enc, PAdmissionRequest_srcInfo *val);
  226. static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo *val);
  227. static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo(ASN1encoding_t enc, PAdmissionRequest_destinationInfo *val);
  228. static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints *val);
  229. static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias *val);
  230. static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias *val);
  231. static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias *val);
  232. static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints *val);
  233. static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias(ASN1encoding_t enc, PRegistrationRequest_terminalAlias *val);
  234. static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints *val);
  235. static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias *val);
  236. static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoEPPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoEPPwdHash *val);
  237. static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo(ASN1encoding_t enc, PEndpoint_destExtraCallInfo *val);
  238. static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress *val);
  239. static int ASN1CALL ASN1Enc_Endpoint_aliasAddress(ASN1encoding_t enc, PEndpoint_aliasAddress *val);
  240. static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes *val);
  241. static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes *val);
  242. static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes *val);
  243. static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes(ASN1encoding_t enc, PH324Caps_supportedPrefixes *val);
  244. static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes(ASN1encoding_t enc, PH323Caps_supportedPrefixes *val);
  245. static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes(ASN1encoding_t enc, PH322Caps_supportedPrefixes *val);
  246. static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes(ASN1encoding_t enc, PH321Caps_supportedPrefixes *val);
  247. static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes(ASN1encoding_t enc, PH320Caps_supportedPrefixes *val);
  248. static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes(ASN1encoding_t enc, PH310Caps_supportedPrefixes *val);
  249. static int ASN1CALL ASN1Enc_GatewayInfo_protocol(ASN1encoding_t enc, PGatewayInfo_protocol *val);
  250. static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo *val);
  251. static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress *val);
  252. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo *val);
  253. static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress(ASN1encoding_t enc, PSetup_UUIE_destinationAddress *val);
  254. static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress(ASN1encoding_t enc, PSetup_UUIE_sourceAddress *val);
  255. static int ASN1CALL ASN1Enc_Alerting_UUIE(ASN1encoding_t enc, Alerting_UUIE *val);
  256. static int ASN1CALL ASN1Enc_CallProceeding_UUIE(ASN1encoding_t enc, CallProceeding_UUIE *val);
  257. static int ASN1CALL ASN1Enc_Connect_UUIE(ASN1encoding_t enc, Connect_UUIE *val);
  258. static int ASN1CALL ASN1Enc_Setup_UUIE(ASN1encoding_t enc, Setup_UUIE *val);
  259. static int ASN1CALL ASN1Enc_Facility_UUIE(ASN1encoding_t enc, Facility_UUIE *val);
  260. static int ASN1CALL ASN1Enc_ConferenceList(ASN1encoding_t enc, ConferenceList *val);
  261. static int ASN1CALL ASN1Enc_Progress_UUIE(ASN1encoding_t enc, Progress_UUIE *val);
  262. static int ASN1CALL ASN1Enc_CryptoH323Token(ASN1encoding_t enc, CryptoH323Token *val);
  263. static int ASN1CALL ASN1Enc_RasMessage(ASN1encoding_t enc, RasMessage *val);
  264. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val);
  265. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens *val);
  266. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens *val);
  267. static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens(ASN1encoding_t enc, PRequestInProgress_cryptoTokens *val);
  268. static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens *val);
  269. static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens *val);
  270. static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens *val);
  271. static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens *val);
  272. static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens *val);
  273. static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens(ASN1encoding_t enc, PInfoRequest_cryptoTokens *val);
  274. static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens(ASN1encoding_t enc, PDisengageReject_cryptoTokens *val);
  275. static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens *val);
  276. static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens(ASN1encoding_t enc, PDisengageRequest_cryptoTokens *val);
  277. static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens(ASN1encoding_t enc, PLocationReject_cryptoTokens *val);
  278. static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens(ASN1encoding_t enc, PLocationConfirm_cryptoTokens *val);
  279. static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens(ASN1encoding_t enc, PLocationRequest_cryptoTokens *val);
  280. static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens(ASN1encoding_t enc, PBandwidthReject_cryptoTokens *val);
  281. static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens *val);
  282. static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens *val);
  283. static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens(ASN1encoding_t enc, PAdmissionReject_cryptoTokens *val);
  284. static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens *val);
  285. static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens *val);
  286. static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens *val);
  287. static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens *val);
  288. static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens *val);
  289. static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens(ASN1encoding_t enc, PRegistrationReject_cryptoTokens *val);
  290. static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens *val);
  291. static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens *val);
  292. static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens *val);
  293. static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens *val);
  294. static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens *val);
  295. static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens(ASN1encoding_t enc, PEndpoint_cryptoTokens *val);
  296. static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens *val);
  297. static int ASN1CALL ASN1Enc_Facility_UUIE_conferences(ASN1encoding_t enc, PFacility_UUIE_conferences *val);
  298. static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens *val);
  299. static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens *val);
  300. static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens *val);
  301. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens *val);
  302. static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens *val);
  303. static int ASN1CALL ASN1Enc_H323_UU_PDU_h323_message_body(ASN1encoding_t enc, H323_UU_PDU_h323_message_body *val);
  304. static int ASN1CALL ASN1Enc_H323_UU_PDU(ASN1encoding_t enc, H323_UU_PDU *val);
  305. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val);
  306. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu *val);
  307. static int ASN1CALL ASN1Enc_H323_UserInformation(ASN1encoding_t enc, H323_UserInformation *val);
  308. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val);
  309. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_routing(ASN1decoding_t dec, TransportAddress_ipSourceRoute_routing *val);
  310. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_route(ASN1decoding_t dec, PTransportAddress_ipSourceRoute_route *val);
  311. static int ASN1CALL ASN1Dec_RTPSession_associatedSessionIds(ASN1decoding_t dec, PRTPSession_associatedSessionIds *val);
  312. static int ASN1CALL ASN1Dec_RegistrationConfirm_preGrantedARQ(ASN1decoding_t dec, RegistrationConfirm_preGrantedARQ *val);
  313. static int ASN1CALL ASN1Dec_GatekeeperRequest_algorithmOIDs(ASN1decoding_t dec, PGatekeeperRequest_algorithmOIDs *val);
  314. static int ASN1CALL ASN1Dec_TransportAddress_ip6Address(ASN1decoding_t dec, TransportAddress_ip6Address *val);
  315. static int ASN1CALL ASN1Dec_TransportAddress_ipxAddress(ASN1decoding_t dec, TransportAddress_ipxAddress *val);
  316. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute(ASN1decoding_t dec, TransportAddress_ipSourceRoute *val);
  317. static int ASN1CALL ASN1Dec_TransportAddress_ipAddress(ASN1decoding_t dec, TransportAddress_ipAddress *val);
  318. static int ASN1CALL ASN1Dec_Progress_UUIE_fastStart(ASN1decoding_t dec, PProgress_UUIE_fastStart *val);
  319. static int ASN1CALL ASN1Dec_Facility_UUIE_fastStart(ASN1decoding_t dec, PFacility_UUIE_fastStart *val);
  320. static int ASN1CALL ASN1Dec_Setup_UUIE_fastStart(ASN1decoding_t dec, PSetup_UUIE_fastStart *val);
  321. static int ASN1CALL ASN1Dec_Setup_UUIE_conferenceGoal(ASN1decoding_t dec, Setup_UUIE_conferenceGoal *val);
  322. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV *val);
  323. static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart(ASN1decoding_t dec, PConnect_UUIE_fastStart *val);
  324. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart *val);
  325. static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart(ASN1decoding_t dec, PAlerting_UUIE_fastStart *val);
  326. static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control(ASN1decoding_t dec, PH323_UU_PDU_h245Control *val);
  327. static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService *val);
  328. static int ASN1CALL ASN1Dec_H323_UserInformation_user_data(ASN1decoding_t dec, H323_UserInformation_user_data *val);
  329. static int ASN1CALL ASN1Dec_H235NonStandardParameter(ASN1decoding_t dec, H235NonStandardParameter *val);
  330. static int ASN1CALL ASN1Dec_DHset(ASN1decoding_t dec, DHset *val);
  331. static int ASN1CALL ASN1Dec_TypedCertificate(ASN1decoding_t dec, TypedCertificate *val);
  332. static int ASN1CALL ASN1Dec_AuthenticationMechanism(ASN1decoding_t dec, AuthenticationMechanism *val);
  333. static int ASN1CALL ASN1Dec_ClearToken(ASN1decoding_t dec, ClearToken *val);
  334. static int ASN1CALL ASN1Dec_Params(ASN1decoding_t dec, Params *val);
  335. static int ASN1CALL ASN1Dec_EncodedGeneralToken(ASN1decoding_t dec, EncodedGeneralToken *val);
  336. static int ASN1CALL ASN1Dec_PwdCertToken(ASN1decoding_t dec, PwdCertToken *val);
  337. static int ASN1CALL ASN1Dec_EncodedPwdCertToken(ASN1decoding_t dec, EncodedPwdCertToken *val);
  338. static int ASN1CALL ASN1Dec_ReleaseCompleteReason(ASN1decoding_t dec, ReleaseCompleteReason *val);
  339. static int ASN1CALL ASN1Dec_FacilityReason(ASN1decoding_t dec, FacilityReason *val);
  340. static int ASN1CALL ASN1Dec_H221NonStandard(ASN1decoding_t dec, H221NonStandard *val);
  341. static int ASN1CALL ASN1Dec_H225NonStandardIdentifier(ASN1decoding_t dec, H225NonStandardIdentifier *val);
  342. static int ASN1CALL ASN1Dec_PublicTypeOfNumber(ASN1decoding_t dec, PublicTypeOfNumber *val);
  343. static int ASN1CALL ASN1Dec_PrivateTypeOfNumber(ASN1decoding_t dec, PrivateTypeOfNumber *val);
  344. static int ASN1CALL ASN1Dec_AltGKInfo(ASN1decoding_t dec, AltGKInfo *val);
  345. static int ASN1CALL ASN1Dec_Q954Details(ASN1decoding_t dec, Q954Details *val);
  346. static int ASN1CALL ASN1Dec_CallIdentifier(ASN1decoding_t dec, CallIdentifier *val);
  347. static int ASN1CALL ASN1Dec_ICV(ASN1decoding_t dec, ICV *val);
  348. static int ASN1CALL ASN1Dec_GatekeeperRejectReason(ASN1decoding_t dec, GatekeeperRejectReason *val);
  349. static int ASN1CALL ASN1Dec_RegistrationRejectReason(ASN1decoding_t dec, RegistrationRejectReason *val);
  350. static int ASN1CALL ASN1Dec_UnregRequestReason(ASN1decoding_t dec, UnregRequestReason *val);
  351. static int ASN1CALL ASN1Dec_UnregRejectReason(ASN1decoding_t dec, UnregRejectReason *val);
  352. static int ASN1CALL ASN1Dec_CallType(ASN1decoding_t dec, CallType *val);
  353. static int ASN1CALL ASN1Dec_CallModel(ASN1decoding_t dec, CallModel *val);
  354. static int ASN1CALL ASN1Dec_TransportQOS(ASN1decoding_t dec, TransportQOS *val);
  355. static int ASN1CALL ASN1Dec_UUIEsRequested(ASN1decoding_t dec, UUIEsRequested *val);
  356. static int ASN1CALL ASN1Dec_AdmissionRejectReason(ASN1decoding_t dec, AdmissionRejectReason *val);
  357. static int ASN1CALL ASN1Dec_BandRejectReason(ASN1decoding_t dec, BandRejectReason *val);
  358. static int ASN1CALL ASN1Dec_LocationRejectReason(ASN1decoding_t dec, LocationRejectReason *val);
  359. static int ASN1CALL ASN1Dec_DisengageReason(ASN1decoding_t dec, DisengageReason *val);
  360. static int ASN1CALL ASN1Dec_DisengageRejectReason(ASN1decoding_t dec, DisengageRejectReason *val);
  361. static int ASN1CALL ASN1Dec_InfoRequestNakReason(ASN1decoding_t dec, InfoRequestNakReason *val);
  362. static int ASN1CALL ASN1Dec_UnknownMessageResponse(ASN1decoding_t dec, UnknownMessageResponse *val);
  363. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens *val);
  364. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens *val);
  365. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens *val);
  366. static int ASN1CALL ASN1Dec_RequestInProgress_tokens(ASN1decoding_t dec, PRequestInProgress_tokens *val);
  367. static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens(ASN1decoding_t dec, PUnknownMessageResponse_tokens *val);
  368. static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens(ASN1decoding_t dec, PH225NonStandardMessage_tokens *val);
  369. static int ASN1CALL ASN1Dec_InfoRequestNak_tokens(ASN1decoding_t dec, PInfoRequestNak_tokens *val);
  370. static int ASN1CALL ASN1Dec_InfoRequestAck_tokens(ASN1decoding_t dec, PInfoRequestAck_tokens *val);
  371. static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens(ASN1decoding_t dec, PInfoRequestResponse_tokens *val);
  372. static int ASN1CALL ASN1Dec_InfoRequest_tokens(ASN1decoding_t dec, PInfoRequest_tokens *val);
  373. static int ASN1CALL ASN1Dec_DisengageReject_tokens(ASN1decoding_t dec, PDisengageReject_tokens *val);
  374. static int ASN1CALL ASN1Dec_DisengageConfirm_tokens(ASN1decoding_t dec, PDisengageConfirm_tokens *val);
  375. static int ASN1CALL ASN1Dec_DisengageRequest_tokens(ASN1decoding_t dec, PDisengageRequest_tokens *val);
  376. static int ASN1CALL ASN1Dec_LocationReject_tokens(ASN1decoding_t dec, PLocationReject_tokens *val);
  377. static int ASN1CALL ASN1Dec_LocationConfirm_tokens(ASN1decoding_t dec, PLocationConfirm_tokens *val);
  378. static int ASN1CALL ASN1Dec_LocationRequest_tokens(ASN1decoding_t dec, PLocationRequest_tokens *val);
  379. static int ASN1CALL ASN1Dec_BandwidthReject_tokens(ASN1decoding_t dec, PBandwidthReject_tokens *val);
  380. static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens(ASN1decoding_t dec, PBandwidthConfirm_tokens *val);
  381. static int ASN1CALL ASN1Dec_BandwidthRequest_tokens(ASN1decoding_t dec, PBandwidthRequest_tokens *val);
  382. static int ASN1CALL ASN1Dec_AdmissionReject_tokens(ASN1decoding_t dec, PAdmissionReject_tokens *val);
  383. static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens(ASN1decoding_t dec, PAdmissionConfirm_tokens *val);
  384. static int ASN1CALL ASN1Dec_AdmissionRequest_tokens(ASN1decoding_t dec, PAdmissionRequest_tokens *val);
  385. static int ASN1CALL ASN1Dec_UnregistrationReject_tokens(ASN1decoding_t dec, PUnregistrationReject_tokens *val);
  386. static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens(ASN1decoding_t dec, PUnregistrationConfirm_tokens *val);
  387. static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens(ASN1decoding_t dec, PUnregistrationRequest_tokens *val);
  388. static int ASN1CALL ASN1Dec_RegistrationReject_tokens(ASN1decoding_t dec, PRegistrationReject_tokens *val);
  389. static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens(ASN1decoding_t dec, PRegistrationConfirm_tokens *val);
  390. static int ASN1CALL ASN1Dec_RegistrationRequest_tokens(ASN1decoding_t dec, PRegistrationRequest_tokens *val);
  391. static int ASN1CALL ASN1Dec_GatekeeperReject_tokens(ASN1decoding_t dec, PGatekeeperReject_tokens *val);
  392. static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens(ASN1decoding_t dec, PGatekeeperConfirm_tokens *val);
  393. static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability *val);
  394. static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens(ASN1decoding_t dec, PGatekeeperRequest_tokens *val);
  395. static int ASN1CALL ASN1Dec_Endpoint_tokens(ASN1decoding_t dec, PEndpoint_tokens *val);
  396. static int ASN1CALL ASN1Dec_Progress_UUIE_tokens(ASN1decoding_t dec, PProgress_UUIE_tokens *val);
  397. static int ASN1CALL ASN1Dec_Facility_UUIE_tokens(ASN1decoding_t dec, PFacility_UUIE_tokens *val);
  398. static int ASN1CALL ASN1Dec_Setup_UUIE_tokens(ASN1decoding_t dec, PSetup_UUIE_tokens *val);
  399. static int ASN1CALL ASN1Dec_Connect_UUIE_tokens(ASN1decoding_t dec, PConnect_UUIE_tokens *val);
  400. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens(ASN1decoding_t dec, PCallProceeding_UUIE_tokens *val);
  401. static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens(ASN1decoding_t dec, PAlerting_UUIE_tokens *val);
  402. static int ASN1CALL ASN1Dec_SIGNED_EncodedGeneralToken(ASN1decoding_t dec, SIGNED_EncodedGeneralToken *val);
  403. static int ASN1CALL ASN1Dec_ENCRYPTED(ASN1decoding_t dec, ENCRYPTED *val);
  404. static int ASN1CALL ASN1Dec_HASHED(ASN1decoding_t dec, HASHED *val);
  405. static int ASN1CALL ASN1Dec_SIGNED_EncodedPwdCertToken(ASN1decoding_t dec, SIGNED_EncodedPwdCertToken *val);
  406. static int ASN1CALL ASN1Dec_Information_UUIE(ASN1decoding_t dec, Information_UUIE *val);
  407. static int ASN1CALL ASN1Dec_ReleaseComplete_UUIE(ASN1decoding_t dec, ReleaseComplete_UUIE *val);
  408. static int ASN1CALL ASN1Dec_VendorIdentifier(ASN1decoding_t dec, VendorIdentifier *val);
  409. static int ASN1CALL ASN1Dec_H225NonStandardParameter(ASN1decoding_t dec, H225NonStandardParameter *val);
  410. static int ASN1CALL ASN1Dec_PublicPartyNumber(ASN1decoding_t dec, PublicPartyNumber *val);
  411. static int ASN1CALL ASN1Dec_PrivatePartyNumber(ASN1decoding_t dec, PrivatePartyNumber *val);
  412. static int ASN1CALL ASN1Dec_SecurityServiceMode(ASN1decoding_t dec, SecurityServiceMode *val);
  413. static int ASN1CALL ASN1Dec_SecurityCapabilities(ASN1decoding_t dec, SecurityCapabilities *val);
  414. static int ASN1CALL ASN1Dec_H245Security(ASN1decoding_t dec, H245Security *val);
  415. static int ASN1CALL ASN1Dec_QseriesOptions(ASN1decoding_t dec, QseriesOptions *val);
  416. static int ASN1CALL ASN1Dec_EncryptIntAlg(ASN1decoding_t dec, EncryptIntAlg *val);
  417. static int ASN1CALL ASN1Dec_NonIsoIntegrityMechanism(ASN1decoding_t dec, NonIsoIntegrityMechanism *val);
  418. static int ASN1CALL ASN1Dec_IntegrityMechanism(ASN1decoding_t dec, IntegrityMechanism *val);
  419. static int ASN1CALL ASN1Dec_FastStartToken(ASN1decoding_t dec, FastStartToken *val);
  420. static int ASN1CALL ASN1Dec_EncodedFastStartToken(ASN1decoding_t dec, EncodedFastStartToken *val);
  421. static int ASN1CALL ASN1Dec_DataRate(ASN1decoding_t dec, DataRate *val);
  422. static int ASN1CALL ASN1Dec_GatekeeperReject(ASN1decoding_t dec, GatekeeperReject *val);
  423. static int ASN1CALL ASN1Dec_RegistrationConfirm(ASN1decoding_t dec, RegistrationConfirm *val);
  424. static int ASN1CALL ASN1Dec_RegistrationReject(ASN1decoding_t dec, RegistrationReject *val);
  425. static int ASN1CALL ASN1Dec_UnregistrationRequest(ASN1decoding_t dec, UnregistrationRequest *val);
  426. static int ASN1CALL ASN1Dec_UnregistrationConfirm(ASN1decoding_t dec, UnregistrationConfirm *val);
  427. static int ASN1CALL ASN1Dec_UnregistrationReject(ASN1decoding_t dec, UnregistrationReject *val);
  428. static int ASN1CALL ASN1Dec_AdmissionReject(ASN1decoding_t dec, AdmissionReject *val);
  429. static int ASN1CALL ASN1Dec_BandwidthRequest(ASN1decoding_t dec, BandwidthRequest *val);
  430. static int ASN1CALL ASN1Dec_BandwidthConfirm(ASN1decoding_t dec, BandwidthConfirm *val);
  431. static int ASN1CALL ASN1Dec_BandwidthReject(ASN1decoding_t dec, BandwidthReject *val);
  432. static int ASN1CALL ASN1Dec_LocationReject(ASN1decoding_t dec, LocationReject *val);
  433. static int ASN1CALL ASN1Dec_DisengageRequest(ASN1decoding_t dec, DisengageRequest *val);
  434. static int ASN1CALL ASN1Dec_DisengageConfirm(ASN1decoding_t dec, DisengageConfirm *val);
  435. static int ASN1CALL ASN1Dec_DisengageReject(ASN1decoding_t dec, DisengageReject *val);
  436. static int ASN1CALL ASN1Dec_InfoRequestAck(ASN1decoding_t dec, InfoRequestAck *val);
  437. static int ASN1CALL ASN1Dec_InfoRequestNak(ASN1decoding_t dec, InfoRequestNak *val);
  438. static int ASN1CALL ASN1Dec_H225NonStandardMessage(ASN1decoding_t dec, H225NonStandardMessage *val);
  439. static int ASN1CALL ASN1Dec_RequestInProgress(ASN1decoding_t dec, RequestInProgress *val);
  440. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate(ASN1decoding_t dec, ResourcesAvailableIndicate *val);
  441. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm(ASN1decoding_t dec, ResourcesAvailableConfirm *val);
  442. static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity(ASN1decoding_t dec, PGatekeeperConfirm_integrity *val);
  443. static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity(ASN1decoding_t dec, PGatekeeperRequest_integrity *val);
  444. static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoGKPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoGKPwdHash *val);
  445. static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported *val);
  446. static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported *val);
  447. static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported *val);
  448. static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported(ASN1decoding_t dec, PH324Caps_dataRatesSupported *val);
  449. static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported(ASN1decoding_t dec, PH323Caps_dataRatesSupported *val);
  450. static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported(ASN1decoding_t dec, PH322Caps_dataRatesSupported *val);
  451. static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported(ASN1decoding_t dec, PH321Caps_dataRatesSupported *val);
  452. static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported(ASN1decoding_t dec, PH320Caps_dataRatesSupported *val);
  453. static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported(ASN1decoding_t dec, PH310Caps_dataRatesSupported *val);
  454. static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability *val);
  455. static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl *val);
  456. static int ASN1CALL ASN1Dec_CryptoToken_cryptoHashedToken(ASN1decoding_t dec, CryptoToken_cryptoHashedToken *val);
  457. static int ASN1CALL ASN1Dec_CryptoToken_cryptoSignedToken(ASN1decoding_t dec, CryptoToken_cryptoSignedToken *val);
  458. static int ASN1CALL ASN1Dec_CryptoToken_cryptoEncryptedToken(ASN1decoding_t dec, CryptoToken_cryptoEncryptedToken *val);
  459. static int ASN1CALL ASN1Dec_CryptoToken(ASN1decoding_t dec, CryptoToken *val);
  460. static int ASN1CALL ASN1Dec_SIGNED_EncodedFastStartToken(ASN1decoding_t dec, SIGNED_EncodedFastStartToken *val);
  461. static int ASN1CALL ASN1Dec_TransportAddress(ASN1decoding_t dec, TransportAddress *val);
  462. static int ASN1CALL ASN1Dec_GatewayInfo(ASN1decoding_t dec, GatewayInfo *val);
  463. static int ASN1CALL ASN1Dec_H310Caps(ASN1decoding_t dec, H310Caps *val);
  464. static int ASN1CALL ASN1Dec_H320Caps(ASN1decoding_t dec, H320Caps *val);
  465. static int ASN1CALL ASN1Dec_H321Caps(ASN1decoding_t dec, H321Caps *val);
  466. static int ASN1CALL ASN1Dec_H322Caps(ASN1decoding_t dec, H322Caps *val);
  467. static int ASN1CALL ASN1Dec_H323Caps(ASN1decoding_t dec, H323Caps *val);
  468. static int ASN1CALL ASN1Dec_H324Caps(ASN1decoding_t dec, H324Caps *val);
  469. static int ASN1CALL ASN1Dec_VoiceCaps(ASN1decoding_t dec, VoiceCaps *val);
  470. static int ASN1CALL ASN1Dec_T120OnlyCaps(ASN1decoding_t dec, T120OnlyCaps *val);
  471. static int ASN1CALL ASN1Dec_NonStandardProtocol(ASN1decoding_t dec, NonStandardProtocol *val);
  472. static int ASN1CALL ASN1Dec_McuInfo(ASN1decoding_t dec, McuInfo *val);
  473. static int ASN1CALL ASN1Dec_TerminalInfo(ASN1decoding_t dec, TerminalInfo *val);
  474. static int ASN1CALL ASN1Dec_GatekeeperInfo(ASN1decoding_t dec, GatekeeperInfo *val);
  475. static int ASN1CALL ASN1Dec_PartyNumber(ASN1decoding_t dec, PartyNumber *val);
  476. static int ASN1CALL ASN1Dec_AlternateGK(ASN1decoding_t dec, AlternateGK *val);
  477. static int ASN1CALL ASN1Dec_GatekeeperConfirm(ASN1decoding_t dec, GatekeeperConfirm *val);
  478. static int ASN1CALL ASN1Dec_AdmissionRequest(ASN1decoding_t dec, AdmissionRequest *val);
  479. static int ASN1CALL ASN1Dec_LocationRequest(ASN1decoding_t dec, LocationRequest *val);
  480. static int ASN1CALL ASN1Dec_InfoRequest(ASN1decoding_t dec, InfoRequest *val);
  481. static int ASN1CALL ASN1Dec_TransportChannelInfo(ASN1decoding_t dec, TransportChannelInfo *val);
  482. static int ASN1CALL ASN1Dec_RTPSession(ASN1decoding_t dec, RTPSession *val);
  483. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data *val);
  484. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video *val);
  485. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio *val);
  486. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq *val);
  487. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo *val);
  488. static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress *val);
  489. static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress(ASN1decoding_t dec, PAdmissionReject_callSignalAddress *val);
  490. static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress *val);
  491. static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper *val);
  492. static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress *val);
  493. static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress(ASN1decoding_t dec, PRegistrationRequest_rasAddress *val);
  494. static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress *val);
  495. static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper *val);
  496. static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper *val);
  497. static int ASN1CALL ASN1Dec_Endpoint_rasAddress(ASN1decoding_t dec, PEndpoint_rasAddress *val);
  498. static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress(ASN1decoding_t dec, PEndpoint_callSignalAddress *val);
  499. static int ASN1CALL ASN1Dec_EndpointType(ASN1decoding_t dec, EndpointType *val);
  500. static int ASN1CALL ASN1Dec_SupportedProtocols(ASN1decoding_t dec, SupportedProtocols *val);
  501. static int ASN1CALL ASN1Dec_AliasAddress(ASN1decoding_t dec, AliasAddress *val);
  502. static int ASN1CALL ASN1Dec_Endpoint(ASN1decoding_t dec, Endpoint *val);
  503. static int ASN1CALL ASN1Dec_SupportedPrefix(ASN1decoding_t dec, SupportedPrefix *val);
  504. static int ASN1CALL ASN1Dec_GatekeeperRequest(ASN1decoding_t dec, GatekeeperRequest *val);
  505. static int ASN1CALL ASN1Dec_RegistrationRequest(ASN1decoding_t dec, RegistrationRequest *val);
  506. static int ASN1CALL ASN1Dec_AdmissionConfirm(ASN1decoding_t dec, AdmissionConfirm *val);
  507. static int ASN1CALL ASN1Dec_LocationConfirm(ASN1decoding_t dec, LocationConfirm *val);
  508. static int ASN1CALL ASN1Dec_InfoRequestResponse(ASN1decoding_t dec, InfoRequestResponse *val);
  509. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols *val);
  510. static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias *val);
  511. static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints *val);
  512. static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress *val);
  513. static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo *val);
  514. static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo(ASN1decoding_t dec, PLocationConfirm_destinationInfo *val);
  515. static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo(ASN1decoding_t dec, PLocationRequest_sourceInfo *val);
  516. static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo(ASN1decoding_t dec, PLocationRequest_destinationInfo *val);
  517. static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints *val);
  518. static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress *val);
  519. static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo *val);
  520. static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo *val);
  521. static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives(ASN1decoding_t dec, PAdmissionRequest_destAlternatives *val);
  522. static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives *val);
  523. static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo(ASN1decoding_t dec, PAdmissionRequest_srcInfo *val);
  524. static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo *val);
  525. static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo(ASN1decoding_t dec, PAdmissionRequest_destinationInfo *val);
  526. static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints *val);
  527. static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias *val);
  528. static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias *val);
  529. static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias *val);
  530. static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints *val);
  531. static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias(ASN1decoding_t dec, PRegistrationRequest_terminalAlias *val);
  532. static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints *val);
  533. static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias *val);
  534. static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoEPPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoEPPwdHash *val);
  535. static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo(ASN1decoding_t dec, PEndpoint_destExtraCallInfo *val);
  536. static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress *val);
  537. static int ASN1CALL ASN1Dec_Endpoint_aliasAddress(ASN1decoding_t dec, PEndpoint_aliasAddress *val);
  538. static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes *val);
  539. static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes *val);
  540. static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes *val);
  541. static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes(ASN1decoding_t dec, PH324Caps_supportedPrefixes *val);
  542. static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes(ASN1decoding_t dec, PH323Caps_supportedPrefixes *val);
  543. static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes(ASN1decoding_t dec, PH322Caps_supportedPrefixes *val);
  544. static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes(ASN1decoding_t dec, PH321Caps_supportedPrefixes *val);
  545. static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes(ASN1decoding_t dec, PH320Caps_supportedPrefixes *val);
  546. static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes(ASN1decoding_t dec, PH310Caps_supportedPrefixes *val);
  547. static int ASN1CALL ASN1Dec_GatewayInfo_protocol(ASN1decoding_t dec, PGatewayInfo_protocol *val);
  548. static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo *val);
  549. static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress *val);
  550. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo *val);
  551. static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress(ASN1decoding_t dec, PSetup_UUIE_destinationAddress *val);
  552. static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress(ASN1decoding_t dec, PSetup_UUIE_sourceAddress *val);
  553. static int ASN1CALL ASN1Dec_Alerting_UUIE(ASN1decoding_t dec, Alerting_UUIE *val);
  554. static int ASN1CALL ASN1Dec_CallProceeding_UUIE(ASN1decoding_t dec, CallProceeding_UUIE *val);
  555. static int ASN1CALL ASN1Dec_Connect_UUIE(ASN1decoding_t dec, Connect_UUIE *val);
  556. static int ASN1CALL ASN1Dec_Setup_UUIE(ASN1decoding_t dec, Setup_UUIE *val);
  557. static int ASN1CALL ASN1Dec_Facility_UUIE(ASN1decoding_t dec, Facility_UUIE *val);
  558. static int ASN1CALL ASN1Dec_ConferenceList(ASN1decoding_t dec, ConferenceList *val);
  559. static int ASN1CALL ASN1Dec_Progress_UUIE(ASN1decoding_t dec, Progress_UUIE *val);
  560. static int ASN1CALL ASN1Dec_CryptoH323Token(ASN1decoding_t dec, CryptoH323Token *val);
  561. static int ASN1CALL ASN1Dec_RasMessage(ASN1decoding_t dec, RasMessage *val);
  562. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val);
  563. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens *val);
  564. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens *val);
  565. static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens(ASN1decoding_t dec, PRequestInProgress_cryptoTokens *val);
  566. static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens *val);
  567. static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens *val);
  568. static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens *val);
  569. static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens *val);
  570. static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens *val);
  571. static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens(ASN1decoding_t dec, PInfoRequest_cryptoTokens *val);
  572. static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens(ASN1decoding_t dec, PDisengageReject_cryptoTokens *val);
  573. static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens *val);
  574. static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens(ASN1decoding_t dec, PDisengageRequest_cryptoTokens *val);
  575. static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens(ASN1decoding_t dec, PLocationReject_cryptoTokens *val);
  576. static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens(ASN1decoding_t dec, PLocationConfirm_cryptoTokens *val);
  577. static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens(ASN1decoding_t dec, PLocationRequest_cryptoTokens *val);
  578. static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens(ASN1decoding_t dec, PBandwidthReject_cryptoTokens *val);
  579. static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens *val);
  580. static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens *val);
  581. static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens(ASN1decoding_t dec, PAdmissionReject_cryptoTokens *val);
  582. static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens *val);
  583. static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens *val);
  584. static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens *val);
  585. static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens *val);
  586. static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens *val);
  587. static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens(ASN1decoding_t dec, PRegistrationReject_cryptoTokens *val);
  588. static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens *val);
  589. static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens *val);
  590. static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens *val);
  591. static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens *val);
  592. static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens *val);
  593. static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens(ASN1decoding_t dec, PEndpoint_cryptoTokens *val);
  594. static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens *val);
  595. static int ASN1CALL ASN1Dec_Facility_UUIE_conferences(ASN1decoding_t dec, PFacility_UUIE_conferences *val);
  596. static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens *val);
  597. static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens *val);
  598. static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens *val);
  599. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens *val);
  600. static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens *val);
  601. static int ASN1CALL ASN1Dec_H323_UU_PDU_h323_message_body(ASN1decoding_t dec, H323_UU_PDU_h323_message_body *val);
  602. static int ASN1CALL ASN1Dec_H323_UU_PDU(ASN1decoding_t dec, H323_UU_PDU *val);
  603. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val);
  604. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu *val);
  605. static int ASN1CALL ASN1Dec_H323_UserInformation(ASN1decoding_t dec, H323_UserInformation *val);
  606. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val);
  607. static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute_route(PTransportAddress_ipSourceRoute_route *val);
  608. static void ASN1CALL ASN1Free_RTPSession_associatedSessionIds(PRTPSession_associatedSessionIds *val);
  609. static void ASN1CALL ASN1Free_GatekeeperRequest_algorithmOIDs(PGatekeeperRequest_algorithmOIDs *val);
  610. static void ASN1CALL ASN1Free_TransportAddress_ip6Address(TransportAddress_ip6Address *val);
  611. static void ASN1CALL ASN1Free_TransportAddress_ipxAddress(TransportAddress_ipxAddress *val);
  612. static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute(TransportAddress_ipSourceRoute *val);
  613. static void ASN1CALL ASN1Free_TransportAddress_ipAddress(TransportAddress_ipAddress *val);
  614. static void ASN1CALL ASN1Free_Progress_UUIE_fastStart(PProgress_UUIE_fastStart *val);
  615. static void ASN1CALL ASN1Free_Facility_UUIE_fastStart(PFacility_UUIE_fastStart *val);
  616. static void ASN1CALL ASN1Free_Setup_UUIE_fastStart(PSetup_UUIE_fastStart *val);
  617. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV(PSetup_UUIE_destExtraCRV *val);
  618. static void ASN1CALL ASN1Free_Connect_UUIE_fastStart(PConnect_UUIE_fastStart *val);
  619. static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart(PCallProceeding_UUIE_fastStart *val);
  620. static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart(PAlerting_UUIE_fastStart *val);
  621. static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control(PH323_UU_PDU_h245Control *val);
  622. static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService(PH323_UU_PDU_h4501SupplementaryService *val);
  623. static void ASN1CALL ASN1Free_H323_UserInformation_user_data(H323_UserInformation_user_data *val);
  624. static void ASN1CALL ASN1Free_H235NonStandardParameter(H235NonStandardParameter *val);
  625. static void ASN1CALL ASN1Free_DHset(DHset *val);
  626. static void ASN1CALL ASN1Free_TypedCertificate(TypedCertificate *val);
  627. static void ASN1CALL ASN1Free_AuthenticationMechanism(AuthenticationMechanism *val);
  628. static void ASN1CALL ASN1Free_ClearToken(ClearToken *val);
  629. static void ASN1CALL ASN1Free_Params(Params *val);
  630. static void ASN1CALL ASN1Free_EncodedGeneralToken(EncodedGeneralToken *val);
  631. static void ASN1CALL ASN1Free_PwdCertToken(PwdCertToken *val);
  632. static void ASN1CALL ASN1Free_EncodedPwdCertToken(EncodedPwdCertToken *val);
  633. static void ASN1CALL ASN1Free_H225NonStandardIdentifier(H225NonStandardIdentifier *val);
  634. static void ASN1CALL ASN1Free_AltGKInfo(AltGKInfo *val);
  635. static void ASN1CALL ASN1Free_CallIdentifier(CallIdentifier *val);
  636. static void ASN1CALL ASN1Free_ICV(ICV *val);
  637. static void ASN1CALL ASN1Free_RegistrationRejectReason(RegistrationRejectReason *val);
  638. static void ASN1CALL ASN1Free_UnknownMessageResponse(UnknownMessageResponse *val);
  639. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(PInfoRequestResponse_perCallInfo_Seq_tokens *val);
  640. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens(PResourcesAvailableConfirm_tokens *val);
  641. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens(PResourcesAvailableIndicate_tokens *val);
  642. static void ASN1CALL ASN1Free_RequestInProgress_tokens(PRequestInProgress_tokens *val);
  643. static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens(PUnknownMessageResponse_tokens *val);
  644. static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens(PH225NonStandardMessage_tokens *val);
  645. static void ASN1CALL ASN1Free_InfoRequestNak_tokens(PInfoRequestNak_tokens *val);
  646. static void ASN1CALL ASN1Free_InfoRequestAck_tokens(PInfoRequestAck_tokens *val);
  647. static void ASN1CALL ASN1Free_InfoRequestResponse_tokens(PInfoRequestResponse_tokens *val);
  648. static void ASN1CALL ASN1Free_InfoRequest_tokens(PInfoRequest_tokens *val);
  649. static void ASN1CALL ASN1Free_DisengageReject_tokens(PDisengageReject_tokens *val);
  650. static void ASN1CALL ASN1Free_DisengageConfirm_tokens(PDisengageConfirm_tokens *val);
  651. static void ASN1CALL ASN1Free_DisengageRequest_tokens(PDisengageRequest_tokens *val);
  652. static void ASN1CALL ASN1Free_LocationReject_tokens(PLocationReject_tokens *val);
  653. static void ASN1CALL ASN1Free_LocationConfirm_tokens(PLocationConfirm_tokens *val);
  654. static void ASN1CALL ASN1Free_LocationRequest_tokens(PLocationRequest_tokens *val);
  655. static void ASN1CALL ASN1Free_BandwidthReject_tokens(PBandwidthReject_tokens *val);
  656. static void ASN1CALL ASN1Free_BandwidthConfirm_tokens(PBandwidthConfirm_tokens *val);
  657. static void ASN1CALL ASN1Free_BandwidthRequest_tokens(PBandwidthRequest_tokens *val);
  658. static void ASN1CALL ASN1Free_AdmissionReject_tokens(PAdmissionReject_tokens *val);
  659. static void ASN1CALL ASN1Free_AdmissionConfirm_tokens(PAdmissionConfirm_tokens *val);
  660. static void ASN1CALL ASN1Free_AdmissionRequest_tokens(PAdmissionRequest_tokens *val);
  661. static void ASN1CALL ASN1Free_UnregistrationReject_tokens(PUnregistrationReject_tokens *val);
  662. static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens(PUnregistrationConfirm_tokens *val);
  663. static void ASN1CALL ASN1Free_UnregistrationRequest_tokens(PUnregistrationRequest_tokens *val);
  664. static void ASN1CALL ASN1Free_RegistrationReject_tokens(PRegistrationReject_tokens *val);
  665. static void ASN1CALL ASN1Free_RegistrationConfirm_tokens(PRegistrationConfirm_tokens *val);
  666. static void ASN1CALL ASN1Free_RegistrationRequest_tokens(PRegistrationRequest_tokens *val);
  667. static void ASN1CALL ASN1Free_GatekeeperReject_tokens(PGatekeeperReject_tokens *val);
  668. static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens(PGatekeeperConfirm_tokens *val);
  669. static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability(PGatekeeperRequest_authenticationCapability *val);
  670. static void ASN1CALL ASN1Free_GatekeeperRequest_tokens(PGatekeeperRequest_tokens *val);
  671. static void ASN1CALL ASN1Free_Endpoint_tokens(PEndpoint_tokens *val);
  672. static void ASN1CALL ASN1Free_Progress_UUIE_tokens(PProgress_UUIE_tokens *val);
  673. static void ASN1CALL ASN1Free_Facility_UUIE_tokens(PFacility_UUIE_tokens *val);
  674. static void ASN1CALL ASN1Free_Setup_UUIE_tokens(PSetup_UUIE_tokens *val);
  675. static void ASN1CALL ASN1Free_Connect_UUIE_tokens(PConnect_UUIE_tokens *val);
  676. static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens(PCallProceeding_UUIE_tokens *val);
  677. static void ASN1CALL ASN1Free_Alerting_UUIE_tokens(PAlerting_UUIE_tokens *val);
  678. static void ASN1CALL ASN1Free_SIGNED_EncodedGeneralToken(SIGNED_EncodedGeneralToken *val);
  679. static void ASN1CALL ASN1Free_ENCRYPTED(ENCRYPTED *val);
  680. static void ASN1CALL ASN1Free_HASHED(HASHED *val);
  681. static void ASN1CALL ASN1Free_SIGNED_EncodedPwdCertToken(SIGNED_EncodedPwdCertToken *val);
  682. static void ASN1CALL ASN1Free_Information_UUIE(Information_UUIE *val);
  683. static void ASN1CALL ASN1Free_ReleaseComplete_UUIE(ReleaseComplete_UUIE *val);
  684. static void ASN1CALL ASN1Free_VendorIdentifier(VendorIdentifier *val);
  685. static void ASN1CALL ASN1Free_H225NonStandardParameter(H225NonStandardParameter *val);
  686. static void ASN1CALL ASN1Free_PublicPartyNumber(PublicPartyNumber *val);
  687. static void ASN1CALL ASN1Free_PrivatePartyNumber(PrivatePartyNumber *val);
  688. static void ASN1CALL ASN1Free_SecurityServiceMode(SecurityServiceMode *val);
  689. static void ASN1CALL ASN1Free_SecurityCapabilities(SecurityCapabilities *val);
  690. static void ASN1CALL ASN1Free_H245Security(H245Security *val);
  691. static void ASN1CALL ASN1Free_EncryptIntAlg(EncryptIntAlg *val);
  692. static void ASN1CALL ASN1Free_NonIsoIntegrityMechanism(NonIsoIntegrityMechanism *val);
  693. static void ASN1CALL ASN1Free_IntegrityMechanism(IntegrityMechanism *val);
  694. static void ASN1CALL ASN1Free_FastStartToken(FastStartToken *val);
  695. static void ASN1CALL ASN1Free_EncodedFastStartToken(EncodedFastStartToken *val);
  696. static void ASN1CALL ASN1Free_DataRate(DataRate *val);
  697. static void ASN1CALL ASN1Free_GatekeeperReject(GatekeeperReject *val);
  698. static void ASN1CALL ASN1Free_RegistrationConfirm(RegistrationConfirm *val);
  699. static void ASN1CALL ASN1Free_RegistrationReject(RegistrationReject *val);
  700. static void ASN1CALL ASN1Free_UnregistrationRequest(UnregistrationRequest *val);
  701. static void ASN1CALL ASN1Free_UnregistrationConfirm(UnregistrationConfirm *val);
  702. static void ASN1CALL ASN1Free_UnregistrationReject(UnregistrationReject *val);
  703. static void ASN1CALL ASN1Free_AdmissionReject(AdmissionReject *val);
  704. static void ASN1CALL ASN1Free_BandwidthRequest(BandwidthRequest *val);
  705. static void ASN1CALL ASN1Free_BandwidthConfirm(BandwidthConfirm *val);
  706. static void ASN1CALL ASN1Free_BandwidthReject(BandwidthReject *val);
  707. static void ASN1CALL ASN1Free_LocationReject(LocationReject *val);
  708. static void ASN1CALL ASN1Free_DisengageRequest(DisengageRequest *val);
  709. static void ASN1CALL ASN1Free_DisengageConfirm(DisengageConfirm *val);
  710. static void ASN1CALL ASN1Free_DisengageReject(DisengageReject *val);
  711. static void ASN1CALL ASN1Free_InfoRequestAck(InfoRequestAck *val);
  712. static void ASN1CALL ASN1Free_InfoRequestNak(InfoRequestNak *val);
  713. static void ASN1CALL ASN1Free_H225NonStandardMessage(H225NonStandardMessage *val);
  714. static void ASN1CALL ASN1Free_RequestInProgress(RequestInProgress *val);
  715. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate(ResourcesAvailableIndicate *val);
  716. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm(ResourcesAvailableConfirm *val);
  717. static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity(PGatekeeperConfirm_integrity *val);
  718. static void ASN1CALL ASN1Free_GatekeeperRequest_integrity(PGatekeeperRequest_integrity *val);
  719. static void ASN1CALL ASN1Free_CryptoH323Token_cryptoGKPwdHash(CryptoH323Token_cryptoGKPwdHash *val);
  720. static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported(PNonStandardProtocol_dataRatesSupported *val);
  721. static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported(PT120OnlyCaps_dataRatesSupported *val);
  722. static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported(PVoiceCaps_dataRatesSupported *val);
  723. static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported(PH324Caps_dataRatesSupported *val);
  724. static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported(PH323Caps_dataRatesSupported *val);
  725. static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported(PH322Caps_dataRatesSupported *val);
  726. static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported(PH321Caps_dataRatesSupported *val);
  727. static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported(PH320Caps_dataRatesSupported *val);
  728. static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported(PH310Caps_dataRatesSupported *val);
  729. static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability(PSetup_UUIE_h245SecurityCapability *val);
  730. static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl(PH323_UU_PDU_nonStandardControl *val);
  731. static void ASN1CALL ASN1Free_CryptoToken_cryptoHashedToken(CryptoToken_cryptoHashedToken *val);
  732. static void ASN1CALL ASN1Free_CryptoToken_cryptoSignedToken(CryptoToken_cryptoSignedToken *val);
  733. static void ASN1CALL ASN1Free_CryptoToken_cryptoEncryptedToken(CryptoToken_cryptoEncryptedToken *val);
  734. static void ASN1CALL ASN1Free_CryptoToken(CryptoToken *val);
  735. static void ASN1CALL ASN1Free_SIGNED_EncodedFastStartToken(SIGNED_EncodedFastStartToken *val);
  736. static void ASN1CALL ASN1Free_TransportAddress(TransportAddress *val);
  737. static void ASN1CALL ASN1Free_GatewayInfo(GatewayInfo *val);
  738. static void ASN1CALL ASN1Free_H310Caps(H310Caps *val);
  739. static void ASN1CALL ASN1Free_H320Caps(H320Caps *val);
  740. static void ASN1CALL ASN1Free_H321Caps(H321Caps *val);
  741. static void ASN1CALL ASN1Free_H322Caps(H322Caps *val);
  742. static void ASN1CALL ASN1Free_H323Caps(H323Caps *val);
  743. static void ASN1CALL ASN1Free_H324Caps(H324Caps *val);
  744. static void ASN1CALL ASN1Free_VoiceCaps(VoiceCaps *val);
  745. static void ASN1CALL ASN1Free_T120OnlyCaps(T120OnlyCaps *val);
  746. static void ASN1CALL ASN1Free_NonStandardProtocol(NonStandardProtocol *val);
  747. static void ASN1CALL ASN1Free_McuInfo(McuInfo *val);
  748. static void ASN1CALL ASN1Free_TerminalInfo(TerminalInfo *val);
  749. static void ASN1CALL ASN1Free_GatekeeperInfo(GatekeeperInfo *val);
  750. static void ASN1CALL ASN1Free_PartyNumber(PartyNumber *val);
  751. static void ASN1CALL ASN1Free_AlternateGK(AlternateGK *val);
  752. static void ASN1CALL ASN1Free_GatekeeperConfirm(GatekeeperConfirm *val);
  753. static void ASN1CALL ASN1Free_AdmissionRequest(AdmissionRequest *val);
  754. static void ASN1CALL ASN1Free_LocationRequest(LocationRequest *val);
  755. static void ASN1CALL ASN1Free_InfoRequest(InfoRequest *val);
  756. static void ASN1CALL ASN1Free_TransportChannelInfo(TransportChannelInfo *val);
  757. static void ASN1CALL ASN1Free_RTPSession(RTPSession *val);
  758. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(PInfoRequestResponse_perCallInfo_Seq_data *val);
  759. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(PInfoRequestResponse_perCallInfo_Seq_video *val);
  760. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(PInfoRequestResponse_perCallInfo_Seq_audio *val);
  761. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq(InfoRequestResponse_perCallInfo_Seq *val);
  762. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo(PInfoRequestResponse_perCallInfo *val);
  763. static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress(PInfoRequestResponse_callSignalAddress *val);
  764. static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress(PAdmissionReject_callSignalAddress *val);
  765. static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress(PUnregistrationRequest_callSignalAddress *val);
  766. static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper(PRegistrationConfirm_alternateGatekeeper *val);
  767. static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress(PRegistrationConfirm_callSignalAddress *val);
  768. static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress(PRegistrationRequest_rasAddress *val);
  769. static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress(PRegistrationRequest_callSignalAddress *val);
  770. static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper(PGatekeeperConfirm_alternateGatekeeper *val);
  771. static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper(PAltGKInfo_alternateGatekeeper *val);
  772. static void ASN1CALL ASN1Free_Endpoint_rasAddress(PEndpoint_rasAddress *val);
  773. static void ASN1CALL ASN1Free_Endpoint_callSignalAddress(PEndpoint_callSignalAddress *val);
  774. static void ASN1CALL ASN1Free_EndpointType(EndpointType *val);
  775. static void ASN1CALL ASN1Free_SupportedProtocols(SupportedProtocols *val);
  776. static void ASN1CALL ASN1Free_AliasAddress(AliasAddress *val);
  777. static void ASN1CALL ASN1Free_Endpoint(Endpoint *val);
  778. static void ASN1CALL ASN1Free_SupportedPrefix(SupportedPrefix *val);
  779. static void ASN1CALL ASN1Free_GatekeeperRequest(GatekeeperRequest *val);
  780. static void ASN1CALL ASN1Free_RegistrationRequest(RegistrationRequest *val);
  781. static void ASN1CALL ASN1Free_AdmissionConfirm(AdmissionConfirm *val);
  782. static void ASN1CALL ASN1Free_LocationConfirm(LocationConfirm *val);
  783. static void ASN1CALL ASN1Free_InfoRequestResponse(InfoRequestResponse *val);
  784. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols(PResourcesAvailableIndicate_protocols *val);
  785. static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias(PInfoRequestResponse_endpointAlias *val);
  786. static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints(PLocationConfirm_alternateEndpoints *val);
  787. static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress(PLocationConfirm_remoteExtensionAddress *val);
  788. static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo(PLocationConfirm_destExtraCallInfo *val);
  789. static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo(PLocationConfirm_destinationInfo *val);
  790. static void ASN1CALL ASN1Free_LocationRequest_sourceInfo(PLocationRequest_sourceInfo *val);
  791. static void ASN1CALL ASN1Free_LocationRequest_destinationInfo(PLocationRequest_destinationInfo *val);
  792. static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints(PAdmissionConfirm_alternateEndpoints *val);
  793. static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress(PAdmissionConfirm_remoteExtensionAddress *val);
  794. static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo(PAdmissionConfirm_destExtraCallInfo *val);
  795. static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo(PAdmissionConfirm_destinationInfo *val);
  796. static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives(PAdmissionRequest_destAlternatives *val);
  797. static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives(PAdmissionRequest_srcAlternatives *val);
  798. static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo(PAdmissionRequest_srcInfo *val);
  799. static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo(PAdmissionRequest_destExtraCallInfo *val);
  800. static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo(PAdmissionRequest_destinationInfo *val);
  801. static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints(PUnregistrationRequest_alternateEndpoints *val);
  802. static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias(PUnregistrationRequest_endpointAlias *val);
  803. static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias(PRegistrationRejectReason_duplicateAlias *val);
  804. static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias(PRegistrationConfirm_terminalAlias *val);
  805. static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints(PRegistrationRequest_alternateEndpoints *val);
  806. static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias(PRegistrationRequest_terminalAlias *val);
  807. static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints(PGatekeeperRequest_alternateEndpoints *val);
  808. static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias(PGatekeeperRequest_endpointAlias *val);
  809. static void ASN1CALL ASN1Free_CryptoH323Token_cryptoEPPwdHash(CryptoH323Token_cryptoEPPwdHash *val);
  810. static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo(PEndpoint_destExtraCallInfo *val);
  811. static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress(PEndpoint_remoteExtensionAddress *val);
  812. static void ASN1CALL ASN1Free_Endpoint_aliasAddress(PEndpoint_aliasAddress *val);
  813. static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes(PNonStandardProtocol_supportedPrefixes *val);
  814. static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes(PT120OnlyCaps_supportedPrefixes *val);
  815. static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes(PVoiceCaps_supportedPrefixes *val);
  816. static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes(PH324Caps_supportedPrefixes *val);
  817. static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes(PH323Caps_supportedPrefixes *val);
  818. static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes(PH322Caps_supportedPrefixes *val);
  819. static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes(PH321Caps_supportedPrefixes *val);
  820. static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes(PH320Caps_supportedPrefixes *val);
  821. static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes(PH310Caps_supportedPrefixes *val);
  822. static void ASN1CALL ASN1Free_GatewayInfo_protocol(PGatewayInfo_protocol *val);
  823. static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo(PFacility_UUIE_destExtraCallInfo *val);
  824. static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress(PFacility_UUIE_alternativeAliasAddress *val);
  825. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo(PSetup_UUIE_destExtraCallInfo *val);
  826. static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress(PSetup_UUIE_destinationAddress *val);
  827. static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress(PSetup_UUIE_sourceAddress *val);
  828. static void ASN1CALL ASN1Free_Alerting_UUIE(Alerting_UUIE *val);
  829. static void ASN1CALL ASN1Free_CallProceeding_UUIE(CallProceeding_UUIE *val);
  830. static void ASN1CALL ASN1Free_Connect_UUIE(Connect_UUIE *val);
  831. static void ASN1CALL ASN1Free_Setup_UUIE(Setup_UUIE *val);
  832. static void ASN1CALL ASN1Free_Facility_UUIE(Facility_UUIE *val);
  833. static void ASN1CALL ASN1Free_ConferenceList(ConferenceList *val);
  834. static void ASN1CALL ASN1Free_Progress_UUIE(Progress_UUIE *val);
  835. static void ASN1CALL ASN1Free_CryptoH323Token(CryptoH323Token *val);
  836. static void ASN1CALL ASN1Free_RasMessage(RasMessage *val);
  837. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val);
  838. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens(PResourcesAvailableConfirm_cryptoTokens *val);
  839. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens(PResourcesAvailableIndicate_cryptoTokens *val);
  840. static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens(PRequestInProgress_cryptoTokens *val);
  841. static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens(PUnknownMessageResponse_cryptoTokens *val);
  842. static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens(PH225NonStandardMessage_cryptoTokens *val);
  843. static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens(PInfoRequestNak_cryptoTokens *val);
  844. static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens(PInfoRequestAck_cryptoTokens *val);
  845. static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens(PInfoRequestResponse_cryptoTokens *val);
  846. static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens(PInfoRequest_cryptoTokens *val);
  847. static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens(PDisengageReject_cryptoTokens *val);
  848. static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens(PDisengageConfirm_cryptoTokens *val);
  849. static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens(PDisengageRequest_cryptoTokens *val);
  850. static void ASN1CALL ASN1Free_LocationReject_cryptoTokens(PLocationReject_cryptoTokens *val);
  851. static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens(PLocationConfirm_cryptoTokens *val);
  852. static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens(PLocationRequest_cryptoTokens *val);
  853. static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens(PBandwidthReject_cryptoTokens *val);
  854. static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens(PBandwidthConfirm_cryptoTokens *val);
  855. static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens(PBandwidthRequest_cryptoTokens *val);
  856. static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens(PAdmissionReject_cryptoTokens *val);
  857. static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens(PAdmissionConfirm_cryptoTokens *val);
  858. static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens(PAdmissionRequest_cryptoTokens *val);
  859. static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens(PUnregistrationReject_cryptoTokens *val);
  860. static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens(PUnregistrationConfirm_cryptoTokens *val);
  861. static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens(PUnregistrationRequest_cryptoTokens *val);
  862. static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens(PRegistrationReject_cryptoTokens *val);
  863. static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens(PRegistrationConfirm_cryptoTokens *val);
  864. static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens(PRegistrationRequest_cryptoTokens *val);
  865. static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens(PGatekeeperReject_cryptoTokens *val);
  866. static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens(PGatekeeperConfirm_cryptoTokens *val);
  867. static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens(PGatekeeperRequest_cryptoTokens *val);
  868. static void ASN1CALL ASN1Free_Endpoint_cryptoTokens(PEndpoint_cryptoTokens *val);
  869. static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens(PProgress_UUIE_cryptoTokens *val);
  870. static void ASN1CALL ASN1Free_Facility_UUIE_conferences(PFacility_UUIE_conferences *val);
  871. static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens(PFacility_UUIE_cryptoTokens *val);
  872. static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens(PSetup_UUIE_cryptoTokens *val);
  873. static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens(PConnect_UUIE_cryptoTokens *val);
  874. static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens(PCallProceeding_UUIE_cryptoTokens *val);
  875. static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens(PAlerting_UUIE_cryptoTokens *val);
  876. static void ASN1CALL ASN1Free_H323_UU_PDU_h323_message_body(H323_UU_PDU_h323_message_body *val);
  877. static void ASN1CALL ASN1Free_H323_UU_PDU(H323_UU_PDU *val);
  878. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val);
  879. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(PInfoRequestResponse_perCallInfo_Seq_pdu *val);
  880. static void ASN1CALL ASN1Free_H323_UserInformation(H323_UserInformation *val);
  881. typedef ASN1PerEncFun_t ASN1EncFun_t;
  882. static const ASN1EncFun_t encfntab[2] = {
  883. (ASN1EncFun_t) ASN1Enc_RasMessage,
  884. (ASN1EncFun_t) ASN1Enc_H323_UserInformation,
  885. };
  886. typedef ASN1PerDecFun_t ASN1DecFun_t;
  887. static const ASN1DecFun_t decfntab[2] = {
  888. (ASN1DecFun_t) ASN1Dec_RasMessage,
  889. (ASN1DecFun_t) ASN1Dec_H323_UserInformation,
  890. };
  891. static const ASN1FreeFun_t freefntab[2] = {
  892. (ASN1FreeFun_t) ASN1Free_RasMessage,
  893. (ASN1FreeFun_t) ASN1Free_H323_UserInformation,
  894. };
  895. static const ULONG sizetab[2] = {
  896. SIZE_H225ASN_Module_PDU_0,
  897. SIZE_H225ASN_Module_PDU_1,
  898. };
  899. /* forward declarations of values: */
  900. /* definitions of value components: */
  901. /* definitions of values: */
  902. void ASN1CALL H225ASN_Module_Startup(void)
  903. {
  904. H225ASN_Module = ASN1_CreateModule(0x10000, ASN1_PER_RULE_ALIGNED, ASN1FLAGS_NONE, 2, (const ASN1GenericFun_t *) encfntab, (const ASN1GenericFun_t *) decfntab, freefntab, sizetab, 0x35323268);
  905. }
  906. void ASN1CALL H225ASN_Module_Cleanup(void)
  907. {
  908. ASN1_CloseModule(H225ASN_Module);
  909. H225ASN_Module = NULL;
  910. }
  911. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val)
  912. {
  913. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn);
  914. }
  915. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs val)
  916. {
  917. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &val->value, 16))
  918. return 0;
  919. return 1;
  920. }
  921. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val)
  922. {
  923. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn, sizeof(**val));
  924. }
  925. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs val)
  926. {
  927. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &val->value, 16))
  928. return 0;
  929. return 1;
  930. }
  931. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val)
  932. {
  933. if (val) {
  934. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn);
  935. }
  936. }
  937. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn(PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs val)
  938. {
  939. if (val) {
  940. }
  941. }
  942. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_routing(ASN1encoding_t enc, TransportAddress_ipSourceRoute_routing *val)
  943. {
  944. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  945. return 0;
  946. return 1;
  947. }
  948. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_routing(ASN1decoding_t dec, TransportAddress_ipSourceRoute_routing *val)
  949. {
  950. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  951. return 0;
  952. return 1;
  953. }
  954. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_route(ASN1encoding_t enc, PTransportAddress_ipSourceRoute_route *val)
  955. {
  956. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_TransportAddress_ipSourceRoute_route_ElmFn);
  957. }
  958. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_route_ElmFn(ASN1encoding_t enc, PTransportAddress_ipSourceRoute_route val)
  959. {
  960. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &val->value, 4))
  961. return 0;
  962. return 1;
  963. }
  964. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_route(ASN1decoding_t dec, PTransportAddress_ipSourceRoute_route *val)
  965. {
  966. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_TransportAddress_ipSourceRoute_route_ElmFn, sizeof(**val));
  967. }
  968. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_route_ElmFn(ASN1decoding_t dec, PTransportAddress_ipSourceRoute_route val)
  969. {
  970. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &val->value, 4))
  971. return 0;
  972. return 1;
  973. }
  974. static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute_route(PTransportAddress_ipSourceRoute_route *val)
  975. {
  976. if (val) {
  977. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_TransportAddress_ipSourceRoute_route_ElmFn);
  978. }
  979. }
  980. static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute_route_ElmFn(PTransportAddress_ipSourceRoute_route val)
  981. {
  982. if (val) {
  983. }
  984. }
  985. static int ASN1CALL ASN1Enc_RTPSession_associatedSessionIds(ASN1encoding_t enc, PRTPSession_associatedSessionIds *val)
  986. {
  987. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RTPSession_associatedSessionIds_ElmFn);
  988. }
  989. static int ASN1CALL ASN1Enc_RTPSession_associatedSessionIds_ElmFn(ASN1encoding_t enc, PRTPSession_associatedSessionIds val)
  990. {
  991. if (!ASN1PEREncBitVal(enc, 8, val->value - 1))
  992. return 0;
  993. return 1;
  994. }
  995. static int ASN1CALL ASN1Dec_RTPSession_associatedSessionIds(ASN1decoding_t dec, PRTPSession_associatedSessionIds *val)
  996. {
  997. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RTPSession_associatedSessionIds_ElmFn, sizeof(**val));
  998. }
  999. static int ASN1CALL ASN1Dec_RTPSession_associatedSessionIds_ElmFn(ASN1decoding_t dec, PRTPSession_associatedSessionIds val)
  1000. {
  1001. if (!ASN1PERDecU16Val(dec, 8, &val->value))
  1002. return 0;
  1003. val->value += 1;
  1004. return 1;
  1005. }
  1006. static void ASN1CALL ASN1Free_RTPSession_associatedSessionIds(PRTPSession_associatedSessionIds *val)
  1007. {
  1008. if (val) {
  1009. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RTPSession_associatedSessionIds_ElmFn);
  1010. }
  1011. }
  1012. static void ASN1CALL ASN1Free_RTPSession_associatedSessionIds_ElmFn(PRTPSession_associatedSessionIds val)
  1013. {
  1014. if (val) {
  1015. }
  1016. }
  1017. static int ASN1CALL ASN1Enc_RegistrationConfirm_preGrantedARQ(ASN1encoding_t enc, RegistrationConfirm_preGrantedARQ *val)
  1018. {
  1019. if (!ASN1PEREncExtensionBitClear(enc))
  1020. return 0;
  1021. if (!ASN1PEREncBoolean(enc, (val)->makeCall))
  1022. return 0;
  1023. if (!ASN1PEREncBoolean(enc, (val)->useGKCallSignalAddressToMakeCall))
  1024. return 0;
  1025. if (!ASN1PEREncBoolean(enc, (val)->answerCall))
  1026. return 0;
  1027. if (!ASN1PEREncBoolean(enc, (val)->useGKCallSignalAddressToAnswer))
  1028. return 0;
  1029. return 1;
  1030. }
  1031. static int ASN1CALL ASN1Dec_RegistrationConfirm_preGrantedARQ(ASN1decoding_t dec, RegistrationConfirm_preGrantedARQ *val)
  1032. {
  1033. ASN1uint32_t y;
  1034. if (!ASN1PERDecExtensionBit(dec, &y))
  1035. return 0;
  1036. if (!ASN1PERDecBoolean(dec, &(val)->makeCall))
  1037. return 0;
  1038. if (!ASN1PERDecBoolean(dec, &(val)->useGKCallSignalAddressToMakeCall))
  1039. return 0;
  1040. if (!ASN1PERDecBoolean(dec, &(val)->answerCall))
  1041. return 0;
  1042. if (!ASN1PERDecBoolean(dec, &(val)->useGKCallSignalAddressToAnswer))
  1043. return 0;
  1044. if (y) {
  1045. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1046. return 0;
  1047. }
  1048. return 1;
  1049. }
  1050. static int ASN1CALL ASN1Enc_GatekeeperRequest_algorithmOIDs(ASN1encoding_t enc, PGatekeeperRequest_algorithmOIDs *val)
  1051. {
  1052. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_algorithmOIDs_ElmFn);
  1053. }
  1054. static int ASN1CALL ASN1Enc_GatekeeperRequest_algorithmOIDs_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_algorithmOIDs val)
  1055. {
  1056. if (!ASN1PEREncObjectIdentifier(enc, &val->value))
  1057. return 0;
  1058. return 1;
  1059. }
  1060. static int ASN1CALL ASN1Dec_GatekeeperRequest_algorithmOIDs(ASN1decoding_t dec, PGatekeeperRequest_algorithmOIDs *val)
  1061. {
  1062. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_algorithmOIDs_ElmFn, sizeof(**val));
  1063. }
  1064. static int ASN1CALL ASN1Dec_GatekeeperRequest_algorithmOIDs_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_algorithmOIDs val)
  1065. {
  1066. if (!ASN1PERDecObjectIdentifier(dec, &val->value))
  1067. return 0;
  1068. return 1;
  1069. }
  1070. static void ASN1CALL ASN1Free_GatekeeperRequest_algorithmOIDs(PGatekeeperRequest_algorithmOIDs *val)
  1071. {
  1072. if (val) {
  1073. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_algorithmOIDs_ElmFn);
  1074. }
  1075. }
  1076. static void ASN1CALL ASN1Free_GatekeeperRequest_algorithmOIDs_ElmFn(PGatekeeperRequest_algorithmOIDs val)
  1077. {
  1078. if (val) {
  1079. ASN1objectidentifier_free(&val->value);
  1080. }
  1081. }
  1082. static int ASN1CALL ASN1Enc_TransportAddress_ip6Address(ASN1encoding_t enc, TransportAddress_ip6Address *val)
  1083. {
  1084. if (!ASN1PEREncExtensionBitClear(enc))
  1085. return 0;
  1086. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->ip, 16))
  1087. return 0;
  1088. if (!ASN1PEREncUnsignedShort(enc, (val)->port))
  1089. return 0;
  1090. return 1;
  1091. }
  1092. static int ASN1CALL ASN1Dec_TransportAddress_ip6Address(ASN1decoding_t dec, TransportAddress_ip6Address *val)
  1093. {
  1094. ASN1uint32_t y;
  1095. if (!ASN1PERDecExtensionBit(dec, &y))
  1096. return 0;
  1097. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->ip, 16))
  1098. return 0;
  1099. if (!ASN1PERDecUnsignedShort(dec, &(val)->port))
  1100. return 0;
  1101. if (y) {
  1102. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1103. return 0;
  1104. }
  1105. return 1;
  1106. }
  1107. static void ASN1CALL ASN1Free_TransportAddress_ip6Address(TransportAddress_ip6Address *val)
  1108. {
  1109. if (val) {
  1110. }
  1111. }
  1112. static int ASN1CALL ASN1Enc_TransportAddress_ipxAddress(ASN1encoding_t enc, TransportAddress_ipxAddress *val)
  1113. {
  1114. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->node, 6))
  1115. return 0;
  1116. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->netnum, 4))
  1117. return 0;
  1118. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->port, 2))
  1119. return 0;
  1120. return 1;
  1121. }
  1122. static int ASN1CALL ASN1Dec_TransportAddress_ipxAddress(ASN1decoding_t dec, TransportAddress_ipxAddress *val)
  1123. {
  1124. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->node, 6))
  1125. return 0;
  1126. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->netnum, 4))
  1127. return 0;
  1128. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->port, 2))
  1129. return 0;
  1130. return 1;
  1131. }
  1132. static void ASN1CALL ASN1Free_TransportAddress_ipxAddress(TransportAddress_ipxAddress *val)
  1133. {
  1134. if (val) {
  1135. }
  1136. }
  1137. static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute(ASN1encoding_t enc, TransportAddress_ipSourceRoute *val)
  1138. {
  1139. if (!ASN1PEREncExtensionBitClear(enc))
  1140. return 0;
  1141. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->ip, 4))
  1142. return 0;
  1143. if (!ASN1PEREncUnsignedShort(enc, (val)->port))
  1144. return 0;
  1145. if (!ASN1Enc_TransportAddress_ipSourceRoute_route(enc, &(val)->route))
  1146. return 0;
  1147. if (!ASN1Enc_TransportAddress_ipSourceRoute_routing(enc, &(val)->routing))
  1148. return 0;
  1149. return 1;
  1150. }
  1151. static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute(ASN1decoding_t dec, TransportAddress_ipSourceRoute *val)
  1152. {
  1153. ASN1uint32_t y;
  1154. if (!ASN1PERDecExtensionBit(dec, &y))
  1155. return 0;
  1156. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->ip, 4))
  1157. return 0;
  1158. if (!ASN1PERDecUnsignedShort(dec, &(val)->port))
  1159. return 0;
  1160. if (!ASN1Dec_TransportAddress_ipSourceRoute_route(dec, &(val)->route))
  1161. return 0;
  1162. if (!ASN1Dec_TransportAddress_ipSourceRoute_routing(dec, &(val)->routing))
  1163. return 0;
  1164. if (y) {
  1165. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1166. return 0;
  1167. }
  1168. return 1;
  1169. }
  1170. static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute(TransportAddress_ipSourceRoute *val)
  1171. {
  1172. if (val) {
  1173. ASN1Free_TransportAddress_ipSourceRoute_route(&(val)->route);
  1174. }
  1175. }
  1176. static int ASN1CALL ASN1Enc_TransportAddress_ipAddress(ASN1encoding_t enc, TransportAddress_ipAddress *val)
  1177. {
  1178. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->ip, 4))
  1179. return 0;
  1180. if (!ASN1PEREncUnsignedShort(enc, (val)->port))
  1181. return 0;
  1182. return 1;
  1183. }
  1184. static int ASN1CALL ASN1Dec_TransportAddress_ipAddress(ASN1decoding_t dec, TransportAddress_ipAddress *val)
  1185. {
  1186. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->ip, 4))
  1187. return 0;
  1188. if (!ASN1PERDecUnsignedShort(dec, &(val)->port))
  1189. return 0;
  1190. return 1;
  1191. }
  1192. static void ASN1CALL ASN1Free_TransportAddress_ipAddress(TransportAddress_ipAddress *val)
  1193. {
  1194. if (val) {
  1195. }
  1196. }
  1197. static int ASN1CALL ASN1Enc_Progress_UUIE_fastStart(ASN1encoding_t enc, PProgress_UUIE_fastStart *val)
  1198. {
  1199. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_fastStart_ElmFn);
  1200. }
  1201. static int ASN1CALL ASN1Enc_Progress_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PProgress_UUIE_fastStart val)
  1202. {
  1203. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1204. return 0;
  1205. return 1;
  1206. }
  1207. static int ASN1CALL ASN1Dec_Progress_UUIE_fastStart(ASN1decoding_t dec, PProgress_UUIE_fastStart *val)
  1208. {
  1209. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_fastStart_ElmFn, sizeof(**val));
  1210. }
  1211. static int ASN1CALL ASN1Dec_Progress_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PProgress_UUIE_fastStart val)
  1212. {
  1213. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1214. return 0;
  1215. return 1;
  1216. }
  1217. static void ASN1CALL ASN1Free_Progress_UUIE_fastStart(PProgress_UUIE_fastStart *val)
  1218. {
  1219. if (val) {
  1220. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_fastStart_ElmFn);
  1221. }
  1222. }
  1223. static void ASN1CALL ASN1Free_Progress_UUIE_fastStart_ElmFn(PProgress_UUIE_fastStart val)
  1224. {
  1225. if (val) {
  1226. ASN1octetstring_free(&val->value);
  1227. }
  1228. }
  1229. static int ASN1CALL ASN1Enc_Facility_UUIE_fastStart(ASN1encoding_t enc, PFacility_UUIE_fastStart *val)
  1230. {
  1231. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_fastStart_ElmFn);
  1232. }
  1233. static int ASN1CALL ASN1Enc_Facility_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PFacility_UUIE_fastStart val)
  1234. {
  1235. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1236. return 0;
  1237. return 1;
  1238. }
  1239. static int ASN1CALL ASN1Dec_Facility_UUIE_fastStart(ASN1decoding_t dec, PFacility_UUIE_fastStart *val)
  1240. {
  1241. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_fastStart_ElmFn, sizeof(**val));
  1242. }
  1243. static int ASN1CALL ASN1Dec_Facility_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PFacility_UUIE_fastStart val)
  1244. {
  1245. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1246. return 0;
  1247. return 1;
  1248. }
  1249. static void ASN1CALL ASN1Free_Facility_UUIE_fastStart(PFacility_UUIE_fastStart *val)
  1250. {
  1251. if (val) {
  1252. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_fastStart_ElmFn);
  1253. }
  1254. }
  1255. static void ASN1CALL ASN1Free_Facility_UUIE_fastStart_ElmFn(PFacility_UUIE_fastStart val)
  1256. {
  1257. if (val) {
  1258. ASN1octetstring_free(&val->value);
  1259. }
  1260. }
  1261. static int ASN1CALL ASN1Enc_Setup_UUIE_fastStart(ASN1encoding_t enc, PSetup_UUIE_fastStart *val)
  1262. {
  1263. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_fastStart_ElmFn);
  1264. }
  1265. static int ASN1CALL ASN1Enc_Setup_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PSetup_UUIE_fastStart val)
  1266. {
  1267. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1268. return 0;
  1269. return 1;
  1270. }
  1271. static int ASN1CALL ASN1Dec_Setup_UUIE_fastStart(ASN1decoding_t dec, PSetup_UUIE_fastStart *val)
  1272. {
  1273. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_fastStart_ElmFn, sizeof(**val));
  1274. }
  1275. static int ASN1CALL ASN1Dec_Setup_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PSetup_UUIE_fastStart val)
  1276. {
  1277. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1278. return 0;
  1279. return 1;
  1280. }
  1281. static void ASN1CALL ASN1Free_Setup_UUIE_fastStart(PSetup_UUIE_fastStart *val)
  1282. {
  1283. if (val) {
  1284. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_fastStart_ElmFn);
  1285. }
  1286. }
  1287. static void ASN1CALL ASN1Free_Setup_UUIE_fastStart_ElmFn(PSetup_UUIE_fastStart val)
  1288. {
  1289. if (val) {
  1290. ASN1octetstring_free(&val->value);
  1291. }
  1292. }
  1293. static int ASN1CALL ASN1Enc_Setup_UUIE_conferenceGoal(ASN1encoding_t enc, Setup_UUIE_conferenceGoal *val)
  1294. {
  1295. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
  1296. return 0;
  1297. return 1;
  1298. }
  1299. static int ASN1CALL ASN1Dec_Setup_UUIE_conferenceGoal(ASN1decoding_t dec, Setup_UUIE_conferenceGoal *val)
  1300. {
  1301. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
  1302. return 0;
  1303. return 1;
  1304. }
  1305. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV *val)
  1306. {
  1307. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destExtraCRV_ElmFn);
  1308. }
  1309. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV val)
  1310. {
  1311. if (!ASN1PEREncUnsignedShort(enc, val->value))
  1312. return 0;
  1313. return 1;
  1314. }
  1315. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV *val)
  1316. {
  1317. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destExtraCRV_ElmFn, sizeof(**val));
  1318. }
  1319. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV val)
  1320. {
  1321. if (!ASN1PERDecUnsignedShort(dec, &val->value))
  1322. return 0;
  1323. return 1;
  1324. }
  1325. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV(PSetup_UUIE_destExtraCRV *val)
  1326. {
  1327. if (val) {
  1328. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destExtraCRV_ElmFn);
  1329. }
  1330. }
  1331. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV_ElmFn(PSetup_UUIE_destExtraCRV val)
  1332. {
  1333. if (val) {
  1334. }
  1335. }
  1336. static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart(ASN1encoding_t enc, PConnect_UUIE_fastStart *val)
  1337. {
  1338. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_fastStart_ElmFn);
  1339. }
  1340. static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PConnect_UUIE_fastStart val)
  1341. {
  1342. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1343. return 0;
  1344. return 1;
  1345. }
  1346. static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart(ASN1decoding_t dec, PConnect_UUIE_fastStart *val)
  1347. {
  1348. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_fastStart_ElmFn, sizeof(**val));
  1349. }
  1350. static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PConnect_UUIE_fastStart val)
  1351. {
  1352. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1353. return 0;
  1354. return 1;
  1355. }
  1356. static void ASN1CALL ASN1Free_Connect_UUIE_fastStart(PConnect_UUIE_fastStart *val)
  1357. {
  1358. if (val) {
  1359. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_fastStart_ElmFn);
  1360. }
  1361. }
  1362. static void ASN1CALL ASN1Free_Connect_UUIE_fastStart_ElmFn(PConnect_UUIE_fastStart val)
  1363. {
  1364. if (val) {
  1365. ASN1octetstring_free(&val->value);
  1366. }
  1367. }
  1368. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart *val)
  1369. {
  1370. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_fastStart_ElmFn);
  1371. }
  1372. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart val)
  1373. {
  1374. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1375. return 0;
  1376. return 1;
  1377. }
  1378. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart *val)
  1379. {
  1380. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_fastStart_ElmFn, sizeof(**val));
  1381. }
  1382. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart val)
  1383. {
  1384. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1385. return 0;
  1386. return 1;
  1387. }
  1388. static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart(PCallProceeding_UUIE_fastStart *val)
  1389. {
  1390. if (val) {
  1391. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_fastStart_ElmFn);
  1392. }
  1393. }
  1394. static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart_ElmFn(PCallProceeding_UUIE_fastStart val)
  1395. {
  1396. if (val) {
  1397. ASN1octetstring_free(&val->value);
  1398. }
  1399. }
  1400. static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart(ASN1encoding_t enc, PAlerting_UUIE_fastStart *val)
  1401. {
  1402. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_fastStart_ElmFn);
  1403. }
  1404. static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_fastStart val)
  1405. {
  1406. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1407. return 0;
  1408. return 1;
  1409. }
  1410. static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart(ASN1decoding_t dec, PAlerting_UUIE_fastStart *val)
  1411. {
  1412. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_fastStart_ElmFn, sizeof(**val));
  1413. }
  1414. static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_fastStart val)
  1415. {
  1416. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1417. return 0;
  1418. return 1;
  1419. }
  1420. static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart(PAlerting_UUIE_fastStart *val)
  1421. {
  1422. if (val) {
  1423. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_fastStart_ElmFn);
  1424. }
  1425. }
  1426. static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart_ElmFn(PAlerting_UUIE_fastStart val)
  1427. {
  1428. if (val) {
  1429. ASN1octetstring_free(&val->value);
  1430. }
  1431. }
  1432. static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control(ASN1encoding_t enc, PH323_UU_PDU_h245Control *val)
  1433. {
  1434. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_h245Control_ElmFn);
  1435. }
  1436. static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_h245Control val)
  1437. {
  1438. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1439. return 0;
  1440. return 1;
  1441. }
  1442. static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control(ASN1decoding_t dec, PH323_UU_PDU_h245Control *val)
  1443. {
  1444. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_h245Control_ElmFn, sizeof(**val));
  1445. }
  1446. static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_h245Control val)
  1447. {
  1448. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1449. return 0;
  1450. return 1;
  1451. }
  1452. static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control(PH323_UU_PDU_h245Control *val)
  1453. {
  1454. if (val) {
  1455. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_h245Control_ElmFn);
  1456. }
  1457. }
  1458. static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control_ElmFn(PH323_UU_PDU_h245Control val)
  1459. {
  1460. if (val) {
  1461. ASN1octetstring_free(&val->value);
  1462. }
  1463. }
  1464. static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService *val)
  1465. {
  1466. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_h4501SupplementaryService_ElmFn);
  1467. }
  1468. static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService val)
  1469. {
  1470. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1471. return 0;
  1472. return 1;
  1473. }
  1474. static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService *val)
  1475. {
  1476. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_h4501SupplementaryService_ElmFn, sizeof(**val));
  1477. }
  1478. static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService val)
  1479. {
  1480. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1481. return 0;
  1482. return 1;
  1483. }
  1484. static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService(PH323_UU_PDU_h4501SupplementaryService *val)
  1485. {
  1486. if (val) {
  1487. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_h4501SupplementaryService_ElmFn);
  1488. }
  1489. }
  1490. static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService_ElmFn(PH323_UU_PDU_h4501SupplementaryService val)
  1491. {
  1492. if (val) {
  1493. ASN1octetstring_free(&val->value);
  1494. }
  1495. }
  1496. static int ASN1CALL ASN1Enc_H323_UserInformation_user_data(ASN1encoding_t enc, H323_UserInformation_user_data *val)
  1497. {
  1498. if (!ASN1PEREncExtensionBitClear(enc))
  1499. return 0;
  1500. ASN1PEREncAlignment(enc);
  1501. if (!ASN1PEREncBitVal(enc, 8, (val)->protocol_discriminator))
  1502. return 0;
  1503. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->user_information, 1, 131, 8))
  1504. return 0;
  1505. return 1;
  1506. }
  1507. static int ASN1CALL ASN1Dec_H323_UserInformation_user_data(ASN1decoding_t dec, H323_UserInformation_user_data *val)
  1508. {
  1509. ASN1uint32_t y;
  1510. if (!ASN1PERDecExtensionBit(dec, &y))
  1511. return 0;
  1512. ASN1PERDecAlignment(dec);
  1513. if (!ASN1PERDecU16Val(dec, 8, &(val)->protocol_discriminator))
  1514. return 0;
  1515. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->user_information, 1, 131, 8))
  1516. return 0;
  1517. if (y) {
  1518. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1519. return 0;
  1520. }
  1521. return 1;
  1522. }
  1523. static void ASN1CALL ASN1Free_H323_UserInformation_user_data(H323_UserInformation_user_data *val)
  1524. {
  1525. if (val) {
  1526. }
  1527. }
  1528. static int ASN1CALL ASN1Enc_H235NonStandardParameter(ASN1encoding_t enc, H235NonStandardParameter *val)
  1529. {
  1530. if (!ASN1PEREncObjectIdentifier(enc, &(val)->nonStandardIdentifier))
  1531. return 0;
  1532. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
  1533. return 0;
  1534. return 1;
  1535. }
  1536. static int ASN1CALL ASN1Dec_H235NonStandardParameter(ASN1decoding_t dec, H235NonStandardParameter *val)
  1537. {
  1538. if (!ASN1PERDecObjectIdentifier(dec, &(val)->nonStandardIdentifier))
  1539. return 0;
  1540. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
  1541. return 0;
  1542. return 1;
  1543. }
  1544. static void ASN1CALL ASN1Free_H235NonStandardParameter(H235NonStandardParameter *val)
  1545. {
  1546. if (val) {
  1547. ASN1objectidentifier_free(&(val)->nonStandardIdentifier);
  1548. ASN1octetstring_free(&(val)->data);
  1549. }
  1550. }
  1551. static int ASN1CALL ASN1Enc_DHset(ASN1encoding_t enc, DHset *val)
  1552. {
  1553. if (!ASN1PEREncExtensionBitClear(enc))
  1554. return 0;
  1555. ASN1PEREncAlignment(enc);
  1556. if (!ASN1PEREncBitVal(enc, 16, ((val)->halfkey).length))
  1557. return 0;
  1558. if (!ASN1PEREncBits(enc, ((val)->halfkey).length, ((val)->halfkey).value))
  1559. return 0;
  1560. ASN1PEREncAlignment(enc);
  1561. if (!ASN1PEREncBitVal(enc, 16, ((val)->modSize).length))
  1562. return 0;
  1563. if (!ASN1PEREncBits(enc, ((val)->modSize).length, ((val)->modSize).value))
  1564. return 0;
  1565. ASN1PEREncAlignment(enc);
  1566. if (!ASN1PEREncBitVal(enc, 16, ((val)->generator).length))
  1567. return 0;
  1568. if (!ASN1PEREncBits(enc, ((val)->generator).length, ((val)->generator).value))
  1569. return 0;
  1570. return 1;
  1571. }
  1572. static int ASN1CALL ASN1Dec_DHset(ASN1decoding_t dec, DHset *val)
  1573. {
  1574. ASN1uint32_t y;
  1575. if (!ASN1PERDecExtensionBit(dec, &y))
  1576. return 0;
  1577. ASN1PERDecAlignment(dec);
  1578. if (!ASN1PERDecU32Val(dec, 16, &((val)->halfkey).length))
  1579. return 0;
  1580. if (!ASN1PERDecBits(dec, ((val)->halfkey).length, &((val)->halfkey).value))
  1581. return 0;
  1582. ASN1PERDecAlignment(dec);
  1583. if (!ASN1PERDecU32Val(dec, 16, &((val)->modSize).length))
  1584. return 0;
  1585. if (!ASN1PERDecBits(dec, ((val)->modSize).length, &((val)->modSize).value))
  1586. return 0;
  1587. ASN1PERDecAlignment(dec);
  1588. if (!ASN1PERDecU32Val(dec, 16, &((val)->generator).length))
  1589. return 0;
  1590. if (!ASN1PERDecBits(dec, ((val)->generator).length, &((val)->generator).value))
  1591. return 0;
  1592. if (y) {
  1593. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1594. return 0;
  1595. }
  1596. return 1;
  1597. }
  1598. static void ASN1CALL ASN1Free_DHset(DHset *val)
  1599. {
  1600. if (val) {
  1601. ASN1bitstring_free(&(val)->halfkey);
  1602. ASN1bitstring_free(&(val)->modSize);
  1603. ASN1bitstring_free(&(val)->generator);
  1604. }
  1605. }
  1606. static int ASN1CALL ASN1Enc_TypedCertificate(ASN1encoding_t enc, TypedCertificate *val)
  1607. {
  1608. if (!ASN1PEREncExtensionBitClear(enc))
  1609. return 0;
  1610. if (!ASN1PEREncObjectIdentifier(enc, &(val)->type))
  1611. return 0;
  1612. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->certificate))
  1613. return 0;
  1614. return 1;
  1615. }
  1616. static int ASN1CALL ASN1Dec_TypedCertificate(ASN1decoding_t dec, TypedCertificate *val)
  1617. {
  1618. ASN1uint32_t y;
  1619. if (!ASN1PERDecExtensionBit(dec, &y))
  1620. return 0;
  1621. if (!ASN1PERDecObjectIdentifier(dec, &(val)->type))
  1622. return 0;
  1623. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->certificate))
  1624. return 0;
  1625. if (y) {
  1626. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1627. return 0;
  1628. }
  1629. return 1;
  1630. }
  1631. static void ASN1CALL ASN1Free_TypedCertificate(TypedCertificate *val)
  1632. {
  1633. if (val) {
  1634. ASN1objectidentifier_free(&(val)->type);
  1635. ASN1octetstring_free(&(val)->certificate);
  1636. }
  1637. }
  1638. static int ASN1CALL ASN1Enc_AuthenticationMechanism(ASN1encoding_t enc, AuthenticationMechanism *val)
  1639. {
  1640. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  1641. return 0;
  1642. switch ((val)->choice) {
  1643. case 1:
  1644. break;
  1645. case 2:
  1646. break;
  1647. case 3:
  1648. break;
  1649. case 4:
  1650. break;
  1651. case 5:
  1652. break;
  1653. case 6:
  1654. break;
  1655. case 7:
  1656. if (!ASN1Enc_H235NonStandardParameter(enc, &(val)->u.nonStandard))
  1657. return 0;
  1658. break;
  1659. default:
  1660. /* impossible */
  1661. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  1662. return 0;
  1663. }
  1664. return 1;
  1665. }
  1666. static int ASN1CALL ASN1Dec_AuthenticationMechanism(ASN1decoding_t dec, AuthenticationMechanism *val)
  1667. {
  1668. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  1669. return 0;
  1670. switch ((val)->choice) {
  1671. case 1:
  1672. break;
  1673. case 2:
  1674. break;
  1675. case 3:
  1676. break;
  1677. case 4:
  1678. break;
  1679. case 5:
  1680. break;
  1681. case 6:
  1682. break;
  1683. case 7:
  1684. if (!ASN1Dec_H235NonStandardParameter(dec, &(val)->u.nonStandard))
  1685. return 0;
  1686. break;
  1687. case 0:
  1688. /* extension case */
  1689. if (!ASN1PERDecSkipFragmented(dec, 8))
  1690. return 0;
  1691. break;
  1692. default:
  1693. /* impossible */
  1694. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  1695. return 0;
  1696. }
  1697. return 1;
  1698. }
  1699. static void ASN1CALL ASN1Free_AuthenticationMechanism(AuthenticationMechanism *val)
  1700. {
  1701. if (val) {
  1702. switch ((val)->choice) {
  1703. case 7:
  1704. ASN1Free_H235NonStandardParameter(&(val)->u.nonStandard);
  1705. break;
  1706. }
  1707. }
  1708. }
  1709. static int ASN1CALL ASN1Enc_ClearToken(ASN1encoding_t enc, ClearToken *val)
  1710. {
  1711. ASN1uint32_t l;
  1712. if (!ASN1PEREncExtensionBitClear(enc))
  1713. return 0;
  1714. if (!ASN1PEREncBits(enc, 8, (val)->o))
  1715. return 0;
  1716. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  1717. return 0;
  1718. if ((val)->o[0] & 0x80) {
  1719. l = ASN1uint32_uoctets((val)->timeStamp - 1);
  1720. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  1721. return 0;
  1722. ASN1PEREncAlignment(enc);
  1723. if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
  1724. return 0;
  1725. }
  1726. if ((val)->o[0] & 0x40) {
  1727. if (!ASN1PEREncBitVal(enc, 7, ((val)->password).length - 1))
  1728. return 0;
  1729. ASN1PEREncAlignment(enc);
  1730. if (!ASN1PEREncChar16String(enc, ((val)->password).length, ((val)->password).value, 16))
  1731. return 0;
  1732. }
  1733. if ((val)->o[0] & 0x20) {
  1734. if (!ASN1Enc_DHset(enc, &(val)->dhkey))
  1735. return 0;
  1736. }
  1737. if ((val)->o[0] & 0x10) {
  1738. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->challenge, 8, 128, 7))
  1739. return 0;
  1740. }
  1741. if ((val)->o[0] & 0x8) {
  1742. if (!ASN1PEREncInteger(enc, (val)->random))
  1743. return 0;
  1744. }
  1745. if ((val)->o[0] & 0x4) {
  1746. if (!ASN1Enc_TypedCertificate(enc, &(val)->certificate))
  1747. return 0;
  1748. }
  1749. if ((val)->o[0] & 0x2) {
  1750. if (!ASN1PEREncBitVal(enc, 7, ((val)->generalID).length - 1))
  1751. return 0;
  1752. ASN1PEREncAlignment(enc);
  1753. if (!ASN1PEREncChar16String(enc, ((val)->generalID).length, ((val)->generalID).value, 16))
  1754. return 0;
  1755. }
  1756. if ((val)->o[0] & 0x1) {
  1757. if (!ASN1Enc_H235NonStandardParameter(enc, &(val)->nonStandard))
  1758. return 0;
  1759. }
  1760. return 1;
  1761. }
  1762. static int ASN1CALL ASN1Dec_ClearToken(ASN1decoding_t dec, ClearToken *val)
  1763. {
  1764. ASN1uint32_t y;
  1765. ASN1uint32_t l;
  1766. if (!ASN1PERDecExtensionBit(dec, &y))
  1767. return 0;
  1768. if (!ASN1PERDecExtension(dec, 8, (val)->o))
  1769. return 0;
  1770. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  1771. return 0;
  1772. if ((val)->o[0] & 0x80) {
  1773. if (!ASN1PERDecU32Val(dec, 2, &l))
  1774. return 0;
  1775. l += 1;
  1776. ASN1PERDecAlignment(dec);
  1777. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
  1778. return 0;
  1779. (val)->timeStamp += 1;
  1780. }
  1781. if ((val)->o[0] & 0x40) {
  1782. if (!ASN1PERDecU32Val(dec, 7, &((val)->password).length))
  1783. return 0;
  1784. ((val)->password).length += 1;
  1785. ASN1PERDecAlignment(dec);
  1786. if (!ASN1PERDecChar16String(dec, ((val)->password).length, &((val)->password).value, 16))
  1787. return 0;
  1788. }
  1789. if ((val)->o[0] & 0x20) {
  1790. if (!ASN1Dec_DHset(dec, &(val)->dhkey))
  1791. return 0;
  1792. }
  1793. if ((val)->o[0] & 0x10) {
  1794. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->challenge, 8, 128, 7))
  1795. return 0;
  1796. }
  1797. if ((val)->o[0] & 0x8) {
  1798. if (!ASN1PERDecInteger(dec, &(val)->random))
  1799. return 0;
  1800. }
  1801. if ((val)->o[0] & 0x4) {
  1802. if (!ASN1Dec_TypedCertificate(dec, &(val)->certificate))
  1803. return 0;
  1804. }
  1805. if ((val)->o[0] & 0x2) {
  1806. if (!ASN1PERDecU32Val(dec, 7, &((val)->generalID).length))
  1807. return 0;
  1808. ((val)->generalID).length += 1;
  1809. ASN1PERDecAlignment(dec);
  1810. if (!ASN1PERDecChar16String(dec, ((val)->generalID).length, &((val)->generalID).value, 16))
  1811. return 0;
  1812. }
  1813. if ((val)->o[0] & 0x1) {
  1814. if (!ASN1Dec_H235NonStandardParameter(dec, &(val)->nonStandard))
  1815. return 0;
  1816. }
  1817. if (y) {
  1818. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1819. return 0;
  1820. }
  1821. return 1;
  1822. }
  1823. static void ASN1CALL ASN1Free_ClearToken(ClearToken *val)
  1824. {
  1825. if (val) {
  1826. ASN1objectidentifier_free(&(val)->tokenOID);
  1827. if ((val)->o[0] & 0x40) {
  1828. ASN1char16string_free(&(val)->password);
  1829. }
  1830. if ((val)->o[0] & 0x20) {
  1831. ASN1Free_DHset(&(val)->dhkey);
  1832. }
  1833. if ((val)->o[0] & 0x10) {
  1834. }
  1835. if ((val)->o[0] & 0x4) {
  1836. ASN1Free_TypedCertificate(&(val)->certificate);
  1837. }
  1838. if ((val)->o[0] & 0x2) {
  1839. ASN1char16string_free(&(val)->generalID);
  1840. }
  1841. if ((val)->o[0] & 0x1) {
  1842. ASN1Free_H235NonStandardParameter(&(val)->nonStandard);
  1843. }
  1844. }
  1845. }
  1846. static int ASN1CALL ASN1Enc_Params(ASN1encoding_t enc, Params *val)
  1847. {
  1848. if (!ASN1PEREncExtensionBitClear(enc))
  1849. return 0;
  1850. if (!ASN1PEREncBits(enc, 2, (val)->o))
  1851. return 0;
  1852. if ((val)->o[0] & 0x80) {
  1853. if (!ASN1PEREncInteger(enc, (val)->ranInt))
  1854. return 0;
  1855. }
  1856. if ((val)->o[0] & 0x40) {
  1857. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->iv8, 8))
  1858. return 0;
  1859. }
  1860. return 1;
  1861. }
  1862. static int ASN1CALL ASN1Dec_Params(ASN1decoding_t dec, Params *val)
  1863. {
  1864. ASN1uint32_t y;
  1865. if (!ASN1PERDecExtensionBit(dec, &y))
  1866. return 0;
  1867. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  1868. return 0;
  1869. if ((val)->o[0] & 0x80) {
  1870. if (!ASN1PERDecInteger(dec, &(val)->ranInt))
  1871. return 0;
  1872. }
  1873. if ((val)->o[0] & 0x40) {
  1874. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->iv8, 8))
  1875. return 0;
  1876. }
  1877. if (y) {
  1878. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1879. return 0;
  1880. }
  1881. return 1;
  1882. }
  1883. static void ASN1CALL ASN1Free_Params(Params *val)
  1884. {
  1885. if (val) {
  1886. if ((val)->o[0] & 0x40) {
  1887. }
  1888. }
  1889. }
  1890. static int ASN1CALL ASN1Enc_EncodedGeneralToken(ASN1encoding_t enc, EncodedGeneralToken *val)
  1891. {
  1892. if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
  1893. return 0;
  1894. if (!ASN1Enc_ClearToken(enc, &(val)->type))
  1895. return 0;
  1896. return 1;
  1897. }
  1898. static int ASN1CALL ASN1Dec_EncodedGeneralToken(ASN1decoding_t dec, EncodedGeneralToken *val)
  1899. {
  1900. if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
  1901. return 0;
  1902. if (!ASN1Dec_ClearToken(dec, &(val)->type))
  1903. return 0;
  1904. return 1;
  1905. }
  1906. static void ASN1CALL ASN1Free_EncodedGeneralToken(EncodedGeneralToken *val)
  1907. {
  1908. if (val) {
  1909. ASN1objectidentifier_free(&(val)->id);
  1910. ASN1Free_ClearToken(&(val)->type);
  1911. }
  1912. }
  1913. static int ASN1CALL ASN1Enc_PwdCertToken(ASN1encoding_t enc, PwdCertToken *val)
  1914. {
  1915. if (!ASN1Enc_ClearToken(enc, val))
  1916. return 0;
  1917. return 1;
  1918. }
  1919. static int ASN1CALL ASN1Dec_PwdCertToken(ASN1decoding_t dec, PwdCertToken *val)
  1920. {
  1921. if (!ASN1Dec_ClearToken(dec, val))
  1922. return 0;
  1923. return 1;
  1924. }
  1925. static void ASN1CALL ASN1Free_PwdCertToken(PwdCertToken *val)
  1926. {
  1927. if (val) {
  1928. ASN1Free_ClearToken(val);
  1929. }
  1930. }
  1931. static int ASN1CALL ASN1Enc_EncodedPwdCertToken(ASN1encoding_t enc, EncodedPwdCertToken *val)
  1932. {
  1933. if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
  1934. return 0;
  1935. if (!ASN1Enc_PwdCertToken(enc, &(val)->type))
  1936. return 0;
  1937. return 1;
  1938. }
  1939. static int ASN1CALL ASN1Dec_EncodedPwdCertToken(ASN1decoding_t dec, EncodedPwdCertToken *val)
  1940. {
  1941. if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
  1942. return 0;
  1943. if (!ASN1Dec_PwdCertToken(dec, &(val)->type))
  1944. return 0;
  1945. return 1;
  1946. }
  1947. static void ASN1CALL ASN1Free_EncodedPwdCertToken(EncodedPwdCertToken *val)
  1948. {
  1949. if (val) {
  1950. ASN1objectidentifier_free(&(val)->id);
  1951. ASN1Free_PwdCertToken(&(val)->type);
  1952. }
  1953. }
  1954. static int ASN1CALL ASN1Enc_ReleaseCompleteReason(ASN1encoding_t enc, ReleaseCompleteReason *val)
  1955. {
  1956. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 12))
  1957. return 0;
  1958. return 1;
  1959. }
  1960. static int ASN1CALL ASN1Dec_ReleaseCompleteReason(ASN1decoding_t dec, ReleaseCompleteReason *val)
  1961. {
  1962. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 12))
  1963. return 0;
  1964. return 1;
  1965. }
  1966. static int ASN1CALL ASN1Enc_FacilityReason(ASN1encoding_t enc, FacilityReason *val)
  1967. {
  1968. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
  1969. return 0;
  1970. return 1;
  1971. }
  1972. static int ASN1CALL ASN1Dec_FacilityReason(ASN1decoding_t dec, FacilityReason *val)
  1973. {
  1974. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
  1975. return 0;
  1976. return 1;
  1977. }
  1978. static int ASN1CALL ASN1Enc_H221NonStandard(ASN1encoding_t enc, H221NonStandard *val)
  1979. {
  1980. if (!ASN1PEREncExtensionBitClear(enc))
  1981. return 0;
  1982. ASN1PEREncAlignment(enc);
  1983. if (!ASN1PEREncBitVal(enc, 8, (val)->t35CountryCode))
  1984. return 0;
  1985. ASN1PEREncAlignment(enc);
  1986. if (!ASN1PEREncBitVal(enc, 8, (val)->t35Extension))
  1987. return 0;
  1988. if (!ASN1PEREncUnsignedShort(enc, (val)->manufacturerCode))
  1989. return 0;
  1990. return 1;
  1991. }
  1992. static int ASN1CALL ASN1Dec_H221NonStandard(ASN1decoding_t dec, H221NonStandard *val)
  1993. {
  1994. ASN1uint32_t y;
  1995. if (!ASN1PERDecExtensionBit(dec, &y))
  1996. return 0;
  1997. ASN1PERDecAlignment(dec);
  1998. if (!ASN1PERDecU16Val(dec, 8, &(val)->t35CountryCode))
  1999. return 0;
  2000. ASN1PERDecAlignment(dec);
  2001. if (!ASN1PERDecU16Val(dec, 8, &(val)->t35Extension))
  2002. return 0;
  2003. if (!ASN1PERDecUnsignedShort(dec, &(val)->manufacturerCode))
  2004. return 0;
  2005. if (y) {
  2006. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2007. return 0;
  2008. }
  2009. return 1;
  2010. }
  2011. static int ASN1CALL ASN1Enc_H225NonStandardIdentifier(ASN1encoding_t enc, H225NonStandardIdentifier *val)
  2012. {
  2013. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  2014. return 0;
  2015. switch ((val)->choice) {
  2016. case 1:
  2017. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.object))
  2018. return 0;
  2019. break;
  2020. case 2:
  2021. if (!ASN1Enc_H221NonStandard(enc, &(val)->u.h221NonStandard))
  2022. return 0;
  2023. break;
  2024. default:
  2025. /* impossible */
  2026. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  2027. return 0;
  2028. }
  2029. return 1;
  2030. }
  2031. static int ASN1CALL ASN1Dec_H225NonStandardIdentifier(ASN1decoding_t dec, H225NonStandardIdentifier *val)
  2032. {
  2033. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  2034. return 0;
  2035. switch ((val)->choice) {
  2036. case 1:
  2037. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.object))
  2038. return 0;
  2039. break;
  2040. case 2:
  2041. if (!ASN1Dec_H221NonStandard(dec, &(val)->u.h221NonStandard))
  2042. return 0;
  2043. break;
  2044. case 0:
  2045. /* extension case */
  2046. if (!ASN1PERDecSkipFragmented(dec, 8))
  2047. return 0;
  2048. break;
  2049. default:
  2050. /* impossible */
  2051. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  2052. return 0;
  2053. }
  2054. return 1;
  2055. }
  2056. static void ASN1CALL ASN1Free_H225NonStandardIdentifier(H225NonStandardIdentifier *val)
  2057. {
  2058. if (val) {
  2059. switch ((val)->choice) {
  2060. case 1:
  2061. ASN1objectidentifier_free(&(val)->u.object);
  2062. break;
  2063. }
  2064. }
  2065. }
  2066. static int ASN1CALL ASN1Enc_PublicTypeOfNumber(ASN1encoding_t enc, PublicTypeOfNumber *val)
  2067. {
  2068. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  2069. return 0;
  2070. return 1;
  2071. }
  2072. static int ASN1CALL ASN1Dec_PublicTypeOfNumber(ASN1decoding_t dec, PublicTypeOfNumber *val)
  2073. {
  2074. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  2075. return 0;
  2076. return 1;
  2077. }
  2078. static int ASN1CALL ASN1Enc_PrivateTypeOfNumber(ASN1encoding_t enc, PrivateTypeOfNumber *val)
  2079. {
  2080. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  2081. return 0;
  2082. return 1;
  2083. }
  2084. static int ASN1CALL ASN1Dec_PrivateTypeOfNumber(ASN1decoding_t dec, PrivateTypeOfNumber *val)
  2085. {
  2086. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  2087. return 0;
  2088. return 1;
  2089. }
  2090. static int ASN1CALL ASN1Enc_AltGKInfo(ASN1encoding_t enc, AltGKInfo *val)
  2091. {
  2092. if (!ASN1PEREncExtensionBitClear(enc))
  2093. return 0;
  2094. if (!ASN1Enc_AltGKInfo_alternateGatekeeper(enc, &(val)->alternateGatekeeper))
  2095. return 0;
  2096. if (!ASN1PEREncBoolean(enc, (val)->altGKisPermanent))
  2097. return 0;
  2098. return 1;
  2099. }
  2100. static int ASN1CALL ASN1Dec_AltGKInfo(ASN1decoding_t dec, AltGKInfo *val)
  2101. {
  2102. ASN1uint32_t y;
  2103. if (!ASN1PERDecExtensionBit(dec, &y))
  2104. return 0;
  2105. if (!ASN1Dec_AltGKInfo_alternateGatekeeper(dec, &(val)->alternateGatekeeper))
  2106. return 0;
  2107. if (!ASN1PERDecBoolean(dec, &(val)->altGKisPermanent))
  2108. return 0;
  2109. if (y) {
  2110. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2111. return 0;
  2112. }
  2113. return 1;
  2114. }
  2115. static void ASN1CALL ASN1Free_AltGKInfo(AltGKInfo *val)
  2116. {
  2117. if (val) {
  2118. ASN1Free_AltGKInfo_alternateGatekeeper(&(val)->alternateGatekeeper);
  2119. }
  2120. }
  2121. static int ASN1CALL ASN1Enc_Q954Details(ASN1encoding_t enc, Q954Details *val)
  2122. {
  2123. if (!ASN1PEREncExtensionBitClear(enc))
  2124. return 0;
  2125. if (!ASN1PEREncBoolean(enc, (val)->conferenceCalling))
  2126. return 0;
  2127. if (!ASN1PEREncBoolean(enc, (val)->threePartyService))
  2128. return 0;
  2129. return 1;
  2130. }
  2131. static int ASN1CALL ASN1Dec_Q954Details(ASN1decoding_t dec, Q954Details *val)
  2132. {
  2133. ASN1uint32_t y;
  2134. if (!ASN1PERDecExtensionBit(dec, &y))
  2135. return 0;
  2136. if (!ASN1PERDecBoolean(dec, &(val)->conferenceCalling))
  2137. return 0;
  2138. if (!ASN1PERDecBoolean(dec, &(val)->threePartyService))
  2139. return 0;
  2140. if (y) {
  2141. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2142. return 0;
  2143. }
  2144. return 1;
  2145. }
  2146. static int ASN1CALL ASN1Enc_CallIdentifier(ASN1encoding_t enc, CallIdentifier *val)
  2147. {
  2148. if (!ASN1PEREncExtensionBitClear(enc))
  2149. return 0;
  2150. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->guid, 16))
  2151. return 0;
  2152. return 1;
  2153. }
  2154. static int ASN1CALL ASN1Dec_CallIdentifier(ASN1decoding_t dec, CallIdentifier *val)
  2155. {
  2156. ASN1uint32_t y;
  2157. if (!ASN1PERDecExtensionBit(dec, &y))
  2158. return 0;
  2159. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->guid, 16))
  2160. return 0;
  2161. if (y) {
  2162. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2163. return 0;
  2164. }
  2165. return 1;
  2166. }
  2167. static void ASN1CALL ASN1Free_CallIdentifier(CallIdentifier *val)
  2168. {
  2169. if (val) {
  2170. }
  2171. }
  2172. static int ASN1CALL ASN1Enc_ICV(ASN1encoding_t enc, ICV *val)
  2173. {
  2174. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  2175. return 0;
  2176. if (!ASN1PEREncFragmented(enc, ((val)->icv).length, ((val)->icv).value, 1))
  2177. return 0;
  2178. return 1;
  2179. }
  2180. static int ASN1CALL ASN1Dec_ICV(ASN1decoding_t dec, ICV *val)
  2181. {
  2182. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  2183. return 0;
  2184. if (!ASN1PERDecFragmented(dec, &((val)->icv).length, &((val)->icv).value, 1))
  2185. return 0;
  2186. return 1;
  2187. }
  2188. static void ASN1CALL ASN1Free_ICV(ICV *val)
  2189. {
  2190. if (val) {
  2191. ASN1objectidentifier_free(&(val)->algorithmOID);
  2192. ASN1bitstring_free(&(val)->icv);
  2193. }
  2194. }
  2195. static int ASN1CALL ASN1Enc_GatekeeperRejectReason(ASN1encoding_t enc, GatekeeperRejectReason *val)
  2196. {
  2197. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
  2198. return 0;
  2199. return 1;
  2200. }
  2201. static int ASN1CALL ASN1Dec_GatekeeperRejectReason(ASN1decoding_t dec, GatekeeperRejectReason *val)
  2202. {
  2203. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
  2204. return 0;
  2205. return 1;
  2206. }
  2207. static int ASN1CALL ASN1Enc_RegistrationRejectReason(ASN1encoding_t enc, RegistrationRejectReason *val)
  2208. {
  2209. ASN1encoding_t ee;
  2210. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
  2211. return 0;
  2212. switch ((val)->choice) {
  2213. case 1:
  2214. break;
  2215. case 2:
  2216. break;
  2217. case 3:
  2218. break;
  2219. case 4:
  2220. break;
  2221. case 5:
  2222. if (!ASN1Enc_RegistrationRejectReason_duplicateAlias(enc, &(val)->u.duplicateAlias))
  2223. return 0;
  2224. break;
  2225. case 6:
  2226. break;
  2227. case 7:
  2228. break;
  2229. case 8:
  2230. break;
  2231. case 9:
  2232. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2233. return 0;
  2234. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2235. return 0;
  2236. ASN1_CloseEncoder2(ee);
  2237. break;
  2238. case 10:
  2239. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2240. return 0;
  2241. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2242. return 0;
  2243. ASN1_CloseEncoder2(ee);
  2244. break;
  2245. case 11:
  2246. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2247. return 0;
  2248. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2249. return 0;
  2250. ASN1_CloseEncoder2(ee);
  2251. break;
  2252. case 12:
  2253. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2254. return 0;
  2255. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2256. return 0;
  2257. ASN1_CloseEncoder2(ee);
  2258. break;
  2259. default:
  2260. /* impossible */
  2261. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  2262. return 0;
  2263. }
  2264. return 1;
  2265. }
  2266. static int ASN1CALL ASN1Dec_RegistrationRejectReason(ASN1decoding_t dec, RegistrationRejectReason *val)
  2267. {
  2268. ASN1decoding_t dd;
  2269. ASN1octet_t *db;
  2270. ASN1uint32_t ds;
  2271. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
  2272. return 0;
  2273. switch ((val)->choice) {
  2274. case 1:
  2275. break;
  2276. case 2:
  2277. break;
  2278. case 3:
  2279. break;
  2280. case 4:
  2281. break;
  2282. case 5:
  2283. if (!ASN1Dec_RegistrationRejectReason_duplicateAlias(dec, &(val)->u.duplicateAlias))
  2284. return 0;
  2285. break;
  2286. case 6:
  2287. break;
  2288. case 7:
  2289. break;
  2290. case 8:
  2291. break;
  2292. case 9:
  2293. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2294. return 0;
  2295. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2296. return 0;
  2297. ASN1_CloseDecoder(dd);
  2298. ASN1Free(db);
  2299. break;
  2300. case 10:
  2301. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2302. return 0;
  2303. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2304. return 0;
  2305. ASN1_CloseDecoder(dd);
  2306. ASN1Free(db);
  2307. break;
  2308. case 11:
  2309. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2310. return 0;
  2311. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2312. return 0;
  2313. ASN1_CloseDecoder(dd);
  2314. ASN1Free(db);
  2315. break;
  2316. case 12:
  2317. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2318. return 0;
  2319. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2320. return 0;
  2321. ASN1_CloseDecoder(dd);
  2322. ASN1Free(db);
  2323. break;
  2324. case 0:
  2325. /* extension case */
  2326. if (!ASN1PERDecSkipFragmented(dec, 8))
  2327. return 0;
  2328. break;
  2329. default:
  2330. /* impossible */
  2331. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  2332. return 0;
  2333. }
  2334. return 1;
  2335. }
  2336. static void ASN1CALL ASN1Free_RegistrationRejectReason(RegistrationRejectReason *val)
  2337. {
  2338. if (val) {
  2339. switch ((val)->choice) {
  2340. case 5:
  2341. ASN1Free_RegistrationRejectReason_duplicateAlias(&(val)->u.duplicateAlias);
  2342. break;
  2343. }
  2344. }
  2345. }
  2346. static int ASN1CALL ASN1Enc_UnregRequestReason(ASN1encoding_t enc, UnregRequestReason *val)
  2347. {
  2348. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2349. return 0;
  2350. return 1;
  2351. }
  2352. static int ASN1CALL ASN1Dec_UnregRequestReason(ASN1decoding_t dec, UnregRequestReason *val)
  2353. {
  2354. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2355. return 0;
  2356. return 1;
  2357. }
  2358. static int ASN1CALL ASN1Enc_UnregRejectReason(ASN1encoding_t enc, UnregRejectReason *val)
  2359. {
  2360. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
  2361. return 0;
  2362. return 1;
  2363. }
  2364. static int ASN1CALL ASN1Dec_UnregRejectReason(ASN1decoding_t dec, UnregRejectReason *val)
  2365. {
  2366. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
  2367. return 0;
  2368. return 1;
  2369. }
  2370. static int ASN1CALL ASN1Enc_CallType(ASN1encoding_t enc, CallType *val)
  2371. {
  2372. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2373. return 0;
  2374. return 1;
  2375. }
  2376. static int ASN1CALL ASN1Dec_CallType(ASN1decoding_t dec, CallType *val)
  2377. {
  2378. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2379. return 0;
  2380. return 1;
  2381. }
  2382. static int ASN1CALL ASN1Enc_CallModel(ASN1encoding_t enc, CallModel *val)
  2383. {
  2384. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  2385. return 0;
  2386. return 1;
  2387. }
  2388. static int ASN1CALL ASN1Dec_CallModel(ASN1decoding_t dec, CallModel *val)
  2389. {
  2390. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  2391. return 0;
  2392. return 1;
  2393. }
  2394. static int ASN1CALL ASN1Enc_TransportQOS(ASN1encoding_t enc, TransportQOS *val)
  2395. {
  2396. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2397. return 0;
  2398. return 1;
  2399. }
  2400. static int ASN1CALL ASN1Dec_TransportQOS(ASN1decoding_t dec, TransportQOS *val)
  2401. {
  2402. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2403. return 0;
  2404. return 1;
  2405. }
  2406. static int ASN1CALL ASN1Enc_UUIEsRequested(ASN1encoding_t enc, UUIEsRequested *val)
  2407. {
  2408. if (!ASN1PEREncExtensionBitClear(enc))
  2409. return 0;
  2410. if (!ASN1PEREncBoolean(enc, (val)->setup))
  2411. return 0;
  2412. if (!ASN1PEREncBoolean(enc, (val)->callProceeding))
  2413. return 0;
  2414. if (!ASN1PEREncBoolean(enc, (val)->connect))
  2415. return 0;
  2416. if (!ASN1PEREncBoolean(enc, (val)->alerting))
  2417. return 0;
  2418. if (!ASN1PEREncBoolean(enc, (val)->information))
  2419. return 0;
  2420. if (!ASN1PEREncBoolean(enc, (val)->releaseComplete))
  2421. return 0;
  2422. if (!ASN1PEREncBoolean(enc, (val)->facility))
  2423. return 0;
  2424. if (!ASN1PEREncBoolean(enc, (val)->progress))
  2425. return 0;
  2426. if (!ASN1PEREncBoolean(enc, (val)->empty))
  2427. return 0;
  2428. return 1;
  2429. }
  2430. static int ASN1CALL ASN1Dec_UUIEsRequested(ASN1decoding_t dec, UUIEsRequested *val)
  2431. {
  2432. ASN1uint32_t y;
  2433. if (!ASN1PERDecExtensionBit(dec, &y))
  2434. return 0;
  2435. if (!ASN1PERDecBoolean(dec, &(val)->setup))
  2436. return 0;
  2437. if (!ASN1PERDecBoolean(dec, &(val)->callProceeding))
  2438. return 0;
  2439. if (!ASN1PERDecBoolean(dec, &(val)->connect))
  2440. return 0;
  2441. if (!ASN1PERDecBoolean(dec, &(val)->alerting))
  2442. return 0;
  2443. if (!ASN1PERDecBoolean(dec, &(val)->information))
  2444. return 0;
  2445. if (!ASN1PERDecBoolean(dec, &(val)->releaseComplete))
  2446. return 0;
  2447. if (!ASN1PERDecBoolean(dec, &(val)->facility))
  2448. return 0;
  2449. if (!ASN1PERDecBoolean(dec, &(val)->progress))
  2450. return 0;
  2451. if (!ASN1PERDecBoolean(dec, &(val)->empty))
  2452. return 0;
  2453. if (y) {
  2454. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2455. return 0;
  2456. }
  2457. return 1;
  2458. }
  2459. static int ASN1CALL ASN1Enc_AdmissionRejectReason(ASN1encoding_t enc, AdmissionRejectReason *val)
  2460. {
  2461. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
  2462. return 0;
  2463. return 1;
  2464. }
  2465. static int ASN1CALL ASN1Dec_AdmissionRejectReason(ASN1decoding_t dec, AdmissionRejectReason *val)
  2466. {
  2467. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
  2468. return 0;
  2469. return 1;
  2470. }
  2471. static int ASN1CALL ASN1Enc_BandRejectReason(ASN1encoding_t enc, BandRejectReason *val)
  2472. {
  2473. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
  2474. return 0;
  2475. return 1;
  2476. }
  2477. static int ASN1CALL ASN1Dec_BandRejectReason(ASN1decoding_t dec, BandRejectReason *val)
  2478. {
  2479. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
  2480. return 0;
  2481. return 1;
  2482. }
  2483. static int ASN1CALL ASN1Enc_LocationRejectReason(ASN1encoding_t enc, LocationRejectReason *val)
  2484. {
  2485. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
  2486. return 0;
  2487. return 1;
  2488. }
  2489. static int ASN1CALL ASN1Dec_LocationRejectReason(ASN1decoding_t dec, LocationRejectReason *val)
  2490. {
  2491. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
  2492. return 0;
  2493. return 1;
  2494. }
  2495. static int ASN1CALL ASN1Enc_DisengageReason(ASN1encoding_t enc, DisengageReason *val)
  2496. {
  2497. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2498. return 0;
  2499. return 1;
  2500. }
  2501. static int ASN1CALL ASN1Dec_DisengageReason(ASN1decoding_t dec, DisengageReason *val)
  2502. {
  2503. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2504. return 0;
  2505. return 1;
  2506. }
  2507. static int ASN1CALL ASN1Enc_DisengageRejectReason(ASN1encoding_t enc, DisengageRejectReason *val)
  2508. {
  2509. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
  2510. return 0;
  2511. return 1;
  2512. }
  2513. static int ASN1CALL ASN1Dec_DisengageRejectReason(ASN1decoding_t dec, DisengageRejectReason *val)
  2514. {
  2515. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
  2516. return 0;
  2517. return 1;
  2518. }
  2519. static int ASN1CALL ASN1Enc_InfoRequestNakReason(ASN1encoding_t enc, InfoRequestNakReason *val)
  2520. {
  2521. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2522. return 0;
  2523. return 1;
  2524. }
  2525. static int ASN1CALL ASN1Dec_InfoRequestNakReason(ASN1decoding_t dec, InfoRequestNakReason *val)
  2526. {
  2527. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2528. return 0;
  2529. return 1;
  2530. }
  2531. static int ASN1CALL ASN1Enc_UnknownMessageResponse(ASN1encoding_t enc, UnknownMessageResponse *val)
  2532. {
  2533. ASN1uint32_t y;
  2534. ASN1encoding_t ee;
  2535. y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
  2536. if (!ASN1PEREncBitVal(enc, 1, y))
  2537. return 0;
  2538. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  2539. return 0;
  2540. if (y) {
  2541. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 0))
  2542. return 0;
  2543. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2544. return 0;
  2545. if ((val)->o[0] & 0x80) {
  2546. if (!ASN1Enc_UnknownMessageResponse_tokens(ee, &(val)->tokens))
  2547. return 0;
  2548. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2549. return 0;
  2550. }
  2551. if ((val)->o[0] & 0x40) {
  2552. if (!ASN1Enc_UnknownMessageResponse_cryptoTokens(ee, &(val)->cryptoTokens))
  2553. return 0;
  2554. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2555. return 0;
  2556. }
  2557. if ((val)->o[0] & 0x20) {
  2558. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  2559. return 0;
  2560. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2561. return 0;
  2562. }
  2563. ASN1_CloseEncoder2(ee);
  2564. }
  2565. return 1;
  2566. }
  2567. static int ASN1CALL ASN1Dec_UnknownMessageResponse(ASN1decoding_t dec, UnknownMessageResponse *val)
  2568. {
  2569. ASN1uint32_t y;
  2570. ASN1decoding_t dd;
  2571. ASN1octet_t *db;
  2572. ASN1uint32_t ds;
  2573. ASN1uint32_t i;
  2574. ASN1uint32_t e;
  2575. if (!ASN1PERDecExtensionBit(dec, &y))
  2576. return 0;
  2577. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  2578. return 0;
  2579. (val)->requestSeqNum += 1;
  2580. if (!y) {
  2581. ZeroMemory((val)->o + 0, 1);
  2582. } else {
  2583. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
  2584. return 0;
  2585. if ((val)->o[0] & 0x80) {
  2586. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2587. return 0;
  2588. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2589. return 0;
  2590. if (!ASN1Dec_UnknownMessageResponse_tokens(dd, &(val)->tokens))
  2591. return 0;
  2592. ASN1_CloseDecoder(dd);
  2593. ASN1Free(db);
  2594. }
  2595. if ((val)->o[0] & 0x40) {
  2596. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2597. return 0;
  2598. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2599. return 0;
  2600. if (!ASN1Dec_UnknownMessageResponse_cryptoTokens(dd, &(val)->cryptoTokens))
  2601. return 0;
  2602. ASN1_CloseDecoder(dd);
  2603. ASN1Free(db);
  2604. }
  2605. if ((val)->o[0] & 0x20) {
  2606. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2607. return 0;
  2608. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  2609. return 0;
  2610. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  2611. return 0;
  2612. ASN1_CloseDecoder(dd);
  2613. ASN1Free(db);
  2614. }
  2615. for (i = 0; i < e; i++) {
  2616. if (!ASN1PERDecSkipFragmented(dec, 8))
  2617. return 0;
  2618. }
  2619. }
  2620. return 1;
  2621. }
  2622. static void ASN1CALL ASN1Free_UnknownMessageResponse(UnknownMessageResponse *val)
  2623. {
  2624. if (val) {
  2625. if ((val)->o[0] & 0x80) {
  2626. ASN1Free_UnknownMessageResponse_tokens(&(val)->tokens);
  2627. }
  2628. if ((val)->o[0] & 0x40) {
  2629. ASN1Free_UnknownMessageResponse_cryptoTokens(&(val)->cryptoTokens);
  2630. }
  2631. if ((val)->o[0] & 0x20) {
  2632. ASN1Free_ICV(&(val)->integrityCheckValue);
  2633. }
  2634. }
  2635. }
  2636. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens *val)
  2637. {
  2638. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn);
  2639. }
  2640. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens val)
  2641. {
  2642. if (!ASN1Enc_ClearToken(enc, &val->value))
  2643. return 0;
  2644. return 1;
  2645. }
  2646. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens *val)
  2647. {
  2648. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn, sizeof(**val));
  2649. }
  2650. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens val)
  2651. {
  2652. if (!ASN1Dec_ClearToken(dec, &val->value))
  2653. return 0;
  2654. return 1;
  2655. }
  2656. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(PInfoRequestResponse_perCallInfo_Seq_tokens *val)
  2657. {
  2658. if (val) {
  2659. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn);
  2660. }
  2661. }
  2662. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(PInfoRequestResponse_perCallInfo_Seq_tokens val)
  2663. {
  2664. if (val) {
  2665. ASN1Free_ClearToken(&val->value);
  2666. }
  2667. }
  2668. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens *val)
  2669. {
  2670. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableConfirm_tokens_ElmFn);
  2671. }
  2672. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens val)
  2673. {
  2674. if (!ASN1Enc_ClearToken(enc, &val->value))
  2675. return 0;
  2676. return 1;
  2677. }
  2678. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens *val)
  2679. {
  2680. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableConfirm_tokens_ElmFn, sizeof(**val));
  2681. }
  2682. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens val)
  2683. {
  2684. if (!ASN1Dec_ClearToken(dec, &val->value))
  2685. return 0;
  2686. return 1;
  2687. }
  2688. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens(PResourcesAvailableConfirm_tokens *val)
  2689. {
  2690. if (val) {
  2691. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableConfirm_tokens_ElmFn);
  2692. }
  2693. }
  2694. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens_ElmFn(PResourcesAvailableConfirm_tokens val)
  2695. {
  2696. if (val) {
  2697. ASN1Free_ClearToken(&val->value);
  2698. }
  2699. }
  2700. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens *val)
  2701. {
  2702. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_tokens_ElmFn);
  2703. }
  2704. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens val)
  2705. {
  2706. if (!ASN1Enc_ClearToken(enc, &val->value))
  2707. return 0;
  2708. return 1;
  2709. }
  2710. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens *val)
  2711. {
  2712. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_tokens_ElmFn, sizeof(**val));
  2713. }
  2714. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens val)
  2715. {
  2716. if (!ASN1Dec_ClearToken(dec, &val->value))
  2717. return 0;
  2718. return 1;
  2719. }
  2720. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens(PResourcesAvailableIndicate_tokens *val)
  2721. {
  2722. if (val) {
  2723. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_tokens_ElmFn);
  2724. }
  2725. }
  2726. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens_ElmFn(PResourcesAvailableIndicate_tokens val)
  2727. {
  2728. if (val) {
  2729. ASN1Free_ClearToken(&val->value);
  2730. }
  2731. }
  2732. static int ASN1CALL ASN1Enc_RequestInProgress_tokens(ASN1encoding_t enc, PRequestInProgress_tokens *val)
  2733. {
  2734. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestInProgress_tokens_ElmFn);
  2735. }
  2736. static int ASN1CALL ASN1Enc_RequestInProgress_tokens_ElmFn(ASN1encoding_t enc, PRequestInProgress_tokens val)
  2737. {
  2738. if (!ASN1Enc_ClearToken(enc, &val->value))
  2739. return 0;
  2740. return 1;
  2741. }
  2742. static int ASN1CALL ASN1Dec_RequestInProgress_tokens(ASN1decoding_t dec, PRequestInProgress_tokens *val)
  2743. {
  2744. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestInProgress_tokens_ElmFn, sizeof(**val));
  2745. }
  2746. static int ASN1CALL ASN1Dec_RequestInProgress_tokens_ElmFn(ASN1decoding_t dec, PRequestInProgress_tokens val)
  2747. {
  2748. if (!ASN1Dec_ClearToken(dec, &val->value))
  2749. return 0;
  2750. return 1;
  2751. }
  2752. static void ASN1CALL ASN1Free_RequestInProgress_tokens(PRequestInProgress_tokens *val)
  2753. {
  2754. if (val) {
  2755. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestInProgress_tokens_ElmFn);
  2756. }
  2757. }
  2758. static void ASN1CALL ASN1Free_RequestInProgress_tokens_ElmFn(PRequestInProgress_tokens val)
  2759. {
  2760. if (val) {
  2761. ASN1Free_ClearToken(&val->value);
  2762. }
  2763. }
  2764. static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens(ASN1encoding_t enc, PUnknownMessageResponse_tokens *val)
  2765. {
  2766. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnknownMessageResponse_tokens_ElmFn);
  2767. }
  2768. static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens_ElmFn(ASN1encoding_t enc, PUnknownMessageResponse_tokens val)
  2769. {
  2770. if (!ASN1Enc_ClearToken(enc, &val->value))
  2771. return 0;
  2772. return 1;
  2773. }
  2774. static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens(ASN1decoding_t dec, PUnknownMessageResponse_tokens *val)
  2775. {
  2776. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnknownMessageResponse_tokens_ElmFn, sizeof(**val));
  2777. }
  2778. static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens_ElmFn(ASN1decoding_t dec, PUnknownMessageResponse_tokens val)
  2779. {
  2780. if (!ASN1Dec_ClearToken(dec, &val->value))
  2781. return 0;
  2782. return 1;
  2783. }
  2784. static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens(PUnknownMessageResponse_tokens *val)
  2785. {
  2786. if (val) {
  2787. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnknownMessageResponse_tokens_ElmFn);
  2788. }
  2789. }
  2790. static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens_ElmFn(PUnknownMessageResponse_tokens val)
  2791. {
  2792. if (val) {
  2793. ASN1Free_ClearToken(&val->value);
  2794. }
  2795. }
  2796. static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens(ASN1encoding_t enc, PH225NonStandardMessage_tokens *val)
  2797. {
  2798. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H225NonStandardMessage_tokens_ElmFn);
  2799. }
  2800. static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens_ElmFn(ASN1encoding_t enc, PH225NonStandardMessage_tokens val)
  2801. {
  2802. if (!ASN1Enc_ClearToken(enc, &val->value))
  2803. return 0;
  2804. return 1;
  2805. }
  2806. static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens(ASN1decoding_t dec, PH225NonStandardMessage_tokens *val)
  2807. {
  2808. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H225NonStandardMessage_tokens_ElmFn, sizeof(**val));
  2809. }
  2810. static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens_ElmFn(ASN1decoding_t dec, PH225NonStandardMessage_tokens val)
  2811. {
  2812. if (!ASN1Dec_ClearToken(dec, &val->value))
  2813. return 0;
  2814. return 1;
  2815. }
  2816. static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens(PH225NonStandardMessage_tokens *val)
  2817. {
  2818. if (val) {
  2819. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H225NonStandardMessage_tokens_ElmFn);
  2820. }
  2821. }
  2822. static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens_ElmFn(PH225NonStandardMessage_tokens val)
  2823. {
  2824. if (val) {
  2825. ASN1Free_ClearToken(&val->value);
  2826. }
  2827. }
  2828. static int ASN1CALL ASN1Enc_InfoRequestNak_tokens(ASN1encoding_t enc, PInfoRequestNak_tokens *val)
  2829. {
  2830. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestNak_tokens_ElmFn);
  2831. }
  2832. static int ASN1CALL ASN1Enc_InfoRequestNak_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestNak_tokens val)
  2833. {
  2834. if (!ASN1Enc_ClearToken(enc, &val->value))
  2835. return 0;
  2836. return 1;
  2837. }
  2838. static int ASN1CALL ASN1Dec_InfoRequestNak_tokens(ASN1decoding_t dec, PInfoRequestNak_tokens *val)
  2839. {
  2840. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestNak_tokens_ElmFn, sizeof(**val));
  2841. }
  2842. static int ASN1CALL ASN1Dec_InfoRequestNak_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestNak_tokens val)
  2843. {
  2844. if (!ASN1Dec_ClearToken(dec, &val->value))
  2845. return 0;
  2846. return 1;
  2847. }
  2848. static void ASN1CALL ASN1Free_InfoRequestNak_tokens(PInfoRequestNak_tokens *val)
  2849. {
  2850. if (val) {
  2851. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestNak_tokens_ElmFn);
  2852. }
  2853. }
  2854. static void ASN1CALL ASN1Free_InfoRequestNak_tokens_ElmFn(PInfoRequestNak_tokens val)
  2855. {
  2856. if (val) {
  2857. ASN1Free_ClearToken(&val->value);
  2858. }
  2859. }
  2860. static int ASN1CALL ASN1Enc_InfoRequestAck_tokens(ASN1encoding_t enc, PInfoRequestAck_tokens *val)
  2861. {
  2862. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestAck_tokens_ElmFn);
  2863. }
  2864. static int ASN1CALL ASN1Enc_InfoRequestAck_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestAck_tokens val)
  2865. {
  2866. if (!ASN1Enc_ClearToken(enc, &val->value))
  2867. return 0;
  2868. return 1;
  2869. }
  2870. static int ASN1CALL ASN1Dec_InfoRequestAck_tokens(ASN1decoding_t dec, PInfoRequestAck_tokens *val)
  2871. {
  2872. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestAck_tokens_ElmFn, sizeof(**val));
  2873. }
  2874. static int ASN1CALL ASN1Dec_InfoRequestAck_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestAck_tokens val)
  2875. {
  2876. if (!ASN1Dec_ClearToken(dec, &val->value))
  2877. return 0;
  2878. return 1;
  2879. }
  2880. static void ASN1CALL ASN1Free_InfoRequestAck_tokens(PInfoRequestAck_tokens *val)
  2881. {
  2882. if (val) {
  2883. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestAck_tokens_ElmFn);
  2884. }
  2885. }
  2886. static void ASN1CALL ASN1Free_InfoRequestAck_tokens_ElmFn(PInfoRequestAck_tokens val)
  2887. {
  2888. if (val) {
  2889. ASN1Free_ClearToken(&val->value);
  2890. }
  2891. }
  2892. static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens(ASN1encoding_t enc, PInfoRequestResponse_tokens *val)
  2893. {
  2894. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_tokens_ElmFn);
  2895. }
  2896. static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_tokens val)
  2897. {
  2898. if (!ASN1Enc_ClearToken(enc, &val->value))
  2899. return 0;
  2900. return 1;
  2901. }
  2902. static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens(ASN1decoding_t dec, PInfoRequestResponse_tokens *val)
  2903. {
  2904. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_tokens_ElmFn, sizeof(**val));
  2905. }
  2906. static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_tokens val)
  2907. {
  2908. if (!ASN1Dec_ClearToken(dec, &val->value))
  2909. return 0;
  2910. return 1;
  2911. }
  2912. static void ASN1CALL ASN1Free_InfoRequestResponse_tokens(PInfoRequestResponse_tokens *val)
  2913. {
  2914. if (val) {
  2915. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_tokens_ElmFn);
  2916. }
  2917. }
  2918. static void ASN1CALL ASN1Free_InfoRequestResponse_tokens_ElmFn(PInfoRequestResponse_tokens val)
  2919. {
  2920. if (val) {
  2921. ASN1Free_ClearToken(&val->value);
  2922. }
  2923. }
  2924. static int ASN1CALL ASN1Enc_InfoRequest_tokens(ASN1encoding_t enc, PInfoRequest_tokens *val)
  2925. {
  2926. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequest_tokens_ElmFn);
  2927. }
  2928. static int ASN1CALL ASN1Enc_InfoRequest_tokens_ElmFn(ASN1encoding_t enc, PInfoRequest_tokens val)
  2929. {
  2930. if (!ASN1Enc_ClearToken(enc, &val->value))
  2931. return 0;
  2932. return 1;
  2933. }
  2934. static int ASN1CALL ASN1Dec_InfoRequest_tokens(ASN1decoding_t dec, PInfoRequest_tokens *val)
  2935. {
  2936. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequest_tokens_ElmFn, sizeof(**val));
  2937. }
  2938. static int ASN1CALL ASN1Dec_InfoRequest_tokens_ElmFn(ASN1decoding_t dec, PInfoRequest_tokens val)
  2939. {
  2940. if (!ASN1Dec_ClearToken(dec, &val->value))
  2941. return 0;
  2942. return 1;
  2943. }
  2944. static void ASN1CALL ASN1Free_InfoRequest_tokens(PInfoRequest_tokens *val)
  2945. {
  2946. if (val) {
  2947. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequest_tokens_ElmFn);
  2948. }
  2949. }
  2950. static void ASN1CALL ASN1Free_InfoRequest_tokens_ElmFn(PInfoRequest_tokens val)
  2951. {
  2952. if (val) {
  2953. ASN1Free_ClearToken(&val->value);
  2954. }
  2955. }
  2956. static int ASN1CALL ASN1Enc_DisengageReject_tokens(ASN1encoding_t enc, PDisengageReject_tokens *val)
  2957. {
  2958. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageReject_tokens_ElmFn);
  2959. }
  2960. static int ASN1CALL ASN1Enc_DisengageReject_tokens_ElmFn(ASN1encoding_t enc, PDisengageReject_tokens val)
  2961. {
  2962. if (!ASN1Enc_ClearToken(enc, &val->value))
  2963. return 0;
  2964. return 1;
  2965. }
  2966. static int ASN1CALL ASN1Dec_DisengageReject_tokens(ASN1decoding_t dec, PDisengageReject_tokens *val)
  2967. {
  2968. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageReject_tokens_ElmFn, sizeof(**val));
  2969. }
  2970. static int ASN1CALL ASN1Dec_DisengageReject_tokens_ElmFn(ASN1decoding_t dec, PDisengageReject_tokens val)
  2971. {
  2972. if (!ASN1Dec_ClearToken(dec, &val->value))
  2973. return 0;
  2974. return 1;
  2975. }
  2976. static void ASN1CALL ASN1Free_DisengageReject_tokens(PDisengageReject_tokens *val)
  2977. {
  2978. if (val) {
  2979. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageReject_tokens_ElmFn);
  2980. }
  2981. }
  2982. static void ASN1CALL ASN1Free_DisengageReject_tokens_ElmFn(PDisengageReject_tokens val)
  2983. {
  2984. if (val) {
  2985. ASN1Free_ClearToken(&val->value);
  2986. }
  2987. }
  2988. static int ASN1CALL ASN1Enc_DisengageConfirm_tokens(ASN1encoding_t enc, PDisengageConfirm_tokens *val)
  2989. {
  2990. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageConfirm_tokens_ElmFn);
  2991. }
  2992. static int ASN1CALL ASN1Enc_DisengageConfirm_tokens_ElmFn(ASN1encoding_t enc, PDisengageConfirm_tokens val)
  2993. {
  2994. if (!ASN1Enc_ClearToken(enc, &val->value))
  2995. return 0;
  2996. return 1;
  2997. }
  2998. static int ASN1CALL ASN1Dec_DisengageConfirm_tokens(ASN1decoding_t dec, PDisengageConfirm_tokens *val)
  2999. {
  3000. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageConfirm_tokens_ElmFn, sizeof(**val));
  3001. }
  3002. static int ASN1CALL ASN1Dec_DisengageConfirm_tokens_ElmFn(ASN1decoding_t dec, PDisengageConfirm_tokens val)
  3003. {
  3004. if (!ASN1Dec_ClearToken(dec, &val->value))
  3005. return 0;
  3006. return 1;
  3007. }
  3008. static void ASN1CALL ASN1Free_DisengageConfirm_tokens(PDisengageConfirm_tokens *val)
  3009. {
  3010. if (val) {
  3011. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageConfirm_tokens_ElmFn);
  3012. }
  3013. }
  3014. static void ASN1CALL ASN1Free_DisengageConfirm_tokens_ElmFn(PDisengageConfirm_tokens val)
  3015. {
  3016. if (val) {
  3017. ASN1Free_ClearToken(&val->value);
  3018. }
  3019. }
  3020. static int ASN1CALL ASN1Enc_DisengageRequest_tokens(ASN1encoding_t enc, PDisengageRequest_tokens *val)
  3021. {
  3022. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageRequest_tokens_ElmFn);
  3023. }
  3024. static int ASN1CALL ASN1Enc_DisengageRequest_tokens_ElmFn(ASN1encoding_t enc, PDisengageRequest_tokens val)
  3025. {
  3026. if (!ASN1Enc_ClearToken(enc, &val->value))
  3027. return 0;
  3028. return 1;
  3029. }
  3030. static int ASN1CALL ASN1Dec_DisengageRequest_tokens(ASN1decoding_t dec, PDisengageRequest_tokens *val)
  3031. {
  3032. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageRequest_tokens_ElmFn, sizeof(**val));
  3033. }
  3034. static int ASN1CALL ASN1Dec_DisengageRequest_tokens_ElmFn(ASN1decoding_t dec, PDisengageRequest_tokens val)
  3035. {
  3036. if (!ASN1Dec_ClearToken(dec, &val->value))
  3037. return 0;
  3038. return 1;
  3039. }
  3040. static void ASN1CALL ASN1Free_DisengageRequest_tokens(PDisengageRequest_tokens *val)
  3041. {
  3042. if (val) {
  3043. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageRequest_tokens_ElmFn);
  3044. }
  3045. }
  3046. static void ASN1CALL ASN1Free_DisengageRequest_tokens_ElmFn(PDisengageRequest_tokens val)
  3047. {
  3048. if (val) {
  3049. ASN1Free_ClearToken(&val->value);
  3050. }
  3051. }
  3052. static int ASN1CALL ASN1Enc_LocationReject_tokens(ASN1encoding_t enc, PLocationReject_tokens *val)
  3053. {
  3054. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationReject_tokens_ElmFn);
  3055. }
  3056. static int ASN1CALL ASN1Enc_LocationReject_tokens_ElmFn(ASN1encoding_t enc, PLocationReject_tokens val)
  3057. {
  3058. if (!ASN1Enc_ClearToken(enc, &val->value))
  3059. return 0;
  3060. return 1;
  3061. }
  3062. static int ASN1CALL ASN1Dec_LocationReject_tokens(ASN1decoding_t dec, PLocationReject_tokens *val)
  3063. {
  3064. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationReject_tokens_ElmFn, sizeof(**val));
  3065. }
  3066. static int ASN1CALL ASN1Dec_LocationReject_tokens_ElmFn(ASN1decoding_t dec, PLocationReject_tokens val)
  3067. {
  3068. if (!ASN1Dec_ClearToken(dec, &val->value))
  3069. return 0;
  3070. return 1;
  3071. }
  3072. static void ASN1CALL ASN1Free_LocationReject_tokens(PLocationReject_tokens *val)
  3073. {
  3074. if (val) {
  3075. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationReject_tokens_ElmFn);
  3076. }
  3077. }
  3078. static void ASN1CALL ASN1Free_LocationReject_tokens_ElmFn(PLocationReject_tokens val)
  3079. {
  3080. if (val) {
  3081. ASN1Free_ClearToken(&val->value);
  3082. }
  3083. }
  3084. static int ASN1CALL ASN1Enc_LocationConfirm_tokens(ASN1encoding_t enc, PLocationConfirm_tokens *val)
  3085. {
  3086. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_tokens_ElmFn);
  3087. }
  3088. static int ASN1CALL ASN1Enc_LocationConfirm_tokens_ElmFn(ASN1encoding_t enc, PLocationConfirm_tokens val)
  3089. {
  3090. if (!ASN1Enc_ClearToken(enc, &val->value))
  3091. return 0;
  3092. return 1;
  3093. }
  3094. static int ASN1CALL ASN1Dec_LocationConfirm_tokens(ASN1decoding_t dec, PLocationConfirm_tokens *val)
  3095. {
  3096. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_tokens_ElmFn, sizeof(**val));
  3097. }
  3098. static int ASN1CALL ASN1Dec_LocationConfirm_tokens_ElmFn(ASN1decoding_t dec, PLocationConfirm_tokens val)
  3099. {
  3100. if (!ASN1Dec_ClearToken(dec, &val->value))
  3101. return 0;
  3102. return 1;
  3103. }
  3104. static void ASN1CALL ASN1Free_LocationConfirm_tokens(PLocationConfirm_tokens *val)
  3105. {
  3106. if (val) {
  3107. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_tokens_ElmFn);
  3108. }
  3109. }
  3110. static void ASN1CALL ASN1Free_LocationConfirm_tokens_ElmFn(PLocationConfirm_tokens val)
  3111. {
  3112. if (val) {
  3113. ASN1Free_ClearToken(&val->value);
  3114. }
  3115. }
  3116. static int ASN1CALL ASN1Enc_LocationRequest_tokens(ASN1encoding_t enc, PLocationRequest_tokens *val)
  3117. {
  3118. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_tokens_ElmFn);
  3119. }
  3120. static int ASN1CALL ASN1Enc_LocationRequest_tokens_ElmFn(ASN1encoding_t enc, PLocationRequest_tokens val)
  3121. {
  3122. if (!ASN1Enc_ClearToken(enc, &val->value))
  3123. return 0;
  3124. return 1;
  3125. }
  3126. static int ASN1CALL ASN1Dec_LocationRequest_tokens(ASN1decoding_t dec, PLocationRequest_tokens *val)
  3127. {
  3128. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_tokens_ElmFn, sizeof(**val));
  3129. }
  3130. static int ASN1CALL ASN1Dec_LocationRequest_tokens_ElmFn(ASN1decoding_t dec, PLocationRequest_tokens val)
  3131. {
  3132. if (!ASN1Dec_ClearToken(dec, &val->value))
  3133. return 0;
  3134. return 1;
  3135. }
  3136. static void ASN1CALL ASN1Free_LocationRequest_tokens(PLocationRequest_tokens *val)
  3137. {
  3138. if (val) {
  3139. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_tokens_ElmFn);
  3140. }
  3141. }
  3142. static void ASN1CALL ASN1Free_LocationRequest_tokens_ElmFn(PLocationRequest_tokens val)
  3143. {
  3144. if (val) {
  3145. ASN1Free_ClearToken(&val->value);
  3146. }
  3147. }
  3148. static int ASN1CALL ASN1Enc_BandwidthReject_tokens(ASN1encoding_t enc, PBandwidthReject_tokens *val)
  3149. {
  3150. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthReject_tokens_ElmFn);
  3151. }
  3152. static int ASN1CALL ASN1Enc_BandwidthReject_tokens_ElmFn(ASN1encoding_t enc, PBandwidthReject_tokens val)
  3153. {
  3154. if (!ASN1Enc_ClearToken(enc, &val->value))
  3155. return 0;
  3156. return 1;
  3157. }
  3158. static int ASN1CALL ASN1Dec_BandwidthReject_tokens(ASN1decoding_t dec, PBandwidthReject_tokens *val)
  3159. {
  3160. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthReject_tokens_ElmFn, sizeof(**val));
  3161. }
  3162. static int ASN1CALL ASN1Dec_BandwidthReject_tokens_ElmFn(ASN1decoding_t dec, PBandwidthReject_tokens val)
  3163. {
  3164. if (!ASN1Dec_ClearToken(dec, &val->value))
  3165. return 0;
  3166. return 1;
  3167. }
  3168. static void ASN1CALL ASN1Free_BandwidthReject_tokens(PBandwidthReject_tokens *val)
  3169. {
  3170. if (val) {
  3171. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthReject_tokens_ElmFn);
  3172. }
  3173. }
  3174. static void ASN1CALL ASN1Free_BandwidthReject_tokens_ElmFn(PBandwidthReject_tokens val)
  3175. {
  3176. if (val) {
  3177. ASN1Free_ClearToken(&val->value);
  3178. }
  3179. }
  3180. static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens(ASN1encoding_t enc, PBandwidthConfirm_tokens *val)
  3181. {
  3182. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthConfirm_tokens_ElmFn);
  3183. }
  3184. static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens_ElmFn(ASN1encoding_t enc, PBandwidthConfirm_tokens val)
  3185. {
  3186. if (!ASN1Enc_ClearToken(enc, &val->value))
  3187. return 0;
  3188. return 1;
  3189. }
  3190. static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens(ASN1decoding_t dec, PBandwidthConfirm_tokens *val)
  3191. {
  3192. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthConfirm_tokens_ElmFn, sizeof(**val));
  3193. }
  3194. static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens_ElmFn(ASN1decoding_t dec, PBandwidthConfirm_tokens val)
  3195. {
  3196. if (!ASN1Dec_ClearToken(dec, &val->value))
  3197. return 0;
  3198. return 1;
  3199. }
  3200. static void ASN1CALL ASN1Free_BandwidthConfirm_tokens(PBandwidthConfirm_tokens *val)
  3201. {
  3202. if (val) {
  3203. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthConfirm_tokens_ElmFn);
  3204. }
  3205. }
  3206. static void ASN1CALL ASN1Free_BandwidthConfirm_tokens_ElmFn(PBandwidthConfirm_tokens val)
  3207. {
  3208. if (val) {
  3209. ASN1Free_ClearToken(&val->value);
  3210. }
  3211. }
  3212. static int ASN1CALL ASN1Enc_BandwidthRequest_tokens(ASN1encoding_t enc, PBandwidthRequest_tokens *val)
  3213. {
  3214. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthRequest_tokens_ElmFn);
  3215. }
  3216. static int ASN1CALL ASN1Enc_BandwidthRequest_tokens_ElmFn(ASN1encoding_t enc, PBandwidthRequest_tokens val)
  3217. {
  3218. if (!ASN1Enc_ClearToken(enc, &val->value))
  3219. return 0;
  3220. return 1;
  3221. }
  3222. static int ASN1CALL ASN1Dec_BandwidthRequest_tokens(ASN1decoding_t dec, PBandwidthRequest_tokens *val)
  3223. {
  3224. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthRequest_tokens_ElmFn, sizeof(**val));
  3225. }
  3226. static int ASN1CALL ASN1Dec_BandwidthRequest_tokens_ElmFn(ASN1decoding_t dec, PBandwidthRequest_tokens val)
  3227. {
  3228. if (!ASN1Dec_ClearToken(dec, &val->value))
  3229. return 0;
  3230. return 1;
  3231. }
  3232. static void ASN1CALL ASN1Free_BandwidthRequest_tokens(PBandwidthRequest_tokens *val)
  3233. {
  3234. if (val) {
  3235. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthRequest_tokens_ElmFn);
  3236. }
  3237. }
  3238. static void ASN1CALL ASN1Free_BandwidthRequest_tokens_ElmFn(PBandwidthRequest_tokens val)
  3239. {
  3240. if (val) {
  3241. ASN1Free_ClearToken(&val->value);
  3242. }
  3243. }
  3244. static int ASN1CALL ASN1Enc_AdmissionReject_tokens(ASN1encoding_t enc, PAdmissionReject_tokens *val)
  3245. {
  3246. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_tokens_ElmFn);
  3247. }
  3248. static int ASN1CALL ASN1Enc_AdmissionReject_tokens_ElmFn(ASN1encoding_t enc, PAdmissionReject_tokens val)
  3249. {
  3250. if (!ASN1Enc_ClearToken(enc, &val->value))
  3251. return 0;
  3252. return 1;
  3253. }
  3254. static int ASN1CALL ASN1Dec_AdmissionReject_tokens(ASN1decoding_t dec, PAdmissionReject_tokens *val)
  3255. {
  3256. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_tokens_ElmFn, sizeof(**val));
  3257. }
  3258. static int ASN1CALL ASN1Dec_AdmissionReject_tokens_ElmFn(ASN1decoding_t dec, PAdmissionReject_tokens val)
  3259. {
  3260. if (!ASN1Dec_ClearToken(dec, &val->value))
  3261. return 0;
  3262. return 1;
  3263. }
  3264. static void ASN1CALL ASN1Free_AdmissionReject_tokens(PAdmissionReject_tokens *val)
  3265. {
  3266. if (val) {
  3267. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_tokens_ElmFn);
  3268. }
  3269. }
  3270. static void ASN1CALL ASN1Free_AdmissionReject_tokens_ElmFn(PAdmissionReject_tokens val)
  3271. {
  3272. if (val) {
  3273. ASN1Free_ClearToken(&val->value);
  3274. }
  3275. }
  3276. static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens(ASN1encoding_t enc, PAdmissionConfirm_tokens *val)
  3277. {
  3278. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_tokens_ElmFn);
  3279. }
  3280. static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_tokens val)
  3281. {
  3282. if (!ASN1Enc_ClearToken(enc, &val->value))
  3283. return 0;
  3284. return 1;
  3285. }
  3286. static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens(ASN1decoding_t dec, PAdmissionConfirm_tokens *val)
  3287. {
  3288. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_tokens_ElmFn, sizeof(**val));
  3289. }
  3290. static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_tokens val)
  3291. {
  3292. if (!ASN1Dec_ClearToken(dec, &val->value))
  3293. return 0;
  3294. return 1;
  3295. }
  3296. static void ASN1CALL ASN1Free_AdmissionConfirm_tokens(PAdmissionConfirm_tokens *val)
  3297. {
  3298. if (val) {
  3299. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_tokens_ElmFn);
  3300. }
  3301. }
  3302. static void ASN1CALL ASN1Free_AdmissionConfirm_tokens_ElmFn(PAdmissionConfirm_tokens val)
  3303. {
  3304. if (val) {
  3305. ASN1Free_ClearToken(&val->value);
  3306. }
  3307. }
  3308. static int ASN1CALL ASN1Enc_AdmissionRequest_tokens(ASN1encoding_t enc, PAdmissionRequest_tokens *val)
  3309. {
  3310. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_tokens_ElmFn);
  3311. }
  3312. static int ASN1CALL ASN1Enc_AdmissionRequest_tokens_ElmFn(ASN1encoding_t enc, PAdmissionRequest_tokens val)
  3313. {
  3314. if (!ASN1Enc_ClearToken(enc, &val->value))
  3315. return 0;
  3316. return 1;
  3317. }
  3318. static int ASN1CALL ASN1Dec_AdmissionRequest_tokens(ASN1decoding_t dec, PAdmissionRequest_tokens *val)
  3319. {
  3320. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_tokens_ElmFn, sizeof(**val));
  3321. }
  3322. static int ASN1CALL ASN1Dec_AdmissionRequest_tokens_ElmFn(ASN1decoding_t dec, PAdmissionRequest_tokens val)
  3323. {
  3324. if (!ASN1Dec_ClearToken(dec, &val->value))
  3325. return 0;
  3326. return 1;
  3327. }
  3328. static void ASN1CALL ASN1Free_AdmissionRequest_tokens(PAdmissionRequest_tokens *val)
  3329. {
  3330. if (val) {
  3331. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_tokens_ElmFn);
  3332. }
  3333. }
  3334. static void ASN1CALL ASN1Free_AdmissionRequest_tokens_ElmFn(PAdmissionRequest_tokens val)
  3335. {
  3336. if (val) {
  3337. ASN1Free_ClearToken(&val->value);
  3338. }
  3339. }
  3340. static int ASN1CALL ASN1Enc_UnregistrationReject_tokens(ASN1encoding_t enc, PUnregistrationReject_tokens *val)
  3341. {
  3342. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationReject_tokens_ElmFn);
  3343. }
  3344. static int ASN1CALL ASN1Enc_UnregistrationReject_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationReject_tokens val)
  3345. {
  3346. if (!ASN1Enc_ClearToken(enc, &val->value))
  3347. return 0;
  3348. return 1;
  3349. }
  3350. static int ASN1CALL ASN1Dec_UnregistrationReject_tokens(ASN1decoding_t dec, PUnregistrationReject_tokens *val)
  3351. {
  3352. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationReject_tokens_ElmFn, sizeof(**val));
  3353. }
  3354. static int ASN1CALL ASN1Dec_UnregistrationReject_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationReject_tokens val)
  3355. {
  3356. if (!ASN1Dec_ClearToken(dec, &val->value))
  3357. return 0;
  3358. return 1;
  3359. }
  3360. static void ASN1CALL ASN1Free_UnregistrationReject_tokens(PUnregistrationReject_tokens *val)
  3361. {
  3362. if (val) {
  3363. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationReject_tokens_ElmFn);
  3364. }
  3365. }
  3366. static void ASN1CALL ASN1Free_UnregistrationReject_tokens_ElmFn(PUnregistrationReject_tokens val)
  3367. {
  3368. if (val) {
  3369. ASN1Free_ClearToken(&val->value);
  3370. }
  3371. }
  3372. static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens(ASN1encoding_t enc, PUnregistrationConfirm_tokens *val)
  3373. {
  3374. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationConfirm_tokens_ElmFn);
  3375. }
  3376. static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationConfirm_tokens val)
  3377. {
  3378. if (!ASN1Enc_ClearToken(enc, &val->value))
  3379. return 0;
  3380. return 1;
  3381. }
  3382. static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens(ASN1decoding_t dec, PUnregistrationConfirm_tokens *val)
  3383. {
  3384. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationConfirm_tokens_ElmFn, sizeof(**val));
  3385. }
  3386. static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationConfirm_tokens val)
  3387. {
  3388. if (!ASN1Dec_ClearToken(dec, &val->value))
  3389. return 0;
  3390. return 1;
  3391. }
  3392. static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens(PUnregistrationConfirm_tokens *val)
  3393. {
  3394. if (val) {
  3395. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationConfirm_tokens_ElmFn);
  3396. }
  3397. }
  3398. static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens_ElmFn(PUnregistrationConfirm_tokens val)
  3399. {
  3400. if (val) {
  3401. ASN1Free_ClearToken(&val->value);
  3402. }
  3403. }
  3404. static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens(ASN1encoding_t enc, PUnregistrationRequest_tokens *val)
  3405. {
  3406. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_tokens_ElmFn);
  3407. }
  3408. static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_tokens val)
  3409. {
  3410. if (!ASN1Enc_ClearToken(enc, &val->value))
  3411. return 0;
  3412. return 1;
  3413. }
  3414. static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens(ASN1decoding_t dec, PUnregistrationRequest_tokens *val)
  3415. {
  3416. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_tokens_ElmFn, sizeof(**val));
  3417. }
  3418. static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_tokens val)
  3419. {
  3420. if (!ASN1Dec_ClearToken(dec, &val->value))
  3421. return 0;
  3422. return 1;
  3423. }
  3424. static void ASN1CALL ASN1Free_UnregistrationRequest_tokens(PUnregistrationRequest_tokens *val)
  3425. {
  3426. if (val) {
  3427. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_tokens_ElmFn);
  3428. }
  3429. }
  3430. static void ASN1CALL ASN1Free_UnregistrationRequest_tokens_ElmFn(PUnregistrationRequest_tokens val)
  3431. {
  3432. if (val) {
  3433. ASN1Free_ClearToken(&val->value);
  3434. }
  3435. }
  3436. static int ASN1CALL ASN1Enc_RegistrationReject_tokens(ASN1encoding_t enc, PRegistrationReject_tokens *val)
  3437. {
  3438. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationReject_tokens_ElmFn);
  3439. }
  3440. static int ASN1CALL ASN1Enc_RegistrationReject_tokens_ElmFn(ASN1encoding_t enc, PRegistrationReject_tokens val)
  3441. {
  3442. if (!ASN1Enc_ClearToken(enc, &val->value))
  3443. return 0;
  3444. return 1;
  3445. }
  3446. static int ASN1CALL ASN1Dec_RegistrationReject_tokens(ASN1decoding_t dec, PRegistrationReject_tokens *val)
  3447. {
  3448. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationReject_tokens_ElmFn, sizeof(**val));
  3449. }
  3450. static int ASN1CALL ASN1Dec_RegistrationReject_tokens_ElmFn(ASN1decoding_t dec, PRegistrationReject_tokens val)
  3451. {
  3452. if (!ASN1Dec_ClearToken(dec, &val->value))
  3453. return 0;
  3454. return 1;
  3455. }
  3456. static void ASN1CALL ASN1Free_RegistrationReject_tokens(PRegistrationReject_tokens *val)
  3457. {
  3458. if (val) {
  3459. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationReject_tokens_ElmFn);
  3460. }
  3461. }
  3462. static void ASN1CALL ASN1Free_RegistrationReject_tokens_ElmFn(PRegistrationReject_tokens val)
  3463. {
  3464. if (val) {
  3465. ASN1Free_ClearToken(&val->value);
  3466. }
  3467. }
  3468. static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens(ASN1encoding_t enc, PRegistrationConfirm_tokens *val)
  3469. {
  3470. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_tokens_ElmFn);
  3471. }
  3472. static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_tokens val)
  3473. {
  3474. if (!ASN1Enc_ClearToken(enc, &val->value))
  3475. return 0;
  3476. return 1;
  3477. }
  3478. static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens(ASN1decoding_t dec, PRegistrationConfirm_tokens *val)
  3479. {
  3480. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_tokens_ElmFn, sizeof(**val));
  3481. }
  3482. static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_tokens val)
  3483. {
  3484. if (!ASN1Dec_ClearToken(dec, &val->value))
  3485. return 0;
  3486. return 1;
  3487. }
  3488. static void ASN1CALL ASN1Free_RegistrationConfirm_tokens(PRegistrationConfirm_tokens *val)
  3489. {
  3490. if (val) {
  3491. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_tokens_ElmFn);
  3492. }
  3493. }
  3494. static void ASN1CALL ASN1Free_RegistrationConfirm_tokens_ElmFn(PRegistrationConfirm_tokens val)
  3495. {
  3496. if (val) {
  3497. ASN1Free_ClearToken(&val->value);
  3498. }
  3499. }
  3500. static int ASN1CALL ASN1Enc_RegistrationRequest_tokens(ASN1encoding_t enc, PRegistrationRequest_tokens *val)
  3501. {
  3502. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_tokens_ElmFn);
  3503. }
  3504. static int ASN1CALL ASN1Enc_RegistrationRequest_tokens_ElmFn(ASN1encoding_t enc, PRegistrationRequest_tokens val)
  3505. {
  3506. if (!ASN1Enc_ClearToken(enc, &val->value))
  3507. return 0;
  3508. return 1;
  3509. }
  3510. static int ASN1CALL ASN1Dec_RegistrationRequest_tokens(ASN1decoding_t dec, PRegistrationRequest_tokens *val)
  3511. {
  3512. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_tokens_ElmFn, sizeof(**val));
  3513. }
  3514. static int ASN1CALL ASN1Dec_RegistrationRequest_tokens_ElmFn(ASN1decoding_t dec, PRegistrationRequest_tokens val)
  3515. {
  3516. if (!ASN1Dec_ClearToken(dec, &val->value))
  3517. return 0;
  3518. return 1;
  3519. }
  3520. static void ASN1CALL ASN1Free_RegistrationRequest_tokens(PRegistrationRequest_tokens *val)
  3521. {
  3522. if (val) {
  3523. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_tokens_ElmFn);
  3524. }
  3525. }
  3526. static void ASN1CALL ASN1Free_RegistrationRequest_tokens_ElmFn(PRegistrationRequest_tokens val)
  3527. {
  3528. if (val) {
  3529. ASN1Free_ClearToken(&val->value);
  3530. }
  3531. }
  3532. static int ASN1CALL ASN1Enc_GatekeeperReject_tokens(ASN1encoding_t enc, PGatekeeperReject_tokens *val)
  3533. {
  3534. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperReject_tokens_ElmFn);
  3535. }
  3536. static int ASN1CALL ASN1Enc_GatekeeperReject_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperReject_tokens val)
  3537. {
  3538. if (!ASN1Enc_ClearToken(enc, &val->value))
  3539. return 0;
  3540. return 1;
  3541. }
  3542. static int ASN1CALL ASN1Dec_GatekeeperReject_tokens(ASN1decoding_t dec, PGatekeeperReject_tokens *val)
  3543. {
  3544. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperReject_tokens_ElmFn, sizeof(**val));
  3545. }
  3546. static int ASN1CALL ASN1Dec_GatekeeperReject_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperReject_tokens val)
  3547. {
  3548. if (!ASN1Dec_ClearToken(dec, &val->value))
  3549. return 0;
  3550. return 1;
  3551. }
  3552. static void ASN1CALL ASN1Free_GatekeeperReject_tokens(PGatekeeperReject_tokens *val)
  3553. {
  3554. if (val) {
  3555. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperReject_tokens_ElmFn);
  3556. }
  3557. }
  3558. static void ASN1CALL ASN1Free_GatekeeperReject_tokens_ElmFn(PGatekeeperReject_tokens val)
  3559. {
  3560. if (val) {
  3561. ASN1Free_ClearToken(&val->value);
  3562. }
  3563. }
  3564. static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens(ASN1encoding_t enc, PGatekeeperConfirm_tokens *val)
  3565. {
  3566. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_tokens_ElmFn);
  3567. }
  3568. static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_tokens val)
  3569. {
  3570. if (!ASN1Enc_ClearToken(enc, &val->value))
  3571. return 0;
  3572. return 1;
  3573. }
  3574. static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens(ASN1decoding_t dec, PGatekeeperConfirm_tokens *val)
  3575. {
  3576. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_tokens_ElmFn, sizeof(**val));
  3577. }
  3578. static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_tokens val)
  3579. {
  3580. if (!ASN1Dec_ClearToken(dec, &val->value))
  3581. return 0;
  3582. return 1;
  3583. }
  3584. static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens(PGatekeeperConfirm_tokens *val)
  3585. {
  3586. if (val) {
  3587. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_tokens_ElmFn);
  3588. }
  3589. }
  3590. static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens_ElmFn(PGatekeeperConfirm_tokens val)
  3591. {
  3592. if (val) {
  3593. ASN1Free_ClearToken(&val->value);
  3594. }
  3595. }
  3596. static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability *val)
  3597. {
  3598. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_authenticationCapability_ElmFn);
  3599. }
  3600. static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability val)
  3601. {
  3602. if (!ASN1Enc_AuthenticationMechanism(enc, &val->value))
  3603. return 0;
  3604. return 1;
  3605. }
  3606. static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability *val)
  3607. {
  3608. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_authenticationCapability_ElmFn, sizeof(**val));
  3609. }
  3610. static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability val)
  3611. {
  3612. if (!ASN1Dec_AuthenticationMechanism(dec, &val->value))
  3613. return 0;
  3614. return 1;
  3615. }
  3616. static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability(PGatekeeperRequest_authenticationCapability *val)
  3617. {
  3618. if (val) {
  3619. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_authenticationCapability_ElmFn);
  3620. }
  3621. }
  3622. static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability_ElmFn(PGatekeeperRequest_authenticationCapability val)
  3623. {
  3624. if (val) {
  3625. ASN1Free_AuthenticationMechanism(&val->value);
  3626. }
  3627. }
  3628. static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens(ASN1encoding_t enc, PGatekeeperRequest_tokens *val)
  3629. {
  3630. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_tokens_ElmFn);
  3631. }
  3632. static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_tokens val)
  3633. {
  3634. if (!ASN1Enc_ClearToken(enc, &val->value))
  3635. return 0;
  3636. return 1;
  3637. }
  3638. static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens(ASN1decoding_t dec, PGatekeeperRequest_tokens *val)
  3639. {
  3640. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_tokens_ElmFn, sizeof(**val));
  3641. }
  3642. static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_tokens val)
  3643. {
  3644. if (!ASN1Dec_ClearToken(dec, &val->value))
  3645. return 0;
  3646. return 1;
  3647. }
  3648. static void ASN1CALL ASN1Free_GatekeeperRequest_tokens(PGatekeeperRequest_tokens *val)
  3649. {
  3650. if (val) {
  3651. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_tokens_ElmFn);
  3652. }
  3653. }
  3654. static void ASN1CALL ASN1Free_GatekeeperRequest_tokens_ElmFn(PGatekeeperRequest_tokens val)
  3655. {
  3656. if (val) {
  3657. ASN1Free_ClearToken(&val->value);
  3658. }
  3659. }
  3660. static int ASN1CALL ASN1Enc_Endpoint_tokens(ASN1encoding_t enc, PEndpoint_tokens *val)
  3661. {
  3662. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_tokens_ElmFn);
  3663. }
  3664. static int ASN1CALL ASN1Enc_Endpoint_tokens_ElmFn(ASN1encoding_t enc, PEndpoint_tokens val)
  3665. {
  3666. if (!ASN1Enc_ClearToken(enc, &val->value))
  3667. return 0;
  3668. return 1;
  3669. }
  3670. static int ASN1CALL ASN1Dec_Endpoint_tokens(ASN1decoding_t dec, PEndpoint_tokens *val)
  3671. {
  3672. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_tokens_ElmFn, sizeof(**val));
  3673. }
  3674. static int ASN1CALL ASN1Dec_Endpoint_tokens_ElmFn(ASN1decoding_t dec, PEndpoint_tokens val)
  3675. {
  3676. if (!ASN1Dec_ClearToken(dec, &val->value))
  3677. return 0;
  3678. return 1;
  3679. }
  3680. static void ASN1CALL ASN1Free_Endpoint_tokens(PEndpoint_tokens *val)
  3681. {
  3682. if (val) {
  3683. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_tokens_ElmFn);
  3684. }
  3685. }
  3686. static void ASN1CALL ASN1Free_Endpoint_tokens_ElmFn(PEndpoint_tokens val)
  3687. {
  3688. if (val) {
  3689. ASN1Free_ClearToken(&val->value);
  3690. }
  3691. }
  3692. static int ASN1CALL ASN1Enc_Progress_UUIE_tokens(ASN1encoding_t enc, PProgress_UUIE_tokens *val)
  3693. {
  3694. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_tokens_ElmFn);
  3695. }
  3696. static int ASN1CALL ASN1Enc_Progress_UUIE_tokens_ElmFn(ASN1encoding_t enc, PProgress_UUIE_tokens val)
  3697. {
  3698. if (!ASN1Enc_ClearToken(enc, &val->value))
  3699. return 0;
  3700. return 1;
  3701. }
  3702. static int ASN1CALL ASN1Dec_Progress_UUIE_tokens(ASN1decoding_t dec, PProgress_UUIE_tokens *val)
  3703. {
  3704. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_tokens_ElmFn, sizeof(**val));
  3705. }
  3706. static int ASN1CALL ASN1Dec_Progress_UUIE_tokens_ElmFn(ASN1decoding_t dec, PProgress_UUIE_tokens val)
  3707. {
  3708. if (!ASN1Dec_ClearToken(dec, &val->value))
  3709. return 0;
  3710. return 1;
  3711. }
  3712. static void ASN1CALL ASN1Free_Progress_UUIE_tokens(PProgress_UUIE_tokens *val)
  3713. {
  3714. if (val) {
  3715. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_tokens_ElmFn);
  3716. }
  3717. }
  3718. static void ASN1CALL ASN1Free_Progress_UUIE_tokens_ElmFn(PProgress_UUIE_tokens val)
  3719. {
  3720. if (val) {
  3721. ASN1Free_ClearToken(&val->value);
  3722. }
  3723. }
  3724. static int ASN1CALL ASN1Enc_Facility_UUIE_tokens(ASN1encoding_t enc, PFacility_UUIE_tokens *val)
  3725. {
  3726. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_tokens_ElmFn);
  3727. }
  3728. static int ASN1CALL ASN1Enc_Facility_UUIE_tokens_ElmFn(ASN1encoding_t enc, PFacility_UUIE_tokens val)
  3729. {
  3730. if (!ASN1Enc_ClearToken(enc, &val->value))
  3731. return 0;
  3732. return 1;
  3733. }
  3734. static int ASN1CALL ASN1Dec_Facility_UUIE_tokens(ASN1decoding_t dec, PFacility_UUIE_tokens *val)
  3735. {
  3736. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_tokens_ElmFn, sizeof(**val));
  3737. }
  3738. static int ASN1CALL ASN1Dec_Facility_UUIE_tokens_ElmFn(ASN1decoding_t dec, PFacility_UUIE_tokens val)
  3739. {
  3740. if (!ASN1Dec_ClearToken(dec, &val->value))
  3741. return 0;
  3742. return 1;
  3743. }
  3744. static void ASN1CALL ASN1Free_Facility_UUIE_tokens(PFacility_UUIE_tokens *val)
  3745. {
  3746. if (val) {
  3747. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_tokens_ElmFn);
  3748. }
  3749. }
  3750. static void ASN1CALL ASN1Free_Facility_UUIE_tokens_ElmFn(PFacility_UUIE_tokens val)
  3751. {
  3752. if (val) {
  3753. ASN1Free_ClearToken(&val->value);
  3754. }
  3755. }
  3756. static int ASN1CALL ASN1Enc_Setup_UUIE_tokens(ASN1encoding_t enc, PSetup_UUIE_tokens *val)
  3757. {
  3758. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_tokens_ElmFn);
  3759. }
  3760. static int ASN1CALL ASN1Enc_Setup_UUIE_tokens_ElmFn(ASN1encoding_t enc, PSetup_UUIE_tokens val)
  3761. {
  3762. if (!ASN1Enc_ClearToken(enc, &val->value))
  3763. return 0;
  3764. return 1;
  3765. }
  3766. static int ASN1CALL ASN1Dec_Setup_UUIE_tokens(ASN1decoding_t dec, PSetup_UUIE_tokens *val)
  3767. {
  3768. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_tokens_ElmFn, sizeof(**val));
  3769. }
  3770. static int ASN1CALL ASN1Dec_Setup_UUIE_tokens_ElmFn(ASN1decoding_t dec, PSetup_UUIE_tokens val)
  3771. {
  3772. if (!ASN1Dec_ClearToken(dec, &val->value))
  3773. return 0;
  3774. return 1;
  3775. }
  3776. static void ASN1CALL ASN1Free_Setup_UUIE_tokens(PSetup_UUIE_tokens *val)
  3777. {
  3778. if (val) {
  3779. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_tokens_ElmFn);
  3780. }
  3781. }
  3782. static void ASN1CALL ASN1Free_Setup_UUIE_tokens_ElmFn(PSetup_UUIE_tokens val)
  3783. {
  3784. if (val) {
  3785. ASN1Free_ClearToken(&val->value);
  3786. }
  3787. }
  3788. static int ASN1CALL ASN1Enc_Connect_UUIE_tokens(ASN1encoding_t enc, PConnect_UUIE_tokens *val)
  3789. {
  3790. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_tokens_ElmFn);
  3791. }
  3792. static int ASN1CALL ASN1Enc_Connect_UUIE_tokens_ElmFn(ASN1encoding_t enc, PConnect_UUIE_tokens val)
  3793. {
  3794. if (!ASN1Enc_ClearToken(enc, &val->value))
  3795. return 0;
  3796. return 1;
  3797. }
  3798. static int ASN1CALL ASN1Dec_Connect_UUIE_tokens(ASN1decoding_t dec, PConnect_UUIE_tokens *val)
  3799. {
  3800. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_tokens_ElmFn, sizeof(**val));
  3801. }
  3802. static int ASN1CALL ASN1Dec_Connect_UUIE_tokens_ElmFn(ASN1decoding_t dec, PConnect_UUIE_tokens val)
  3803. {
  3804. if (!ASN1Dec_ClearToken(dec, &val->value))
  3805. return 0;
  3806. return 1;
  3807. }
  3808. static void ASN1CALL ASN1Free_Connect_UUIE_tokens(PConnect_UUIE_tokens *val)
  3809. {
  3810. if (val) {
  3811. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_tokens_ElmFn);
  3812. }
  3813. }
  3814. static void ASN1CALL ASN1Free_Connect_UUIE_tokens_ElmFn(PConnect_UUIE_tokens val)
  3815. {
  3816. if (val) {
  3817. ASN1Free_ClearToken(&val->value);
  3818. }
  3819. }
  3820. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens(ASN1encoding_t enc, PCallProceeding_UUIE_tokens *val)
  3821. {
  3822. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_tokens_ElmFn);
  3823. }
  3824. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_tokens val)
  3825. {
  3826. if (!ASN1Enc_ClearToken(enc, &val->value))
  3827. return 0;
  3828. return 1;
  3829. }
  3830. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens(ASN1decoding_t dec, PCallProceeding_UUIE_tokens *val)
  3831. {
  3832. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_tokens_ElmFn, sizeof(**val));
  3833. }
  3834. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_tokens val)
  3835. {
  3836. if (!ASN1Dec_ClearToken(dec, &val->value))
  3837. return 0;
  3838. return 1;
  3839. }
  3840. static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens(PCallProceeding_UUIE_tokens *val)
  3841. {
  3842. if (val) {
  3843. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_tokens_ElmFn);
  3844. }
  3845. }
  3846. static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens_ElmFn(PCallProceeding_UUIE_tokens val)
  3847. {
  3848. if (val) {
  3849. ASN1Free_ClearToken(&val->value);
  3850. }
  3851. }
  3852. static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens(ASN1encoding_t enc, PAlerting_UUIE_tokens *val)
  3853. {
  3854. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_tokens_ElmFn);
  3855. }
  3856. static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_tokens val)
  3857. {
  3858. if (!ASN1Enc_ClearToken(enc, &val->value))
  3859. return 0;
  3860. return 1;
  3861. }
  3862. static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens(ASN1decoding_t dec, PAlerting_UUIE_tokens *val)
  3863. {
  3864. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_tokens_ElmFn, sizeof(**val));
  3865. }
  3866. static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_tokens val)
  3867. {
  3868. if (!ASN1Dec_ClearToken(dec, &val->value))
  3869. return 0;
  3870. return 1;
  3871. }
  3872. static void ASN1CALL ASN1Free_Alerting_UUIE_tokens(PAlerting_UUIE_tokens *val)
  3873. {
  3874. if (val) {
  3875. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_tokens_ElmFn);
  3876. }
  3877. }
  3878. static void ASN1CALL ASN1Free_Alerting_UUIE_tokens_ElmFn(PAlerting_UUIE_tokens val)
  3879. {
  3880. if (val) {
  3881. ASN1Free_ClearToken(&val->value);
  3882. }
  3883. }
  3884. static int ASN1CALL ASN1Enc_SIGNED_EncodedGeneralToken(ASN1encoding_t enc, SIGNED_EncodedGeneralToken *val)
  3885. {
  3886. if (!ASN1Enc_EncodedGeneralToken(enc, &(val)->toBeSigned))
  3887. return 0;
  3888. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3889. return 0;
  3890. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3891. return 0;
  3892. if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
  3893. return 0;
  3894. return 1;
  3895. }
  3896. static int ASN1CALL ASN1Dec_SIGNED_EncodedGeneralToken(ASN1decoding_t dec, SIGNED_EncodedGeneralToken *val)
  3897. {
  3898. if (!ASN1Dec_EncodedGeneralToken(dec, &(val)->toBeSigned))
  3899. return 0;
  3900. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3901. return 0;
  3902. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3903. return 0;
  3904. if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
  3905. return 0;
  3906. return 1;
  3907. }
  3908. static void ASN1CALL ASN1Free_SIGNED_EncodedGeneralToken(SIGNED_EncodedGeneralToken *val)
  3909. {
  3910. if (val) {
  3911. ASN1Free_EncodedGeneralToken(&(val)->toBeSigned);
  3912. ASN1objectidentifier_free(&(val)->algorithmOID);
  3913. ASN1Free_Params(&(val)->paramS);
  3914. ASN1bitstring_free(&(val)->signature);
  3915. }
  3916. }
  3917. static int ASN1CALL ASN1Enc_ENCRYPTED(ASN1encoding_t enc, ENCRYPTED *val)
  3918. {
  3919. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3920. return 0;
  3921. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3922. return 0;
  3923. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->encryptedData))
  3924. return 0;
  3925. return 1;
  3926. }
  3927. static int ASN1CALL ASN1Dec_ENCRYPTED(ASN1decoding_t dec, ENCRYPTED *val)
  3928. {
  3929. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3930. return 0;
  3931. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3932. return 0;
  3933. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->encryptedData))
  3934. return 0;
  3935. return 1;
  3936. }
  3937. static void ASN1CALL ASN1Free_ENCRYPTED(ENCRYPTED *val)
  3938. {
  3939. if (val) {
  3940. ASN1objectidentifier_free(&(val)->algorithmOID);
  3941. ASN1Free_Params(&(val)->paramS);
  3942. ASN1octetstring_free(&(val)->encryptedData);
  3943. }
  3944. }
  3945. static int ASN1CALL ASN1Enc_HASHED(ASN1encoding_t enc, HASHED *val)
  3946. {
  3947. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3948. return 0;
  3949. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3950. return 0;
  3951. if (!ASN1PEREncFragmented(enc, ((val)->hash).length, ((val)->hash).value, 1))
  3952. return 0;
  3953. return 1;
  3954. }
  3955. static int ASN1CALL ASN1Dec_HASHED(ASN1decoding_t dec, HASHED *val)
  3956. {
  3957. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3958. return 0;
  3959. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3960. return 0;
  3961. if (!ASN1PERDecFragmented(dec, &((val)->hash).length, &((val)->hash).value, 1))
  3962. return 0;
  3963. return 1;
  3964. }
  3965. static void ASN1CALL ASN1Free_HASHED(HASHED *val)
  3966. {
  3967. if (val) {
  3968. ASN1objectidentifier_free(&(val)->algorithmOID);
  3969. ASN1Free_Params(&(val)->paramS);
  3970. ASN1bitstring_free(&(val)->hash);
  3971. }
  3972. }
  3973. static int ASN1CALL ASN1Enc_SIGNED_EncodedPwdCertToken(ASN1encoding_t enc, SIGNED_EncodedPwdCertToken *val)
  3974. {
  3975. if (!ASN1Enc_EncodedPwdCertToken(enc, &(val)->toBeSigned))
  3976. return 0;
  3977. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3978. return 0;
  3979. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3980. return 0;
  3981. if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
  3982. return 0;
  3983. return 1;
  3984. }
  3985. static int ASN1CALL ASN1Dec_SIGNED_EncodedPwdCertToken(ASN1decoding_t dec, SIGNED_EncodedPwdCertToken *val)
  3986. {
  3987. if (!ASN1Dec_EncodedPwdCertToken(dec, &(val)->toBeSigned))
  3988. return 0;
  3989. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3990. return 0;
  3991. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3992. return 0;
  3993. if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
  3994. return 0;
  3995. return 1;
  3996. }
  3997. static void ASN1CALL ASN1Free_SIGNED_EncodedPwdCertToken(SIGNED_EncodedPwdCertToken *val)
  3998. {
  3999. if (val) {
  4000. ASN1Free_EncodedPwdCertToken(&(val)->toBeSigned);
  4001. ASN1objectidentifier_free(&(val)->algorithmOID);
  4002. ASN1Free_Params(&(val)->paramS);
  4003. ASN1bitstring_free(&(val)->signature);
  4004. }
  4005. }
  4006. static int ASN1CALL ASN1Enc_Information_UUIE(ASN1encoding_t enc, Information_UUIE *val)
  4007. {
  4008. ASN1octet_t o[1];
  4009. ASN1uint32_t y;
  4010. ASN1encoding_t ee;
  4011. CopyMemory(o, (val)->o, 1);
  4012. o[0] |= 0x80;
  4013. y = ASN1PEREncCheckExtensions(1, (val)->o + 0);
  4014. if (!ASN1PEREncBitVal(enc, 1, y))
  4015. return 0;
  4016. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  4017. return 0;
  4018. if (y) {
  4019. if (!ASN1PEREncNormallySmallBits(enc, 1, o + 0))
  4020. return 0;
  4021. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  4022. return 0;
  4023. if (o[0] & 0x80) {
  4024. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  4025. return 0;
  4026. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4027. return 0;
  4028. }
  4029. ASN1_CloseEncoder2(ee);
  4030. }
  4031. return 1;
  4032. }
  4033. static int ASN1CALL ASN1Dec_Information_UUIE(ASN1decoding_t dec, Information_UUIE *val)
  4034. {
  4035. ASN1uint32_t y;
  4036. ASN1decoding_t dd;
  4037. ASN1octet_t *db;
  4038. ASN1uint32_t ds;
  4039. ASN1uint32_t i;
  4040. ASN1uint32_t e;
  4041. if (!ASN1PERDecExtensionBit(dec, &y))
  4042. return 0;
  4043. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  4044. return 0;
  4045. if (!y) {
  4046. ZeroMemory((val)->o + 0, 1);
  4047. } else {
  4048. if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 0))
  4049. return 0;
  4050. if ((val)->o[0] & 0x80) {
  4051. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4052. return 0;
  4053. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  4054. return 0;
  4055. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  4056. return 0;
  4057. ASN1_CloseDecoder(dd);
  4058. ASN1Free(db);
  4059. }
  4060. for (i = 0; i < e; i++) {
  4061. if (!ASN1PERDecSkipFragmented(dec, 8))
  4062. return 0;
  4063. }
  4064. }
  4065. return 1;
  4066. }
  4067. static void ASN1CALL ASN1Free_Information_UUIE(Information_UUIE *val)
  4068. {
  4069. if (val) {
  4070. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  4071. if ((val)->o[0] & 0x80) {
  4072. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  4073. }
  4074. }
  4075. }
  4076. static int ASN1CALL ASN1Enc_ReleaseComplete_UUIE(ASN1encoding_t enc, ReleaseComplete_UUIE *val)
  4077. {
  4078. ASN1octet_t o[2];
  4079. ASN1uint32_t y;
  4080. ASN1encoding_t ee;
  4081. CopyMemory(o, (val)->o, 2);
  4082. o[1] |= 0x80;
  4083. y = ASN1PEREncCheckExtensions(1, (val)->o + 1);
  4084. if (!ASN1PEREncBitVal(enc, 1, y))
  4085. return 0;
  4086. if (!ASN1PEREncBits(enc, 1, o))
  4087. return 0;
  4088. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  4089. return 0;
  4090. if (o[0] & 0x80) {
  4091. if (!ASN1Enc_ReleaseCompleteReason(enc, &(val)->reason))
  4092. return 0;
  4093. }
  4094. if (y) {
  4095. if (!ASN1PEREncNormallySmallBits(enc, 1, o + 1))
  4096. return 0;
  4097. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  4098. return 0;
  4099. if (o[1] & 0x80) {
  4100. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  4101. return 0;
  4102. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4103. return 0;
  4104. }
  4105. ASN1_CloseEncoder2(ee);
  4106. }
  4107. return 1;
  4108. }
  4109. static int ASN1CALL ASN1Dec_ReleaseComplete_UUIE(ASN1decoding_t dec, ReleaseComplete_UUIE *val)
  4110. {
  4111. ASN1uint32_t y;
  4112. ASN1decoding_t dd;
  4113. ASN1octet_t *db;
  4114. ASN1uint32_t ds;
  4115. ASN1uint32_t i;
  4116. ASN1uint32_t e;
  4117. if (!ASN1PERDecExtensionBit(dec, &y))
  4118. return 0;
  4119. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  4120. return 0;
  4121. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  4122. return 0;
  4123. if ((val)->o[0] & 0x80) {
  4124. if (!ASN1Dec_ReleaseCompleteReason(dec, &(val)->reason))
  4125. return 0;
  4126. }
  4127. if (!y) {
  4128. ZeroMemory((val)->o + 1, 1);
  4129. } else {
  4130. if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 1))
  4131. return 0;
  4132. if ((val)->o[1] & 0x80) {
  4133. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4134. return 0;
  4135. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  4136. return 0;
  4137. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  4138. return 0;
  4139. ASN1_CloseDecoder(dd);
  4140. ASN1Free(db);
  4141. }
  4142. for (i = 0; i < e; i++) {
  4143. if (!ASN1PERDecSkipFragmented(dec, 8))
  4144. return 0;
  4145. }
  4146. }
  4147. return 1;
  4148. }
  4149. static void ASN1CALL ASN1Free_ReleaseComplete_UUIE(ReleaseComplete_UUIE *val)
  4150. {
  4151. if (val) {
  4152. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  4153. if ((val)->o[1] & 0x80) {
  4154. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  4155. }
  4156. }
  4157. }
  4158. static int ASN1CALL ASN1Enc_VendorIdentifier(ASN1encoding_t enc, VendorIdentifier *val)
  4159. {
  4160. if (!ASN1PEREncExtensionBitClear(enc))
  4161. return 0;
  4162. if (!ASN1PEREncBits(enc, 2, (val)->o))
  4163. return 0;
  4164. if (!ASN1Enc_H221NonStandard(enc, &(val)->vendor))
  4165. return 0;
  4166. if ((val)->o[0] & 0x80) {
  4167. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->productId, 1, 256, 8))
  4168. return 0;
  4169. }
  4170. if ((val)->o[0] & 0x40) {
  4171. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->versionId, 1, 256, 8))
  4172. return 0;
  4173. }
  4174. return 1;
  4175. }
  4176. static int ASN1CALL ASN1Dec_VendorIdentifier(ASN1decoding_t dec, VendorIdentifier *val)
  4177. {
  4178. ASN1uint32_t y;
  4179. if (!ASN1PERDecExtensionBit(dec, &y))
  4180. return 0;
  4181. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  4182. return 0;
  4183. if (!ASN1Dec_H221NonStandard(dec, &(val)->vendor))
  4184. return 0;
  4185. if ((val)->o[0] & 0x80) {
  4186. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->productId, 1, 256, 8))
  4187. return 0;
  4188. }
  4189. if ((val)->o[0] & 0x40) {
  4190. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->versionId, 1, 256, 8))
  4191. return 0;
  4192. }
  4193. if (y) {
  4194. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4195. return 0;
  4196. }
  4197. return 1;
  4198. }
  4199. static void ASN1CALL ASN1Free_VendorIdentifier(VendorIdentifier *val)
  4200. {
  4201. if (val) {
  4202. if ((val)->o[0] & 0x80) {
  4203. }
  4204. if ((val)->o[0] & 0x40) {
  4205. }
  4206. }
  4207. }
  4208. static int ASN1CALL ASN1Enc_H225NonStandardParameter(ASN1encoding_t enc, H225NonStandardParameter *val)
  4209. {
  4210. if (!ASN1Enc_H225NonStandardIdentifier(enc, &(val)->nonStandardIdentifier))
  4211. return 0;
  4212. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
  4213. return 0;
  4214. return 1;
  4215. }
  4216. static int ASN1CALL ASN1Dec_H225NonStandardParameter(ASN1decoding_t dec, H225NonStandardParameter *val)
  4217. {
  4218. if (!ASN1Dec_H225NonStandardIdentifier(dec, &(val)->nonStandardIdentifier))
  4219. return 0;
  4220. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
  4221. return 0;
  4222. return 1;
  4223. }
  4224. static void ASN1CALL ASN1Free_H225NonStandardParameter(H225NonStandardParameter *val)
  4225. {
  4226. if (val) {
  4227. ASN1Free_H225NonStandardIdentifier(&(val)->nonStandardIdentifier);
  4228. ASN1octetstring_free(&(val)->data);
  4229. }
  4230. }
  4231. static ASN1stringtableentry_t PublicPartyNumber_publicNumberDigits_StringTableEntries[] = {
  4232. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  4233. { 48, 57, 3 },
  4234. };
  4235. static ASN1stringtable_t PublicPartyNumber_publicNumberDigits_StringTable = {
  4236. 4, PublicPartyNumber_publicNumberDigits_StringTableEntries
  4237. };
  4238. static int ASN1CALL ASN1Enc_PublicPartyNumber(ASN1encoding_t enc, PublicPartyNumber *val)
  4239. {
  4240. ASN1uint32_t t;
  4241. if (!ASN1Enc_PublicTypeOfNumber(enc, &(val)->publicTypeOfNumber))
  4242. return 0;
  4243. t = lstrlenA((val)->publicNumberDigits);
  4244. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  4245. return 0;
  4246. ASN1PEREncAlignment(enc);
  4247. if (!ASN1PEREncTableCharString(enc, t, (val)->publicNumberDigits, 4, &PublicPartyNumber_publicNumberDigits_StringTable))
  4248. return 0;
  4249. return 1;
  4250. }
  4251. static int ASN1CALL ASN1Dec_PublicPartyNumber(ASN1decoding_t dec, PublicPartyNumber *val)
  4252. {
  4253. ASN1uint32_t l;
  4254. if (!ASN1Dec_PublicTypeOfNumber(dec, &(val)->publicTypeOfNumber))
  4255. return 0;
  4256. if (!ASN1PERDecU32Val(dec, 7, &l))
  4257. return 0;
  4258. l += 1;
  4259. ASN1PERDecAlignment(dec);
  4260. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->publicNumberDigits, 4, &PublicPartyNumber_publicNumberDigits_StringTable))
  4261. return 0;
  4262. return 1;
  4263. }
  4264. static void ASN1CALL ASN1Free_PublicPartyNumber(PublicPartyNumber *val)
  4265. {
  4266. if (val) {
  4267. }
  4268. }
  4269. static ASN1stringtableentry_t PrivatePartyNumber_privateNumberDigits_StringTableEntries[] = {
  4270. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  4271. { 48, 57, 3 },
  4272. };
  4273. static ASN1stringtable_t PrivatePartyNumber_privateNumberDigits_StringTable = {
  4274. 4, PrivatePartyNumber_privateNumberDigits_StringTableEntries
  4275. };
  4276. static int ASN1CALL ASN1Enc_PrivatePartyNumber(ASN1encoding_t enc, PrivatePartyNumber *val)
  4277. {
  4278. ASN1uint32_t t;
  4279. if (!ASN1Enc_PrivateTypeOfNumber(enc, &(val)->privateTypeOfNumber))
  4280. return 0;
  4281. t = lstrlenA((val)->privateNumberDigits);
  4282. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  4283. return 0;
  4284. ASN1PEREncAlignment(enc);
  4285. if (!ASN1PEREncTableCharString(enc, t, (val)->privateNumberDigits, 4, &PrivatePartyNumber_privateNumberDigits_StringTable))
  4286. return 0;
  4287. return 1;
  4288. }
  4289. static int ASN1CALL ASN1Dec_PrivatePartyNumber(ASN1decoding_t dec, PrivatePartyNumber *val)
  4290. {
  4291. ASN1uint32_t l;
  4292. if (!ASN1Dec_PrivateTypeOfNumber(dec, &(val)->privateTypeOfNumber))
  4293. return 0;
  4294. if (!ASN1PERDecU32Val(dec, 7, &l))
  4295. return 0;
  4296. l += 1;
  4297. ASN1PERDecAlignment(dec);
  4298. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->privateNumberDigits, 4, &PrivatePartyNumber_privateNumberDigits_StringTable))
  4299. return 0;
  4300. return 1;
  4301. }
  4302. static void ASN1CALL ASN1Free_PrivatePartyNumber(PrivatePartyNumber *val)
  4303. {
  4304. if (val) {
  4305. }
  4306. }
  4307. static int ASN1CALL ASN1Enc_SecurityServiceMode(ASN1encoding_t enc, SecurityServiceMode *val)
  4308. {
  4309. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4310. return 0;
  4311. switch ((val)->choice) {
  4312. case 1:
  4313. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4314. return 0;
  4315. break;
  4316. case 2:
  4317. break;
  4318. case 3:
  4319. break;
  4320. default:
  4321. /* impossible */
  4322. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4323. return 0;
  4324. }
  4325. return 1;
  4326. }
  4327. static int ASN1CALL ASN1Dec_SecurityServiceMode(ASN1decoding_t dec, SecurityServiceMode *val)
  4328. {
  4329. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4330. return 0;
  4331. switch ((val)->choice) {
  4332. case 1:
  4333. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4334. return 0;
  4335. break;
  4336. case 2:
  4337. break;
  4338. case 3:
  4339. break;
  4340. case 0:
  4341. /* extension case */
  4342. if (!ASN1PERDecSkipFragmented(dec, 8))
  4343. return 0;
  4344. break;
  4345. default:
  4346. /* impossible */
  4347. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4348. return 0;
  4349. }
  4350. return 1;
  4351. }
  4352. static void ASN1CALL ASN1Free_SecurityServiceMode(SecurityServiceMode *val)
  4353. {
  4354. if (val) {
  4355. switch ((val)->choice) {
  4356. case 1:
  4357. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4358. break;
  4359. }
  4360. }
  4361. }
  4362. static int ASN1CALL ASN1Enc_SecurityCapabilities(ASN1encoding_t enc, SecurityCapabilities *val)
  4363. {
  4364. if (!ASN1PEREncExtensionBitClear(enc))
  4365. return 0;
  4366. if (!ASN1PEREncBits(enc, 1, (val)->o))
  4367. return 0;
  4368. if ((val)->o[0] & 0x80) {
  4369. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandard))
  4370. return 0;
  4371. }
  4372. if (!ASN1Enc_SecurityServiceMode(enc, &(val)->encryption))
  4373. return 0;
  4374. if (!ASN1Enc_SecurityServiceMode(enc, &(val)->authenticaton))
  4375. return 0;
  4376. if (!ASN1Enc_SecurityServiceMode(enc, &(val)->integrity))
  4377. return 0;
  4378. return 1;
  4379. }
  4380. static int ASN1CALL ASN1Dec_SecurityCapabilities(ASN1decoding_t dec, SecurityCapabilities *val)
  4381. {
  4382. ASN1uint32_t y;
  4383. if (!ASN1PERDecExtensionBit(dec, &y))
  4384. return 0;
  4385. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  4386. return 0;
  4387. if ((val)->o[0] & 0x80) {
  4388. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandard))
  4389. return 0;
  4390. }
  4391. if (!ASN1Dec_SecurityServiceMode(dec, &(val)->encryption))
  4392. return 0;
  4393. if (!ASN1Dec_SecurityServiceMode(dec, &(val)->authenticaton))
  4394. return 0;
  4395. if (!ASN1Dec_SecurityServiceMode(dec, &(val)->integrity))
  4396. return 0;
  4397. if (y) {
  4398. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4399. return 0;
  4400. }
  4401. return 1;
  4402. }
  4403. static void ASN1CALL ASN1Free_SecurityCapabilities(SecurityCapabilities *val)
  4404. {
  4405. if (val) {
  4406. if ((val)->o[0] & 0x80) {
  4407. ASN1Free_H225NonStandardParameter(&(val)->nonStandard);
  4408. }
  4409. ASN1Free_SecurityServiceMode(&(val)->encryption);
  4410. ASN1Free_SecurityServiceMode(&(val)->authenticaton);
  4411. ASN1Free_SecurityServiceMode(&(val)->integrity);
  4412. }
  4413. }
  4414. static int ASN1CALL ASN1Enc_H245Security(ASN1encoding_t enc, H245Security *val)
  4415. {
  4416. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4417. return 0;
  4418. switch ((val)->choice) {
  4419. case 1:
  4420. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4421. return 0;
  4422. break;
  4423. case 2:
  4424. break;
  4425. case 3:
  4426. if (!ASN1Enc_SecurityCapabilities(enc, &(val)->u.tls))
  4427. return 0;
  4428. break;
  4429. case 4:
  4430. if (!ASN1Enc_SecurityCapabilities(enc, &(val)->u.ipsec))
  4431. return 0;
  4432. break;
  4433. default:
  4434. /* impossible */
  4435. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4436. return 0;
  4437. }
  4438. return 1;
  4439. }
  4440. static int ASN1CALL ASN1Dec_H245Security(ASN1decoding_t dec, H245Security *val)
  4441. {
  4442. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4443. return 0;
  4444. switch ((val)->choice) {
  4445. case 1:
  4446. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4447. return 0;
  4448. break;
  4449. case 2:
  4450. break;
  4451. case 3:
  4452. if (!ASN1Dec_SecurityCapabilities(dec, &(val)->u.tls))
  4453. return 0;
  4454. break;
  4455. case 4:
  4456. if (!ASN1Dec_SecurityCapabilities(dec, &(val)->u.ipsec))
  4457. return 0;
  4458. break;
  4459. case 0:
  4460. /* extension case */
  4461. if (!ASN1PERDecSkipFragmented(dec, 8))
  4462. return 0;
  4463. break;
  4464. default:
  4465. /* impossible */
  4466. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4467. return 0;
  4468. }
  4469. return 1;
  4470. }
  4471. static void ASN1CALL ASN1Free_H245Security(H245Security *val)
  4472. {
  4473. if (val) {
  4474. switch ((val)->choice) {
  4475. case 1:
  4476. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4477. break;
  4478. case 3:
  4479. ASN1Free_SecurityCapabilities(&(val)->u.tls);
  4480. break;
  4481. case 4:
  4482. ASN1Free_SecurityCapabilities(&(val)->u.ipsec);
  4483. break;
  4484. }
  4485. }
  4486. }
  4487. static int ASN1CALL ASN1Enc_QseriesOptions(ASN1encoding_t enc, QseriesOptions *val)
  4488. {
  4489. if (!ASN1PEREncExtensionBitClear(enc))
  4490. return 0;
  4491. if (!ASN1PEREncBoolean(enc, (val)->q932Full))
  4492. return 0;
  4493. if (!ASN1PEREncBoolean(enc, (val)->q951Full))
  4494. return 0;
  4495. if (!ASN1PEREncBoolean(enc, (val)->q952Full))
  4496. return 0;
  4497. if (!ASN1PEREncBoolean(enc, (val)->q953Full))
  4498. return 0;
  4499. if (!ASN1PEREncBoolean(enc, (val)->q955Full))
  4500. return 0;
  4501. if (!ASN1PEREncBoolean(enc, (val)->q956Full))
  4502. return 0;
  4503. if (!ASN1PEREncBoolean(enc, (val)->q957Full))
  4504. return 0;
  4505. if (!ASN1Enc_Q954Details(enc, &(val)->q954Info))
  4506. return 0;
  4507. return 1;
  4508. }
  4509. static int ASN1CALL ASN1Dec_QseriesOptions(ASN1decoding_t dec, QseriesOptions *val)
  4510. {
  4511. ASN1uint32_t y;
  4512. if (!ASN1PERDecExtensionBit(dec, &y))
  4513. return 0;
  4514. if (!ASN1PERDecBoolean(dec, &(val)->q932Full))
  4515. return 0;
  4516. if (!ASN1PERDecBoolean(dec, &(val)->q951Full))
  4517. return 0;
  4518. if (!ASN1PERDecBoolean(dec, &(val)->q952Full))
  4519. return 0;
  4520. if (!ASN1PERDecBoolean(dec, &(val)->q953Full))
  4521. return 0;
  4522. if (!ASN1PERDecBoolean(dec, &(val)->q955Full))
  4523. return 0;
  4524. if (!ASN1PERDecBoolean(dec, &(val)->q956Full))
  4525. return 0;
  4526. if (!ASN1PERDecBoolean(dec, &(val)->q957Full))
  4527. return 0;
  4528. if (!ASN1Dec_Q954Details(dec, &(val)->q954Info))
  4529. return 0;
  4530. if (y) {
  4531. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4532. return 0;
  4533. }
  4534. return 1;
  4535. }
  4536. static int ASN1CALL ASN1Enc_EncryptIntAlg(ASN1encoding_t enc, EncryptIntAlg *val)
  4537. {
  4538. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  4539. return 0;
  4540. switch ((val)->choice) {
  4541. case 1:
  4542. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4543. return 0;
  4544. break;
  4545. case 2:
  4546. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.isoAlgorithm))
  4547. return 0;
  4548. break;
  4549. default:
  4550. /* impossible */
  4551. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4552. return 0;
  4553. }
  4554. return 1;
  4555. }
  4556. static int ASN1CALL ASN1Dec_EncryptIntAlg(ASN1decoding_t dec, EncryptIntAlg *val)
  4557. {
  4558. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  4559. return 0;
  4560. switch ((val)->choice) {
  4561. case 1:
  4562. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4563. return 0;
  4564. break;
  4565. case 2:
  4566. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.isoAlgorithm))
  4567. return 0;
  4568. break;
  4569. case 0:
  4570. /* extension case */
  4571. if (!ASN1PERDecSkipFragmented(dec, 8))
  4572. return 0;
  4573. break;
  4574. default:
  4575. /* impossible */
  4576. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4577. return 0;
  4578. }
  4579. return 1;
  4580. }
  4581. static void ASN1CALL ASN1Free_EncryptIntAlg(EncryptIntAlg *val)
  4582. {
  4583. if (val) {
  4584. switch ((val)->choice) {
  4585. case 1:
  4586. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4587. break;
  4588. case 2:
  4589. ASN1objectidentifier_free(&(val)->u.isoAlgorithm);
  4590. break;
  4591. }
  4592. }
  4593. }
  4594. static int ASN1CALL ASN1Enc_NonIsoIntegrityMechanism(ASN1encoding_t enc, NonIsoIntegrityMechanism *val)
  4595. {
  4596. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4597. return 0;
  4598. switch ((val)->choice) {
  4599. case 1:
  4600. break;
  4601. case 2:
  4602. if (!ASN1Enc_EncryptIntAlg(enc, &(val)->u.hMAC_iso10118_2_s))
  4603. return 0;
  4604. break;
  4605. case 3:
  4606. if (!ASN1Enc_EncryptIntAlg(enc, &(val)->u.hMAC_iso10118_2_l))
  4607. return 0;
  4608. break;
  4609. case 4:
  4610. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.hMAC_iso10118_3))
  4611. return 0;
  4612. break;
  4613. default:
  4614. /* impossible */
  4615. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4616. return 0;
  4617. }
  4618. return 1;
  4619. }
  4620. static int ASN1CALL ASN1Dec_NonIsoIntegrityMechanism(ASN1decoding_t dec, NonIsoIntegrityMechanism *val)
  4621. {
  4622. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4623. return 0;
  4624. switch ((val)->choice) {
  4625. case 1:
  4626. break;
  4627. case 2:
  4628. if (!ASN1Dec_EncryptIntAlg(dec, &(val)->u.hMAC_iso10118_2_s))
  4629. return 0;
  4630. break;
  4631. case 3:
  4632. if (!ASN1Dec_EncryptIntAlg(dec, &(val)->u.hMAC_iso10118_2_l))
  4633. return 0;
  4634. break;
  4635. case 4:
  4636. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.hMAC_iso10118_3))
  4637. return 0;
  4638. break;
  4639. case 0:
  4640. /* extension case */
  4641. if (!ASN1PERDecSkipFragmented(dec, 8))
  4642. return 0;
  4643. break;
  4644. default:
  4645. /* impossible */
  4646. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4647. return 0;
  4648. }
  4649. return 1;
  4650. }
  4651. static void ASN1CALL ASN1Free_NonIsoIntegrityMechanism(NonIsoIntegrityMechanism *val)
  4652. {
  4653. if (val) {
  4654. switch ((val)->choice) {
  4655. case 2:
  4656. ASN1Free_EncryptIntAlg(&(val)->u.hMAC_iso10118_2_s);
  4657. break;
  4658. case 3:
  4659. ASN1Free_EncryptIntAlg(&(val)->u.hMAC_iso10118_2_l);
  4660. break;
  4661. case 4:
  4662. ASN1objectidentifier_free(&(val)->u.hMAC_iso10118_3);
  4663. break;
  4664. }
  4665. }
  4666. }
  4667. static int ASN1CALL ASN1Enc_IntegrityMechanism(ASN1encoding_t enc, IntegrityMechanism *val)
  4668. {
  4669. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4670. return 0;
  4671. switch ((val)->choice) {
  4672. case 1:
  4673. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4674. return 0;
  4675. break;
  4676. case 2:
  4677. break;
  4678. case 3:
  4679. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.iso9797))
  4680. return 0;
  4681. break;
  4682. case 4:
  4683. if (!ASN1Enc_NonIsoIntegrityMechanism(enc, &(val)->u.nonIsoIM))
  4684. return 0;
  4685. break;
  4686. default:
  4687. /* impossible */
  4688. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4689. return 0;
  4690. }
  4691. return 1;
  4692. }
  4693. static int ASN1CALL ASN1Dec_IntegrityMechanism(ASN1decoding_t dec, IntegrityMechanism *val)
  4694. {
  4695. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4696. return 0;
  4697. switch ((val)->choice) {
  4698. case 1:
  4699. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4700. return 0;
  4701. break;
  4702. case 2:
  4703. break;
  4704. case 3:
  4705. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.iso9797))
  4706. return 0;
  4707. break;
  4708. case 4:
  4709. if (!ASN1Dec_NonIsoIntegrityMechanism(dec, &(val)->u.nonIsoIM))
  4710. return 0;
  4711. break;
  4712. case 0:
  4713. /* extension case */
  4714. if (!ASN1PERDecSkipFragmented(dec, 8))
  4715. return 0;
  4716. break;
  4717. default:
  4718. /* impossible */
  4719. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4720. return 0;
  4721. }
  4722. return 1;
  4723. }
  4724. static void ASN1CALL ASN1Free_IntegrityMechanism(IntegrityMechanism *val)
  4725. {
  4726. if (val) {
  4727. switch ((val)->choice) {
  4728. case 1:
  4729. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4730. break;
  4731. case 3:
  4732. ASN1objectidentifier_free(&(val)->u.iso9797);
  4733. break;
  4734. case 4:
  4735. ASN1Free_NonIsoIntegrityMechanism(&(val)->u.nonIsoIM);
  4736. break;
  4737. }
  4738. }
  4739. }
  4740. static int ASN1CALL ASN1Enc_FastStartToken(ASN1encoding_t enc, FastStartToken *val)
  4741. {
  4742. if (!ASN1Enc_ClearToken(enc, val))
  4743. return 0;
  4744. return 1;
  4745. }
  4746. static int ASN1CALL ASN1Dec_FastStartToken(ASN1decoding_t dec, FastStartToken *val)
  4747. {
  4748. if (!ASN1Dec_ClearToken(dec, val))
  4749. return 0;
  4750. return 1;
  4751. }
  4752. static void ASN1CALL ASN1Free_FastStartToken(FastStartToken *val)
  4753. {
  4754. if (val) {
  4755. ASN1Free_ClearToken(val);
  4756. }
  4757. }
  4758. static int ASN1CALL ASN1Enc_EncodedFastStartToken(ASN1encoding_t enc, EncodedFastStartToken *val)
  4759. {
  4760. if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
  4761. return 0;
  4762. if (!ASN1Enc_FastStartToken(enc, &(val)->type))
  4763. return 0;
  4764. return 1;
  4765. }
  4766. static int ASN1CALL ASN1Dec_EncodedFastStartToken(ASN1decoding_t dec, EncodedFastStartToken *val)
  4767. {
  4768. if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
  4769. return 0;
  4770. if (!ASN1Dec_FastStartToken(dec, &(val)->type))
  4771. return 0;
  4772. return 1;
  4773. }
  4774. static void ASN1CALL ASN1Free_EncodedFastStartToken(EncodedFastStartToken *val)
  4775. {
  4776. if (val) {
  4777. ASN1objectidentifier_free(&(val)->id);
  4778. ASN1Free_FastStartToken(&(val)->type);
  4779. }
  4780. }
  4781. static int ASN1CALL ASN1Enc_DataRate(ASN1encoding_t enc, DataRate *val)
  4782. {
  4783. ASN1uint32_t l;
  4784. if (!ASN1PEREncExtensionBitClear(enc))
  4785. return 0;
  4786. if (!ASN1PEREncBits(enc, 2, (val)->o))
  4787. return 0;
  4788. if ((val)->o[0] & 0x80) {
  4789. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  4790. return 0;
  4791. }
  4792. l = ASN1uint32_uoctets((val)->channelRate);
  4793. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  4794. return 0;
  4795. ASN1PEREncAlignment(enc);
  4796. if (!ASN1PEREncBitVal(enc, l * 8, (val)->channelRate))
  4797. return 0;
  4798. if ((val)->o[0] & 0x40) {
  4799. ASN1PEREncAlignment(enc);
  4800. if (!ASN1PEREncBitVal(enc, 8, (val)->channelMultiplier - 1))
  4801. return 0;
  4802. }
  4803. return 1;
  4804. }
  4805. static int ASN1CALL ASN1Dec_DataRate(ASN1decoding_t dec, DataRate *val)
  4806. {
  4807. ASN1uint32_t y;
  4808. ASN1uint32_t l;
  4809. if (!ASN1PERDecExtensionBit(dec, &y))
  4810. return 0;
  4811. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  4812. return 0;
  4813. if ((val)->o[0] & 0x80) {
  4814. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  4815. return 0;
  4816. }
  4817. if (!ASN1PERDecU32Val(dec, 2, &l))
  4818. return 0;
  4819. l += 1;
  4820. ASN1PERDecAlignment(dec);
  4821. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->channelRate))
  4822. return 0;
  4823. if ((val)->o[0] & 0x40) {
  4824. ASN1PERDecAlignment(dec);
  4825. if (!ASN1PERDecU16Val(dec, 8, &(val)->channelMultiplier))
  4826. return 0;
  4827. (val)->channelMultiplier += 1;
  4828. }
  4829. if (y) {
  4830. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4831. return 0;
  4832. }
  4833. return 1;
  4834. }
  4835. static void ASN1CALL ASN1Free_DataRate(DataRate *val)
  4836. {
  4837. if (val) {
  4838. if ((val)->o[0] & 0x80) {
  4839. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  4840. }
  4841. }
  4842. }
  4843. static int ASN1CALL ASN1Enc_GatekeeperReject(ASN1encoding_t enc, GatekeeperReject *val)
  4844. {
  4845. ASN1uint32_t y;
  4846. ASN1encoding_t ee;
  4847. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  4848. if (!ASN1PEREncBitVal(enc, 1, y))
  4849. return 0;
  4850. if (!ASN1PEREncBits(enc, 2, (val)->o))
  4851. return 0;
  4852. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  4853. return 0;
  4854. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  4855. return 0;
  4856. if ((val)->o[0] & 0x80) {
  4857. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  4858. return 0;
  4859. }
  4860. if ((val)->o[0] & 0x40) {
  4861. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  4862. return 0;
  4863. ASN1PEREncAlignment(enc);
  4864. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  4865. return 0;
  4866. }
  4867. if (!ASN1Enc_GatekeeperRejectReason(enc, &(val)->rejectReason))
  4868. return 0;
  4869. if (y) {
  4870. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  4871. return 0;
  4872. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  4873. return 0;
  4874. if ((val)->o[1] & 0x80) {
  4875. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  4876. return 0;
  4877. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4878. return 0;
  4879. }
  4880. if ((val)->o[1] & 0x40) {
  4881. if (!ASN1Enc_GatekeeperReject_tokens(ee, &(val)->tokens))
  4882. return 0;
  4883. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4884. return 0;
  4885. }
  4886. if ((val)->o[1] & 0x20) {
  4887. if (!ASN1Enc_GatekeeperReject_cryptoTokens(ee, &(val)->cryptoTokens))
  4888. return 0;
  4889. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4890. return 0;
  4891. }
  4892. if ((val)->o[1] & 0x10) {
  4893. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  4894. return 0;
  4895. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4896. return 0;
  4897. }
  4898. ASN1_CloseEncoder2(ee);
  4899. }
  4900. return 1;
  4901. }
  4902. static int ASN1CALL ASN1Dec_GatekeeperReject(ASN1decoding_t dec, GatekeeperReject *val)
  4903. {
  4904. ASN1uint32_t y;
  4905. ASN1decoding_t dd;
  4906. ASN1octet_t *db;
  4907. ASN1uint32_t ds;
  4908. ASN1uint32_t i;
  4909. ASN1uint32_t e;
  4910. if (!ASN1PERDecExtensionBit(dec, &y))
  4911. return 0;
  4912. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  4913. return 0;
  4914. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  4915. return 0;
  4916. (val)->requestSeqNum += 1;
  4917. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  4918. return 0;
  4919. if ((val)->o[0] & 0x80) {
  4920. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  4921. return 0;
  4922. }
  4923. if ((val)->o[0] & 0x40) {
  4924. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  4925. return 0;
  4926. ((val)->gatekeeperIdentifier).length += 1;
  4927. ASN1PERDecAlignment(dec);
  4928. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  4929. return 0;
  4930. }
  4931. if (!ASN1Dec_GatekeeperRejectReason(dec, &(val)->rejectReason))
  4932. return 0;
  4933. if (!y) {
  4934. ZeroMemory((val)->o + 1, 1);
  4935. } else {
  4936. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  4937. return 0;
  4938. if ((val)->o[1] & 0x80) {
  4939. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4940. return 0;
  4941. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  4942. return 0;
  4943. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  4944. return 0;
  4945. ASN1_CloseDecoder(dd);
  4946. ASN1Free(db);
  4947. }
  4948. if ((val)->o[1] & 0x40) {
  4949. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4950. return 0;
  4951. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  4952. return 0;
  4953. if (!ASN1Dec_GatekeeperReject_tokens(dd, &(val)->tokens))
  4954. return 0;
  4955. ASN1_CloseDecoder(dd);
  4956. ASN1Free(db);
  4957. }
  4958. if ((val)->o[1] & 0x20) {
  4959. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4960. return 0;
  4961. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  4962. return 0;
  4963. if (!ASN1Dec_GatekeeperReject_cryptoTokens(dd, &(val)->cryptoTokens))
  4964. return 0;
  4965. ASN1_CloseDecoder(dd);
  4966. ASN1Free(db);
  4967. }
  4968. if ((val)->o[1] & 0x10) {
  4969. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4970. return 0;
  4971. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  4972. return 0;
  4973. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  4974. return 0;
  4975. ASN1_CloseDecoder(dd);
  4976. ASN1Free(db);
  4977. }
  4978. for (i = 0; i < e; i++) {
  4979. if (!ASN1PERDecSkipFragmented(dec, 8))
  4980. return 0;
  4981. }
  4982. }
  4983. return 1;
  4984. }
  4985. static void ASN1CALL ASN1Free_GatekeeperReject(GatekeeperReject *val)
  4986. {
  4987. if (val) {
  4988. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  4989. if ((val)->o[0] & 0x80) {
  4990. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  4991. }
  4992. if ((val)->o[0] & 0x40) {
  4993. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  4994. }
  4995. if ((val)->o[1] & 0x80) {
  4996. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  4997. }
  4998. if ((val)->o[1] & 0x40) {
  4999. ASN1Free_GatekeeperReject_tokens(&(val)->tokens);
  5000. }
  5001. if ((val)->o[1] & 0x20) {
  5002. ASN1Free_GatekeeperReject_cryptoTokens(&(val)->cryptoTokens);
  5003. }
  5004. if ((val)->o[1] & 0x10) {
  5005. ASN1Free_ICV(&(val)->integrityCheckValue);
  5006. }
  5007. }
  5008. }
  5009. static int ASN1CALL ASN1Enc_RegistrationConfirm(ASN1encoding_t enc, RegistrationConfirm *val)
  5010. {
  5011. ASN1octet_t o[2];
  5012. ASN1uint32_t y;
  5013. ASN1encoding_t ee;
  5014. ASN1uint32_t l;
  5015. CopyMemory(o, (val)->o, 2);
  5016. o[1] |= 0x4;
  5017. y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
  5018. if (!ASN1PEREncBitVal(enc, 1, y))
  5019. return 0;
  5020. if (!ASN1PEREncBits(enc, 3, o))
  5021. return 0;
  5022. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5023. return 0;
  5024. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  5025. return 0;
  5026. if (o[0] & 0x80) {
  5027. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5028. return 0;
  5029. }
  5030. if (!ASN1Enc_RegistrationConfirm_callSignalAddress(enc, &(val)->callSignalAddress))
  5031. return 0;
  5032. if (o[0] & 0x40) {
  5033. if (!ASN1Enc_RegistrationConfirm_terminalAlias(enc, &(val)->terminalAlias))
  5034. return 0;
  5035. }
  5036. if (o[0] & 0x20) {
  5037. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  5038. return 0;
  5039. ASN1PEREncAlignment(enc);
  5040. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  5041. return 0;
  5042. }
  5043. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  5044. return 0;
  5045. ASN1PEREncAlignment(enc);
  5046. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  5047. return 0;
  5048. if (y) {
  5049. if (!ASN1PEREncNormallySmallBits(enc, 7, o + 1))
  5050. return 0;
  5051. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5052. return 0;
  5053. if (o[1] & 0x80) {
  5054. if (!ASN1Enc_RegistrationConfirm_alternateGatekeeper(ee, &(val)->alternateGatekeeper))
  5055. return 0;
  5056. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5057. return 0;
  5058. }
  5059. if (o[1] & 0x40) {
  5060. l = ASN1uint32_uoctets((val)->timeToLive - 1);
  5061. if (!ASN1PEREncBitVal(ee, 2, l - 1))
  5062. return 0;
  5063. ASN1PEREncAlignment(ee);
  5064. if (!ASN1PEREncBitVal(ee, l * 8, (val)->timeToLive - 1))
  5065. return 0;
  5066. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5067. return 0;
  5068. }
  5069. if (o[1] & 0x20) {
  5070. if (!ASN1Enc_RegistrationConfirm_tokens(ee, &(val)->tokens))
  5071. return 0;
  5072. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5073. return 0;
  5074. }
  5075. if (o[1] & 0x10) {
  5076. if (!ASN1Enc_RegistrationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  5077. return 0;
  5078. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5079. return 0;
  5080. }
  5081. if (o[1] & 0x8) {
  5082. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5083. return 0;
  5084. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5085. return 0;
  5086. }
  5087. if (o[1] & 0x4) {
  5088. if (!ASN1PEREncBoolean(ee, (val)->willRespondToIRR))
  5089. return 0;
  5090. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5091. return 0;
  5092. }
  5093. if (o[1] & 0x2) {
  5094. if (!ASN1Enc_RegistrationConfirm_preGrantedARQ(ee, &(val)->preGrantedARQ))
  5095. return 0;
  5096. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5097. return 0;
  5098. }
  5099. ASN1_CloseEncoder2(ee);
  5100. }
  5101. return 1;
  5102. }
  5103. static int ASN1CALL ASN1Dec_RegistrationConfirm(ASN1decoding_t dec, RegistrationConfirm *val)
  5104. {
  5105. ASN1uint32_t y;
  5106. ASN1decoding_t dd;
  5107. ASN1octet_t *db;
  5108. ASN1uint32_t ds;
  5109. ASN1uint32_t l;
  5110. ASN1uint32_t i;
  5111. ASN1uint32_t e;
  5112. if (!ASN1PERDecExtensionBit(dec, &y))
  5113. return 0;
  5114. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  5115. return 0;
  5116. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5117. return 0;
  5118. (val)->requestSeqNum += 1;
  5119. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  5120. return 0;
  5121. if ((val)->o[0] & 0x80) {
  5122. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5123. return 0;
  5124. }
  5125. if (!ASN1Dec_RegistrationConfirm_callSignalAddress(dec, &(val)->callSignalAddress))
  5126. return 0;
  5127. if ((val)->o[0] & 0x40) {
  5128. if (!ASN1Dec_RegistrationConfirm_terminalAlias(dec, &(val)->terminalAlias))
  5129. return 0;
  5130. }
  5131. if ((val)->o[0] & 0x20) {
  5132. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  5133. return 0;
  5134. ((val)->gatekeeperIdentifier).length += 1;
  5135. ASN1PERDecAlignment(dec);
  5136. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  5137. return 0;
  5138. }
  5139. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  5140. return 0;
  5141. ((val)->endpointIdentifier).length += 1;
  5142. ASN1PERDecAlignment(dec);
  5143. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  5144. return 0;
  5145. if (!y) {
  5146. ZeroMemory((val)->o + 1, 1);
  5147. } else {
  5148. if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
  5149. return 0;
  5150. if ((val)->o[1] & 0x80) {
  5151. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5152. return 0;
  5153. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5154. return 0;
  5155. if (!ASN1Dec_RegistrationConfirm_alternateGatekeeper(dd, &(val)->alternateGatekeeper))
  5156. return 0;
  5157. ASN1_CloseDecoder(dd);
  5158. ASN1Free(db);
  5159. }
  5160. if ((val)->o[1] & 0x40) {
  5161. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5162. return 0;
  5163. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5164. return 0;
  5165. if (!ASN1PERDecU32Val(dd, 2, &l))
  5166. return 0;
  5167. l += 1;
  5168. ASN1PERDecAlignment(dd);
  5169. if (!ASN1PERDecU32Val(dd, l * 8, &(val)->timeToLive))
  5170. return 0;
  5171. (val)->timeToLive += 1;
  5172. ASN1_CloseDecoder(dd);
  5173. ASN1Free(db);
  5174. }
  5175. if ((val)->o[1] & 0x20) {
  5176. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5177. return 0;
  5178. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5179. return 0;
  5180. if (!ASN1Dec_RegistrationConfirm_tokens(dd, &(val)->tokens))
  5181. return 0;
  5182. ASN1_CloseDecoder(dd);
  5183. ASN1Free(db);
  5184. }
  5185. if ((val)->o[1] & 0x10) {
  5186. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5187. return 0;
  5188. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5189. return 0;
  5190. if (!ASN1Dec_RegistrationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  5191. return 0;
  5192. ASN1_CloseDecoder(dd);
  5193. ASN1Free(db);
  5194. }
  5195. if ((val)->o[1] & 0x8) {
  5196. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5197. return 0;
  5198. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5199. return 0;
  5200. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5201. return 0;
  5202. ASN1_CloseDecoder(dd);
  5203. ASN1Free(db);
  5204. }
  5205. if ((val)->o[1] & 0x4) {
  5206. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5207. return 0;
  5208. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5209. return 0;
  5210. if (!ASN1PERDecBoolean(dd, &(val)->willRespondToIRR))
  5211. return 0;
  5212. ASN1_CloseDecoder(dd);
  5213. ASN1Free(db);
  5214. }
  5215. if ((val)->o[1] & 0x2) {
  5216. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5217. return 0;
  5218. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5219. return 0;
  5220. if (!ASN1Dec_RegistrationConfirm_preGrantedARQ(dd, &(val)->preGrantedARQ))
  5221. return 0;
  5222. ASN1_CloseDecoder(dd);
  5223. ASN1Free(db);
  5224. }
  5225. for (i = 0; i < e; i++) {
  5226. if (!ASN1PERDecSkipFragmented(dec, 8))
  5227. return 0;
  5228. }
  5229. }
  5230. return 1;
  5231. }
  5232. static void ASN1CALL ASN1Free_RegistrationConfirm(RegistrationConfirm *val)
  5233. {
  5234. if (val) {
  5235. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  5236. if ((val)->o[0] & 0x80) {
  5237. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5238. }
  5239. ASN1Free_RegistrationConfirm_callSignalAddress(&(val)->callSignalAddress);
  5240. if ((val)->o[0] & 0x40) {
  5241. ASN1Free_RegistrationConfirm_terminalAlias(&(val)->terminalAlias);
  5242. }
  5243. if ((val)->o[0] & 0x20) {
  5244. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5245. }
  5246. ASN1char16string_free(&(val)->endpointIdentifier);
  5247. if ((val)->o[1] & 0x80) {
  5248. ASN1Free_RegistrationConfirm_alternateGatekeeper(&(val)->alternateGatekeeper);
  5249. }
  5250. if ((val)->o[1] & 0x20) {
  5251. ASN1Free_RegistrationConfirm_tokens(&(val)->tokens);
  5252. }
  5253. if ((val)->o[1] & 0x10) {
  5254. ASN1Free_RegistrationConfirm_cryptoTokens(&(val)->cryptoTokens);
  5255. }
  5256. if ((val)->o[1] & 0x8) {
  5257. ASN1Free_ICV(&(val)->integrityCheckValue);
  5258. }
  5259. }
  5260. }
  5261. static int ASN1CALL ASN1Enc_RegistrationReject(ASN1encoding_t enc, RegistrationReject *val)
  5262. {
  5263. ASN1uint32_t y;
  5264. ASN1encoding_t ee;
  5265. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  5266. if (!ASN1PEREncBitVal(enc, 1, y))
  5267. return 0;
  5268. if (!ASN1PEREncBits(enc, 2, (val)->o))
  5269. return 0;
  5270. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5271. return 0;
  5272. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  5273. return 0;
  5274. if ((val)->o[0] & 0x80) {
  5275. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5276. return 0;
  5277. }
  5278. if (!ASN1Enc_RegistrationRejectReason(enc, &(val)->rejectReason))
  5279. return 0;
  5280. if ((val)->o[0] & 0x40) {
  5281. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  5282. return 0;
  5283. ASN1PEREncAlignment(enc);
  5284. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  5285. return 0;
  5286. }
  5287. if (y) {
  5288. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  5289. return 0;
  5290. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5291. return 0;
  5292. if ((val)->o[1] & 0x80) {
  5293. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  5294. return 0;
  5295. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5296. return 0;
  5297. }
  5298. if ((val)->o[1] & 0x40) {
  5299. if (!ASN1Enc_RegistrationReject_tokens(ee, &(val)->tokens))
  5300. return 0;
  5301. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5302. return 0;
  5303. }
  5304. if ((val)->o[1] & 0x20) {
  5305. if (!ASN1Enc_RegistrationReject_cryptoTokens(ee, &(val)->cryptoTokens))
  5306. return 0;
  5307. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5308. return 0;
  5309. }
  5310. if ((val)->o[1] & 0x10) {
  5311. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5312. return 0;
  5313. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5314. return 0;
  5315. }
  5316. ASN1_CloseEncoder2(ee);
  5317. }
  5318. return 1;
  5319. }
  5320. static int ASN1CALL ASN1Dec_RegistrationReject(ASN1decoding_t dec, RegistrationReject *val)
  5321. {
  5322. ASN1uint32_t y;
  5323. ASN1decoding_t dd;
  5324. ASN1octet_t *db;
  5325. ASN1uint32_t ds;
  5326. ASN1uint32_t i;
  5327. ASN1uint32_t e;
  5328. if (!ASN1PERDecExtensionBit(dec, &y))
  5329. return 0;
  5330. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  5331. return 0;
  5332. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5333. return 0;
  5334. (val)->requestSeqNum += 1;
  5335. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  5336. return 0;
  5337. if ((val)->o[0] & 0x80) {
  5338. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5339. return 0;
  5340. }
  5341. if (!ASN1Dec_RegistrationRejectReason(dec, &(val)->rejectReason))
  5342. return 0;
  5343. if ((val)->o[0] & 0x40) {
  5344. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  5345. return 0;
  5346. ((val)->gatekeeperIdentifier).length += 1;
  5347. ASN1PERDecAlignment(dec);
  5348. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  5349. return 0;
  5350. }
  5351. if (!y) {
  5352. ZeroMemory((val)->o + 1, 1);
  5353. } else {
  5354. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  5355. return 0;
  5356. if ((val)->o[1] & 0x80) {
  5357. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5358. return 0;
  5359. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5360. return 0;
  5361. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  5362. return 0;
  5363. ASN1_CloseDecoder(dd);
  5364. ASN1Free(db);
  5365. }
  5366. if ((val)->o[1] & 0x40) {
  5367. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5368. return 0;
  5369. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5370. return 0;
  5371. if (!ASN1Dec_RegistrationReject_tokens(dd, &(val)->tokens))
  5372. return 0;
  5373. ASN1_CloseDecoder(dd);
  5374. ASN1Free(db);
  5375. }
  5376. if ((val)->o[1] & 0x20) {
  5377. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5378. return 0;
  5379. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5380. return 0;
  5381. if (!ASN1Dec_RegistrationReject_cryptoTokens(dd, &(val)->cryptoTokens))
  5382. return 0;
  5383. ASN1_CloseDecoder(dd);
  5384. ASN1Free(db);
  5385. }
  5386. if ((val)->o[1] & 0x10) {
  5387. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5388. return 0;
  5389. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5390. return 0;
  5391. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5392. return 0;
  5393. ASN1_CloseDecoder(dd);
  5394. ASN1Free(db);
  5395. }
  5396. for (i = 0; i < e; i++) {
  5397. if (!ASN1PERDecSkipFragmented(dec, 8))
  5398. return 0;
  5399. }
  5400. }
  5401. return 1;
  5402. }
  5403. static void ASN1CALL ASN1Free_RegistrationReject(RegistrationReject *val)
  5404. {
  5405. if (val) {
  5406. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  5407. if ((val)->o[0] & 0x80) {
  5408. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5409. }
  5410. ASN1Free_RegistrationRejectReason(&(val)->rejectReason);
  5411. if ((val)->o[0] & 0x40) {
  5412. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5413. }
  5414. if ((val)->o[1] & 0x80) {
  5415. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  5416. }
  5417. if ((val)->o[1] & 0x40) {
  5418. ASN1Free_RegistrationReject_tokens(&(val)->tokens);
  5419. }
  5420. if ((val)->o[1] & 0x20) {
  5421. ASN1Free_RegistrationReject_cryptoTokens(&(val)->cryptoTokens);
  5422. }
  5423. if ((val)->o[1] & 0x10) {
  5424. ASN1Free_ICV(&(val)->integrityCheckValue);
  5425. }
  5426. }
  5427. }
  5428. static int ASN1CALL ASN1Enc_UnregistrationRequest(ASN1encoding_t enc, UnregistrationRequest *val)
  5429. {
  5430. ASN1uint32_t y;
  5431. ASN1encoding_t ee;
  5432. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  5433. if (!ASN1PEREncBitVal(enc, 1, y))
  5434. return 0;
  5435. if (!ASN1PEREncBits(enc, 3, (val)->o))
  5436. return 0;
  5437. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5438. return 0;
  5439. if (!ASN1Enc_UnregistrationRequest_callSignalAddress(enc, &(val)->callSignalAddress))
  5440. return 0;
  5441. if ((val)->o[0] & 0x80) {
  5442. if (!ASN1Enc_UnregistrationRequest_endpointAlias(enc, &(val)->endpointAlias))
  5443. return 0;
  5444. }
  5445. if ((val)->o[0] & 0x40) {
  5446. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5447. return 0;
  5448. }
  5449. if ((val)->o[0] & 0x20) {
  5450. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  5451. return 0;
  5452. ASN1PEREncAlignment(enc);
  5453. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  5454. return 0;
  5455. }
  5456. if (y) {
  5457. if (!ASN1PEREncNormallySmallBits(enc, 6, (val)->o + 1))
  5458. return 0;
  5459. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5460. return 0;
  5461. if ((val)->o[1] & 0x80) {
  5462. if (!ASN1Enc_UnregistrationRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
  5463. return 0;
  5464. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5465. return 0;
  5466. }
  5467. if ((val)->o[1] & 0x40) {
  5468. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  5469. return 0;
  5470. ASN1PEREncAlignment(ee);
  5471. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  5472. return 0;
  5473. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5474. return 0;
  5475. }
  5476. if ((val)->o[1] & 0x20) {
  5477. if (!ASN1Enc_UnregistrationRequest_tokens(ee, &(val)->tokens))
  5478. return 0;
  5479. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5480. return 0;
  5481. }
  5482. if ((val)->o[1] & 0x10) {
  5483. if (!ASN1Enc_UnregistrationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  5484. return 0;
  5485. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5486. return 0;
  5487. }
  5488. if ((val)->o[1] & 0x8) {
  5489. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5490. return 0;
  5491. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5492. return 0;
  5493. }
  5494. if ((val)->o[1] & 0x4) {
  5495. if (!ASN1Enc_UnregRequestReason(ee, &(val)->reason))
  5496. return 0;
  5497. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5498. return 0;
  5499. }
  5500. ASN1_CloseEncoder2(ee);
  5501. }
  5502. return 1;
  5503. }
  5504. static int ASN1CALL ASN1Dec_UnregistrationRequest(ASN1decoding_t dec, UnregistrationRequest *val)
  5505. {
  5506. ASN1uint32_t y;
  5507. ASN1decoding_t dd;
  5508. ASN1octet_t *db;
  5509. ASN1uint32_t ds;
  5510. ASN1uint32_t i;
  5511. ASN1uint32_t e;
  5512. if (!ASN1PERDecExtensionBit(dec, &y))
  5513. return 0;
  5514. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  5515. return 0;
  5516. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5517. return 0;
  5518. (val)->requestSeqNum += 1;
  5519. if (!ASN1Dec_UnregistrationRequest_callSignalAddress(dec, &(val)->callSignalAddress))
  5520. return 0;
  5521. if ((val)->o[0] & 0x80) {
  5522. if (!ASN1Dec_UnregistrationRequest_endpointAlias(dec, &(val)->endpointAlias))
  5523. return 0;
  5524. }
  5525. if ((val)->o[0] & 0x40) {
  5526. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5527. return 0;
  5528. }
  5529. if ((val)->o[0] & 0x20) {
  5530. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  5531. return 0;
  5532. ((val)->endpointIdentifier).length += 1;
  5533. ASN1PERDecAlignment(dec);
  5534. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  5535. return 0;
  5536. }
  5537. if (!y) {
  5538. ZeroMemory((val)->o + 1, 1);
  5539. } else {
  5540. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  5541. return 0;
  5542. if ((val)->o[1] & 0x80) {
  5543. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5544. return 0;
  5545. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5546. return 0;
  5547. if (!ASN1Dec_UnregistrationRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
  5548. return 0;
  5549. ASN1_CloseDecoder(dd);
  5550. ASN1Free(db);
  5551. }
  5552. if ((val)->o[1] & 0x40) {
  5553. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5554. return 0;
  5555. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5556. return 0;
  5557. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  5558. return 0;
  5559. ((val)->gatekeeperIdentifier).length += 1;
  5560. ASN1PERDecAlignment(dd);
  5561. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  5562. return 0;
  5563. ASN1_CloseDecoder(dd);
  5564. ASN1Free(db);
  5565. }
  5566. if ((val)->o[1] & 0x20) {
  5567. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5568. return 0;
  5569. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5570. return 0;
  5571. if (!ASN1Dec_UnregistrationRequest_tokens(dd, &(val)->tokens))
  5572. return 0;
  5573. ASN1_CloseDecoder(dd);
  5574. ASN1Free(db);
  5575. }
  5576. if ((val)->o[1] & 0x10) {
  5577. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5578. return 0;
  5579. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5580. return 0;
  5581. if (!ASN1Dec_UnregistrationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  5582. return 0;
  5583. ASN1_CloseDecoder(dd);
  5584. ASN1Free(db);
  5585. }
  5586. if ((val)->o[1] & 0x8) {
  5587. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5588. return 0;
  5589. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5590. return 0;
  5591. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5592. return 0;
  5593. ASN1_CloseDecoder(dd);
  5594. ASN1Free(db);
  5595. }
  5596. if ((val)->o[1] & 0x4) {
  5597. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5598. return 0;
  5599. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5600. return 0;
  5601. if (!ASN1Dec_UnregRequestReason(dd, &(val)->reason))
  5602. return 0;
  5603. ASN1_CloseDecoder(dd);
  5604. ASN1Free(db);
  5605. }
  5606. for (i = 0; i < e; i++) {
  5607. if (!ASN1PERDecSkipFragmented(dec, 8))
  5608. return 0;
  5609. }
  5610. }
  5611. return 1;
  5612. }
  5613. static void ASN1CALL ASN1Free_UnregistrationRequest(UnregistrationRequest *val)
  5614. {
  5615. if (val) {
  5616. ASN1Free_UnregistrationRequest_callSignalAddress(&(val)->callSignalAddress);
  5617. if ((val)->o[0] & 0x80) {
  5618. ASN1Free_UnregistrationRequest_endpointAlias(&(val)->endpointAlias);
  5619. }
  5620. if ((val)->o[0] & 0x40) {
  5621. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5622. }
  5623. if ((val)->o[0] & 0x20) {
  5624. ASN1char16string_free(&(val)->endpointIdentifier);
  5625. }
  5626. if ((val)->o[1] & 0x80) {
  5627. ASN1Free_UnregistrationRequest_alternateEndpoints(&(val)->alternateEndpoints);
  5628. }
  5629. if ((val)->o[1] & 0x40) {
  5630. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5631. }
  5632. if ((val)->o[1] & 0x20) {
  5633. ASN1Free_UnregistrationRequest_tokens(&(val)->tokens);
  5634. }
  5635. if ((val)->o[1] & 0x10) {
  5636. ASN1Free_UnregistrationRequest_cryptoTokens(&(val)->cryptoTokens);
  5637. }
  5638. if ((val)->o[1] & 0x8) {
  5639. ASN1Free_ICV(&(val)->integrityCheckValue);
  5640. }
  5641. }
  5642. }
  5643. static int ASN1CALL ASN1Enc_UnregistrationConfirm(ASN1encoding_t enc, UnregistrationConfirm *val)
  5644. {
  5645. ASN1uint32_t y;
  5646. ASN1encoding_t ee;
  5647. y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
  5648. if (!ASN1PEREncBitVal(enc, 1, y))
  5649. return 0;
  5650. if (!ASN1PEREncBits(enc, 1, (val)->o))
  5651. return 0;
  5652. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5653. return 0;
  5654. if ((val)->o[0] & 0x80) {
  5655. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5656. return 0;
  5657. }
  5658. if (y) {
  5659. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
  5660. return 0;
  5661. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5662. return 0;
  5663. if ((val)->o[1] & 0x80) {
  5664. if (!ASN1Enc_UnregistrationConfirm_tokens(ee, &(val)->tokens))
  5665. return 0;
  5666. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5667. return 0;
  5668. }
  5669. if ((val)->o[1] & 0x40) {
  5670. if (!ASN1Enc_UnregistrationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  5671. return 0;
  5672. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5673. return 0;
  5674. }
  5675. if ((val)->o[1] & 0x20) {
  5676. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5677. return 0;
  5678. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5679. return 0;
  5680. }
  5681. ASN1_CloseEncoder2(ee);
  5682. }
  5683. return 1;
  5684. }
  5685. static int ASN1CALL ASN1Dec_UnregistrationConfirm(ASN1decoding_t dec, UnregistrationConfirm *val)
  5686. {
  5687. ASN1uint32_t y;
  5688. ASN1decoding_t dd;
  5689. ASN1octet_t *db;
  5690. ASN1uint32_t ds;
  5691. ASN1uint32_t i;
  5692. ASN1uint32_t e;
  5693. if (!ASN1PERDecExtensionBit(dec, &y))
  5694. return 0;
  5695. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  5696. return 0;
  5697. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5698. return 0;
  5699. (val)->requestSeqNum += 1;
  5700. if ((val)->o[0] & 0x80) {
  5701. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5702. return 0;
  5703. }
  5704. if (!y) {
  5705. ZeroMemory((val)->o + 1, 1);
  5706. } else {
  5707. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
  5708. return 0;
  5709. if ((val)->o[1] & 0x80) {
  5710. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5711. return 0;
  5712. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5713. return 0;
  5714. if (!ASN1Dec_UnregistrationConfirm_tokens(dd, &(val)->tokens))
  5715. return 0;
  5716. ASN1_CloseDecoder(dd);
  5717. ASN1Free(db);
  5718. }
  5719. if ((val)->o[1] & 0x40) {
  5720. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5721. return 0;
  5722. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5723. return 0;
  5724. if (!ASN1Dec_UnregistrationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  5725. return 0;
  5726. ASN1_CloseDecoder(dd);
  5727. ASN1Free(db);
  5728. }
  5729. if ((val)->o[1] & 0x20) {
  5730. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5731. return 0;
  5732. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5733. return 0;
  5734. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5735. return 0;
  5736. ASN1_CloseDecoder(dd);
  5737. ASN1Free(db);
  5738. }
  5739. for (i = 0; i < e; i++) {
  5740. if (!ASN1PERDecSkipFragmented(dec, 8))
  5741. return 0;
  5742. }
  5743. }
  5744. return 1;
  5745. }
  5746. static void ASN1CALL ASN1Free_UnregistrationConfirm(UnregistrationConfirm *val)
  5747. {
  5748. if (val) {
  5749. if ((val)->o[0] & 0x80) {
  5750. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5751. }
  5752. if ((val)->o[1] & 0x80) {
  5753. ASN1Free_UnregistrationConfirm_tokens(&(val)->tokens);
  5754. }
  5755. if ((val)->o[1] & 0x40) {
  5756. ASN1Free_UnregistrationConfirm_cryptoTokens(&(val)->cryptoTokens);
  5757. }
  5758. if ((val)->o[1] & 0x20) {
  5759. ASN1Free_ICV(&(val)->integrityCheckValue);
  5760. }
  5761. }
  5762. }
  5763. static int ASN1CALL ASN1Enc_UnregistrationReject(ASN1encoding_t enc, UnregistrationReject *val)
  5764. {
  5765. ASN1uint32_t y;
  5766. ASN1encoding_t ee;
  5767. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  5768. if (!ASN1PEREncBitVal(enc, 1, y))
  5769. return 0;
  5770. if (!ASN1PEREncBits(enc, 1, (val)->o))
  5771. return 0;
  5772. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5773. return 0;
  5774. if (!ASN1Enc_UnregRejectReason(enc, &(val)->rejectReason))
  5775. return 0;
  5776. if ((val)->o[0] & 0x80) {
  5777. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5778. return 0;
  5779. }
  5780. if (y) {
  5781. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  5782. return 0;
  5783. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5784. return 0;
  5785. if ((val)->o[1] & 0x80) {
  5786. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  5787. return 0;
  5788. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5789. return 0;
  5790. }
  5791. if ((val)->o[1] & 0x40) {
  5792. if (!ASN1Enc_UnregistrationReject_tokens(ee, &(val)->tokens))
  5793. return 0;
  5794. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5795. return 0;
  5796. }
  5797. if ((val)->o[1] & 0x20) {
  5798. if (!ASN1Enc_UnregistrationReject_cryptoTokens(ee, &(val)->cryptoTokens))
  5799. return 0;
  5800. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5801. return 0;
  5802. }
  5803. if ((val)->o[1] & 0x10) {
  5804. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5805. return 0;
  5806. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5807. return 0;
  5808. }
  5809. ASN1_CloseEncoder2(ee);
  5810. }
  5811. return 1;
  5812. }
  5813. static int ASN1CALL ASN1Dec_UnregistrationReject(ASN1decoding_t dec, UnregistrationReject *val)
  5814. {
  5815. ASN1uint32_t y;
  5816. ASN1decoding_t dd;
  5817. ASN1octet_t *db;
  5818. ASN1uint32_t ds;
  5819. ASN1uint32_t i;
  5820. ASN1uint32_t e;
  5821. if (!ASN1PERDecExtensionBit(dec, &y))
  5822. return 0;
  5823. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  5824. return 0;
  5825. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5826. return 0;
  5827. (val)->requestSeqNum += 1;
  5828. if (!ASN1Dec_UnregRejectReason(dec, &(val)->rejectReason))
  5829. return 0;
  5830. if ((val)->o[0] & 0x80) {
  5831. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5832. return 0;
  5833. }
  5834. if (!y) {
  5835. ZeroMemory((val)->o + 1, 1);
  5836. } else {
  5837. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  5838. return 0;
  5839. if ((val)->o[1] & 0x80) {
  5840. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5841. return 0;
  5842. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5843. return 0;
  5844. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  5845. return 0;
  5846. ASN1_CloseDecoder(dd);
  5847. ASN1Free(db);
  5848. }
  5849. if ((val)->o[1] & 0x40) {
  5850. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5851. return 0;
  5852. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5853. return 0;
  5854. if (!ASN1Dec_UnregistrationReject_tokens(dd, &(val)->tokens))
  5855. return 0;
  5856. ASN1_CloseDecoder(dd);
  5857. ASN1Free(db);
  5858. }
  5859. if ((val)->o[1] & 0x20) {
  5860. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5861. return 0;
  5862. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5863. return 0;
  5864. if (!ASN1Dec_UnregistrationReject_cryptoTokens(dd, &(val)->cryptoTokens))
  5865. return 0;
  5866. ASN1_CloseDecoder(dd);
  5867. ASN1Free(db);
  5868. }
  5869. if ((val)->o[1] & 0x10) {
  5870. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5871. return 0;
  5872. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5873. return 0;
  5874. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5875. return 0;
  5876. ASN1_CloseDecoder(dd);
  5877. ASN1Free(db);
  5878. }
  5879. for (i = 0; i < e; i++) {
  5880. if (!ASN1PERDecSkipFragmented(dec, 8))
  5881. return 0;
  5882. }
  5883. }
  5884. return 1;
  5885. }
  5886. static void ASN1CALL ASN1Free_UnregistrationReject(UnregistrationReject *val)
  5887. {
  5888. if (val) {
  5889. if ((val)->o[0] & 0x80) {
  5890. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5891. }
  5892. if ((val)->o[1] & 0x80) {
  5893. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  5894. }
  5895. if ((val)->o[1] & 0x40) {
  5896. ASN1Free_UnregistrationReject_tokens(&(val)->tokens);
  5897. }
  5898. if ((val)->o[1] & 0x20) {
  5899. ASN1Free_UnregistrationReject_cryptoTokens(&(val)->cryptoTokens);
  5900. }
  5901. if ((val)->o[1] & 0x10) {
  5902. ASN1Free_ICV(&(val)->integrityCheckValue);
  5903. }
  5904. }
  5905. }
  5906. static int ASN1CALL ASN1Enc_AdmissionReject(ASN1encoding_t enc, AdmissionReject *val)
  5907. {
  5908. ASN1uint32_t y;
  5909. ASN1encoding_t ee;
  5910. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  5911. if (!ASN1PEREncBitVal(enc, 1, y))
  5912. return 0;
  5913. if (!ASN1PEREncBits(enc, 1, (val)->o))
  5914. return 0;
  5915. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5916. return 0;
  5917. if (!ASN1Enc_AdmissionRejectReason(enc, &(val)->rejectReason))
  5918. return 0;
  5919. if ((val)->o[0] & 0x80) {
  5920. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5921. return 0;
  5922. }
  5923. if (y) {
  5924. if (!ASN1PEREncNormallySmallBits(enc, 5, (val)->o + 1))
  5925. return 0;
  5926. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5927. return 0;
  5928. if ((val)->o[1] & 0x80) {
  5929. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  5930. return 0;
  5931. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5932. return 0;
  5933. }
  5934. if ((val)->o[1] & 0x40) {
  5935. if (!ASN1Enc_AdmissionReject_tokens(ee, &(val)->tokens))
  5936. return 0;
  5937. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5938. return 0;
  5939. }
  5940. if ((val)->o[1] & 0x20) {
  5941. if (!ASN1Enc_AdmissionReject_cryptoTokens(ee, &(val)->cryptoTokens))
  5942. return 0;
  5943. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5944. return 0;
  5945. }
  5946. if ((val)->o[1] & 0x10) {
  5947. if (!ASN1Enc_AdmissionReject_callSignalAddress(ee, &(val)->callSignalAddress))
  5948. return 0;
  5949. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5950. return 0;
  5951. }
  5952. if ((val)->o[1] & 0x8) {
  5953. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5954. return 0;
  5955. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5956. return 0;
  5957. }
  5958. ASN1_CloseEncoder2(ee);
  5959. }
  5960. return 1;
  5961. }
  5962. static int ASN1CALL ASN1Dec_AdmissionReject(ASN1decoding_t dec, AdmissionReject *val)
  5963. {
  5964. ASN1uint32_t y;
  5965. ASN1decoding_t dd;
  5966. ASN1octet_t *db;
  5967. ASN1uint32_t ds;
  5968. ASN1uint32_t i;
  5969. ASN1uint32_t e;
  5970. if (!ASN1PERDecExtensionBit(dec, &y))
  5971. return 0;
  5972. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  5973. return 0;
  5974. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5975. return 0;
  5976. (val)->requestSeqNum += 1;
  5977. if (!ASN1Dec_AdmissionRejectReason(dec, &(val)->rejectReason))
  5978. return 0;
  5979. if ((val)->o[0] & 0x80) {
  5980. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5981. return 0;
  5982. }
  5983. if (!y) {
  5984. ZeroMemory((val)->o + 1, 1);
  5985. } else {
  5986. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  5987. return 0;
  5988. if ((val)->o[1] & 0x80) {
  5989. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5990. return 0;
  5991. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  5992. return 0;
  5993. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  5994. return 0;
  5995. ASN1_CloseDecoder(dd);
  5996. ASN1Free(db);
  5997. }
  5998. if ((val)->o[1] & 0x40) {
  5999. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6000. return 0;
  6001. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6002. return 0;
  6003. if (!ASN1Dec_AdmissionReject_tokens(dd, &(val)->tokens))
  6004. return 0;
  6005. ASN1_CloseDecoder(dd);
  6006. ASN1Free(db);
  6007. }
  6008. if ((val)->o[1] & 0x20) {
  6009. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6010. return 0;
  6011. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6012. return 0;
  6013. if (!ASN1Dec_AdmissionReject_cryptoTokens(dd, &(val)->cryptoTokens))
  6014. return 0;
  6015. ASN1_CloseDecoder(dd);
  6016. ASN1Free(db);
  6017. }
  6018. if ((val)->o[1] & 0x10) {
  6019. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6020. return 0;
  6021. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6022. return 0;
  6023. if (!ASN1Dec_AdmissionReject_callSignalAddress(dd, &(val)->callSignalAddress))
  6024. return 0;
  6025. ASN1_CloseDecoder(dd);
  6026. ASN1Free(db);
  6027. }
  6028. if ((val)->o[1] & 0x8) {
  6029. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6030. return 0;
  6031. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6032. return 0;
  6033. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6034. return 0;
  6035. ASN1_CloseDecoder(dd);
  6036. ASN1Free(db);
  6037. }
  6038. for (i = 0; i < e; i++) {
  6039. if (!ASN1PERDecSkipFragmented(dec, 8))
  6040. return 0;
  6041. }
  6042. }
  6043. return 1;
  6044. }
  6045. static void ASN1CALL ASN1Free_AdmissionReject(AdmissionReject *val)
  6046. {
  6047. if (val) {
  6048. if ((val)->o[0] & 0x80) {
  6049. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6050. }
  6051. if ((val)->o[1] & 0x80) {
  6052. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  6053. }
  6054. if ((val)->o[1] & 0x40) {
  6055. ASN1Free_AdmissionReject_tokens(&(val)->tokens);
  6056. }
  6057. if ((val)->o[1] & 0x20) {
  6058. ASN1Free_AdmissionReject_cryptoTokens(&(val)->cryptoTokens);
  6059. }
  6060. if ((val)->o[1] & 0x10) {
  6061. ASN1Free_AdmissionReject_callSignalAddress(&(val)->callSignalAddress);
  6062. }
  6063. if ((val)->o[1] & 0x8) {
  6064. ASN1Free_ICV(&(val)->integrityCheckValue);
  6065. }
  6066. }
  6067. }
  6068. static int ASN1CALL ASN1Enc_BandwidthRequest(ASN1encoding_t enc, BandwidthRequest *val)
  6069. {
  6070. ASN1octet_t o[2];
  6071. ASN1uint32_t y;
  6072. ASN1uint32_t l;
  6073. ASN1encoding_t ee;
  6074. CopyMemory(o, (val)->o, 2);
  6075. o[1] |= 0x80;
  6076. o[1] |= 0x4;
  6077. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  6078. if (!ASN1PEREncBitVal(enc, 1, y))
  6079. return 0;
  6080. if (!ASN1PEREncBits(enc, 2, o))
  6081. return 0;
  6082. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6083. return 0;
  6084. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  6085. return 0;
  6086. ASN1PEREncAlignment(enc);
  6087. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  6088. return 0;
  6089. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6090. return 0;
  6091. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  6092. return 0;
  6093. if (o[0] & 0x80) {
  6094. if (!ASN1Enc_CallType(enc, &(val)->callType))
  6095. return 0;
  6096. }
  6097. l = ASN1uint32_uoctets((val)->bandWidth);
  6098. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  6099. return 0;
  6100. ASN1PEREncAlignment(enc);
  6101. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  6102. return 0;
  6103. if (o[0] & 0x40) {
  6104. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6105. return 0;
  6106. }
  6107. if (y) {
  6108. if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
  6109. return 0;
  6110. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6111. return 0;
  6112. if (o[1] & 0x80) {
  6113. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  6114. return 0;
  6115. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6116. return 0;
  6117. }
  6118. if (o[1] & 0x40) {
  6119. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  6120. return 0;
  6121. ASN1PEREncAlignment(ee);
  6122. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  6123. return 0;
  6124. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6125. return 0;
  6126. }
  6127. if (o[1] & 0x20) {
  6128. if (!ASN1Enc_BandwidthRequest_tokens(ee, &(val)->tokens))
  6129. return 0;
  6130. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6131. return 0;
  6132. }
  6133. if (o[1] & 0x10) {
  6134. if (!ASN1Enc_BandwidthRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  6135. return 0;
  6136. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6137. return 0;
  6138. }
  6139. if (o[1] & 0x8) {
  6140. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6141. return 0;
  6142. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6143. return 0;
  6144. }
  6145. if (o[1] & 0x4) {
  6146. if (!ASN1PEREncBoolean(ee, (val)->answeredCall))
  6147. return 0;
  6148. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6149. return 0;
  6150. }
  6151. ASN1_CloseEncoder2(ee);
  6152. }
  6153. return 1;
  6154. }
  6155. static int ASN1CALL ASN1Dec_BandwidthRequest(ASN1decoding_t dec, BandwidthRequest *val)
  6156. {
  6157. ASN1uint32_t y;
  6158. ASN1uint32_t l;
  6159. ASN1decoding_t dd;
  6160. ASN1octet_t *db;
  6161. ASN1uint32_t ds;
  6162. ASN1uint32_t i;
  6163. ASN1uint32_t e;
  6164. if (!ASN1PERDecExtensionBit(dec, &y))
  6165. return 0;
  6166. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  6167. return 0;
  6168. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6169. return 0;
  6170. (val)->requestSeqNum += 1;
  6171. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  6172. return 0;
  6173. ((val)->endpointIdentifier).length += 1;
  6174. ASN1PERDecAlignment(dec);
  6175. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  6176. return 0;
  6177. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6178. return 0;
  6179. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  6180. return 0;
  6181. if ((val)->o[0] & 0x80) {
  6182. if (!ASN1Dec_CallType(dec, &(val)->callType))
  6183. return 0;
  6184. }
  6185. if (!ASN1PERDecU32Val(dec, 2, &l))
  6186. return 0;
  6187. l += 1;
  6188. ASN1PERDecAlignment(dec);
  6189. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  6190. return 0;
  6191. if ((val)->o[0] & 0x40) {
  6192. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6193. return 0;
  6194. }
  6195. if (!y) {
  6196. ZeroMemory((val)->o + 1, 1);
  6197. } else {
  6198. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  6199. return 0;
  6200. if ((val)->o[1] & 0x80) {
  6201. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6202. return 0;
  6203. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6204. return 0;
  6205. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  6206. return 0;
  6207. ASN1_CloseDecoder(dd);
  6208. ASN1Free(db);
  6209. }
  6210. if ((val)->o[1] & 0x40) {
  6211. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6212. return 0;
  6213. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6214. return 0;
  6215. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  6216. return 0;
  6217. ((val)->gatekeeperIdentifier).length += 1;
  6218. ASN1PERDecAlignment(dd);
  6219. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  6220. return 0;
  6221. ASN1_CloseDecoder(dd);
  6222. ASN1Free(db);
  6223. }
  6224. if ((val)->o[1] & 0x20) {
  6225. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6226. return 0;
  6227. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6228. return 0;
  6229. if (!ASN1Dec_BandwidthRequest_tokens(dd, &(val)->tokens))
  6230. return 0;
  6231. ASN1_CloseDecoder(dd);
  6232. ASN1Free(db);
  6233. }
  6234. if ((val)->o[1] & 0x10) {
  6235. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6236. return 0;
  6237. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6238. return 0;
  6239. if (!ASN1Dec_BandwidthRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  6240. return 0;
  6241. ASN1_CloseDecoder(dd);
  6242. ASN1Free(db);
  6243. }
  6244. if ((val)->o[1] & 0x8) {
  6245. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6246. return 0;
  6247. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6248. return 0;
  6249. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6250. return 0;
  6251. ASN1_CloseDecoder(dd);
  6252. ASN1Free(db);
  6253. }
  6254. if ((val)->o[1] & 0x4) {
  6255. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6256. return 0;
  6257. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6258. return 0;
  6259. if (!ASN1PERDecBoolean(dd, &(val)->answeredCall))
  6260. return 0;
  6261. ASN1_CloseDecoder(dd);
  6262. ASN1Free(db);
  6263. }
  6264. for (i = 0; i < e; i++) {
  6265. if (!ASN1PERDecSkipFragmented(dec, 8))
  6266. return 0;
  6267. }
  6268. }
  6269. return 1;
  6270. }
  6271. static void ASN1CALL ASN1Free_BandwidthRequest(BandwidthRequest *val)
  6272. {
  6273. if (val) {
  6274. ASN1char16string_free(&(val)->endpointIdentifier);
  6275. if ((val)->o[0] & 0x40) {
  6276. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6277. }
  6278. if ((val)->o[1] & 0x80) {
  6279. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  6280. }
  6281. if ((val)->o[1] & 0x40) {
  6282. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  6283. }
  6284. if ((val)->o[1] & 0x20) {
  6285. ASN1Free_BandwidthRequest_tokens(&(val)->tokens);
  6286. }
  6287. if ((val)->o[1] & 0x10) {
  6288. ASN1Free_BandwidthRequest_cryptoTokens(&(val)->cryptoTokens);
  6289. }
  6290. if ((val)->o[1] & 0x8) {
  6291. ASN1Free_ICV(&(val)->integrityCheckValue);
  6292. }
  6293. }
  6294. }
  6295. static int ASN1CALL ASN1Enc_BandwidthConfirm(ASN1encoding_t enc, BandwidthConfirm *val)
  6296. {
  6297. ASN1uint32_t y;
  6298. ASN1uint32_t l;
  6299. ASN1encoding_t ee;
  6300. y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
  6301. if (!ASN1PEREncBitVal(enc, 1, y))
  6302. return 0;
  6303. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6304. return 0;
  6305. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6306. return 0;
  6307. l = ASN1uint32_uoctets((val)->bandWidth);
  6308. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  6309. return 0;
  6310. ASN1PEREncAlignment(enc);
  6311. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  6312. return 0;
  6313. if ((val)->o[0] & 0x80) {
  6314. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6315. return 0;
  6316. }
  6317. if (y) {
  6318. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
  6319. return 0;
  6320. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6321. return 0;
  6322. if ((val)->o[1] & 0x80) {
  6323. if (!ASN1Enc_BandwidthConfirm_tokens(ee, &(val)->tokens))
  6324. return 0;
  6325. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6326. return 0;
  6327. }
  6328. if ((val)->o[1] & 0x40) {
  6329. if (!ASN1Enc_BandwidthConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  6330. return 0;
  6331. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6332. return 0;
  6333. }
  6334. if ((val)->o[1] & 0x20) {
  6335. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6336. return 0;
  6337. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6338. return 0;
  6339. }
  6340. ASN1_CloseEncoder2(ee);
  6341. }
  6342. return 1;
  6343. }
  6344. static int ASN1CALL ASN1Dec_BandwidthConfirm(ASN1decoding_t dec, BandwidthConfirm *val)
  6345. {
  6346. ASN1uint32_t y;
  6347. ASN1uint32_t l;
  6348. ASN1decoding_t dd;
  6349. ASN1octet_t *db;
  6350. ASN1uint32_t ds;
  6351. ASN1uint32_t i;
  6352. ASN1uint32_t e;
  6353. if (!ASN1PERDecExtensionBit(dec, &y))
  6354. return 0;
  6355. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6356. return 0;
  6357. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6358. return 0;
  6359. (val)->requestSeqNum += 1;
  6360. if (!ASN1PERDecU32Val(dec, 2, &l))
  6361. return 0;
  6362. l += 1;
  6363. ASN1PERDecAlignment(dec);
  6364. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  6365. return 0;
  6366. if ((val)->o[0] & 0x80) {
  6367. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6368. return 0;
  6369. }
  6370. if (!y) {
  6371. ZeroMemory((val)->o + 1, 1);
  6372. } else {
  6373. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
  6374. return 0;
  6375. if ((val)->o[1] & 0x80) {
  6376. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6377. return 0;
  6378. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6379. return 0;
  6380. if (!ASN1Dec_BandwidthConfirm_tokens(dd, &(val)->tokens))
  6381. return 0;
  6382. ASN1_CloseDecoder(dd);
  6383. ASN1Free(db);
  6384. }
  6385. if ((val)->o[1] & 0x40) {
  6386. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6387. return 0;
  6388. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6389. return 0;
  6390. if (!ASN1Dec_BandwidthConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  6391. return 0;
  6392. ASN1_CloseDecoder(dd);
  6393. ASN1Free(db);
  6394. }
  6395. if ((val)->o[1] & 0x20) {
  6396. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6397. return 0;
  6398. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6399. return 0;
  6400. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6401. return 0;
  6402. ASN1_CloseDecoder(dd);
  6403. ASN1Free(db);
  6404. }
  6405. for (i = 0; i < e; i++) {
  6406. if (!ASN1PERDecSkipFragmented(dec, 8))
  6407. return 0;
  6408. }
  6409. }
  6410. return 1;
  6411. }
  6412. static void ASN1CALL ASN1Free_BandwidthConfirm(BandwidthConfirm *val)
  6413. {
  6414. if (val) {
  6415. if ((val)->o[0] & 0x80) {
  6416. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6417. }
  6418. if ((val)->o[1] & 0x80) {
  6419. ASN1Free_BandwidthConfirm_tokens(&(val)->tokens);
  6420. }
  6421. if ((val)->o[1] & 0x40) {
  6422. ASN1Free_BandwidthConfirm_cryptoTokens(&(val)->cryptoTokens);
  6423. }
  6424. if ((val)->o[1] & 0x20) {
  6425. ASN1Free_ICV(&(val)->integrityCheckValue);
  6426. }
  6427. }
  6428. }
  6429. static int ASN1CALL ASN1Enc_BandwidthReject(ASN1encoding_t enc, BandwidthReject *val)
  6430. {
  6431. ASN1uint32_t y;
  6432. ASN1uint32_t l;
  6433. ASN1encoding_t ee;
  6434. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  6435. if (!ASN1PEREncBitVal(enc, 1, y))
  6436. return 0;
  6437. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6438. return 0;
  6439. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6440. return 0;
  6441. if (!ASN1Enc_BandRejectReason(enc, &(val)->rejectReason))
  6442. return 0;
  6443. l = ASN1uint32_uoctets((val)->allowedBandWidth);
  6444. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  6445. return 0;
  6446. ASN1PEREncAlignment(enc);
  6447. if (!ASN1PEREncBitVal(enc, l * 8, (val)->allowedBandWidth))
  6448. return 0;
  6449. if ((val)->o[0] & 0x80) {
  6450. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6451. return 0;
  6452. }
  6453. if (y) {
  6454. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  6455. return 0;
  6456. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6457. return 0;
  6458. if ((val)->o[1] & 0x80) {
  6459. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  6460. return 0;
  6461. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6462. return 0;
  6463. }
  6464. if ((val)->o[1] & 0x40) {
  6465. if (!ASN1Enc_BandwidthReject_tokens(ee, &(val)->tokens))
  6466. return 0;
  6467. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6468. return 0;
  6469. }
  6470. if ((val)->o[1] & 0x20) {
  6471. if (!ASN1Enc_BandwidthReject_cryptoTokens(ee, &(val)->cryptoTokens))
  6472. return 0;
  6473. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6474. return 0;
  6475. }
  6476. if ((val)->o[1] & 0x10) {
  6477. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6478. return 0;
  6479. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6480. return 0;
  6481. }
  6482. ASN1_CloseEncoder2(ee);
  6483. }
  6484. return 1;
  6485. }
  6486. static int ASN1CALL ASN1Dec_BandwidthReject(ASN1decoding_t dec, BandwidthReject *val)
  6487. {
  6488. ASN1uint32_t y;
  6489. ASN1uint32_t l;
  6490. ASN1decoding_t dd;
  6491. ASN1octet_t *db;
  6492. ASN1uint32_t ds;
  6493. ASN1uint32_t i;
  6494. ASN1uint32_t e;
  6495. if (!ASN1PERDecExtensionBit(dec, &y))
  6496. return 0;
  6497. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6498. return 0;
  6499. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6500. return 0;
  6501. (val)->requestSeqNum += 1;
  6502. if (!ASN1Dec_BandRejectReason(dec, &(val)->rejectReason))
  6503. return 0;
  6504. if (!ASN1PERDecU32Val(dec, 2, &l))
  6505. return 0;
  6506. l += 1;
  6507. ASN1PERDecAlignment(dec);
  6508. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->allowedBandWidth))
  6509. return 0;
  6510. if ((val)->o[0] & 0x80) {
  6511. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6512. return 0;
  6513. }
  6514. if (!y) {
  6515. ZeroMemory((val)->o + 1, 1);
  6516. } else {
  6517. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  6518. return 0;
  6519. if ((val)->o[1] & 0x80) {
  6520. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6521. return 0;
  6522. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6523. return 0;
  6524. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  6525. return 0;
  6526. ASN1_CloseDecoder(dd);
  6527. ASN1Free(db);
  6528. }
  6529. if ((val)->o[1] & 0x40) {
  6530. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6531. return 0;
  6532. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6533. return 0;
  6534. if (!ASN1Dec_BandwidthReject_tokens(dd, &(val)->tokens))
  6535. return 0;
  6536. ASN1_CloseDecoder(dd);
  6537. ASN1Free(db);
  6538. }
  6539. if ((val)->o[1] & 0x20) {
  6540. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6541. return 0;
  6542. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6543. return 0;
  6544. if (!ASN1Dec_BandwidthReject_cryptoTokens(dd, &(val)->cryptoTokens))
  6545. return 0;
  6546. ASN1_CloseDecoder(dd);
  6547. ASN1Free(db);
  6548. }
  6549. if ((val)->o[1] & 0x10) {
  6550. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6551. return 0;
  6552. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6553. return 0;
  6554. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6555. return 0;
  6556. ASN1_CloseDecoder(dd);
  6557. ASN1Free(db);
  6558. }
  6559. for (i = 0; i < e; i++) {
  6560. if (!ASN1PERDecSkipFragmented(dec, 8))
  6561. return 0;
  6562. }
  6563. }
  6564. return 1;
  6565. }
  6566. static void ASN1CALL ASN1Free_BandwidthReject(BandwidthReject *val)
  6567. {
  6568. if (val) {
  6569. if ((val)->o[0] & 0x80) {
  6570. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6571. }
  6572. if ((val)->o[1] & 0x80) {
  6573. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  6574. }
  6575. if ((val)->o[1] & 0x40) {
  6576. ASN1Free_BandwidthReject_tokens(&(val)->tokens);
  6577. }
  6578. if ((val)->o[1] & 0x20) {
  6579. ASN1Free_BandwidthReject_cryptoTokens(&(val)->cryptoTokens);
  6580. }
  6581. if ((val)->o[1] & 0x10) {
  6582. ASN1Free_ICV(&(val)->integrityCheckValue);
  6583. }
  6584. }
  6585. }
  6586. static int ASN1CALL ASN1Enc_LocationReject(ASN1encoding_t enc, LocationReject *val)
  6587. {
  6588. ASN1uint32_t y;
  6589. ASN1encoding_t ee;
  6590. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  6591. if (!ASN1PEREncBitVal(enc, 1, y))
  6592. return 0;
  6593. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6594. return 0;
  6595. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6596. return 0;
  6597. if (!ASN1Enc_LocationRejectReason(enc, &(val)->rejectReason))
  6598. return 0;
  6599. if ((val)->o[0] & 0x80) {
  6600. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6601. return 0;
  6602. }
  6603. if (y) {
  6604. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  6605. return 0;
  6606. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6607. return 0;
  6608. if ((val)->o[1] & 0x80) {
  6609. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  6610. return 0;
  6611. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6612. return 0;
  6613. }
  6614. if ((val)->o[1] & 0x40) {
  6615. if (!ASN1Enc_LocationReject_tokens(ee, &(val)->tokens))
  6616. return 0;
  6617. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6618. return 0;
  6619. }
  6620. if ((val)->o[1] & 0x20) {
  6621. if (!ASN1Enc_LocationReject_cryptoTokens(ee, &(val)->cryptoTokens))
  6622. return 0;
  6623. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6624. return 0;
  6625. }
  6626. if ((val)->o[1] & 0x10) {
  6627. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6628. return 0;
  6629. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6630. return 0;
  6631. }
  6632. ASN1_CloseEncoder2(ee);
  6633. }
  6634. return 1;
  6635. }
  6636. static int ASN1CALL ASN1Dec_LocationReject(ASN1decoding_t dec, LocationReject *val)
  6637. {
  6638. ASN1uint32_t y;
  6639. ASN1decoding_t dd;
  6640. ASN1octet_t *db;
  6641. ASN1uint32_t ds;
  6642. ASN1uint32_t i;
  6643. ASN1uint32_t e;
  6644. if (!ASN1PERDecExtensionBit(dec, &y))
  6645. return 0;
  6646. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6647. return 0;
  6648. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6649. return 0;
  6650. (val)->requestSeqNum += 1;
  6651. if (!ASN1Dec_LocationRejectReason(dec, &(val)->rejectReason))
  6652. return 0;
  6653. if ((val)->o[0] & 0x80) {
  6654. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6655. return 0;
  6656. }
  6657. if (!y) {
  6658. ZeroMemory((val)->o + 1, 1);
  6659. } else {
  6660. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  6661. return 0;
  6662. if ((val)->o[1] & 0x80) {
  6663. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6664. return 0;
  6665. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6666. return 0;
  6667. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  6668. return 0;
  6669. ASN1_CloseDecoder(dd);
  6670. ASN1Free(db);
  6671. }
  6672. if ((val)->o[1] & 0x40) {
  6673. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6674. return 0;
  6675. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6676. return 0;
  6677. if (!ASN1Dec_LocationReject_tokens(dd, &(val)->tokens))
  6678. return 0;
  6679. ASN1_CloseDecoder(dd);
  6680. ASN1Free(db);
  6681. }
  6682. if ((val)->o[1] & 0x20) {
  6683. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6684. return 0;
  6685. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6686. return 0;
  6687. if (!ASN1Dec_LocationReject_cryptoTokens(dd, &(val)->cryptoTokens))
  6688. return 0;
  6689. ASN1_CloseDecoder(dd);
  6690. ASN1Free(db);
  6691. }
  6692. if ((val)->o[1] & 0x10) {
  6693. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6694. return 0;
  6695. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6696. return 0;
  6697. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6698. return 0;
  6699. ASN1_CloseDecoder(dd);
  6700. ASN1Free(db);
  6701. }
  6702. for (i = 0; i < e; i++) {
  6703. if (!ASN1PERDecSkipFragmented(dec, 8))
  6704. return 0;
  6705. }
  6706. }
  6707. return 1;
  6708. }
  6709. static void ASN1CALL ASN1Free_LocationReject(LocationReject *val)
  6710. {
  6711. if (val) {
  6712. if ((val)->o[0] & 0x80) {
  6713. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6714. }
  6715. if ((val)->o[1] & 0x80) {
  6716. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  6717. }
  6718. if ((val)->o[1] & 0x40) {
  6719. ASN1Free_LocationReject_tokens(&(val)->tokens);
  6720. }
  6721. if ((val)->o[1] & 0x20) {
  6722. ASN1Free_LocationReject_cryptoTokens(&(val)->cryptoTokens);
  6723. }
  6724. if ((val)->o[1] & 0x10) {
  6725. ASN1Free_ICV(&(val)->integrityCheckValue);
  6726. }
  6727. }
  6728. }
  6729. static int ASN1CALL ASN1Enc_DisengageRequest(ASN1encoding_t enc, DisengageRequest *val)
  6730. {
  6731. ASN1octet_t o[2];
  6732. ASN1uint32_t y;
  6733. ASN1encoding_t ee;
  6734. CopyMemory(o, (val)->o, 2);
  6735. o[1] |= 0x80;
  6736. o[1] |= 0x4;
  6737. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  6738. if (!ASN1PEREncBitVal(enc, 1, y))
  6739. return 0;
  6740. if (!ASN1PEREncBits(enc, 1, o))
  6741. return 0;
  6742. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6743. return 0;
  6744. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  6745. return 0;
  6746. ASN1PEREncAlignment(enc);
  6747. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  6748. return 0;
  6749. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6750. return 0;
  6751. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  6752. return 0;
  6753. if (!ASN1Enc_DisengageReason(enc, &(val)->disengageReason))
  6754. return 0;
  6755. if (o[0] & 0x80) {
  6756. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6757. return 0;
  6758. }
  6759. if (y) {
  6760. if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
  6761. return 0;
  6762. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6763. return 0;
  6764. if (o[1] & 0x80) {
  6765. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  6766. return 0;
  6767. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6768. return 0;
  6769. }
  6770. if (o[1] & 0x40) {
  6771. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  6772. return 0;
  6773. ASN1PEREncAlignment(ee);
  6774. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  6775. return 0;
  6776. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6777. return 0;
  6778. }
  6779. if (o[1] & 0x20) {
  6780. if (!ASN1Enc_DisengageRequest_tokens(ee, &(val)->tokens))
  6781. return 0;
  6782. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6783. return 0;
  6784. }
  6785. if (o[1] & 0x10) {
  6786. if (!ASN1Enc_DisengageRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  6787. return 0;
  6788. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6789. return 0;
  6790. }
  6791. if (o[1] & 0x8) {
  6792. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6793. return 0;
  6794. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6795. return 0;
  6796. }
  6797. if (o[1] & 0x4) {
  6798. if (!ASN1PEREncBoolean(ee, (val)->answeredCall))
  6799. return 0;
  6800. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6801. return 0;
  6802. }
  6803. ASN1_CloseEncoder2(ee);
  6804. }
  6805. return 1;
  6806. }
  6807. static int ASN1CALL ASN1Dec_DisengageRequest(ASN1decoding_t dec, DisengageRequest *val)
  6808. {
  6809. ASN1uint32_t y;
  6810. ASN1decoding_t dd;
  6811. ASN1octet_t *db;
  6812. ASN1uint32_t ds;
  6813. ASN1uint32_t i;
  6814. ASN1uint32_t e;
  6815. if (!ASN1PERDecExtensionBit(dec, &y))
  6816. return 0;
  6817. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6818. return 0;
  6819. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6820. return 0;
  6821. (val)->requestSeqNum += 1;
  6822. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  6823. return 0;
  6824. ((val)->endpointIdentifier).length += 1;
  6825. ASN1PERDecAlignment(dec);
  6826. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  6827. return 0;
  6828. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6829. return 0;
  6830. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  6831. return 0;
  6832. if (!ASN1Dec_DisengageReason(dec, &(val)->disengageReason))
  6833. return 0;
  6834. if ((val)->o[0] & 0x80) {
  6835. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6836. return 0;
  6837. }
  6838. if (!y) {
  6839. ZeroMemory((val)->o + 1, 1);
  6840. } else {
  6841. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  6842. return 0;
  6843. if ((val)->o[1] & 0x80) {
  6844. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6845. return 0;
  6846. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6847. return 0;
  6848. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  6849. return 0;
  6850. ASN1_CloseDecoder(dd);
  6851. ASN1Free(db);
  6852. }
  6853. if ((val)->o[1] & 0x40) {
  6854. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6855. return 0;
  6856. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6857. return 0;
  6858. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  6859. return 0;
  6860. ((val)->gatekeeperIdentifier).length += 1;
  6861. ASN1PERDecAlignment(dd);
  6862. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  6863. return 0;
  6864. ASN1_CloseDecoder(dd);
  6865. ASN1Free(db);
  6866. }
  6867. if ((val)->o[1] & 0x20) {
  6868. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6869. return 0;
  6870. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6871. return 0;
  6872. if (!ASN1Dec_DisengageRequest_tokens(dd, &(val)->tokens))
  6873. return 0;
  6874. ASN1_CloseDecoder(dd);
  6875. ASN1Free(db);
  6876. }
  6877. if ((val)->o[1] & 0x10) {
  6878. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6879. return 0;
  6880. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6881. return 0;
  6882. if (!ASN1Dec_DisengageRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  6883. return 0;
  6884. ASN1_CloseDecoder(dd);
  6885. ASN1Free(db);
  6886. }
  6887. if ((val)->o[1] & 0x8) {
  6888. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6889. return 0;
  6890. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6891. return 0;
  6892. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6893. return 0;
  6894. ASN1_CloseDecoder(dd);
  6895. ASN1Free(db);
  6896. }
  6897. if ((val)->o[1] & 0x4) {
  6898. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6899. return 0;
  6900. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  6901. return 0;
  6902. if (!ASN1PERDecBoolean(dd, &(val)->answeredCall))
  6903. return 0;
  6904. ASN1_CloseDecoder(dd);
  6905. ASN1Free(db);
  6906. }
  6907. for (i = 0; i < e; i++) {
  6908. if (!ASN1PERDecSkipFragmented(dec, 8))
  6909. return 0;
  6910. }
  6911. }
  6912. return 1;
  6913. }
  6914. static void ASN1CALL ASN1Free_DisengageRequest(DisengageRequest *val)
  6915. {
  6916. if (val) {
  6917. ASN1char16string_free(&(val)->endpointIdentifier);
  6918. if ((val)->o[0] & 0x80) {
  6919. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6920. }
  6921. if ((val)->o[1] & 0x80) {
  6922. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  6923. }
  6924. if ((val)->o[1] & 0x40) {
  6925. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  6926. }
  6927. if ((val)->o[1] & 0x20) {
  6928. ASN1Free_DisengageRequest_tokens(&(val)->tokens);
  6929. }
  6930. if ((val)->o[1] & 0x10) {
  6931. ASN1Free_DisengageRequest_cryptoTokens(&(val)->cryptoTokens);
  6932. }
  6933. if ((val)->o[1] & 0x8) {
  6934. ASN1Free_ICV(&(val)->integrityCheckValue);
  6935. }
  6936. }
  6937. }
  6938. static int ASN1CALL ASN1Enc_DisengageConfirm(ASN1encoding_t enc, DisengageConfirm *val)
  6939. {
  6940. ASN1uint32_t y;
  6941. ASN1encoding_t ee;
  6942. y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
  6943. if (!ASN1PEREncBitVal(enc, 1, y))
  6944. return 0;
  6945. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6946. return 0;
  6947. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6948. return 0;
  6949. if ((val)->o[0] & 0x80) {
  6950. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6951. return 0;
  6952. }
  6953. if (y) {
  6954. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
  6955. return 0;
  6956. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6957. return 0;
  6958. if ((val)->o[1] & 0x80) {
  6959. if (!ASN1Enc_DisengageConfirm_tokens(ee, &(val)->tokens))
  6960. return 0;
  6961. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6962. return 0;
  6963. }
  6964. if ((val)->o[1] & 0x40) {
  6965. if (!ASN1Enc_DisengageConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  6966. return 0;
  6967. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6968. return 0;
  6969. }
  6970. if ((val)->o[1] & 0x20) {
  6971. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6972. return 0;
  6973. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6974. return 0;
  6975. }
  6976. ASN1_CloseEncoder2(ee);
  6977. }
  6978. return 1;
  6979. }
  6980. static int ASN1CALL ASN1Dec_DisengageConfirm(ASN1decoding_t dec, DisengageConfirm *val)
  6981. {
  6982. ASN1uint32_t y;
  6983. ASN1decoding_t dd;
  6984. ASN1octet_t *db;
  6985. ASN1uint32_t ds;
  6986. ASN1uint32_t i;
  6987. ASN1uint32_t e;
  6988. if (!ASN1PERDecExtensionBit(dec, &y))
  6989. return 0;
  6990. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6991. return 0;
  6992. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6993. return 0;
  6994. (val)->requestSeqNum += 1;
  6995. if ((val)->o[0] & 0x80) {
  6996. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6997. return 0;
  6998. }
  6999. if (!y) {
  7000. ZeroMemory((val)->o + 1, 1);
  7001. } else {
  7002. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
  7003. return 0;
  7004. if ((val)->o[1] & 0x80) {
  7005. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7006. return 0;
  7007. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7008. return 0;
  7009. if (!ASN1Dec_DisengageConfirm_tokens(dd, &(val)->tokens))
  7010. return 0;
  7011. ASN1_CloseDecoder(dd);
  7012. ASN1Free(db);
  7013. }
  7014. if ((val)->o[1] & 0x40) {
  7015. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7016. return 0;
  7017. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7018. return 0;
  7019. if (!ASN1Dec_DisengageConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  7020. return 0;
  7021. ASN1_CloseDecoder(dd);
  7022. ASN1Free(db);
  7023. }
  7024. if ((val)->o[1] & 0x20) {
  7025. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7026. return 0;
  7027. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7028. return 0;
  7029. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  7030. return 0;
  7031. ASN1_CloseDecoder(dd);
  7032. ASN1Free(db);
  7033. }
  7034. for (i = 0; i < e; i++) {
  7035. if (!ASN1PERDecSkipFragmented(dec, 8))
  7036. return 0;
  7037. }
  7038. }
  7039. return 1;
  7040. }
  7041. static void ASN1CALL ASN1Free_DisengageConfirm(DisengageConfirm *val)
  7042. {
  7043. if (val) {
  7044. if ((val)->o[0] & 0x80) {
  7045. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7046. }
  7047. if ((val)->o[1] & 0x80) {
  7048. ASN1Free_DisengageConfirm_tokens(&(val)->tokens);
  7049. }
  7050. if ((val)->o[1] & 0x40) {
  7051. ASN1Free_DisengageConfirm_cryptoTokens(&(val)->cryptoTokens);
  7052. }
  7053. if ((val)->o[1] & 0x20) {
  7054. ASN1Free_ICV(&(val)->integrityCheckValue);
  7055. }
  7056. }
  7057. }
  7058. static int ASN1CALL ASN1Enc_DisengageReject(ASN1encoding_t enc, DisengageReject *val)
  7059. {
  7060. ASN1uint32_t y;
  7061. ASN1encoding_t ee;
  7062. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  7063. if (!ASN1PEREncBitVal(enc, 1, y))
  7064. return 0;
  7065. if (!ASN1PEREncBits(enc, 1, (val)->o))
  7066. return 0;
  7067. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7068. return 0;
  7069. if (!ASN1Enc_DisengageRejectReason(enc, &(val)->rejectReason))
  7070. return 0;
  7071. if ((val)->o[0] & 0x80) {
  7072. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7073. return 0;
  7074. }
  7075. if (y) {
  7076. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  7077. return 0;
  7078. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  7079. return 0;
  7080. if ((val)->o[1] & 0x80) {
  7081. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  7082. return 0;
  7083. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7084. return 0;
  7085. }
  7086. if ((val)->o[1] & 0x40) {
  7087. if (!ASN1Enc_DisengageReject_tokens(ee, &(val)->tokens))
  7088. return 0;
  7089. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7090. return 0;
  7091. }
  7092. if ((val)->o[1] & 0x20) {
  7093. if (!ASN1Enc_DisengageReject_cryptoTokens(ee, &(val)->cryptoTokens))
  7094. return 0;
  7095. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7096. return 0;
  7097. }
  7098. if ((val)->o[1] & 0x10) {
  7099. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  7100. return 0;
  7101. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7102. return 0;
  7103. }
  7104. ASN1_CloseEncoder2(ee);
  7105. }
  7106. return 1;
  7107. }
  7108. static int ASN1CALL ASN1Dec_DisengageReject(ASN1decoding_t dec, DisengageReject *val)
  7109. {
  7110. ASN1uint32_t y;
  7111. ASN1decoding_t dd;
  7112. ASN1octet_t *db;
  7113. ASN1uint32_t ds;
  7114. ASN1uint32_t i;
  7115. ASN1uint32_t e;
  7116. if (!ASN1PERDecExtensionBit(dec, &y))
  7117. return 0;
  7118. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  7119. return 0;
  7120. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7121. return 0;
  7122. (val)->requestSeqNum += 1;
  7123. if (!ASN1Dec_DisengageRejectReason(dec, &(val)->rejectReason))
  7124. return 0;
  7125. if ((val)->o[0] & 0x80) {
  7126. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7127. return 0;
  7128. }
  7129. if (!y) {
  7130. ZeroMemory((val)->o + 1, 1);
  7131. } else {
  7132. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  7133. return 0;
  7134. if ((val)->o[1] & 0x80) {
  7135. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7136. return 0;
  7137. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7138. return 0;
  7139. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  7140. return 0;
  7141. ASN1_CloseDecoder(dd);
  7142. ASN1Free(db);
  7143. }
  7144. if ((val)->o[1] & 0x40) {
  7145. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7146. return 0;
  7147. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7148. return 0;
  7149. if (!ASN1Dec_DisengageReject_tokens(dd, &(val)->tokens))
  7150. return 0;
  7151. ASN1_CloseDecoder(dd);
  7152. ASN1Free(db);
  7153. }
  7154. if ((val)->o[1] & 0x20) {
  7155. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7156. return 0;
  7157. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7158. return 0;
  7159. if (!ASN1Dec_DisengageReject_cryptoTokens(dd, &(val)->cryptoTokens))
  7160. return 0;
  7161. ASN1_CloseDecoder(dd);
  7162. ASN1Free(db);
  7163. }
  7164. if ((val)->o[1] & 0x10) {
  7165. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7166. return 0;
  7167. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7168. return 0;
  7169. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  7170. return 0;
  7171. ASN1_CloseDecoder(dd);
  7172. ASN1Free(db);
  7173. }
  7174. for (i = 0; i < e; i++) {
  7175. if (!ASN1PERDecSkipFragmented(dec, 8))
  7176. return 0;
  7177. }
  7178. }
  7179. return 1;
  7180. }
  7181. static void ASN1CALL ASN1Free_DisengageReject(DisengageReject *val)
  7182. {
  7183. if (val) {
  7184. if ((val)->o[0] & 0x80) {
  7185. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7186. }
  7187. if ((val)->o[1] & 0x80) {
  7188. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  7189. }
  7190. if ((val)->o[1] & 0x40) {
  7191. ASN1Free_DisengageReject_tokens(&(val)->tokens);
  7192. }
  7193. if ((val)->o[1] & 0x20) {
  7194. ASN1Free_DisengageReject_cryptoTokens(&(val)->cryptoTokens);
  7195. }
  7196. if ((val)->o[1] & 0x10) {
  7197. ASN1Free_ICV(&(val)->integrityCheckValue);
  7198. }
  7199. }
  7200. }
  7201. static int ASN1CALL ASN1Enc_InfoRequestAck(ASN1encoding_t enc, InfoRequestAck *val)
  7202. {
  7203. if (!ASN1PEREncExtensionBitClear(enc))
  7204. return 0;
  7205. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7206. return 0;
  7207. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7208. return 0;
  7209. if ((val)->o[0] & 0x80) {
  7210. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7211. return 0;
  7212. }
  7213. if ((val)->o[0] & 0x40) {
  7214. if (!ASN1Enc_InfoRequestAck_tokens(enc, &(val)->tokens))
  7215. return 0;
  7216. }
  7217. if ((val)->o[0] & 0x20) {
  7218. if (!ASN1Enc_InfoRequestAck_cryptoTokens(enc, &(val)->cryptoTokens))
  7219. return 0;
  7220. }
  7221. if ((val)->o[0] & 0x10) {
  7222. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7223. return 0;
  7224. }
  7225. return 1;
  7226. }
  7227. static int ASN1CALL ASN1Dec_InfoRequestAck(ASN1decoding_t dec, InfoRequestAck *val)
  7228. {
  7229. ASN1uint32_t y;
  7230. if (!ASN1PERDecExtensionBit(dec, &y))
  7231. return 0;
  7232. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7233. return 0;
  7234. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7235. return 0;
  7236. (val)->requestSeqNum += 1;
  7237. if ((val)->o[0] & 0x80) {
  7238. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7239. return 0;
  7240. }
  7241. if ((val)->o[0] & 0x40) {
  7242. if (!ASN1Dec_InfoRequestAck_tokens(dec, &(val)->tokens))
  7243. return 0;
  7244. }
  7245. if ((val)->o[0] & 0x20) {
  7246. if (!ASN1Dec_InfoRequestAck_cryptoTokens(dec, &(val)->cryptoTokens))
  7247. return 0;
  7248. }
  7249. if ((val)->o[0] & 0x10) {
  7250. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7251. return 0;
  7252. }
  7253. if (y) {
  7254. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7255. return 0;
  7256. }
  7257. return 1;
  7258. }
  7259. static void ASN1CALL ASN1Free_InfoRequestAck(InfoRequestAck *val)
  7260. {
  7261. if (val) {
  7262. if ((val)->o[0] & 0x80) {
  7263. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7264. }
  7265. if ((val)->o[0] & 0x40) {
  7266. ASN1Free_InfoRequestAck_tokens(&(val)->tokens);
  7267. }
  7268. if ((val)->o[0] & 0x20) {
  7269. ASN1Free_InfoRequestAck_cryptoTokens(&(val)->cryptoTokens);
  7270. }
  7271. if ((val)->o[0] & 0x10) {
  7272. ASN1Free_ICV(&(val)->integrityCheckValue);
  7273. }
  7274. }
  7275. }
  7276. static int ASN1CALL ASN1Enc_InfoRequestNak(ASN1encoding_t enc, InfoRequestNak *val)
  7277. {
  7278. if (!ASN1PEREncExtensionBitClear(enc))
  7279. return 0;
  7280. if (!ASN1PEREncBits(enc, 5, (val)->o))
  7281. return 0;
  7282. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7283. return 0;
  7284. if ((val)->o[0] & 0x80) {
  7285. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7286. return 0;
  7287. }
  7288. if (!ASN1Enc_InfoRequestNakReason(enc, &(val)->nakReason))
  7289. return 0;
  7290. if ((val)->o[0] & 0x40) {
  7291. if (!ASN1Enc_AltGKInfo(enc, &(val)->altGKInfo))
  7292. return 0;
  7293. }
  7294. if ((val)->o[0] & 0x20) {
  7295. if (!ASN1Enc_InfoRequestNak_tokens(enc, &(val)->tokens))
  7296. return 0;
  7297. }
  7298. if ((val)->o[0] & 0x10) {
  7299. if (!ASN1Enc_InfoRequestNak_cryptoTokens(enc, &(val)->cryptoTokens))
  7300. return 0;
  7301. }
  7302. if ((val)->o[0] & 0x8) {
  7303. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7304. return 0;
  7305. }
  7306. return 1;
  7307. }
  7308. static int ASN1CALL ASN1Dec_InfoRequestNak(ASN1decoding_t dec, InfoRequestNak *val)
  7309. {
  7310. ASN1uint32_t y;
  7311. if (!ASN1PERDecExtensionBit(dec, &y))
  7312. return 0;
  7313. if (!ASN1PERDecExtension(dec, 5, (val)->o))
  7314. return 0;
  7315. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7316. return 0;
  7317. (val)->requestSeqNum += 1;
  7318. if ((val)->o[0] & 0x80) {
  7319. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7320. return 0;
  7321. }
  7322. if (!ASN1Dec_InfoRequestNakReason(dec, &(val)->nakReason))
  7323. return 0;
  7324. if ((val)->o[0] & 0x40) {
  7325. if (!ASN1Dec_AltGKInfo(dec, &(val)->altGKInfo))
  7326. return 0;
  7327. }
  7328. if ((val)->o[0] & 0x20) {
  7329. if (!ASN1Dec_InfoRequestNak_tokens(dec, &(val)->tokens))
  7330. return 0;
  7331. }
  7332. if ((val)->o[0] & 0x10) {
  7333. if (!ASN1Dec_InfoRequestNak_cryptoTokens(dec, &(val)->cryptoTokens))
  7334. return 0;
  7335. }
  7336. if ((val)->o[0] & 0x8) {
  7337. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7338. return 0;
  7339. }
  7340. if (y) {
  7341. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7342. return 0;
  7343. }
  7344. return 1;
  7345. }
  7346. static void ASN1CALL ASN1Free_InfoRequestNak(InfoRequestNak *val)
  7347. {
  7348. if (val) {
  7349. if ((val)->o[0] & 0x80) {
  7350. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7351. }
  7352. if ((val)->o[0] & 0x40) {
  7353. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  7354. }
  7355. if ((val)->o[0] & 0x20) {
  7356. ASN1Free_InfoRequestNak_tokens(&(val)->tokens);
  7357. }
  7358. if ((val)->o[0] & 0x10) {
  7359. ASN1Free_InfoRequestNak_cryptoTokens(&(val)->cryptoTokens);
  7360. }
  7361. if ((val)->o[0] & 0x8) {
  7362. ASN1Free_ICV(&(val)->integrityCheckValue);
  7363. }
  7364. }
  7365. }
  7366. static int ASN1CALL ASN1Enc_H225NonStandardMessage(ASN1encoding_t enc, H225NonStandardMessage *val)
  7367. {
  7368. ASN1uint32_t y;
  7369. ASN1encoding_t ee;
  7370. y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
  7371. if (!ASN1PEREncBitVal(enc, 1, y))
  7372. return 0;
  7373. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7374. return 0;
  7375. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7376. return 0;
  7377. if (y) {
  7378. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 0))
  7379. return 0;
  7380. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  7381. return 0;
  7382. if ((val)->o[0] & 0x80) {
  7383. if (!ASN1Enc_H225NonStandardMessage_tokens(ee, &(val)->tokens))
  7384. return 0;
  7385. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7386. return 0;
  7387. }
  7388. if ((val)->o[0] & 0x40) {
  7389. if (!ASN1Enc_H225NonStandardMessage_cryptoTokens(ee, &(val)->cryptoTokens))
  7390. return 0;
  7391. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7392. return 0;
  7393. }
  7394. if ((val)->o[0] & 0x20) {
  7395. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  7396. return 0;
  7397. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7398. return 0;
  7399. }
  7400. ASN1_CloseEncoder2(ee);
  7401. }
  7402. return 1;
  7403. }
  7404. static int ASN1CALL ASN1Dec_H225NonStandardMessage(ASN1decoding_t dec, H225NonStandardMessage *val)
  7405. {
  7406. ASN1uint32_t y;
  7407. ASN1decoding_t dd;
  7408. ASN1octet_t *db;
  7409. ASN1uint32_t ds;
  7410. ASN1uint32_t i;
  7411. ASN1uint32_t e;
  7412. if (!ASN1PERDecExtensionBit(dec, &y))
  7413. return 0;
  7414. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7415. return 0;
  7416. (val)->requestSeqNum += 1;
  7417. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7418. return 0;
  7419. if (!y) {
  7420. ZeroMemory((val)->o + 0, 1);
  7421. } else {
  7422. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
  7423. return 0;
  7424. if ((val)->o[0] & 0x80) {
  7425. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7426. return 0;
  7427. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7428. return 0;
  7429. if (!ASN1Dec_H225NonStandardMessage_tokens(dd, &(val)->tokens))
  7430. return 0;
  7431. ASN1_CloseDecoder(dd);
  7432. ASN1Free(db);
  7433. }
  7434. if ((val)->o[0] & 0x40) {
  7435. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7436. return 0;
  7437. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7438. return 0;
  7439. if (!ASN1Dec_H225NonStandardMessage_cryptoTokens(dd, &(val)->cryptoTokens))
  7440. return 0;
  7441. ASN1_CloseDecoder(dd);
  7442. ASN1Free(db);
  7443. }
  7444. if ((val)->o[0] & 0x20) {
  7445. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7446. return 0;
  7447. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  7448. return 0;
  7449. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  7450. return 0;
  7451. ASN1_CloseDecoder(dd);
  7452. ASN1Free(db);
  7453. }
  7454. for (i = 0; i < e; i++) {
  7455. if (!ASN1PERDecSkipFragmented(dec, 8))
  7456. return 0;
  7457. }
  7458. }
  7459. return 1;
  7460. }
  7461. static void ASN1CALL ASN1Free_H225NonStandardMessage(H225NonStandardMessage *val)
  7462. {
  7463. if (val) {
  7464. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7465. if ((val)->o[0] & 0x80) {
  7466. ASN1Free_H225NonStandardMessage_tokens(&(val)->tokens);
  7467. }
  7468. if ((val)->o[0] & 0x40) {
  7469. ASN1Free_H225NonStandardMessage_cryptoTokens(&(val)->cryptoTokens);
  7470. }
  7471. if ((val)->o[0] & 0x20) {
  7472. ASN1Free_ICV(&(val)->integrityCheckValue);
  7473. }
  7474. }
  7475. }
  7476. static int ASN1CALL ASN1Enc_RequestInProgress(ASN1encoding_t enc, RequestInProgress *val)
  7477. {
  7478. if (!ASN1PEREncExtensionBitClear(enc))
  7479. return 0;
  7480. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7481. return 0;
  7482. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7483. return 0;
  7484. if ((val)->o[0] & 0x80) {
  7485. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7486. return 0;
  7487. }
  7488. if ((val)->o[0] & 0x40) {
  7489. if (!ASN1Enc_RequestInProgress_tokens(enc, &(val)->tokens))
  7490. return 0;
  7491. }
  7492. if ((val)->o[0] & 0x20) {
  7493. if (!ASN1Enc_RequestInProgress_cryptoTokens(enc, &(val)->cryptoTokens))
  7494. return 0;
  7495. }
  7496. if ((val)->o[0] & 0x10) {
  7497. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7498. return 0;
  7499. }
  7500. if (!ASN1PEREncUnsignedShort(enc, (val)->delay - 1))
  7501. return 0;
  7502. return 1;
  7503. }
  7504. static int ASN1CALL ASN1Dec_RequestInProgress(ASN1decoding_t dec, RequestInProgress *val)
  7505. {
  7506. ASN1uint32_t y;
  7507. if (!ASN1PERDecExtensionBit(dec, &y))
  7508. return 0;
  7509. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7510. return 0;
  7511. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7512. return 0;
  7513. (val)->requestSeqNum += 1;
  7514. if ((val)->o[0] & 0x80) {
  7515. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7516. return 0;
  7517. }
  7518. if ((val)->o[0] & 0x40) {
  7519. if (!ASN1Dec_RequestInProgress_tokens(dec, &(val)->tokens))
  7520. return 0;
  7521. }
  7522. if ((val)->o[0] & 0x20) {
  7523. if (!ASN1Dec_RequestInProgress_cryptoTokens(dec, &(val)->cryptoTokens))
  7524. return 0;
  7525. }
  7526. if ((val)->o[0] & 0x10) {
  7527. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7528. return 0;
  7529. }
  7530. if (!ASN1PERDecUnsignedShort(dec, &(val)->delay))
  7531. return 0;
  7532. (val)->delay += 1;
  7533. if (y) {
  7534. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7535. return 0;
  7536. }
  7537. return 1;
  7538. }
  7539. static void ASN1CALL ASN1Free_RequestInProgress(RequestInProgress *val)
  7540. {
  7541. if (val) {
  7542. if ((val)->o[0] & 0x80) {
  7543. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7544. }
  7545. if ((val)->o[0] & 0x40) {
  7546. ASN1Free_RequestInProgress_tokens(&(val)->tokens);
  7547. }
  7548. if ((val)->o[0] & 0x20) {
  7549. ASN1Free_RequestInProgress_cryptoTokens(&(val)->cryptoTokens);
  7550. }
  7551. if ((val)->o[0] & 0x10) {
  7552. ASN1Free_ICV(&(val)->integrityCheckValue);
  7553. }
  7554. }
  7555. }
  7556. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate(ASN1encoding_t enc, ResourcesAvailableIndicate *val)
  7557. {
  7558. if (!ASN1PEREncExtensionBitClear(enc))
  7559. return 0;
  7560. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7561. return 0;
  7562. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7563. return 0;
  7564. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  7565. return 0;
  7566. if ((val)->o[0] & 0x80) {
  7567. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7568. return 0;
  7569. }
  7570. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  7571. return 0;
  7572. ASN1PEREncAlignment(enc);
  7573. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  7574. return 0;
  7575. if (!ASN1Enc_ResourcesAvailableIndicate_protocols(enc, &(val)->protocols))
  7576. return 0;
  7577. if (!ASN1PEREncBoolean(enc, (val)->almostOutOfResources))
  7578. return 0;
  7579. if ((val)->o[0] & 0x40) {
  7580. if (!ASN1Enc_ResourcesAvailableIndicate_tokens(enc, &(val)->tokens))
  7581. return 0;
  7582. }
  7583. if ((val)->o[0] & 0x20) {
  7584. if (!ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(enc, &(val)->cryptoTokens))
  7585. return 0;
  7586. }
  7587. if ((val)->o[0] & 0x10) {
  7588. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7589. return 0;
  7590. }
  7591. return 1;
  7592. }
  7593. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate(ASN1decoding_t dec, ResourcesAvailableIndicate *val)
  7594. {
  7595. ASN1uint32_t y;
  7596. if (!ASN1PERDecExtensionBit(dec, &y))
  7597. return 0;
  7598. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7599. return 0;
  7600. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7601. return 0;
  7602. (val)->requestSeqNum += 1;
  7603. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  7604. return 0;
  7605. if ((val)->o[0] & 0x80) {
  7606. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7607. return 0;
  7608. }
  7609. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  7610. return 0;
  7611. ((val)->endpointIdentifier).length += 1;
  7612. ASN1PERDecAlignment(dec);
  7613. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  7614. return 0;
  7615. if (!ASN1Dec_ResourcesAvailableIndicate_protocols(dec, &(val)->protocols))
  7616. return 0;
  7617. if (!ASN1PERDecBoolean(dec, &(val)->almostOutOfResources))
  7618. return 0;
  7619. if ((val)->o[0] & 0x40) {
  7620. if (!ASN1Dec_ResourcesAvailableIndicate_tokens(dec, &(val)->tokens))
  7621. return 0;
  7622. }
  7623. if ((val)->o[0] & 0x20) {
  7624. if (!ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(dec, &(val)->cryptoTokens))
  7625. return 0;
  7626. }
  7627. if ((val)->o[0] & 0x10) {
  7628. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7629. return 0;
  7630. }
  7631. if (y) {
  7632. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7633. return 0;
  7634. }
  7635. return 1;
  7636. }
  7637. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate(ResourcesAvailableIndicate *val)
  7638. {
  7639. if (val) {
  7640. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  7641. if ((val)->o[0] & 0x80) {
  7642. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7643. }
  7644. ASN1char16string_free(&(val)->endpointIdentifier);
  7645. ASN1Free_ResourcesAvailableIndicate_protocols(&(val)->protocols);
  7646. if ((val)->o[0] & 0x40) {
  7647. ASN1Free_ResourcesAvailableIndicate_tokens(&(val)->tokens);
  7648. }
  7649. if ((val)->o[0] & 0x20) {
  7650. ASN1Free_ResourcesAvailableIndicate_cryptoTokens(&(val)->cryptoTokens);
  7651. }
  7652. if ((val)->o[0] & 0x10) {
  7653. ASN1Free_ICV(&(val)->integrityCheckValue);
  7654. }
  7655. }
  7656. }
  7657. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm(ASN1encoding_t enc, ResourcesAvailableConfirm *val)
  7658. {
  7659. if (!ASN1PEREncExtensionBitClear(enc))
  7660. return 0;
  7661. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7662. return 0;
  7663. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7664. return 0;
  7665. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  7666. return 0;
  7667. if ((val)->o[0] & 0x80) {
  7668. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7669. return 0;
  7670. }
  7671. if ((val)->o[0] & 0x40) {
  7672. if (!ASN1Enc_ResourcesAvailableConfirm_tokens(enc, &(val)->tokens))
  7673. return 0;
  7674. }
  7675. if ((val)->o[0] & 0x20) {
  7676. if (!ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(enc, &(val)->cryptoTokens))
  7677. return 0;
  7678. }
  7679. if ((val)->o[0] & 0x10) {
  7680. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7681. return 0;
  7682. }
  7683. return 1;
  7684. }
  7685. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm(ASN1decoding_t dec, ResourcesAvailableConfirm *val)
  7686. {
  7687. ASN1uint32_t y;
  7688. if (!ASN1PERDecExtensionBit(dec, &y))
  7689. return 0;
  7690. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7691. return 0;
  7692. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7693. return 0;
  7694. (val)->requestSeqNum += 1;
  7695. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  7696. return 0;
  7697. if ((val)->o[0] & 0x80) {
  7698. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7699. return 0;
  7700. }
  7701. if ((val)->o[0] & 0x40) {
  7702. if (!ASN1Dec_ResourcesAvailableConfirm_tokens(dec, &(val)->tokens))
  7703. return 0;
  7704. }
  7705. if ((val)->o[0] & 0x20) {
  7706. if (!ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(dec, &(val)->cryptoTokens))
  7707. return 0;
  7708. }
  7709. if ((val)->o[0] & 0x10) {
  7710. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7711. return 0;
  7712. }
  7713. if (y) {
  7714. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7715. return 0;
  7716. }
  7717. return 1;
  7718. }
  7719. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm(ResourcesAvailableConfirm *val)
  7720. {
  7721. if (val) {
  7722. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  7723. if ((val)->o[0] & 0x80) {
  7724. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7725. }
  7726. if ((val)->o[0] & 0x40) {
  7727. ASN1Free_ResourcesAvailableConfirm_tokens(&(val)->tokens);
  7728. }
  7729. if ((val)->o[0] & 0x20) {
  7730. ASN1Free_ResourcesAvailableConfirm_cryptoTokens(&(val)->cryptoTokens);
  7731. }
  7732. if ((val)->o[0] & 0x10) {
  7733. ASN1Free_ICV(&(val)->integrityCheckValue);
  7734. }
  7735. }
  7736. }
  7737. static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity(ASN1encoding_t enc, PGatekeeperConfirm_integrity *val)
  7738. {
  7739. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_integrity_ElmFn);
  7740. }
  7741. static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_integrity val)
  7742. {
  7743. if (!ASN1Enc_IntegrityMechanism(enc, &val->value))
  7744. return 0;
  7745. return 1;
  7746. }
  7747. static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity(ASN1decoding_t dec, PGatekeeperConfirm_integrity *val)
  7748. {
  7749. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_integrity_ElmFn, sizeof(**val));
  7750. }
  7751. static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_integrity val)
  7752. {
  7753. if (!ASN1Dec_IntegrityMechanism(dec, &val->value))
  7754. return 0;
  7755. return 1;
  7756. }
  7757. static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity(PGatekeeperConfirm_integrity *val)
  7758. {
  7759. if (val) {
  7760. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_integrity_ElmFn);
  7761. }
  7762. }
  7763. static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity_ElmFn(PGatekeeperConfirm_integrity val)
  7764. {
  7765. if (val) {
  7766. ASN1Free_IntegrityMechanism(&val->value);
  7767. }
  7768. }
  7769. static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity(ASN1encoding_t enc, PGatekeeperRequest_integrity *val)
  7770. {
  7771. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_integrity_ElmFn);
  7772. }
  7773. static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_integrity val)
  7774. {
  7775. if (!ASN1Enc_IntegrityMechanism(enc, &val->value))
  7776. return 0;
  7777. return 1;
  7778. }
  7779. static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity(ASN1decoding_t dec, PGatekeeperRequest_integrity *val)
  7780. {
  7781. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_integrity_ElmFn, sizeof(**val));
  7782. }
  7783. static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_integrity val)
  7784. {
  7785. if (!ASN1Dec_IntegrityMechanism(dec, &val->value))
  7786. return 0;
  7787. return 1;
  7788. }
  7789. static void ASN1CALL ASN1Free_GatekeeperRequest_integrity(PGatekeeperRequest_integrity *val)
  7790. {
  7791. if (val) {
  7792. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_integrity_ElmFn);
  7793. }
  7794. }
  7795. static void ASN1CALL ASN1Free_GatekeeperRequest_integrity_ElmFn(PGatekeeperRequest_integrity val)
  7796. {
  7797. if (val) {
  7798. ASN1Free_IntegrityMechanism(&val->value);
  7799. }
  7800. }
  7801. static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoGKPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoGKPwdHash *val)
  7802. {
  7803. ASN1uint32_t l;
  7804. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperId).length - 1))
  7805. return 0;
  7806. ASN1PEREncAlignment(enc);
  7807. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperId).length, ((val)->gatekeeperId).value, 16))
  7808. return 0;
  7809. l = ASN1uint32_uoctets((val)->timeStamp - 1);
  7810. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  7811. return 0;
  7812. ASN1PEREncAlignment(enc);
  7813. if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
  7814. return 0;
  7815. if (!ASN1Enc_HASHED(enc, &(val)->token))
  7816. return 0;
  7817. return 1;
  7818. }
  7819. static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoGKPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoGKPwdHash *val)
  7820. {
  7821. ASN1uint32_t l;
  7822. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperId).length))
  7823. return 0;
  7824. ((val)->gatekeeperId).length += 1;
  7825. ASN1PERDecAlignment(dec);
  7826. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperId).length, &((val)->gatekeeperId).value, 16))
  7827. return 0;
  7828. if (!ASN1PERDecU32Val(dec, 2, &l))
  7829. return 0;
  7830. l += 1;
  7831. ASN1PERDecAlignment(dec);
  7832. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
  7833. return 0;
  7834. (val)->timeStamp += 1;
  7835. if (!ASN1Dec_HASHED(dec, &(val)->token))
  7836. return 0;
  7837. return 1;
  7838. }
  7839. static void ASN1CALL ASN1Free_CryptoH323Token_cryptoGKPwdHash(CryptoH323Token_cryptoGKPwdHash *val)
  7840. {
  7841. if (val) {
  7842. ASN1char16string_free(&(val)->gatekeeperId);
  7843. ASN1Free_HASHED(&(val)->token);
  7844. }
  7845. }
  7846. static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported *val)
  7847. {
  7848. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_NonStandardProtocol_dataRatesSupported_ElmFn);
  7849. }
  7850. static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported_ElmFn(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported val)
  7851. {
  7852. if (!ASN1Enc_DataRate(enc, &val->value))
  7853. return 0;
  7854. return 1;
  7855. }
  7856. static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported *val)
  7857. {
  7858. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_NonStandardProtocol_dataRatesSupported_ElmFn, sizeof(**val));
  7859. }
  7860. static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported_ElmFn(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported val)
  7861. {
  7862. if (!ASN1Dec_DataRate(dec, &val->value))
  7863. return 0;
  7864. return 1;
  7865. }
  7866. static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported(PNonStandardProtocol_dataRatesSupported *val)
  7867. {
  7868. if (val) {
  7869. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_NonStandardProtocol_dataRatesSupported_ElmFn);
  7870. }
  7871. }
  7872. static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported_ElmFn(PNonStandardProtocol_dataRatesSupported val)
  7873. {
  7874. if (val) {
  7875. ASN1Free_DataRate(&val->value);
  7876. }
  7877. }
  7878. static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported *val)
  7879. {
  7880. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_T120OnlyCaps_dataRatesSupported_ElmFn);
  7881. }
  7882. static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported val)
  7883. {
  7884. if (!ASN1Enc_DataRate(enc, &val->value))
  7885. return 0;
  7886. return 1;
  7887. }
  7888. static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported *val)
  7889. {
  7890. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_T120OnlyCaps_dataRatesSupported_ElmFn, sizeof(**val));
  7891. }
  7892. static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported val)
  7893. {
  7894. if (!ASN1Dec_DataRate(dec, &val->value))
  7895. return 0;
  7896. return 1;
  7897. }
  7898. static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported(PT120OnlyCaps_dataRatesSupported *val)
  7899. {
  7900. if (val) {
  7901. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_T120OnlyCaps_dataRatesSupported_ElmFn);
  7902. }
  7903. }
  7904. static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported_ElmFn(PT120OnlyCaps_dataRatesSupported val)
  7905. {
  7906. if (val) {
  7907. ASN1Free_DataRate(&val->value);
  7908. }
  7909. }
  7910. static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported *val)
  7911. {
  7912. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_VoiceCaps_dataRatesSupported_ElmFn);
  7913. }
  7914. static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported val)
  7915. {
  7916. if (!ASN1Enc_DataRate(enc, &val->value))
  7917. return 0;
  7918. return 1;
  7919. }
  7920. static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported *val)
  7921. {
  7922. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_VoiceCaps_dataRatesSupported_ElmFn, sizeof(**val));
  7923. }
  7924. static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported val)
  7925. {
  7926. if (!ASN1Dec_DataRate(dec, &val->value))
  7927. return 0;
  7928. return 1;
  7929. }
  7930. static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported(PVoiceCaps_dataRatesSupported *val)
  7931. {
  7932. if (val) {
  7933. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_VoiceCaps_dataRatesSupported_ElmFn);
  7934. }
  7935. }
  7936. static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported_ElmFn(PVoiceCaps_dataRatesSupported val)
  7937. {
  7938. if (val) {
  7939. ASN1Free_DataRate(&val->value);
  7940. }
  7941. }
  7942. static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported(ASN1encoding_t enc, PH324Caps_dataRatesSupported *val)
  7943. {
  7944. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H324Caps_dataRatesSupported_ElmFn);
  7945. }
  7946. static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH324Caps_dataRatesSupported val)
  7947. {
  7948. if (!ASN1Enc_DataRate(enc, &val->value))
  7949. return 0;
  7950. return 1;
  7951. }
  7952. static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported(ASN1decoding_t dec, PH324Caps_dataRatesSupported *val)
  7953. {
  7954. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H324Caps_dataRatesSupported_ElmFn, sizeof(**val));
  7955. }
  7956. static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH324Caps_dataRatesSupported val)
  7957. {
  7958. if (!ASN1Dec_DataRate(dec, &val->value))
  7959. return 0;
  7960. return 1;
  7961. }
  7962. static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported(PH324Caps_dataRatesSupported *val)
  7963. {
  7964. if (val) {
  7965. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H324Caps_dataRatesSupported_ElmFn);
  7966. }
  7967. }
  7968. static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported_ElmFn(PH324Caps_dataRatesSupported val)
  7969. {
  7970. if (val) {
  7971. ASN1Free_DataRate(&val->value);
  7972. }
  7973. }
  7974. static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported(ASN1encoding_t enc, PH323Caps_dataRatesSupported *val)
  7975. {
  7976. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323Caps_dataRatesSupported_ElmFn);
  7977. }
  7978. static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH323Caps_dataRatesSupported val)
  7979. {
  7980. if (!ASN1Enc_DataRate(enc, &val->value))
  7981. return 0;
  7982. return 1;
  7983. }
  7984. static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported(ASN1decoding_t dec, PH323Caps_dataRatesSupported *val)
  7985. {
  7986. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323Caps_dataRatesSupported_ElmFn, sizeof(**val));
  7987. }
  7988. static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH323Caps_dataRatesSupported val)
  7989. {
  7990. if (!ASN1Dec_DataRate(dec, &val->value))
  7991. return 0;
  7992. return 1;
  7993. }
  7994. static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported(PH323Caps_dataRatesSupported *val)
  7995. {
  7996. if (val) {
  7997. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323Caps_dataRatesSupported_ElmFn);
  7998. }
  7999. }
  8000. static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported_ElmFn(PH323Caps_dataRatesSupported val)
  8001. {
  8002. if (val) {
  8003. ASN1Free_DataRate(&val->value);
  8004. }
  8005. }
  8006. static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported(ASN1encoding_t enc, PH322Caps_dataRatesSupported *val)
  8007. {
  8008. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H322Caps_dataRatesSupported_ElmFn);
  8009. }
  8010. static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH322Caps_dataRatesSupported val)
  8011. {
  8012. if (!ASN1Enc_DataRate(enc, &val->value))
  8013. return 0;
  8014. return 1;
  8015. }
  8016. static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported(ASN1decoding_t dec, PH322Caps_dataRatesSupported *val)
  8017. {
  8018. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H322Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8019. }
  8020. static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH322Caps_dataRatesSupported val)
  8021. {
  8022. if (!ASN1Dec_DataRate(dec, &val->value))
  8023. return 0;
  8024. return 1;
  8025. }
  8026. static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported(PH322Caps_dataRatesSupported *val)
  8027. {
  8028. if (val) {
  8029. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H322Caps_dataRatesSupported_ElmFn);
  8030. }
  8031. }
  8032. static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported_ElmFn(PH322Caps_dataRatesSupported val)
  8033. {
  8034. if (val) {
  8035. ASN1Free_DataRate(&val->value);
  8036. }
  8037. }
  8038. static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported(ASN1encoding_t enc, PH321Caps_dataRatesSupported *val)
  8039. {
  8040. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H321Caps_dataRatesSupported_ElmFn);
  8041. }
  8042. static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH321Caps_dataRatesSupported val)
  8043. {
  8044. if (!ASN1Enc_DataRate(enc, &val->value))
  8045. return 0;
  8046. return 1;
  8047. }
  8048. static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported(ASN1decoding_t dec, PH321Caps_dataRatesSupported *val)
  8049. {
  8050. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H321Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8051. }
  8052. static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH321Caps_dataRatesSupported val)
  8053. {
  8054. if (!ASN1Dec_DataRate(dec, &val->value))
  8055. return 0;
  8056. return 1;
  8057. }
  8058. static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported(PH321Caps_dataRatesSupported *val)
  8059. {
  8060. if (val) {
  8061. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H321Caps_dataRatesSupported_ElmFn);
  8062. }
  8063. }
  8064. static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported_ElmFn(PH321Caps_dataRatesSupported val)
  8065. {
  8066. if (val) {
  8067. ASN1Free_DataRate(&val->value);
  8068. }
  8069. }
  8070. static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported(ASN1encoding_t enc, PH320Caps_dataRatesSupported *val)
  8071. {
  8072. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H320Caps_dataRatesSupported_ElmFn);
  8073. }
  8074. static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH320Caps_dataRatesSupported val)
  8075. {
  8076. if (!ASN1Enc_DataRate(enc, &val->value))
  8077. return 0;
  8078. return 1;
  8079. }
  8080. static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported(ASN1decoding_t dec, PH320Caps_dataRatesSupported *val)
  8081. {
  8082. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H320Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8083. }
  8084. static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH320Caps_dataRatesSupported val)
  8085. {
  8086. if (!ASN1Dec_DataRate(dec, &val->value))
  8087. return 0;
  8088. return 1;
  8089. }
  8090. static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported(PH320Caps_dataRatesSupported *val)
  8091. {
  8092. if (val) {
  8093. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H320Caps_dataRatesSupported_ElmFn);
  8094. }
  8095. }
  8096. static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported_ElmFn(PH320Caps_dataRatesSupported val)
  8097. {
  8098. if (val) {
  8099. ASN1Free_DataRate(&val->value);
  8100. }
  8101. }
  8102. static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported(ASN1encoding_t enc, PH310Caps_dataRatesSupported *val)
  8103. {
  8104. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H310Caps_dataRatesSupported_ElmFn);
  8105. }
  8106. static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH310Caps_dataRatesSupported val)
  8107. {
  8108. if (!ASN1Enc_DataRate(enc, &val->value))
  8109. return 0;
  8110. return 1;
  8111. }
  8112. static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported(ASN1decoding_t dec, PH310Caps_dataRatesSupported *val)
  8113. {
  8114. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H310Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8115. }
  8116. static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH310Caps_dataRatesSupported val)
  8117. {
  8118. if (!ASN1Dec_DataRate(dec, &val->value))
  8119. return 0;
  8120. return 1;
  8121. }
  8122. static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported(PH310Caps_dataRatesSupported *val)
  8123. {
  8124. if (val) {
  8125. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H310Caps_dataRatesSupported_ElmFn);
  8126. }
  8127. }
  8128. static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported_ElmFn(PH310Caps_dataRatesSupported val)
  8129. {
  8130. if (val) {
  8131. ASN1Free_DataRate(&val->value);
  8132. }
  8133. }
  8134. static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability *val)
  8135. {
  8136. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_h245SecurityCapability_ElmFn);
  8137. }
  8138. static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability_ElmFn(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability val)
  8139. {
  8140. if (!ASN1Enc_H245Security(enc, &val->value))
  8141. return 0;
  8142. return 1;
  8143. }
  8144. static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability *val)
  8145. {
  8146. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_h245SecurityCapability_ElmFn, sizeof(**val));
  8147. }
  8148. static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability_ElmFn(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability val)
  8149. {
  8150. if (!ASN1Dec_H245Security(dec, &val->value))
  8151. return 0;
  8152. return 1;
  8153. }
  8154. static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability(PSetup_UUIE_h245SecurityCapability *val)
  8155. {
  8156. if (val) {
  8157. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_h245SecurityCapability_ElmFn);
  8158. }
  8159. }
  8160. static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability_ElmFn(PSetup_UUIE_h245SecurityCapability val)
  8161. {
  8162. if (val) {
  8163. ASN1Free_H245Security(&val->value);
  8164. }
  8165. }
  8166. static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl *val)
  8167. {
  8168. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_nonStandardControl_ElmFn);
  8169. }
  8170. static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl val)
  8171. {
  8172. if (!ASN1Enc_H225NonStandardParameter(enc, &val->value))
  8173. return 0;
  8174. return 1;
  8175. }
  8176. static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl *val)
  8177. {
  8178. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_nonStandardControl_ElmFn, sizeof(**val));
  8179. }
  8180. static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl val)
  8181. {
  8182. if (!ASN1Dec_H225NonStandardParameter(dec, &val->value))
  8183. return 0;
  8184. return 1;
  8185. }
  8186. static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl(PH323_UU_PDU_nonStandardControl *val)
  8187. {
  8188. if (val) {
  8189. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_nonStandardControl_ElmFn);
  8190. }
  8191. }
  8192. static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl_ElmFn(PH323_UU_PDU_nonStandardControl val)
  8193. {
  8194. if (val) {
  8195. ASN1Free_H225NonStandardParameter(&val->value);
  8196. }
  8197. }
  8198. static int ASN1CALL ASN1Enc_CryptoToken_cryptoHashedToken(ASN1encoding_t enc, CryptoToken_cryptoHashedToken *val)
  8199. {
  8200. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  8201. return 0;
  8202. if (!ASN1Enc_ClearToken(enc, &(val)->hashedVals))
  8203. return 0;
  8204. if (!ASN1Enc_HASHED(enc, &(val)->token))
  8205. return 0;
  8206. return 1;
  8207. }
  8208. static int ASN1CALL ASN1Dec_CryptoToken_cryptoHashedToken(ASN1decoding_t dec, CryptoToken_cryptoHashedToken *val)
  8209. {
  8210. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  8211. return 0;
  8212. if (!ASN1Dec_ClearToken(dec, &(val)->hashedVals))
  8213. return 0;
  8214. if (!ASN1Dec_HASHED(dec, &(val)->token))
  8215. return 0;
  8216. return 1;
  8217. }
  8218. static void ASN1CALL ASN1Free_CryptoToken_cryptoHashedToken(CryptoToken_cryptoHashedToken *val)
  8219. {
  8220. if (val) {
  8221. ASN1objectidentifier_free(&(val)->tokenOID);
  8222. ASN1Free_ClearToken(&(val)->hashedVals);
  8223. ASN1Free_HASHED(&(val)->token);
  8224. }
  8225. }
  8226. static int ASN1CALL ASN1Enc_CryptoToken_cryptoSignedToken(ASN1encoding_t enc, CryptoToken_cryptoSignedToken *val)
  8227. {
  8228. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  8229. return 0;
  8230. if (!ASN1Enc_SIGNED_EncodedGeneralToken(enc, &(val)->token))
  8231. return 0;
  8232. return 1;
  8233. }
  8234. static int ASN1CALL ASN1Dec_CryptoToken_cryptoSignedToken(ASN1decoding_t dec, CryptoToken_cryptoSignedToken *val)
  8235. {
  8236. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  8237. return 0;
  8238. if (!ASN1Dec_SIGNED_EncodedGeneralToken(dec, &(val)->token))
  8239. return 0;
  8240. return 1;
  8241. }
  8242. static void ASN1CALL ASN1Free_CryptoToken_cryptoSignedToken(CryptoToken_cryptoSignedToken *val)
  8243. {
  8244. if (val) {
  8245. ASN1objectidentifier_free(&(val)->tokenOID);
  8246. ASN1Free_SIGNED_EncodedGeneralToken(&(val)->token);
  8247. }
  8248. }
  8249. static int ASN1CALL ASN1Enc_CryptoToken_cryptoEncryptedToken(ASN1encoding_t enc, CryptoToken_cryptoEncryptedToken *val)
  8250. {
  8251. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  8252. return 0;
  8253. if (!ASN1Enc_ENCRYPTED(enc, &(val)->token))
  8254. return 0;
  8255. return 1;
  8256. }
  8257. static int ASN1CALL ASN1Dec_CryptoToken_cryptoEncryptedToken(ASN1decoding_t dec, CryptoToken_cryptoEncryptedToken *val)
  8258. {
  8259. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  8260. return 0;
  8261. if (!ASN1Dec_ENCRYPTED(dec, &(val)->token))
  8262. return 0;
  8263. return 1;
  8264. }
  8265. static void ASN1CALL ASN1Free_CryptoToken_cryptoEncryptedToken(CryptoToken_cryptoEncryptedToken *val)
  8266. {
  8267. if (val) {
  8268. ASN1objectidentifier_free(&(val)->tokenOID);
  8269. ASN1Free_ENCRYPTED(&(val)->token);
  8270. }
  8271. }
  8272. static int ASN1CALL ASN1Enc_CryptoToken(ASN1encoding_t enc, CryptoToken *val)
  8273. {
  8274. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  8275. return 0;
  8276. switch ((val)->choice) {
  8277. case 1:
  8278. if (!ASN1Enc_CryptoToken_cryptoEncryptedToken(enc, &(val)->u.cryptoEncryptedToken))
  8279. return 0;
  8280. break;
  8281. case 2:
  8282. if (!ASN1Enc_CryptoToken_cryptoSignedToken(enc, &(val)->u.cryptoSignedToken))
  8283. return 0;
  8284. break;
  8285. case 3:
  8286. if (!ASN1Enc_CryptoToken_cryptoHashedToken(enc, &(val)->u.cryptoHashedToken))
  8287. return 0;
  8288. break;
  8289. case 4:
  8290. if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoPwdEncr))
  8291. return 0;
  8292. break;
  8293. default:
  8294. /* impossible */
  8295. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  8296. return 0;
  8297. }
  8298. return 1;
  8299. }
  8300. static int ASN1CALL ASN1Dec_CryptoToken(ASN1decoding_t dec, CryptoToken *val)
  8301. {
  8302. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  8303. return 0;
  8304. switch ((val)->choice) {
  8305. case 1:
  8306. if (!ASN1Dec_CryptoToken_cryptoEncryptedToken(dec, &(val)->u.cryptoEncryptedToken))
  8307. return 0;
  8308. break;
  8309. case 2:
  8310. if (!ASN1Dec_CryptoToken_cryptoSignedToken(dec, &(val)->u.cryptoSignedToken))
  8311. return 0;
  8312. break;
  8313. case 3:
  8314. if (!ASN1Dec_CryptoToken_cryptoHashedToken(dec, &(val)->u.cryptoHashedToken))
  8315. return 0;
  8316. break;
  8317. case 4:
  8318. if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoPwdEncr))
  8319. return 0;
  8320. break;
  8321. case 0:
  8322. /* extension case */
  8323. if (!ASN1PERDecSkipFragmented(dec, 8))
  8324. return 0;
  8325. break;
  8326. default:
  8327. /* impossible */
  8328. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  8329. return 0;
  8330. }
  8331. return 1;
  8332. }
  8333. static void ASN1CALL ASN1Free_CryptoToken(CryptoToken *val)
  8334. {
  8335. if (val) {
  8336. switch ((val)->choice) {
  8337. case 1:
  8338. ASN1Free_CryptoToken_cryptoEncryptedToken(&(val)->u.cryptoEncryptedToken);
  8339. break;
  8340. case 2:
  8341. ASN1Free_CryptoToken_cryptoSignedToken(&(val)->u.cryptoSignedToken);
  8342. break;
  8343. case 3:
  8344. ASN1Free_CryptoToken_cryptoHashedToken(&(val)->u.cryptoHashedToken);
  8345. break;
  8346. case 4:
  8347. ASN1Free_ENCRYPTED(&(val)->u.cryptoPwdEncr);
  8348. break;
  8349. }
  8350. }
  8351. }
  8352. static int ASN1CALL ASN1Enc_SIGNED_EncodedFastStartToken(ASN1encoding_t enc, SIGNED_EncodedFastStartToken *val)
  8353. {
  8354. if (!ASN1Enc_EncodedFastStartToken(enc, &(val)->toBeSigned))
  8355. return 0;
  8356. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  8357. return 0;
  8358. if (!ASN1Enc_Params(enc, &(val)->paramS))
  8359. return 0;
  8360. if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
  8361. return 0;
  8362. return 1;
  8363. }
  8364. static int ASN1CALL ASN1Dec_SIGNED_EncodedFastStartToken(ASN1decoding_t dec, SIGNED_EncodedFastStartToken *val)
  8365. {
  8366. if (!ASN1Dec_EncodedFastStartToken(dec, &(val)->toBeSigned))
  8367. return 0;
  8368. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  8369. return 0;
  8370. if (!ASN1Dec_Params(dec, &(val)->paramS))
  8371. return 0;
  8372. if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
  8373. return 0;
  8374. return 1;
  8375. }
  8376. static void ASN1CALL ASN1Free_SIGNED_EncodedFastStartToken(SIGNED_EncodedFastStartToken *val)
  8377. {
  8378. if (val) {
  8379. ASN1Free_EncodedFastStartToken(&(val)->toBeSigned);
  8380. ASN1objectidentifier_free(&(val)->algorithmOID);
  8381. ASN1Free_Params(&(val)->paramS);
  8382. ASN1bitstring_free(&(val)->signature);
  8383. }
  8384. }
  8385. static int ASN1CALL ASN1Enc_TransportAddress(ASN1encoding_t enc, TransportAddress *val)
  8386. {
  8387. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  8388. return 0;
  8389. switch ((val)->choice) {
  8390. case 1:
  8391. if (!ASN1Enc_TransportAddress_ipAddress(enc, &(val)->u.ipAddress))
  8392. return 0;
  8393. break;
  8394. case 2:
  8395. if (!ASN1Enc_TransportAddress_ipSourceRoute(enc, &(val)->u.ipSourceRoute))
  8396. return 0;
  8397. break;
  8398. case 3:
  8399. if (!ASN1Enc_TransportAddress_ipxAddress(enc, &(val)->u.ipxAddress))
  8400. return 0;
  8401. break;
  8402. case 4:
  8403. if (!ASN1Enc_TransportAddress_ip6Address(enc, &(val)->u.ip6Address))
  8404. return 0;
  8405. break;
  8406. case 5:
  8407. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
  8408. return 0;
  8409. break;
  8410. case 6:
  8411. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
  8412. return 0;
  8413. break;
  8414. case 7:
  8415. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandardAddress))
  8416. return 0;
  8417. break;
  8418. default:
  8419. /* impossible */
  8420. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  8421. return 0;
  8422. }
  8423. return 1;
  8424. }
  8425. static int ASN1CALL ASN1Dec_TransportAddress(ASN1decoding_t dec, TransportAddress *val)
  8426. {
  8427. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  8428. return 0;
  8429. switch ((val)->choice) {
  8430. case 1:
  8431. if (!ASN1Dec_TransportAddress_ipAddress(dec, &(val)->u.ipAddress))
  8432. return 0;
  8433. break;
  8434. case 2:
  8435. if (!ASN1Dec_TransportAddress_ipSourceRoute(dec, &(val)->u.ipSourceRoute))
  8436. return 0;
  8437. break;
  8438. case 3:
  8439. if (!ASN1Dec_TransportAddress_ipxAddress(dec, &(val)->u.ipxAddress))
  8440. return 0;
  8441. break;
  8442. case 4:
  8443. if (!ASN1Dec_TransportAddress_ip6Address(dec, &(val)->u.ip6Address))
  8444. return 0;
  8445. break;
  8446. case 5:
  8447. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
  8448. return 0;
  8449. break;
  8450. case 6:
  8451. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
  8452. return 0;
  8453. break;
  8454. case 7:
  8455. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandardAddress))
  8456. return 0;
  8457. break;
  8458. case 0:
  8459. /* extension case */
  8460. if (!ASN1PERDecSkipFragmented(dec, 8))
  8461. return 0;
  8462. break;
  8463. default:
  8464. /* impossible */
  8465. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  8466. return 0;
  8467. }
  8468. return 1;
  8469. }
  8470. static void ASN1CALL ASN1Free_TransportAddress(TransportAddress *val)
  8471. {
  8472. if (val) {
  8473. switch ((val)->choice) {
  8474. case 1:
  8475. ASN1Free_TransportAddress_ipAddress(&(val)->u.ipAddress);
  8476. break;
  8477. case 2:
  8478. ASN1Free_TransportAddress_ipSourceRoute(&(val)->u.ipSourceRoute);
  8479. break;
  8480. case 3:
  8481. ASN1Free_TransportAddress_ipxAddress(&(val)->u.ipxAddress);
  8482. break;
  8483. case 4:
  8484. ASN1Free_TransportAddress_ip6Address(&(val)->u.ip6Address);
  8485. break;
  8486. case 5:
  8487. break;
  8488. case 6:
  8489. break;
  8490. case 7:
  8491. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandardAddress);
  8492. break;
  8493. }
  8494. }
  8495. }
  8496. static int ASN1CALL ASN1Enc_GatewayInfo(ASN1encoding_t enc, GatewayInfo *val)
  8497. {
  8498. if (!ASN1PEREncExtensionBitClear(enc))
  8499. return 0;
  8500. if (!ASN1PEREncBits(enc, 2, (val)->o))
  8501. return 0;
  8502. if ((val)->o[0] & 0x80) {
  8503. if (!ASN1Enc_GatewayInfo_protocol(enc, &(val)->protocol))
  8504. return 0;
  8505. }
  8506. if ((val)->o[0] & 0x40) {
  8507. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8508. return 0;
  8509. }
  8510. return 1;
  8511. }
  8512. static int ASN1CALL ASN1Dec_GatewayInfo(ASN1decoding_t dec, GatewayInfo *val)
  8513. {
  8514. ASN1uint32_t y;
  8515. if (!ASN1PERDecExtensionBit(dec, &y))
  8516. return 0;
  8517. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  8518. return 0;
  8519. if ((val)->o[0] & 0x80) {
  8520. if (!ASN1Dec_GatewayInfo_protocol(dec, &(val)->protocol))
  8521. return 0;
  8522. }
  8523. if ((val)->o[0] & 0x40) {
  8524. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8525. return 0;
  8526. }
  8527. if (y) {
  8528. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  8529. return 0;
  8530. }
  8531. return 1;
  8532. }
  8533. static void ASN1CALL ASN1Free_GatewayInfo(GatewayInfo *val)
  8534. {
  8535. if (val) {
  8536. if ((val)->o[0] & 0x80) {
  8537. ASN1Free_GatewayInfo_protocol(&(val)->protocol);
  8538. }
  8539. if ((val)->o[0] & 0x40) {
  8540. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8541. }
  8542. }
  8543. }
  8544. static int ASN1CALL ASN1Enc_H310Caps(ASN1encoding_t enc, H310Caps *val)
  8545. {
  8546. ASN1octet_t o[2];
  8547. ASN1uint32_t y;
  8548. ASN1encoding_t ee;
  8549. CopyMemory(o, (val)->o, 2);
  8550. o[1] |= 0x40;
  8551. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8552. if (!ASN1PEREncBitVal(enc, 1, y))
  8553. return 0;
  8554. if (!ASN1PEREncBits(enc, 1, o))
  8555. return 0;
  8556. if (o[0] & 0x80) {
  8557. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8558. return 0;
  8559. }
  8560. if (y) {
  8561. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8562. return 0;
  8563. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8564. return 0;
  8565. if (o[1] & 0x80) {
  8566. if (!ASN1Enc_H310Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8567. return 0;
  8568. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8569. return 0;
  8570. }
  8571. if (o[1] & 0x40) {
  8572. if (!ASN1Enc_H310Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8573. return 0;
  8574. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8575. return 0;
  8576. }
  8577. ASN1_CloseEncoder2(ee);
  8578. }
  8579. return 1;
  8580. }
  8581. static int ASN1CALL ASN1Dec_H310Caps(ASN1decoding_t dec, H310Caps *val)
  8582. {
  8583. ASN1uint32_t y;
  8584. ASN1decoding_t dd;
  8585. ASN1octet_t *db;
  8586. ASN1uint32_t ds;
  8587. ASN1uint32_t i;
  8588. ASN1uint32_t e;
  8589. if (!ASN1PERDecExtensionBit(dec, &y))
  8590. return 0;
  8591. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8592. return 0;
  8593. if ((val)->o[0] & 0x80) {
  8594. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8595. return 0;
  8596. }
  8597. if (!y) {
  8598. ZeroMemory((val)->o + 1, 1);
  8599. } else {
  8600. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8601. return 0;
  8602. if ((val)->o[1] & 0x80) {
  8603. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8604. return 0;
  8605. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8606. return 0;
  8607. if (!ASN1Dec_H310Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8608. return 0;
  8609. ASN1_CloseDecoder(dd);
  8610. ASN1Free(db);
  8611. }
  8612. if ((val)->o[1] & 0x40) {
  8613. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8614. return 0;
  8615. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8616. return 0;
  8617. if (!ASN1Dec_H310Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8618. return 0;
  8619. ASN1_CloseDecoder(dd);
  8620. ASN1Free(db);
  8621. }
  8622. for (i = 0; i < e; i++) {
  8623. if (!ASN1PERDecSkipFragmented(dec, 8))
  8624. return 0;
  8625. }
  8626. }
  8627. return 1;
  8628. }
  8629. static void ASN1CALL ASN1Free_H310Caps(H310Caps *val)
  8630. {
  8631. if (val) {
  8632. if ((val)->o[0] & 0x80) {
  8633. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8634. }
  8635. if ((val)->o[1] & 0x80) {
  8636. ASN1Free_H310Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8637. }
  8638. if ((val)->o[1] & 0x40) {
  8639. ASN1Free_H310Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8640. }
  8641. }
  8642. }
  8643. static int ASN1CALL ASN1Enc_H320Caps(ASN1encoding_t enc, H320Caps *val)
  8644. {
  8645. ASN1octet_t o[2];
  8646. ASN1uint32_t y;
  8647. ASN1encoding_t ee;
  8648. CopyMemory(o, (val)->o, 2);
  8649. o[1] |= 0x40;
  8650. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8651. if (!ASN1PEREncBitVal(enc, 1, y))
  8652. return 0;
  8653. if (!ASN1PEREncBits(enc, 1, o))
  8654. return 0;
  8655. if (o[0] & 0x80) {
  8656. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8657. return 0;
  8658. }
  8659. if (y) {
  8660. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8661. return 0;
  8662. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8663. return 0;
  8664. if (o[1] & 0x80) {
  8665. if (!ASN1Enc_H320Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8666. return 0;
  8667. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8668. return 0;
  8669. }
  8670. if (o[1] & 0x40) {
  8671. if (!ASN1Enc_H320Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8672. return 0;
  8673. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8674. return 0;
  8675. }
  8676. ASN1_CloseEncoder2(ee);
  8677. }
  8678. return 1;
  8679. }
  8680. static int ASN1CALL ASN1Dec_H320Caps(ASN1decoding_t dec, H320Caps *val)
  8681. {
  8682. ASN1uint32_t y;
  8683. ASN1decoding_t dd;
  8684. ASN1octet_t *db;
  8685. ASN1uint32_t ds;
  8686. ASN1uint32_t i;
  8687. ASN1uint32_t e;
  8688. if (!ASN1PERDecExtensionBit(dec, &y))
  8689. return 0;
  8690. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8691. return 0;
  8692. if ((val)->o[0] & 0x80) {
  8693. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8694. return 0;
  8695. }
  8696. if (!y) {
  8697. ZeroMemory((val)->o + 1, 1);
  8698. } else {
  8699. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8700. return 0;
  8701. if ((val)->o[1] & 0x80) {
  8702. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8703. return 0;
  8704. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8705. return 0;
  8706. if (!ASN1Dec_H320Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8707. return 0;
  8708. ASN1_CloseDecoder(dd);
  8709. ASN1Free(db);
  8710. }
  8711. if ((val)->o[1] & 0x40) {
  8712. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8713. return 0;
  8714. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8715. return 0;
  8716. if (!ASN1Dec_H320Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8717. return 0;
  8718. ASN1_CloseDecoder(dd);
  8719. ASN1Free(db);
  8720. }
  8721. for (i = 0; i < e; i++) {
  8722. if (!ASN1PERDecSkipFragmented(dec, 8))
  8723. return 0;
  8724. }
  8725. }
  8726. return 1;
  8727. }
  8728. static void ASN1CALL ASN1Free_H320Caps(H320Caps *val)
  8729. {
  8730. if (val) {
  8731. if ((val)->o[0] & 0x80) {
  8732. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8733. }
  8734. if ((val)->o[1] & 0x80) {
  8735. ASN1Free_H320Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8736. }
  8737. if ((val)->o[1] & 0x40) {
  8738. ASN1Free_H320Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8739. }
  8740. }
  8741. }
  8742. static int ASN1CALL ASN1Enc_H321Caps(ASN1encoding_t enc, H321Caps *val)
  8743. {
  8744. ASN1octet_t o[2];
  8745. ASN1uint32_t y;
  8746. ASN1encoding_t ee;
  8747. CopyMemory(o, (val)->o, 2);
  8748. o[1] |= 0x40;
  8749. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8750. if (!ASN1PEREncBitVal(enc, 1, y))
  8751. return 0;
  8752. if (!ASN1PEREncBits(enc, 1, o))
  8753. return 0;
  8754. if (o[0] & 0x80) {
  8755. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8756. return 0;
  8757. }
  8758. if (y) {
  8759. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8760. return 0;
  8761. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8762. return 0;
  8763. if (o[1] & 0x80) {
  8764. if (!ASN1Enc_H321Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8765. return 0;
  8766. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8767. return 0;
  8768. }
  8769. if (o[1] & 0x40) {
  8770. if (!ASN1Enc_H321Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8771. return 0;
  8772. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8773. return 0;
  8774. }
  8775. ASN1_CloseEncoder2(ee);
  8776. }
  8777. return 1;
  8778. }
  8779. static int ASN1CALL ASN1Dec_H321Caps(ASN1decoding_t dec, H321Caps *val)
  8780. {
  8781. ASN1uint32_t y;
  8782. ASN1decoding_t dd;
  8783. ASN1octet_t *db;
  8784. ASN1uint32_t ds;
  8785. ASN1uint32_t i;
  8786. ASN1uint32_t e;
  8787. if (!ASN1PERDecExtensionBit(dec, &y))
  8788. return 0;
  8789. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8790. return 0;
  8791. if ((val)->o[0] & 0x80) {
  8792. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8793. return 0;
  8794. }
  8795. if (!y) {
  8796. ZeroMemory((val)->o + 1, 1);
  8797. } else {
  8798. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8799. return 0;
  8800. if ((val)->o[1] & 0x80) {
  8801. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8802. return 0;
  8803. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8804. return 0;
  8805. if (!ASN1Dec_H321Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8806. return 0;
  8807. ASN1_CloseDecoder(dd);
  8808. ASN1Free(db);
  8809. }
  8810. if ((val)->o[1] & 0x40) {
  8811. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8812. return 0;
  8813. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8814. return 0;
  8815. if (!ASN1Dec_H321Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8816. return 0;
  8817. ASN1_CloseDecoder(dd);
  8818. ASN1Free(db);
  8819. }
  8820. for (i = 0; i < e; i++) {
  8821. if (!ASN1PERDecSkipFragmented(dec, 8))
  8822. return 0;
  8823. }
  8824. }
  8825. return 1;
  8826. }
  8827. static void ASN1CALL ASN1Free_H321Caps(H321Caps *val)
  8828. {
  8829. if (val) {
  8830. if ((val)->o[0] & 0x80) {
  8831. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8832. }
  8833. if ((val)->o[1] & 0x80) {
  8834. ASN1Free_H321Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8835. }
  8836. if ((val)->o[1] & 0x40) {
  8837. ASN1Free_H321Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8838. }
  8839. }
  8840. }
  8841. static int ASN1CALL ASN1Enc_H322Caps(ASN1encoding_t enc, H322Caps *val)
  8842. {
  8843. ASN1octet_t o[2];
  8844. ASN1uint32_t y;
  8845. ASN1encoding_t ee;
  8846. CopyMemory(o, (val)->o, 2);
  8847. o[1] |= 0x40;
  8848. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8849. if (!ASN1PEREncBitVal(enc, 1, y))
  8850. return 0;
  8851. if (!ASN1PEREncBits(enc, 1, o))
  8852. return 0;
  8853. if (o[0] & 0x80) {
  8854. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8855. return 0;
  8856. }
  8857. if (y) {
  8858. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8859. return 0;
  8860. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8861. return 0;
  8862. if (o[1] & 0x80) {
  8863. if (!ASN1Enc_H322Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8864. return 0;
  8865. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8866. return 0;
  8867. }
  8868. if (o[1] & 0x40) {
  8869. if (!ASN1Enc_H322Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8870. return 0;
  8871. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8872. return 0;
  8873. }
  8874. ASN1_CloseEncoder2(ee);
  8875. }
  8876. return 1;
  8877. }
  8878. static int ASN1CALL ASN1Dec_H322Caps(ASN1decoding_t dec, H322Caps *val)
  8879. {
  8880. ASN1uint32_t y;
  8881. ASN1decoding_t dd;
  8882. ASN1octet_t *db;
  8883. ASN1uint32_t ds;
  8884. ASN1uint32_t i;
  8885. ASN1uint32_t e;
  8886. if (!ASN1PERDecExtensionBit(dec, &y))
  8887. return 0;
  8888. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8889. return 0;
  8890. if ((val)->o[0] & 0x80) {
  8891. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8892. return 0;
  8893. }
  8894. if (!y) {
  8895. ZeroMemory((val)->o + 1, 1);
  8896. } else {
  8897. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8898. return 0;
  8899. if ((val)->o[1] & 0x80) {
  8900. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8901. return 0;
  8902. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8903. return 0;
  8904. if (!ASN1Dec_H322Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8905. return 0;
  8906. ASN1_CloseDecoder(dd);
  8907. ASN1Free(db);
  8908. }
  8909. if ((val)->o[1] & 0x40) {
  8910. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8911. return 0;
  8912. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  8913. return 0;
  8914. if (!ASN1Dec_H322Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8915. return 0;
  8916. ASN1_CloseDecoder(dd);
  8917. ASN1Free(db);
  8918. }
  8919. for (i = 0; i < e; i++) {
  8920. if (!ASN1PERDecSkipFragmented(dec, 8))
  8921. return 0;
  8922. }
  8923. }
  8924. return 1;
  8925. }
  8926. static void ASN1CALL ASN1Free_H322Caps(H322Caps *val)
  8927. {
  8928. if (val) {
  8929. if ((val)->o[0] & 0x80) {
  8930. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8931. }
  8932. if ((val)->o[1] & 0x80) {
  8933. ASN1Free_H322Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8934. }
  8935. if ((val)->o[1] & 0x40) {
  8936. ASN1Free_H322Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8937. }
  8938. }
  8939. }
  8940. static int ASN1CALL ASN1Enc_H323Caps(ASN1encoding_t enc, H323Caps *val)
  8941. {
  8942. ASN1octet_t o[2];
  8943. ASN1uint32_t y;
  8944. ASN1encoding_t ee;
  8945. CopyMemory(o, (val)->o, 2);
  8946. o[1] |= 0x40;
  8947. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8948. if (!ASN1PEREncBitVal(enc, 1, y))
  8949. return 0;
  8950. if (!ASN1PEREncBits(enc, 1, o))
  8951. return 0;
  8952. if (o[0] & 0x80) {
  8953. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8954. return 0;
  8955. }
  8956. if (y) {
  8957. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8958. return 0;
  8959. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8960. return 0;
  8961. if (o[1] & 0x80) {
  8962. if (!ASN1Enc_H323Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8963. return 0;
  8964. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8965. return 0;
  8966. }
  8967. if (o[1] & 0x40) {
  8968. if (!ASN1Enc_H323Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8969. return 0;
  8970. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8971. return 0;
  8972. }
  8973. ASN1_CloseEncoder2(ee);
  8974. }
  8975. return 1;
  8976. }
  8977. static int ASN1CALL ASN1Dec_H323Caps(ASN1decoding_t dec, H323Caps *val)
  8978. {
  8979. ASN1uint32_t y;
  8980. ASN1decoding_t dd;
  8981. ASN1octet_t *db;
  8982. ASN1uint32_t ds;
  8983. ASN1uint32_t i;
  8984. ASN1uint32_t e;
  8985. if (!ASN1PERDecExtensionBit(dec, &y))
  8986. return 0;
  8987. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8988. return 0;
  8989. if ((val)->o[0] & 0x80) {
  8990. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8991. return 0;
  8992. }
  8993. if (!y) {
  8994. ZeroMemory((val)->o + 1, 1);
  8995. } else {
  8996. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8997. return 0;
  8998. if ((val)->o[1] & 0x80) {
  8999. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9000. return 0;
  9001. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9002. return 0;
  9003. if (!ASN1Dec_H323Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9004. return 0;
  9005. ASN1_CloseDecoder(dd);
  9006. ASN1Free(db);
  9007. }
  9008. if ((val)->o[1] & 0x40) {
  9009. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9010. return 0;
  9011. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9012. return 0;
  9013. if (!ASN1Dec_H323Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9014. return 0;
  9015. ASN1_CloseDecoder(dd);
  9016. ASN1Free(db);
  9017. }
  9018. for (i = 0; i < e; i++) {
  9019. if (!ASN1PERDecSkipFragmented(dec, 8))
  9020. return 0;
  9021. }
  9022. }
  9023. return 1;
  9024. }
  9025. static void ASN1CALL ASN1Free_H323Caps(H323Caps *val)
  9026. {
  9027. if (val) {
  9028. if ((val)->o[0] & 0x80) {
  9029. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9030. }
  9031. if ((val)->o[1] & 0x80) {
  9032. ASN1Free_H323Caps_dataRatesSupported(&(val)->dataRatesSupported);
  9033. }
  9034. if ((val)->o[1] & 0x40) {
  9035. ASN1Free_H323Caps_supportedPrefixes(&(val)->supportedPrefixes);
  9036. }
  9037. }
  9038. }
  9039. static int ASN1CALL ASN1Enc_H324Caps(ASN1encoding_t enc, H324Caps *val)
  9040. {
  9041. ASN1octet_t o[2];
  9042. ASN1uint32_t y;
  9043. ASN1encoding_t ee;
  9044. CopyMemory(o, (val)->o, 2);
  9045. o[1] |= 0x40;
  9046. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  9047. if (!ASN1PEREncBitVal(enc, 1, y))
  9048. return 0;
  9049. if (!ASN1PEREncBits(enc, 1, o))
  9050. return 0;
  9051. if (o[0] & 0x80) {
  9052. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9053. return 0;
  9054. }
  9055. if (y) {
  9056. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  9057. return 0;
  9058. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9059. return 0;
  9060. if (o[1] & 0x80) {
  9061. if (!ASN1Enc_H324Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  9062. return 0;
  9063. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9064. return 0;
  9065. }
  9066. if (o[1] & 0x40) {
  9067. if (!ASN1Enc_H324Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  9068. return 0;
  9069. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9070. return 0;
  9071. }
  9072. ASN1_CloseEncoder2(ee);
  9073. }
  9074. return 1;
  9075. }
  9076. static int ASN1CALL ASN1Dec_H324Caps(ASN1decoding_t dec, H324Caps *val)
  9077. {
  9078. ASN1uint32_t y;
  9079. ASN1decoding_t dd;
  9080. ASN1octet_t *db;
  9081. ASN1uint32_t ds;
  9082. ASN1uint32_t i;
  9083. ASN1uint32_t e;
  9084. if (!ASN1PERDecExtensionBit(dec, &y))
  9085. return 0;
  9086. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9087. return 0;
  9088. if ((val)->o[0] & 0x80) {
  9089. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9090. return 0;
  9091. }
  9092. if (!y) {
  9093. ZeroMemory((val)->o + 1, 1);
  9094. } else {
  9095. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  9096. return 0;
  9097. if ((val)->o[1] & 0x80) {
  9098. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9099. return 0;
  9100. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9101. return 0;
  9102. if (!ASN1Dec_H324Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9103. return 0;
  9104. ASN1_CloseDecoder(dd);
  9105. ASN1Free(db);
  9106. }
  9107. if ((val)->o[1] & 0x40) {
  9108. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9109. return 0;
  9110. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9111. return 0;
  9112. if (!ASN1Dec_H324Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9113. return 0;
  9114. ASN1_CloseDecoder(dd);
  9115. ASN1Free(db);
  9116. }
  9117. for (i = 0; i < e; i++) {
  9118. if (!ASN1PERDecSkipFragmented(dec, 8))
  9119. return 0;
  9120. }
  9121. }
  9122. return 1;
  9123. }
  9124. static void ASN1CALL ASN1Free_H324Caps(H324Caps *val)
  9125. {
  9126. if (val) {
  9127. if ((val)->o[0] & 0x80) {
  9128. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9129. }
  9130. if ((val)->o[1] & 0x80) {
  9131. ASN1Free_H324Caps_dataRatesSupported(&(val)->dataRatesSupported);
  9132. }
  9133. if ((val)->o[1] & 0x40) {
  9134. ASN1Free_H324Caps_supportedPrefixes(&(val)->supportedPrefixes);
  9135. }
  9136. }
  9137. }
  9138. static int ASN1CALL ASN1Enc_VoiceCaps(ASN1encoding_t enc, VoiceCaps *val)
  9139. {
  9140. ASN1octet_t o[2];
  9141. ASN1uint32_t y;
  9142. ASN1encoding_t ee;
  9143. CopyMemory(o, (val)->o, 2);
  9144. o[1] |= 0x40;
  9145. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  9146. if (!ASN1PEREncBitVal(enc, 1, y))
  9147. return 0;
  9148. if (!ASN1PEREncBits(enc, 1, o))
  9149. return 0;
  9150. if (o[0] & 0x80) {
  9151. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9152. return 0;
  9153. }
  9154. if (y) {
  9155. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  9156. return 0;
  9157. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9158. return 0;
  9159. if (o[1] & 0x80) {
  9160. if (!ASN1Enc_VoiceCaps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  9161. return 0;
  9162. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9163. return 0;
  9164. }
  9165. if (o[1] & 0x40) {
  9166. if (!ASN1Enc_VoiceCaps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  9167. return 0;
  9168. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9169. return 0;
  9170. }
  9171. ASN1_CloseEncoder2(ee);
  9172. }
  9173. return 1;
  9174. }
  9175. static int ASN1CALL ASN1Dec_VoiceCaps(ASN1decoding_t dec, VoiceCaps *val)
  9176. {
  9177. ASN1uint32_t y;
  9178. ASN1decoding_t dd;
  9179. ASN1octet_t *db;
  9180. ASN1uint32_t ds;
  9181. ASN1uint32_t i;
  9182. ASN1uint32_t e;
  9183. if (!ASN1PERDecExtensionBit(dec, &y))
  9184. return 0;
  9185. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9186. return 0;
  9187. if ((val)->o[0] & 0x80) {
  9188. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9189. return 0;
  9190. }
  9191. if (!y) {
  9192. ZeroMemory((val)->o + 1, 1);
  9193. } else {
  9194. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  9195. return 0;
  9196. if ((val)->o[1] & 0x80) {
  9197. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9198. return 0;
  9199. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9200. return 0;
  9201. if (!ASN1Dec_VoiceCaps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9202. return 0;
  9203. ASN1_CloseDecoder(dd);
  9204. ASN1Free(db);
  9205. }
  9206. if ((val)->o[1] & 0x40) {
  9207. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9208. return 0;
  9209. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9210. return 0;
  9211. if (!ASN1Dec_VoiceCaps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9212. return 0;
  9213. ASN1_CloseDecoder(dd);
  9214. ASN1Free(db);
  9215. }
  9216. for (i = 0; i < e; i++) {
  9217. if (!ASN1PERDecSkipFragmented(dec, 8))
  9218. return 0;
  9219. }
  9220. }
  9221. return 1;
  9222. }
  9223. static void ASN1CALL ASN1Free_VoiceCaps(VoiceCaps *val)
  9224. {
  9225. if (val) {
  9226. if ((val)->o[0] & 0x80) {
  9227. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9228. }
  9229. if ((val)->o[1] & 0x80) {
  9230. ASN1Free_VoiceCaps_dataRatesSupported(&(val)->dataRatesSupported);
  9231. }
  9232. if ((val)->o[1] & 0x40) {
  9233. ASN1Free_VoiceCaps_supportedPrefixes(&(val)->supportedPrefixes);
  9234. }
  9235. }
  9236. }
  9237. static int ASN1CALL ASN1Enc_T120OnlyCaps(ASN1encoding_t enc, T120OnlyCaps *val)
  9238. {
  9239. ASN1octet_t o[2];
  9240. ASN1uint32_t y;
  9241. ASN1encoding_t ee;
  9242. CopyMemory(o, (val)->o, 2);
  9243. o[1] |= 0x40;
  9244. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  9245. if (!ASN1PEREncBitVal(enc, 1, y))
  9246. return 0;
  9247. if (!ASN1PEREncBits(enc, 1, o))
  9248. return 0;
  9249. if (o[0] & 0x80) {
  9250. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9251. return 0;
  9252. }
  9253. if (y) {
  9254. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  9255. return 0;
  9256. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9257. return 0;
  9258. if (o[1] & 0x80) {
  9259. if (!ASN1Enc_T120OnlyCaps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  9260. return 0;
  9261. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9262. return 0;
  9263. }
  9264. if (o[1] & 0x40) {
  9265. if (!ASN1Enc_T120OnlyCaps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  9266. return 0;
  9267. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9268. return 0;
  9269. }
  9270. ASN1_CloseEncoder2(ee);
  9271. }
  9272. return 1;
  9273. }
  9274. static int ASN1CALL ASN1Dec_T120OnlyCaps(ASN1decoding_t dec, T120OnlyCaps *val)
  9275. {
  9276. ASN1uint32_t y;
  9277. ASN1decoding_t dd;
  9278. ASN1octet_t *db;
  9279. ASN1uint32_t ds;
  9280. ASN1uint32_t i;
  9281. ASN1uint32_t e;
  9282. if (!ASN1PERDecExtensionBit(dec, &y))
  9283. return 0;
  9284. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9285. return 0;
  9286. if ((val)->o[0] & 0x80) {
  9287. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9288. return 0;
  9289. }
  9290. if (!y) {
  9291. ZeroMemory((val)->o + 1, 1);
  9292. } else {
  9293. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  9294. return 0;
  9295. if ((val)->o[1] & 0x80) {
  9296. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9297. return 0;
  9298. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9299. return 0;
  9300. if (!ASN1Dec_T120OnlyCaps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9301. return 0;
  9302. ASN1_CloseDecoder(dd);
  9303. ASN1Free(db);
  9304. }
  9305. if ((val)->o[1] & 0x40) {
  9306. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9307. return 0;
  9308. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9309. return 0;
  9310. if (!ASN1Dec_T120OnlyCaps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9311. return 0;
  9312. ASN1_CloseDecoder(dd);
  9313. ASN1Free(db);
  9314. }
  9315. for (i = 0; i < e; i++) {
  9316. if (!ASN1PERDecSkipFragmented(dec, 8))
  9317. return 0;
  9318. }
  9319. }
  9320. return 1;
  9321. }
  9322. static void ASN1CALL ASN1Free_T120OnlyCaps(T120OnlyCaps *val)
  9323. {
  9324. if (val) {
  9325. if ((val)->o[0] & 0x80) {
  9326. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9327. }
  9328. if ((val)->o[1] & 0x80) {
  9329. ASN1Free_T120OnlyCaps_dataRatesSupported(&(val)->dataRatesSupported);
  9330. }
  9331. if ((val)->o[1] & 0x40) {
  9332. ASN1Free_T120OnlyCaps_supportedPrefixes(&(val)->supportedPrefixes);
  9333. }
  9334. }
  9335. }
  9336. static int ASN1CALL ASN1Enc_NonStandardProtocol(ASN1encoding_t enc, NonStandardProtocol *val)
  9337. {
  9338. if (!ASN1PEREncExtensionBitClear(enc))
  9339. return 0;
  9340. if (!ASN1PEREncBits(enc, 2, (val)->o))
  9341. return 0;
  9342. if ((val)->o[0] & 0x80) {
  9343. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9344. return 0;
  9345. }
  9346. if ((val)->o[0] & 0x40) {
  9347. if (!ASN1Enc_NonStandardProtocol_dataRatesSupported(enc, &(val)->dataRatesSupported))
  9348. return 0;
  9349. }
  9350. if (!ASN1Enc_NonStandardProtocol_supportedPrefixes(enc, &(val)->supportedPrefixes))
  9351. return 0;
  9352. return 1;
  9353. }
  9354. static int ASN1CALL ASN1Dec_NonStandardProtocol(ASN1decoding_t dec, NonStandardProtocol *val)
  9355. {
  9356. ASN1uint32_t y;
  9357. if (!ASN1PERDecExtensionBit(dec, &y))
  9358. return 0;
  9359. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  9360. return 0;
  9361. if ((val)->o[0] & 0x80) {
  9362. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9363. return 0;
  9364. }
  9365. if ((val)->o[0] & 0x40) {
  9366. if (!ASN1Dec_NonStandardProtocol_dataRatesSupported(dec, &(val)->dataRatesSupported))
  9367. return 0;
  9368. }
  9369. if (!ASN1Dec_NonStandardProtocol_supportedPrefixes(dec, &(val)->supportedPrefixes))
  9370. return 0;
  9371. if (y) {
  9372. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9373. return 0;
  9374. }
  9375. return 1;
  9376. }
  9377. static void ASN1CALL ASN1Free_NonStandardProtocol(NonStandardProtocol *val)
  9378. {
  9379. if (val) {
  9380. if ((val)->o[0] & 0x80) {
  9381. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9382. }
  9383. if ((val)->o[0] & 0x40) {
  9384. ASN1Free_NonStandardProtocol_dataRatesSupported(&(val)->dataRatesSupported);
  9385. }
  9386. ASN1Free_NonStandardProtocol_supportedPrefixes(&(val)->supportedPrefixes);
  9387. }
  9388. }
  9389. static int ASN1CALL ASN1Enc_McuInfo(ASN1encoding_t enc, McuInfo *val)
  9390. {
  9391. if (!ASN1PEREncExtensionBitClear(enc))
  9392. return 0;
  9393. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9394. return 0;
  9395. if ((val)->o[0] & 0x80) {
  9396. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9397. return 0;
  9398. }
  9399. return 1;
  9400. }
  9401. static int ASN1CALL ASN1Dec_McuInfo(ASN1decoding_t dec, McuInfo *val)
  9402. {
  9403. ASN1uint32_t y;
  9404. if (!ASN1PERDecExtensionBit(dec, &y))
  9405. return 0;
  9406. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9407. return 0;
  9408. if ((val)->o[0] & 0x80) {
  9409. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9410. return 0;
  9411. }
  9412. if (y) {
  9413. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9414. return 0;
  9415. }
  9416. return 1;
  9417. }
  9418. static void ASN1CALL ASN1Free_McuInfo(McuInfo *val)
  9419. {
  9420. if (val) {
  9421. if ((val)->o[0] & 0x80) {
  9422. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9423. }
  9424. }
  9425. }
  9426. static int ASN1CALL ASN1Enc_TerminalInfo(ASN1encoding_t enc, TerminalInfo *val)
  9427. {
  9428. if (!ASN1PEREncExtensionBitClear(enc))
  9429. return 0;
  9430. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9431. return 0;
  9432. if ((val)->o[0] & 0x80) {
  9433. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9434. return 0;
  9435. }
  9436. return 1;
  9437. }
  9438. static int ASN1CALL ASN1Dec_TerminalInfo(ASN1decoding_t dec, TerminalInfo *val)
  9439. {
  9440. ASN1uint32_t y;
  9441. if (!ASN1PERDecExtensionBit(dec, &y))
  9442. return 0;
  9443. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9444. return 0;
  9445. if ((val)->o[0] & 0x80) {
  9446. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9447. return 0;
  9448. }
  9449. if (y) {
  9450. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9451. return 0;
  9452. }
  9453. return 1;
  9454. }
  9455. static void ASN1CALL ASN1Free_TerminalInfo(TerminalInfo *val)
  9456. {
  9457. if (val) {
  9458. if ((val)->o[0] & 0x80) {
  9459. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9460. }
  9461. }
  9462. }
  9463. static int ASN1CALL ASN1Enc_GatekeeperInfo(ASN1encoding_t enc, GatekeeperInfo *val)
  9464. {
  9465. if (!ASN1PEREncExtensionBitClear(enc))
  9466. return 0;
  9467. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9468. return 0;
  9469. if ((val)->o[0] & 0x80) {
  9470. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9471. return 0;
  9472. }
  9473. return 1;
  9474. }
  9475. static int ASN1CALL ASN1Dec_GatekeeperInfo(ASN1decoding_t dec, GatekeeperInfo *val)
  9476. {
  9477. ASN1uint32_t y;
  9478. if (!ASN1PERDecExtensionBit(dec, &y))
  9479. return 0;
  9480. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9481. return 0;
  9482. if ((val)->o[0] & 0x80) {
  9483. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9484. return 0;
  9485. }
  9486. if (y) {
  9487. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9488. return 0;
  9489. }
  9490. return 1;
  9491. }
  9492. static void ASN1CALL ASN1Free_GatekeeperInfo(GatekeeperInfo *val)
  9493. {
  9494. if (val) {
  9495. if ((val)->o[0] & 0x80) {
  9496. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9497. }
  9498. }
  9499. }
  9500. static ASN1stringtableentry_t PartyNumber_dataPartyNumber_StringTableEntries[] = {
  9501. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  9502. { 48, 57, 3 },
  9503. };
  9504. static ASN1stringtable_t PartyNumber_dataPartyNumber_StringTable = {
  9505. 4, PartyNumber_dataPartyNumber_StringTableEntries
  9506. };
  9507. static ASN1stringtableentry_t PartyNumber_telexPartyNumber_StringTableEntries[] = {
  9508. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  9509. { 48, 57, 3 },
  9510. };
  9511. static ASN1stringtable_t PartyNumber_telexPartyNumber_StringTable = {
  9512. 4, PartyNumber_telexPartyNumber_StringTableEntries
  9513. };
  9514. static ASN1stringtableentry_t PartyNumber_nationalStandardPartyNumber_StringTableEntries[] = {
  9515. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  9516. { 48, 57, 3 },
  9517. };
  9518. static ASN1stringtable_t PartyNumber_nationalStandardPartyNumber_StringTable = {
  9519. 4, PartyNumber_nationalStandardPartyNumber_StringTableEntries
  9520. };
  9521. static int ASN1CALL ASN1Enc_PartyNumber(ASN1encoding_t enc, PartyNumber *val)
  9522. {
  9523. ASN1uint32_t t;
  9524. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  9525. return 0;
  9526. switch ((val)->choice) {
  9527. case 1:
  9528. if (!ASN1Enc_PublicPartyNumber(enc, &(val)->u.publicNumber))
  9529. return 0;
  9530. break;
  9531. case 2:
  9532. t = lstrlenA((val)->u.dataPartyNumber);
  9533. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  9534. return 0;
  9535. ASN1PEREncAlignment(enc);
  9536. if (!ASN1PEREncTableCharString(enc, t, (val)->u.dataPartyNumber, 4, &PartyNumber_dataPartyNumber_StringTable))
  9537. return 0;
  9538. break;
  9539. case 3:
  9540. t = lstrlenA((val)->u.telexPartyNumber);
  9541. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  9542. return 0;
  9543. ASN1PEREncAlignment(enc);
  9544. if (!ASN1PEREncTableCharString(enc, t, (val)->u.telexPartyNumber, 4, &PartyNumber_telexPartyNumber_StringTable))
  9545. return 0;
  9546. break;
  9547. case 4:
  9548. if (!ASN1Enc_PrivatePartyNumber(enc, &(val)->u.privateNumber))
  9549. return 0;
  9550. break;
  9551. case 5:
  9552. t = lstrlenA((val)->u.nationalStandardPartyNumber);
  9553. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  9554. return 0;
  9555. ASN1PEREncAlignment(enc);
  9556. if (!ASN1PEREncTableCharString(enc, t, (val)->u.nationalStandardPartyNumber, 4, &PartyNumber_nationalStandardPartyNumber_StringTable))
  9557. return 0;
  9558. break;
  9559. default:
  9560. /* impossible */
  9561. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  9562. return 0;
  9563. }
  9564. return 1;
  9565. }
  9566. static int ASN1CALL ASN1Dec_PartyNumber(ASN1decoding_t dec, PartyNumber *val)
  9567. {
  9568. ASN1uint32_t l;
  9569. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  9570. return 0;
  9571. switch ((val)->choice) {
  9572. case 1:
  9573. if (!ASN1Dec_PublicPartyNumber(dec, &(val)->u.publicNumber))
  9574. return 0;
  9575. break;
  9576. case 2:
  9577. if (!ASN1PERDecU32Val(dec, 7, &l))
  9578. return 0;
  9579. l += 1;
  9580. ASN1PERDecAlignment(dec);
  9581. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.dataPartyNumber, 4, &PartyNumber_dataPartyNumber_StringTable))
  9582. return 0;
  9583. break;
  9584. case 3:
  9585. if (!ASN1PERDecU32Val(dec, 7, &l))
  9586. return 0;
  9587. l += 1;
  9588. ASN1PERDecAlignment(dec);
  9589. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.telexPartyNumber, 4, &PartyNumber_telexPartyNumber_StringTable))
  9590. return 0;
  9591. break;
  9592. case 4:
  9593. if (!ASN1Dec_PrivatePartyNumber(dec, &(val)->u.privateNumber))
  9594. return 0;
  9595. break;
  9596. case 5:
  9597. if (!ASN1PERDecU32Val(dec, 7, &l))
  9598. return 0;
  9599. l += 1;
  9600. ASN1PERDecAlignment(dec);
  9601. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.nationalStandardPartyNumber, 4, &PartyNumber_nationalStandardPartyNumber_StringTable))
  9602. return 0;
  9603. break;
  9604. case 0:
  9605. /* extension case */
  9606. if (!ASN1PERDecSkipFragmented(dec, 8))
  9607. return 0;
  9608. break;
  9609. default:
  9610. /* impossible */
  9611. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  9612. return 0;
  9613. }
  9614. return 1;
  9615. }
  9616. static void ASN1CALL ASN1Free_PartyNumber(PartyNumber *val)
  9617. {
  9618. if (val) {
  9619. switch ((val)->choice) {
  9620. case 1:
  9621. ASN1Free_PublicPartyNumber(&(val)->u.publicNumber);
  9622. break;
  9623. case 2:
  9624. break;
  9625. case 3:
  9626. break;
  9627. case 4:
  9628. ASN1Free_PrivatePartyNumber(&(val)->u.privateNumber);
  9629. break;
  9630. case 5:
  9631. break;
  9632. }
  9633. }
  9634. }
  9635. static int ASN1CALL ASN1Enc_AlternateGK(ASN1encoding_t enc, AlternateGK *val)
  9636. {
  9637. if (!ASN1PEREncExtensionBitClear(enc))
  9638. return 0;
  9639. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9640. return 0;
  9641. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  9642. return 0;
  9643. if ((val)->o[0] & 0x80) {
  9644. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  9645. return 0;
  9646. ASN1PEREncAlignment(enc);
  9647. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  9648. return 0;
  9649. }
  9650. if (!ASN1PEREncBoolean(enc, (val)->needToRegister))
  9651. return 0;
  9652. if (!ASN1PEREncBitVal(enc, 7, (val)->priority))
  9653. return 0;
  9654. return 1;
  9655. }
  9656. static int ASN1CALL ASN1Dec_AlternateGK(ASN1decoding_t dec, AlternateGK *val)
  9657. {
  9658. ASN1uint32_t y;
  9659. if (!ASN1PERDecExtensionBit(dec, &y))
  9660. return 0;
  9661. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9662. return 0;
  9663. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  9664. return 0;
  9665. if ((val)->o[0] & 0x80) {
  9666. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  9667. return 0;
  9668. ((val)->gatekeeperIdentifier).length += 1;
  9669. ASN1PERDecAlignment(dec);
  9670. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  9671. return 0;
  9672. }
  9673. if (!ASN1PERDecBoolean(dec, &(val)->needToRegister))
  9674. return 0;
  9675. if (!ASN1PERDecU16Val(dec, 7, &(val)->priority))
  9676. return 0;
  9677. if (y) {
  9678. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9679. return 0;
  9680. }
  9681. return 1;
  9682. }
  9683. static void ASN1CALL ASN1Free_AlternateGK(AlternateGK *val)
  9684. {
  9685. if (val) {
  9686. ASN1Free_TransportAddress(&(val)->rasAddress);
  9687. if ((val)->o[0] & 0x80) {
  9688. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  9689. }
  9690. }
  9691. }
  9692. static int ASN1CALL ASN1Enc_GatekeeperConfirm(ASN1encoding_t enc, GatekeeperConfirm *val)
  9693. {
  9694. ASN1uint32_t y;
  9695. ASN1encoding_t ee;
  9696. y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
  9697. if (!ASN1PEREncBitVal(enc, 1, y))
  9698. return 0;
  9699. if (!ASN1PEREncBits(enc, 2, (val)->o))
  9700. return 0;
  9701. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  9702. return 0;
  9703. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  9704. return 0;
  9705. if ((val)->o[0] & 0x80) {
  9706. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9707. return 0;
  9708. }
  9709. if ((val)->o[0] & 0x40) {
  9710. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  9711. return 0;
  9712. ASN1PEREncAlignment(enc);
  9713. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  9714. return 0;
  9715. }
  9716. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  9717. return 0;
  9718. if (y) {
  9719. if (!ASN1PEREncNormallySmallBits(enc, 7, (val)->o + 1))
  9720. return 0;
  9721. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9722. return 0;
  9723. if ((val)->o[1] & 0x80) {
  9724. if (!ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ee, &(val)->alternateGatekeeper))
  9725. return 0;
  9726. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9727. return 0;
  9728. }
  9729. if ((val)->o[1] & 0x40) {
  9730. if (!ASN1Enc_AuthenticationMechanism(ee, &(val)->authenticationMode))
  9731. return 0;
  9732. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9733. return 0;
  9734. }
  9735. if ((val)->o[1] & 0x20) {
  9736. if (!ASN1Enc_GatekeeperConfirm_tokens(ee, &(val)->tokens))
  9737. return 0;
  9738. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9739. return 0;
  9740. }
  9741. if ((val)->o[1] & 0x10) {
  9742. if (!ASN1Enc_GatekeeperConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  9743. return 0;
  9744. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9745. return 0;
  9746. }
  9747. if ((val)->o[1] & 0x8) {
  9748. if (!ASN1PEREncObjectIdentifier(ee, &(val)->algorithmOID))
  9749. return 0;
  9750. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9751. return 0;
  9752. }
  9753. if ((val)->o[1] & 0x4) {
  9754. if (!ASN1Enc_GatekeeperConfirm_integrity(ee, &(val)->integrity))
  9755. return 0;
  9756. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9757. return 0;
  9758. }
  9759. if ((val)->o[1] & 0x2) {
  9760. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  9761. return 0;
  9762. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9763. return 0;
  9764. }
  9765. ASN1_CloseEncoder2(ee);
  9766. }
  9767. return 1;
  9768. }
  9769. static int ASN1CALL ASN1Dec_GatekeeperConfirm(ASN1decoding_t dec, GatekeeperConfirm *val)
  9770. {
  9771. ASN1uint32_t y;
  9772. ASN1decoding_t dd;
  9773. ASN1octet_t *db;
  9774. ASN1uint32_t ds;
  9775. ASN1uint32_t i;
  9776. ASN1uint32_t e;
  9777. if (!ASN1PERDecExtensionBit(dec, &y))
  9778. return 0;
  9779. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  9780. return 0;
  9781. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  9782. return 0;
  9783. (val)->requestSeqNum += 1;
  9784. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  9785. return 0;
  9786. if ((val)->o[0] & 0x80) {
  9787. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9788. return 0;
  9789. }
  9790. if ((val)->o[0] & 0x40) {
  9791. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  9792. return 0;
  9793. ((val)->gatekeeperIdentifier).length += 1;
  9794. ASN1PERDecAlignment(dec);
  9795. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  9796. return 0;
  9797. }
  9798. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  9799. return 0;
  9800. if (!y) {
  9801. ZeroMemory((val)->o + 1, 1);
  9802. } else {
  9803. if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
  9804. return 0;
  9805. if ((val)->o[1] & 0x80) {
  9806. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9807. return 0;
  9808. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9809. return 0;
  9810. if (!ASN1Dec_GatekeeperConfirm_alternateGatekeeper(dd, &(val)->alternateGatekeeper))
  9811. return 0;
  9812. ASN1_CloseDecoder(dd);
  9813. ASN1Free(db);
  9814. }
  9815. if ((val)->o[1] & 0x40) {
  9816. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9817. return 0;
  9818. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9819. return 0;
  9820. if (!ASN1Dec_AuthenticationMechanism(dd, &(val)->authenticationMode))
  9821. return 0;
  9822. ASN1_CloseDecoder(dd);
  9823. ASN1Free(db);
  9824. }
  9825. if ((val)->o[1] & 0x20) {
  9826. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9827. return 0;
  9828. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9829. return 0;
  9830. if (!ASN1Dec_GatekeeperConfirm_tokens(dd, &(val)->tokens))
  9831. return 0;
  9832. ASN1_CloseDecoder(dd);
  9833. ASN1Free(db);
  9834. }
  9835. if ((val)->o[1] & 0x10) {
  9836. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9837. return 0;
  9838. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9839. return 0;
  9840. if (!ASN1Dec_GatekeeperConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  9841. return 0;
  9842. ASN1_CloseDecoder(dd);
  9843. ASN1Free(db);
  9844. }
  9845. if ((val)->o[1] & 0x8) {
  9846. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9847. return 0;
  9848. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9849. return 0;
  9850. if (!ASN1PERDecObjectIdentifier(dd, &(val)->algorithmOID))
  9851. return 0;
  9852. ASN1_CloseDecoder(dd);
  9853. ASN1Free(db);
  9854. }
  9855. if ((val)->o[1] & 0x4) {
  9856. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9857. return 0;
  9858. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9859. return 0;
  9860. if (!ASN1Dec_GatekeeperConfirm_integrity(dd, &(val)->integrity))
  9861. return 0;
  9862. ASN1_CloseDecoder(dd);
  9863. ASN1Free(db);
  9864. }
  9865. if ((val)->o[1] & 0x2) {
  9866. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9867. return 0;
  9868. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  9869. return 0;
  9870. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  9871. return 0;
  9872. ASN1_CloseDecoder(dd);
  9873. ASN1Free(db);
  9874. }
  9875. for (i = 0; i < e; i++) {
  9876. if (!ASN1PERDecSkipFragmented(dec, 8))
  9877. return 0;
  9878. }
  9879. }
  9880. return 1;
  9881. }
  9882. static void ASN1CALL ASN1Free_GatekeeperConfirm(GatekeeperConfirm *val)
  9883. {
  9884. if (val) {
  9885. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  9886. if ((val)->o[0] & 0x80) {
  9887. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9888. }
  9889. if ((val)->o[0] & 0x40) {
  9890. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  9891. }
  9892. ASN1Free_TransportAddress(&(val)->rasAddress);
  9893. if ((val)->o[1] & 0x80) {
  9894. ASN1Free_GatekeeperConfirm_alternateGatekeeper(&(val)->alternateGatekeeper);
  9895. }
  9896. if ((val)->o[1] & 0x40) {
  9897. ASN1Free_AuthenticationMechanism(&(val)->authenticationMode);
  9898. }
  9899. if ((val)->o[1] & 0x20) {
  9900. ASN1Free_GatekeeperConfirm_tokens(&(val)->tokens);
  9901. }
  9902. if ((val)->o[1] & 0x10) {
  9903. ASN1Free_GatekeeperConfirm_cryptoTokens(&(val)->cryptoTokens);
  9904. }
  9905. if ((val)->o[1] & 0x8) {
  9906. ASN1objectidentifier_free(&(val)->algorithmOID);
  9907. }
  9908. if ((val)->o[1] & 0x4) {
  9909. ASN1Free_GatekeeperConfirm_integrity(&(val)->integrity);
  9910. }
  9911. if ((val)->o[1] & 0x2) {
  9912. ASN1Free_ICV(&(val)->integrityCheckValue);
  9913. }
  9914. }
  9915. }
  9916. static int ASN1CALL ASN1Enc_AdmissionRequest(ASN1encoding_t enc, AdmissionRequest *val)
  9917. {
  9918. ASN1octet_t o[3];
  9919. ASN1uint32_t y;
  9920. ASN1uint32_t l;
  9921. ASN1encoding_t ee;
  9922. CopyMemory(o, (val)->o, 3);
  9923. o[1] |= 0x80;
  9924. o[1] |= 0x40;
  9925. o[2] |= 0x40;
  9926. y = ASN1PEREncCheckExtensions(10, (val)->o + 1);
  9927. if (!ASN1PEREncBitVal(enc, 1, y))
  9928. return 0;
  9929. if (!ASN1PEREncBits(enc, 7, o))
  9930. return 0;
  9931. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  9932. return 0;
  9933. if (!ASN1Enc_CallType(enc, &(val)->callType))
  9934. return 0;
  9935. if (o[0] & 0x80) {
  9936. if (!ASN1Enc_CallModel(enc, &(val)->callModel))
  9937. return 0;
  9938. }
  9939. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  9940. return 0;
  9941. ASN1PEREncAlignment(enc);
  9942. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  9943. return 0;
  9944. if (o[0] & 0x40) {
  9945. if (!ASN1Enc_AdmissionRequest_destinationInfo(enc, &(val)->destinationInfo))
  9946. return 0;
  9947. }
  9948. if (o[0] & 0x20) {
  9949. if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
  9950. return 0;
  9951. }
  9952. if (o[0] & 0x10) {
  9953. if (!ASN1Enc_AdmissionRequest_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
  9954. return 0;
  9955. }
  9956. if (!ASN1Enc_AdmissionRequest_srcInfo(enc, &(val)->srcInfo))
  9957. return 0;
  9958. if (o[0] & 0x8) {
  9959. if (!ASN1Enc_TransportAddress(enc, &(val)->srcCallSignalAddress))
  9960. return 0;
  9961. }
  9962. l = ASN1uint32_uoctets((val)->bandWidth);
  9963. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  9964. return 0;
  9965. ASN1PEREncAlignment(enc);
  9966. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  9967. return 0;
  9968. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  9969. return 0;
  9970. if (o[0] & 0x4) {
  9971. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9972. return 0;
  9973. }
  9974. if (o[0] & 0x2) {
  9975. if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
  9976. return 0;
  9977. }
  9978. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  9979. return 0;
  9980. if (!ASN1PEREncBoolean(enc, (val)->activeMC))
  9981. return 0;
  9982. if (!ASN1PEREncBoolean(enc, (val)->answerCall))
  9983. return 0;
  9984. if (y) {
  9985. if (!ASN1PEREncNormallySmallBits(enc, 10, o + 1))
  9986. return 0;
  9987. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9988. return 0;
  9989. if (o[1] & 0x80) {
  9990. if (!ASN1PEREncBoolean(ee, (val)->canMapAlias))
  9991. return 0;
  9992. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9993. return 0;
  9994. }
  9995. if (o[1] & 0x40) {
  9996. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  9997. return 0;
  9998. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9999. return 0;
  10000. }
  10001. if (o[1] & 0x20) {
  10002. if (!ASN1Enc_AdmissionRequest_srcAlternatives(ee, &(val)->srcAlternatives))
  10003. return 0;
  10004. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10005. return 0;
  10006. }
  10007. if (o[1] & 0x10) {
  10008. if (!ASN1Enc_AdmissionRequest_destAlternatives(ee, &(val)->destAlternatives))
  10009. return 0;
  10010. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10011. return 0;
  10012. }
  10013. if (o[1] & 0x8) {
  10014. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  10015. return 0;
  10016. ASN1PEREncAlignment(ee);
  10017. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  10018. return 0;
  10019. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10020. return 0;
  10021. }
  10022. if (o[1] & 0x4) {
  10023. if (!ASN1Enc_AdmissionRequest_tokens(ee, &(val)->tokens))
  10024. return 0;
  10025. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10026. return 0;
  10027. }
  10028. if (o[1] & 0x2) {
  10029. if (!ASN1Enc_AdmissionRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  10030. return 0;
  10031. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10032. return 0;
  10033. }
  10034. if (o[1] & 0x1) {
  10035. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  10036. return 0;
  10037. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10038. return 0;
  10039. }
  10040. if (o[2] & 0x80) {
  10041. if (!ASN1Enc_TransportQOS(ee, &(val)->transportQOS))
  10042. return 0;
  10043. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10044. return 0;
  10045. }
  10046. if (o[2] & 0x40) {
  10047. if (!ASN1PEREncBoolean(ee, (val)->willSupplyUUIEs))
  10048. return 0;
  10049. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10050. return 0;
  10051. }
  10052. ASN1_CloseEncoder2(ee);
  10053. }
  10054. return 1;
  10055. }
  10056. static int ASN1CALL ASN1Dec_AdmissionRequest(ASN1decoding_t dec, AdmissionRequest *val)
  10057. {
  10058. ASN1uint32_t y;
  10059. ASN1uint32_t l;
  10060. ASN1decoding_t dd;
  10061. ASN1octet_t *db;
  10062. ASN1uint32_t ds;
  10063. ASN1uint32_t i;
  10064. ASN1uint32_t e;
  10065. if (!ASN1PERDecExtensionBit(dec, &y))
  10066. return 0;
  10067. if (!ASN1PERDecExtension(dec, 7, (val)->o))
  10068. return 0;
  10069. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  10070. return 0;
  10071. (val)->requestSeqNum += 1;
  10072. if (!ASN1Dec_CallType(dec, &(val)->callType))
  10073. return 0;
  10074. if ((val)->o[0] & 0x80) {
  10075. if (!ASN1Dec_CallModel(dec, &(val)->callModel))
  10076. return 0;
  10077. }
  10078. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  10079. return 0;
  10080. ((val)->endpointIdentifier).length += 1;
  10081. ASN1PERDecAlignment(dec);
  10082. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  10083. return 0;
  10084. if ((val)->o[0] & 0x40) {
  10085. if (!ASN1Dec_AdmissionRequest_destinationInfo(dec, &(val)->destinationInfo))
  10086. return 0;
  10087. }
  10088. if ((val)->o[0] & 0x20) {
  10089. if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
  10090. return 0;
  10091. }
  10092. if ((val)->o[0] & 0x10) {
  10093. if (!ASN1Dec_AdmissionRequest_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
  10094. return 0;
  10095. }
  10096. if (!ASN1Dec_AdmissionRequest_srcInfo(dec, &(val)->srcInfo))
  10097. return 0;
  10098. if ((val)->o[0] & 0x8) {
  10099. if (!ASN1Dec_TransportAddress(dec, &(val)->srcCallSignalAddress))
  10100. return 0;
  10101. }
  10102. if (!ASN1PERDecU32Val(dec, 2, &l))
  10103. return 0;
  10104. l += 1;
  10105. ASN1PERDecAlignment(dec);
  10106. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  10107. return 0;
  10108. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  10109. return 0;
  10110. if ((val)->o[0] & 0x4) {
  10111. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10112. return 0;
  10113. }
  10114. if ((val)->o[0] & 0x2) {
  10115. if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
  10116. return 0;
  10117. }
  10118. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  10119. return 0;
  10120. if (!ASN1PERDecBoolean(dec, &(val)->activeMC))
  10121. return 0;
  10122. if (!ASN1PERDecBoolean(dec, &(val)->answerCall))
  10123. return 0;
  10124. if (!y) {
  10125. ZeroMemory((val)->o + 1, 2);
  10126. } else {
  10127. if (!ASN1PERDecNormallySmallExtension(dec, &e, 10, (val)->o + 1))
  10128. return 0;
  10129. if ((val)->o[1] & 0x80) {
  10130. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10131. return 0;
  10132. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10133. return 0;
  10134. if (!ASN1PERDecBoolean(dd, &(val)->canMapAlias))
  10135. return 0;
  10136. ASN1_CloseDecoder(dd);
  10137. ASN1Free(db);
  10138. }
  10139. if ((val)->o[1] & 0x40) {
  10140. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10141. return 0;
  10142. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10143. return 0;
  10144. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  10145. return 0;
  10146. ASN1_CloseDecoder(dd);
  10147. ASN1Free(db);
  10148. }
  10149. if ((val)->o[1] & 0x20) {
  10150. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10151. return 0;
  10152. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10153. return 0;
  10154. if (!ASN1Dec_AdmissionRequest_srcAlternatives(dd, &(val)->srcAlternatives))
  10155. return 0;
  10156. ASN1_CloseDecoder(dd);
  10157. ASN1Free(db);
  10158. }
  10159. if ((val)->o[1] & 0x10) {
  10160. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10161. return 0;
  10162. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10163. return 0;
  10164. if (!ASN1Dec_AdmissionRequest_destAlternatives(dd, &(val)->destAlternatives))
  10165. return 0;
  10166. ASN1_CloseDecoder(dd);
  10167. ASN1Free(db);
  10168. }
  10169. if ((val)->o[1] & 0x8) {
  10170. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10171. return 0;
  10172. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10173. return 0;
  10174. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  10175. return 0;
  10176. ((val)->gatekeeperIdentifier).length += 1;
  10177. ASN1PERDecAlignment(dd);
  10178. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  10179. return 0;
  10180. ASN1_CloseDecoder(dd);
  10181. ASN1Free(db);
  10182. }
  10183. if ((val)->o[1] & 0x4) {
  10184. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10185. return 0;
  10186. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10187. return 0;
  10188. if (!ASN1Dec_AdmissionRequest_tokens(dd, &(val)->tokens))
  10189. return 0;
  10190. ASN1_CloseDecoder(dd);
  10191. ASN1Free(db);
  10192. }
  10193. if ((val)->o[1] & 0x2) {
  10194. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10195. return 0;
  10196. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10197. return 0;
  10198. if (!ASN1Dec_AdmissionRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  10199. return 0;
  10200. ASN1_CloseDecoder(dd);
  10201. ASN1Free(db);
  10202. }
  10203. if ((val)->o[1] & 0x1) {
  10204. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10205. return 0;
  10206. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10207. return 0;
  10208. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  10209. return 0;
  10210. ASN1_CloseDecoder(dd);
  10211. ASN1Free(db);
  10212. }
  10213. if ((val)->o[2] & 0x80) {
  10214. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10215. return 0;
  10216. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10217. return 0;
  10218. if (!ASN1Dec_TransportQOS(dd, &(val)->transportQOS))
  10219. return 0;
  10220. ASN1_CloseDecoder(dd);
  10221. ASN1Free(db);
  10222. }
  10223. if ((val)->o[2] & 0x40) {
  10224. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10225. return 0;
  10226. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10227. return 0;
  10228. if (!ASN1PERDecBoolean(dd, &(val)->willSupplyUUIEs))
  10229. return 0;
  10230. ASN1_CloseDecoder(dd);
  10231. ASN1Free(db);
  10232. }
  10233. for (i = 0; i < e; i++) {
  10234. if (!ASN1PERDecSkipFragmented(dec, 8))
  10235. return 0;
  10236. }
  10237. }
  10238. return 1;
  10239. }
  10240. static void ASN1CALL ASN1Free_AdmissionRequest(AdmissionRequest *val)
  10241. {
  10242. if (val) {
  10243. ASN1char16string_free(&(val)->endpointIdentifier);
  10244. if ((val)->o[0] & 0x40) {
  10245. ASN1Free_AdmissionRequest_destinationInfo(&(val)->destinationInfo);
  10246. }
  10247. if ((val)->o[0] & 0x20) {
  10248. ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
  10249. }
  10250. if ((val)->o[0] & 0x10) {
  10251. ASN1Free_AdmissionRequest_destExtraCallInfo(&(val)->destExtraCallInfo);
  10252. }
  10253. ASN1Free_AdmissionRequest_srcInfo(&(val)->srcInfo);
  10254. if ((val)->o[0] & 0x8) {
  10255. ASN1Free_TransportAddress(&(val)->srcCallSignalAddress);
  10256. }
  10257. if ((val)->o[0] & 0x4) {
  10258. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  10259. }
  10260. if ((val)->o[1] & 0x40) {
  10261. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  10262. }
  10263. if ((val)->o[1] & 0x20) {
  10264. ASN1Free_AdmissionRequest_srcAlternatives(&(val)->srcAlternatives);
  10265. }
  10266. if ((val)->o[1] & 0x10) {
  10267. ASN1Free_AdmissionRequest_destAlternatives(&(val)->destAlternatives);
  10268. }
  10269. if ((val)->o[1] & 0x8) {
  10270. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  10271. }
  10272. if ((val)->o[1] & 0x4) {
  10273. ASN1Free_AdmissionRequest_tokens(&(val)->tokens);
  10274. }
  10275. if ((val)->o[1] & 0x2) {
  10276. ASN1Free_AdmissionRequest_cryptoTokens(&(val)->cryptoTokens);
  10277. }
  10278. if ((val)->o[1] & 0x1) {
  10279. ASN1Free_ICV(&(val)->integrityCheckValue);
  10280. }
  10281. }
  10282. }
  10283. static int ASN1CALL ASN1Enc_LocationRequest(ASN1encoding_t enc, LocationRequest *val)
  10284. {
  10285. ASN1octet_t o[2];
  10286. ASN1uint32_t y;
  10287. ASN1encoding_t ee;
  10288. CopyMemory(o, (val)->o, 2);
  10289. o[1] |= 0x40;
  10290. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  10291. if (!ASN1PEREncBitVal(enc, 1, y))
  10292. return 0;
  10293. if (!ASN1PEREncBits(enc, 2, o))
  10294. return 0;
  10295. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  10296. return 0;
  10297. if (o[0] & 0x80) {
  10298. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  10299. return 0;
  10300. ASN1PEREncAlignment(enc);
  10301. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  10302. return 0;
  10303. }
  10304. if (!ASN1Enc_LocationRequest_destinationInfo(enc, &(val)->destinationInfo))
  10305. return 0;
  10306. if (o[0] & 0x40) {
  10307. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  10308. return 0;
  10309. }
  10310. if (!ASN1Enc_TransportAddress(enc, &(val)->replyAddress))
  10311. return 0;
  10312. if (y) {
  10313. if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
  10314. return 0;
  10315. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  10316. return 0;
  10317. if (o[1] & 0x80) {
  10318. if (!ASN1Enc_LocationRequest_sourceInfo(ee, &(val)->sourceInfo))
  10319. return 0;
  10320. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10321. return 0;
  10322. }
  10323. if (o[1] & 0x40) {
  10324. if (!ASN1PEREncBoolean(ee, (val)->canMapAlias))
  10325. return 0;
  10326. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10327. return 0;
  10328. }
  10329. if (o[1] & 0x20) {
  10330. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  10331. return 0;
  10332. ASN1PEREncAlignment(ee);
  10333. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  10334. return 0;
  10335. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10336. return 0;
  10337. }
  10338. if (o[1] & 0x10) {
  10339. if (!ASN1Enc_LocationRequest_tokens(ee, &(val)->tokens))
  10340. return 0;
  10341. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10342. return 0;
  10343. }
  10344. if (o[1] & 0x8) {
  10345. if (!ASN1Enc_LocationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  10346. return 0;
  10347. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10348. return 0;
  10349. }
  10350. if (o[1] & 0x4) {
  10351. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  10352. return 0;
  10353. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10354. return 0;
  10355. }
  10356. ASN1_CloseEncoder2(ee);
  10357. }
  10358. return 1;
  10359. }
  10360. static int ASN1CALL ASN1Dec_LocationRequest(ASN1decoding_t dec, LocationRequest *val)
  10361. {
  10362. ASN1uint32_t y;
  10363. ASN1decoding_t dd;
  10364. ASN1octet_t *db;
  10365. ASN1uint32_t ds;
  10366. ASN1uint32_t i;
  10367. ASN1uint32_t e;
  10368. if (!ASN1PERDecExtensionBit(dec, &y))
  10369. return 0;
  10370. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  10371. return 0;
  10372. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  10373. return 0;
  10374. (val)->requestSeqNum += 1;
  10375. if ((val)->o[0] & 0x80) {
  10376. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  10377. return 0;
  10378. ((val)->endpointIdentifier).length += 1;
  10379. ASN1PERDecAlignment(dec);
  10380. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  10381. return 0;
  10382. }
  10383. if (!ASN1Dec_LocationRequest_destinationInfo(dec, &(val)->destinationInfo))
  10384. return 0;
  10385. if ((val)->o[0] & 0x40) {
  10386. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10387. return 0;
  10388. }
  10389. if (!ASN1Dec_TransportAddress(dec, &(val)->replyAddress))
  10390. return 0;
  10391. if (!y) {
  10392. ZeroMemory((val)->o + 1, 1);
  10393. } else {
  10394. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  10395. return 0;
  10396. if ((val)->o[1] & 0x80) {
  10397. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10398. return 0;
  10399. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10400. return 0;
  10401. if (!ASN1Dec_LocationRequest_sourceInfo(dd, &(val)->sourceInfo))
  10402. return 0;
  10403. ASN1_CloseDecoder(dd);
  10404. ASN1Free(db);
  10405. }
  10406. if ((val)->o[1] & 0x40) {
  10407. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10408. return 0;
  10409. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10410. return 0;
  10411. if (!ASN1PERDecBoolean(dd, &(val)->canMapAlias))
  10412. return 0;
  10413. ASN1_CloseDecoder(dd);
  10414. ASN1Free(db);
  10415. }
  10416. if ((val)->o[1] & 0x20) {
  10417. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10418. return 0;
  10419. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10420. return 0;
  10421. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  10422. return 0;
  10423. ((val)->gatekeeperIdentifier).length += 1;
  10424. ASN1PERDecAlignment(dd);
  10425. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  10426. return 0;
  10427. ASN1_CloseDecoder(dd);
  10428. ASN1Free(db);
  10429. }
  10430. if ((val)->o[1] & 0x10) {
  10431. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10432. return 0;
  10433. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10434. return 0;
  10435. if (!ASN1Dec_LocationRequest_tokens(dd, &(val)->tokens))
  10436. return 0;
  10437. ASN1_CloseDecoder(dd);
  10438. ASN1Free(db);
  10439. }
  10440. if ((val)->o[1] & 0x8) {
  10441. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10442. return 0;
  10443. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10444. return 0;
  10445. if (!ASN1Dec_LocationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  10446. return 0;
  10447. ASN1_CloseDecoder(dd);
  10448. ASN1Free(db);
  10449. }
  10450. if ((val)->o[1] & 0x4) {
  10451. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10452. return 0;
  10453. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10454. return 0;
  10455. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  10456. return 0;
  10457. ASN1_CloseDecoder(dd);
  10458. ASN1Free(db);
  10459. }
  10460. for (i = 0; i < e; i++) {
  10461. if (!ASN1PERDecSkipFragmented(dec, 8))
  10462. return 0;
  10463. }
  10464. }
  10465. return 1;
  10466. }
  10467. static void ASN1CALL ASN1Free_LocationRequest(LocationRequest *val)
  10468. {
  10469. if (val) {
  10470. if ((val)->o[0] & 0x80) {
  10471. ASN1char16string_free(&(val)->endpointIdentifier);
  10472. }
  10473. ASN1Free_LocationRequest_destinationInfo(&(val)->destinationInfo);
  10474. if ((val)->o[0] & 0x40) {
  10475. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  10476. }
  10477. ASN1Free_TransportAddress(&(val)->replyAddress);
  10478. if ((val)->o[1] & 0x80) {
  10479. ASN1Free_LocationRequest_sourceInfo(&(val)->sourceInfo);
  10480. }
  10481. if ((val)->o[1] & 0x20) {
  10482. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  10483. }
  10484. if ((val)->o[1] & 0x10) {
  10485. ASN1Free_LocationRequest_tokens(&(val)->tokens);
  10486. }
  10487. if ((val)->o[1] & 0x8) {
  10488. ASN1Free_LocationRequest_cryptoTokens(&(val)->cryptoTokens);
  10489. }
  10490. if ((val)->o[1] & 0x4) {
  10491. ASN1Free_ICV(&(val)->integrityCheckValue);
  10492. }
  10493. }
  10494. }
  10495. static int ASN1CALL ASN1Enc_InfoRequest(ASN1encoding_t enc, InfoRequest *val)
  10496. {
  10497. ASN1octet_t o[2];
  10498. ASN1uint32_t y;
  10499. ASN1encoding_t ee;
  10500. CopyMemory(o, (val)->o, 2);
  10501. o[1] |= 0x80;
  10502. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  10503. if (!ASN1PEREncBitVal(enc, 1, y))
  10504. return 0;
  10505. if (!ASN1PEREncBits(enc, 2, o))
  10506. return 0;
  10507. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  10508. return 0;
  10509. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  10510. return 0;
  10511. if (o[0] & 0x80) {
  10512. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  10513. return 0;
  10514. }
  10515. if (o[0] & 0x40) {
  10516. if (!ASN1Enc_TransportAddress(enc, &(val)->replyAddress))
  10517. return 0;
  10518. }
  10519. if (y) {
  10520. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  10521. return 0;
  10522. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  10523. return 0;
  10524. if (o[1] & 0x80) {
  10525. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  10526. return 0;
  10527. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10528. return 0;
  10529. }
  10530. if (o[1] & 0x40) {
  10531. if (!ASN1Enc_InfoRequest_tokens(ee, &(val)->tokens))
  10532. return 0;
  10533. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10534. return 0;
  10535. }
  10536. if (o[1] & 0x20) {
  10537. if (!ASN1Enc_InfoRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  10538. return 0;
  10539. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10540. return 0;
  10541. }
  10542. if (o[1] & 0x10) {
  10543. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  10544. return 0;
  10545. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10546. return 0;
  10547. }
  10548. if (o[1] & 0x8) {
  10549. if (!ASN1Enc_UUIEsRequested(ee, &(val)->uuiesRequested))
  10550. return 0;
  10551. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10552. return 0;
  10553. }
  10554. ASN1_CloseEncoder2(ee);
  10555. }
  10556. return 1;
  10557. }
  10558. static int ASN1CALL ASN1Dec_InfoRequest(ASN1decoding_t dec, InfoRequest *val)
  10559. {
  10560. ASN1uint32_t y;
  10561. ASN1decoding_t dd;
  10562. ASN1octet_t *db;
  10563. ASN1uint32_t ds;
  10564. ASN1uint32_t i;
  10565. ASN1uint32_t e;
  10566. if (!ASN1PERDecExtensionBit(dec, &y))
  10567. return 0;
  10568. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  10569. return 0;
  10570. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  10571. return 0;
  10572. (val)->requestSeqNum += 1;
  10573. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  10574. return 0;
  10575. if ((val)->o[0] & 0x80) {
  10576. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10577. return 0;
  10578. }
  10579. if ((val)->o[0] & 0x40) {
  10580. if (!ASN1Dec_TransportAddress(dec, &(val)->replyAddress))
  10581. return 0;
  10582. }
  10583. if (!y) {
  10584. ZeroMemory((val)->o + 1, 1);
  10585. } else {
  10586. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  10587. return 0;
  10588. if ((val)->o[1] & 0x80) {
  10589. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10590. return 0;
  10591. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10592. return 0;
  10593. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  10594. return 0;
  10595. ASN1_CloseDecoder(dd);
  10596. ASN1Free(db);
  10597. }
  10598. if ((val)->o[1] & 0x40) {
  10599. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10600. return 0;
  10601. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10602. return 0;
  10603. if (!ASN1Dec_InfoRequest_tokens(dd, &(val)->tokens))
  10604. return 0;
  10605. ASN1_CloseDecoder(dd);
  10606. ASN1Free(db);
  10607. }
  10608. if ((val)->o[1] & 0x20) {
  10609. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10610. return 0;
  10611. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10612. return 0;
  10613. if (!ASN1Dec_InfoRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  10614. return 0;
  10615. ASN1_CloseDecoder(dd);
  10616. ASN1Free(db);
  10617. }
  10618. if ((val)->o[1] & 0x10) {
  10619. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10620. return 0;
  10621. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10622. return 0;
  10623. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  10624. return 0;
  10625. ASN1_CloseDecoder(dd);
  10626. ASN1Free(db);
  10627. }
  10628. if ((val)->o[1] & 0x8) {
  10629. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10630. return 0;
  10631. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  10632. return 0;
  10633. if (!ASN1Dec_UUIEsRequested(dd, &(val)->uuiesRequested))
  10634. return 0;
  10635. ASN1_CloseDecoder(dd);
  10636. ASN1Free(db);
  10637. }
  10638. for (i = 0; i < e; i++) {
  10639. if (!ASN1PERDecSkipFragmented(dec, 8))
  10640. return 0;
  10641. }
  10642. }
  10643. return 1;
  10644. }
  10645. static void ASN1CALL ASN1Free_InfoRequest(InfoRequest *val)
  10646. {
  10647. if (val) {
  10648. if ((val)->o[0] & 0x80) {
  10649. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  10650. }
  10651. if ((val)->o[0] & 0x40) {
  10652. ASN1Free_TransportAddress(&(val)->replyAddress);
  10653. }
  10654. if ((val)->o[1] & 0x80) {
  10655. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  10656. }
  10657. if ((val)->o[1] & 0x40) {
  10658. ASN1Free_InfoRequest_tokens(&(val)->tokens);
  10659. }
  10660. if ((val)->o[1] & 0x20) {
  10661. ASN1Free_InfoRequest_cryptoTokens(&(val)->cryptoTokens);
  10662. }
  10663. if ((val)->o[1] & 0x10) {
  10664. ASN1Free_ICV(&(val)->integrityCheckValue);
  10665. }
  10666. }
  10667. }
  10668. static int ASN1CALL ASN1Enc_TransportChannelInfo(ASN1encoding_t enc, TransportChannelInfo *val)
  10669. {
  10670. if (!ASN1PEREncExtensionBitClear(enc))
  10671. return 0;
  10672. if (!ASN1PEREncBits(enc, 2, (val)->o))
  10673. return 0;
  10674. if ((val)->o[0] & 0x80) {
  10675. if (!ASN1Enc_TransportAddress(enc, &(val)->sendAddress))
  10676. return 0;
  10677. }
  10678. if ((val)->o[0] & 0x40) {
  10679. if (!ASN1Enc_TransportAddress(enc, &(val)->recvAddress))
  10680. return 0;
  10681. }
  10682. return 1;
  10683. }
  10684. static int ASN1CALL ASN1Dec_TransportChannelInfo(ASN1decoding_t dec, TransportChannelInfo *val)
  10685. {
  10686. ASN1uint32_t y;
  10687. if (!ASN1PERDecExtensionBit(dec, &y))
  10688. return 0;
  10689. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  10690. return 0;
  10691. if ((val)->o[0] & 0x80) {
  10692. if (!ASN1Dec_TransportAddress(dec, &(val)->sendAddress))
  10693. return 0;
  10694. }
  10695. if ((val)->o[0] & 0x40) {
  10696. if (!ASN1Dec_TransportAddress(dec, &(val)->recvAddress))
  10697. return 0;
  10698. }
  10699. if (y) {
  10700. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  10701. return 0;
  10702. }
  10703. return 1;
  10704. }
  10705. static void ASN1CALL ASN1Free_TransportChannelInfo(TransportChannelInfo *val)
  10706. {
  10707. if (val) {
  10708. if ((val)->o[0] & 0x80) {
  10709. ASN1Free_TransportAddress(&(val)->sendAddress);
  10710. }
  10711. if ((val)->o[0] & 0x40) {
  10712. ASN1Free_TransportAddress(&(val)->recvAddress);
  10713. }
  10714. }
  10715. }
  10716. static int ASN1CALL ASN1Enc_RTPSession(ASN1encoding_t enc, RTPSession *val)
  10717. {
  10718. ASN1uint32_t t;
  10719. ASN1uint32_t l;
  10720. if (!ASN1PEREncExtensionBitClear(enc))
  10721. return 0;
  10722. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->rtpAddress))
  10723. return 0;
  10724. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->rtcpAddress))
  10725. return 0;
  10726. t = lstrlenA((val)->cname);
  10727. if (!ASN1PEREncFragmentedCharString(enc, t, (val)->cname, 8))
  10728. return 0;
  10729. l = ASN1uint32_uoctets((val)->ssrc - 1);
  10730. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  10731. return 0;
  10732. ASN1PEREncAlignment(enc);
  10733. if (!ASN1PEREncBitVal(enc, l * 8, (val)->ssrc - 1))
  10734. return 0;
  10735. if (!ASN1PEREncBitVal(enc, 8, (val)->sessionId - 1))
  10736. return 0;
  10737. if (!ASN1Enc_RTPSession_associatedSessionIds(enc, &(val)->associatedSessionIds))
  10738. return 0;
  10739. return 1;
  10740. }
  10741. static int ASN1CALL ASN1Dec_RTPSession(ASN1decoding_t dec, RTPSession *val)
  10742. {
  10743. ASN1uint32_t y;
  10744. ASN1uint32_t l;
  10745. if (!ASN1PERDecExtensionBit(dec, &y))
  10746. return 0;
  10747. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->rtpAddress))
  10748. return 0;
  10749. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->rtcpAddress))
  10750. return 0;
  10751. if (!ASN1PERDecFragmentedZeroCharString(dec, &(val)->cname, 8))
  10752. return 0;
  10753. if (!ASN1PERDecU32Val(dec, 2, &l))
  10754. return 0;
  10755. l += 1;
  10756. ASN1PERDecAlignment(dec);
  10757. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->ssrc))
  10758. return 0;
  10759. (val)->ssrc += 1;
  10760. if (!ASN1PERDecU16Val(dec, 8, &(val)->sessionId))
  10761. return 0;
  10762. (val)->sessionId += 1;
  10763. if (!ASN1Dec_RTPSession_associatedSessionIds(dec, &(val)->associatedSessionIds))
  10764. return 0;
  10765. if (y) {
  10766. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  10767. return 0;
  10768. }
  10769. return 1;
  10770. }
  10771. static void ASN1CALL ASN1Free_RTPSession(RTPSession *val)
  10772. {
  10773. if (val) {
  10774. ASN1Free_TransportChannelInfo(&(val)->rtpAddress);
  10775. ASN1Free_TransportChannelInfo(&(val)->rtcpAddress);
  10776. ASN1ztcharstring_free((val)->cname);
  10777. ASN1Free_RTPSession_associatedSessionIds(&(val)->associatedSessionIds);
  10778. }
  10779. }
  10780. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data *val)
  10781. {
  10782. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data_ElmFn);
  10783. }
  10784. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data val)
  10785. {
  10786. if (!ASN1Enc_TransportChannelInfo(enc, &val->value))
  10787. return 0;
  10788. return 1;
  10789. }
  10790. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data *val)
  10791. {
  10792. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data_ElmFn, sizeof(**val));
  10793. }
  10794. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data val)
  10795. {
  10796. if (!ASN1Dec_TransportChannelInfo(dec, &val->value))
  10797. return 0;
  10798. return 1;
  10799. }
  10800. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(PInfoRequestResponse_perCallInfo_Seq_data *val)
  10801. {
  10802. if (val) {
  10803. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_data_ElmFn);
  10804. }
  10805. }
  10806. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(PInfoRequestResponse_perCallInfo_Seq_data val)
  10807. {
  10808. if (val) {
  10809. ASN1Free_TransportChannelInfo(&val->value);
  10810. }
  10811. }
  10812. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video *val)
  10813. {
  10814. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video_ElmFn);
  10815. }
  10816. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video val)
  10817. {
  10818. if (!ASN1Enc_RTPSession(enc, &val->value))
  10819. return 0;
  10820. return 1;
  10821. }
  10822. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video *val)
  10823. {
  10824. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video_ElmFn, sizeof(**val));
  10825. }
  10826. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video val)
  10827. {
  10828. if (!ASN1Dec_RTPSession(dec, &val->value))
  10829. return 0;
  10830. return 1;
  10831. }
  10832. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(PInfoRequestResponse_perCallInfo_Seq_video *val)
  10833. {
  10834. if (val) {
  10835. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_video_ElmFn);
  10836. }
  10837. }
  10838. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(PInfoRequestResponse_perCallInfo_Seq_video val)
  10839. {
  10840. if (val) {
  10841. ASN1Free_RTPSession(&val->value);
  10842. }
  10843. }
  10844. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio *val)
  10845. {
  10846. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn);
  10847. }
  10848. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio val)
  10849. {
  10850. if (!ASN1Enc_RTPSession(enc, &val->value))
  10851. return 0;
  10852. return 1;
  10853. }
  10854. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio *val)
  10855. {
  10856. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn, sizeof(**val));
  10857. }
  10858. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio val)
  10859. {
  10860. if (!ASN1Dec_RTPSession(dec, &val->value))
  10861. return 0;
  10862. return 1;
  10863. }
  10864. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(PInfoRequestResponse_perCallInfo_Seq_audio *val)
  10865. {
  10866. if (val) {
  10867. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn);
  10868. }
  10869. }
  10870. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(PInfoRequestResponse_perCallInfo_Seq_audio val)
  10871. {
  10872. if (val) {
  10873. ASN1Free_RTPSession(&val->value);
  10874. }
  10875. }
  10876. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq *val)
  10877. {
  10878. ASN1octet_t o[2];
  10879. ASN1uint32_t y;
  10880. ASN1uint32_t l;
  10881. ASN1encoding_t ee;
  10882. CopyMemory(o, (val)->o, 2);
  10883. o[1] |= 0x80;
  10884. o[1] |= 0x10;
  10885. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  10886. if (!ASN1PEREncBitVal(enc, 1, y))
  10887. return 0;
  10888. if (!ASN1PEREncBits(enc, 5, o))
  10889. return 0;
  10890. if (o[0] & 0x80) {
  10891. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  10892. return 0;
  10893. }
  10894. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  10895. return 0;
  10896. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  10897. return 0;
  10898. if (o[0] & 0x40) {
  10899. if (!ASN1PEREncBoolean(enc, (val)->originator))
  10900. return 0;
  10901. }
  10902. if (o[0] & 0x20) {
  10903. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(enc, &(val)->audio))
  10904. return 0;
  10905. }
  10906. if (o[0] & 0x10) {
  10907. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(enc, &(val)->video))
  10908. return 0;
  10909. }
  10910. if (o[0] & 0x8) {
  10911. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(enc, &(val)->data))
  10912. return 0;
  10913. }
  10914. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->h245))
  10915. return 0;
  10916. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->callSignaling))
  10917. return 0;
  10918. if (!ASN1Enc_CallType(enc, &(val)->callType))
  10919. return 0;
  10920. l = ASN1uint32_uoctets((val)->bandWidth);
  10921. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  10922. return 0;
  10923. ASN1PEREncAlignment(enc);
  10924. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  10925. return 0;
  10926. if (!ASN1Enc_CallModel(enc, &(val)->callModel))
  10927. return 0;
  10928. if (y) {
  10929. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  10930. return 0;
  10931. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  10932. return 0;
  10933. if (o[1] & 0x80) {
  10934. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  10935. return 0;
  10936. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10937. return 0;
  10938. }
  10939. if (o[1] & 0x40) {
  10940. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ee, &(val)->tokens))
  10941. return 0;
  10942. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10943. return 0;
  10944. }
  10945. if (o[1] & 0x20) {
  10946. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ee, &(val)->cryptoTokens))
  10947. return 0;
  10948. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10949. return 0;
  10950. }
  10951. if (o[1] & 0x10) {
  10952. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ee, &(val)->substituteConfIDs))
  10953. return 0;
  10954. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10955. return 0;
  10956. }
  10957. if (o[1] & 0x8) {
  10958. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ee, &(val)->pdu))
  10959. return 0;
  10960. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10961. return 0;
  10962. }
  10963. ASN1_CloseEncoder2(ee);
  10964. }
  10965. return 1;
  10966. }
  10967. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq *val)
  10968. {
  10969. ASN1uint32_t y;
  10970. ASN1uint32_t l;
  10971. ASN1decoding_t dd;
  10972. ASN1octet_t *db;
  10973. ASN1uint32_t ds;
  10974. ASN1uint32_t i;
  10975. ASN1uint32_t e;
  10976. if (!ASN1PERDecExtensionBit(dec, &y))
  10977. return 0;
  10978. if (!ASN1PERDecExtension(dec, 5, (val)->o))
  10979. return 0;
  10980. if ((val)->o[0] & 0x80) {
  10981. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10982. return 0;
  10983. }
  10984. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  10985. return 0;
  10986. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  10987. return 0;
  10988. if ((val)->o[0] & 0x40) {
  10989. if (!ASN1PERDecBoolean(dec, &(val)->originator))
  10990. return 0;
  10991. }
  10992. if ((val)->o[0] & 0x20) {
  10993. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(dec, &(val)->audio))
  10994. return 0;
  10995. }
  10996. if ((val)->o[0] & 0x10) {
  10997. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(dec, &(val)->video))
  10998. return 0;
  10999. }
  11000. if ((val)->o[0] & 0x8) {
  11001. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(dec, &(val)->data))
  11002. return 0;
  11003. }
  11004. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->h245))
  11005. return 0;
  11006. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->callSignaling))
  11007. return 0;
  11008. if (!ASN1Dec_CallType(dec, &(val)->callType))
  11009. return 0;
  11010. if (!ASN1PERDecU32Val(dec, 2, &l))
  11011. return 0;
  11012. l += 1;
  11013. ASN1PERDecAlignment(dec);
  11014. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  11015. return 0;
  11016. if (!ASN1Dec_CallModel(dec, &(val)->callModel))
  11017. return 0;
  11018. if (!y) {
  11019. ZeroMemory((val)->o + 1, 1);
  11020. } else {
  11021. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  11022. return 0;
  11023. if ((val)->o[1] & 0x80) {
  11024. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11025. return 0;
  11026. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11027. return 0;
  11028. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  11029. return 0;
  11030. ASN1_CloseDecoder(dd);
  11031. ASN1Free(db);
  11032. }
  11033. if ((val)->o[1] & 0x40) {
  11034. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11035. return 0;
  11036. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11037. return 0;
  11038. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(dd, &(val)->tokens))
  11039. return 0;
  11040. ASN1_CloseDecoder(dd);
  11041. ASN1Free(db);
  11042. }
  11043. if ((val)->o[1] & 0x20) {
  11044. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11045. return 0;
  11046. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11047. return 0;
  11048. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(dd, &(val)->cryptoTokens))
  11049. return 0;
  11050. ASN1_CloseDecoder(dd);
  11051. ASN1Free(db);
  11052. }
  11053. if ((val)->o[1] & 0x10) {
  11054. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11055. return 0;
  11056. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11057. return 0;
  11058. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(dd, &(val)->substituteConfIDs))
  11059. return 0;
  11060. ASN1_CloseDecoder(dd);
  11061. ASN1Free(db);
  11062. }
  11063. if ((val)->o[1] & 0x8) {
  11064. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11065. return 0;
  11066. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11067. return 0;
  11068. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(dd, &(val)->pdu))
  11069. return 0;
  11070. ASN1_CloseDecoder(dd);
  11071. ASN1Free(db);
  11072. }
  11073. for (i = 0; i < e; i++) {
  11074. if (!ASN1PERDecSkipFragmented(dec, 8))
  11075. return 0;
  11076. }
  11077. }
  11078. return 1;
  11079. }
  11080. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq(InfoRequestResponse_perCallInfo_Seq *val)
  11081. {
  11082. if (val) {
  11083. if ((val)->o[0] & 0x80) {
  11084. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  11085. }
  11086. if ((val)->o[0] & 0x20) {
  11087. ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(&(val)->audio);
  11088. }
  11089. if ((val)->o[0] & 0x10) {
  11090. ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(&(val)->video);
  11091. }
  11092. if ((val)->o[0] & 0x8) {
  11093. ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(&(val)->data);
  11094. }
  11095. ASN1Free_TransportChannelInfo(&(val)->h245);
  11096. ASN1Free_TransportChannelInfo(&(val)->callSignaling);
  11097. if ((val)->o[1] & 0x80) {
  11098. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  11099. }
  11100. if ((val)->o[1] & 0x40) {
  11101. ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(&(val)->tokens);
  11102. }
  11103. if ((val)->o[1] & 0x20) {
  11104. ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(&(val)->cryptoTokens);
  11105. }
  11106. if ((val)->o[1] & 0x10) {
  11107. ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(&(val)->substituteConfIDs);
  11108. }
  11109. if ((val)->o[1] & 0x8) {
  11110. ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(&(val)->pdu);
  11111. }
  11112. }
  11113. }
  11114. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo *val)
  11115. {
  11116. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_ElmFn);
  11117. }
  11118. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo val)
  11119. {
  11120. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq(enc, &val->value))
  11121. return 0;
  11122. return 1;
  11123. }
  11124. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo *val)
  11125. {
  11126. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_ElmFn, sizeof(**val));
  11127. }
  11128. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo val)
  11129. {
  11130. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq(dec, &val->value))
  11131. return 0;
  11132. return 1;
  11133. }
  11134. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo(PInfoRequestResponse_perCallInfo *val)
  11135. {
  11136. if (val) {
  11137. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_ElmFn);
  11138. }
  11139. }
  11140. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_ElmFn(PInfoRequestResponse_perCallInfo val)
  11141. {
  11142. if (val) {
  11143. ASN1Free_InfoRequestResponse_perCallInfo_Seq(&val->value);
  11144. }
  11145. }
  11146. static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress *val)
  11147. {
  11148. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_callSignalAddress_ElmFn);
  11149. }
  11150. static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress val)
  11151. {
  11152. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11153. return 0;
  11154. return 1;
  11155. }
  11156. static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress *val)
  11157. {
  11158. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_callSignalAddress_ElmFn, sizeof(**val));
  11159. }
  11160. static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress val)
  11161. {
  11162. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11163. return 0;
  11164. return 1;
  11165. }
  11166. static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress(PInfoRequestResponse_callSignalAddress *val)
  11167. {
  11168. if (val) {
  11169. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_callSignalAddress_ElmFn);
  11170. }
  11171. }
  11172. static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress_ElmFn(PInfoRequestResponse_callSignalAddress val)
  11173. {
  11174. if (val) {
  11175. ASN1Free_TransportAddress(&val->value);
  11176. }
  11177. }
  11178. static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress(ASN1encoding_t enc, PAdmissionReject_callSignalAddress *val)
  11179. {
  11180. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_callSignalAddress_ElmFn);
  11181. }
  11182. static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress_ElmFn(ASN1encoding_t enc, PAdmissionReject_callSignalAddress val)
  11183. {
  11184. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11185. return 0;
  11186. return 1;
  11187. }
  11188. static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress(ASN1decoding_t dec, PAdmissionReject_callSignalAddress *val)
  11189. {
  11190. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_callSignalAddress_ElmFn, sizeof(**val));
  11191. }
  11192. static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress_ElmFn(ASN1decoding_t dec, PAdmissionReject_callSignalAddress val)
  11193. {
  11194. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11195. return 0;
  11196. return 1;
  11197. }
  11198. static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress(PAdmissionReject_callSignalAddress *val)
  11199. {
  11200. if (val) {
  11201. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_callSignalAddress_ElmFn);
  11202. }
  11203. }
  11204. static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress_ElmFn(PAdmissionReject_callSignalAddress val)
  11205. {
  11206. if (val) {
  11207. ASN1Free_TransportAddress(&val->value);
  11208. }
  11209. }
  11210. static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress *val)
  11211. {
  11212. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_callSignalAddress_ElmFn);
  11213. }
  11214. static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress val)
  11215. {
  11216. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11217. return 0;
  11218. return 1;
  11219. }
  11220. static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress *val)
  11221. {
  11222. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_callSignalAddress_ElmFn, sizeof(**val));
  11223. }
  11224. static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress val)
  11225. {
  11226. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11227. return 0;
  11228. return 1;
  11229. }
  11230. static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress(PUnregistrationRequest_callSignalAddress *val)
  11231. {
  11232. if (val) {
  11233. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_callSignalAddress_ElmFn);
  11234. }
  11235. }
  11236. static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress_ElmFn(PUnregistrationRequest_callSignalAddress val)
  11237. {
  11238. if (val) {
  11239. ASN1Free_TransportAddress(&val->value);
  11240. }
  11241. }
  11242. static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper *val)
  11243. {
  11244. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_alternateGatekeeper_ElmFn);
  11245. }
  11246. static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper val)
  11247. {
  11248. if (!ASN1Enc_AlternateGK(enc, &val->value))
  11249. return 0;
  11250. return 1;
  11251. }
  11252. static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper *val)
  11253. {
  11254. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_alternateGatekeeper_ElmFn, sizeof(**val));
  11255. }
  11256. static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper val)
  11257. {
  11258. if (!ASN1Dec_AlternateGK(dec, &val->value))
  11259. return 0;
  11260. return 1;
  11261. }
  11262. static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper(PRegistrationConfirm_alternateGatekeeper *val)
  11263. {
  11264. if (val) {
  11265. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_alternateGatekeeper_ElmFn);
  11266. }
  11267. }
  11268. static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper_ElmFn(PRegistrationConfirm_alternateGatekeeper val)
  11269. {
  11270. if (val) {
  11271. ASN1Free_AlternateGK(&val->value);
  11272. }
  11273. }
  11274. static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress *val)
  11275. {
  11276. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_callSignalAddress_ElmFn);
  11277. }
  11278. static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress val)
  11279. {
  11280. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11281. return 0;
  11282. return 1;
  11283. }
  11284. static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress *val)
  11285. {
  11286. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_callSignalAddress_ElmFn, sizeof(**val));
  11287. }
  11288. static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress val)
  11289. {
  11290. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11291. return 0;
  11292. return 1;
  11293. }
  11294. static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress(PRegistrationConfirm_callSignalAddress *val)
  11295. {
  11296. if (val) {
  11297. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_callSignalAddress_ElmFn);
  11298. }
  11299. }
  11300. static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress_ElmFn(PRegistrationConfirm_callSignalAddress val)
  11301. {
  11302. if (val) {
  11303. ASN1Free_TransportAddress(&val->value);
  11304. }
  11305. }
  11306. static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress(ASN1encoding_t enc, PRegistrationRequest_rasAddress *val)
  11307. {
  11308. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_rasAddress_ElmFn);
  11309. }
  11310. static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress_ElmFn(ASN1encoding_t enc, PRegistrationRequest_rasAddress val)
  11311. {
  11312. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11313. return 0;
  11314. return 1;
  11315. }
  11316. static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress(ASN1decoding_t dec, PRegistrationRequest_rasAddress *val)
  11317. {
  11318. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_rasAddress_ElmFn, sizeof(**val));
  11319. }
  11320. static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress_ElmFn(ASN1decoding_t dec, PRegistrationRequest_rasAddress val)
  11321. {
  11322. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11323. return 0;
  11324. return 1;
  11325. }
  11326. static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress(PRegistrationRequest_rasAddress *val)
  11327. {
  11328. if (val) {
  11329. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_rasAddress_ElmFn);
  11330. }
  11331. }
  11332. static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress_ElmFn(PRegistrationRequest_rasAddress val)
  11333. {
  11334. if (val) {
  11335. ASN1Free_TransportAddress(&val->value);
  11336. }
  11337. }
  11338. static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress *val)
  11339. {
  11340. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_callSignalAddress_ElmFn);
  11341. }
  11342. static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress_ElmFn(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress val)
  11343. {
  11344. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11345. return 0;
  11346. return 1;
  11347. }
  11348. static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress *val)
  11349. {
  11350. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_callSignalAddress_ElmFn, sizeof(**val));
  11351. }
  11352. static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress_ElmFn(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress val)
  11353. {
  11354. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11355. return 0;
  11356. return 1;
  11357. }
  11358. static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress(PRegistrationRequest_callSignalAddress *val)
  11359. {
  11360. if (val) {
  11361. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_callSignalAddress_ElmFn);
  11362. }
  11363. }
  11364. static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress_ElmFn(PRegistrationRequest_callSignalAddress val)
  11365. {
  11366. if (val) {
  11367. ASN1Free_TransportAddress(&val->value);
  11368. }
  11369. }
  11370. static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper *val)
  11371. {
  11372. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_alternateGatekeeper_ElmFn);
  11373. }
  11374. static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper val)
  11375. {
  11376. if (!ASN1Enc_AlternateGK(enc, &val->value))
  11377. return 0;
  11378. return 1;
  11379. }
  11380. static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper *val)
  11381. {
  11382. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_alternateGatekeeper_ElmFn, sizeof(**val));
  11383. }
  11384. static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper val)
  11385. {
  11386. if (!ASN1Dec_AlternateGK(dec, &val->value))
  11387. return 0;
  11388. return 1;
  11389. }
  11390. static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper(PGatekeeperConfirm_alternateGatekeeper *val)
  11391. {
  11392. if (val) {
  11393. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_alternateGatekeeper_ElmFn);
  11394. }
  11395. }
  11396. static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper_ElmFn(PGatekeeperConfirm_alternateGatekeeper val)
  11397. {
  11398. if (val) {
  11399. ASN1Free_AlternateGK(&val->value);
  11400. }
  11401. }
  11402. static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper *val)
  11403. {
  11404. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AltGKInfo_alternateGatekeeper_ElmFn);
  11405. }
  11406. static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper val)
  11407. {
  11408. if (!ASN1Enc_AlternateGK(enc, &val->value))
  11409. return 0;
  11410. return 1;
  11411. }
  11412. static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper *val)
  11413. {
  11414. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AltGKInfo_alternateGatekeeper_ElmFn, sizeof(**val));
  11415. }
  11416. static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper val)
  11417. {
  11418. if (!ASN1Dec_AlternateGK(dec, &val->value))
  11419. return 0;
  11420. return 1;
  11421. }
  11422. static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper(PAltGKInfo_alternateGatekeeper *val)
  11423. {
  11424. if (val) {
  11425. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AltGKInfo_alternateGatekeeper_ElmFn);
  11426. }
  11427. }
  11428. static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper_ElmFn(PAltGKInfo_alternateGatekeeper val)
  11429. {
  11430. if (val) {
  11431. ASN1Free_AlternateGK(&val->value);
  11432. }
  11433. }
  11434. static int ASN1CALL ASN1Enc_Endpoint_rasAddress(ASN1encoding_t enc, PEndpoint_rasAddress *val)
  11435. {
  11436. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_rasAddress_ElmFn);
  11437. }
  11438. static int ASN1CALL ASN1Enc_Endpoint_rasAddress_ElmFn(ASN1encoding_t enc, PEndpoint_rasAddress val)
  11439. {
  11440. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11441. return 0;
  11442. return 1;
  11443. }
  11444. static int ASN1CALL ASN1Dec_Endpoint_rasAddress(ASN1decoding_t dec, PEndpoint_rasAddress *val)
  11445. {
  11446. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_rasAddress_ElmFn, sizeof(**val));
  11447. }
  11448. static int ASN1CALL ASN1Dec_Endpoint_rasAddress_ElmFn(ASN1decoding_t dec, PEndpoint_rasAddress val)
  11449. {
  11450. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11451. return 0;
  11452. return 1;
  11453. }
  11454. static void ASN1CALL ASN1Free_Endpoint_rasAddress(PEndpoint_rasAddress *val)
  11455. {
  11456. if (val) {
  11457. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_rasAddress_ElmFn);
  11458. }
  11459. }
  11460. static void ASN1CALL ASN1Free_Endpoint_rasAddress_ElmFn(PEndpoint_rasAddress val)
  11461. {
  11462. if (val) {
  11463. ASN1Free_TransportAddress(&val->value);
  11464. }
  11465. }
  11466. static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress(ASN1encoding_t enc, PEndpoint_callSignalAddress *val)
  11467. {
  11468. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_callSignalAddress_ElmFn);
  11469. }
  11470. static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress_ElmFn(ASN1encoding_t enc, PEndpoint_callSignalAddress val)
  11471. {
  11472. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11473. return 0;
  11474. return 1;
  11475. }
  11476. static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress(ASN1decoding_t dec, PEndpoint_callSignalAddress *val)
  11477. {
  11478. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_callSignalAddress_ElmFn, sizeof(**val));
  11479. }
  11480. static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress_ElmFn(ASN1decoding_t dec, PEndpoint_callSignalAddress val)
  11481. {
  11482. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11483. return 0;
  11484. return 1;
  11485. }
  11486. static void ASN1CALL ASN1Free_Endpoint_callSignalAddress(PEndpoint_callSignalAddress *val)
  11487. {
  11488. if (val) {
  11489. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_callSignalAddress_ElmFn);
  11490. }
  11491. }
  11492. static void ASN1CALL ASN1Free_Endpoint_callSignalAddress_ElmFn(PEndpoint_callSignalAddress val)
  11493. {
  11494. if (val) {
  11495. ASN1Free_TransportAddress(&val->value);
  11496. }
  11497. }
  11498. static int ASN1CALL ASN1Enc_EndpointType(ASN1encoding_t enc, EndpointType *val)
  11499. {
  11500. if (!ASN1PEREncExtensionBitClear(enc))
  11501. return 0;
  11502. if (!ASN1PEREncBits(enc, 6, (val)->o))
  11503. return 0;
  11504. if ((val)->o[0] & 0x80) {
  11505. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  11506. return 0;
  11507. }
  11508. if ((val)->o[0] & 0x40) {
  11509. if (!ASN1Enc_VendorIdentifier(enc, &(val)->vendor))
  11510. return 0;
  11511. }
  11512. if ((val)->o[0] & 0x20) {
  11513. if (!ASN1Enc_GatekeeperInfo(enc, &(val)->gatekeeper))
  11514. return 0;
  11515. }
  11516. if ((val)->o[0] & 0x10) {
  11517. if (!ASN1Enc_GatewayInfo(enc, &(val)->gateway))
  11518. return 0;
  11519. }
  11520. if ((val)->o[0] & 0x8) {
  11521. if (!ASN1Enc_McuInfo(enc, &(val)->mcu))
  11522. return 0;
  11523. }
  11524. if ((val)->o[0] & 0x4) {
  11525. if (!ASN1Enc_TerminalInfo(enc, &(val)->terminal))
  11526. return 0;
  11527. }
  11528. if (!ASN1PEREncBoolean(enc, (val)->mc))
  11529. return 0;
  11530. if (!ASN1PEREncBoolean(enc, (val)->undefinedNode))
  11531. return 0;
  11532. return 1;
  11533. }
  11534. static int ASN1CALL ASN1Dec_EndpointType(ASN1decoding_t dec, EndpointType *val)
  11535. {
  11536. ASN1uint32_t y;
  11537. if (!ASN1PERDecExtensionBit(dec, &y))
  11538. return 0;
  11539. if (!ASN1PERDecExtension(dec, 6, (val)->o))
  11540. return 0;
  11541. if ((val)->o[0] & 0x80) {
  11542. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  11543. return 0;
  11544. }
  11545. if ((val)->o[0] & 0x40) {
  11546. if (!ASN1Dec_VendorIdentifier(dec, &(val)->vendor))
  11547. return 0;
  11548. }
  11549. if ((val)->o[0] & 0x20) {
  11550. if (!ASN1Dec_GatekeeperInfo(dec, &(val)->gatekeeper))
  11551. return 0;
  11552. }
  11553. if ((val)->o[0] & 0x10) {
  11554. if (!ASN1Dec_GatewayInfo(dec, &(val)->gateway))
  11555. return 0;
  11556. }
  11557. if ((val)->o[0] & 0x8) {
  11558. if (!ASN1Dec_McuInfo(dec, &(val)->mcu))
  11559. return 0;
  11560. }
  11561. if ((val)->o[0] & 0x4) {
  11562. if (!ASN1Dec_TerminalInfo(dec, &(val)->terminal))
  11563. return 0;
  11564. }
  11565. if (!ASN1PERDecBoolean(dec, &(val)->mc))
  11566. return 0;
  11567. if (!ASN1PERDecBoolean(dec, &(val)->undefinedNode))
  11568. return 0;
  11569. if (y) {
  11570. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  11571. return 0;
  11572. }
  11573. return 1;
  11574. }
  11575. static void ASN1CALL ASN1Free_EndpointType(EndpointType *val)
  11576. {
  11577. if (val) {
  11578. if ((val)->o[0] & 0x80) {
  11579. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  11580. }
  11581. if ((val)->o[0] & 0x40) {
  11582. ASN1Free_VendorIdentifier(&(val)->vendor);
  11583. }
  11584. if ((val)->o[0] & 0x20) {
  11585. ASN1Free_GatekeeperInfo(&(val)->gatekeeper);
  11586. }
  11587. if ((val)->o[0] & 0x10) {
  11588. ASN1Free_GatewayInfo(&(val)->gateway);
  11589. }
  11590. if ((val)->o[0] & 0x8) {
  11591. ASN1Free_McuInfo(&(val)->mcu);
  11592. }
  11593. if ((val)->o[0] & 0x4) {
  11594. ASN1Free_TerminalInfo(&(val)->terminal);
  11595. }
  11596. }
  11597. }
  11598. static int ASN1CALL ASN1Enc_SupportedProtocols(ASN1encoding_t enc, SupportedProtocols *val)
  11599. {
  11600. ASN1encoding_t ee;
  11601. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 9))
  11602. return 0;
  11603. switch ((val)->choice) {
  11604. case 1:
  11605. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandardData))
  11606. return 0;
  11607. break;
  11608. case 2:
  11609. if (!ASN1Enc_H310Caps(enc, &(val)->u.h310))
  11610. return 0;
  11611. break;
  11612. case 3:
  11613. if (!ASN1Enc_H320Caps(enc, &(val)->u.h320))
  11614. return 0;
  11615. break;
  11616. case 4:
  11617. if (!ASN1Enc_H321Caps(enc, &(val)->u.h321))
  11618. return 0;
  11619. break;
  11620. case 5:
  11621. if (!ASN1Enc_H322Caps(enc, &(val)->u.h322))
  11622. return 0;
  11623. break;
  11624. case 6:
  11625. if (!ASN1Enc_H323Caps(enc, &(val)->u.h323))
  11626. return 0;
  11627. break;
  11628. case 7:
  11629. if (!ASN1Enc_H324Caps(enc, &(val)->u.h324))
  11630. return 0;
  11631. break;
  11632. case 8:
  11633. if (!ASN1Enc_VoiceCaps(enc, &(val)->u.voice))
  11634. return 0;
  11635. break;
  11636. case 9:
  11637. if (!ASN1Enc_T120OnlyCaps(enc, &(val)->u.t120_only))
  11638. return 0;
  11639. break;
  11640. case 10:
  11641. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11642. return 0;
  11643. if (!ASN1Enc_NonStandardProtocol(ee, &(val)->u.nonStandardProtocol))
  11644. return 0;
  11645. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11646. return 0;
  11647. ASN1_CloseEncoder2(ee);
  11648. break;
  11649. default:
  11650. /* impossible */
  11651. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  11652. return 0;
  11653. }
  11654. return 1;
  11655. }
  11656. static int ASN1CALL ASN1Dec_SupportedProtocols(ASN1decoding_t dec, SupportedProtocols *val)
  11657. {
  11658. ASN1decoding_t dd;
  11659. ASN1octet_t *db;
  11660. ASN1uint32_t ds;
  11661. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 9))
  11662. return 0;
  11663. switch ((val)->choice) {
  11664. case 1:
  11665. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandardData))
  11666. return 0;
  11667. break;
  11668. case 2:
  11669. if (!ASN1Dec_H310Caps(dec, &(val)->u.h310))
  11670. return 0;
  11671. break;
  11672. case 3:
  11673. if (!ASN1Dec_H320Caps(dec, &(val)->u.h320))
  11674. return 0;
  11675. break;
  11676. case 4:
  11677. if (!ASN1Dec_H321Caps(dec, &(val)->u.h321))
  11678. return 0;
  11679. break;
  11680. case 5:
  11681. if (!ASN1Dec_H322Caps(dec, &(val)->u.h322))
  11682. return 0;
  11683. break;
  11684. case 6:
  11685. if (!ASN1Dec_H323Caps(dec, &(val)->u.h323))
  11686. return 0;
  11687. break;
  11688. case 7:
  11689. if (!ASN1Dec_H324Caps(dec, &(val)->u.h324))
  11690. return 0;
  11691. break;
  11692. case 8:
  11693. if (!ASN1Dec_VoiceCaps(dec, &(val)->u.voice))
  11694. return 0;
  11695. break;
  11696. case 9:
  11697. if (!ASN1Dec_T120OnlyCaps(dec, &(val)->u.t120_only))
  11698. return 0;
  11699. break;
  11700. case 10:
  11701. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11702. return 0;
  11703. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11704. return 0;
  11705. if (!ASN1Dec_NonStandardProtocol(dd, &(val)->u.nonStandardProtocol))
  11706. return 0;
  11707. ASN1_CloseDecoder(dd);
  11708. ASN1Free(db);
  11709. break;
  11710. case 0:
  11711. /* extension case */
  11712. if (!ASN1PERDecSkipFragmented(dec, 8))
  11713. return 0;
  11714. break;
  11715. default:
  11716. /* impossible */
  11717. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  11718. return 0;
  11719. }
  11720. return 1;
  11721. }
  11722. static void ASN1CALL ASN1Free_SupportedProtocols(SupportedProtocols *val)
  11723. {
  11724. if (val) {
  11725. switch ((val)->choice) {
  11726. case 1:
  11727. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandardData);
  11728. break;
  11729. case 2:
  11730. ASN1Free_H310Caps(&(val)->u.h310);
  11731. break;
  11732. case 3:
  11733. ASN1Free_H320Caps(&(val)->u.h320);
  11734. break;
  11735. case 4:
  11736. ASN1Free_H321Caps(&(val)->u.h321);
  11737. break;
  11738. case 5:
  11739. ASN1Free_H322Caps(&(val)->u.h322);
  11740. break;
  11741. case 6:
  11742. ASN1Free_H323Caps(&(val)->u.h323);
  11743. break;
  11744. case 7:
  11745. ASN1Free_H324Caps(&(val)->u.h324);
  11746. break;
  11747. case 8:
  11748. ASN1Free_VoiceCaps(&(val)->u.voice);
  11749. break;
  11750. case 9:
  11751. ASN1Free_T120OnlyCaps(&(val)->u.t120_only);
  11752. break;
  11753. case 10:
  11754. ASN1Free_NonStandardProtocol(&(val)->u.nonStandardProtocol);
  11755. break;
  11756. }
  11757. }
  11758. }
  11759. static ASN1stringtableentry_t AliasAddress_e164_StringTableEntries[] = {
  11760. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  11761. { 48, 57, 3 },
  11762. };
  11763. static ASN1stringtable_t AliasAddress_e164_StringTable = {
  11764. 4, AliasAddress_e164_StringTableEntries
  11765. };
  11766. static int ASN1CALL ASN1Enc_AliasAddress(ASN1encoding_t enc, AliasAddress *val)
  11767. {
  11768. ASN1uint32_t t;
  11769. ASN1encoding_t ee;
  11770. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
  11771. return 0;
  11772. switch ((val)->choice) {
  11773. case 1:
  11774. t = lstrlenA((val)->u.e164);
  11775. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  11776. return 0;
  11777. ASN1PEREncAlignment(enc);
  11778. if (!ASN1PEREncTableCharString(enc, t, (val)->u.e164, 4, &AliasAddress_e164_StringTable))
  11779. return 0;
  11780. break;
  11781. case 2:
  11782. ASN1PEREncAlignment(enc);
  11783. if (!ASN1PEREncBitVal(enc, 8, ((val)->u.h323_ID).length - 1))
  11784. return 0;
  11785. if (!ASN1PEREncChar16String(enc, ((val)->u.h323_ID).length, ((val)->u.h323_ID).value, 16))
  11786. return 0;
  11787. break;
  11788. case 3:
  11789. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11790. return 0;
  11791. t = lstrlenA((val)->u.url_ID);
  11792. ASN1PEREncAlignment(ee);
  11793. if (!ASN1PEREncBitVal(ee, 16, t - 1))
  11794. return 0;
  11795. if (!ASN1PEREncCharString(ee, t, (val)->u.url_ID, 8))
  11796. return 0;
  11797. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11798. return 0;
  11799. ASN1_CloseEncoder2(ee);
  11800. break;
  11801. case 4:
  11802. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11803. return 0;
  11804. if (!ASN1Enc_TransportAddress(ee, &(val)->u.transportID))
  11805. return 0;
  11806. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11807. return 0;
  11808. ASN1_CloseEncoder2(ee);
  11809. break;
  11810. case 5:
  11811. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11812. return 0;
  11813. t = lstrlenA((val)->u.email_ID);
  11814. ASN1PEREncAlignment(ee);
  11815. if (!ASN1PEREncBitVal(ee, 16, t - 1))
  11816. return 0;
  11817. if (!ASN1PEREncCharString(ee, t, (val)->u.email_ID, 8))
  11818. return 0;
  11819. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11820. return 0;
  11821. ASN1_CloseEncoder2(ee);
  11822. break;
  11823. case 6:
  11824. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11825. return 0;
  11826. if (!ASN1Enc_PartyNumber(ee, &(val)->u.partyNumber))
  11827. return 0;
  11828. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11829. return 0;
  11830. ASN1_CloseEncoder2(ee);
  11831. break;
  11832. default:
  11833. /* impossible */
  11834. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  11835. return 0;
  11836. }
  11837. return 1;
  11838. }
  11839. static int ASN1CALL ASN1Dec_AliasAddress(ASN1decoding_t dec, AliasAddress *val)
  11840. {
  11841. ASN1uint32_t l;
  11842. ASN1decoding_t dd;
  11843. ASN1octet_t *db;
  11844. ASN1uint32_t ds;
  11845. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
  11846. return 0;
  11847. switch ((val)->choice) {
  11848. case 1:
  11849. if (!ASN1PERDecU32Val(dec, 7, &l))
  11850. return 0;
  11851. l += 1;
  11852. ASN1PERDecAlignment(dec);
  11853. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.e164, 4, &AliasAddress_e164_StringTable))
  11854. return 0;
  11855. break;
  11856. case 2:
  11857. ASN1PERDecAlignment(dec);
  11858. if (!ASN1PERDecU32Val(dec, 8, &((val)->u.h323_ID).length))
  11859. return 0;
  11860. ((val)->u.h323_ID).length += 1;
  11861. if (!ASN1PERDecChar16String(dec, ((val)->u.h323_ID).length, &((val)->u.h323_ID).value, 16))
  11862. return 0;
  11863. break;
  11864. case 3:
  11865. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11866. return 0;
  11867. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11868. return 0;
  11869. ASN1PERDecAlignment(dd);
  11870. if (!ASN1PERDecU32Val(dd, 16, &l))
  11871. return 0;
  11872. l += 1;
  11873. if (!ASN1PERDecZeroCharStringNoAlloc(dd, l, (val)->u.url_ID, 8))
  11874. return 0;
  11875. ASN1_CloseDecoder(dd);
  11876. ASN1Free(db);
  11877. break;
  11878. case 4:
  11879. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11880. return 0;
  11881. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11882. return 0;
  11883. if (!ASN1Dec_TransportAddress(dd, &(val)->u.transportID))
  11884. return 0;
  11885. ASN1_CloseDecoder(dd);
  11886. ASN1Free(db);
  11887. break;
  11888. case 5:
  11889. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11890. return 0;
  11891. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11892. return 0;
  11893. ASN1PERDecAlignment(dd);
  11894. if (!ASN1PERDecU32Val(dd, 16, &l))
  11895. return 0;
  11896. l += 1;
  11897. if (!ASN1PERDecZeroCharStringNoAlloc(dd, l, (val)->u.email_ID, 8))
  11898. return 0;
  11899. ASN1_CloseDecoder(dd);
  11900. ASN1Free(db);
  11901. break;
  11902. case 6:
  11903. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11904. return 0;
  11905. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  11906. return 0;
  11907. if (!ASN1Dec_PartyNumber(dd, &(val)->u.partyNumber))
  11908. return 0;
  11909. ASN1_CloseDecoder(dd);
  11910. ASN1Free(db);
  11911. break;
  11912. case 0:
  11913. /* extension case */
  11914. if (!ASN1PERDecSkipFragmented(dec, 8))
  11915. return 0;
  11916. break;
  11917. default:
  11918. /* impossible */
  11919. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  11920. return 0;
  11921. }
  11922. return 1;
  11923. }
  11924. static void ASN1CALL ASN1Free_AliasAddress(AliasAddress *val)
  11925. {
  11926. if (val) {
  11927. switch ((val)->choice) {
  11928. case 1:
  11929. break;
  11930. case 2:
  11931. ASN1char16string_free(&(val)->u.h323_ID);
  11932. break;
  11933. case 3:
  11934. break;
  11935. case 4:
  11936. ASN1Free_TransportAddress(&(val)->u.transportID);
  11937. break;
  11938. case 5:
  11939. break;
  11940. case 6:
  11941. ASN1Free_PartyNumber(&(val)->u.partyNumber);
  11942. break;
  11943. }
  11944. }
  11945. }
  11946. static int ASN1CALL ASN1Enc_Endpoint(ASN1encoding_t enc, Endpoint *val)
  11947. {
  11948. if (!ASN1PEREncExtensionBitClear(enc))
  11949. return 0;
  11950. if (!ASN1PEREncBits(enc, 10, (val)->o))
  11951. return 0;
  11952. if ((val)->o[0] & 0x80) {
  11953. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  11954. return 0;
  11955. }
  11956. if ((val)->o[0] & 0x40) {
  11957. if (!ASN1Enc_Endpoint_aliasAddress(enc, &(val)->aliasAddress))
  11958. return 0;
  11959. }
  11960. if ((val)->o[0] & 0x20) {
  11961. if (!ASN1Enc_Endpoint_callSignalAddress(enc, &(val)->callSignalAddress))
  11962. return 0;
  11963. }
  11964. if ((val)->o[0] & 0x10) {
  11965. if (!ASN1Enc_Endpoint_rasAddress(enc, &(val)->rasAddress))
  11966. return 0;
  11967. }
  11968. if ((val)->o[0] & 0x8) {
  11969. if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
  11970. return 0;
  11971. }
  11972. if ((val)->o[0] & 0x4) {
  11973. if (!ASN1Enc_Endpoint_tokens(enc, &(val)->tokens))
  11974. return 0;
  11975. }
  11976. if ((val)->o[0] & 0x2) {
  11977. if (!ASN1Enc_Endpoint_cryptoTokens(enc, &(val)->cryptoTokens))
  11978. return 0;
  11979. }
  11980. if ((val)->o[0] & 0x1) {
  11981. if (!ASN1PEREncBitVal(enc, 7, (val)->priority))
  11982. return 0;
  11983. }
  11984. if ((val)->o[1] & 0x80) {
  11985. if (!ASN1Enc_Endpoint_remoteExtensionAddress(enc, &(val)->remoteExtensionAddress))
  11986. return 0;
  11987. }
  11988. if ((val)->o[1] & 0x40) {
  11989. if (!ASN1Enc_Endpoint_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
  11990. return 0;
  11991. }
  11992. return 1;
  11993. }
  11994. static int ASN1CALL ASN1Dec_Endpoint(ASN1decoding_t dec, Endpoint *val)
  11995. {
  11996. ASN1uint32_t y;
  11997. if (!ASN1PERDecExtensionBit(dec, &y))
  11998. return 0;
  11999. if (!ASN1PERDecExtension(dec, 10, (val)->o))
  12000. return 0;
  12001. if ((val)->o[0] & 0x80) {
  12002. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12003. return 0;
  12004. }
  12005. if ((val)->o[0] & 0x40) {
  12006. if (!ASN1Dec_Endpoint_aliasAddress(dec, &(val)->aliasAddress))
  12007. return 0;
  12008. }
  12009. if ((val)->o[0] & 0x20) {
  12010. if (!ASN1Dec_Endpoint_callSignalAddress(dec, &(val)->callSignalAddress))
  12011. return 0;
  12012. }
  12013. if ((val)->o[0] & 0x10) {
  12014. if (!ASN1Dec_Endpoint_rasAddress(dec, &(val)->rasAddress))
  12015. return 0;
  12016. }
  12017. if ((val)->o[0] & 0x8) {
  12018. if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
  12019. return 0;
  12020. }
  12021. if ((val)->o[0] & 0x4) {
  12022. if (!ASN1Dec_Endpoint_tokens(dec, &(val)->tokens))
  12023. return 0;
  12024. }
  12025. if ((val)->o[0] & 0x2) {
  12026. if (!ASN1Dec_Endpoint_cryptoTokens(dec, &(val)->cryptoTokens))
  12027. return 0;
  12028. }
  12029. if ((val)->o[0] & 0x1) {
  12030. if (!ASN1PERDecU16Val(dec, 7, &(val)->priority))
  12031. return 0;
  12032. }
  12033. if ((val)->o[1] & 0x80) {
  12034. if (!ASN1Dec_Endpoint_remoteExtensionAddress(dec, &(val)->remoteExtensionAddress))
  12035. return 0;
  12036. }
  12037. if ((val)->o[1] & 0x40) {
  12038. if (!ASN1Dec_Endpoint_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
  12039. return 0;
  12040. }
  12041. if (y) {
  12042. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  12043. return 0;
  12044. }
  12045. return 1;
  12046. }
  12047. static void ASN1CALL ASN1Free_Endpoint(Endpoint *val)
  12048. {
  12049. if (val) {
  12050. if ((val)->o[0] & 0x80) {
  12051. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12052. }
  12053. if ((val)->o[0] & 0x40) {
  12054. ASN1Free_Endpoint_aliasAddress(&(val)->aliasAddress);
  12055. }
  12056. if ((val)->o[0] & 0x20) {
  12057. ASN1Free_Endpoint_callSignalAddress(&(val)->callSignalAddress);
  12058. }
  12059. if ((val)->o[0] & 0x10) {
  12060. ASN1Free_Endpoint_rasAddress(&(val)->rasAddress);
  12061. }
  12062. if ((val)->o[0] & 0x8) {
  12063. ASN1Free_EndpointType(&(val)->endpointType);
  12064. }
  12065. if ((val)->o[0] & 0x4) {
  12066. ASN1Free_Endpoint_tokens(&(val)->tokens);
  12067. }
  12068. if ((val)->o[0] & 0x2) {
  12069. ASN1Free_Endpoint_cryptoTokens(&(val)->cryptoTokens);
  12070. }
  12071. if ((val)->o[1] & 0x80) {
  12072. ASN1Free_Endpoint_remoteExtensionAddress(&(val)->remoteExtensionAddress);
  12073. }
  12074. if ((val)->o[1] & 0x40) {
  12075. ASN1Free_Endpoint_destExtraCallInfo(&(val)->destExtraCallInfo);
  12076. }
  12077. }
  12078. }
  12079. static int ASN1CALL ASN1Enc_SupportedPrefix(ASN1encoding_t enc, SupportedPrefix *val)
  12080. {
  12081. if (!ASN1PEREncExtensionBitClear(enc))
  12082. return 0;
  12083. if (!ASN1PEREncBits(enc, 1, (val)->o))
  12084. return 0;
  12085. if ((val)->o[0] & 0x80) {
  12086. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12087. return 0;
  12088. }
  12089. if (!ASN1Enc_AliasAddress(enc, &(val)->prefix))
  12090. return 0;
  12091. return 1;
  12092. }
  12093. static int ASN1CALL ASN1Dec_SupportedPrefix(ASN1decoding_t dec, SupportedPrefix *val)
  12094. {
  12095. ASN1uint32_t y;
  12096. if (!ASN1PERDecExtensionBit(dec, &y))
  12097. return 0;
  12098. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  12099. return 0;
  12100. if ((val)->o[0] & 0x80) {
  12101. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12102. return 0;
  12103. }
  12104. if (!ASN1Dec_AliasAddress(dec, &(val)->prefix))
  12105. return 0;
  12106. if (y) {
  12107. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  12108. return 0;
  12109. }
  12110. return 1;
  12111. }
  12112. static void ASN1CALL ASN1Free_SupportedPrefix(SupportedPrefix *val)
  12113. {
  12114. if (val) {
  12115. if ((val)->o[0] & 0x80) {
  12116. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12117. }
  12118. ASN1Free_AliasAddress(&(val)->prefix);
  12119. }
  12120. }
  12121. static int ASN1CALL ASN1Enc_GatekeeperRequest(ASN1encoding_t enc, GatekeeperRequest *val)
  12122. {
  12123. ASN1uint32_t y;
  12124. ASN1encoding_t ee;
  12125. y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
  12126. if (!ASN1PEREncBitVal(enc, 1, y))
  12127. return 0;
  12128. if (!ASN1PEREncBits(enc, 4, (val)->o))
  12129. return 0;
  12130. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12131. return 0;
  12132. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  12133. return 0;
  12134. if ((val)->o[0] & 0x80) {
  12135. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12136. return 0;
  12137. }
  12138. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  12139. return 0;
  12140. if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
  12141. return 0;
  12142. if ((val)->o[0] & 0x40) {
  12143. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  12144. return 0;
  12145. ASN1PEREncAlignment(enc);
  12146. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  12147. return 0;
  12148. }
  12149. if ((val)->o[0] & 0x20) {
  12150. if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
  12151. return 0;
  12152. }
  12153. if ((val)->o[0] & 0x10) {
  12154. if (!ASN1Enc_GatekeeperRequest_endpointAlias(enc, &(val)->endpointAlias))
  12155. return 0;
  12156. }
  12157. if (y) {
  12158. if (!ASN1PEREncNormallySmallBits(enc, 7, (val)->o + 1))
  12159. return 0;
  12160. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12161. return 0;
  12162. if ((val)->o[1] & 0x80) {
  12163. if (!ASN1Enc_GatekeeperRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12164. return 0;
  12165. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12166. return 0;
  12167. }
  12168. if ((val)->o[1] & 0x40) {
  12169. if (!ASN1Enc_GatekeeperRequest_tokens(ee, &(val)->tokens))
  12170. return 0;
  12171. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12172. return 0;
  12173. }
  12174. if ((val)->o[1] & 0x20) {
  12175. if (!ASN1Enc_GatekeeperRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  12176. return 0;
  12177. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12178. return 0;
  12179. }
  12180. if ((val)->o[1] & 0x10) {
  12181. if (!ASN1Enc_GatekeeperRequest_authenticationCapability(ee, &(val)->authenticationCapability))
  12182. return 0;
  12183. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12184. return 0;
  12185. }
  12186. if ((val)->o[1] & 0x8) {
  12187. if (!ASN1Enc_GatekeeperRequest_algorithmOIDs(ee, &(val)->algorithmOIDs))
  12188. return 0;
  12189. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12190. return 0;
  12191. }
  12192. if ((val)->o[1] & 0x4) {
  12193. if (!ASN1Enc_GatekeeperRequest_integrity(ee, &(val)->integrity))
  12194. return 0;
  12195. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12196. return 0;
  12197. }
  12198. if ((val)->o[1] & 0x2) {
  12199. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12200. return 0;
  12201. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12202. return 0;
  12203. }
  12204. ASN1_CloseEncoder2(ee);
  12205. }
  12206. return 1;
  12207. }
  12208. static int ASN1CALL ASN1Dec_GatekeeperRequest(ASN1decoding_t dec, GatekeeperRequest *val)
  12209. {
  12210. ASN1uint32_t y;
  12211. ASN1decoding_t dd;
  12212. ASN1octet_t *db;
  12213. ASN1uint32_t ds;
  12214. ASN1uint32_t i;
  12215. ASN1uint32_t e;
  12216. if (!ASN1PERDecExtensionBit(dec, &y))
  12217. return 0;
  12218. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  12219. return 0;
  12220. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12221. return 0;
  12222. (val)->requestSeqNum += 1;
  12223. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  12224. return 0;
  12225. if ((val)->o[0] & 0x80) {
  12226. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12227. return 0;
  12228. }
  12229. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  12230. return 0;
  12231. if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
  12232. return 0;
  12233. if ((val)->o[0] & 0x40) {
  12234. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  12235. return 0;
  12236. ((val)->gatekeeperIdentifier).length += 1;
  12237. ASN1PERDecAlignment(dec);
  12238. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  12239. return 0;
  12240. }
  12241. if ((val)->o[0] & 0x20) {
  12242. if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
  12243. return 0;
  12244. }
  12245. if ((val)->o[0] & 0x10) {
  12246. if (!ASN1Dec_GatekeeperRequest_endpointAlias(dec, &(val)->endpointAlias))
  12247. return 0;
  12248. }
  12249. if (!y) {
  12250. ZeroMemory((val)->o + 1, 1);
  12251. } else {
  12252. if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
  12253. return 0;
  12254. if ((val)->o[1] & 0x80) {
  12255. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12256. return 0;
  12257. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12258. return 0;
  12259. if (!ASN1Dec_GatekeeperRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
  12260. return 0;
  12261. ASN1_CloseDecoder(dd);
  12262. ASN1Free(db);
  12263. }
  12264. if ((val)->o[1] & 0x40) {
  12265. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12266. return 0;
  12267. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12268. return 0;
  12269. if (!ASN1Dec_GatekeeperRequest_tokens(dd, &(val)->tokens))
  12270. return 0;
  12271. ASN1_CloseDecoder(dd);
  12272. ASN1Free(db);
  12273. }
  12274. if ((val)->o[1] & 0x20) {
  12275. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12276. return 0;
  12277. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12278. return 0;
  12279. if (!ASN1Dec_GatekeeperRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  12280. return 0;
  12281. ASN1_CloseDecoder(dd);
  12282. ASN1Free(db);
  12283. }
  12284. if ((val)->o[1] & 0x10) {
  12285. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12286. return 0;
  12287. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12288. return 0;
  12289. if (!ASN1Dec_GatekeeperRequest_authenticationCapability(dd, &(val)->authenticationCapability))
  12290. return 0;
  12291. ASN1_CloseDecoder(dd);
  12292. ASN1Free(db);
  12293. }
  12294. if ((val)->o[1] & 0x8) {
  12295. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12296. return 0;
  12297. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12298. return 0;
  12299. if (!ASN1Dec_GatekeeperRequest_algorithmOIDs(dd, &(val)->algorithmOIDs))
  12300. return 0;
  12301. ASN1_CloseDecoder(dd);
  12302. ASN1Free(db);
  12303. }
  12304. if ((val)->o[1] & 0x4) {
  12305. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12306. return 0;
  12307. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12308. return 0;
  12309. if (!ASN1Dec_GatekeeperRequest_integrity(dd, &(val)->integrity))
  12310. return 0;
  12311. ASN1_CloseDecoder(dd);
  12312. ASN1Free(db);
  12313. }
  12314. if ((val)->o[1] & 0x2) {
  12315. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12316. return 0;
  12317. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12318. return 0;
  12319. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  12320. return 0;
  12321. ASN1_CloseDecoder(dd);
  12322. ASN1Free(db);
  12323. }
  12324. for (i = 0; i < e; i++) {
  12325. if (!ASN1PERDecSkipFragmented(dec, 8))
  12326. return 0;
  12327. }
  12328. }
  12329. return 1;
  12330. }
  12331. static void ASN1CALL ASN1Free_GatekeeperRequest(GatekeeperRequest *val)
  12332. {
  12333. if (val) {
  12334. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  12335. if ((val)->o[0] & 0x80) {
  12336. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12337. }
  12338. ASN1Free_TransportAddress(&(val)->rasAddress);
  12339. ASN1Free_EndpointType(&(val)->endpointType);
  12340. if ((val)->o[0] & 0x40) {
  12341. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  12342. }
  12343. if ((val)->o[0] & 0x10) {
  12344. ASN1Free_GatekeeperRequest_endpointAlias(&(val)->endpointAlias);
  12345. }
  12346. if ((val)->o[1] & 0x80) {
  12347. ASN1Free_GatekeeperRequest_alternateEndpoints(&(val)->alternateEndpoints);
  12348. }
  12349. if ((val)->o[1] & 0x40) {
  12350. ASN1Free_GatekeeperRequest_tokens(&(val)->tokens);
  12351. }
  12352. if ((val)->o[1] & 0x20) {
  12353. ASN1Free_GatekeeperRequest_cryptoTokens(&(val)->cryptoTokens);
  12354. }
  12355. if ((val)->o[1] & 0x10) {
  12356. ASN1Free_GatekeeperRequest_authenticationCapability(&(val)->authenticationCapability);
  12357. }
  12358. if ((val)->o[1] & 0x8) {
  12359. ASN1Free_GatekeeperRequest_algorithmOIDs(&(val)->algorithmOIDs);
  12360. }
  12361. if ((val)->o[1] & 0x4) {
  12362. ASN1Free_GatekeeperRequest_integrity(&(val)->integrity);
  12363. }
  12364. if ((val)->o[1] & 0x2) {
  12365. ASN1Free_ICV(&(val)->integrityCheckValue);
  12366. }
  12367. }
  12368. }
  12369. static int ASN1CALL ASN1Enc_RegistrationRequest(ASN1encoding_t enc, RegistrationRequest *val)
  12370. {
  12371. ASN1octet_t o[2];
  12372. ASN1uint32_t y;
  12373. ASN1encoding_t ee;
  12374. ASN1uint32_t l;
  12375. CopyMemory(o, (val)->o, 2);
  12376. o[1] |= 0x4;
  12377. o[1] |= 0x1;
  12378. y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
  12379. if (!ASN1PEREncBitVal(enc, 1, y))
  12380. return 0;
  12381. if (!ASN1PEREncBits(enc, 3, o))
  12382. return 0;
  12383. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12384. return 0;
  12385. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  12386. return 0;
  12387. if (o[0] & 0x80) {
  12388. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12389. return 0;
  12390. }
  12391. if (!ASN1PEREncBoolean(enc, (val)->discoveryComplete))
  12392. return 0;
  12393. if (!ASN1Enc_RegistrationRequest_callSignalAddress(enc, &(val)->callSignalAddress))
  12394. return 0;
  12395. if (!ASN1Enc_RegistrationRequest_rasAddress(enc, &(val)->rasAddress))
  12396. return 0;
  12397. if (!ASN1Enc_EndpointType(enc, &(val)->terminalType))
  12398. return 0;
  12399. if (o[0] & 0x40) {
  12400. if (!ASN1Enc_RegistrationRequest_terminalAlias(enc, &(val)->terminalAlias))
  12401. return 0;
  12402. }
  12403. if (o[0] & 0x20) {
  12404. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  12405. return 0;
  12406. ASN1PEREncAlignment(enc);
  12407. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  12408. return 0;
  12409. }
  12410. if (!ASN1Enc_VendorIdentifier(enc, &(val)->endpointVendor))
  12411. return 0;
  12412. if (y) {
  12413. if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
  12414. return 0;
  12415. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12416. return 0;
  12417. if (o[1] & 0x80) {
  12418. if (!ASN1Enc_RegistrationRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12419. return 0;
  12420. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12421. return 0;
  12422. }
  12423. if (o[1] & 0x40) {
  12424. l = ASN1uint32_uoctets((val)->timeToLive - 1);
  12425. if (!ASN1PEREncBitVal(ee, 2, l - 1))
  12426. return 0;
  12427. ASN1PEREncAlignment(ee);
  12428. if (!ASN1PEREncBitVal(ee, l * 8, (val)->timeToLive - 1))
  12429. return 0;
  12430. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12431. return 0;
  12432. }
  12433. if (o[1] & 0x20) {
  12434. if (!ASN1Enc_RegistrationRequest_tokens(ee, &(val)->tokens))
  12435. return 0;
  12436. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12437. return 0;
  12438. }
  12439. if (o[1] & 0x10) {
  12440. if (!ASN1Enc_RegistrationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  12441. return 0;
  12442. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12443. return 0;
  12444. }
  12445. if (o[1] & 0x8) {
  12446. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12447. return 0;
  12448. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12449. return 0;
  12450. }
  12451. if (o[1] & 0x4) {
  12452. if (!ASN1PEREncBoolean(ee, (val)->keepAlive))
  12453. return 0;
  12454. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12455. return 0;
  12456. }
  12457. if (o[1] & 0x2) {
  12458. if (!ASN1PEREncBitVal(ee, 7, ((val)->endpointIdentifier).length - 1))
  12459. return 0;
  12460. ASN1PEREncAlignment(ee);
  12461. if (!ASN1PEREncChar16String(ee, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  12462. return 0;
  12463. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12464. return 0;
  12465. }
  12466. if (o[1] & 0x1) {
  12467. if (!ASN1PEREncBoolean(ee, (val)->willSupplyUUIEs))
  12468. return 0;
  12469. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12470. return 0;
  12471. }
  12472. ASN1_CloseEncoder2(ee);
  12473. }
  12474. return 1;
  12475. }
  12476. static int ASN1CALL ASN1Dec_RegistrationRequest(ASN1decoding_t dec, RegistrationRequest *val)
  12477. {
  12478. ASN1uint32_t y;
  12479. ASN1decoding_t dd;
  12480. ASN1octet_t *db;
  12481. ASN1uint32_t ds;
  12482. ASN1uint32_t l;
  12483. ASN1uint32_t i;
  12484. ASN1uint32_t e;
  12485. if (!ASN1PERDecExtensionBit(dec, &y))
  12486. return 0;
  12487. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  12488. return 0;
  12489. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12490. return 0;
  12491. (val)->requestSeqNum += 1;
  12492. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  12493. return 0;
  12494. if ((val)->o[0] & 0x80) {
  12495. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12496. return 0;
  12497. }
  12498. if (!ASN1PERDecBoolean(dec, &(val)->discoveryComplete))
  12499. return 0;
  12500. if (!ASN1Dec_RegistrationRequest_callSignalAddress(dec, &(val)->callSignalAddress))
  12501. return 0;
  12502. if (!ASN1Dec_RegistrationRequest_rasAddress(dec, &(val)->rasAddress))
  12503. return 0;
  12504. if (!ASN1Dec_EndpointType(dec, &(val)->terminalType))
  12505. return 0;
  12506. if ((val)->o[0] & 0x40) {
  12507. if (!ASN1Dec_RegistrationRequest_terminalAlias(dec, &(val)->terminalAlias))
  12508. return 0;
  12509. }
  12510. if ((val)->o[0] & 0x20) {
  12511. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  12512. return 0;
  12513. ((val)->gatekeeperIdentifier).length += 1;
  12514. ASN1PERDecAlignment(dec);
  12515. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  12516. return 0;
  12517. }
  12518. if (!ASN1Dec_VendorIdentifier(dec, &(val)->endpointVendor))
  12519. return 0;
  12520. if (!y) {
  12521. ZeroMemory((val)->o + 1, 1);
  12522. } else {
  12523. if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
  12524. return 0;
  12525. if ((val)->o[1] & 0x80) {
  12526. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12527. return 0;
  12528. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12529. return 0;
  12530. if (!ASN1Dec_RegistrationRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
  12531. return 0;
  12532. ASN1_CloseDecoder(dd);
  12533. ASN1Free(db);
  12534. }
  12535. if ((val)->o[1] & 0x40) {
  12536. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12537. return 0;
  12538. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12539. return 0;
  12540. if (!ASN1PERDecU32Val(dd, 2, &l))
  12541. return 0;
  12542. l += 1;
  12543. ASN1PERDecAlignment(dd);
  12544. if (!ASN1PERDecU32Val(dd, l * 8, &(val)->timeToLive))
  12545. return 0;
  12546. (val)->timeToLive += 1;
  12547. ASN1_CloseDecoder(dd);
  12548. ASN1Free(db);
  12549. }
  12550. if ((val)->o[1] & 0x20) {
  12551. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12552. return 0;
  12553. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12554. return 0;
  12555. if (!ASN1Dec_RegistrationRequest_tokens(dd, &(val)->tokens))
  12556. return 0;
  12557. ASN1_CloseDecoder(dd);
  12558. ASN1Free(db);
  12559. }
  12560. if ((val)->o[1] & 0x10) {
  12561. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12562. return 0;
  12563. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12564. return 0;
  12565. if (!ASN1Dec_RegistrationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  12566. return 0;
  12567. ASN1_CloseDecoder(dd);
  12568. ASN1Free(db);
  12569. }
  12570. if ((val)->o[1] & 0x8) {
  12571. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12572. return 0;
  12573. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12574. return 0;
  12575. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  12576. return 0;
  12577. ASN1_CloseDecoder(dd);
  12578. ASN1Free(db);
  12579. }
  12580. if ((val)->o[1] & 0x4) {
  12581. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12582. return 0;
  12583. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12584. return 0;
  12585. if (!ASN1PERDecBoolean(dd, &(val)->keepAlive))
  12586. return 0;
  12587. ASN1_CloseDecoder(dd);
  12588. ASN1Free(db);
  12589. }
  12590. if ((val)->o[1] & 0x2) {
  12591. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12592. return 0;
  12593. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12594. return 0;
  12595. if (!ASN1PERDecU32Val(dd, 7, &((val)->endpointIdentifier).length))
  12596. return 0;
  12597. ((val)->endpointIdentifier).length += 1;
  12598. ASN1PERDecAlignment(dd);
  12599. if (!ASN1PERDecChar16String(dd, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  12600. return 0;
  12601. ASN1_CloseDecoder(dd);
  12602. ASN1Free(db);
  12603. }
  12604. if ((val)->o[1] & 0x1) {
  12605. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12606. return 0;
  12607. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12608. return 0;
  12609. if (!ASN1PERDecBoolean(dd, &(val)->willSupplyUUIEs))
  12610. return 0;
  12611. ASN1_CloseDecoder(dd);
  12612. ASN1Free(db);
  12613. }
  12614. for (i = 0; i < e; i++) {
  12615. if (!ASN1PERDecSkipFragmented(dec, 8))
  12616. return 0;
  12617. }
  12618. }
  12619. return 1;
  12620. }
  12621. static void ASN1CALL ASN1Free_RegistrationRequest(RegistrationRequest *val)
  12622. {
  12623. if (val) {
  12624. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  12625. if ((val)->o[0] & 0x80) {
  12626. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12627. }
  12628. ASN1Free_RegistrationRequest_callSignalAddress(&(val)->callSignalAddress);
  12629. ASN1Free_RegistrationRequest_rasAddress(&(val)->rasAddress);
  12630. ASN1Free_EndpointType(&(val)->terminalType);
  12631. if ((val)->o[0] & 0x40) {
  12632. ASN1Free_RegistrationRequest_terminalAlias(&(val)->terminalAlias);
  12633. }
  12634. if ((val)->o[0] & 0x20) {
  12635. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  12636. }
  12637. ASN1Free_VendorIdentifier(&(val)->endpointVendor);
  12638. if ((val)->o[1] & 0x80) {
  12639. ASN1Free_RegistrationRequest_alternateEndpoints(&(val)->alternateEndpoints);
  12640. }
  12641. if ((val)->o[1] & 0x20) {
  12642. ASN1Free_RegistrationRequest_tokens(&(val)->tokens);
  12643. }
  12644. if ((val)->o[1] & 0x10) {
  12645. ASN1Free_RegistrationRequest_cryptoTokens(&(val)->cryptoTokens);
  12646. }
  12647. if ((val)->o[1] & 0x8) {
  12648. ASN1Free_ICV(&(val)->integrityCheckValue);
  12649. }
  12650. if ((val)->o[1] & 0x2) {
  12651. ASN1char16string_free(&(val)->endpointIdentifier);
  12652. }
  12653. }
  12654. }
  12655. static int ASN1CALL ASN1Enc_AdmissionConfirm(ASN1encoding_t enc, AdmissionConfirm *val)
  12656. {
  12657. ASN1octet_t o[3];
  12658. ASN1uint32_t y;
  12659. ASN1uint32_t l;
  12660. ASN1encoding_t ee;
  12661. CopyMemory(o, (val)->o, 3);
  12662. o[2] |= 0x40;
  12663. o[2] |= 0x20;
  12664. y = ASN1PEREncCheckExtensions(11, (val)->o + 1);
  12665. if (!ASN1PEREncBitVal(enc, 1, y))
  12666. return 0;
  12667. if (!ASN1PEREncBits(enc, 2, o))
  12668. return 0;
  12669. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12670. return 0;
  12671. l = ASN1uint32_uoctets((val)->bandWidth);
  12672. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  12673. return 0;
  12674. ASN1PEREncAlignment(enc);
  12675. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  12676. return 0;
  12677. if (!ASN1Enc_CallModel(enc, &(val)->callModel))
  12678. return 0;
  12679. if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
  12680. return 0;
  12681. if (o[0] & 0x80) {
  12682. if (!ASN1PEREncUnsignedShort(enc, (val)->irrFrequency - 1))
  12683. return 0;
  12684. }
  12685. if (o[0] & 0x40) {
  12686. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12687. return 0;
  12688. }
  12689. if (y) {
  12690. if (!ASN1PEREncNormallySmallBits(enc, 11, o + 1))
  12691. return 0;
  12692. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12693. return 0;
  12694. if (o[1] & 0x80) {
  12695. if (!ASN1Enc_AdmissionConfirm_destinationInfo(ee, &(val)->destinationInfo))
  12696. return 0;
  12697. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12698. return 0;
  12699. }
  12700. if (o[1] & 0x40) {
  12701. if (!ASN1Enc_AdmissionConfirm_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
  12702. return 0;
  12703. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12704. return 0;
  12705. }
  12706. if (o[1] & 0x20) {
  12707. if (!ASN1Enc_EndpointType(ee, &(val)->destinationType))
  12708. return 0;
  12709. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12710. return 0;
  12711. }
  12712. if (o[1] & 0x10) {
  12713. if (!ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ee, &(val)->remoteExtensionAddress))
  12714. return 0;
  12715. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12716. return 0;
  12717. }
  12718. if (o[1] & 0x8) {
  12719. if (!ASN1Enc_AdmissionConfirm_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12720. return 0;
  12721. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12722. return 0;
  12723. }
  12724. if (o[1] & 0x4) {
  12725. if (!ASN1Enc_AdmissionConfirm_tokens(ee, &(val)->tokens))
  12726. return 0;
  12727. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12728. return 0;
  12729. }
  12730. if (o[1] & 0x2) {
  12731. if (!ASN1Enc_AdmissionConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  12732. return 0;
  12733. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12734. return 0;
  12735. }
  12736. if (o[1] & 0x1) {
  12737. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12738. return 0;
  12739. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12740. return 0;
  12741. }
  12742. if (o[2] & 0x80) {
  12743. if (!ASN1Enc_TransportQOS(ee, &(val)->transportQOS))
  12744. return 0;
  12745. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12746. return 0;
  12747. }
  12748. if (o[2] & 0x40) {
  12749. if (!ASN1PEREncBoolean(ee, (val)->willRespondToIRR))
  12750. return 0;
  12751. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12752. return 0;
  12753. }
  12754. if (o[2] & 0x20) {
  12755. if (!ASN1Enc_UUIEsRequested(ee, &(val)->uuiesRequested))
  12756. return 0;
  12757. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12758. return 0;
  12759. }
  12760. ASN1_CloseEncoder2(ee);
  12761. }
  12762. return 1;
  12763. }
  12764. static int ASN1CALL ASN1Dec_AdmissionConfirm(ASN1decoding_t dec, AdmissionConfirm *val)
  12765. {
  12766. ASN1uint32_t y;
  12767. ASN1uint32_t l;
  12768. ASN1decoding_t dd;
  12769. ASN1octet_t *db;
  12770. ASN1uint32_t ds;
  12771. ASN1uint32_t i;
  12772. ASN1uint32_t e;
  12773. if (!ASN1PERDecExtensionBit(dec, &y))
  12774. return 0;
  12775. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  12776. return 0;
  12777. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12778. return 0;
  12779. (val)->requestSeqNum += 1;
  12780. if (!ASN1PERDecU32Val(dec, 2, &l))
  12781. return 0;
  12782. l += 1;
  12783. ASN1PERDecAlignment(dec);
  12784. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  12785. return 0;
  12786. if (!ASN1Dec_CallModel(dec, &(val)->callModel))
  12787. return 0;
  12788. if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
  12789. return 0;
  12790. if ((val)->o[0] & 0x80) {
  12791. if (!ASN1PERDecUnsignedShort(dec, &(val)->irrFrequency))
  12792. return 0;
  12793. (val)->irrFrequency += 1;
  12794. }
  12795. if ((val)->o[0] & 0x40) {
  12796. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12797. return 0;
  12798. }
  12799. if (!y) {
  12800. ZeroMemory((val)->o + 1, 2);
  12801. } else {
  12802. if (!ASN1PERDecNormallySmallExtension(dec, &e, 11, (val)->o + 1))
  12803. return 0;
  12804. if ((val)->o[1] & 0x80) {
  12805. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12806. return 0;
  12807. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12808. return 0;
  12809. if (!ASN1Dec_AdmissionConfirm_destinationInfo(dd, &(val)->destinationInfo))
  12810. return 0;
  12811. ASN1_CloseDecoder(dd);
  12812. ASN1Free(db);
  12813. }
  12814. if ((val)->o[1] & 0x40) {
  12815. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12816. return 0;
  12817. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12818. return 0;
  12819. if (!ASN1Dec_AdmissionConfirm_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
  12820. return 0;
  12821. ASN1_CloseDecoder(dd);
  12822. ASN1Free(db);
  12823. }
  12824. if ((val)->o[1] & 0x20) {
  12825. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12826. return 0;
  12827. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12828. return 0;
  12829. if (!ASN1Dec_EndpointType(dd, &(val)->destinationType))
  12830. return 0;
  12831. ASN1_CloseDecoder(dd);
  12832. ASN1Free(db);
  12833. }
  12834. if ((val)->o[1] & 0x10) {
  12835. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12836. return 0;
  12837. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12838. return 0;
  12839. if (!ASN1Dec_AdmissionConfirm_remoteExtensionAddress(dd, &(val)->remoteExtensionAddress))
  12840. return 0;
  12841. ASN1_CloseDecoder(dd);
  12842. ASN1Free(db);
  12843. }
  12844. if ((val)->o[1] & 0x8) {
  12845. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12846. return 0;
  12847. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12848. return 0;
  12849. if (!ASN1Dec_AdmissionConfirm_alternateEndpoints(dd, &(val)->alternateEndpoints))
  12850. return 0;
  12851. ASN1_CloseDecoder(dd);
  12852. ASN1Free(db);
  12853. }
  12854. if ((val)->o[1] & 0x4) {
  12855. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12856. return 0;
  12857. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12858. return 0;
  12859. if (!ASN1Dec_AdmissionConfirm_tokens(dd, &(val)->tokens))
  12860. return 0;
  12861. ASN1_CloseDecoder(dd);
  12862. ASN1Free(db);
  12863. }
  12864. if ((val)->o[1] & 0x2) {
  12865. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12866. return 0;
  12867. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12868. return 0;
  12869. if (!ASN1Dec_AdmissionConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  12870. return 0;
  12871. ASN1_CloseDecoder(dd);
  12872. ASN1Free(db);
  12873. }
  12874. if ((val)->o[1] & 0x1) {
  12875. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12876. return 0;
  12877. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12878. return 0;
  12879. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  12880. return 0;
  12881. ASN1_CloseDecoder(dd);
  12882. ASN1Free(db);
  12883. }
  12884. if ((val)->o[2] & 0x80) {
  12885. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12886. return 0;
  12887. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12888. return 0;
  12889. if (!ASN1Dec_TransportQOS(dd, &(val)->transportQOS))
  12890. return 0;
  12891. ASN1_CloseDecoder(dd);
  12892. ASN1Free(db);
  12893. }
  12894. if ((val)->o[2] & 0x40) {
  12895. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12896. return 0;
  12897. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12898. return 0;
  12899. if (!ASN1PERDecBoolean(dd, &(val)->willRespondToIRR))
  12900. return 0;
  12901. ASN1_CloseDecoder(dd);
  12902. ASN1Free(db);
  12903. }
  12904. if ((val)->o[2] & 0x20) {
  12905. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12906. return 0;
  12907. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  12908. return 0;
  12909. if (!ASN1Dec_UUIEsRequested(dd, &(val)->uuiesRequested))
  12910. return 0;
  12911. ASN1_CloseDecoder(dd);
  12912. ASN1Free(db);
  12913. }
  12914. for (i = 0; i < e; i++) {
  12915. if (!ASN1PERDecSkipFragmented(dec, 8))
  12916. return 0;
  12917. }
  12918. }
  12919. return 1;
  12920. }
  12921. static void ASN1CALL ASN1Free_AdmissionConfirm(AdmissionConfirm *val)
  12922. {
  12923. if (val) {
  12924. ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
  12925. if ((val)->o[0] & 0x40) {
  12926. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12927. }
  12928. if ((val)->o[1] & 0x80) {
  12929. ASN1Free_AdmissionConfirm_destinationInfo(&(val)->destinationInfo);
  12930. }
  12931. if ((val)->o[1] & 0x40) {
  12932. ASN1Free_AdmissionConfirm_destExtraCallInfo(&(val)->destExtraCallInfo);
  12933. }
  12934. if ((val)->o[1] & 0x20) {
  12935. ASN1Free_EndpointType(&(val)->destinationType);
  12936. }
  12937. if ((val)->o[1] & 0x10) {
  12938. ASN1Free_AdmissionConfirm_remoteExtensionAddress(&(val)->remoteExtensionAddress);
  12939. }
  12940. if ((val)->o[1] & 0x8) {
  12941. ASN1Free_AdmissionConfirm_alternateEndpoints(&(val)->alternateEndpoints);
  12942. }
  12943. if ((val)->o[1] & 0x4) {
  12944. ASN1Free_AdmissionConfirm_tokens(&(val)->tokens);
  12945. }
  12946. if ((val)->o[1] & 0x2) {
  12947. ASN1Free_AdmissionConfirm_cryptoTokens(&(val)->cryptoTokens);
  12948. }
  12949. if ((val)->o[1] & 0x1) {
  12950. ASN1Free_ICV(&(val)->integrityCheckValue);
  12951. }
  12952. }
  12953. }
  12954. static int ASN1CALL ASN1Enc_LocationConfirm(ASN1encoding_t enc, LocationConfirm *val)
  12955. {
  12956. ASN1uint32_t y;
  12957. ASN1encoding_t ee;
  12958. y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
  12959. if (!ASN1PEREncBitVal(enc, 1, y))
  12960. return 0;
  12961. if (!ASN1PEREncBits(enc, 1, (val)->o))
  12962. return 0;
  12963. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12964. return 0;
  12965. if (!ASN1Enc_TransportAddress(enc, &(val)->callSignalAddress))
  12966. return 0;
  12967. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  12968. return 0;
  12969. if ((val)->o[0] & 0x80) {
  12970. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12971. return 0;
  12972. }
  12973. if (y) {
  12974. if (!ASN1PEREncNormallySmallBits(enc, 8, (val)->o + 1))
  12975. return 0;
  12976. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12977. return 0;
  12978. if ((val)->o[1] & 0x80) {
  12979. if (!ASN1Enc_LocationConfirm_destinationInfo(ee, &(val)->destinationInfo))
  12980. return 0;
  12981. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12982. return 0;
  12983. }
  12984. if ((val)->o[1] & 0x40) {
  12985. if (!ASN1Enc_LocationConfirm_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
  12986. return 0;
  12987. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12988. return 0;
  12989. }
  12990. if ((val)->o[1] & 0x20) {
  12991. if (!ASN1Enc_EndpointType(ee, &(val)->destinationType))
  12992. return 0;
  12993. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12994. return 0;
  12995. }
  12996. if ((val)->o[1] & 0x10) {
  12997. if (!ASN1Enc_LocationConfirm_remoteExtensionAddress(ee, &(val)->remoteExtensionAddress))
  12998. return 0;
  12999. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13000. return 0;
  13001. }
  13002. if ((val)->o[1] & 0x8) {
  13003. if (!ASN1Enc_LocationConfirm_alternateEndpoints(ee, &(val)->alternateEndpoints))
  13004. return 0;
  13005. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13006. return 0;
  13007. }
  13008. if ((val)->o[1] & 0x4) {
  13009. if (!ASN1Enc_LocationConfirm_tokens(ee, &(val)->tokens))
  13010. return 0;
  13011. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13012. return 0;
  13013. }
  13014. if ((val)->o[1] & 0x2) {
  13015. if (!ASN1Enc_LocationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  13016. return 0;
  13017. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13018. return 0;
  13019. }
  13020. if ((val)->o[1] & 0x1) {
  13021. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  13022. return 0;
  13023. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13024. return 0;
  13025. }
  13026. ASN1_CloseEncoder2(ee);
  13027. }
  13028. return 1;
  13029. }
  13030. static int ASN1CALL ASN1Dec_LocationConfirm(ASN1decoding_t dec, LocationConfirm *val)
  13031. {
  13032. ASN1uint32_t y;
  13033. ASN1decoding_t dd;
  13034. ASN1octet_t *db;
  13035. ASN1uint32_t ds;
  13036. ASN1uint32_t i;
  13037. ASN1uint32_t e;
  13038. if (!ASN1PERDecExtensionBit(dec, &y))
  13039. return 0;
  13040. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  13041. return 0;
  13042. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  13043. return 0;
  13044. (val)->requestSeqNum += 1;
  13045. if (!ASN1Dec_TransportAddress(dec, &(val)->callSignalAddress))
  13046. return 0;
  13047. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  13048. return 0;
  13049. if ((val)->o[0] & 0x80) {
  13050. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  13051. return 0;
  13052. }
  13053. if (!y) {
  13054. ZeroMemory((val)->o + 1, 1);
  13055. } else {
  13056. if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
  13057. return 0;
  13058. if ((val)->o[1] & 0x80) {
  13059. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13060. return 0;
  13061. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13062. return 0;
  13063. if (!ASN1Dec_LocationConfirm_destinationInfo(dd, &(val)->destinationInfo))
  13064. return 0;
  13065. ASN1_CloseDecoder(dd);
  13066. ASN1Free(db);
  13067. }
  13068. if ((val)->o[1] & 0x40) {
  13069. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13070. return 0;
  13071. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13072. return 0;
  13073. if (!ASN1Dec_LocationConfirm_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
  13074. return 0;
  13075. ASN1_CloseDecoder(dd);
  13076. ASN1Free(db);
  13077. }
  13078. if ((val)->o[1] & 0x20) {
  13079. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13080. return 0;
  13081. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13082. return 0;
  13083. if (!ASN1Dec_EndpointType(dd, &(val)->destinationType))
  13084. return 0;
  13085. ASN1_CloseDecoder(dd);
  13086. ASN1Free(db);
  13087. }
  13088. if ((val)->o[1] & 0x10) {
  13089. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13090. return 0;
  13091. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13092. return 0;
  13093. if (!ASN1Dec_LocationConfirm_remoteExtensionAddress(dd, &(val)->remoteExtensionAddress))
  13094. return 0;
  13095. ASN1_CloseDecoder(dd);
  13096. ASN1Free(db);
  13097. }
  13098. if ((val)->o[1] & 0x8) {
  13099. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13100. return 0;
  13101. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13102. return 0;
  13103. if (!ASN1Dec_LocationConfirm_alternateEndpoints(dd, &(val)->alternateEndpoints))
  13104. return 0;
  13105. ASN1_CloseDecoder(dd);
  13106. ASN1Free(db);
  13107. }
  13108. if ((val)->o[1] & 0x4) {
  13109. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13110. return 0;
  13111. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13112. return 0;
  13113. if (!ASN1Dec_LocationConfirm_tokens(dd, &(val)->tokens))
  13114. return 0;
  13115. ASN1_CloseDecoder(dd);
  13116. ASN1Free(db);
  13117. }
  13118. if ((val)->o[1] & 0x2) {
  13119. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13120. return 0;
  13121. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13122. return 0;
  13123. if (!ASN1Dec_LocationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  13124. return 0;
  13125. ASN1_CloseDecoder(dd);
  13126. ASN1Free(db);
  13127. }
  13128. if ((val)->o[1] & 0x1) {
  13129. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13130. return 0;
  13131. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13132. return 0;
  13133. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  13134. return 0;
  13135. ASN1_CloseDecoder(dd);
  13136. ASN1Free(db);
  13137. }
  13138. for (i = 0; i < e; i++) {
  13139. if (!ASN1PERDecSkipFragmented(dec, 8))
  13140. return 0;
  13141. }
  13142. }
  13143. return 1;
  13144. }
  13145. static void ASN1CALL ASN1Free_LocationConfirm(LocationConfirm *val)
  13146. {
  13147. if (val) {
  13148. ASN1Free_TransportAddress(&(val)->callSignalAddress);
  13149. ASN1Free_TransportAddress(&(val)->rasAddress);
  13150. if ((val)->o[0] & 0x80) {
  13151. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  13152. }
  13153. if ((val)->o[1] & 0x80) {
  13154. ASN1Free_LocationConfirm_destinationInfo(&(val)->destinationInfo);
  13155. }
  13156. if ((val)->o[1] & 0x40) {
  13157. ASN1Free_LocationConfirm_destExtraCallInfo(&(val)->destExtraCallInfo);
  13158. }
  13159. if ((val)->o[1] & 0x20) {
  13160. ASN1Free_EndpointType(&(val)->destinationType);
  13161. }
  13162. if ((val)->o[1] & 0x10) {
  13163. ASN1Free_LocationConfirm_remoteExtensionAddress(&(val)->remoteExtensionAddress);
  13164. }
  13165. if ((val)->o[1] & 0x8) {
  13166. ASN1Free_LocationConfirm_alternateEndpoints(&(val)->alternateEndpoints);
  13167. }
  13168. if ((val)->o[1] & 0x4) {
  13169. ASN1Free_LocationConfirm_tokens(&(val)->tokens);
  13170. }
  13171. if ((val)->o[1] & 0x2) {
  13172. ASN1Free_LocationConfirm_cryptoTokens(&(val)->cryptoTokens);
  13173. }
  13174. if ((val)->o[1] & 0x1) {
  13175. ASN1Free_ICV(&(val)->integrityCheckValue);
  13176. }
  13177. }
  13178. }
  13179. static int ASN1CALL ASN1Enc_InfoRequestResponse(ASN1encoding_t enc, InfoRequestResponse *val)
  13180. {
  13181. ASN1octet_t o[2];
  13182. ASN1uint32_t y;
  13183. ASN1encoding_t ee;
  13184. CopyMemory(o, (val)->o, 2);
  13185. o[1] |= 0x10;
  13186. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  13187. if (!ASN1PEREncBitVal(enc, 1, y))
  13188. return 0;
  13189. if (!ASN1PEREncBits(enc, 3, o))
  13190. return 0;
  13191. if (o[0] & 0x80) {
  13192. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  13193. return 0;
  13194. }
  13195. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  13196. return 0;
  13197. if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
  13198. return 0;
  13199. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  13200. return 0;
  13201. ASN1PEREncAlignment(enc);
  13202. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  13203. return 0;
  13204. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  13205. return 0;
  13206. if (!ASN1Enc_InfoRequestResponse_callSignalAddress(enc, &(val)->callSignalAddress))
  13207. return 0;
  13208. if (o[0] & 0x40) {
  13209. if (!ASN1Enc_InfoRequestResponse_endpointAlias(enc, &(val)->endpointAlias))
  13210. return 0;
  13211. }
  13212. if (o[0] & 0x20) {
  13213. if (!ASN1Enc_InfoRequestResponse_perCallInfo(enc, &(val)->perCallInfo))
  13214. return 0;
  13215. }
  13216. if (y) {
  13217. if (!ASN1PEREncNormallySmallBits(enc, 4, o + 1))
  13218. return 0;
  13219. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  13220. return 0;
  13221. if (o[1] & 0x80) {
  13222. if (!ASN1Enc_InfoRequestResponse_tokens(ee, &(val)->tokens))
  13223. return 0;
  13224. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13225. return 0;
  13226. }
  13227. if (o[1] & 0x40) {
  13228. if (!ASN1Enc_InfoRequestResponse_cryptoTokens(ee, &(val)->cryptoTokens))
  13229. return 0;
  13230. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13231. return 0;
  13232. }
  13233. if (o[1] & 0x20) {
  13234. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  13235. return 0;
  13236. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13237. return 0;
  13238. }
  13239. if (o[1] & 0x10) {
  13240. if (!ASN1PEREncBoolean(ee, (val)->needResponse))
  13241. return 0;
  13242. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13243. return 0;
  13244. }
  13245. ASN1_CloseEncoder2(ee);
  13246. }
  13247. return 1;
  13248. }
  13249. static int ASN1CALL ASN1Dec_InfoRequestResponse(ASN1decoding_t dec, InfoRequestResponse *val)
  13250. {
  13251. ASN1uint32_t y;
  13252. ASN1decoding_t dd;
  13253. ASN1octet_t *db;
  13254. ASN1uint32_t ds;
  13255. ASN1uint32_t i;
  13256. ASN1uint32_t e;
  13257. if (!ASN1PERDecExtensionBit(dec, &y))
  13258. return 0;
  13259. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  13260. return 0;
  13261. if ((val)->o[0] & 0x80) {
  13262. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  13263. return 0;
  13264. }
  13265. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  13266. return 0;
  13267. (val)->requestSeqNum += 1;
  13268. if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
  13269. return 0;
  13270. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  13271. return 0;
  13272. ((val)->endpointIdentifier).length += 1;
  13273. ASN1PERDecAlignment(dec);
  13274. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  13275. return 0;
  13276. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  13277. return 0;
  13278. if (!ASN1Dec_InfoRequestResponse_callSignalAddress(dec, &(val)->callSignalAddress))
  13279. return 0;
  13280. if ((val)->o[0] & 0x40) {
  13281. if (!ASN1Dec_InfoRequestResponse_endpointAlias(dec, &(val)->endpointAlias))
  13282. return 0;
  13283. }
  13284. if ((val)->o[0] & 0x20) {
  13285. if (!ASN1Dec_InfoRequestResponse_perCallInfo(dec, &(val)->perCallInfo))
  13286. return 0;
  13287. }
  13288. if (!y) {
  13289. ZeroMemory((val)->o + 1, 1);
  13290. } else {
  13291. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  13292. return 0;
  13293. if ((val)->o[1] & 0x80) {
  13294. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13295. return 0;
  13296. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13297. return 0;
  13298. if (!ASN1Dec_InfoRequestResponse_tokens(dd, &(val)->tokens))
  13299. return 0;
  13300. ASN1_CloseDecoder(dd);
  13301. ASN1Free(db);
  13302. }
  13303. if ((val)->o[1] & 0x40) {
  13304. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13305. return 0;
  13306. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13307. return 0;
  13308. if (!ASN1Dec_InfoRequestResponse_cryptoTokens(dd, &(val)->cryptoTokens))
  13309. return 0;
  13310. ASN1_CloseDecoder(dd);
  13311. ASN1Free(db);
  13312. }
  13313. if ((val)->o[1] & 0x20) {
  13314. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13315. return 0;
  13316. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13317. return 0;
  13318. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  13319. return 0;
  13320. ASN1_CloseDecoder(dd);
  13321. ASN1Free(db);
  13322. }
  13323. if ((val)->o[1] & 0x10) {
  13324. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13325. return 0;
  13326. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  13327. return 0;
  13328. if (!ASN1PERDecBoolean(dd, &(val)->needResponse))
  13329. return 0;
  13330. ASN1_CloseDecoder(dd);
  13331. ASN1Free(db);
  13332. }
  13333. for (i = 0; i < e; i++) {
  13334. if (!ASN1PERDecSkipFragmented(dec, 8))
  13335. return 0;
  13336. }
  13337. }
  13338. return 1;
  13339. }
  13340. static void ASN1CALL ASN1Free_InfoRequestResponse(InfoRequestResponse *val)
  13341. {
  13342. if (val) {
  13343. if ((val)->o[0] & 0x80) {
  13344. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  13345. }
  13346. ASN1Free_EndpointType(&(val)->endpointType);
  13347. ASN1char16string_free(&(val)->endpointIdentifier);
  13348. ASN1Free_TransportAddress(&(val)->rasAddress);
  13349. ASN1Free_InfoRequestResponse_callSignalAddress(&(val)->callSignalAddress);
  13350. if ((val)->o[0] & 0x40) {
  13351. ASN1Free_InfoRequestResponse_endpointAlias(&(val)->endpointAlias);
  13352. }
  13353. if ((val)->o[0] & 0x20) {
  13354. ASN1Free_InfoRequestResponse_perCallInfo(&(val)->perCallInfo);
  13355. }
  13356. if ((val)->o[1] & 0x80) {
  13357. ASN1Free_InfoRequestResponse_tokens(&(val)->tokens);
  13358. }
  13359. if ((val)->o[1] & 0x40) {
  13360. ASN1Free_InfoRequestResponse_cryptoTokens(&(val)->cryptoTokens);
  13361. }
  13362. if ((val)->o[1] & 0x20) {
  13363. ASN1Free_ICV(&(val)->integrityCheckValue);
  13364. }
  13365. }
  13366. }
  13367. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols *val)
  13368. {
  13369. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_protocols_ElmFn);
  13370. }
  13371. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols val)
  13372. {
  13373. if (!ASN1Enc_SupportedProtocols(enc, &val->value))
  13374. return 0;
  13375. return 1;
  13376. }
  13377. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols *val)
  13378. {
  13379. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_protocols_ElmFn, sizeof(**val));
  13380. }
  13381. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols val)
  13382. {
  13383. if (!ASN1Dec_SupportedProtocols(dec, &val->value))
  13384. return 0;
  13385. return 1;
  13386. }
  13387. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols(PResourcesAvailableIndicate_protocols *val)
  13388. {
  13389. if (val) {
  13390. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_protocols_ElmFn);
  13391. }
  13392. }
  13393. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols_ElmFn(PResourcesAvailableIndicate_protocols val)
  13394. {
  13395. if (val) {
  13396. ASN1Free_SupportedProtocols(&val->value);
  13397. }
  13398. }
  13399. static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias *val)
  13400. {
  13401. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_endpointAlias_ElmFn);
  13402. }
  13403. static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias val)
  13404. {
  13405. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13406. return 0;
  13407. return 1;
  13408. }
  13409. static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias *val)
  13410. {
  13411. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_endpointAlias_ElmFn, sizeof(**val));
  13412. }
  13413. static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias val)
  13414. {
  13415. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13416. return 0;
  13417. return 1;
  13418. }
  13419. static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias(PInfoRequestResponse_endpointAlias *val)
  13420. {
  13421. if (val) {
  13422. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_endpointAlias_ElmFn);
  13423. }
  13424. }
  13425. static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias_ElmFn(PInfoRequestResponse_endpointAlias val)
  13426. {
  13427. if (val) {
  13428. ASN1Free_AliasAddress(&val->value);
  13429. }
  13430. }
  13431. static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints *val)
  13432. {
  13433. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_alternateEndpoints_ElmFn);
  13434. }
  13435. static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints_ElmFn(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints val)
  13436. {
  13437. if (!ASN1Enc_Endpoint(enc, &val->value))
  13438. return 0;
  13439. return 1;
  13440. }
  13441. static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints *val)
  13442. {
  13443. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_alternateEndpoints_ElmFn, sizeof(**val));
  13444. }
  13445. static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints_ElmFn(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints val)
  13446. {
  13447. if (!ASN1Dec_Endpoint(dec, &val->value))
  13448. return 0;
  13449. return 1;
  13450. }
  13451. static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints(PLocationConfirm_alternateEndpoints *val)
  13452. {
  13453. if (val) {
  13454. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_alternateEndpoints_ElmFn);
  13455. }
  13456. }
  13457. static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints_ElmFn(PLocationConfirm_alternateEndpoints val)
  13458. {
  13459. if (val) {
  13460. ASN1Free_Endpoint(&val->value);
  13461. }
  13462. }
  13463. static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress *val)
  13464. {
  13465. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_remoteExtensionAddress_ElmFn);
  13466. }
  13467. static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress val)
  13468. {
  13469. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13470. return 0;
  13471. return 1;
  13472. }
  13473. static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress *val)
  13474. {
  13475. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_remoteExtensionAddress_ElmFn, sizeof(**val));
  13476. }
  13477. static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress val)
  13478. {
  13479. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13480. return 0;
  13481. return 1;
  13482. }
  13483. static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress(PLocationConfirm_remoteExtensionAddress *val)
  13484. {
  13485. if (val) {
  13486. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_remoteExtensionAddress_ElmFn);
  13487. }
  13488. }
  13489. static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress_ElmFn(PLocationConfirm_remoteExtensionAddress val)
  13490. {
  13491. if (val) {
  13492. ASN1Free_AliasAddress(&val->value);
  13493. }
  13494. }
  13495. static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo *val)
  13496. {
  13497. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_destExtraCallInfo_ElmFn);
  13498. }
  13499. static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo val)
  13500. {
  13501. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13502. return 0;
  13503. return 1;
  13504. }
  13505. static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo *val)
  13506. {
  13507. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_destExtraCallInfo_ElmFn, sizeof(**val));
  13508. }
  13509. static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo val)
  13510. {
  13511. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13512. return 0;
  13513. return 1;
  13514. }
  13515. static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo(PLocationConfirm_destExtraCallInfo *val)
  13516. {
  13517. if (val) {
  13518. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_destExtraCallInfo_ElmFn);
  13519. }
  13520. }
  13521. static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo_ElmFn(PLocationConfirm_destExtraCallInfo val)
  13522. {
  13523. if (val) {
  13524. ASN1Free_AliasAddress(&val->value);
  13525. }
  13526. }
  13527. static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo(ASN1encoding_t enc, PLocationConfirm_destinationInfo *val)
  13528. {
  13529. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_destinationInfo_ElmFn);
  13530. }
  13531. static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo_ElmFn(ASN1encoding_t enc, PLocationConfirm_destinationInfo val)
  13532. {
  13533. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13534. return 0;
  13535. return 1;
  13536. }
  13537. static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo(ASN1decoding_t dec, PLocationConfirm_destinationInfo *val)
  13538. {
  13539. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_destinationInfo_ElmFn, sizeof(**val));
  13540. }
  13541. static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo_ElmFn(ASN1decoding_t dec, PLocationConfirm_destinationInfo val)
  13542. {
  13543. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13544. return 0;
  13545. return 1;
  13546. }
  13547. static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo(PLocationConfirm_destinationInfo *val)
  13548. {
  13549. if (val) {
  13550. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_destinationInfo_ElmFn);
  13551. }
  13552. }
  13553. static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo_ElmFn(PLocationConfirm_destinationInfo val)
  13554. {
  13555. if (val) {
  13556. ASN1Free_AliasAddress(&val->value);
  13557. }
  13558. }
  13559. static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo(ASN1encoding_t enc, PLocationRequest_sourceInfo *val)
  13560. {
  13561. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_sourceInfo_ElmFn);
  13562. }
  13563. static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo_ElmFn(ASN1encoding_t enc, PLocationRequest_sourceInfo val)
  13564. {
  13565. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13566. return 0;
  13567. return 1;
  13568. }
  13569. static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo(ASN1decoding_t dec, PLocationRequest_sourceInfo *val)
  13570. {
  13571. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_sourceInfo_ElmFn, sizeof(**val));
  13572. }
  13573. static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo_ElmFn(ASN1decoding_t dec, PLocationRequest_sourceInfo val)
  13574. {
  13575. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13576. return 0;
  13577. return 1;
  13578. }
  13579. static void ASN1CALL ASN1Free_LocationRequest_sourceInfo(PLocationRequest_sourceInfo *val)
  13580. {
  13581. if (val) {
  13582. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_sourceInfo_ElmFn);
  13583. }
  13584. }
  13585. static void ASN1CALL ASN1Free_LocationRequest_sourceInfo_ElmFn(PLocationRequest_sourceInfo val)
  13586. {
  13587. if (val) {
  13588. ASN1Free_AliasAddress(&val->value);
  13589. }
  13590. }
  13591. static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo(ASN1encoding_t enc, PLocationRequest_destinationInfo *val)
  13592. {
  13593. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_destinationInfo_ElmFn);
  13594. }
  13595. static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo_ElmFn(ASN1encoding_t enc, PLocationRequest_destinationInfo val)
  13596. {
  13597. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13598. return 0;
  13599. return 1;
  13600. }
  13601. static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo(ASN1decoding_t dec, PLocationRequest_destinationInfo *val)
  13602. {
  13603. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_destinationInfo_ElmFn, sizeof(**val));
  13604. }
  13605. static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo_ElmFn(ASN1decoding_t dec, PLocationRequest_destinationInfo val)
  13606. {
  13607. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13608. return 0;
  13609. return 1;
  13610. }
  13611. static void ASN1CALL ASN1Free_LocationRequest_destinationInfo(PLocationRequest_destinationInfo *val)
  13612. {
  13613. if (val) {
  13614. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_destinationInfo_ElmFn);
  13615. }
  13616. }
  13617. static void ASN1CALL ASN1Free_LocationRequest_destinationInfo_ElmFn(PLocationRequest_destinationInfo val)
  13618. {
  13619. if (val) {
  13620. ASN1Free_AliasAddress(&val->value);
  13621. }
  13622. }
  13623. static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints *val)
  13624. {
  13625. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_alternateEndpoints_ElmFn);
  13626. }
  13627. static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints val)
  13628. {
  13629. if (!ASN1Enc_Endpoint(enc, &val->value))
  13630. return 0;
  13631. return 1;
  13632. }
  13633. static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints *val)
  13634. {
  13635. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_alternateEndpoints_ElmFn, sizeof(**val));
  13636. }
  13637. static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints val)
  13638. {
  13639. if (!ASN1Dec_Endpoint(dec, &val->value))
  13640. return 0;
  13641. return 1;
  13642. }
  13643. static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints(PAdmissionConfirm_alternateEndpoints *val)
  13644. {
  13645. if (val) {
  13646. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_alternateEndpoints_ElmFn);
  13647. }
  13648. }
  13649. static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints_ElmFn(PAdmissionConfirm_alternateEndpoints val)
  13650. {
  13651. if (val) {
  13652. ASN1Free_Endpoint(&val->value);
  13653. }
  13654. }
  13655. static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress *val)
  13656. {
  13657. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_remoteExtensionAddress_ElmFn);
  13658. }
  13659. static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress val)
  13660. {
  13661. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13662. return 0;
  13663. return 1;
  13664. }
  13665. static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress *val)
  13666. {
  13667. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_remoteExtensionAddress_ElmFn, sizeof(**val));
  13668. }
  13669. static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress val)
  13670. {
  13671. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13672. return 0;
  13673. return 1;
  13674. }
  13675. static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress(PAdmissionConfirm_remoteExtensionAddress *val)
  13676. {
  13677. if (val) {
  13678. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_remoteExtensionAddress_ElmFn);
  13679. }
  13680. }
  13681. static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress_ElmFn(PAdmissionConfirm_remoteExtensionAddress val)
  13682. {
  13683. if (val) {
  13684. ASN1Free_AliasAddress(&val->value);
  13685. }
  13686. }
  13687. static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo *val)
  13688. {
  13689. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_destExtraCallInfo_ElmFn);
  13690. }
  13691. static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo val)
  13692. {
  13693. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13694. return 0;
  13695. return 1;
  13696. }
  13697. static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo *val)
  13698. {
  13699. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_destExtraCallInfo_ElmFn, sizeof(**val));
  13700. }
  13701. static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo val)
  13702. {
  13703. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13704. return 0;
  13705. return 1;
  13706. }
  13707. static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo(PAdmissionConfirm_destExtraCallInfo *val)
  13708. {
  13709. if (val) {
  13710. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_destExtraCallInfo_ElmFn);
  13711. }
  13712. }
  13713. static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo_ElmFn(PAdmissionConfirm_destExtraCallInfo val)
  13714. {
  13715. if (val) {
  13716. ASN1Free_AliasAddress(&val->value);
  13717. }
  13718. }
  13719. static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo *val)
  13720. {
  13721. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_destinationInfo_ElmFn);
  13722. }
  13723. static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo val)
  13724. {
  13725. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13726. return 0;
  13727. return 1;
  13728. }
  13729. static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo *val)
  13730. {
  13731. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_destinationInfo_ElmFn, sizeof(**val));
  13732. }
  13733. static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo val)
  13734. {
  13735. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13736. return 0;
  13737. return 1;
  13738. }
  13739. static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo(PAdmissionConfirm_destinationInfo *val)
  13740. {
  13741. if (val) {
  13742. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_destinationInfo_ElmFn);
  13743. }
  13744. }
  13745. static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo_ElmFn(PAdmissionConfirm_destinationInfo val)
  13746. {
  13747. if (val) {
  13748. ASN1Free_AliasAddress(&val->value);
  13749. }
  13750. }
  13751. static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives(ASN1encoding_t enc, PAdmissionRequest_destAlternatives *val)
  13752. {
  13753. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destAlternatives_ElmFn);
  13754. }
  13755. static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destAlternatives val)
  13756. {
  13757. if (!ASN1Enc_Endpoint(enc, &val->value))
  13758. return 0;
  13759. return 1;
  13760. }
  13761. static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives(ASN1decoding_t dec, PAdmissionRequest_destAlternatives *val)
  13762. {
  13763. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destAlternatives_ElmFn, sizeof(**val));
  13764. }
  13765. static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destAlternatives val)
  13766. {
  13767. if (!ASN1Dec_Endpoint(dec, &val->value))
  13768. return 0;
  13769. return 1;
  13770. }
  13771. static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives(PAdmissionRequest_destAlternatives *val)
  13772. {
  13773. if (val) {
  13774. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destAlternatives_ElmFn);
  13775. }
  13776. }
  13777. static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives_ElmFn(PAdmissionRequest_destAlternatives val)
  13778. {
  13779. if (val) {
  13780. ASN1Free_Endpoint(&val->value);
  13781. }
  13782. }
  13783. static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives *val)
  13784. {
  13785. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_srcAlternatives_ElmFn);
  13786. }
  13787. static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives_ElmFn(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives val)
  13788. {
  13789. if (!ASN1Enc_Endpoint(enc, &val->value))
  13790. return 0;
  13791. return 1;
  13792. }
  13793. static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives *val)
  13794. {
  13795. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_srcAlternatives_ElmFn, sizeof(**val));
  13796. }
  13797. static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives_ElmFn(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives val)
  13798. {
  13799. if (!ASN1Dec_Endpoint(dec, &val->value))
  13800. return 0;
  13801. return 1;
  13802. }
  13803. static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives(PAdmissionRequest_srcAlternatives *val)
  13804. {
  13805. if (val) {
  13806. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_srcAlternatives_ElmFn);
  13807. }
  13808. }
  13809. static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives_ElmFn(PAdmissionRequest_srcAlternatives val)
  13810. {
  13811. if (val) {
  13812. ASN1Free_Endpoint(&val->value);
  13813. }
  13814. }
  13815. static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo(ASN1encoding_t enc, PAdmissionRequest_srcInfo *val)
  13816. {
  13817. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_srcInfo_ElmFn);
  13818. }
  13819. static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_srcInfo val)
  13820. {
  13821. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13822. return 0;
  13823. return 1;
  13824. }
  13825. static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo(ASN1decoding_t dec, PAdmissionRequest_srcInfo *val)
  13826. {
  13827. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_srcInfo_ElmFn, sizeof(**val));
  13828. }
  13829. static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_srcInfo val)
  13830. {
  13831. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13832. return 0;
  13833. return 1;
  13834. }
  13835. static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo(PAdmissionRequest_srcInfo *val)
  13836. {
  13837. if (val) {
  13838. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_srcInfo_ElmFn);
  13839. }
  13840. }
  13841. static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo_ElmFn(PAdmissionRequest_srcInfo val)
  13842. {
  13843. if (val) {
  13844. ASN1Free_AliasAddress(&val->value);
  13845. }
  13846. }
  13847. static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo *val)
  13848. {
  13849. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destExtraCallInfo_ElmFn);
  13850. }
  13851. static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo val)
  13852. {
  13853. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13854. return 0;
  13855. return 1;
  13856. }
  13857. static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo *val)
  13858. {
  13859. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destExtraCallInfo_ElmFn, sizeof(**val));
  13860. }
  13861. static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo val)
  13862. {
  13863. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13864. return 0;
  13865. return 1;
  13866. }
  13867. static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo(PAdmissionRequest_destExtraCallInfo *val)
  13868. {
  13869. if (val) {
  13870. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destExtraCallInfo_ElmFn);
  13871. }
  13872. }
  13873. static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo_ElmFn(PAdmissionRequest_destExtraCallInfo val)
  13874. {
  13875. if (val) {
  13876. ASN1Free_AliasAddress(&val->value);
  13877. }
  13878. }
  13879. static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo(ASN1encoding_t enc, PAdmissionRequest_destinationInfo *val)
  13880. {
  13881. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destinationInfo_ElmFn);
  13882. }
  13883. static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destinationInfo val)
  13884. {
  13885. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13886. return 0;
  13887. return 1;
  13888. }
  13889. static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo(ASN1decoding_t dec, PAdmissionRequest_destinationInfo *val)
  13890. {
  13891. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destinationInfo_ElmFn, sizeof(**val));
  13892. }
  13893. static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destinationInfo val)
  13894. {
  13895. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13896. return 0;
  13897. return 1;
  13898. }
  13899. static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo(PAdmissionRequest_destinationInfo *val)
  13900. {
  13901. if (val) {
  13902. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destinationInfo_ElmFn);
  13903. }
  13904. }
  13905. static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo_ElmFn(PAdmissionRequest_destinationInfo val)
  13906. {
  13907. if (val) {
  13908. ASN1Free_AliasAddress(&val->value);
  13909. }
  13910. }
  13911. static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints *val)
  13912. {
  13913. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_alternateEndpoints_ElmFn);
  13914. }
  13915. static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints val)
  13916. {
  13917. if (!ASN1Enc_Endpoint(enc, &val->value))
  13918. return 0;
  13919. return 1;
  13920. }
  13921. static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints *val)
  13922. {
  13923. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_alternateEndpoints_ElmFn, sizeof(**val));
  13924. }
  13925. static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints val)
  13926. {
  13927. if (!ASN1Dec_Endpoint(dec, &val->value))
  13928. return 0;
  13929. return 1;
  13930. }
  13931. static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints(PUnregistrationRequest_alternateEndpoints *val)
  13932. {
  13933. if (val) {
  13934. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_alternateEndpoints_ElmFn);
  13935. }
  13936. }
  13937. static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints_ElmFn(PUnregistrationRequest_alternateEndpoints val)
  13938. {
  13939. if (val) {
  13940. ASN1Free_Endpoint(&val->value);
  13941. }
  13942. }
  13943. static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias *val)
  13944. {
  13945. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_endpointAlias_ElmFn);
  13946. }
  13947. static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias val)
  13948. {
  13949. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13950. return 0;
  13951. return 1;
  13952. }
  13953. static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias *val)
  13954. {
  13955. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_endpointAlias_ElmFn, sizeof(**val));
  13956. }
  13957. static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias val)
  13958. {
  13959. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13960. return 0;
  13961. return 1;
  13962. }
  13963. static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias(PUnregistrationRequest_endpointAlias *val)
  13964. {
  13965. if (val) {
  13966. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_endpointAlias_ElmFn);
  13967. }
  13968. }
  13969. static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias_ElmFn(PUnregistrationRequest_endpointAlias val)
  13970. {
  13971. if (val) {
  13972. ASN1Free_AliasAddress(&val->value);
  13973. }
  13974. }
  13975. static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias *val)
  13976. {
  13977. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRejectReason_duplicateAlias_ElmFn);
  13978. }
  13979. static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias_ElmFn(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias val)
  13980. {
  13981. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13982. return 0;
  13983. return 1;
  13984. }
  13985. static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias *val)
  13986. {
  13987. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRejectReason_duplicateAlias_ElmFn, sizeof(**val));
  13988. }
  13989. static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias_ElmFn(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias val)
  13990. {
  13991. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13992. return 0;
  13993. return 1;
  13994. }
  13995. static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias(PRegistrationRejectReason_duplicateAlias *val)
  13996. {
  13997. if (val) {
  13998. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRejectReason_duplicateAlias_ElmFn);
  13999. }
  14000. }
  14001. static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias_ElmFn(PRegistrationRejectReason_duplicateAlias val)
  14002. {
  14003. if (val) {
  14004. ASN1Free_AliasAddress(&val->value);
  14005. }
  14006. }
  14007. static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias *val)
  14008. {
  14009. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_terminalAlias_ElmFn);
  14010. }
  14011. static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias val)
  14012. {
  14013. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14014. return 0;
  14015. return 1;
  14016. }
  14017. static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias *val)
  14018. {
  14019. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_terminalAlias_ElmFn, sizeof(**val));
  14020. }
  14021. static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias val)
  14022. {
  14023. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14024. return 0;
  14025. return 1;
  14026. }
  14027. static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias(PRegistrationConfirm_terminalAlias *val)
  14028. {
  14029. if (val) {
  14030. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_terminalAlias_ElmFn);
  14031. }
  14032. }
  14033. static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias_ElmFn(PRegistrationConfirm_terminalAlias val)
  14034. {
  14035. if (val) {
  14036. ASN1Free_AliasAddress(&val->value);
  14037. }
  14038. }
  14039. static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints *val)
  14040. {
  14041. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_alternateEndpoints_ElmFn);
  14042. }
  14043. static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints val)
  14044. {
  14045. if (!ASN1Enc_Endpoint(enc, &val->value))
  14046. return 0;
  14047. return 1;
  14048. }
  14049. static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints *val)
  14050. {
  14051. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_alternateEndpoints_ElmFn, sizeof(**val));
  14052. }
  14053. static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints val)
  14054. {
  14055. if (!ASN1Dec_Endpoint(dec, &val->value))
  14056. return 0;
  14057. return 1;
  14058. }
  14059. static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints(PRegistrationRequest_alternateEndpoints *val)
  14060. {
  14061. if (val) {
  14062. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_alternateEndpoints_ElmFn);
  14063. }
  14064. }
  14065. static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints_ElmFn(PRegistrationRequest_alternateEndpoints val)
  14066. {
  14067. if (val) {
  14068. ASN1Free_Endpoint(&val->value);
  14069. }
  14070. }
  14071. static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias(ASN1encoding_t enc, PRegistrationRequest_terminalAlias *val)
  14072. {
  14073. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_terminalAlias_ElmFn);
  14074. }
  14075. static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias_ElmFn(ASN1encoding_t enc, PRegistrationRequest_terminalAlias val)
  14076. {
  14077. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14078. return 0;
  14079. return 1;
  14080. }
  14081. static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias(ASN1decoding_t dec, PRegistrationRequest_terminalAlias *val)
  14082. {
  14083. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_terminalAlias_ElmFn, sizeof(**val));
  14084. }
  14085. static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias_ElmFn(ASN1decoding_t dec, PRegistrationRequest_terminalAlias val)
  14086. {
  14087. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14088. return 0;
  14089. return 1;
  14090. }
  14091. static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias(PRegistrationRequest_terminalAlias *val)
  14092. {
  14093. if (val) {
  14094. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_terminalAlias_ElmFn);
  14095. }
  14096. }
  14097. static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias_ElmFn(PRegistrationRequest_terminalAlias val)
  14098. {
  14099. if (val) {
  14100. ASN1Free_AliasAddress(&val->value);
  14101. }
  14102. }
  14103. static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints *val)
  14104. {
  14105. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_alternateEndpoints_ElmFn);
  14106. }
  14107. static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints val)
  14108. {
  14109. if (!ASN1Enc_Endpoint(enc, &val->value))
  14110. return 0;
  14111. return 1;
  14112. }
  14113. static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints *val)
  14114. {
  14115. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_alternateEndpoints_ElmFn, sizeof(**val));
  14116. }
  14117. static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints val)
  14118. {
  14119. if (!ASN1Dec_Endpoint(dec, &val->value))
  14120. return 0;
  14121. return 1;
  14122. }
  14123. static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints(PGatekeeperRequest_alternateEndpoints *val)
  14124. {
  14125. if (val) {
  14126. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_alternateEndpoints_ElmFn);
  14127. }
  14128. }
  14129. static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints_ElmFn(PGatekeeperRequest_alternateEndpoints val)
  14130. {
  14131. if (val) {
  14132. ASN1Free_Endpoint(&val->value);
  14133. }
  14134. }
  14135. static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias *val)
  14136. {
  14137. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_endpointAlias_ElmFn);
  14138. }
  14139. static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias val)
  14140. {
  14141. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14142. return 0;
  14143. return 1;
  14144. }
  14145. static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias *val)
  14146. {
  14147. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_endpointAlias_ElmFn, sizeof(**val));
  14148. }
  14149. static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias val)
  14150. {
  14151. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14152. return 0;
  14153. return 1;
  14154. }
  14155. static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias(PGatekeeperRequest_endpointAlias *val)
  14156. {
  14157. if (val) {
  14158. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_endpointAlias_ElmFn);
  14159. }
  14160. }
  14161. static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias_ElmFn(PGatekeeperRequest_endpointAlias val)
  14162. {
  14163. if (val) {
  14164. ASN1Free_AliasAddress(&val->value);
  14165. }
  14166. }
  14167. static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoEPPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoEPPwdHash *val)
  14168. {
  14169. ASN1uint32_t l;
  14170. if (!ASN1Enc_AliasAddress(enc, &(val)->alias))
  14171. return 0;
  14172. l = ASN1uint32_uoctets((val)->timeStamp - 1);
  14173. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  14174. return 0;
  14175. ASN1PEREncAlignment(enc);
  14176. if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
  14177. return 0;
  14178. if (!ASN1Enc_HASHED(enc, &(val)->token))
  14179. return 0;
  14180. return 1;
  14181. }
  14182. static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoEPPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoEPPwdHash *val)
  14183. {
  14184. ASN1uint32_t l;
  14185. if (!ASN1Dec_AliasAddress(dec, &(val)->alias))
  14186. return 0;
  14187. if (!ASN1PERDecU32Val(dec, 2, &l))
  14188. return 0;
  14189. l += 1;
  14190. ASN1PERDecAlignment(dec);
  14191. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
  14192. return 0;
  14193. (val)->timeStamp += 1;
  14194. if (!ASN1Dec_HASHED(dec, &(val)->token))
  14195. return 0;
  14196. return 1;
  14197. }
  14198. static void ASN1CALL ASN1Free_CryptoH323Token_cryptoEPPwdHash(CryptoH323Token_cryptoEPPwdHash *val)
  14199. {
  14200. if (val) {
  14201. ASN1Free_AliasAddress(&(val)->alias);
  14202. ASN1Free_HASHED(&(val)->token);
  14203. }
  14204. }
  14205. static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo(ASN1encoding_t enc, PEndpoint_destExtraCallInfo *val)
  14206. {
  14207. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_destExtraCallInfo_ElmFn);
  14208. }
  14209. static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PEndpoint_destExtraCallInfo val)
  14210. {
  14211. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14212. return 0;
  14213. return 1;
  14214. }
  14215. static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo(ASN1decoding_t dec, PEndpoint_destExtraCallInfo *val)
  14216. {
  14217. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_destExtraCallInfo_ElmFn, sizeof(**val));
  14218. }
  14219. static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PEndpoint_destExtraCallInfo val)
  14220. {
  14221. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14222. return 0;
  14223. return 1;
  14224. }
  14225. static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo(PEndpoint_destExtraCallInfo *val)
  14226. {
  14227. if (val) {
  14228. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_destExtraCallInfo_ElmFn);
  14229. }
  14230. }
  14231. static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo_ElmFn(PEndpoint_destExtraCallInfo val)
  14232. {
  14233. if (val) {
  14234. ASN1Free_AliasAddress(&val->value);
  14235. }
  14236. }
  14237. static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress *val)
  14238. {
  14239. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_remoteExtensionAddress_ElmFn);
  14240. }
  14241. static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress val)
  14242. {
  14243. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14244. return 0;
  14245. return 1;
  14246. }
  14247. static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress *val)
  14248. {
  14249. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_remoteExtensionAddress_ElmFn, sizeof(**val));
  14250. }
  14251. static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress val)
  14252. {
  14253. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14254. return 0;
  14255. return 1;
  14256. }
  14257. static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress(PEndpoint_remoteExtensionAddress *val)
  14258. {
  14259. if (val) {
  14260. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_remoteExtensionAddress_ElmFn);
  14261. }
  14262. }
  14263. static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress_ElmFn(PEndpoint_remoteExtensionAddress val)
  14264. {
  14265. if (val) {
  14266. ASN1Free_AliasAddress(&val->value);
  14267. }
  14268. }
  14269. static int ASN1CALL ASN1Enc_Endpoint_aliasAddress(ASN1encoding_t enc, PEndpoint_aliasAddress *val)
  14270. {
  14271. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_aliasAddress_ElmFn);
  14272. }
  14273. static int ASN1CALL ASN1Enc_Endpoint_aliasAddress_ElmFn(ASN1encoding_t enc, PEndpoint_aliasAddress val)
  14274. {
  14275. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14276. return 0;
  14277. return 1;
  14278. }
  14279. static int ASN1CALL ASN1Dec_Endpoint_aliasAddress(ASN1decoding_t dec, PEndpoint_aliasAddress *val)
  14280. {
  14281. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_aliasAddress_ElmFn, sizeof(**val));
  14282. }
  14283. static int ASN1CALL ASN1Dec_Endpoint_aliasAddress_ElmFn(ASN1decoding_t dec, PEndpoint_aliasAddress val)
  14284. {
  14285. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14286. return 0;
  14287. return 1;
  14288. }
  14289. static void ASN1CALL ASN1Free_Endpoint_aliasAddress(PEndpoint_aliasAddress *val)
  14290. {
  14291. if (val) {
  14292. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_aliasAddress_ElmFn);
  14293. }
  14294. }
  14295. static void ASN1CALL ASN1Free_Endpoint_aliasAddress_ElmFn(PEndpoint_aliasAddress val)
  14296. {
  14297. if (val) {
  14298. ASN1Free_AliasAddress(&val->value);
  14299. }
  14300. }
  14301. static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes *val)
  14302. {
  14303. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_NonStandardProtocol_supportedPrefixes_ElmFn);
  14304. }
  14305. static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes_ElmFn(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes val)
  14306. {
  14307. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14308. return 0;
  14309. return 1;
  14310. }
  14311. static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes *val)
  14312. {
  14313. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_NonStandardProtocol_supportedPrefixes_ElmFn, sizeof(**val));
  14314. }
  14315. static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes_ElmFn(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes val)
  14316. {
  14317. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14318. return 0;
  14319. return 1;
  14320. }
  14321. static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes(PNonStandardProtocol_supportedPrefixes *val)
  14322. {
  14323. if (val) {
  14324. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_NonStandardProtocol_supportedPrefixes_ElmFn);
  14325. }
  14326. }
  14327. static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes_ElmFn(PNonStandardProtocol_supportedPrefixes val)
  14328. {
  14329. if (val) {
  14330. ASN1Free_SupportedPrefix(&val->value);
  14331. }
  14332. }
  14333. static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes *val)
  14334. {
  14335. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_T120OnlyCaps_supportedPrefixes_ElmFn);
  14336. }
  14337. static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes val)
  14338. {
  14339. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14340. return 0;
  14341. return 1;
  14342. }
  14343. static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes *val)
  14344. {
  14345. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_T120OnlyCaps_supportedPrefixes_ElmFn, sizeof(**val));
  14346. }
  14347. static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes val)
  14348. {
  14349. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14350. return 0;
  14351. return 1;
  14352. }
  14353. static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes(PT120OnlyCaps_supportedPrefixes *val)
  14354. {
  14355. if (val) {
  14356. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_T120OnlyCaps_supportedPrefixes_ElmFn);
  14357. }
  14358. }
  14359. static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes_ElmFn(PT120OnlyCaps_supportedPrefixes val)
  14360. {
  14361. if (val) {
  14362. ASN1Free_SupportedPrefix(&val->value);
  14363. }
  14364. }
  14365. static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes *val)
  14366. {
  14367. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_VoiceCaps_supportedPrefixes_ElmFn);
  14368. }
  14369. static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes val)
  14370. {
  14371. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14372. return 0;
  14373. return 1;
  14374. }
  14375. static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes *val)
  14376. {
  14377. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_VoiceCaps_supportedPrefixes_ElmFn, sizeof(**val));
  14378. }
  14379. static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes val)
  14380. {
  14381. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14382. return 0;
  14383. return 1;
  14384. }
  14385. static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes(PVoiceCaps_supportedPrefixes *val)
  14386. {
  14387. if (val) {
  14388. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_VoiceCaps_supportedPrefixes_ElmFn);
  14389. }
  14390. }
  14391. static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes_ElmFn(PVoiceCaps_supportedPrefixes val)
  14392. {
  14393. if (val) {
  14394. ASN1Free_SupportedPrefix(&val->value);
  14395. }
  14396. }
  14397. static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes(ASN1encoding_t enc, PH324Caps_supportedPrefixes *val)
  14398. {
  14399. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H324Caps_supportedPrefixes_ElmFn);
  14400. }
  14401. static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH324Caps_supportedPrefixes val)
  14402. {
  14403. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14404. return 0;
  14405. return 1;
  14406. }
  14407. static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes(ASN1decoding_t dec, PH324Caps_supportedPrefixes *val)
  14408. {
  14409. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H324Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14410. }
  14411. static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH324Caps_supportedPrefixes val)
  14412. {
  14413. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14414. return 0;
  14415. return 1;
  14416. }
  14417. static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes(PH324Caps_supportedPrefixes *val)
  14418. {
  14419. if (val) {
  14420. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H324Caps_supportedPrefixes_ElmFn);
  14421. }
  14422. }
  14423. static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes_ElmFn(PH324Caps_supportedPrefixes val)
  14424. {
  14425. if (val) {
  14426. ASN1Free_SupportedPrefix(&val->value);
  14427. }
  14428. }
  14429. static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes(ASN1encoding_t enc, PH323Caps_supportedPrefixes *val)
  14430. {
  14431. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323Caps_supportedPrefixes_ElmFn);
  14432. }
  14433. static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH323Caps_supportedPrefixes val)
  14434. {
  14435. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14436. return 0;
  14437. return 1;
  14438. }
  14439. static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes(ASN1decoding_t dec, PH323Caps_supportedPrefixes *val)
  14440. {
  14441. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14442. }
  14443. static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH323Caps_supportedPrefixes val)
  14444. {
  14445. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14446. return 0;
  14447. return 1;
  14448. }
  14449. static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes(PH323Caps_supportedPrefixes *val)
  14450. {
  14451. if (val) {
  14452. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323Caps_supportedPrefixes_ElmFn);
  14453. }
  14454. }
  14455. static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes_ElmFn(PH323Caps_supportedPrefixes val)
  14456. {
  14457. if (val) {
  14458. ASN1Free_SupportedPrefix(&val->value);
  14459. }
  14460. }
  14461. static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes(ASN1encoding_t enc, PH322Caps_supportedPrefixes *val)
  14462. {
  14463. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H322Caps_supportedPrefixes_ElmFn);
  14464. }
  14465. static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH322Caps_supportedPrefixes val)
  14466. {
  14467. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14468. return 0;
  14469. return 1;
  14470. }
  14471. static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes(ASN1decoding_t dec, PH322Caps_supportedPrefixes *val)
  14472. {
  14473. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H322Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14474. }
  14475. static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH322Caps_supportedPrefixes val)
  14476. {
  14477. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14478. return 0;
  14479. return 1;
  14480. }
  14481. static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes(PH322Caps_supportedPrefixes *val)
  14482. {
  14483. if (val) {
  14484. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H322Caps_supportedPrefixes_ElmFn);
  14485. }
  14486. }
  14487. static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes_ElmFn(PH322Caps_supportedPrefixes val)
  14488. {
  14489. if (val) {
  14490. ASN1Free_SupportedPrefix(&val->value);
  14491. }
  14492. }
  14493. static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes(ASN1encoding_t enc, PH321Caps_supportedPrefixes *val)
  14494. {
  14495. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H321Caps_supportedPrefixes_ElmFn);
  14496. }
  14497. static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH321Caps_supportedPrefixes val)
  14498. {
  14499. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14500. return 0;
  14501. return 1;
  14502. }
  14503. static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes(ASN1decoding_t dec, PH321Caps_supportedPrefixes *val)
  14504. {
  14505. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H321Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14506. }
  14507. static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH321Caps_supportedPrefixes val)
  14508. {
  14509. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14510. return 0;
  14511. return 1;
  14512. }
  14513. static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes(PH321Caps_supportedPrefixes *val)
  14514. {
  14515. if (val) {
  14516. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H321Caps_supportedPrefixes_ElmFn);
  14517. }
  14518. }
  14519. static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes_ElmFn(PH321Caps_supportedPrefixes val)
  14520. {
  14521. if (val) {
  14522. ASN1Free_SupportedPrefix(&val->value);
  14523. }
  14524. }
  14525. static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes(ASN1encoding_t enc, PH320Caps_supportedPrefixes *val)
  14526. {
  14527. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H320Caps_supportedPrefixes_ElmFn);
  14528. }
  14529. static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH320Caps_supportedPrefixes val)
  14530. {
  14531. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14532. return 0;
  14533. return 1;
  14534. }
  14535. static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes(ASN1decoding_t dec, PH320Caps_supportedPrefixes *val)
  14536. {
  14537. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H320Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14538. }
  14539. static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH320Caps_supportedPrefixes val)
  14540. {
  14541. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14542. return 0;
  14543. return 1;
  14544. }
  14545. static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes(PH320Caps_supportedPrefixes *val)
  14546. {
  14547. if (val) {
  14548. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H320Caps_supportedPrefixes_ElmFn);
  14549. }
  14550. }
  14551. static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes_ElmFn(PH320Caps_supportedPrefixes val)
  14552. {
  14553. if (val) {
  14554. ASN1Free_SupportedPrefix(&val->value);
  14555. }
  14556. }
  14557. static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes(ASN1encoding_t enc, PH310Caps_supportedPrefixes *val)
  14558. {
  14559. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H310Caps_supportedPrefixes_ElmFn);
  14560. }
  14561. static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH310Caps_supportedPrefixes val)
  14562. {
  14563. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14564. return 0;
  14565. return 1;
  14566. }
  14567. static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes(ASN1decoding_t dec, PH310Caps_supportedPrefixes *val)
  14568. {
  14569. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H310Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14570. }
  14571. static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH310Caps_supportedPrefixes val)
  14572. {
  14573. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14574. return 0;
  14575. return 1;
  14576. }
  14577. static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes(PH310Caps_supportedPrefixes *val)
  14578. {
  14579. if (val) {
  14580. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H310Caps_supportedPrefixes_ElmFn);
  14581. }
  14582. }
  14583. static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes_ElmFn(PH310Caps_supportedPrefixes val)
  14584. {
  14585. if (val) {
  14586. ASN1Free_SupportedPrefix(&val->value);
  14587. }
  14588. }
  14589. static int ASN1CALL ASN1Enc_GatewayInfo_protocol(ASN1encoding_t enc, PGatewayInfo_protocol *val)
  14590. {
  14591. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatewayInfo_protocol_ElmFn);
  14592. }
  14593. static int ASN1CALL ASN1Enc_GatewayInfo_protocol_ElmFn(ASN1encoding_t enc, PGatewayInfo_protocol val)
  14594. {
  14595. if (!ASN1Enc_SupportedProtocols(enc, &val->value))
  14596. return 0;
  14597. return 1;
  14598. }
  14599. static int ASN1CALL ASN1Dec_GatewayInfo_protocol(ASN1decoding_t dec, PGatewayInfo_protocol *val)
  14600. {
  14601. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatewayInfo_protocol_ElmFn, sizeof(**val));
  14602. }
  14603. static int ASN1CALL ASN1Dec_GatewayInfo_protocol_ElmFn(ASN1decoding_t dec, PGatewayInfo_protocol val)
  14604. {
  14605. if (!ASN1Dec_SupportedProtocols(dec, &val->value))
  14606. return 0;
  14607. return 1;
  14608. }
  14609. static void ASN1CALL ASN1Free_GatewayInfo_protocol(PGatewayInfo_protocol *val)
  14610. {
  14611. if (val) {
  14612. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatewayInfo_protocol_ElmFn);
  14613. }
  14614. }
  14615. static void ASN1CALL ASN1Free_GatewayInfo_protocol_ElmFn(PGatewayInfo_protocol val)
  14616. {
  14617. if (val) {
  14618. ASN1Free_SupportedProtocols(&val->value);
  14619. }
  14620. }
  14621. static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo *val)
  14622. {
  14623. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_destExtraCallInfo_ElmFn);
  14624. }
  14625. static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo val)
  14626. {
  14627. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14628. return 0;
  14629. return 1;
  14630. }
  14631. static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo *val)
  14632. {
  14633. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_destExtraCallInfo_ElmFn, sizeof(**val));
  14634. }
  14635. static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo val)
  14636. {
  14637. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14638. return 0;
  14639. return 1;
  14640. }
  14641. static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo(PFacility_UUIE_destExtraCallInfo *val)
  14642. {
  14643. if (val) {
  14644. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_destExtraCallInfo_ElmFn);
  14645. }
  14646. }
  14647. static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo_ElmFn(PFacility_UUIE_destExtraCallInfo val)
  14648. {
  14649. if (val) {
  14650. ASN1Free_AliasAddress(&val->value);
  14651. }
  14652. }
  14653. static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress *val)
  14654. {
  14655. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_alternativeAliasAddress_ElmFn);
  14656. }
  14657. static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress_ElmFn(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress val)
  14658. {
  14659. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14660. return 0;
  14661. return 1;
  14662. }
  14663. static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress *val)
  14664. {
  14665. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_alternativeAliasAddress_ElmFn, sizeof(**val));
  14666. }
  14667. static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress_ElmFn(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress val)
  14668. {
  14669. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14670. return 0;
  14671. return 1;
  14672. }
  14673. static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress(PFacility_UUIE_alternativeAliasAddress *val)
  14674. {
  14675. if (val) {
  14676. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_alternativeAliasAddress_ElmFn);
  14677. }
  14678. }
  14679. static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress_ElmFn(PFacility_UUIE_alternativeAliasAddress val)
  14680. {
  14681. if (val) {
  14682. ASN1Free_AliasAddress(&val->value);
  14683. }
  14684. }
  14685. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo *val)
  14686. {
  14687. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destExtraCallInfo_ElmFn);
  14688. }
  14689. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo val)
  14690. {
  14691. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14692. return 0;
  14693. return 1;
  14694. }
  14695. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo *val)
  14696. {
  14697. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destExtraCallInfo_ElmFn, sizeof(**val));
  14698. }
  14699. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo val)
  14700. {
  14701. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14702. return 0;
  14703. return 1;
  14704. }
  14705. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo(PSetup_UUIE_destExtraCallInfo *val)
  14706. {
  14707. if (val) {
  14708. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destExtraCallInfo_ElmFn);
  14709. }
  14710. }
  14711. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo_ElmFn(PSetup_UUIE_destExtraCallInfo val)
  14712. {
  14713. if (val) {
  14714. ASN1Free_AliasAddress(&val->value);
  14715. }
  14716. }
  14717. static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress(ASN1encoding_t enc, PSetup_UUIE_destinationAddress *val)
  14718. {
  14719. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destinationAddress_ElmFn);
  14720. }
  14721. static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destinationAddress val)
  14722. {
  14723. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14724. return 0;
  14725. return 1;
  14726. }
  14727. static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress(ASN1decoding_t dec, PSetup_UUIE_destinationAddress *val)
  14728. {
  14729. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destinationAddress_ElmFn, sizeof(**val));
  14730. }
  14731. static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destinationAddress val)
  14732. {
  14733. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14734. return 0;
  14735. return 1;
  14736. }
  14737. static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress(PSetup_UUIE_destinationAddress *val)
  14738. {
  14739. if (val) {
  14740. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destinationAddress_ElmFn);
  14741. }
  14742. }
  14743. static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress_ElmFn(PSetup_UUIE_destinationAddress val)
  14744. {
  14745. if (val) {
  14746. ASN1Free_AliasAddress(&val->value);
  14747. }
  14748. }
  14749. static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress(ASN1encoding_t enc, PSetup_UUIE_sourceAddress *val)
  14750. {
  14751. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_sourceAddress_ElmFn);
  14752. }
  14753. static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress_ElmFn(ASN1encoding_t enc, PSetup_UUIE_sourceAddress val)
  14754. {
  14755. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14756. return 0;
  14757. return 1;
  14758. }
  14759. static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress(ASN1decoding_t dec, PSetup_UUIE_sourceAddress *val)
  14760. {
  14761. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_sourceAddress_ElmFn, sizeof(**val));
  14762. }
  14763. static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress_ElmFn(ASN1decoding_t dec, PSetup_UUIE_sourceAddress val)
  14764. {
  14765. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14766. return 0;
  14767. return 1;
  14768. }
  14769. static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress(PSetup_UUIE_sourceAddress *val)
  14770. {
  14771. if (val) {
  14772. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_sourceAddress_ElmFn);
  14773. }
  14774. }
  14775. static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress_ElmFn(PSetup_UUIE_sourceAddress val)
  14776. {
  14777. if (val) {
  14778. ASN1Free_AliasAddress(&val->value);
  14779. }
  14780. }
  14781. static int ASN1CALL ASN1Enc_Alerting_UUIE(ASN1encoding_t enc, Alerting_UUIE *val)
  14782. {
  14783. ASN1octet_t o[2];
  14784. ASN1uint32_t y;
  14785. ASN1encoding_t ee;
  14786. CopyMemory(o, (val)->o, 2);
  14787. o[1] |= 0x80;
  14788. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  14789. if (!ASN1PEREncBitVal(enc, 1, y))
  14790. return 0;
  14791. if (!ASN1PEREncBits(enc, 1, o))
  14792. return 0;
  14793. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  14794. return 0;
  14795. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  14796. return 0;
  14797. if (o[0] & 0x80) {
  14798. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  14799. return 0;
  14800. }
  14801. if (y) {
  14802. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  14803. return 0;
  14804. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  14805. return 0;
  14806. if (o[1] & 0x80) {
  14807. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  14808. return 0;
  14809. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14810. return 0;
  14811. }
  14812. if (o[1] & 0x40) {
  14813. if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
  14814. return 0;
  14815. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14816. return 0;
  14817. }
  14818. if (o[1] & 0x20) {
  14819. if (!ASN1Enc_Alerting_UUIE_tokens(ee, &(val)->tokens))
  14820. return 0;
  14821. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14822. return 0;
  14823. }
  14824. if (o[1] & 0x10) {
  14825. if (!ASN1Enc_Alerting_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  14826. return 0;
  14827. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14828. return 0;
  14829. }
  14830. if (o[1] & 0x8) {
  14831. if (!ASN1Enc_Alerting_UUIE_fastStart(ee, &(val)->fastStart))
  14832. return 0;
  14833. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14834. return 0;
  14835. }
  14836. ASN1_CloseEncoder2(ee);
  14837. }
  14838. return 1;
  14839. }
  14840. static int ASN1CALL ASN1Dec_Alerting_UUIE(ASN1decoding_t dec, Alerting_UUIE *val)
  14841. {
  14842. ASN1uint32_t y;
  14843. ASN1decoding_t dd;
  14844. ASN1octet_t *db;
  14845. ASN1uint32_t ds;
  14846. ASN1uint32_t i;
  14847. ASN1uint32_t e;
  14848. if (!ASN1PERDecExtensionBit(dec, &y))
  14849. return 0;
  14850. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  14851. return 0;
  14852. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  14853. return 0;
  14854. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  14855. return 0;
  14856. if ((val)->o[0] & 0x80) {
  14857. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  14858. return 0;
  14859. }
  14860. if (!y) {
  14861. ZeroMemory((val)->o + 1, 1);
  14862. } else {
  14863. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  14864. return 0;
  14865. if ((val)->o[1] & 0x80) {
  14866. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14867. return 0;
  14868. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  14869. return 0;
  14870. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  14871. return 0;
  14872. ASN1_CloseDecoder(dd);
  14873. ASN1Free(db);
  14874. }
  14875. if ((val)->o[1] & 0x40) {
  14876. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14877. return 0;
  14878. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  14879. return 0;
  14880. if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
  14881. return 0;
  14882. ASN1_CloseDecoder(dd);
  14883. ASN1Free(db);
  14884. }
  14885. if ((val)->o[1] & 0x20) {
  14886. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14887. return 0;
  14888. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  14889. return 0;
  14890. if (!ASN1Dec_Alerting_UUIE_tokens(dd, &(val)->tokens))
  14891. return 0;
  14892. ASN1_CloseDecoder(dd);
  14893. ASN1Free(db);
  14894. }
  14895. if ((val)->o[1] & 0x10) {
  14896. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14897. return 0;
  14898. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  14899. return 0;
  14900. if (!ASN1Dec_Alerting_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  14901. return 0;
  14902. ASN1_CloseDecoder(dd);
  14903. ASN1Free(db);
  14904. }
  14905. if ((val)->o[1] & 0x8) {
  14906. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14907. return 0;
  14908. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  14909. return 0;
  14910. if (!ASN1Dec_Alerting_UUIE_fastStart(dd, &(val)->fastStart))
  14911. return 0;
  14912. ASN1_CloseDecoder(dd);
  14913. ASN1Free(db);
  14914. }
  14915. for (i = 0; i < e; i++) {
  14916. if (!ASN1PERDecSkipFragmented(dec, 8))
  14917. return 0;
  14918. }
  14919. }
  14920. return 1;
  14921. }
  14922. static void ASN1CALL ASN1Free_Alerting_UUIE(Alerting_UUIE *val)
  14923. {
  14924. if (val) {
  14925. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  14926. ASN1Free_EndpointType(&(val)->destinationInfo);
  14927. if ((val)->o[0] & 0x80) {
  14928. ASN1Free_TransportAddress(&(val)->h245Address);
  14929. }
  14930. if ((val)->o[1] & 0x80) {
  14931. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  14932. }
  14933. if ((val)->o[1] & 0x40) {
  14934. ASN1Free_H245Security(&(val)->h245SecurityMode);
  14935. }
  14936. if ((val)->o[1] & 0x20) {
  14937. ASN1Free_Alerting_UUIE_tokens(&(val)->tokens);
  14938. }
  14939. if ((val)->o[1] & 0x10) {
  14940. ASN1Free_Alerting_UUIE_cryptoTokens(&(val)->cryptoTokens);
  14941. }
  14942. if ((val)->o[1] & 0x8) {
  14943. ASN1Free_Alerting_UUIE_fastStart(&(val)->fastStart);
  14944. }
  14945. }
  14946. }
  14947. static int ASN1CALL ASN1Enc_CallProceeding_UUIE(ASN1encoding_t enc, CallProceeding_UUIE *val)
  14948. {
  14949. ASN1octet_t o[2];
  14950. ASN1uint32_t y;
  14951. ASN1encoding_t ee;
  14952. CopyMemory(o, (val)->o, 2);
  14953. o[1] |= 0x80;
  14954. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  14955. if (!ASN1PEREncBitVal(enc, 1, y))
  14956. return 0;
  14957. if (!ASN1PEREncBits(enc, 1, o))
  14958. return 0;
  14959. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  14960. return 0;
  14961. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  14962. return 0;
  14963. if (o[0] & 0x80) {
  14964. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  14965. return 0;
  14966. }
  14967. if (y) {
  14968. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  14969. return 0;
  14970. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  14971. return 0;
  14972. if (o[1] & 0x80) {
  14973. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  14974. return 0;
  14975. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14976. return 0;
  14977. }
  14978. if (o[1] & 0x40) {
  14979. if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
  14980. return 0;
  14981. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14982. return 0;
  14983. }
  14984. if (o[1] & 0x20) {
  14985. if (!ASN1Enc_CallProceeding_UUIE_tokens(ee, &(val)->tokens))
  14986. return 0;
  14987. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14988. return 0;
  14989. }
  14990. if (o[1] & 0x10) {
  14991. if (!ASN1Enc_CallProceeding_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  14992. return 0;
  14993. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14994. return 0;
  14995. }
  14996. if (o[1] & 0x8) {
  14997. if (!ASN1Enc_CallProceeding_UUIE_fastStart(ee, &(val)->fastStart))
  14998. return 0;
  14999. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15000. return 0;
  15001. }
  15002. ASN1_CloseEncoder2(ee);
  15003. }
  15004. return 1;
  15005. }
  15006. static int ASN1CALL ASN1Dec_CallProceeding_UUIE(ASN1decoding_t dec, CallProceeding_UUIE *val)
  15007. {
  15008. ASN1uint32_t y;
  15009. ASN1decoding_t dd;
  15010. ASN1octet_t *db;
  15011. ASN1uint32_t ds;
  15012. ASN1uint32_t i;
  15013. ASN1uint32_t e;
  15014. if (!ASN1PERDecExtensionBit(dec, &y))
  15015. return 0;
  15016. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  15017. return 0;
  15018. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15019. return 0;
  15020. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  15021. return 0;
  15022. if ((val)->o[0] & 0x80) {
  15023. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15024. return 0;
  15025. }
  15026. if (!y) {
  15027. ZeroMemory((val)->o + 1, 1);
  15028. } else {
  15029. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  15030. return 0;
  15031. if ((val)->o[1] & 0x80) {
  15032. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15033. return 0;
  15034. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15035. return 0;
  15036. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15037. return 0;
  15038. ASN1_CloseDecoder(dd);
  15039. ASN1Free(db);
  15040. }
  15041. if ((val)->o[1] & 0x40) {
  15042. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15043. return 0;
  15044. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15045. return 0;
  15046. if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
  15047. return 0;
  15048. ASN1_CloseDecoder(dd);
  15049. ASN1Free(db);
  15050. }
  15051. if ((val)->o[1] & 0x20) {
  15052. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15053. return 0;
  15054. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15055. return 0;
  15056. if (!ASN1Dec_CallProceeding_UUIE_tokens(dd, &(val)->tokens))
  15057. return 0;
  15058. ASN1_CloseDecoder(dd);
  15059. ASN1Free(db);
  15060. }
  15061. if ((val)->o[1] & 0x10) {
  15062. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15063. return 0;
  15064. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15065. return 0;
  15066. if (!ASN1Dec_CallProceeding_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15067. return 0;
  15068. ASN1_CloseDecoder(dd);
  15069. ASN1Free(db);
  15070. }
  15071. if ((val)->o[1] & 0x8) {
  15072. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15073. return 0;
  15074. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15075. return 0;
  15076. if (!ASN1Dec_CallProceeding_UUIE_fastStart(dd, &(val)->fastStart))
  15077. return 0;
  15078. ASN1_CloseDecoder(dd);
  15079. ASN1Free(db);
  15080. }
  15081. for (i = 0; i < e; i++) {
  15082. if (!ASN1PERDecSkipFragmented(dec, 8))
  15083. return 0;
  15084. }
  15085. }
  15086. return 1;
  15087. }
  15088. static void ASN1CALL ASN1Free_CallProceeding_UUIE(CallProceeding_UUIE *val)
  15089. {
  15090. if (val) {
  15091. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15092. ASN1Free_EndpointType(&(val)->destinationInfo);
  15093. if ((val)->o[0] & 0x80) {
  15094. ASN1Free_TransportAddress(&(val)->h245Address);
  15095. }
  15096. if ((val)->o[1] & 0x80) {
  15097. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15098. }
  15099. if ((val)->o[1] & 0x40) {
  15100. ASN1Free_H245Security(&(val)->h245SecurityMode);
  15101. }
  15102. if ((val)->o[1] & 0x20) {
  15103. ASN1Free_CallProceeding_UUIE_tokens(&(val)->tokens);
  15104. }
  15105. if ((val)->o[1] & 0x10) {
  15106. ASN1Free_CallProceeding_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15107. }
  15108. if ((val)->o[1] & 0x8) {
  15109. ASN1Free_CallProceeding_UUIE_fastStart(&(val)->fastStart);
  15110. }
  15111. }
  15112. }
  15113. static int ASN1CALL ASN1Enc_Connect_UUIE(ASN1encoding_t enc, Connect_UUIE *val)
  15114. {
  15115. ASN1octet_t o[2];
  15116. ASN1uint32_t y;
  15117. ASN1encoding_t ee;
  15118. CopyMemory(o, (val)->o, 2);
  15119. o[1] |= 0x80;
  15120. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  15121. if (!ASN1PEREncBitVal(enc, 1, y))
  15122. return 0;
  15123. if (!ASN1PEREncBits(enc, 1, o))
  15124. return 0;
  15125. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15126. return 0;
  15127. if (o[0] & 0x80) {
  15128. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  15129. return 0;
  15130. }
  15131. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  15132. return 0;
  15133. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15134. return 0;
  15135. if (y) {
  15136. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  15137. return 0;
  15138. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  15139. return 0;
  15140. if (o[1] & 0x80) {
  15141. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  15142. return 0;
  15143. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15144. return 0;
  15145. }
  15146. if (o[1] & 0x40) {
  15147. if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
  15148. return 0;
  15149. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15150. return 0;
  15151. }
  15152. if (o[1] & 0x20) {
  15153. if (!ASN1Enc_Connect_UUIE_tokens(ee, &(val)->tokens))
  15154. return 0;
  15155. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15156. return 0;
  15157. }
  15158. if (o[1] & 0x10) {
  15159. if (!ASN1Enc_Connect_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  15160. return 0;
  15161. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15162. return 0;
  15163. }
  15164. if (o[1] & 0x8) {
  15165. if (!ASN1Enc_Connect_UUIE_fastStart(ee, &(val)->fastStart))
  15166. return 0;
  15167. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15168. return 0;
  15169. }
  15170. ASN1_CloseEncoder2(ee);
  15171. }
  15172. return 1;
  15173. }
  15174. static int ASN1CALL ASN1Dec_Connect_UUIE(ASN1decoding_t dec, Connect_UUIE *val)
  15175. {
  15176. ASN1uint32_t y;
  15177. ASN1decoding_t dd;
  15178. ASN1octet_t *db;
  15179. ASN1uint32_t ds;
  15180. ASN1uint32_t i;
  15181. ASN1uint32_t e;
  15182. if (!ASN1PERDecExtensionBit(dec, &y))
  15183. return 0;
  15184. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  15185. return 0;
  15186. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15187. return 0;
  15188. if ((val)->o[0] & 0x80) {
  15189. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15190. return 0;
  15191. }
  15192. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  15193. return 0;
  15194. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15195. return 0;
  15196. if (!y) {
  15197. ZeroMemory((val)->o + 1, 1);
  15198. } else {
  15199. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  15200. return 0;
  15201. if ((val)->o[1] & 0x80) {
  15202. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15203. return 0;
  15204. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15205. return 0;
  15206. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15207. return 0;
  15208. ASN1_CloseDecoder(dd);
  15209. ASN1Free(db);
  15210. }
  15211. if ((val)->o[1] & 0x40) {
  15212. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15213. return 0;
  15214. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15215. return 0;
  15216. if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
  15217. return 0;
  15218. ASN1_CloseDecoder(dd);
  15219. ASN1Free(db);
  15220. }
  15221. if ((val)->o[1] & 0x20) {
  15222. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15223. return 0;
  15224. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15225. return 0;
  15226. if (!ASN1Dec_Connect_UUIE_tokens(dd, &(val)->tokens))
  15227. return 0;
  15228. ASN1_CloseDecoder(dd);
  15229. ASN1Free(db);
  15230. }
  15231. if ((val)->o[1] & 0x10) {
  15232. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15233. return 0;
  15234. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15235. return 0;
  15236. if (!ASN1Dec_Connect_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15237. return 0;
  15238. ASN1_CloseDecoder(dd);
  15239. ASN1Free(db);
  15240. }
  15241. if ((val)->o[1] & 0x8) {
  15242. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15243. return 0;
  15244. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15245. return 0;
  15246. if (!ASN1Dec_Connect_UUIE_fastStart(dd, &(val)->fastStart))
  15247. return 0;
  15248. ASN1_CloseDecoder(dd);
  15249. ASN1Free(db);
  15250. }
  15251. for (i = 0; i < e; i++) {
  15252. if (!ASN1PERDecSkipFragmented(dec, 8))
  15253. return 0;
  15254. }
  15255. }
  15256. return 1;
  15257. }
  15258. static void ASN1CALL ASN1Free_Connect_UUIE(Connect_UUIE *val)
  15259. {
  15260. if (val) {
  15261. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15262. if ((val)->o[0] & 0x80) {
  15263. ASN1Free_TransportAddress(&(val)->h245Address);
  15264. }
  15265. ASN1Free_EndpointType(&(val)->destinationInfo);
  15266. if ((val)->o[1] & 0x80) {
  15267. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15268. }
  15269. if ((val)->o[1] & 0x40) {
  15270. ASN1Free_H245Security(&(val)->h245SecurityMode);
  15271. }
  15272. if ((val)->o[1] & 0x20) {
  15273. ASN1Free_Connect_UUIE_tokens(&(val)->tokens);
  15274. }
  15275. if ((val)->o[1] & 0x10) {
  15276. ASN1Free_Connect_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15277. }
  15278. if ((val)->o[1] & 0x8) {
  15279. ASN1Free_Connect_UUIE_fastStart(&(val)->fastStart);
  15280. }
  15281. }
  15282. }
  15283. static int ASN1CALL ASN1Enc_Setup_UUIE(ASN1encoding_t enc, Setup_UUIE *val)
  15284. {
  15285. ASN1octet_t o[3];
  15286. ASN1uint32_t y;
  15287. ASN1encoding_t ee;
  15288. CopyMemory(o, (val)->o, 3);
  15289. o[1] |= 0x20;
  15290. o[1] |= 0x1;
  15291. o[2] |= 0x80;
  15292. y = ASN1PEREncCheckExtensions(9, (val)->o + 1);
  15293. if (!ASN1PEREncBitVal(enc, 1, y))
  15294. return 0;
  15295. if (!ASN1PEREncBits(enc, 7, o))
  15296. return 0;
  15297. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15298. return 0;
  15299. if (o[0] & 0x80) {
  15300. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  15301. return 0;
  15302. }
  15303. if (o[0] & 0x40) {
  15304. if (!ASN1Enc_Setup_UUIE_sourceAddress(enc, &(val)->sourceAddress))
  15305. return 0;
  15306. }
  15307. if (!ASN1Enc_EndpointType(enc, &(val)->sourceInfo))
  15308. return 0;
  15309. if (o[0] & 0x20) {
  15310. if (!ASN1Enc_Setup_UUIE_destinationAddress(enc, &(val)->destinationAddress))
  15311. return 0;
  15312. }
  15313. if (o[0] & 0x10) {
  15314. if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
  15315. return 0;
  15316. }
  15317. if (o[0] & 0x8) {
  15318. if (!ASN1Enc_Setup_UUIE_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
  15319. return 0;
  15320. }
  15321. if (o[0] & 0x4) {
  15322. if (!ASN1Enc_Setup_UUIE_destExtraCRV(enc, &(val)->destExtraCRV))
  15323. return 0;
  15324. }
  15325. if (!ASN1PEREncBoolean(enc, (val)->activeMC))
  15326. return 0;
  15327. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15328. return 0;
  15329. if (!ASN1Enc_Setup_UUIE_conferenceGoal(enc, &(val)->conferenceGoal))
  15330. return 0;
  15331. if (o[0] & 0x2) {
  15332. if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
  15333. return 0;
  15334. }
  15335. if (!ASN1Enc_CallType(enc, &(val)->callType))
  15336. return 0;
  15337. if (y) {
  15338. if (!ASN1PEREncNormallySmallBits(enc, 9, o + 1))
  15339. return 0;
  15340. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  15341. return 0;
  15342. if (o[1] & 0x80) {
  15343. if (!ASN1Enc_TransportAddress(ee, &(val)->sourceCallSignalAddress))
  15344. return 0;
  15345. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15346. return 0;
  15347. }
  15348. if (o[1] & 0x40) {
  15349. if (!ASN1Enc_AliasAddress(ee, &(val)->remoteExtensionAddress))
  15350. return 0;
  15351. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15352. return 0;
  15353. }
  15354. if (o[1] & 0x20) {
  15355. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  15356. return 0;
  15357. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15358. return 0;
  15359. }
  15360. if (o[1] & 0x10) {
  15361. if (!ASN1Enc_Setup_UUIE_h245SecurityCapability(ee, &(val)->h245SecurityCapability))
  15362. return 0;
  15363. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15364. return 0;
  15365. }
  15366. if (o[1] & 0x8) {
  15367. if (!ASN1Enc_Setup_UUIE_tokens(ee, &(val)->tokens))
  15368. return 0;
  15369. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15370. return 0;
  15371. }
  15372. if (o[1] & 0x4) {
  15373. if (!ASN1Enc_Setup_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  15374. return 0;
  15375. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15376. return 0;
  15377. }
  15378. if (o[1] & 0x2) {
  15379. if (!ASN1Enc_Setup_UUIE_fastStart(ee, &(val)->fastStart))
  15380. return 0;
  15381. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15382. return 0;
  15383. }
  15384. if (o[1] & 0x1) {
  15385. if (!ASN1PEREncBoolean(ee, (val)->mediaWaitForConnect))
  15386. return 0;
  15387. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15388. return 0;
  15389. }
  15390. if (o[2] & 0x80) {
  15391. if (!ASN1PEREncBoolean(ee, (val)->canOverlapSend))
  15392. return 0;
  15393. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15394. return 0;
  15395. }
  15396. ASN1_CloseEncoder2(ee);
  15397. }
  15398. return 1;
  15399. }
  15400. static int ASN1CALL ASN1Dec_Setup_UUIE(ASN1decoding_t dec, Setup_UUIE *val)
  15401. {
  15402. ASN1uint32_t y;
  15403. ASN1decoding_t dd;
  15404. ASN1octet_t *db;
  15405. ASN1uint32_t ds;
  15406. ASN1uint32_t i;
  15407. ASN1uint32_t e;
  15408. if (!ASN1PERDecExtensionBit(dec, &y))
  15409. return 0;
  15410. if (!ASN1PERDecExtension(dec, 7, (val)->o))
  15411. return 0;
  15412. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15413. return 0;
  15414. if ((val)->o[0] & 0x80) {
  15415. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15416. return 0;
  15417. }
  15418. if ((val)->o[0] & 0x40) {
  15419. if (!ASN1Dec_Setup_UUIE_sourceAddress(dec, &(val)->sourceAddress))
  15420. return 0;
  15421. }
  15422. if (!ASN1Dec_EndpointType(dec, &(val)->sourceInfo))
  15423. return 0;
  15424. if ((val)->o[0] & 0x20) {
  15425. if (!ASN1Dec_Setup_UUIE_destinationAddress(dec, &(val)->destinationAddress))
  15426. return 0;
  15427. }
  15428. if ((val)->o[0] & 0x10) {
  15429. if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
  15430. return 0;
  15431. }
  15432. if ((val)->o[0] & 0x8) {
  15433. if (!ASN1Dec_Setup_UUIE_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
  15434. return 0;
  15435. }
  15436. if ((val)->o[0] & 0x4) {
  15437. if (!ASN1Dec_Setup_UUIE_destExtraCRV(dec, &(val)->destExtraCRV))
  15438. return 0;
  15439. }
  15440. if (!ASN1PERDecBoolean(dec, &(val)->activeMC))
  15441. return 0;
  15442. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15443. return 0;
  15444. if (!ASN1Dec_Setup_UUIE_conferenceGoal(dec, &(val)->conferenceGoal))
  15445. return 0;
  15446. if ((val)->o[0] & 0x2) {
  15447. if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
  15448. return 0;
  15449. }
  15450. if (!ASN1Dec_CallType(dec, &(val)->callType))
  15451. return 0;
  15452. if (!y) {
  15453. ZeroMemory((val)->o + 1, 2);
  15454. } else {
  15455. if (!ASN1PERDecNormallySmallExtension(dec, &e, 9, (val)->o + 1))
  15456. return 0;
  15457. if ((val)->o[1] & 0x80) {
  15458. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15459. return 0;
  15460. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15461. return 0;
  15462. if (!ASN1Dec_TransportAddress(dd, &(val)->sourceCallSignalAddress))
  15463. return 0;
  15464. ASN1_CloseDecoder(dd);
  15465. ASN1Free(db);
  15466. }
  15467. if ((val)->o[1] & 0x40) {
  15468. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15469. return 0;
  15470. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15471. return 0;
  15472. if (!ASN1Dec_AliasAddress(dd, &(val)->remoteExtensionAddress))
  15473. return 0;
  15474. ASN1_CloseDecoder(dd);
  15475. ASN1Free(db);
  15476. }
  15477. if ((val)->o[1] & 0x20) {
  15478. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15479. return 0;
  15480. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15481. return 0;
  15482. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15483. return 0;
  15484. ASN1_CloseDecoder(dd);
  15485. ASN1Free(db);
  15486. }
  15487. if ((val)->o[1] & 0x10) {
  15488. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15489. return 0;
  15490. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15491. return 0;
  15492. if (!ASN1Dec_Setup_UUIE_h245SecurityCapability(dd, &(val)->h245SecurityCapability))
  15493. return 0;
  15494. ASN1_CloseDecoder(dd);
  15495. ASN1Free(db);
  15496. }
  15497. if ((val)->o[1] & 0x8) {
  15498. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15499. return 0;
  15500. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15501. return 0;
  15502. if (!ASN1Dec_Setup_UUIE_tokens(dd, &(val)->tokens))
  15503. return 0;
  15504. ASN1_CloseDecoder(dd);
  15505. ASN1Free(db);
  15506. }
  15507. if ((val)->o[1] & 0x4) {
  15508. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15509. return 0;
  15510. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15511. return 0;
  15512. if (!ASN1Dec_Setup_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15513. return 0;
  15514. ASN1_CloseDecoder(dd);
  15515. ASN1Free(db);
  15516. }
  15517. if ((val)->o[1] & 0x2) {
  15518. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15519. return 0;
  15520. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15521. return 0;
  15522. if (!ASN1Dec_Setup_UUIE_fastStart(dd, &(val)->fastStart))
  15523. return 0;
  15524. ASN1_CloseDecoder(dd);
  15525. ASN1Free(db);
  15526. }
  15527. if ((val)->o[1] & 0x1) {
  15528. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15529. return 0;
  15530. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15531. return 0;
  15532. if (!ASN1PERDecBoolean(dd, &(val)->mediaWaitForConnect))
  15533. return 0;
  15534. ASN1_CloseDecoder(dd);
  15535. ASN1Free(db);
  15536. }
  15537. if ((val)->o[2] & 0x80) {
  15538. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15539. return 0;
  15540. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15541. return 0;
  15542. if (!ASN1PERDecBoolean(dd, &(val)->canOverlapSend))
  15543. return 0;
  15544. ASN1_CloseDecoder(dd);
  15545. ASN1Free(db);
  15546. }
  15547. for (i = 0; i < e; i++) {
  15548. if (!ASN1PERDecSkipFragmented(dec, 8))
  15549. return 0;
  15550. }
  15551. }
  15552. return 1;
  15553. }
  15554. static void ASN1CALL ASN1Free_Setup_UUIE(Setup_UUIE *val)
  15555. {
  15556. if (val) {
  15557. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15558. if ((val)->o[0] & 0x80) {
  15559. ASN1Free_TransportAddress(&(val)->h245Address);
  15560. }
  15561. if ((val)->o[0] & 0x40) {
  15562. ASN1Free_Setup_UUIE_sourceAddress(&(val)->sourceAddress);
  15563. }
  15564. ASN1Free_EndpointType(&(val)->sourceInfo);
  15565. if ((val)->o[0] & 0x20) {
  15566. ASN1Free_Setup_UUIE_destinationAddress(&(val)->destinationAddress);
  15567. }
  15568. if ((val)->o[0] & 0x10) {
  15569. ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
  15570. }
  15571. if ((val)->o[0] & 0x8) {
  15572. ASN1Free_Setup_UUIE_destExtraCallInfo(&(val)->destExtraCallInfo);
  15573. }
  15574. if ((val)->o[0] & 0x4) {
  15575. ASN1Free_Setup_UUIE_destExtraCRV(&(val)->destExtraCRV);
  15576. }
  15577. if ((val)->o[1] & 0x80) {
  15578. ASN1Free_TransportAddress(&(val)->sourceCallSignalAddress);
  15579. }
  15580. if ((val)->o[1] & 0x40) {
  15581. ASN1Free_AliasAddress(&(val)->remoteExtensionAddress);
  15582. }
  15583. if ((val)->o[1] & 0x20) {
  15584. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15585. }
  15586. if ((val)->o[1] & 0x10) {
  15587. ASN1Free_Setup_UUIE_h245SecurityCapability(&(val)->h245SecurityCapability);
  15588. }
  15589. if ((val)->o[1] & 0x8) {
  15590. ASN1Free_Setup_UUIE_tokens(&(val)->tokens);
  15591. }
  15592. if ((val)->o[1] & 0x4) {
  15593. ASN1Free_Setup_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15594. }
  15595. if ((val)->o[1] & 0x2) {
  15596. ASN1Free_Setup_UUIE_fastStart(&(val)->fastStart);
  15597. }
  15598. }
  15599. }
  15600. static int ASN1CALL ASN1Enc_Facility_UUIE(ASN1encoding_t enc, Facility_UUIE *val)
  15601. {
  15602. ASN1octet_t o[2];
  15603. ASN1uint32_t y;
  15604. ASN1encoding_t ee;
  15605. CopyMemory(o, (val)->o, 2);
  15606. o[1] |= 0x80;
  15607. y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
  15608. if (!ASN1PEREncBitVal(enc, 1, y))
  15609. return 0;
  15610. if (!ASN1PEREncBits(enc, 3, o))
  15611. return 0;
  15612. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15613. return 0;
  15614. if (o[0] & 0x80) {
  15615. if (!ASN1Enc_TransportAddress(enc, &(val)->alternativeAddress))
  15616. return 0;
  15617. }
  15618. if (o[0] & 0x40) {
  15619. if (!ASN1Enc_Facility_UUIE_alternativeAliasAddress(enc, &(val)->alternativeAliasAddress))
  15620. return 0;
  15621. }
  15622. if (o[0] & 0x20) {
  15623. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15624. return 0;
  15625. }
  15626. if (!ASN1Enc_FacilityReason(enc, &(val)->reason))
  15627. return 0;
  15628. if (y) {
  15629. if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
  15630. return 0;
  15631. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  15632. return 0;
  15633. if (o[1] & 0x80) {
  15634. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  15635. return 0;
  15636. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15637. return 0;
  15638. }
  15639. if (o[1] & 0x40) {
  15640. if (!ASN1Enc_Facility_UUIE_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
  15641. return 0;
  15642. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15643. return 0;
  15644. }
  15645. if (o[1] & 0x20) {
  15646. if (!ASN1Enc_AliasAddress(ee, &(val)->remoteExtensionAddress))
  15647. return 0;
  15648. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15649. return 0;
  15650. }
  15651. if (o[1] & 0x10) {
  15652. if (!ASN1Enc_Facility_UUIE_tokens(ee, &(val)->tokens))
  15653. return 0;
  15654. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15655. return 0;
  15656. }
  15657. if (o[1] & 0x8) {
  15658. if (!ASN1Enc_Facility_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  15659. return 0;
  15660. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15661. return 0;
  15662. }
  15663. if (o[1] & 0x4) {
  15664. if (!ASN1Enc_Facility_UUIE_conferences(ee, &(val)->conferences))
  15665. return 0;
  15666. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15667. return 0;
  15668. }
  15669. if (o[1] & 0x2) {
  15670. if (!ASN1Enc_TransportAddress(ee, &(val)->h245Address))
  15671. return 0;
  15672. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15673. return 0;
  15674. }
  15675. if (o[1] & 0x1) {
  15676. if (!ASN1Enc_Facility_UUIE_fastStart(ee, &(val)->fastStart))
  15677. return 0;
  15678. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15679. return 0;
  15680. }
  15681. ASN1_CloseEncoder2(ee);
  15682. }
  15683. return 1;
  15684. }
  15685. static int ASN1CALL ASN1Dec_Facility_UUIE(ASN1decoding_t dec, Facility_UUIE *val)
  15686. {
  15687. ASN1uint32_t y;
  15688. ASN1decoding_t dd;
  15689. ASN1octet_t *db;
  15690. ASN1uint32_t ds;
  15691. ASN1uint32_t i;
  15692. ASN1uint32_t e;
  15693. if (!ASN1PERDecExtensionBit(dec, &y))
  15694. return 0;
  15695. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  15696. return 0;
  15697. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15698. return 0;
  15699. if ((val)->o[0] & 0x80) {
  15700. if (!ASN1Dec_TransportAddress(dec, &(val)->alternativeAddress))
  15701. return 0;
  15702. }
  15703. if ((val)->o[0] & 0x40) {
  15704. if (!ASN1Dec_Facility_UUIE_alternativeAliasAddress(dec, &(val)->alternativeAliasAddress))
  15705. return 0;
  15706. }
  15707. if ((val)->o[0] & 0x20) {
  15708. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15709. return 0;
  15710. }
  15711. if (!ASN1Dec_FacilityReason(dec, &(val)->reason))
  15712. return 0;
  15713. if (!y) {
  15714. ZeroMemory((val)->o + 1, 1);
  15715. } else {
  15716. if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
  15717. return 0;
  15718. if ((val)->o[1] & 0x80) {
  15719. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15720. return 0;
  15721. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15722. return 0;
  15723. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15724. return 0;
  15725. ASN1_CloseDecoder(dd);
  15726. ASN1Free(db);
  15727. }
  15728. if ((val)->o[1] & 0x40) {
  15729. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15730. return 0;
  15731. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15732. return 0;
  15733. if (!ASN1Dec_Facility_UUIE_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
  15734. return 0;
  15735. ASN1_CloseDecoder(dd);
  15736. ASN1Free(db);
  15737. }
  15738. if ((val)->o[1] & 0x20) {
  15739. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15740. return 0;
  15741. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15742. return 0;
  15743. if (!ASN1Dec_AliasAddress(dd, &(val)->remoteExtensionAddress))
  15744. return 0;
  15745. ASN1_CloseDecoder(dd);
  15746. ASN1Free(db);
  15747. }
  15748. if ((val)->o[1] & 0x10) {
  15749. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15750. return 0;
  15751. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15752. return 0;
  15753. if (!ASN1Dec_Facility_UUIE_tokens(dd, &(val)->tokens))
  15754. return 0;
  15755. ASN1_CloseDecoder(dd);
  15756. ASN1Free(db);
  15757. }
  15758. if ((val)->o[1] & 0x8) {
  15759. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15760. return 0;
  15761. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15762. return 0;
  15763. if (!ASN1Dec_Facility_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15764. return 0;
  15765. ASN1_CloseDecoder(dd);
  15766. ASN1Free(db);
  15767. }
  15768. if ((val)->o[1] & 0x4) {
  15769. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15770. return 0;
  15771. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15772. return 0;
  15773. if (!ASN1Dec_Facility_UUIE_conferences(dd, &(val)->conferences))
  15774. return 0;
  15775. ASN1_CloseDecoder(dd);
  15776. ASN1Free(db);
  15777. }
  15778. if ((val)->o[1] & 0x2) {
  15779. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15780. return 0;
  15781. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15782. return 0;
  15783. if (!ASN1Dec_TransportAddress(dd, &(val)->h245Address))
  15784. return 0;
  15785. ASN1_CloseDecoder(dd);
  15786. ASN1Free(db);
  15787. }
  15788. if ((val)->o[1] & 0x1) {
  15789. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15790. return 0;
  15791. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  15792. return 0;
  15793. if (!ASN1Dec_Facility_UUIE_fastStart(dd, &(val)->fastStart))
  15794. return 0;
  15795. ASN1_CloseDecoder(dd);
  15796. ASN1Free(db);
  15797. }
  15798. for (i = 0; i < e; i++) {
  15799. if (!ASN1PERDecSkipFragmented(dec, 8))
  15800. return 0;
  15801. }
  15802. }
  15803. return 1;
  15804. }
  15805. static void ASN1CALL ASN1Free_Facility_UUIE(Facility_UUIE *val)
  15806. {
  15807. if (val) {
  15808. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15809. if ((val)->o[0] & 0x80) {
  15810. ASN1Free_TransportAddress(&(val)->alternativeAddress);
  15811. }
  15812. if ((val)->o[0] & 0x40) {
  15813. ASN1Free_Facility_UUIE_alternativeAliasAddress(&(val)->alternativeAliasAddress);
  15814. }
  15815. if ((val)->o[0] & 0x20) {
  15816. }
  15817. if ((val)->o[1] & 0x80) {
  15818. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15819. }
  15820. if ((val)->o[1] & 0x40) {
  15821. ASN1Free_Facility_UUIE_destExtraCallInfo(&(val)->destExtraCallInfo);
  15822. }
  15823. if ((val)->o[1] & 0x20) {
  15824. ASN1Free_AliasAddress(&(val)->remoteExtensionAddress);
  15825. }
  15826. if ((val)->o[1] & 0x10) {
  15827. ASN1Free_Facility_UUIE_tokens(&(val)->tokens);
  15828. }
  15829. if ((val)->o[1] & 0x8) {
  15830. ASN1Free_Facility_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15831. }
  15832. if ((val)->o[1] & 0x4) {
  15833. ASN1Free_Facility_UUIE_conferences(&(val)->conferences);
  15834. }
  15835. if ((val)->o[1] & 0x2) {
  15836. ASN1Free_TransportAddress(&(val)->h245Address);
  15837. }
  15838. if ((val)->o[1] & 0x1) {
  15839. ASN1Free_Facility_UUIE_fastStart(&(val)->fastStart);
  15840. }
  15841. }
  15842. }
  15843. static int ASN1CALL ASN1Enc_ConferenceList(ASN1encoding_t enc, ConferenceList *val)
  15844. {
  15845. if (!ASN1PEREncExtensionBitClear(enc))
  15846. return 0;
  15847. if (!ASN1PEREncBits(enc, 3, (val)->o))
  15848. return 0;
  15849. if ((val)->o[0] & 0x80) {
  15850. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15851. return 0;
  15852. }
  15853. if ((val)->o[0] & 0x40) {
  15854. if (!ASN1Enc_AliasAddress(enc, &(val)->conferenceAlias))
  15855. return 0;
  15856. }
  15857. if ((val)->o[0] & 0x20) {
  15858. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  15859. return 0;
  15860. }
  15861. return 1;
  15862. }
  15863. static int ASN1CALL ASN1Dec_ConferenceList(ASN1decoding_t dec, ConferenceList *val)
  15864. {
  15865. ASN1uint32_t y;
  15866. if (!ASN1PERDecExtensionBit(dec, &y))
  15867. return 0;
  15868. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  15869. return 0;
  15870. if ((val)->o[0] & 0x80) {
  15871. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15872. return 0;
  15873. }
  15874. if ((val)->o[0] & 0x40) {
  15875. if (!ASN1Dec_AliasAddress(dec, &(val)->conferenceAlias))
  15876. return 0;
  15877. }
  15878. if ((val)->o[0] & 0x20) {
  15879. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  15880. return 0;
  15881. }
  15882. if (y) {
  15883. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  15884. return 0;
  15885. }
  15886. return 1;
  15887. }
  15888. static void ASN1CALL ASN1Free_ConferenceList(ConferenceList *val)
  15889. {
  15890. if (val) {
  15891. if ((val)->o[0] & 0x80) {
  15892. }
  15893. if ((val)->o[0] & 0x40) {
  15894. ASN1Free_AliasAddress(&(val)->conferenceAlias);
  15895. }
  15896. if ((val)->o[0] & 0x20) {
  15897. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  15898. }
  15899. }
  15900. }
  15901. static int ASN1CALL ASN1Enc_Progress_UUIE(ASN1encoding_t enc, Progress_UUIE *val)
  15902. {
  15903. if (!ASN1PEREncExtensionBitClear(enc))
  15904. return 0;
  15905. if (!ASN1PEREncBits(enc, 5, (val)->o))
  15906. return 0;
  15907. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15908. return 0;
  15909. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  15910. return 0;
  15911. if ((val)->o[0] & 0x80) {
  15912. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  15913. return 0;
  15914. }
  15915. if (!ASN1Enc_CallIdentifier(enc, &(val)->callIdentifier))
  15916. return 0;
  15917. if ((val)->o[0] & 0x40) {
  15918. if (!ASN1Enc_H245Security(enc, &(val)->h245SecurityMode))
  15919. return 0;
  15920. }
  15921. if ((val)->o[0] & 0x20) {
  15922. if (!ASN1Enc_Progress_UUIE_tokens(enc, &(val)->tokens))
  15923. return 0;
  15924. }
  15925. if ((val)->o[0] & 0x10) {
  15926. if (!ASN1Enc_Progress_UUIE_cryptoTokens(enc, &(val)->cryptoTokens))
  15927. return 0;
  15928. }
  15929. if ((val)->o[0] & 0x8) {
  15930. if (!ASN1Enc_Progress_UUIE_fastStart(enc, &(val)->fastStart))
  15931. return 0;
  15932. }
  15933. return 1;
  15934. }
  15935. static int ASN1CALL ASN1Dec_Progress_UUIE(ASN1decoding_t dec, Progress_UUIE *val)
  15936. {
  15937. ASN1uint32_t y;
  15938. if (!ASN1PERDecExtensionBit(dec, &y))
  15939. return 0;
  15940. if (!ASN1PERDecExtension(dec, 5, (val)->o))
  15941. return 0;
  15942. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15943. return 0;
  15944. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  15945. return 0;
  15946. if ((val)->o[0] & 0x80) {
  15947. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15948. return 0;
  15949. }
  15950. if (!ASN1Dec_CallIdentifier(dec, &(val)->callIdentifier))
  15951. return 0;
  15952. if ((val)->o[0] & 0x40) {
  15953. if (!ASN1Dec_H245Security(dec, &(val)->h245SecurityMode))
  15954. return 0;
  15955. }
  15956. if ((val)->o[0] & 0x20) {
  15957. if (!ASN1Dec_Progress_UUIE_tokens(dec, &(val)->tokens))
  15958. return 0;
  15959. }
  15960. if ((val)->o[0] & 0x10) {
  15961. if (!ASN1Dec_Progress_UUIE_cryptoTokens(dec, &(val)->cryptoTokens))
  15962. return 0;
  15963. }
  15964. if ((val)->o[0] & 0x8) {
  15965. if (!ASN1Dec_Progress_UUIE_fastStart(dec, &(val)->fastStart))
  15966. return 0;
  15967. }
  15968. if (y) {
  15969. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  15970. return 0;
  15971. }
  15972. return 1;
  15973. }
  15974. static void ASN1CALL ASN1Free_Progress_UUIE(Progress_UUIE *val)
  15975. {
  15976. if (val) {
  15977. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15978. ASN1Free_EndpointType(&(val)->destinationInfo);
  15979. if ((val)->o[0] & 0x80) {
  15980. ASN1Free_TransportAddress(&(val)->h245Address);
  15981. }
  15982. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15983. if ((val)->o[0] & 0x40) {
  15984. ASN1Free_H245Security(&(val)->h245SecurityMode);
  15985. }
  15986. if ((val)->o[0] & 0x20) {
  15987. ASN1Free_Progress_UUIE_tokens(&(val)->tokens);
  15988. }
  15989. if ((val)->o[0] & 0x10) {
  15990. ASN1Free_Progress_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15991. }
  15992. if ((val)->o[0] & 0x8) {
  15993. ASN1Free_Progress_UUIE_fastStart(&(val)->fastStart);
  15994. }
  15995. }
  15996. }
  15997. static int ASN1CALL ASN1Enc_CryptoH323Token(ASN1encoding_t enc, CryptoH323Token *val)
  15998. {
  15999. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  16000. return 0;
  16001. switch ((val)->choice) {
  16002. case 1:
  16003. if (!ASN1Enc_CryptoH323Token_cryptoEPPwdHash(enc, &(val)->u.cryptoEPPwdHash))
  16004. return 0;
  16005. break;
  16006. case 2:
  16007. if (!ASN1Enc_CryptoH323Token_cryptoGKPwdHash(enc, &(val)->u.cryptoGKPwdHash))
  16008. return 0;
  16009. break;
  16010. case 3:
  16011. if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoEPPwdEncr))
  16012. return 0;
  16013. break;
  16014. case 4:
  16015. if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoGKPwdEncr))
  16016. return 0;
  16017. break;
  16018. case 5:
  16019. if (!ASN1Enc_SIGNED_EncodedPwdCertToken(enc, &(val)->u.cryptoEPCert))
  16020. return 0;
  16021. break;
  16022. case 6:
  16023. if (!ASN1Enc_SIGNED_EncodedPwdCertToken(enc, &(val)->u.cryptoGKCert))
  16024. return 0;
  16025. break;
  16026. case 7:
  16027. if (!ASN1Enc_SIGNED_EncodedFastStartToken(enc, &(val)->u.cryptoFastStart))
  16028. return 0;
  16029. break;
  16030. case 8:
  16031. if (!ASN1Enc_CryptoToken(enc, &(val)->u.nestedcryptoToken))
  16032. return 0;
  16033. break;
  16034. default:
  16035. /* impossible */
  16036. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  16037. return 0;
  16038. }
  16039. return 1;
  16040. }
  16041. static int ASN1CALL ASN1Dec_CryptoH323Token(ASN1decoding_t dec, CryptoH323Token *val)
  16042. {
  16043. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  16044. return 0;
  16045. switch ((val)->choice) {
  16046. case 1:
  16047. if (!ASN1Dec_CryptoH323Token_cryptoEPPwdHash(dec, &(val)->u.cryptoEPPwdHash))
  16048. return 0;
  16049. break;
  16050. case 2:
  16051. if (!ASN1Dec_CryptoH323Token_cryptoGKPwdHash(dec, &(val)->u.cryptoGKPwdHash))
  16052. return 0;
  16053. break;
  16054. case 3:
  16055. if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoEPPwdEncr))
  16056. return 0;
  16057. break;
  16058. case 4:
  16059. if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoGKPwdEncr))
  16060. return 0;
  16061. break;
  16062. case 5:
  16063. if (!ASN1Dec_SIGNED_EncodedPwdCertToken(dec, &(val)->u.cryptoEPCert))
  16064. return 0;
  16065. break;
  16066. case 6:
  16067. if (!ASN1Dec_SIGNED_EncodedPwdCertToken(dec, &(val)->u.cryptoGKCert))
  16068. return 0;
  16069. break;
  16070. case 7:
  16071. if (!ASN1Dec_SIGNED_EncodedFastStartToken(dec, &(val)->u.cryptoFastStart))
  16072. return 0;
  16073. break;
  16074. case 8:
  16075. if (!ASN1Dec_CryptoToken(dec, &(val)->u.nestedcryptoToken))
  16076. return 0;
  16077. break;
  16078. case 0:
  16079. /* extension case */
  16080. if (!ASN1PERDecSkipFragmented(dec, 8))
  16081. return 0;
  16082. break;
  16083. default:
  16084. /* impossible */
  16085. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  16086. return 0;
  16087. }
  16088. return 1;
  16089. }
  16090. static void ASN1CALL ASN1Free_CryptoH323Token(CryptoH323Token *val)
  16091. {
  16092. if (val) {
  16093. switch ((val)->choice) {
  16094. case 1:
  16095. ASN1Free_CryptoH323Token_cryptoEPPwdHash(&(val)->u.cryptoEPPwdHash);
  16096. break;
  16097. case 2:
  16098. ASN1Free_CryptoH323Token_cryptoGKPwdHash(&(val)->u.cryptoGKPwdHash);
  16099. break;
  16100. case 3:
  16101. ASN1Free_ENCRYPTED(&(val)->u.cryptoEPPwdEncr);
  16102. break;
  16103. case 4:
  16104. ASN1Free_ENCRYPTED(&(val)->u.cryptoGKPwdEncr);
  16105. break;
  16106. case 5:
  16107. ASN1Free_SIGNED_EncodedPwdCertToken(&(val)->u.cryptoEPCert);
  16108. break;
  16109. case 6:
  16110. ASN1Free_SIGNED_EncodedPwdCertToken(&(val)->u.cryptoGKCert);
  16111. break;
  16112. case 7:
  16113. ASN1Free_SIGNED_EncodedFastStartToken(&(val)->u.cryptoFastStart);
  16114. break;
  16115. case 8:
  16116. ASN1Free_CryptoToken(&(val)->u.nestedcryptoToken);
  16117. break;
  16118. }
  16119. }
  16120. }
  16121. static int ASN1CALL ASN1Enc_RasMessage(ASN1encoding_t enc, RasMessage *val)
  16122. {
  16123. ASN1encoding_t ee;
  16124. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 5, 25))
  16125. return 0;
  16126. switch ((val)->choice) {
  16127. case 1:
  16128. if (!ASN1Enc_GatekeeperRequest(enc, &(val)->u.gatekeeperRequest))
  16129. return 0;
  16130. break;
  16131. case 2:
  16132. if (!ASN1Enc_GatekeeperConfirm(enc, &(val)->u.gatekeeperConfirm))
  16133. return 0;
  16134. break;
  16135. case 3:
  16136. if (!ASN1Enc_GatekeeperReject(enc, &(val)->u.gatekeeperReject))
  16137. return 0;
  16138. break;
  16139. case 4:
  16140. if (!ASN1Enc_RegistrationRequest(enc, &(val)->u.registrationRequest))
  16141. return 0;
  16142. break;
  16143. case 5:
  16144. if (!ASN1Enc_RegistrationConfirm(enc, &(val)->u.registrationConfirm))
  16145. return 0;
  16146. break;
  16147. case 6:
  16148. if (!ASN1Enc_RegistrationReject(enc, &(val)->u.registrationReject))
  16149. return 0;
  16150. break;
  16151. case 7:
  16152. if (!ASN1Enc_UnregistrationRequest(enc, &(val)->u.unregistrationRequest))
  16153. return 0;
  16154. break;
  16155. case 8:
  16156. if (!ASN1Enc_UnregistrationConfirm(enc, &(val)->u.unregistrationConfirm))
  16157. return 0;
  16158. break;
  16159. case 9:
  16160. if (!ASN1Enc_UnregistrationReject(enc, &(val)->u.unregistrationReject))
  16161. return 0;
  16162. break;
  16163. case 10:
  16164. if (!ASN1Enc_AdmissionRequest(enc, &(val)->u.admissionRequest))
  16165. return 0;
  16166. break;
  16167. case 11:
  16168. if (!ASN1Enc_AdmissionConfirm(enc, &(val)->u.admissionConfirm))
  16169. return 0;
  16170. break;
  16171. case 12:
  16172. if (!ASN1Enc_AdmissionReject(enc, &(val)->u.admissionReject))
  16173. return 0;
  16174. break;
  16175. case 13:
  16176. if (!ASN1Enc_BandwidthRequest(enc, &(val)->u.bandwidthRequest))
  16177. return 0;
  16178. break;
  16179. case 14:
  16180. if (!ASN1Enc_BandwidthConfirm(enc, &(val)->u.bandwidthConfirm))
  16181. return 0;
  16182. break;
  16183. case 15:
  16184. if (!ASN1Enc_BandwidthReject(enc, &(val)->u.bandwidthReject))
  16185. return 0;
  16186. break;
  16187. case 16:
  16188. if (!ASN1Enc_DisengageRequest(enc, &(val)->u.disengageRequest))
  16189. return 0;
  16190. break;
  16191. case 17:
  16192. if (!ASN1Enc_DisengageConfirm(enc, &(val)->u.disengageConfirm))
  16193. return 0;
  16194. break;
  16195. case 18:
  16196. if (!ASN1Enc_DisengageReject(enc, &(val)->u.disengageReject))
  16197. return 0;
  16198. break;
  16199. case 19:
  16200. if (!ASN1Enc_LocationRequest(enc, &(val)->u.locationRequest))
  16201. return 0;
  16202. break;
  16203. case 20:
  16204. if (!ASN1Enc_LocationConfirm(enc, &(val)->u.locationConfirm))
  16205. return 0;
  16206. break;
  16207. case 21:
  16208. if (!ASN1Enc_LocationReject(enc, &(val)->u.locationReject))
  16209. return 0;
  16210. break;
  16211. case 22:
  16212. if (!ASN1Enc_InfoRequest(enc, &(val)->u.infoRequest))
  16213. return 0;
  16214. break;
  16215. case 23:
  16216. if (!ASN1Enc_InfoRequestResponse(enc, &(val)->u.infoRequestResponse))
  16217. return 0;
  16218. break;
  16219. case 24:
  16220. if (!ASN1Enc_H225NonStandardMessage(enc, &(val)->u.nonStandardMessage))
  16221. return 0;
  16222. break;
  16223. case 25:
  16224. if (!ASN1Enc_UnknownMessageResponse(enc, &(val)->u.unknownMessageResponse))
  16225. return 0;
  16226. break;
  16227. case 26:
  16228. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16229. return 0;
  16230. if (!ASN1Enc_RequestInProgress(ee, &(val)->u.requestInProgress))
  16231. return 0;
  16232. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16233. return 0;
  16234. ASN1_CloseEncoder2(ee);
  16235. break;
  16236. case 27:
  16237. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16238. return 0;
  16239. if (!ASN1Enc_ResourcesAvailableIndicate(ee, &(val)->u.resourcesAvailableIndicate))
  16240. return 0;
  16241. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16242. return 0;
  16243. ASN1_CloseEncoder2(ee);
  16244. break;
  16245. case 28:
  16246. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16247. return 0;
  16248. if (!ASN1Enc_ResourcesAvailableConfirm(ee, &(val)->u.resourcesAvailableConfirm))
  16249. return 0;
  16250. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16251. return 0;
  16252. ASN1_CloseEncoder2(ee);
  16253. break;
  16254. case 29:
  16255. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16256. return 0;
  16257. if (!ASN1Enc_InfoRequestAck(ee, &(val)->u.infoRequestAck))
  16258. return 0;
  16259. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16260. return 0;
  16261. ASN1_CloseEncoder2(ee);
  16262. break;
  16263. case 30:
  16264. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16265. return 0;
  16266. if (!ASN1Enc_InfoRequestNak(ee, &(val)->u.infoRequestNak))
  16267. return 0;
  16268. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16269. return 0;
  16270. ASN1_CloseEncoder2(ee);
  16271. break;
  16272. default:
  16273. /* impossible */
  16274. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  16275. return 0;
  16276. }
  16277. return 1;
  16278. }
  16279. static int ASN1CALL ASN1Dec_RasMessage(ASN1decoding_t dec, RasMessage *val)
  16280. {
  16281. ASN1decoding_t dd;
  16282. ASN1octet_t *db;
  16283. ASN1uint32_t ds;
  16284. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 5, 25))
  16285. return 0;
  16286. switch ((val)->choice) {
  16287. case 1:
  16288. if (!ASN1Dec_GatekeeperRequest(dec, &(val)->u.gatekeeperRequest))
  16289. return 0;
  16290. break;
  16291. case 2:
  16292. if (!ASN1Dec_GatekeeperConfirm(dec, &(val)->u.gatekeeperConfirm))
  16293. return 0;
  16294. break;
  16295. case 3:
  16296. if (!ASN1Dec_GatekeeperReject(dec, &(val)->u.gatekeeperReject))
  16297. return 0;
  16298. break;
  16299. case 4:
  16300. if (!ASN1Dec_RegistrationRequest(dec, &(val)->u.registrationRequest))
  16301. return 0;
  16302. break;
  16303. case 5:
  16304. if (!ASN1Dec_RegistrationConfirm(dec, &(val)->u.registrationConfirm))
  16305. return 0;
  16306. break;
  16307. case 6:
  16308. if (!ASN1Dec_RegistrationReject(dec, &(val)->u.registrationReject))
  16309. return 0;
  16310. break;
  16311. case 7:
  16312. if (!ASN1Dec_UnregistrationRequest(dec, &(val)->u.unregistrationRequest))
  16313. return 0;
  16314. break;
  16315. case 8:
  16316. if (!ASN1Dec_UnregistrationConfirm(dec, &(val)->u.unregistrationConfirm))
  16317. return 0;
  16318. break;
  16319. case 9:
  16320. if (!ASN1Dec_UnregistrationReject(dec, &(val)->u.unregistrationReject))
  16321. return 0;
  16322. break;
  16323. case 10:
  16324. if (!ASN1Dec_AdmissionRequest(dec, &(val)->u.admissionRequest))
  16325. return 0;
  16326. break;
  16327. case 11:
  16328. if (!ASN1Dec_AdmissionConfirm(dec, &(val)->u.admissionConfirm))
  16329. return 0;
  16330. break;
  16331. case 12:
  16332. if (!ASN1Dec_AdmissionReject(dec, &(val)->u.admissionReject))
  16333. return 0;
  16334. break;
  16335. case 13:
  16336. if (!ASN1Dec_BandwidthRequest(dec, &(val)->u.bandwidthRequest))
  16337. return 0;
  16338. break;
  16339. case 14:
  16340. if (!ASN1Dec_BandwidthConfirm(dec, &(val)->u.bandwidthConfirm))
  16341. return 0;
  16342. break;
  16343. case 15:
  16344. if (!ASN1Dec_BandwidthReject(dec, &(val)->u.bandwidthReject))
  16345. return 0;
  16346. break;
  16347. case 16:
  16348. if (!ASN1Dec_DisengageRequest(dec, &(val)->u.disengageRequest))
  16349. return 0;
  16350. break;
  16351. case 17:
  16352. if (!ASN1Dec_DisengageConfirm(dec, &(val)->u.disengageConfirm))
  16353. return 0;
  16354. break;
  16355. case 18:
  16356. if (!ASN1Dec_DisengageReject(dec, &(val)->u.disengageReject))
  16357. return 0;
  16358. break;
  16359. case 19:
  16360. if (!ASN1Dec_LocationRequest(dec, &(val)->u.locationRequest))
  16361. return 0;
  16362. break;
  16363. case 20:
  16364. if (!ASN1Dec_LocationConfirm(dec, &(val)->u.locationConfirm))
  16365. return 0;
  16366. break;
  16367. case 21:
  16368. if (!ASN1Dec_LocationReject(dec, &(val)->u.locationReject))
  16369. return 0;
  16370. break;
  16371. case 22:
  16372. if (!ASN1Dec_InfoRequest(dec, &(val)->u.infoRequest))
  16373. return 0;
  16374. break;
  16375. case 23:
  16376. if (!ASN1Dec_InfoRequestResponse(dec, &(val)->u.infoRequestResponse))
  16377. return 0;
  16378. break;
  16379. case 24:
  16380. if (!ASN1Dec_H225NonStandardMessage(dec, &(val)->u.nonStandardMessage))
  16381. return 0;
  16382. break;
  16383. case 25:
  16384. if (!ASN1Dec_UnknownMessageResponse(dec, &(val)->u.unknownMessageResponse))
  16385. return 0;
  16386. break;
  16387. case 26:
  16388. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16389. return 0;
  16390. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  16391. return 0;
  16392. if (!ASN1Dec_RequestInProgress(dd, &(val)->u.requestInProgress))
  16393. return 0;
  16394. ASN1_CloseDecoder(dd);
  16395. ASN1Free(db);
  16396. break;
  16397. case 27:
  16398. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16399. return 0;
  16400. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  16401. return 0;
  16402. if (!ASN1Dec_ResourcesAvailableIndicate(dd, &(val)->u.resourcesAvailableIndicate))
  16403. return 0;
  16404. ASN1_CloseDecoder(dd);
  16405. ASN1Free(db);
  16406. break;
  16407. case 28:
  16408. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16409. return 0;
  16410. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  16411. return 0;
  16412. if (!ASN1Dec_ResourcesAvailableConfirm(dd, &(val)->u.resourcesAvailableConfirm))
  16413. return 0;
  16414. ASN1_CloseDecoder(dd);
  16415. ASN1Free(db);
  16416. break;
  16417. case 29:
  16418. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16419. return 0;
  16420. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  16421. return 0;
  16422. if (!ASN1Dec_InfoRequestAck(dd, &(val)->u.infoRequestAck))
  16423. return 0;
  16424. ASN1_CloseDecoder(dd);
  16425. ASN1Free(db);
  16426. break;
  16427. case 30:
  16428. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16429. return 0;
  16430. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  16431. return 0;
  16432. if (!ASN1Dec_InfoRequestNak(dd, &(val)->u.infoRequestNak))
  16433. return 0;
  16434. ASN1_CloseDecoder(dd);
  16435. ASN1Free(db);
  16436. break;
  16437. case 0:
  16438. /* extension case */
  16439. if (!ASN1PERDecSkipFragmented(dec, 8))
  16440. return 0;
  16441. break;
  16442. default:
  16443. /* impossible */
  16444. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  16445. return 0;
  16446. }
  16447. return 1;
  16448. }
  16449. static void ASN1CALL ASN1Free_RasMessage(RasMessage *val)
  16450. {
  16451. if (val) {
  16452. switch ((val)->choice) {
  16453. case 1:
  16454. ASN1Free_GatekeeperRequest(&(val)->u.gatekeeperRequest);
  16455. break;
  16456. case 2:
  16457. ASN1Free_GatekeeperConfirm(&(val)->u.gatekeeperConfirm);
  16458. break;
  16459. case 3:
  16460. ASN1Free_GatekeeperReject(&(val)->u.gatekeeperReject);
  16461. break;
  16462. case 4:
  16463. ASN1Free_RegistrationRequest(&(val)->u.registrationRequest);
  16464. break;
  16465. case 5:
  16466. ASN1Free_RegistrationConfirm(&(val)->u.registrationConfirm);
  16467. break;
  16468. case 6:
  16469. ASN1Free_RegistrationReject(&(val)->u.registrationReject);
  16470. break;
  16471. case 7:
  16472. ASN1Free_UnregistrationRequest(&(val)->u.unregistrationRequest);
  16473. break;
  16474. case 8:
  16475. ASN1Free_UnregistrationConfirm(&(val)->u.unregistrationConfirm);
  16476. break;
  16477. case 9:
  16478. ASN1Free_UnregistrationReject(&(val)->u.unregistrationReject);
  16479. break;
  16480. case 10:
  16481. ASN1Free_AdmissionRequest(&(val)->u.admissionRequest);
  16482. break;
  16483. case 11:
  16484. ASN1Free_AdmissionConfirm(&(val)->u.admissionConfirm);
  16485. break;
  16486. case 12:
  16487. ASN1Free_AdmissionReject(&(val)->u.admissionReject);
  16488. break;
  16489. case 13:
  16490. ASN1Free_BandwidthRequest(&(val)->u.bandwidthRequest);
  16491. break;
  16492. case 14:
  16493. ASN1Free_BandwidthConfirm(&(val)->u.bandwidthConfirm);
  16494. break;
  16495. case 15:
  16496. ASN1Free_BandwidthReject(&(val)->u.bandwidthReject);
  16497. break;
  16498. case 16:
  16499. ASN1Free_DisengageRequest(&(val)->u.disengageRequest);
  16500. break;
  16501. case 17:
  16502. ASN1Free_DisengageConfirm(&(val)->u.disengageConfirm);
  16503. break;
  16504. case 18:
  16505. ASN1Free_DisengageReject(&(val)->u.disengageReject);
  16506. break;
  16507. case 19:
  16508. ASN1Free_LocationRequest(&(val)->u.locationRequest);
  16509. break;
  16510. case 20:
  16511. ASN1Free_LocationConfirm(&(val)->u.locationConfirm);
  16512. break;
  16513. case 21:
  16514. ASN1Free_LocationReject(&(val)->u.locationReject);
  16515. break;
  16516. case 22:
  16517. ASN1Free_InfoRequest(&(val)->u.infoRequest);
  16518. break;
  16519. case 23:
  16520. ASN1Free_InfoRequestResponse(&(val)->u.infoRequestResponse);
  16521. break;
  16522. case 24:
  16523. ASN1Free_H225NonStandardMessage(&(val)->u.nonStandardMessage);
  16524. break;
  16525. case 25:
  16526. ASN1Free_UnknownMessageResponse(&(val)->u.unknownMessageResponse);
  16527. break;
  16528. case 26:
  16529. ASN1Free_RequestInProgress(&(val)->u.requestInProgress);
  16530. break;
  16531. case 27:
  16532. ASN1Free_ResourcesAvailableIndicate(&(val)->u.resourcesAvailableIndicate);
  16533. break;
  16534. case 28:
  16535. ASN1Free_ResourcesAvailableConfirm(&(val)->u.resourcesAvailableConfirm);
  16536. break;
  16537. case 29:
  16538. ASN1Free_InfoRequestAck(&(val)->u.infoRequestAck);
  16539. break;
  16540. case 30:
  16541. ASN1Free_InfoRequestNak(&(val)->u.infoRequestNak);
  16542. break;
  16543. }
  16544. }
  16545. }
  16546. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
  16547. {
  16548. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn);
  16549. }
  16550. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
  16551. {
  16552. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16553. return 0;
  16554. return 1;
  16555. }
  16556. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
  16557. {
  16558. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn, sizeof(**val));
  16559. }
  16560. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
  16561. {
  16562. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16563. return 0;
  16564. return 1;
  16565. }
  16566. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
  16567. {
  16568. if (val) {
  16569. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn);
  16570. }
  16571. }
  16572. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
  16573. {
  16574. if (val) {
  16575. ASN1Free_CryptoH323Token(&val->value);
  16576. }
  16577. }
  16578. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens *val)
  16579. {
  16580. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableConfirm_cryptoTokens_ElmFn);
  16581. }
  16582. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens val)
  16583. {
  16584. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16585. return 0;
  16586. return 1;
  16587. }
  16588. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens *val)
  16589. {
  16590. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableConfirm_cryptoTokens_ElmFn, sizeof(**val));
  16591. }
  16592. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens val)
  16593. {
  16594. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16595. return 0;
  16596. return 1;
  16597. }
  16598. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens(PResourcesAvailableConfirm_cryptoTokens *val)
  16599. {
  16600. if (val) {
  16601. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableConfirm_cryptoTokens_ElmFn);
  16602. }
  16603. }
  16604. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens_ElmFn(PResourcesAvailableConfirm_cryptoTokens val)
  16605. {
  16606. if (val) {
  16607. ASN1Free_CryptoH323Token(&val->value);
  16608. }
  16609. }
  16610. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens *val)
  16611. {
  16612. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_cryptoTokens_ElmFn);
  16613. }
  16614. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens val)
  16615. {
  16616. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16617. return 0;
  16618. return 1;
  16619. }
  16620. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens *val)
  16621. {
  16622. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_cryptoTokens_ElmFn, sizeof(**val));
  16623. }
  16624. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens val)
  16625. {
  16626. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16627. return 0;
  16628. return 1;
  16629. }
  16630. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens(PResourcesAvailableIndicate_cryptoTokens *val)
  16631. {
  16632. if (val) {
  16633. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_cryptoTokens_ElmFn);
  16634. }
  16635. }
  16636. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens_ElmFn(PResourcesAvailableIndicate_cryptoTokens val)
  16637. {
  16638. if (val) {
  16639. ASN1Free_CryptoH323Token(&val->value);
  16640. }
  16641. }
  16642. static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens(ASN1encoding_t enc, PRequestInProgress_cryptoTokens *val)
  16643. {
  16644. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestInProgress_cryptoTokens_ElmFn);
  16645. }
  16646. static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens_ElmFn(ASN1encoding_t enc, PRequestInProgress_cryptoTokens val)
  16647. {
  16648. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16649. return 0;
  16650. return 1;
  16651. }
  16652. static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens(ASN1decoding_t dec, PRequestInProgress_cryptoTokens *val)
  16653. {
  16654. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestInProgress_cryptoTokens_ElmFn, sizeof(**val));
  16655. }
  16656. static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens_ElmFn(ASN1decoding_t dec, PRequestInProgress_cryptoTokens val)
  16657. {
  16658. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16659. return 0;
  16660. return 1;
  16661. }
  16662. static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens(PRequestInProgress_cryptoTokens *val)
  16663. {
  16664. if (val) {
  16665. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestInProgress_cryptoTokens_ElmFn);
  16666. }
  16667. }
  16668. static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens_ElmFn(PRequestInProgress_cryptoTokens val)
  16669. {
  16670. if (val) {
  16671. ASN1Free_CryptoH323Token(&val->value);
  16672. }
  16673. }
  16674. static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens *val)
  16675. {
  16676. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnknownMessageResponse_cryptoTokens_ElmFn);
  16677. }
  16678. static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens val)
  16679. {
  16680. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16681. return 0;
  16682. return 1;
  16683. }
  16684. static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens *val)
  16685. {
  16686. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnknownMessageResponse_cryptoTokens_ElmFn, sizeof(**val));
  16687. }
  16688. static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens val)
  16689. {
  16690. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16691. return 0;
  16692. return 1;
  16693. }
  16694. static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens(PUnknownMessageResponse_cryptoTokens *val)
  16695. {
  16696. if (val) {
  16697. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnknownMessageResponse_cryptoTokens_ElmFn);
  16698. }
  16699. }
  16700. static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens_ElmFn(PUnknownMessageResponse_cryptoTokens val)
  16701. {
  16702. if (val) {
  16703. ASN1Free_CryptoH323Token(&val->value);
  16704. }
  16705. }
  16706. static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens *val)
  16707. {
  16708. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H225NonStandardMessage_cryptoTokens_ElmFn);
  16709. }
  16710. static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens_ElmFn(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens val)
  16711. {
  16712. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16713. return 0;
  16714. return 1;
  16715. }
  16716. static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens *val)
  16717. {
  16718. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H225NonStandardMessage_cryptoTokens_ElmFn, sizeof(**val));
  16719. }
  16720. static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens_ElmFn(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens val)
  16721. {
  16722. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16723. return 0;
  16724. return 1;
  16725. }
  16726. static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens(PH225NonStandardMessage_cryptoTokens *val)
  16727. {
  16728. if (val) {
  16729. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H225NonStandardMessage_cryptoTokens_ElmFn);
  16730. }
  16731. }
  16732. static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens_ElmFn(PH225NonStandardMessage_cryptoTokens val)
  16733. {
  16734. if (val) {
  16735. ASN1Free_CryptoH323Token(&val->value);
  16736. }
  16737. }
  16738. static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens *val)
  16739. {
  16740. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestNak_cryptoTokens_ElmFn);
  16741. }
  16742. static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens val)
  16743. {
  16744. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16745. return 0;
  16746. return 1;
  16747. }
  16748. static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens *val)
  16749. {
  16750. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestNak_cryptoTokens_ElmFn, sizeof(**val));
  16751. }
  16752. static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens val)
  16753. {
  16754. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16755. return 0;
  16756. return 1;
  16757. }
  16758. static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens(PInfoRequestNak_cryptoTokens *val)
  16759. {
  16760. if (val) {
  16761. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestNak_cryptoTokens_ElmFn);
  16762. }
  16763. }
  16764. static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens_ElmFn(PInfoRequestNak_cryptoTokens val)
  16765. {
  16766. if (val) {
  16767. ASN1Free_CryptoH323Token(&val->value);
  16768. }
  16769. }
  16770. static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens *val)
  16771. {
  16772. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestAck_cryptoTokens_ElmFn);
  16773. }
  16774. static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens val)
  16775. {
  16776. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16777. return 0;
  16778. return 1;
  16779. }
  16780. static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens *val)
  16781. {
  16782. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestAck_cryptoTokens_ElmFn, sizeof(**val));
  16783. }
  16784. static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens val)
  16785. {
  16786. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16787. return 0;
  16788. return 1;
  16789. }
  16790. static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens(PInfoRequestAck_cryptoTokens *val)
  16791. {
  16792. if (val) {
  16793. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestAck_cryptoTokens_ElmFn);
  16794. }
  16795. }
  16796. static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens_ElmFn(PInfoRequestAck_cryptoTokens val)
  16797. {
  16798. if (val) {
  16799. ASN1Free_CryptoH323Token(&val->value);
  16800. }
  16801. }
  16802. static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens *val)
  16803. {
  16804. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_cryptoTokens_ElmFn);
  16805. }
  16806. static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens val)
  16807. {
  16808. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16809. return 0;
  16810. return 1;
  16811. }
  16812. static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens *val)
  16813. {
  16814. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_cryptoTokens_ElmFn, sizeof(**val));
  16815. }
  16816. static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens val)
  16817. {
  16818. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16819. return 0;
  16820. return 1;
  16821. }
  16822. static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens(PInfoRequestResponse_cryptoTokens *val)
  16823. {
  16824. if (val) {
  16825. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_cryptoTokens_ElmFn);
  16826. }
  16827. }
  16828. static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens_ElmFn(PInfoRequestResponse_cryptoTokens val)
  16829. {
  16830. if (val) {
  16831. ASN1Free_CryptoH323Token(&val->value);
  16832. }
  16833. }
  16834. static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens(ASN1encoding_t enc, PInfoRequest_cryptoTokens *val)
  16835. {
  16836. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequest_cryptoTokens_ElmFn);
  16837. }
  16838. static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequest_cryptoTokens val)
  16839. {
  16840. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16841. return 0;
  16842. return 1;
  16843. }
  16844. static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens(ASN1decoding_t dec, PInfoRequest_cryptoTokens *val)
  16845. {
  16846. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequest_cryptoTokens_ElmFn, sizeof(**val));
  16847. }
  16848. static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequest_cryptoTokens val)
  16849. {
  16850. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16851. return 0;
  16852. return 1;
  16853. }
  16854. static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens(PInfoRequest_cryptoTokens *val)
  16855. {
  16856. if (val) {
  16857. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequest_cryptoTokens_ElmFn);
  16858. }
  16859. }
  16860. static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens_ElmFn(PInfoRequest_cryptoTokens val)
  16861. {
  16862. if (val) {
  16863. ASN1Free_CryptoH323Token(&val->value);
  16864. }
  16865. }
  16866. static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens(ASN1encoding_t enc, PDisengageReject_cryptoTokens *val)
  16867. {
  16868. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageReject_cryptoTokens_ElmFn);
  16869. }
  16870. static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageReject_cryptoTokens val)
  16871. {
  16872. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16873. return 0;
  16874. return 1;
  16875. }
  16876. static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens(ASN1decoding_t dec, PDisengageReject_cryptoTokens *val)
  16877. {
  16878. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageReject_cryptoTokens_ElmFn, sizeof(**val));
  16879. }
  16880. static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageReject_cryptoTokens val)
  16881. {
  16882. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16883. return 0;
  16884. return 1;
  16885. }
  16886. static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens(PDisengageReject_cryptoTokens *val)
  16887. {
  16888. if (val) {
  16889. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageReject_cryptoTokens_ElmFn);
  16890. }
  16891. }
  16892. static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens_ElmFn(PDisengageReject_cryptoTokens val)
  16893. {
  16894. if (val) {
  16895. ASN1Free_CryptoH323Token(&val->value);
  16896. }
  16897. }
  16898. static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens *val)
  16899. {
  16900. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageConfirm_cryptoTokens_ElmFn);
  16901. }
  16902. static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens val)
  16903. {
  16904. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16905. return 0;
  16906. return 1;
  16907. }
  16908. static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens *val)
  16909. {
  16910. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageConfirm_cryptoTokens_ElmFn, sizeof(**val));
  16911. }
  16912. static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens val)
  16913. {
  16914. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16915. return 0;
  16916. return 1;
  16917. }
  16918. static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens(PDisengageConfirm_cryptoTokens *val)
  16919. {
  16920. if (val) {
  16921. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageConfirm_cryptoTokens_ElmFn);
  16922. }
  16923. }
  16924. static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens_ElmFn(PDisengageConfirm_cryptoTokens val)
  16925. {
  16926. if (val) {
  16927. ASN1Free_CryptoH323Token(&val->value);
  16928. }
  16929. }
  16930. static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens(ASN1encoding_t enc, PDisengageRequest_cryptoTokens *val)
  16931. {
  16932. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageRequest_cryptoTokens_ElmFn);
  16933. }
  16934. static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageRequest_cryptoTokens val)
  16935. {
  16936. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16937. return 0;
  16938. return 1;
  16939. }
  16940. static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens(ASN1decoding_t dec, PDisengageRequest_cryptoTokens *val)
  16941. {
  16942. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageRequest_cryptoTokens_ElmFn, sizeof(**val));
  16943. }
  16944. static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageRequest_cryptoTokens val)
  16945. {
  16946. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16947. return 0;
  16948. return 1;
  16949. }
  16950. static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens(PDisengageRequest_cryptoTokens *val)
  16951. {
  16952. if (val) {
  16953. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageRequest_cryptoTokens_ElmFn);
  16954. }
  16955. }
  16956. static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens_ElmFn(PDisengageRequest_cryptoTokens val)
  16957. {
  16958. if (val) {
  16959. ASN1Free_CryptoH323Token(&val->value);
  16960. }
  16961. }
  16962. static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens(ASN1encoding_t enc, PLocationReject_cryptoTokens *val)
  16963. {
  16964. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationReject_cryptoTokens_ElmFn);
  16965. }
  16966. static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationReject_cryptoTokens val)
  16967. {
  16968. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16969. return 0;
  16970. return 1;
  16971. }
  16972. static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens(ASN1decoding_t dec, PLocationReject_cryptoTokens *val)
  16973. {
  16974. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationReject_cryptoTokens_ElmFn, sizeof(**val));
  16975. }
  16976. static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationReject_cryptoTokens val)
  16977. {
  16978. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16979. return 0;
  16980. return 1;
  16981. }
  16982. static void ASN1CALL ASN1Free_LocationReject_cryptoTokens(PLocationReject_cryptoTokens *val)
  16983. {
  16984. if (val) {
  16985. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationReject_cryptoTokens_ElmFn);
  16986. }
  16987. }
  16988. static void ASN1CALL ASN1Free_LocationReject_cryptoTokens_ElmFn(PLocationReject_cryptoTokens val)
  16989. {
  16990. if (val) {
  16991. ASN1Free_CryptoH323Token(&val->value);
  16992. }
  16993. }
  16994. static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens(ASN1encoding_t enc, PLocationConfirm_cryptoTokens *val)
  16995. {
  16996. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_cryptoTokens_ElmFn);
  16997. }
  16998. static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationConfirm_cryptoTokens val)
  16999. {
  17000. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17001. return 0;
  17002. return 1;
  17003. }
  17004. static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens(ASN1decoding_t dec, PLocationConfirm_cryptoTokens *val)
  17005. {
  17006. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17007. }
  17008. static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationConfirm_cryptoTokens val)
  17009. {
  17010. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17011. return 0;
  17012. return 1;
  17013. }
  17014. static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens(PLocationConfirm_cryptoTokens *val)
  17015. {
  17016. if (val) {
  17017. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_cryptoTokens_ElmFn);
  17018. }
  17019. }
  17020. static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens_ElmFn(PLocationConfirm_cryptoTokens val)
  17021. {
  17022. if (val) {
  17023. ASN1Free_CryptoH323Token(&val->value);
  17024. }
  17025. }
  17026. static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens(ASN1encoding_t enc, PLocationRequest_cryptoTokens *val)
  17027. {
  17028. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_cryptoTokens_ElmFn);
  17029. }
  17030. static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationRequest_cryptoTokens val)
  17031. {
  17032. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17033. return 0;
  17034. return 1;
  17035. }
  17036. static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens(ASN1decoding_t dec, PLocationRequest_cryptoTokens *val)
  17037. {
  17038. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_cryptoTokens_ElmFn, sizeof(**val));
  17039. }
  17040. static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationRequest_cryptoTokens val)
  17041. {
  17042. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17043. return 0;
  17044. return 1;
  17045. }
  17046. static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens(PLocationRequest_cryptoTokens *val)
  17047. {
  17048. if (val) {
  17049. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_cryptoTokens_ElmFn);
  17050. }
  17051. }
  17052. static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens_ElmFn(PLocationRequest_cryptoTokens val)
  17053. {
  17054. if (val) {
  17055. ASN1Free_CryptoH323Token(&val->value);
  17056. }
  17057. }
  17058. static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens(ASN1encoding_t enc, PBandwidthReject_cryptoTokens *val)
  17059. {
  17060. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthReject_cryptoTokens_ElmFn);
  17061. }
  17062. static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthReject_cryptoTokens val)
  17063. {
  17064. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17065. return 0;
  17066. return 1;
  17067. }
  17068. static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens(ASN1decoding_t dec, PBandwidthReject_cryptoTokens *val)
  17069. {
  17070. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthReject_cryptoTokens_ElmFn, sizeof(**val));
  17071. }
  17072. static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthReject_cryptoTokens val)
  17073. {
  17074. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17075. return 0;
  17076. return 1;
  17077. }
  17078. static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens(PBandwidthReject_cryptoTokens *val)
  17079. {
  17080. if (val) {
  17081. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthReject_cryptoTokens_ElmFn);
  17082. }
  17083. }
  17084. static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens_ElmFn(PBandwidthReject_cryptoTokens val)
  17085. {
  17086. if (val) {
  17087. ASN1Free_CryptoH323Token(&val->value);
  17088. }
  17089. }
  17090. static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens *val)
  17091. {
  17092. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthConfirm_cryptoTokens_ElmFn);
  17093. }
  17094. static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens val)
  17095. {
  17096. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17097. return 0;
  17098. return 1;
  17099. }
  17100. static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens *val)
  17101. {
  17102. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17103. }
  17104. static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens val)
  17105. {
  17106. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17107. return 0;
  17108. return 1;
  17109. }
  17110. static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens(PBandwidthConfirm_cryptoTokens *val)
  17111. {
  17112. if (val) {
  17113. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthConfirm_cryptoTokens_ElmFn);
  17114. }
  17115. }
  17116. static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens_ElmFn(PBandwidthConfirm_cryptoTokens val)
  17117. {
  17118. if (val) {
  17119. ASN1Free_CryptoH323Token(&val->value);
  17120. }
  17121. }
  17122. static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens *val)
  17123. {
  17124. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthRequest_cryptoTokens_ElmFn);
  17125. }
  17126. static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens val)
  17127. {
  17128. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17129. return 0;
  17130. return 1;
  17131. }
  17132. static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens *val)
  17133. {
  17134. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthRequest_cryptoTokens_ElmFn, sizeof(**val));
  17135. }
  17136. static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens val)
  17137. {
  17138. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17139. return 0;
  17140. return 1;
  17141. }
  17142. static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens(PBandwidthRequest_cryptoTokens *val)
  17143. {
  17144. if (val) {
  17145. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthRequest_cryptoTokens_ElmFn);
  17146. }
  17147. }
  17148. static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens_ElmFn(PBandwidthRequest_cryptoTokens val)
  17149. {
  17150. if (val) {
  17151. ASN1Free_CryptoH323Token(&val->value);
  17152. }
  17153. }
  17154. static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens(ASN1encoding_t enc, PAdmissionReject_cryptoTokens *val)
  17155. {
  17156. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_cryptoTokens_ElmFn);
  17157. }
  17158. static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionReject_cryptoTokens val)
  17159. {
  17160. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17161. return 0;
  17162. return 1;
  17163. }
  17164. static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens(ASN1decoding_t dec, PAdmissionReject_cryptoTokens *val)
  17165. {
  17166. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_cryptoTokens_ElmFn, sizeof(**val));
  17167. }
  17168. static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionReject_cryptoTokens val)
  17169. {
  17170. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17171. return 0;
  17172. return 1;
  17173. }
  17174. static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens(PAdmissionReject_cryptoTokens *val)
  17175. {
  17176. if (val) {
  17177. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_cryptoTokens_ElmFn);
  17178. }
  17179. }
  17180. static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens_ElmFn(PAdmissionReject_cryptoTokens val)
  17181. {
  17182. if (val) {
  17183. ASN1Free_CryptoH323Token(&val->value);
  17184. }
  17185. }
  17186. static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens *val)
  17187. {
  17188. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_cryptoTokens_ElmFn);
  17189. }
  17190. static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens val)
  17191. {
  17192. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17193. return 0;
  17194. return 1;
  17195. }
  17196. static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens *val)
  17197. {
  17198. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17199. }
  17200. static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens val)
  17201. {
  17202. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17203. return 0;
  17204. return 1;
  17205. }
  17206. static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens(PAdmissionConfirm_cryptoTokens *val)
  17207. {
  17208. if (val) {
  17209. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_cryptoTokens_ElmFn);
  17210. }
  17211. }
  17212. static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens_ElmFn(PAdmissionConfirm_cryptoTokens val)
  17213. {
  17214. if (val) {
  17215. ASN1Free_CryptoH323Token(&val->value);
  17216. }
  17217. }
  17218. static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens *val)
  17219. {
  17220. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_cryptoTokens_ElmFn);
  17221. }
  17222. static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens val)
  17223. {
  17224. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17225. return 0;
  17226. return 1;
  17227. }
  17228. static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens *val)
  17229. {
  17230. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_cryptoTokens_ElmFn, sizeof(**val));
  17231. }
  17232. static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens val)
  17233. {
  17234. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17235. return 0;
  17236. return 1;
  17237. }
  17238. static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens(PAdmissionRequest_cryptoTokens *val)
  17239. {
  17240. if (val) {
  17241. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_cryptoTokens_ElmFn);
  17242. }
  17243. }
  17244. static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens_ElmFn(PAdmissionRequest_cryptoTokens val)
  17245. {
  17246. if (val) {
  17247. ASN1Free_CryptoH323Token(&val->value);
  17248. }
  17249. }
  17250. static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens *val)
  17251. {
  17252. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationReject_cryptoTokens_ElmFn);
  17253. }
  17254. static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens val)
  17255. {
  17256. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17257. return 0;
  17258. return 1;
  17259. }
  17260. static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens *val)
  17261. {
  17262. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationReject_cryptoTokens_ElmFn, sizeof(**val));
  17263. }
  17264. static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens val)
  17265. {
  17266. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17267. return 0;
  17268. return 1;
  17269. }
  17270. static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens(PUnregistrationReject_cryptoTokens *val)
  17271. {
  17272. if (val) {
  17273. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationReject_cryptoTokens_ElmFn);
  17274. }
  17275. }
  17276. static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens_ElmFn(PUnregistrationReject_cryptoTokens val)
  17277. {
  17278. if (val) {
  17279. ASN1Free_CryptoH323Token(&val->value);
  17280. }
  17281. }
  17282. static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens *val)
  17283. {
  17284. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationConfirm_cryptoTokens_ElmFn);
  17285. }
  17286. static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens val)
  17287. {
  17288. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17289. return 0;
  17290. return 1;
  17291. }
  17292. static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens *val)
  17293. {
  17294. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17295. }
  17296. static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens val)
  17297. {
  17298. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17299. return 0;
  17300. return 1;
  17301. }
  17302. static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens(PUnregistrationConfirm_cryptoTokens *val)
  17303. {
  17304. if (val) {
  17305. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationConfirm_cryptoTokens_ElmFn);
  17306. }
  17307. }
  17308. static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens_ElmFn(PUnregistrationConfirm_cryptoTokens val)
  17309. {
  17310. if (val) {
  17311. ASN1Free_CryptoH323Token(&val->value);
  17312. }
  17313. }
  17314. static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens *val)
  17315. {
  17316. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_cryptoTokens_ElmFn);
  17317. }
  17318. static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens val)
  17319. {
  17320. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17321. return 0;
  17322. return 1;
  17323. }
  17324. static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens *val)
  17325. {
  17326. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_cryptoTokens_ElmFn, sizeof(**val));
  17327. }
  17328. static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens val)
  17329. {
  17330. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17331. return 0;
  17332. return 1;
  17333. }
  17334. static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens(PUnregistrationRequest_cryptoTokens *val)
  17335. {
  17336. if (val) {
  17337. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_cryptoTokens_ElmFn);
  17338. }
  17339. }
  17340. static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens_ElmFn(PUnregistrationRequest_cryptoTokens val)
  17341. {
  17342. if (val) {
  17343. ASN1Free_CryptoH323Token(&val->value);
  17344. }
  17345. }
  17346. static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens(ASN1encoding_t enc, PRegistrationReject_cryptoTokens *val)
  17347. {
  17348. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationReject_cryptoTokens_ElmFn);
  17349. }
  17350. static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationReject_cryptoTokens val)
  17351. {
  17352. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17353. return 0;
  17354. return 1;
  17355. }
  17356. static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens(ASN1decoding_t dec, PRegistrationReject_cryptoTokens *val)
  17357. {
  17358. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationReject_cryptoTokens_ElmFn, sizeof(**val));
  17359. }
  17360. static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationReject_cryptoTokens val)
  17361. {
  17362. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17363. return 0;
  17364. return 1;
  17365. }
  17366. static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens(PRegistrationReject_cryptoTokens *val)
  17367. {
  17368. if (val) {
  17369. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationReject_cryptoTokens_ElmFn);
  17370. }
  17371. }
  17372. static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens_ElmFn(PRegistrationReject_cryptoTokens val)
  17373. {
  17374. if (val) {
  17375. ASN1Free_CryptoH323Token(&val->value);
  17376. }
  17377. }
  17378. static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens *val)
  17379. {
  17380. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_cryptoTokens_ElmFn);
  17381. }
  17382. static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens val)
  17383. {
  17384. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17385. return 0;
  17386. return 1;
  17387. }
  17388. static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens *val)
  17389. {
  17390. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17391. }
  17392. static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens val)
  17393. {
  17394. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17395. return 0;
  17396. return 1;
  17397. }
  17398. static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens(PRegistrationConfirm_cryptoTokens *val)
  17399. {
  17400. if (val) {
  17401. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_cryptoTokens_ElmFn);
  17402. }
  17403. }
  17404. static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens_ElmFn(PRegistrationConfirm_cryptoTokens val)
  17405. {
  17406. if (val) {
  17407. ASN1Free_CryptoH323Token(&val->value);
  17408. }
  17409. }
  17410. static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens *val)
  17411. {
  17412. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_cryptoTokens_ElmFn);
  17413. }
  17414. static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens val)
  17415. {
  17416. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17417. return 0;
  17418. return 1;
  17419. }
  17420. static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens *val)
  17421. {
  17422. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_cryptoTokens_ElmFn, sizeof(**val));
  17423. }
  17424. static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens val)
  17425. {
  17426. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17427. return 0;
  17428. return 1;
  17429. }
  17430. static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens(PRegistrationRequest_cryptoTokens *val)
  17431. {
  17432. if (val) {
  17433. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_cryptoTokens_ElmFn);
  17434. }
  17435. }
  17436. static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens_ElmFn(PRegistrationRequest_cryptoTokens val)
  17437. {
  17438. if (val) {
  17439. ASN1Free_CryptoH323Token(&val->value);
  17440. }
  17441. }
  17442. static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens *val)
  17443. {
  17444. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperReject_cryptoTokens_ElmFn);
  17445. }
  17446. static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens val)
  17447. {
  17448. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17449. return 0;
  17450. return 1;
  17451. }
  17452. static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens *val)
  17453. {
  17454. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperReject_cryptoTokens_ElmFn, sizeof(**val));
  17455. }
  17456. static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens val)
  17457. {
  17458. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17459. return 0;
  17460. return 1;
  17461. }
  17462. static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens(PGatekeeperReject_cryptoTokens *val)
  17463. {
  17464. if (val) {
  17465. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperReject_cryptoTokens_ElmFn);
  17466. }
  17467. }
  17468. static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens_ElmFn(PGatekeeperReject_cryptoTokens val)
  17469. {
  17470. if (val) {
  17471. ASN1Free_CryptoH323Token(&val->value);
  17472. }
  17473. }
  17474. static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens *val)
  17475. {
  17476. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_cryptoTokens_ElmFn);
  17477. }
  17478. static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens val)
  17479. {
  17480. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17481. return 0;
  17482. return 1;
  17483. }
  17484. static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens *val)
  17485. {
  17486. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17487. }
  17488. static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens val)
  17489. {
  17490. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17491. return 0;
  17492. return 1;
  17493. }
  17494. static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens(PGatekeeperConfirm_cryptoTokens *val)
  17495. {
  17496. if (val) {
  17497. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_cryptoTokens_ElmFn);
  17498. }
  17499. }
  17500. static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens_ElmFn(PGatekeeperConfirm_cryptoTokens val)
  17501. {
  17502. if (val) {
  17503. ASN1Free_CryptoH323Token(&val->value);
  17504. }
  17505. }
  17506. static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens *val)
  17507. {
  17508. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_cryptoTokens_ElmFn);
  17509. }
  17510. static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens val)
  17511. {
  17512. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17513. return 0;
  17514. return 1;
  17515. }
  17516. static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens *val)
  17517. {
  17518. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_cryptoTokens_ElmFn, sizeof(**val));
  17519. }
  17520. static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens val)
  17521. {
  17522. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17523. return 0;
  17524. return 1;
  17525. }
  17526. static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens(PGatekeeperRequest_cryptoTokens *val)
  17527. {
  17528. if (val) {
  17529. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_cryptoTokens_ElmFn);
  17530. }
  17531. }
  17532. static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens_ElmFn(PGatekeeperRequest_cryptoTokens val)
  17533. {
  17534. if (val) {
  17535. ASN1Free_CryptoH323Token(&val->value);
  17536. }
  17537. }
  17538. static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens(ASN1encoding_t enc, PEndpoint_cryptoTokens *val)
  17539. {
  17540. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_cryptoTokens_ElmFn);
  17541. }
  17542. static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens_ElmFn(ASN1encoding_t enc, PEndpoint_cryptoTokens val)
  17543. {
  17544. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17545. return 0;
  17546. return 1;
  17547. }
  17548. static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens(ASN1decoding_t dec, PEndpoint_cryptoTokens *val)
  17549. {
  17550. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_cryptoTokens_ElmFn, sizeof(**val));
  17551. }
  17552. static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens_ElmFn(ASN1decoding_t dec, PEndpoint_cryptoTokens val)
  17553. {
  17554. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17555. return 0;
  17556. return 1;
  17557. }
  17558. static void ASN1CALL ASN1Free_Endpoint_cryptoTokens(PEndpoint_cryptoTokens *val)
  17559. {
  17560. if (val) {
  17561. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_cryptoTokens_ElmFn);
  17562. }
  17563. }
  17564. static void ASN1CALL ASN1Free_Endpoint_cryptoTokens_ElmFn(PEndpoint_cryptoTokens val)
  17565. {
  17566. if (val) {
  17567. ASN1Free_CryptoH323Token(&val->value);
  17568. }
  17569. }
  17570. static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens *val)
  17571. {
  17572. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_cryptoTokens_ElmFn);
  17573. }
  17574. static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens val)
  17575. {
  17576. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17577. return 0;
  17578. return 1;
  17579. }
  17580. static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens *val)
  17581. {
  17582. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17583. }
  17584. static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens val)
  17585. {
  17586. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17587. return 0;
  17588. return 1;
  17589. }
  17590. static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens(PProgress_UUIE_cryptoTokens *val)
  17591. {
  17592. if (val) {
  17593. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_cryptoTokens_ElmFn);
  17594. }
  17595. }
  17596. static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens_ElmFn(PProgress_UUIE_cryptoTokens val)
  17597. {
  17598. if (val) {
  17599. ASN1Free_CryptoH323Token(&val->value);
  17600. }
  17601. }
  17602. static int ASN1CALL ASN1Enc_Facility_UUIE_conferences(ASN1encoding_t enc, PFacility_UUIE_conferences *val)
  17603. {
  17604. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_conferences_ElmFn);
  17605. }
  17606. static int ASN1CALL ASN1Enc_Facility_UUIE_conferences_ElmFn(ASN1encoding_t enc, PFacility_UUIE_conferences val)
  17607. {
  17608. if (!ASN1Enc_ConferenceList(enc, &val->value))
  17609. return 0;
  17610. return 1;
  17611. }
  17612. static int ASN1CALL ASN1Dec_Facility_UUIE_conferences(ASN1decoding_t dec, PFacility_UUIE_conferences *val)
  17613. {
  17614. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_conferences_ElmFn, sizeof(**val));
  17615. }
  17616. static int ASN1CALL ASN1Dec_Facility_UUIE_conferences_ElmFn(ASN1decoding_t dec, PFacility_UUIE_conferences val)
  17617. {
  17618. if (!ASN1Dec_ConferenceList(dec, &val->value))
  17619. return 0;
  17620. return 1;
  17621. }
  17622. static void ASN1CALL ASN1Free_Facility_UUIE_conferences(PFacility_UUIE_conferences *val)
  17623. {
  17624. if (val) {
  17625. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_conferences_ElmFn);
  17626. }
  17627. }
  17628. static void ASN1CALL ASN1Free_Facility_UUIE_conferences_ElmFn(PFacility_UUIE_conferences val)
  17629. {
  17630. if (val) {
  17631. ASN1Free_ConferenceList(&val->value);
  17632. }
  17633. }
  17634. static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens *val)
  17635. {
  17636. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_cryptoTokens_ElmFn);
  17637. }
  17638. static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens val)
  17639. {
  17640. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17641. return 0;
  17642. return 1;
  17643. }
  17644. static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens *val)
  17645. {
  17646. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17647. }
  17648. static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens val)
  17649. {
  17650. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17651. return 0;
  17652. return 1;
  17653. }
  17654. static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens(PFacility_UUIE_cryptoTokens *val)
  17655. {
  17656. if (val) {
  17657. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_cryptoTokens_ElmFn);
  17658. }
  17659. }
  17660. static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens_ElmFn(PFacility_UUIE_cryptoTokens val)
  17661. {
  17662. if (val) {
  17663. ASN1Free_CryptoH323Token(&val->value);
  17664. }
  17665. }
  17666. static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens *val)
  17667. {
  17668. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_cryptoTokens_ElmFn);
  17669. }
  17670. static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens val)
  17671. {
  17672. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17673. return 0;
  17674. return 1;
  17675. }
  17676. static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens *val)
  17677. {
  17678. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17679. }
  17680. static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens val)
  17681. {
  17682. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17683. return 0;
  17684. return 1;
  17685. }
  17686. static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens(PSetup_UUIE_cryptoTokens *val)
  17687. {
  17688. if (val) {
  17689. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_cryptoTokens_ElmFn);
  17690. }
  17691. }
  17692. static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens_ElmFn(PSetup_UUIE_cryptoTokens val)
  17693. {
  17694. if (val) {
  17695. ASN1Free_CryptoH323Token(&val->value);
  17696. }
  17697. }
  17698. static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens *val)
  17699. {
  17700. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_cryptoTokens_ElmFn);
  17701. }
  17702. static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens val)
  17703. {
  17704. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17705. return 0;
  17706. return 1;
  17707. }
  17708. static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens *val)
  17709. {
  17710. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17711. }
  17712. static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens val)
  17713. {
  17714. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17715. return 0;
  17716. return 1;
  17717. }
  17718. static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens(PConnect_UUIE_cryptoTokens *val)
  17719. {
  17720. if (val) {
  17721. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_cryptoTokens_ElmFn);
  17722. }
  17723. }
  17724. static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens_ElmFn(PConnect_UUIE_cryptoTokens val)
  17725. {
  17726. if (val) {
  17727. ASN1Free_CryptoH323Token(&val->value);
  17728. }
  17729. }
  17730. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens *val)
  17731. {
  17732. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_cryptoTokens_ElmFn);
  17733. }
  17734. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens val)
  17735. {
  17736. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17737. return 0;
  17738. return 1;
  17739. }
  17740. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens *val)
  17741. {
  17742. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17743. }
  17744. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens val)
  17745. {
  17746. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17747. return 0;
  17748. return 1;
  17749. }
  17750. static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens(PCallProceeding_UUIE_cryptoTokens *val)
  17751. {
  17752. if (val) {
  17753. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_cryptoTokens_ElmFn);
  17754. }
  17755. }
  17756. static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens_ElmFn(PCallProceeding_UUIE_cryptoTokens val)
  17757. {
  17758. if (val) {
  17759. ASN1Free_CryptoH323Token(&val->value);
  17760. }
  17761. }
  17762. static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens *val)
  17763. {
  17764. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_cryptoTokens_ElmFn);
  17765. }
  17766. static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens val)
  17767. {
  17768. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17769. return 0;
  17770. return 1;
  17771. }
  17772. static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens *val)
  17773. {
  17774. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17775. }
  17776. static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens val)
  17777. {
  17778. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17779. return 0;
  17780. return 1;
  17781. }
  17782. static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens(PAlerting_UUIE_cryptoTokens *val)
  17783. {
  17784. if (val) {
  17785. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_cryptoTokens_ElmFn);
  17786. }
  17787. }
  17788. static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens_ElmFn(PAlerting_UUIE_cryptoTokens val)
  17789. {
  17790. if (val) {
  17791. ASN1Free_CryptoH323Token(&val->value);
  17792. }
  17793. }
  17794. static int ASN1CALL ASN1Enc_H323_UU_PDU_h323_message_body(ASN1encoding_t enc, H323_UU_PDU_h323_message_body *val)
  17795. {
  17796. ASN1encoding_t ee;
  17797. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 7))
  17798. return 0;
  17799. switch ((val)->choice) {
  17800. case 1:
  17801. if (!ASN1Enc_Setup_UUIE(enc, &(val)->u.setup))
  17802. return 0;
  17803. break;
  17804. case 2:
  17805. if (!ASN1Enc_CallProceeding_UUIE(enc, &(val)->u.callProceeding))
  17806. return 0;
  17807. break;
  17808. case 3:
  17809. if (!ASN1Enc_Connect_UUIE(enc, &(val)->u.connect))
  17810. return 0;
  17811. break;
  17812. case 4:
  17813. if (!ASN1Enc_Alerting_UUIE(enc, &(val)->u.alerting))
  17814. return 0;
  17815. break;
  17816. case 5:
  17817. if (!ASN1Enc_Information_UUIE(enc, &(val)->u.information))
  17818. return 0;
  17819. break;
  17820. case 6:
  17821. if (!ASN1Enc_ReleaseComplete_UUIE(enc, &(val)->u.releaseComplete))
  17822. return 0;
  17823. break;
  17824. case 7:
  17825. if (!ASN1Enc_Facility_UUIE(enc, &(val)->u.facility))
  17826. return 0;
  17827. break;
  17828. case 8:
  17829. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  17830. return 0;
  17831. if (!ASN1Enc_Progress_UUIE(ee, &(val)->u.progress))
  17832. return 0;
  17833. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17834. return 0;
  17835. ASN1_CloseEncoder2(ee);
  17836. break;
  17837. case 9:
  17838. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  17839. return 0;
  17840. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17841. return 0;
  17842. ASN1_CloseEncoder2(ee);
  17843. break;
  17844. default:
  17845. /* impossible */
  17846. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  17847. return 0;
  17848. }
  17849. return 1;
  17850. }
  17851. static int ASN1CALL ASN1Dec_H323_UU_PDU_h323_message_body(ASN1decoding_t dec, H323_UU_PDU_h323_message_body *val)
  17852. {
  17853. ASN1decoding_t dd;
  17854. ASN1octet_t *db;
  17855. ASN1uint32_t ds;
  17856. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 7))
  17857. return 0;
  17858. switch ((val)->choice) {
  17859. case 1:
  17860. if (!ASN1Dec_Setup_UUIE(dec, &(val)->u.setup))
  17861. return 0;
  17862. break;
  17863. case 2:
  17864. if (!ASN1Dec_CallProceeding_UUIE(dec, &(val)->u.callProceeding))
  17865. return 0;
  17866. break;
  17867. case 3:
  17868. if (!ASN1Dec_Connect_UUIE(dec, &(val)->u.connect))
  17869. return 0;
  17870. break;
  17871. case 4:
  17872. if (!ASN1Dec_Alerting_UUIE(dec, &(val)->u.alerting))
  17873. return 0;
  17874. break;
  17875. case 5:
  17876. if (!ASN1Dec_Information_UUIE(dec, &(val)->u.information))
  17877. return 0;
  17878. break;
  17879. case 6:
  17880. if (!ASN1Dec_ReleaseComplete_UUIE(dec, &(val)->u.releaseComplete))
  17881. return 0;
  17882. break;
  17883. case 7:
  17884. if (!ASN1Dec_Facility_UUIE(dec, &(val)->u.facility))
  17885. return 0;
  17886. break;
  17887. case 8:
  17888. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17889. return 0;
  17890. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  17891. return 0;
  17892. if (!ASN1Dec_Progress_UUIE(dd, &(val)->u.progress))
  17893. return 0;
  17894. ASN1_CloseDecoder(dd);
  17895. ASN1Free(db);
  17896. break;
  17897. case 9:
  17898. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17899. return 0;
  17900. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  17901. return 0;
  17902. ASN1_CloseDecoder(dd);
  17903. ASN1Free(db);
  17904. break;
  17905. case 0:
  17906. /* extension case */
  17907. if (!ASN1PERDecSkipFragmented(dec, 8))
  17908. return 0;
  17909. break;
  17910. default:
  17911. /* impossible */
  17912. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  17913. return 0;
  17914. }
  17915. return 1;
  17916. }
  17917. static void ASN1CALL ASN1Free_H323_UU_PDU_h323_message_body(H323_UU_PDU_h323_message_body *val)
  17918. {
  17919. if (val) {
  17920. switch ((val)->choice) {
  17921. case 1:
  17922. ASN1Free_Setup_UUIE(&(val)->u.setup);
  17923. break;
  17924. case 2:
  17925. ASN1Free_CallProceeding_UUIE(&(val)->u.callProceeding);
  17926. break;
  17927. case 3:
  17928. ASN1Free_Connect_UUIE(&(val)->u.connect);
  17929. break;
  17930. case 4:
  17931. ASN1Free_Alerting_UUIE(&(val)->u.alerting);
  17932. break;
  17933. case 5:
  17934. ASN1Free_Information_UUIE(&(val)->u.information);
  17935. break;
  17936. case 6:
  17937. ASN1Free_ReleaseComplete_UUIE(&(val)->u.releaseComplete);
  17938. break;
  17939. case 7:
  17940. ASN1Free_Facility_UUIE(&(val)->u.facility);
  17941. break;
  17942. case 8:
  17943. ASN1Free_Progress_UUIE(&(val)->u.progress);
  17944. break;
  17945. }
  17946. }
  17947. }
  17948. static int ASN1CALL ASN1Enc_H323_UU_PDU(ASN1encoding_t enc, H323_UU_PDU *val)
  17949. {
  17950. ASN1octet_t o[2];
  17951. ASN1uint32_t y;
  17952. ASN1encoding_t ee;
  17953. CopyMemory(o, (val)->o, 2);
  17954. o[1] |= 0x40;
  17955. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  17956. if (!ASN1PEREncBitVal(enc, 1, y))
  17957. return 0;
  17958. if (!ASN1PEREncBits(enc, 1, o))
  17959. return 0;
  17960. if (!ASN1Enc_H323_UU_PDU_h323_message_body(enc, &(val)->h323_message_body))
  17961. return 0;
  17962. if (o[0] & 0x80) {
  17963. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  17964. return 0;
  17965. }
  17966. if (y) {
  17967. if (!ASN1PEREncNormallySmallBits(enc, 4, o + 1))
  17968. return 0;
  17969. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  17970. return 0;
  17971. if (o[1] & 0x80) {
  17972. if (!ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ee, &(val)->h4501SupplementaryService))
  17973. return 0;
  17974. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17975. return 0;
  17976. }
  17977. if (o[1] & 0x40) {
  17978. if (!ASN1PEREncBoolean(ee, (val)->h245Tunneling))
  17979. return 0;
  17980. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17981. return 0;
  17982. }
  17983. if (o[1] & 0x20) {
  17984. if (!ASN1Enc_H323_UU_PDU_h245Control(ee, &(val)->h245Control))
  17985. return 0;
  17986. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17987. return 0;
  17988. }
  17989. if (o[1] & 0x10) {
  17990. if (!ASN1Enc_H323_UU_PDU_nonStandardControl(ee, &(val)->nonStandardControl))
  17991. return 0;
  17992. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17993. return 0;
  17994. }
  17995. ASN1_CloseEncoder2(ee);
  17996. }
  17997. return 1;
  17998. }
  17999. static int ASN1CALL ASN1Dec_H323_UU_PDU(ASN1decoding_t dec, H323_UU_PDU *val)
  18000. {
  18001. ASN1uint32_t y;
  18002. ASN1decoding_t dd;
  18003. ASN1octet_t *db;
  18004. ASN1uint32_t ds;
  18005. ASN1uint32_t i;
  18006. ASN1uint32_t e;
  18007. if (!ASN1PERDecExtensionBit(dec, &y))
  18008. return 0;
  18009. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  18010. return 0;
  18011. if (!ASN1Dec_H323_UU_PDU_h323_message_body(dec, &(val)->h323_message_body))
  18012. return 0;
  18013. if ((val)->o[0] & 0x80) {
  18014. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  18015. return 0;
  18016. }
  18017. if (!y) {
  18018. ZeroMemory((val)->o + 1, 1);
  18019. } else {
  18020. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  18021. return 0;
  18022. if ((val)->o[1] & 0x80) {
  18023. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  18024. return 0;
  18025. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  18026. return 0;
  18027. if (!ASN1Dec_H323_UU_PDU_h4501SupplementaryService(dd, &(val)->h4501SupplementaryService))
  18028. return 0;
  18029. ASN1_CloseDecoder(dd);
  18030. ASN1Free(db);
  18031. }
  18032. if ((val)->o[1] & 0x40) {
  18033. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  18034. return 0;
  18035. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  18036. return 0;
  18037. if (!ASN1PERDecBoolean(dd, &(val)->h245Tunneling))
  18038. return 0;
  18039. ASN1_CloseDecoder(dd);
  18040. ASN1Free(db);
  18041. }
  18042. if ((val)->o[1] & 0x20) {
  18043. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  18044. return 0;
  18045. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  18046. return 0;
  18047. if (!ASN1Dec_H323_UU_PDU_h245Control(dd, &(val)->h245Control))
  18048. return 0;
  18049. ASN1_CloseDecoder(dd);
  18050. ASN1Free(db);
  18051. }
  18052. if ((val)->o[1] & 0x10) {
  18053. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  18054. return 0;
  18055. if (ASN1_CreateDecoder(dec->module, &dd, db, ds, dec) < 0)
  18056. return 0;
  18057. if (!ASN1Dec_H323_UU_PDU_nonStandardControl(dd, &(val)->nonStandardControl))
  18058. return 0;
  18059. ASN1_CloseDecoder(dd);
  18060. ASN1Free(db);
  18061. }
  18062. for (i = 0; i < e; i++) {
  18063. if (!ASN1PERDecSkipFragmented(dec, 8))
  18064. return 0;
  18065. }
  18066. }
  18067. return 1;
  18068. }
  18069. static void ASN1CALL ASN1Free_H323_UU_PDU(H323_UU_PDU *val)
  18070. {
  18071. if (val) {
  18072. ASN1Free_H323_UU_PDU_h323_message_body(&(val)->h323_message_body);
  18073. if ((val)->o[0] & 0x80) {
  18074. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  18075. }
  18076. if ((val)->o[1] & 0x80) {
  18077. ASN1Free_H323_UU_PDU_h4501SupplementaryService(&(val)->h4501SupplementaryService);
  18078. }
  18079. if ((val)->o[1] & 0x20) {
  18080. ASN1Free_H323_UU_PDU_h245Control(&(val)->h245Control);
  18081. }
  18082. if ((val)->o[1] & 0x10) {
  18083. ASN1Free_H323_UU_PDU_nonStandardControl(&(val)->nonStandardControl);
  18084. }
  18085. }
  18086. }
  18087. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
  18088. {
  18089. if (!ASN1Enc_H323_UU_PDU(enc, &(val)->h323pdu))
  18090. return 0;
  18091. if (!ASN1PEREncBoolean(enc, (val)->sent))
  18092. return 0;
  18093. return 1;
  18094. }
  18095. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
  18096. {
  18097. if (!ASN1Dec_H323_UU_PDU(dec, &(val)->h323pdu))
  18098. return 0;
  18099. if (!ASN1PERDecBoolean(dec, &(val)->sent))
  18100. return 0;
  18101. return 1;
  18102. }
  18103. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
  18104. {
  18105. if (val) {
  18106. ASN1Free_H323_UU_PDU(&(val)->h323pdu);
  18107. }
  18108. }
  18109. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu *val)
  18110. {
  18111. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn);
  18112. }
  18113. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu val)
  18114. {
  18115. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(enc, &val->value))
  18116. return 0;
  18117. return 1;
  18118. }
  18119. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu *val)
  18120. {
  18121. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn, sizeof(**val));
  18122. }
  18123. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu val)
  18124. {
  18125. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(dec, &val->value))
  18126. return 0;
  18127. return 1;
  18128. }
  18129. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(PInfoRequestResponse_perCallInfo_Seq_pdu *val)
  18130. {
  18131. if (val) {
  18132. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn);
  18133. }
  18134. }
  18135. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(PInfoRequestResponse_perCallInfo_Seq_pdu val)
  18136. {
  18137. if (val) {
  18138. ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(&val->value);
  18139. }
  18140. }
  18141. static int ASN1CALL ASN1Enc_H323_UserInformation(ASN1encoding_t enc, H323_UserInformation *val)
  18142. {
  18143. if (!ASN1PEREncExtensionBitClear(enc))
  18144. return 0;
  18145. if (!ASN1PEREncBits(enc, 1, (val)->o))
  18146. return 0;
  18147. if (!ASN1Enc_H323_UU_PDU(enc, &(val)->h323_uu_pdu))
  18148. return 0;
  18149. if ((val)->o[0] & 0x80) {
  18150. if (!ASN1Enc_H323_UserInformation_user_data(enc, &(val)->user_data))
  18151. return 0;
  18152. }
  18153. return 1;
  18154. }
  18155. static int ASN1CALL ASN1Dec_H323_UserInformation(ASN1decoding_t dec, H323_UserInformation *val)
  18156. {
  18157. ASN1uint32_t y;
  18158. if (!ASN1PERDecExtensionBit(dec, &y))
  18159. return 0;
  18160. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  18161. return 0;
  18162. if (!ASN1Dec_H323_UU_PDU(dec, &(val)->h323_uu_pdu))
  18163. return 0;
  18164. if ((val)->o[0] & 0x80) {
  18165. if (!ASN1Dec_H323_UserInformation_user_data(dec, &(val)->user_data))
  18166. return 0;
  18167. }
  18168. if (y) {
  18169. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  18170. return 0;
  18171. }
  18172. return 1;
  18173. }
  18174. static void ASN1CALL ASN1Free_H323_UserInformation(H323_UserInformation *val)
  18175. {
  18176. if (val) {
  18177. ASN1Free_H323_UU_PDU(&(val)->h323_uu_pdu);
  18178. if ((val)->o[0] & 0x80) {
  18179. ASN1Free_H323_UserInformation_user_data(&(val)->user_data);
  18180. }
  18181. }
  18182. }