Leaked source code of windows server 2003
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.

19430 lines
682 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. #define ASN1Enc_FastStartToken(x,y) 0
  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. #define ASN1Dec_FastStartToken(x,y) 0
  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. #define ASN1Free_FastStartToken(x)
  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. //nik:change to fix the bug in decoding the extension filds in the CHOICE structure.
  1300. int MyASN1PERDecComplexChoice(ASN1decoding_t dec, ASN1choice_t *pChoiceVal, ASN1int32_t cChoiceBits, ASN1choice_t ExtensionChoice)
  1301. {
  1302. ASN1uint32_t x;
  1303. ASN1uint16_t tempVal;
  1304. if (ASN1PERDecExtensionBit(dec, &x))
  1305. {
  1306. if (!x)
  1307. {
  1308. *pChoiceVal = ASN1_CHOICE_BASE; // default choice
  1309. if (cChoiceBits)
  1310. {
  1311. if (ASN1PERDecU16Val(dec, cChoiceBits, pChoiceVal))
  1312. {
  1313. *pChoiceVal += ASN1_CHOICE_BASE;
  1314. return 1;
  1315. }
  1316. return 0;
  1317. }
  1318. return 1;
  1319. }
  1320. if (ASN1PERDecN16Val(dec, pChoiceVal))
  1321. {
  1322. *pChoiceVal += ExtensionChoice + ASN1_CHOICE_BASE;
  1323. /*skip 2 bytes*/
  1324. return ASN1PERDecS16Val( dec, 16, &tempVal );
  1325. }
  1326. }
  1327. return 0;
  1328. }
  1329. static int ASN1CALL ASN1Dec_Setup_UUIE_conferenceGoal(ASN1decoding_t dec, Setup_UUIE_conferenceGoal *val)
  1330. {
  1331. //nik:
  1332. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
  1333. return 0;
  1334. return 1;
  1335. }
  1336. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV *val)
  1337. {
  1338. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destExtraCRV_ElmFn);
  1339. }
  1340. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV val)
  1341. {
  1342. if (!ASN1PEREncUnsignedShort(enc, val->value))
  1343. return 0;
  1344. return 1;
  1345. }
  1346. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV *val)
  1347. {
  1348. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destExtraCRV_ElmFn, sizeof(**val));
  1349. }
  1350. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV val)
  1351. {
  1352. if (!ASN1PERDecUnsignedShort(dec, &val->value))
  1353. return 0;
  1354. return 1;
  1355. }
  1356. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV(PSetup_UUIE_destExtraCRV *val)
  1357. {
  1358. if (val) {
  1359. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destExtraCRV_ElmFn);
  1360. }
  1361. }
  1362. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV_ElmFn(PSetup_UUIE_destExtraCRV val)
  1363. {
  1364. if (val) {
  1365. }
  1366. }
  1367. static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart(ASN1encoding_t enc, PConnect_UUIE_fastStart *val)
  1368. {
  1369. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_fastStart_ElmFn);
  1370. }
  1371. static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PConnect_UUIE_fastStart val)
  1372. {
  1373. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1374. return 0;
  1375. return 1;
  1376. }
  1377. static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart(ASN1decoding_t dec, PConnect_UUIE_fastStart *val)
  1378. {
  1379. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_fastStart_ElmFn, sizeof(**val));
  1380. }
  1381. static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PConnect_UUIE_fastStart val)
  1382. {
  1383. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1384. return 0;
  1385. return 1;
  1386. }
  1387. static void ASN1CALL ASN1Free_Connect_UUIE_fastStart(PConnect_UUIE_fastStart *val)
  1388. {
  1389. if (val) {
  1390. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_fastStart_ElmFn);
  1391. }
  1392. }
  1393. static void ASN1CALL ASN1Free_Connect_UUIE_fastStart_ElmFn(PConnect_UUIE_fastStart val)
  1394. {
  1395. if (val) {
  1396. ASN1octetstring_free(&val->value);
  1397. }
  1398. }
  1399. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart *val)
  1400. {
  1401. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_fastStart_ElmFn);
  1402. }
  1403. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart val)
  1404. {
  1405. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1406. return 0;
  1407. return 1;
  1408. }
  1409. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart *val)
  1410. {
  1411. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_fastStart_ElmFn, sizeof(**val));
  1412. }
  1413. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart val)
  1414. {
  1415. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1416. return 0;
  1417. return 1;
  1418. }
  1419. static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart(PCallProceeding_UUIE_fastStart *val)
  1420. {
  1421. if (val) {
  1422. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_fastStart_ElmFn);
  1423. }
  1424. }
  1425. static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart_ElmFn(PCallProceeding_UUIE_fastStart val)
  1426. {
  1427. if (val) {
  1428. ASN1octetstring_free(&val->value);
  1429. }
  1430. }
  1431. static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart(ASN1encoding_t enc, PAlerting_UUIE_fastStart *val)
  1432. {
  1433. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_fastStart_ElmFn);
  1434. }
  1435. static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_fastStart val)
  1436. {
  1437. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1438. return 0;
  1439. return 1;
  1440. }
  1441. static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart(ASN1decoding_t dec, PAlerting_UUIE_fastStart *val)
  1442. {
  1443. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_fastStart_ElmFn, sizeof(**val));
  1444. }
  1445. static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_fastStart val)
  1446. {
  1447. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1448. return 0;
  1449. return 1;
  1450. }
  1451. static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart(PAlerting_UUIE_fastStart *val)
  1452. {
  1453. if (val) {
  1454. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_fastStart_ElmFn);
  1455. }
  1456. }
  1457. static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart_ElmFn(PAlerting_UUIE_fastStart val)
  1458. {
  1459. if (val) {
  1460. ASN1octetstring_free(&val->value);
  1461. }
  1462. }
  1463. static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control(ASN1encoding_t enc, PH323_UU_PDU_h245Control *val)
  1464. {
  1465. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_h245Control_ElmFn);
  1466. }
  1467. static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_h245Control val)
  1468. {
  1469. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1470. return 0;
  1471. return 1;
  1472. }
  1473. static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control(ASN1decoding_t dec, PH323_UU_PDU_h245Control *val)
  1474. {
  1475. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_h245Control_ElmFn, sizeof(**val));
  1476. }
  1477. static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_h245Control val)
  1478. {
  1479. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1480. return 0;
  1481. return 1;
  1482. }
  1483. static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control(PH323_UU_PDU_h245Control *val)
  1484. {
  1485. if (val) {
  1486. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_h245Control_ElmFn);
  1487. }
  1488. }
  1489. static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control_ElmFn(PH323_UU_PDU_h245Control val)
  1490. {
  1491. if (val) {
  1492. ASN1octetstring_free(&val->value);
  1493. }
  1494. }
  1495. static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService *val)
  1496. {
  1497. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_h4501SupplementaryService_ElmFn);
  1498. }
  1499. static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService val)
  1500. {
  1501. if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
  1502. return 0;
  1503. return 1;
  1504. }
  1505. static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService *val)
  1506. {
  1507. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_h4501SupplementaryService_ElmFn, sizeof(**val));
  1508. }
  1509. static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService val)
  1510. {
  1511. if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
  1512. return 0;
  1513. return 1;
  1514. }
  1515. static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService(PH323_UU_PDU_h4501SupplementaryService *val)
  1516. {
  1517. if (val) {
  1518. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_h4501SupplementaryService_ElmFn);
  1519. }
  1520. }
  1521. static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService_ElmFn(PH323_UU_PDU_h4501SupplementaryService val)
  1522. {
  1523. if (val) {
  1524. ASN1octetstring_free(&val->value);
  1525. }
  1526. }
  1527. static int ASN1CALL ASN1Enc_H323_UserInformation_user_data(ASN1encoding_t enc, H323_UserInformation_user_data *val)
  1528. {
  1529. if (!ASN1PEREncExtensionBitClear(enc))
  1530. return 0;
  1531. ASN1PEREncAlignment(enc);
  1532. if (!ASN1PEREncBitVal(enc, 8, (val)->protocol_discriminator))
  1533. return 0;
  1534. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->user_information, 1, 131, 8))
  1535. return 0;
  1536. return 1;
  1537. }
  1538. static int ASN1CALL ASN1Dec_H323_UserInformation_user_data(ASN1decoding_t dec, H323_UserInformation_user_data *val)
  1539. {
  1540. ASN1uint32_t y;
  1541. if (!ASN1PERDecExtensionBit(dec, &y))
  1542. return 0;
  1543. ASN1PERDecAlignment(dec);
  1544. if (!ASN1PERDecU16Val(dec, 8, &(val)->protocol_discriminator))
  1545. return 0;
  1546. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->user_information, 1, 131, 8))
  1547. return 0;
  1548. if (y) {
  1549. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1550. return 0;
  1551. }
  1552. return 1;
  1553. }
  1554. static void ASN1CALL ASN1Free_H323_UserInformation_user_data(H323_UserInformation_user_data *val)
  1555. {
  1556. if (val) {
  1557. }
  1558. }
  1559. static int ASN1CALL ASN1Enc_H235NonStandardParameter(ASN1encoding_t enc, H235NonStandardParameter *val)
  1560. {
  1561. if (!ASN1PEREncObjectIdentifier(enc, &(val)->nonStandardIdentifier))
  1562. return 0;
  1563. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
  1564. return 0;
  1565. return 1;
  1566. }
  1567. static int ASN1CALL ASN1Dec_H235NonStandardParameter(ASN1decoding_t dec, H235NonStandardParameter *val)
  1568. {
  1569. if (!ASN1PERDecObjectIdentifier(dec, &(val)->nonStandardIdentifier))
  1570. return 0;
  1571. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
  1572. return 0;
  1573. return 1;
  1574. }
  1575. static void ASN1CALL ASN1Free_H235NonStandardParameter(H235NonStandardParameter *val)
  1576. {
  1577. if (val) {
  1578. ASN1objectidentifier_free(&(val)->nonStandardIdentifier);
  1579. ASN1octetstring_free(&(val)->data);
  1580. }
  1581. }
  1582. static int ASN1CALL ASN1Enc_DHset(ASN1encoding_t enc, DHset *val)
  1583. {
  1584. if (!ASN1PEREncExtensionBitClear(enc))
  1585. return 0;
  1586. ASN1PEREncAlignment(enc);
  1587. if (!ASN1PEREncBitVal(enc, 16, ((val)->halfkey).length))
  1588. return 0;
  1589. if (!ASN1PEREncBits(enc, ((val)->halfkey).length, ((val)->halfkey).value))
  1590. return 0;
  1591. ASN1PEREncAlignment(enc);
  1592. if (!ASN1PEREncBitVal(enc, 16, ((val)->modSize).length))
  1593. return 0;
  1594. if (!ASN1PEREncBits(enc, ((val)->modSize).length, ((val)->modSize).value))
  1595. return 0;
  1596. ASN1PEREncAlignment(enc);
  1597. if (!ASN1PEREncBitVal(enc, 16, ((val)->generator).length))
  1598. return 0;
  1599. if (!ASN1PEREncBits(enc, ((val)->generator).length, ((val)->generator).value))
  1600. return 0;
  1601. return 1;
  1602. }
  1603. static int ASN1CALL ASN1Dec_DHset(ASN1decoding_t dec, DHset *val)
  1604. {
  1605. ASN1uint32_t y;
  1606. if (!ASN1PERDecExtensionBit(dec, &y))
  1607. return 0;
  1608. ASN1PERDecAlignment(dec);
  1609. if (!ASN1PERDecU32Val(dec, 16, &((val)->halfkey).length))
  1610. return 0;
  1611. if (!ASN1PERDecBits(dec, ((val)->halfkey).length, &((val)->halfkey).value))
  1612. return 0;
  1613. ASN1PERDecAlignment(dec);
  1614. if (!ASN1PERDecU32Val(dec, 16, &((val)->modSize).length))
  1615. return 0;
  1616. if (!ASN1PERDecBits(dec, ((val)->modSize).length, &((val)->modSize).value))
  1617. return 0;
  1618. ASN1PERDecAlignment(dec);
  1619. if (!ASN1PERDecU32Val(dec, 16, &((val)->generator).length))
  1620. return 0;
  1621. if (!ASN1PERDecBits(dec, ((val)->generator).length, &((val)->generator).value))
  1622. return 0;
  1623. if (y) {
  1624. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1625. return 0;
  1626. }
  1627. return 1;
  1628. }
  1629. static void ASN1CALL ASN1Free_DHset(DHset *val)
  1630. {
  1631. if (val) {
  1632. ASN1bitstring_free(&(val)->halfkey);
  1633. ASN1bitstring_free(&(val)->modSize);
  1634. ASN1bitstring_free(&(val)->generator);
  1635. }
  1636. }
  1637. static int ASN1CALL ASN1Enc_TypedCertificate(ASN1encoding_t enc, TypedCertificate *val)
  1638. {
  1639. if (!ASN1PEREncExtensionBitClear(enc))
  1640. return 0;
  1641. if (!ASN1PEREncObjectIdentifier(enc, &(val)->type))
  1642. return 0;
  1643. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->certificate))
  1644. return 0;
  1645. return 1;
  1646. }
  1647. static int ASN1CALL ASN1Dec_TypedCertificate(ASN1decoding_t dec, TypedCertificate *val)
  1648. {
  1649. ASN1uint32_t y;
  1650. if (!ASN1PERDecExtensionBit(dec, &y))
  1651. return 0;
  1652. if (!ASN1PERDecObjectIdentifier(dec, &(val)->type))
  1653. return 0;
  1654. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->certificate))
  1655. return 0;
  1656. if (y) {
  1657. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1658. return 0;
  1659. }
  1660. return 1;
  1661. }
  1662. static void ASN1CALL ASN1Free_TypedCertificate(TypedCertificate *val)
  1663. {
  1664. if (val) {
  1665. ASN1objectidentifier_free(&(val)->type);
  1666. ASN1octetstring_free(&(val)->certificate);
  1667. }
  1668. }
  1669. static int ASN1CALL ASN1Enc_AuthenticationMechanism(ASN1encoding_t enc, AuthenticationMechanism *val)
  1670. {
  1671. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  1672. return 0;
  1673. switch ((val)->choice) {
  1674. case 1:
  1675. break;
  1676. case 2:
  1677. break;
  1678. case 3:
  1679. break;
  1680. case 4:
  1681. break;
  1682. case 5:
  1683. break;
  1684. case 6:
  1685. break;
  1686. case 7:
  1687. if (!ASN1Enc_H235NonStandardParameter(enc, &(val)->u.nonStandard))
  1688. return 0;
  1689. break;
  1690. default:
  1691. /* impossible */
  1692. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  1693. return 0;
  1694. }
  1695. return 1;
  1696. }
  1697. static int ASN1CALL ASN1Dec_AuthenticationMechanism(ASN1decoding_t dec, AuthenticationMechanism *val)
  1698. {
  1699. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  1700. return 0;
  1701. switch ((val)->choice) {
  1702. case 1:
  1703. break;
  1704. case 2:
  1705. break;
  1706. case 3:
  1707. break;
  1708. case 4:
  1709. break;
  1710. case 5:
  1711. break;
  1712. case 6:
  1713. break;
  1714. case 7:
  1715. if (!ASN1Dec_H235NonStandardParameter(dec, &(val)->u.nonStandard))
  1716. return 0;
  1717. break;
  1718. case 0:
  1719. /* extension case */
  1720. if (!ASN1PERDecSkipFragmented(dec, 8))
  1721. return 0;
  1722. break;
  1723. default:
  1724. /* impossible */
  1725. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  1726. return 0;
  1727. }
  1728. return 1;
  1729. }
  1730. static void ASN1CALL ASN1Free_AuthenticationMechanism(AuthenticationMechanism *val)
  1731. {
  1732. if (val) {
  1733. switch ((val)->choice) {
  1734. case 7:
  1735. ASN1Free_H235NonStandardParameter(&(val)->u.nonStandard);
  1736. break;
  1737. }
  1738. }
  1739. }
  1740. static int ASN1CALL ASN1Enc_ClearToken(ASN1encoding_t enc, ClearToken *val)
  1741. {
  1742. ASN1uint32_t l;
  1743. if (!ASN1PEREncExtensionBitClear(enc))
  1744. return 0;
  1745. if (!ASN1PEREncBits(enc, 8, (val)->o))
  1746. return 0;
  1747. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  1748. return 0;
  1749. if ((val)->o[0] & 0x80) {
  1750. l = ASN1uint32_uoctets((val)->timeStamp - 1);
  1751. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  1752. return 0;
  1753. ASN1PEREncAlignment(enc);
  1754. if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
  1755. return 0;
  1756. }
  1757. if ((val)->o[0] & 0x40) {
  1758. if (!ASN1PEREncBitVal(enc, 7, ((val)->password).length - 1))
  1759. return 0;
  1760. ASN1PEREncAlignment(enc);
  1761. if (!ASN1PEREncChar16String(enc, ((val)->password).length, ((val)->password).value, 16))
  1762. return 0;
  1763. }
  1764. if ((val)->o[0] & 0x20) {
  1765. if (!ASN1Enc_DHset(enc, &(val)->dhkey))
  1766. return 0;
  1767. }
  1768. if ((val)->o[0] & 0x10) {
  1769. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->challenge, 8, 128, 7))
  1770. return 0;
  1771. }
  1772. if ((val)->o[0] & 0x8) {
  1773. if (!ASN1PEREncInteger(enc, (val)->random))
  1774. return 0;
  1775. }
  1776. if ((val)->o[0] & 0x4) {
  1777. if (!ASN1Enc_TypedCertificate(enc, &(val)->certificate))
  1778. return 0;
  1779. }
  1780. if ((val)->o[0] & 0x2) {
  1781. if (!ASN1PEREncBitVal(enc, 7, ((val)->generalID).length - 1))
  1782. return 0;
  1783. ASN1PEREncAlignment(enc);
  1784. if (!ASN1PEREncChar16String(enc, ((val)->generalID).length, ((val)->generalID).value, 16))
  1785. return 0;
  1786. }
  1787. if ((val)->o[0] & 0x1) {
  1788. if (!ASN1Enc_H235NonStandardParameter(enc, &(val)->nonStandard))
  1789. return 0;
  1790. }
  1791. return 1;
  1792. }
  1793. static int ASN1CALL ASN1Dec_ClearToken(ASN1decoding_t dec, ClearToken *val)
  1794. {
  1795. ASN1uint32_t y;
  1796. ASN1uint32_t l;
  1797. if (!ASN1PERDecExtensionBit(dec, &y))
  1798. return 0;
  1799. if (!ASN1PERDecExtension(dec, 8, (val)->o))
  1800. return 0;
  1801. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  1802. return 0;
  1803. if ((val)->o[0] & 0x80) {
  1804. if (!ASN1PERDecU32Val(dec, 2, &l))
  1805. return 0;
  1806. l += 1;
  1807. ASN1PERDecAlignment(dec);
  1808. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
  1809. return 0;
  1810. (val)->timeStamp += 1;
  1811. }
  1812. if ((val)->o[0] & 0x40) {
  1813. if (!ASN1PERDecU32Val(dec, 7, &((val)->password).length))
  1814. return 0;
  1815. ((val)->password).length += 1;
  1816. ASN1PERDecAlignment(dec);
  1817. if (!ASN1PERDecChar16String(dec, ((val)->password).length, &((val)->password).value, 16))
  1818. return 0;
  1819. }
  1820. if ((val)->o[0] & 0x20) {
  1821. if (!ASN1Dec_DHset(dec, &(val)->dhkey))
  1822. return 0;
  1823. }
  1824. if ((val)->o[0] & 0x10) {
  1825. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->challenge, 8, 128, 7))
  1826. return 0;
  1827. }
  1828. if ((val)->o[0] & 0x8) {
  1829. if (!ASN1PERDecInteger(dec, &(val)->random))
  1830. return 0;
  1831. }
  1832. if ((val)->o[0] & 0x4) {
  1833. if (!ASN1Dec_TypedCertificate(dec, &(val)->certificate))
  1834. return 0;
  1835. }
  1836. if ((val)->o[0] & 0x2) {
  1837. if (!ASN1PERDecU32Val(dec, 7, &((val)->generalID).length))
  1838. return 0;
  1839. ((val)->generalID).length += 1;
  1840. ASN1PERDecAlignment(dec);
  1841. if (!ASN1PERDecChar16String(dec, ((val)->generalID).length, &((val)->generalID).value, 16))
  1842. return 0;
  1843. }
  1844. if ((val)->o[0] & 0x1) {
  1845. if (!ASN1Dec_H235NonStandardParameter(dec, &(val)->nonStandard))
  1846. return 0;
  1847. }
  1848. if (y) {
  1849. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1850. return 0;
  1851. }
  1852. return 1;
  1853. }
  1854. static void ASN1CALL ASN1Free_ClearToken(ClearToken *val)
  1855. {
  1856. if (val) {
  1857. ASN1objectidentifier_free(&(val)->tokenOID);
  1858. if ((val)->o[0] & 0x40) {
  1859. ASN1char16string_free(&(val)->password);
  1860. }
  1861. if ((val)->o[0] & 0x20) {
  1862. ASN1Free_DHset(&(val)->dhkey);
  1863. }
  1864. if ((val)->o[0] & 0x10) {
  1865. }
  1866. if ((val)->o[0] & 0x4) {
  1867. ASN1Free_TypedCertificate(&(val)->certificate);
  1868. }
  1869. if ((val)->o[0] & 0x2) {
  1870. ASN1char16string_free(&(val)->generalID);
  1871. }
  1872. if ((val)->o[0] & 0x1) {
  1873. ASN1Free_H235NonStandardParameter(&(val)->nonStandard);
  1874. }
  1875. }
  1876. }
  1877. static int ASN1CALL ASN1Enc_Params(ASN1encoding_t enc, Params *val)
  1878. {
  1879. if (!ASN1PEREncExtensionBitClear(enc))
  1880. return 0;
  1881. if (!ASN1PEREncBits(enc, 2, (val)->o))
  1882. return 0;
  1883. if ((val)->o[0] & 0x80) {
  1884. if (!ASN1PEREncInteger(enc, (val)->ranInt))
  1885. return 0;
  1886. }
  1887. if ((val)->o[0] & 0x40) {
  1888. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->iv8, 8))
  1889. return 0;
  1890. }
  1891. return 1;
  1892. }
  1893. static int ASN1CALL ASN1Dec_Params(ASN1decoding_t dec, Params *val)
  1894. {
  1895. ASN1uint32_t y;
  1896. if (!ASN1PERDecExtensionBit(dec, &y))
  1897. return 0;
  1898. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  1899. return 0;
  1900. if ((val)->o[0] & 0x80) {
  1901. if (!ASN1PERDecInteger(dec, &(val)->ranInt))
  1902. return 0;
  1903. }
  1904. if ((val)->o[0] & 0x40) {
  1905. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->iv8, 8))
  1906. return 0;
  1907. }
  1908. if (y) {
  1909. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  1910. return 0;
  1911. }
  1912. return 1;
  1913. }
  1914. static void ASN1CALL ASN1Free_Params(Params *val)
  1915. {
  1916. if (val) {
  1917. if ((val)->o[0] & 0x40) {
  1918. }
  1919. }
  1920. }
  1921. static int ASN1CALL ASN1Enc_EncodedGeneralToken(ASN1encoding_t enc, EncodedGeneralToken *val)
  1922. {
  1923. if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
  1924. return 0;
  1925. if (!ASN1Enc_ClearToken(enc, &(val)->type))
  1926. return 0;
  1927. return 1;
  1928. }
  1929. static int ASN1CALL ASN1Dec_EncodedGeneralToken(ASN1decoding_t dec, EncodedGeneralToken *val)
  1930. {
  1931. if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
  1932. return 0;
  1933. if (!ASN1Dec_ClearToken(dec, &(val)->type))
  1934. return 0;
  1935. return 1;
  1936. }
  1937. static void ASN1CALL ASN1Free_EncodedGeneralToken(EncodedGeneralToken *val)
  1938. {
  1939. if (val) {
  1940. ASN1objectidentifier_free(&(val)->id);
  1941. ASN1Free_ClearToken(&(val)->type);
  1942. }
  1943. }
  1944. static int ASN1CALL ASN1Enc_PwdCertToken(ASN1encoding_t enc, PwdCertToken *val)
  1945. {
  1946. if (!ASN1Enc_ClearToken(enc, val))
  1947. return 0;
  1948. return 1;
  1949. }
  1950. static int ASN1CALL ASN1Dec_PwdCertToken(ASN1decoding_t dec, PwdCertToken *val)
  1951. {
  1952. if (!ASN1Dec_ClearToken(dec, val))
  1953. return 0;
  1954. return 1;
  1955. }
  1956. static void ASN1CALL ASN1Free_PwdCertToken(PwdCertToken *val)
  1957. {
  1958. if (val) {
  1959. ASN1Free_ClearToken(val);
  1960. }
  1961. }
  1962. static int ASN1CALL ASN1Enc_EncodedPwdCertToken(ASN1encoding_t enc, EncodedPwdCertToken *val)
  1963. {
  1964. if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
  1965. return 0;
  1966. if (!ASN1Enc_PwdCertToken(enc, &(val)->type))
  1967. return 0;
  1968. return 1;
  1969. }
  1970. static int ASN1CALL ASN1Dec_EncodedPwdCertToken(ASN1decoding_t dec, EncodedPwdCertToken *val)
  1971. {
  1972. if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
  1973. return 0;
  1974. if (!ASN1Dec_PwdCertToken(dec, &(val)->type))
  1975. return 0;
  1976. return 1;
  1977. }
  1978. static void ASN1CALL ASN1Free_EncodedPwdCertToken(EncodedPwdCertToken *val)
  1979. {
  1980. if (val) {
  1981. ASN1objectidentifier_free(&(val)->id);
  1982. ASN1Free_PwdCertToken(&(val)->type);
  1983. }
  1984. }
  1985. static int ASN1CALL ASN1Enc_ReleaseCompleteReason(ASN1encoding_t enc, ReleaseCompleteReason *val)
  1986. {
  1987. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 12))
  1988. return 0;
  1989. return 1;
  1990. }
  1991. static int ASN1CALL ASN1Dec_ReleaseCompleteReason(ASN1decoding_t dec, ReleaseCompleteReason *val)
  1992. {
  1993. //nik:
  1994. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 4, 12))
  1995. return 0;
  1996. return 1;
  1997. }
  1998. static int ASN1CALL ASN1Enc_FacilityReason(ASN1encoding_t enc, FacilityReason *val)
  1999. {
  2000. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
  2001. return 0;
  2002. return 1;
  2003. }
  2004. static int ASN1CALL ASN1Dec_FacilityReason(ASN1decoding_t dec, FacilityReason *val)
  2005. {
  2006. //nik:
  2007. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
  2008. return 0;
  2009. return 1;
  2010. }
  2011. static int ASN1CALL ASN1Enc_H221NonStandard(ASN1encoding_t enc, H221NonStandard *val)
  2012. {
  2013. if (!ASN1PEREncExtensionBitClear(enc))
  2014. return 0;
  2015. ASN1PEREncAlignment(enc);
  2016. if (!ASN1PEREncBitVal(enc, 8, (val)->t35CountryCode))
  2017. return 0;
  2018. ASN1PEREncAlignment(enc);
  2019. if (!ASN1PEREncBitVal(enc, 8, (val)->t35Extension))
  2020. return 0;
  2021. if (!ASN1PEREncUnsignedShort(enc, (val)->manufacturerCode))
  2022. return 0;
  2023. return 1;
  2024. }
  2025. static int ASN1CALL ASN1Dec_H221NonStandard(ASN1decoding_t dec, H221NonStandard *val)
  2026. {
  2027. ASN1uint32_t y;
  2028. if (!ASN1PERDecExtensionBit(dec, &y))
  2029. return 0;
  2030. ASN1PERDecAlignment(dec);
  2031. if (!ASN1PERDecU16Val(dec, 8, &(val)->t35CountryCode))
  2032. return 0;
  2033. ASN1PERDecAlignment(dec);
  2034. if (!ASN1PERDecU16Val(dec, 8, &(val)->t35Extension))
  2035. return 0;
  2036. if (!ASN1PERDecUnsignedShort(dec, &(val)->manufacturerCode))
  2037. return 0;
  2038. if (y) {
  2039. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2040. return 0;
  2041. }
  2042. return 1;
  2043. }
  2044. static int ASN1CALL ASN1Enc_H225NonStandardIdentifier(ASN1encoding_t enc, H225NonStandardIdentifier *val)
  2045. {
  2046. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  2047. return 0;
  2048. switch ((val)->choice) {
  2049. case 1:
  2050. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.object))
  2051. return 0;
  2052. break;
  2053. case 2:
  2054. if (!ASN1Enc_H221NonStandard(enc, &(val)->u.h221NonStandard))
  2055. return 0;
  2056. break;
  2057. default:
  2058. /* impossible */
  2059. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  2060. return 0;
  2061. }
  2062. return 1;
  2063. }
  2064. static int ASN1CALL ASN1Dec_H225NonStandardIdentifier(ASN1decoding_t dec, H225NonStandardIdentifier *val)
  2065. {
  2066. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  2067. return 0;
  2068. switch ((val)->choice) {
  2069. case 1:
  2070. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.object))
  2071. return 0;
  2072. break;
  2073. case 2:
  2074. if (!ASN1Dec_H221NonStandard(dec, &(val)->u.h221NonStandard))
  2075. return 0;
  2076. break;
  2077. case 0:
  2078. /* extension case */
  2079. if (!ASN1PERDecSkipFragmented(dec, 8))
  2080. return 0;
  2081. break;
  2082. default:
  2083. /* impossible */
  2084. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  2085. return 0;
  2086. }
  2087. return 1;
  2088. }
  2089. static void ASN1CALL ASN1Free_H225NonStandardIdentifier(H225NonStandardIdentifier *val)
  2090. {
  2091. if (val) {
  2092. switch ((val)->choice) {
  2093. case 1:
  2094. ASN1objectidentifier_free(&(val)->u.object);
  2095. break;
  2096. }
  2097. }
  2098. }
  2099. static int ASN1CALL ASN1Enc_PublicTypeOfNumber(ASN1encoding_t enc, PublicTypeOfNumber *val)
  2100. {
  2101. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  2102. return 0;
  2103. return 1;
  2104. }
  2105. static int ASN1CALL ASN1Dec_PublicTypeOfNumber(ASN1decoding_t dec, PublicTypeOfNumber *val)
  2106. {
  2107. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  2108. return 0;
  2109. return 1;
  2110. }
  2111. static int ASN1CALL ASN1Enc_PrivateTypeOfNumber(ASN1encoding_t enc, PrivateTypeOfNumber *val)
  2112. {
  2113. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  2114. return 0;
  2115. return 1;
  2116. }
  2117. static int ASN1CALL ASN1Dec_PrivateTypeOfNumber(ASN1decoding_t dec, PrivateTypeOfNumber *val)
  2118. {
  2119. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  2120. return 0;
  2121. return 1;
  2122. }
  2123. static int ASN1CALL ASN1Enc_AltGKInfo(ASN1encoding_t enc, AltGKInfo *val)
  2124. {
  2125. if (!ASN1PEREncExtensionBitClear(enc))
  2126. return 0;
  2127. if (!ASN1Enc_AltGKInfo_alternateGatekeeper(enc, &(val)->alternateGatekeeper))
  2128. return 0;
  2129. if (!ASN1PEREncBoolean(enc, (val)->altGKisPermanent))
  2130. return 0;
  2131. return 1;
  2132. }
  2133. static int ASN1CALL ASN1Dec_AltGKInfo(ASN1decoding_t dec, AltGKInfo *val)
  2134. {
  2135. ASN1uint32_t y;
  2136. if (!ASN1PERDecExtensionBit(dec, &y))
  2137. return 0;
  2138. if (!ASN1Dec_AltGKInfo_alternateGatekeeper(dec, &(val)->alternateGatekeeper))
  2139. return 0;
  2140. if (!ASN1PERDecBoolean(dec, &(val)->altGKisPermanent))
  2141. return 0;
  2142. if (y) {
  2143. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2144. return 0;
  2145. }
  2146. return 1;
  2147. }
  2148. static void ASN1CALL ASN1Free_AltGKInfo(AltGKInfo *val)
  2149. {
  2150. if (val) {
  2151. ASN1Free_AltGKInfo_alternateGatekeeper(&(val)->alternateGatekeeper);
  2152. }
  2153. }
  2154. static int ASN1CALL ASN1Enc_Q954Details(ASN1encoding_t enc, Q954Details *val)
  2155. {
  2156. if (!ASN1PEREncExtensionBitClear(enc))
  2157. return 0;
  2158. if (!ASN1PEREncBoolean(enc, (val)->conferenceCalling))
  2159. return 0;
  2160. if (!ASN1PEREncBoolean(enc, (val)->threePartyService))
  2161. return 0;
  2162. return 1;
  2163. }
  2164. static int ASN1CALL ASN1Dec_Q954Details(ASN1decoding_t dec, Q954Details *val)
  2165. {
  2166. ASN1uint32_t y;
  2167. if (!ASN1PERDecExtensionBit(dec, &y))
  2168. return 0;
  2169. if (!ASN1PERDecBoolean(dec, &(val)->conferenceCalling))
  2170. return 0;
  2171. if (!ASN1PERDecBoolean(dec, &(val)->threePartyService))
  2172. return 0;
  2173. if (y) {
  2174. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2175. return 0;
  2176. }
  2177. return 1;
  2178. }
  2179. static int ASN1CALL ASN1Enc_CallIdentifier(ASN1encoding_t enc, CallIdentifier *val)
  2180. {
  2181. if (!ASN1PEREncExtensionBitClear(enc))
  2182. return 0;
  2183. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->guid, 16))
  2184. return 0;
  2185. return 1;
  2186. }
  2187. static int ASN1CALL ASN1Dec_CallIdentifier(ASN1decoding_t dec, CallIdentifier *val)
  2188. {
  2189. ASN1uint32_t y;
  2190. if (!ASN1PERDecExtensionBit(dec, &y))
  2191. return 0;
  2192. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->guid, 16))
  2193. return 0;
  2194. if (y) {
  2195. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2196. return 0;
  2197. }
  2198. return 1;
  2199. }
  2200. static void ASN1CALL ASN1Free_CallIdentifier(CallIdentifier *val)
  2201. {
  2202. if (val) {
  2203. }
  2204. }
  2205. static int ASN1CALL ASN1Enc_ICV(ASN1encoding_t enc, ICV *val)
  2206. {
  2207. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  2208. return 0;
  2209. if (!ASN1PEREncFragmented(enc, ((val)->icv).length, ((val)->icv).value, 1))
  2210. return 0;
  2211. return 1;
  2212. }
  2213. static int ASN1CALL ASN1Dec_ICV(ASN1decoding_t dec, ICV *val)
  2214. {
  2215. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  2216. return 0;
  2217. if (!ASN1PERDecFragmented(dec, &((val)->icv).length, &((val)->icv).value, 1))
  2218. return 0;
  2219. return 1;
  2220. }
  2221. static void ASN1CALL ASN1Free_ICV(ICV *val)
  2222. {
  2223. if (val) {
  2224. ASN1objectidentifier_free(&(val)->algorithmOID);
  2225. ASN1bitstring_free(&(val)->icv);
  2226. }
  2227. }
  2228. static int ASN1CALL ASN1Enc_GatekeeperRejectReason(ASN1encoding_t enc, GatekeeperRejectReason *val)
  2229. {
  2230. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
  2231. return 0;
  2232. return 1;
  2233. }
  2234. static int ASN1CALL ASN1Dec_GatekeeperRejectReason(ASN1decoding_t dec, GatekeeperRejectReason *val)
  2235. {
  2236. //nik:
  2237. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
  2238. return 0;
  2239. return 1;
  2240. }
  2241. static int ASN1CALL ASN1Enc_RegistrationRejectReason(ASN1encoding_t enc, RegistrationRejectReason *val)
  2242. {
  2243. ASN1encoding_t ee;
  2244. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
  2245. return 0;
  2246. switch ((val)->choice) {
  2247. case 1:
  2248. break;
  2249. case 2:
  2250. break;
  2251. case 3:
  2252. break;
  2253. case 4:
  2254. break;
  2255. case 5:
  2256. if (!ASN1Enc_RegistrationRejectReason_duplicateAlias(enc, &(val)->u.duplicateAlias))
  2257. return 0;
  2258. break;
  2259. case 6:
  2260. break;
  2261. case 7:
  2262. break;
  2263. case 8:
  2264. break;
  2265. case 9:
  2266. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2267. return 0;
  2268. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2269. return 0;
  2270. ASN1_CloseEncoder2(ee);
  2271. break;
  2272. case 10:
  2273. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2274. return 0;
  2275. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2276. return 0;
  2277. ASN1_CloseEncoder2(ee);
  2278. break;
  2279. case 11:
  2280. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2281. return 0;
  2282. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2283. return 0;
  2284. ASN1_CloseEncoder2(ee);
  2285. break;
  2286. case 12:
  2287. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2288. return 0;
  2289. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2290. return 0;
  2291. ASN1_CloseEncoder2(ee);
  2292. break;
  2293. default:
  2294. /* impossible */
  2295. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  2296. return 0;
  2297. }
  2298. return 1;
  2299. }
  2300. static int ASN1CALL ASN1Dec_RegistrationRejectReason(ASN1decoding_t dec, RegistrationRejectReason *val)
  2301. {
  2302. ASN1decoding_t dd;
  2303. ASN1octet_t *db;
  2304. ASN1uint32_t ds;
  2305. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
  2306. return 0;
  2307. switch ((val)->choice) {
  2308. case 1:
  2309. break;
  2310. case 2:
  2311. break;
  2312. case 3:
  2313. break;
  2314. case 4:
  2315. break;
  2316. case 5:
  2317. if (!ASN1Dec_RegistrationRejectReason_duplicateAlias(dec, &(val)->u.duplicateAlias))
  2318. return 0;
  2319. break;
  2320. case 6:
  2321. break;
  2322. case 7:
  2323. break;
  2324. case 8:
  2325. break;
  2326. case 9:
  2327. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2328. return 0;
  2329. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2330. return 0;
  2331. ASN1_CloseDecoder(dd);
  2332. break;
  2333. case 10:
  2334. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2335. return 0;
  2336. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2337. return 0;
  2338. ASN1_CloseDecoder(dd);
  2339. break;
  2340. case 11:
  2341. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2342. return 0;
  2343. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2344. return 0;
  2345. ASN1_CloseDecoder(dd);
  2346. break;
  2347. case 12:
  2348. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2349. return 0;
  2350. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2351. return 0;
  2352. ASN1_CloseDecoder(dd);
  2353. break;
  2354. case 0:
  2355. /* extension case */
  2356. if (!ASN1PERDecSkipFragmented(dec, 8))
  2357. return 0;
  2358. break;
  2359. default:
  2360. /* impossible */
  2361. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  2362. return 0;
  2363. }
  2364. return 1;
  2365. }
  2366. static void ASN1CALL ASN1Free_RegistrationRejectReason(RegistrationRejectReason *val)
  2367. {
  2368. if (val) {
  2369. switch ((val)->choice) {
  2370. case 5:
  2371. ASN1Free_RegistrationRejectReason_duplicateAlias(&(val)->u.duplicateAlias);
  2372. break;
  2373. }
  2374. }
  2375. }
  2376. static int ASN1CALL ASN1Enc_UnregRequestReason(ASN1encoding_t enc, UnregRequestReason *val)
  2377. {
  2378. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2379. return 0;
  2380. return 1;
  2381. }
  2382. static int ASN1CALL ASN1Dec_UnregRequestReason(ASN1decoding_t dec, UnregRequestReason *val)
  2383. {
  2384. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2385. return 0;
  2386. return 1;
  2387. }
  2388. static int ASN1CALL ASN1Enc_UnregRejectReason(ASN1encoding_t enc, UnregRejectReason *val)
  2389. {
  2390. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
  2391. return 0;
  2392. return 1;
  2393. }
  2394. static int ASN1CALL ASN1Dec_UnregRejectReason(ASN1decoding_t dec, UnregRejectReason *val)
  2395. {
  2396. //nik:
  2397. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
  2398. return 0;
  2399. return 1;
  2400. }
  2401. static int ASN1CALL ASN1Enc_CallType(ASN1encoding_t enc, CallType *val)
  2402. {
  2403. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2404. return 0;
  2405. return 1;
  2406. }
  2407. static int ASN1CALL ASN1Dec_CallType(ASN1decoding_t dec, CallType *val)
  2408. {
  2409. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2410. return 0;
  2411. return 1;
  2412. }
  2413. static int ASN1CALL ASN1Enc_CallModel(ASN1encoding_t enc, CallModel *val)
  2414. {
  2415. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  2416. return 0;
  2417. return 1;
  2418. }
  2419. static int ASN1CALL ASN1Dec_CallModel(ASN1decoding_t dec, CallModel *val)
  2420. {
  2421. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  2422. return 0;
  2423. return 1;
  2424. }
  2425. static int ASN1CALL ASN1Enc_TransportQOS(ASN1encoding_t enc, TransportQOS *val)
  2426. {
  2427. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2428. return 0;
  2429. return 1;
  2430. }
  2431. static int ASN1CALL ASN1Dec_TransportQOS(ASN1decoding_t dec, TransportQOS *val)
  2432. {
  2433. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2434. return 0;
  2435. return 1;
  2436. }
  2437. static int ASN1CALL ASN1Enc_UUIEsRequested(ASN1encoding_t enc, UUIEsRequested *val)
  2438. {
  2439. if (!ASN1PEREncExtensionBitClear(enc))
  2440. return 0;
  2441. if (!ASN1PEREncBoolean(enc, (val)->setup))
  2442. return 0;
  2443. if (!ASN1PEREncBoolean(enc, (val)->callProceeding))
  2444. return 0;
  2445. if (!ASN1PEREncBoolean(enc, (val)->connect))
  2446. return 0;
  2447. if (!ASN1PEREncBoolean(enc, (val)->alerting))
  2448. return 0;
  2449. if (!ASN1PEREncBoolean(enc, (val)->information))
  2450. return 0;
  2451. if (!ASN1PEREncBoolean(enc, (val)->releaseComplete))
  2452. return 0;
  2453. if (!ASN1PEREncBoolean(enc, (val)->facility))
  2454. return 0;
  2455. if (!ASN1PEREncBoolean(enc, (val)->progress))
  2456. return 0;
  2457. if (!ASN1PEREncBoolean(enc, (val)->empty))
  2458. return 0;
  2459. return 1;
  2460. }
  2461. static int ASN1CALL ASN1Dec_UUIEsRequested(ASN1decoding_t dec, UUIEsRequested *val)
  2462. {
  2463. ASN1uint32_t y;
  2464. if (!ASN1PERDecExtensionBit(dec, &y))
  2465. return 0;
  2466. if (!ASN1PERDecBoolean(dec, &(val)->setup))
  2467. return 0;
  2468. if (!ASN1PERDecBoolean(dec, &(val)->callProceeding))
  2469. return 0;
  2470. if (!ASN1PERDecBoolean(dec, &(val)->connect))
  2471. return 0;
  2472. if (!ASN1PERDecBoolean(dec, &(val)->alerting))
  2473. return 0;
  2474. if (!ASN1PERDecBoolean(dec, &(val)->information))
  2475. return 0;
  2476. if (!ASN1PERDecBoolean(dec, &(val)->releaseComplete))
  2477. return 0;
  2478. if (!ASN1PERDecBoolean(dec, &(val)->facility))
  2479. return 0;
  2480. if (!ASN1PERDecBoolean(dec, &(val)->progress))
  2481. return 0;
  2482. if (!ASN1PERDecBoolean(dec, &(val)->empty))
  2483. return 0;
  2484. if (y) {
  2485. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  2486. return 0;
  2487. }
  2488. return 1;
  2489. }
  2490. static int ASN1CALL ASN1Enc_AdmissionRejectReason(ASN1encoding_t enc, AdmissionRejectReason *val)
  2491. {
  2492. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
  2493. return 0;
  2494. return 1;
  2495. }
  2496. static int ASN1CALL ASN1Dec_AdmissionRejectReason(ASN1decoding_t dec, AdmissionRejectReason *val)
  2497. {
  2498. //nik:
  2499. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
  2500. return 0;
  2501. return 1;
  2502. }
  2503. static int ASN1CALL ASN1Enc_BandRejectReason(ASN1encoding_t enc, BandRejectReason *val)
  2504. {
  2505. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
  2506. return 0;
  2507. return 1;
  2508. }
  2509. static int ASN1CALL ASN1Dec_BandRejectReason(ASN1decoding_t dec, BandRejectReason *val)
  2510. {
  2511. //nik:
  2512. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
  2513. return 0;
  2514. return 1;
  2515. }
  2516. static int ASN1CALL ASN1Enc_LocationRejectReason(ASN1encoding_t enc, LocationRejectReason *val)
  2517. {
  2518. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
  2519. return 0;
  2520. return 1;
  2521. }
  2522. static int ASN1CALL ASN1Dec_LocationRejectReason(ASN1decoding_t dec, LocationRejectReason *val)
  2523. {
  2524. //nik:
  2525. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
  2526. return 0;
  2527. return 1;
  2528. }
  2529. static int ASN1CALL ASN1Enc_DisengageReason(ASN1encoding_t enc, DisengageReason *val)
  2530. {
  2531. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2532. return 0;
  2533. return 1;
  2534. }
  2535. static int ASN1CALL ASN1Dec_DisengageReason(ASN1decoding_t dec, DisengageReason *val)
  2536. {
  2537. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2538. return 0;
  2539. return 1;
  2540. }
  2541. static int ASN1CALL ASN1Enc_DisengageRejectReason(ASN1encoding_t enc, DisengageRejectReason *val)
  2542. {
  2543. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
  2544. return 0;
  2545. return 1;
  2546. }
  2547. static int ASN1CALL ASN1Dec_DisengageRejectReason(ASN1decoding_t dec, DisengageRejectReason *val)
  2548. {
  2549. //nik:
  2550. if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
  2551. return 0;
  2552. return 1;
  2553. }
  2554. static int ASN1CALL ASN1Enc_InfoRequestNakReason(ASN1encoding_t enc, InfoRequestNakReason *val)
  2555. {
  2556. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  2557. return 0;
  2558. return 1;
  2559. }
  2560. static int ASN1CALL ASN1Dec_InfoRequestNakReason(ASN1decoding_t dec, InfoRequestNakReason *val)
  2561. {
  2562. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  2563. return 0;
  2564. return 1;
  2565. }
  2566. static int ASN1CALL ASN1Enc_UnknownMessageResponse(ASN1encoding_t enc, UnknownMessageResponse *val)
  2567. {
  2568. ASN1uint32_t y;
  2569. ASN1encoding_t ee;
  2570. y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
  2571. if (!ASN1PEREncBitVal(enc, 1, y))
  2572. return 0;
  2573. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  2574. return 0;
  2575. if (y) {
  2576. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 0))
  2577. return 0;
  2578. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  2579. return 0;
  2580. if ((val)->o[0] & 0x80) {
  2581. if (!ASN1Enc_UnknownMessageResponse_tokens(ee, &(val)->tokens))
  2582. return 0;
  2583. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2584. return 0;
  2585. }
  2586. if ((val)->o[0] & 0x40) {
  2587. if (!ASN1Enc_UnknownMessageResponse_cryptoTokens(ee, &(val)->cryptoTokens))
  2588. return 0;
  2589. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2590. return 0;
  2591. }
  2592. if ((val)->o[0] & 0x20) {
  2593. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  2594. return 0;
  2595. if (!ASN1PEREncFlushFragmentedToParent(ee))
  2596. return 0;
  2597. }
  2598. ASN1_CloseEncoder2(ee);
  2599. }
  2600. return 1;
  2601. }
  2602. static int ASN1CALL ASN1Dec_UnknownMessageResponse(ASN1decoding_t dec, UnknownMessageResponse *val)
  2603. {
  2604. ASN1uint32_t y;
  2605. ASN1decoding_t dd;
  2606. ASN1octet_t *db;
  2607. ASN1uint32_t ds;
  2608. ASN1uint32_t i;
  2609. ASN1uint32_t e;
  2610. if (!ASN1PERDecExtensionBit(dec, &y))
  2611. return 0;
  2612. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  2613. return 0;
  2614. (val)->requestSeqNum += 1;
  2615. if (!y) {
  2616. ZeroMemory((val)->o + 0, 1);
  2617. } else {
  2618. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
  2619. return 0;
  2620. if ((val)->o[0] & 0x80) {
  2621. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2622. return 0;
  2623. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2624. return 0;
  2625. if (!ASN1Dec_UnknownMessageResponse_tokens(dd, &(val)->tokens))
  2626. return 0;
  2627. ASN1_CloseDecoder(dd);
  2628. }
  2629. if ((val)->o[0] & 0x40) {
  2630. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2631. return 0;
  2632. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2633. return 0;
  2634. if (!ASN1Dec_UnknownMessageResponse_cryptoTokens(dd, &(val)->cryptoTokens))
  2635. return 0;
  2636. ASN1_CloseDecoder(dd);
  2637. }
  2638. if ((val)->o[0] & 0x20) {
  2639. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  2640. return 0;
  2641. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  2642. return 0;
  2643. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  2644. return 0;
  2645. ASN1_CloseDecoder(dd);
  2646. }
  2647. for (i = 0; i < e; i++) {
  2648. if (!ASN1PERDecSkipFragmented(dec, 8))
  2649. return 0;
  2650. }
  2651. }
  2652. return 1;
  2653. }
  2654. static void ASN1CALL ASN1Free_UnknownMessageResponse(UnknownMessageResponse *val)
  2655. {
  2656. if (val) {
  2657. if ((val)->o[0] & 0x80) {
  2658. ASN1Free_UnknownMessageResponse_tokens(&(val)->tokens);
  2659. }
  2660. if ((val)->o[0] & 0x40) {
  2661. ASN1Free_UnknownMessageResponse_cryptoTokens(&(val)->cryptoTokens);
  2662. }
  2663. if ((val)->o[0] & 0x20) {
  2664. ASN1Free_ICV(&(val)->integrityCheckValue);
  2665. }
  2666. }
  2667. }
  2668. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens *val)
  2669. {
  2670. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn);
  2671. }
  2672. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens val)
  2673. {
  2674. if (!ASN1Enc_ClearToken(enc, &val->value))
  2675. return 0;
  2676. return 1;
  2677. }
  2678. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens *val)
  2679. {
  2680. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn, sizeof(**val));
  2681. }
  2682. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens val)
  2683. {
  2684. if (!ASN1Dec_ClearToken(dec, &val->value))
  2685. return 0;
  2686. return 1;
  2687. }
  2688. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(PInfoRequestResponse_perCallInfo_Seq_tokens *val)
  2689. {
  2690. if (val) {
  2691. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn);
  2692. }
  2693. }
  2694. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(PInfoRequestResponse_perCallInfo_Seq_tokens val)
  2695. {
  2696. if (val) {
  2697. ASN1Free_ClearToken(&val->value);
  2698. }
  2699. }
  2700. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens *val)
  2701. {
  2702. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableConfirm_tokens_ElmFn);
  2703. }
  2704. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens val)
  2705. {
  2706. if (!ASN1Enc_ClearToken(enc, &val->value))
  2707. return 0;
  2708. return 1;
  2709. }
  2710. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens *val)
  2711. {
  2712. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableConfirm_tokens_ElmFn, sizeof(**val));
  2713. }
  2714. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens val)
  2715. {
  2716. if (!ASN1Dec_ClearToken(dec, &val->value))
  2717. return 0;
  2718. return 1;
  2719. }
  2720. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens(PResourcesAvailableConfirm_tokens *val)
  2721. {
  2722. if (val) {
  2723. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableConfirm_tokens_ElmFn);
  2724. }
  2725. }
  2726. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens_ElmFn(PResourcesAvailableConfirm_tokens val)
  2727. {
  2728. if (val) {
  2729. ASN1Free_ClearToken(&val->value);
  2730. }
  2731. }
  2732. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens *val)
  2733. {
  2734. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_tokens_ElmFn);
  2735. }
  2736. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens val)
  2737. {
  2738. if (!ASN1Enc_ClearToken(enc, &val->value))
  2739. return 0;
  2740. return 1;
  2741. }
  2742. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens *val)
  2743. {
  2744. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_tokens_ElmFn, sizeof(**val));
  2745. }
  2746. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens val)
  2747. {
  2748. if (!ASN1Dec_ClearToken(dec, &val->value))
  2749. return 0;
  2750. return 1;
  2751. }
  2752. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens(PResourcesAvailableIndicate_tokens *val)
  2753. {
  2754. if (val) {
  2755. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_tokens_ElmFn);
  2756. }
  2757. }
  2758. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens_ElmFn(PResourcesAvailableIndicate_tokens val)
  2759. {
  2760. if (val) {
  2761. ASN1Free_ClearToken(&val->value);
  2762. }
  2763. }
  2764. static int ASN1CALL ASN1Enc_RequestInProgress_tokens(ASN1encoding_t enc, PRequestInProgress_tokens *val)
  2765. {
  2766. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestInProgress_tokens_ElmFn);
  2767. }
  2768. static int ASN1CALL ASN1Enc_RequestInProgress_tokens_ElmFn(ASN1encoding_t enc, PRequestInProgress_tokens val)
  2769. {
  2770. if (!ASN1Enc_ClearToken(enc, &val->value))
  2771. return 0;
  2772. return 1;
  2773. }
  2774. static int ASN1CALL ASN1Dec_RequestInProgress_tokens(ASN1decoding_t dec, PRequestInProgress_tokens *val)
  2775. {
  2776. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestInProgress_tokens_ElmFn, sizeof(**val));
  2777. }
  2778. static int ASN1CALL ASN1Dec_RequestInProgress_tokens_ElmFn(ASN1decoding_t dec, PRequestInProgress_tokens val)
  2779. {
  2780. if (!ASN1Dec_ClearToken(dec, &val->value))
  2781. return 0;
  2782. return 1;
  2783. }
  2784. static void ASN1CALL ASN1Free_RequestInProgress_tokens(PRequestInProgress_tokens *val)
  2785. {
  2786. if (val) {
  2787. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestInProgress_tokens_ElmFn);
  2788. }
  2789. }
  2790. static void ASN1CALL ASN1Free_RequestInProgress_tokens_ElmFn(PRequestInProgress_tokens val)
  2791. {
  2792. if (val) {
  2793. ASN1Free_ClearToken(&val->value);
  2794. }
  2795. }
  2796. static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens(ASN1encoding_t enc, PUnknownMessageResponse_tokens *val)
  2797. {
  2798. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnknownMessageResponse_tokens_ElmFn);
  2799. }
  2800. static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens_ElmFn(ASN1encoding_t enc, PUnknownMessageResponse_tokens val)
  2801. {
  2802. if (!ASN1Enc_ClearToken(enc, &val->value))
  2803. return 0;
  2804. return 1;
  2805. }
  2806. static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens(ASN1decoding_t dec, PUnknownMessageResponse_tokens *val)
  2807. {
  2808. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnknownMessageResponse_tokens_ElmFn, sizeof(**val));
  2809. }
  2810. static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens_ElmFn(ASN1decoding_t dec, PUnknownMessageResponse_tokens val)
  2811. {
  2812. if (!ASN1Dec_ClearToken(dec, &val->value))
  2813. return 0;
  2814. return 1;
  2815. }
  2816. static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens(PUnknownMessageResponse_tokens *val)
  2817. {
  2818. if (val) {
  2819. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnknownMessageResponse_tokens_ElmFn);
  2820. }
  2821. }
  2822. static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens_ElmFn(PUnknownMessageResponse_tokens val)
  2823. {
  2824. if (val) {
  2825. ASN1Free_ClearToken(&val->value);
  2826. }
  2827. }
  2828. static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens(ASN1encoding_t enc, PH225NonStandardMessage_tokens *val)
  2829. {
  2830. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H225NonStandardMessage_tokens_ElmFn);
  2831. }
  2832. static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens_ElmFn(ASN1encoding_t enc, PH225NonStandardMessage_tokens val)
  2833. {
  2834. if (!ASN1Enc_ClearToken(enc, &val->value))
  2835. return 0;
  2836. return 1;
  2837. }
  2838. static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens(ASN1decoding_t dec, PH225NonStandardMessage_tokens *val)
  2839. {
  2840. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H225NonStandardMessage_tokens_ElmFn, sizeof(**val));
  2841. }
  2842. static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens_ElmFn(ASN1decoding_t dec, PH225NonStandardMessage_tokens val)
  2843. {
  2844. if (!ASN1Dec_ClearToken(dec, &val->value))
  2845. return 0;
  2846. return 1;
  2847. }
  2848. static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens(PH225NonStandardMessage_tokens *val)
  2849. {
  2850. if (val) {
  2851. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H225NonStandardMessage_tokens_ElmFn);
  2852. }
  2853. }
  2854. static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens_ElmFn(PH225NonStandardMessage_tokens val)
  2855. {
  2856. if (val) {
  2857. ASN1Free_ClearToken(&val->value);
  2858. }
  2859. }
  2860. static int ASN1CALL ASN1Enc_InfoRequestNak_tokens(ASN1encoding_t enc, PInfoRequestNak_tokens *val)
  2861. {
  2862. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestNak_tokens_ElmFn);
  2863. }
  2864. static int ASN1CALL ASN1Enc_InfoRequestNak_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestNak_tokens val)
  2865. {
  2866. if (!ASN1Enc_ClearToken(enc, &val->value))
  2867. return 0;
  2868. return 1;
  2869. }
  2870. static int ASN1CALL ASN1Dec_InfoRequestNak_tokens(ASN1decoding_t dec, PInfoRequestNak_tokens *val)
  2871. {
  2872. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestNak_tokens_ElmFn, sizeof(**val));
  2873. }
  2874. static int ASN1CALL ASN1Dec_InfoRequestNak_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestNak_tokens val)
  2875. {
  2876. if (!ASN1Dec_ClearToken(dec, &val->value))
  2877. return 0;
  2878. return 1;
  2879. }
  2880. static void ASN1CALL ASN1Free_InfoRequestNak_tokens(PInfoRequestNak_tokens *val)
  2881. {
  2882. if (val) {
  2883. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestNak_tokens_ElmFn);
  2884. }
  2885. }
  2886. static void ASN1CALL ASN1Free_InfoRequestNak_tokens_ElmFn(PInfoRequestNak_tokens val)
  2887. {
  2888. if (val) {
  2889. ASN1Free_ClearToken(&val->value);
  2890. }
  2891. }
  2892. static int ASN1CALL ASN1Enc_InfoRequestAck_tokens(ASN1encoding_t enc, PInfoRequestAck_tokens *val)
  2893. {
  2894. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestAck_tokens_ElmFn);
  2895. }
  2896. static int ASN1CALL ASN1Enc_InfoRequestAck_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestAck_tokens val)
  2897. {
  2898. if (!ASN1Enc_ClearToken(enc, &val->value))
  2899. return 0;
  2900. return 1;
  2901. }
  2902. static int ASN1CALL ASN1Dec_InfoRequestAck_tokens(ASN1decoding_t dec, PInfoRequestAck_tokens *val)
  2903. {
  2904. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestAck_tokens_ElmFn, sizeof(**val));
  2905. }
  2906. static int ASN1CALL ASN1Dec_InfoRequestAck_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestAck_tokens val)
  2907. {
  2908. if (!ASN1Dec_ClearToken(dec, &val->value))
  2909. return 0;
  2910. return 1;
  2911. }
  2912. static void ASN1CALL ASN1Free_InfoRequestAck_tokens(PInfoRequestAck_tokens *val)
  2913. {
  2914. if (val) {
  2915. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestAck_tokens_ElmFn);
  2916. }
  2917. }
  2918. static void ASN1CALL ASN1Free_InfoRequestAck_tokens_ElmFn(PInfoRequestAck_tokens val)
  2919. {
  2920. if (val) {
  2921. ASN1Free_ClearToken(&val->value);
  2922. }
  2923. }
  2924. static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens(ASN1encoding_t enc, PInfoRequestResponse_tokens *val)
  2925. {
  2926. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_tokens_ElmFn);
  2927. }
  2928. static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_tokens val)
  2929. {
  2930. if (!ASN1Enc_ClearToken(enc, &val->value))
  2931. return 0;
  2932. return 1;
  2933. }
  2934. static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens(ASN1decoding_t dec, PInfoRequestResponse_tokens *val)
  2935. {
  2936. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_tokens_ElmFn, sizeof(**val));
  2937. }
  2938. static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_tokens val)
  2939. {
  2940. if (!ASN1Dec_ClearToken(dec, &val->value))
  2941. return 0;
  2942. return 1;
  2943. }
  2944. static void ASN1CALL ASN1Free_InfoRequestResponse_tokens(PInfoRequestResponse_tokens *val)
  2945. {
  2946. if (val) {
  2947. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_tokens_ElmFn);
  2948. }
  2949. }
  2950. static void ASN1CALL ASN1Free_InfoRequestResponse_tokens_ElmFn(PInfoRequestResponse_tokens val)
  2951. {
  2952. if (val) {
  2953. ASN1Free_ClearToken(&val->value);
  2954. }
  2955. }
  2956. static int ASN1CALL ASN1Enc_InfoRequest_tokens(ASN1encoding_t enc, PInfoRequest_tokens *val)
  2957. {
  2958. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequest_tokens_ElmFn);
  2959. }
  2960. static int ASN1CALL ASN1Enc_InfoRequest_tokens_ElmFn(ASN1encoding_t enc, PInfoRequest_tokens val)
  2961. {
  2962. if (!ASN1Enc_ClearToken(enc, &val->value))
  2963. return 0;
  2964. return 1;
  2965. }
  2966. static int ASN1CALL ASN1Dec_InfoRequest_tokens(ASN1decoding_t dec, PInfoRequest_tokens *val)
  2967. {
  2968. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequest_tokens_ElmFn, sizeof(**val));
  2969. }
  2970. static int ASN1CALL ASN1Dec_InfoRequest_tokens_ElmFn(ASN1decoding_t dec, PInfoRequest_tokens val)
  2971. {
  2972. if (!ASN1Dec_ClearToken(dec, &val->value))
  2973. return 0;
  2974. return 1;
  2975. }
  2976. static void ASN1CALL ASN1Free_InfoRequest_tokens(PInfoRequest_tokens *val)
  2977. {
  2978. if (val) {
  2979. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequest_tokens_ElmFn);
  2980. }
  2981. }
  2982. static void ASN1CALL ASN1Free_InfoRequest_tokens_ElmFn(PInfoRequest_tokens val)
  2983. {
  2984. if (val) {
  2985. ASN1Free_ClearToken(&val->value);
  2986. }
  2987. }
  2988. static int ASN1CALL ASN1Enc_DisengageReject_tokens(ASN1encoding_t enc, PDisengageReject_tokens *val)
  2989. {
  2990. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageReject_tokens_ElmFn);
  2991. }
  2992. static int ASN1CALL ASN1Enc_DisengageReject_tokens_ElmFn(ASN1encoding_t enc, PDisengageReject_tokens val)
  2993. {
  2994. if (!ASN1Enc_ClearToken(enc, &val->value))
  2995. return 0;
  2996. return 1;
  2997. }
  2998. static int ASN1CALL ASN1Dec_DisengageReject_tokens(ASN1decoding_t dec, PDisengageReject_tokens *val)
  2999. {
  3000. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageReject_tokens_ElmFn, sizeof(**val));
  3001. }
  3002. static int ASN1CALL ASN1Dec_DisengageReject_tokens_ElmFn(ASN1decoding_t dec, PDisengageReject_tokens val)
  3003. {
  3004. if (!ASN1Dec_ClearToken(dec, &val->value))
  3005. return 0;
  3006. return 1;
  3007. }
  3008. static void ASN1CALL ASN1Free_DisengageReject_tokens(PDisengageReject_tokens *val)
  3009. {
  3010. if (val) {
  3011. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageReject_tokens_ElmFn);
  3012. }
  3013. }
  3014. static void ASN1CALL ASN1Free_DisengageReject_tokens_ElmFn(PDisengageReject_tokens val)
  3015. {
  3016. if (val) {
  3017. ASN1Free_ClearToken(&val->value);
  3018. }
  3019. }
  3020. static int ASN1CALL ASN1Enc_DisengageConfirm_tokens(ASN1encoding_t enc, PDisengageConfirm_tokens *val)
  3021. {
  3022. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageConfirm_tokens_ElmFn);
  3023. }
  3024. static int ASN1CALL ASN1Enc_DisengageConfirm_tokens_ElmFn(ASN1encoding_t enc, PDisengageConfirm_tokens val)
  3025. {
  3026. if (!ASN1Enc_ClearToken(enc, &val->value))
  3027. return 0;
  3028. return 1;
  3029. }
  3030. static int ASN1CALL ASN1Dec_DisengageConfirm_tokens(ASN1decoding_t dec, PDisengageConfirm_tokens *val)
  3031. {
  3032. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageConfirm_tokens_ElmFn, sizeof(**val));
  3033. }
  3034. static int ASN1CALL ASN1Dec_DisengageConfirm_tokens_ElmFn(ASN1decoding_t dec, PDisengageConfirm_tokens val)
  3035. {
  3036. if (!ASN1Dec_ClearToken(dec, &val->value))
  3037. return 0;
  3038. return 1;
  3039. }
  3040. static void ASN1CALL ASN1Free_DisengageConfirm_tokens(PDisengageConfirm_tokens *val)
  3041. {
  3042. if (val) {
  3043. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageConfirm_tokens_ElmFn);
  3044. }
  3045. }
  3046. static void ASN1CALL ASN1Free_DisengageConfirm_tokens_ElmFn(PDisengageConfirm_tokens val)
  3047. {
  3048. if (val) {
  3049. ASN1Free_ClearToken(&val->value);
  3050. }
  3051. }
  3052. static int ASN1CALL ASN1Enc_DisengageRequest_tokens(ASN1encoding_t enc, PDisengageRequest_tokens *val)
  3053. {
  3054. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageRequest_tokens_ElmFn);
  3055. }
  3056. static int ASN1CALL ASN1Enc_DisengageRequest_tokens_ElmFn(ASN1encoding_t enc, PDisengageRequest_tokens val)
  3057. {
  3058. if (!ASN1Enc_ClearToken(enc, &val->value))
  3059. return 0;
  3060. return 1;
  3061. }
  3062. static int ASN1CALL ASN1Dec_DisengageRequest_tokens(ASN1decoding_t dec, PDisengageRequest_tokens *val)
  3063. {
  3064. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageRequest_tokens_ElmFn, sizeof(**val));
  3065. }
  3066. static int ASN1CALL ASN1Dec_DisengageRequest_tokens_ElmFn(ASN1decoding_t dec, PDisengageRequest_tokens val)
  3067. {
  3068. if (!ASN1Dec_ClearToken(dec, &val->value))
  3069. return 0;
  3070. return 1;
  3071. }
  3072. static void ASN1CALL ASN1Free_DisengageRequest_tokens(PDisengageRequest_tokens *val)
  3073. {
  3074. if (val) {
  3075. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageRequest_tokens_ElmFn);
  3076. }
  3077. }
  3078. static void ASN1CALL ASN1Free_DisengageRequest_tokens_ElmFn(PDisengageRequest_tokens val)
  3079. {
  3080. if (val) {
  3081. ASN1Free_ClearToken(&val->value);
  3082. }
  3083. }
  3084. static int ASN1CALL ASN1Enc_LocationReject_tokens(ASN1encoding_t enc, PLocationReject_tokens *val)
  3085. {
  3086. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationReject_tokens_ElmFn);
  3087. }
  3088. static int ASN1CALL ASN1Enc_LocationReject_tokens_ElmFn(ASN1encoding_t enc, PLocationReject_tokens val)
  3089. {
  3090. if (!ASN1Enc_ClearToken(enc, &val->value))
  3091. return 0;
  3092. return 1;
  3093. }
  3094. static int ASN1CALL ASN1Dec_LocationReject_tokens(ASN1decoding_t dec, PLocationReject_tokens *val)
  3095. {
  3096. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationReject_tokens_ElmFn, sizeof(**val));
  3097. }
  3098. static int ASN1CALL ASN1Dec_LocationReject_tokens_ElmFn(ASN1decoding_t dec, PLocationReject_tokens val)
  3099. {
  3100. if (!ASN1Dec_ClearToken(dec, &val->value))
  3101. return 0;
  3102. return 1;
  3103. }
  3104. static void ASN1CALL ASN1Free_LocationReject_tokens(PLocationReject_tokens *val)
  3105. {
  3106. if (val) {
  3107. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationReject_tokens_ElmFn);
  3108. }
  3109. }
  3110. static void ASN1CALL ASN1Free_LocationReject_tokens_ElmFn(PLocationReject_tokens val)
  3111. {
  3112. if (val) {
  3113. ASN1Free_ClearToken(&val->value);
  3114. }
  3115. }
  3116. static int ASN1CALL ASN1Enc_LocationConfirm_tokens(ASN1encoding_t enc, PLocationConfirm_tokens *val)
  3117. {
  3118. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_tokens_ElmFn);
  3119. }
  3120. static int ASN1CALL ASN1Enc_LocationConfirm_tokens_ElmFn(ASN1encoding_t enc, PLocationConfirm_tokens val)
  3121. {
  3122. if (!ASN1Enc_ClearToken(enc, &val->value))
  3123. return 0;
  3124. return 1;
  3125. }
  3126. static int ASN1CALL ASN1Dec_LocationConfirm_tokens(ASN1decoding_t dec, PLocationConfirm_tokens *val)
  3127. {
  3128. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_tokens_ElmFn, sizeof(**val));
  3129. }
  3130. static int ASN1CALL ASN1Dec_LocationConfirm_tokens_ElmFn(ASN1decoding_t dec, PLocationConfirm_tokens val)
  3131. {
  3132. if (!ASN1Dec_ClearToken(dec, &val->value))
  3133. return 0;
  3134. return 1;
  3135. }
  3136. static void ASN1CALL ASN1Free_LocationConfirm_tokens(PLocationConfirm_tokens *val)
  3137. {
  3138. if (val) {
  3139. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_tokens_ElmFn);
  3140. }
  3141. }
  3142. static void ASN1CALL ASN1Free_LocationConfirm_tokens_ElmFn(PLocationConfirm_tokens val)
  3143. {
  3144. if (val) {
  3145. ASN1Free_ClearToken(&val->value);
  3146. }
  3147. }
  3148. static int ASN1CALL ASN1Enc_LocationRequest_tokens(ASN1encoding_t enc, PLocationRequest_tokens *val)
  3149. {
  3150. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_tokens_ElmFn);
  3151. }
  3152. static int ASN1CALL ASN1Enc_LocationRequest_tokens_ElmFn(ASN1encoding_t enc, PLocationRequest_tokens val)
  3153. {
  3154. if (!ASN1Enc_ClearToken(enc, &val->value))
  3155. return 0;
  3156. return 1;
  3157. }
  3158. static int ASN1CALL ASN1Dec_LocationRequest_tokens(ASN1decoding_t dec, PLocationRequest_tokens *val)
  3159. {
  3160. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_tokens_ElmFn, sizeof(**val));
  3161. }
  3162. static int ASN1CALL ASN1Dec_LocationRequest_tokens_ElmFn(ASN1decoding_t dec, PLocationRequest_tokens val)
  3163. {
  3164. if (!ASN1Dec_ClearToken(dec, &val->value))
  3165. return 0;
  3166. return 1;
  3167. }
  3168. static void ASN1CALL ASN1Free_LocationRequest_tokens(PLocationRequest_tokens *val)
  3169. {
  3170. if (val) {
  3171. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_tokens_ElmFn);
  3172. }
  3173. }
  3174. static void ASN1CALL ASN1Free_LocationRequest_tokens_ElmFn(PLocationRequest_tokens val)
  3175. {
  3176. if (val) {
  3177. ASN1Free_ClearToken(&val->value);
  3178. }
  3179. }
  3180. static int ASN1CALL ASN1Enc_BandwidthReject_tokens(ASN1encoding_t enc, PBandwidthReject_tokens *val)
  3181. {
  3182. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthReject_tokens_ElmFn);
  3183. }
  3184. static int ASN1CALL ASN1Enc_BandwidthReject_tokens_ElmFn(ASN1encoding_t enc, PBandwidthReject_tokens val)
  3185. {
  3186. if (!ASN1Enc_ClearToken(enc, &val->value))
  3187. return 0;
  3188. return 1;
  3189. }
  3190. static int ASN1CALL ASN1Dec_BandwidthReject_tokens(ASN1decoding_t dec, PBandwidthReject_tokens *val)
  3191. {
  3192. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthReject_tokens_ElmFn, sizeof(**val));
  3193. }
  3194. static int ASN1CALL ASN1Dec_BandwidthReject_tokens_ElmFn(ASN1decoding_t dec, PBandwidthReject_tokens val)
  3195. {
  3196. if (!ASN1Dec_ClearToken(dec, &val->value))
  3197. return 0;
  3198. return 1;
  3199. }
  3200. static void ASN1CALL ASN1Free_BandwidthReject_tokens(PBandwidthReject_tokens *val)
  3201. {
  3202. if (val) {
  3203. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthReject_tokens_ElmFn);
  3204. }
  3205. }
  3206. static void ASN1CALL ASN1Free_BandwidthReject_tokens_ElmFn(PBandwidthReject_tokens val)
  3207. {
  3208. if (val) {
  3209. ASN1Free_ClearToken(&val->value);
  3210. }
  3211. }
  3212. static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens(ASN1encoding_t enc, PBandwidthConfirm_tokens *val)
  3213. {
  3214. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthConfirm_tokens_ElmFn);
  3215. }
  3216. static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens_ElmFn(ASN1encoding_t enc, PBandwidthConfirm_tokens val)
  3217. {
  3218. if (!ASN1Enc_ClearToken(enc, &val->value))
  3219. return 0;
  3220. return 1;
  3221. }
  3222. static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens(ASN1decoding_t dec, PBandwidthConfirm_tokens *val)
  3223. {
  3224. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthConfirm_tokens_ElmFn, sizeof(**val));
  3225. }
  3226. static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens_ElmFn(ASN1decoding_t dec, PBandwidthConfirm_tokens val)
  3227. {
  3228. if (!ASN1Dec_ClearToken(dec, &val->value))
  3229. return 0;
  3230. return 1;
  3231. }
  3232. static void ASN1CALL ASN1Free_BandwidthConfirm_tokens(PBandwidthConfirm_tokens *val)
  3233. {
  3234. if (val) {
  3235. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthConfirm_tokens_ElmFn);
  3236. }
  3237. }
  3238. static void ASN1CALL ASN1Free_BandwidthConfirm_tokens_ElmFn(PBandwidthConfirm_tokens val)
  3239. {
  3240. if (val) {
  3241. ASN1Free_ClearToken(&val->value);
  3242. }
  3243. }
  3244. static int ASN1CALL ASN1Enc_BandwidthRequest_tokens(ASN1encoding_t enc, PBandwidthRequest_tokens *val)
  3245. {
  3246. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthRequest_tokens_ElmFn);
  3247. }
  3248. static int ASN1CALL ASN1Enc_BandwidthRequest_tokens_ElmFn(ASN1encoding_t enc, PBandwidthRequest_tokens val)
  3249. {
  3250. if (!ASN1Enc_ClearToken(enc, &val->value))
  3251. return 0;
  3252. return 1;
  3253. }
  3254. static int ASN1CALL ASN1Dec_BandwidthRequest_tokens(ASN1decoding_t dec, PBandwidthRequest_tokens *val)
  3255. {
  3256. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthRequest_tokens_ElmFn, sizeof(**val));
  3257. }
  3258. static int ASN1CALL ASN1Dec_BandwidthRequest_tokens_ElmFn(ASN1decoding_t dec, PBandwidthRequest_tokens val)
  3259. {
  3260. if (!ASN1Dec_ClearToken(dec, &val->value))
  3261. return 0;
  3262. return 1;
  3263. }
  3264. static void ASN1CALL ASN1Free_BandwidthRequest_tokens(PBandwidthRequest_tokens *val)
  3265. {
  3266. if (val) {
  3267. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthRequest_tokens_ElmFn);
  3268. }
  3269. }
  3270. static void ASN1CALL ASN1Free_BandwidthRequest_tokens_ElmFn(PBandwidthRequest_tokens val)
  3271. {
  3272. if (val) {
  3273. ASN1Free_ClearToken(&val->value);
  3274. }
  3275. }
  3276. static int ASN1CALL ASN1Enc_AdmissionReject_tokens(ASN1encoding_t enc, PAdmissionReject_tokens *val)
  3277. {
  3278. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_tokens_ElmFn);
  3279. }
  3280. static int ASN1CALL ASN1Enc_AdmissionReject_tokens_ElmFn(ASN1encoding_t enc, PAdmissionReject_tokens val)
  3281. {
  3282. if (!ASN1Enc_ClearToken(enc, &val->value))
  3283. return 0;
  3284. return 1;
  3285. }
  3286. static int ASN1CALL ASN1Dec_AdmissionReject_tokens(ASN1decoding_t dec, PAdmissionReject_tokens *val)
  3287. {
  3288. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_tokens_ElmFn, sizeof(**val));
  3289. }
  3290. static int ASN1CALL ASN1Dec_AdmissionReject_tokens_ElmFn(ASN1decoding_t dec, PAdmissionReject_tokens val)
  3291. {
  3292. if (!ASN1Dec_ClearToken(dec, &val->value))
  3293. return 0;
  3294. return 1;
  3295. }
  3296. static void ASN1CALL ASN1Free_AdmissionReject_tokens(PAdmissionReject_tokens *val)
  3297. {
  3298. if (val) {
  3299. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_tokens_ElmFn);
  3300. }
  3301. }
  3302. static void ASN1CALL ASN1Free_AdmissionReject_tokens_ElmFn(PAdmissionReject_tokens val)
  3303. {
  3304. if (val) {
  3305. ASN1Free_ClearToken(&val->value);
  3306. }
  3307. }
  3308. static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens(ASN1encoding_t enc, PAdmissionConfirm_tokens *val)
  3309. {
  3310. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_tokens_ElmFn);
  3311. }
  3312. static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_tokens val)
  3313. {
  3314. if (!ASN1Enc_ClearToken(enc, &val->value))
  3315. return 0;
  3316. return 1;
  3317. }
  3318. static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens(ASN1decoding_t dec, PAdmissionConfirm_tokens *val)
  3319. {
  3320. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_tokens_ElmFn, sizeof(**val));
  3321. }
  3322. static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_tokens val)
  3323. {
  3324. if (!ASN1Dec_ClearToken(dec, &val->value))
  3325. return 0;
  3326. return 1;
  3327. }
  3328. static void ASN1CALL ASN1Free_AdmissionConfirm_tokens(PAdmissionConfirm_tokens *val)
  3329. {
  3330. if (val) {
  3331. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_tokens_ElmFn);
  3332. }
  3333. }
  3334. static void ASN1CALL ASN1Free_AdmissionConfirm_tokens_ElmFn(PAdmissionConfirm_tokens val)
  3335. {
  3336. if (val) {
  3337. ASN1Free_ClearToken(&val->value);
  3338. }
  3339. }
  3340. static int ASN1CALL ASN1Enc_AdmissionRequest_tokens(ASN1encoding_t enc, PAdmissionRequest_tokens *val)
  3341. {
  3342. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_tokens_ElmFn);
  3343. }
  3344. static int ASN1CALL ASN1Enc_AdmissionRequest_tokens_ElmFn(ASN1encoding_t enc, PAdmissionRequest_tokens val)
  3345. {
  3346. if (!ASN1Enc_ClearToken(enc, &val->value))
  3347. return 0;
  3348. return 1;
  3349. }
  3350. static int ASN1CALL ASN1Dec_AdmissionRequest_tokens(ASN1decoding_t dec, PAdmissionRequest_tokens *val)
  3351. {
  3352. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_tokens_ElmFn, sizeof(**val));
  3353. }
  3354. static int ASN1CALL ASN1Dec_AdmissionRequest_tokens_ElmFn(ASN1decoding_t dec, PAdmissionRequest_tokens val)
  3355. {
  3356. if (!ASN1Dec_ClearToken(dec, &val->value))
  3357. return 0;
  3358. return 1;
  3359. }
  3360. static void ASN1CALL ASN1Free_AdmissionRequest_tokens(PAdmissionRequest_tokens *val)
  3361. {
  3362. if (val) {
  3363. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_tokens_ElmFn);
  3364. }
  3365. }
  3366. static void ASN1CALL ASN1Free_AdmissionRequest_tokens_ElmFn(PAdmissionRequest_tokens val)
  3367. {
  3368. if (val) {
  3369. ASN1Free_ClearToken(&val->value);
  3370. }
  3371. }
  3372. static int ASN1CALL ASN1Enc_UnregistrationReject_tokens(ASN1encoding_t enc, PUnregistrationReject_tokens *val)
  3373. {
  3374. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationReject_tokens_ElmFn);
  3375. }
  3376. static int ASN1CALL ASN1Enc_UnregistrationReject_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationReject_tokens val)
  3377. {
  3378. if (!ASN1Enc_ClearToken(enc, &val->value))
  3379. return 0;
  3380. return 1;
  3381. }
  3382. static int ASN1CALL ASN1Dec_UnregistrationReject_tokens(ASN1decoding_t dec, PUnregistrationReject_tokens *val)
  3383. {
  3384. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationReject_tokens_ElmFn, sizeof(**val));
  3385. }
  3386. static int ASN1CALL ASN1Dec_UnregistrationReject_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationReject_tokens val)
  3387. {
  3388. if (!ASN1Dec_ClearToken(dec, &val->value))
  3389. return 0;
  3390. return 1;
  3391. }
  3392. static void ASN1CALL ASN1Free_UnregistrationReject_tokens(PUnregistrationReject_tokens *val)
  3393. {
  3394. if (val) {
  3395. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationReject_tokens_ElmFn);
  3396. }
  3397. }
  3398. static void ASN1CALL ASN1Free_UnregistrationReject_tokens_ElmFn(PUnregistrationReject_tokens val)
  3399. {
  3400. if (val) {
  3401. ASN1Free_ClearToken(&val->value);
  3402. }
  3403. }
  3404. static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens(ASN1encoding_t enc, PUnregistrationConfirm_tokens *val)
  3405. {
  3406. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationConfirm_tokens_ElmFn);
  3407. }
  3408. static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationConfirm_tokens val)
  3409. {
  3410. if (!ASN1Enc_ClearToken(enc, &val->value))
  3411. return 0;
  3412. return 1;
  3413. }
  3414. static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens(ASN1decoding_t dec, PUnregistrationConfirm_tokens *val)
  3415. {
  3416. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationConfirm_tokens_ElmFn, sizeof(**val));
  3417. }
  3418. static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationConfirm_tokens val)
  3419. {
  3420. if (!ASN1Dec_ClearToken(dec, &val->value))
  3421. return 0;
  3422. return 1;
  3423. }
  3424. static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens(PUnregistrationConfirm_tokens *val)
  3425. {
  3426. if (val) {
  3427. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationConfirm_tokens_ElmFn);
  3428. }
  3429. }
  3430. static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens_ElmFn(PUnregistrationConfirm_tokens val)
  3431. {
  3432. if (val) {
  3433. ASN1Free_ClearToken(&val->value);
  3434. }
  3435. }
  3436. static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens(ASN1encoding_t enc, PUnregistrationRequest_tokens *val)
  3437. {
  3438. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_tokens_ElmFn);
  3439. }
  3440. static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_tokens val)
  3441. {
  3442. if (!ASN1Enc_ClearToken(enc, &val->value))
  3443. return 0;
  3444. return 1;
  3445. }
  3446. static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens(ASN1decoding_t dec, PUnregistrationRequest_tokens *val)
  3447. {
  3448. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_tokens_ElmFn, sizeof(**val));
  3449. }
  3450. static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_tokens val)
  3451. {
  3452. if (!ASN1Dec_ClearToken(dec, &val->value))
  3453. return 0;
  3454. return 1;
  3455. }
  3456. static void ASN1CALL ASN1Free_UnregistrationRequest_tokens(PUnregistrationRequest_tokens *val)
  3457. {
  3458. if (val) {
  3459. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_tokens_ElmFn);
  3460. }
  3461. }
  3462. static void ASN1CALL ASN1Free_UnregistrationRequest_tokens_ElmFn(PUnregistrationRequest_tokens val)
  3463. {
  3464. if (val) {
  3465. ASN1Free_ClearToken(&val->value);
  3466. }
  3467. }
  3468. static int ASN1CALL ASN1Enc_RegistrationReject_tokens(ASN1encoding_t enc, PRegistrationReject_tokens *val)
  3469. {
  3470. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationReject_tokens_ElmFn);
  3471. }
  3472. static int ASN1CALL ASN1Enc_RegistrationReject_tokens_ElmFn(ASN1encoding_t enc, PRegistrationReject_tokens val)
  3473. {
  3474. if (!ASN1Enc_ClearToken(enc, &val->value))
  3475. return 0;
  3476. return 1;
  3477. }
  3478. static int ASN1CALL ASN1Dec_RegistrationReject_tokens(ASN1decoding_t dec, PRegistrationReject_tokens *val)
  3479. {
  3480. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationReject_tokens_ElmFn, sizeof(**val));
  3481. }
  3482. static int ASN1CALL ASN1Dec_RegistrationReject_tokens_ElmFn(ASN1decoding_t dec, PRegistrationReject_tokens val)
  3483. {
  3484. if (!ASN1Dec_ClearToken(dec, &val->value))
  3485. return 0;
  3486. return 1;
  3487. }
  3488. static void ASN1CALL ASN1Free_RegistrationReject_tokens(PRegistrationReject_tokens *val)
  3489. {
  3490. if (val) {
  3491. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationReject_tokens_ElmFn);
  3492. }
  3493. }
  3494. static void ASN1CALL ASN1Free_RegistrationReject_tokens_ElmFn(PRegistrationReject_tokens val)
  3495. {
  3496. if (val) {
  3497. ASN1Free_ClearToken(&val->value);
  3498. }
  3499. }
  3500. static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens(ASN1encoding_t enc, PRegistrationConfirm_tokens *val)
  3501. {
  3502. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_tokens_ElmFn);
  3503. }
  3504. static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_tokens val)
  3505. {
  3506. if (!ASN1Enc_ClearToken(enc, &val->value))
  3507. return 0;
  3508. return 1;
  3509. }
  3510. static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens(ASN1decoding_t dec, PRegistrationConfirm_tokens *val)
  3511. {
  3512. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_tokens_ElmFn, sizeof(**val));
  3513. }
  3514. static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_tokens val)
  3515. {
  3516. if (!ASN1Dec_ClearToken(dec, &val->value))
  3517. return 0;
  3518. return 1;
  3519. }
  3520. static void ASN1CALL ASN1Free_RegistrationConfirm_tokens(PRegistrationConfirm_tokens *val)
  3521. {
  3522. if (val) {
  3523. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_tokens_ElmFn);
  3524. }
  3525. }
  3526. static void ASN1CALL ASN1Free_RegistrationConfirm_tokens_ElmFn(PRegistrationConfirm_tokens val)
  3527. {
  3528. if (val) {
  3529. ASN1Free_ClearToken(&val->value);
  3530. }
  3531. }
  3532. static int ASN1CALL ASN1Enc_RegistrationRequest_tokens(ASN1encoding_t enc, PRegistrationRequest_tokens *val)
  3533. {
  3534. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_tokens_ElmFn);
  3535. }
  3536. static int ASN1CALL ASN1Enc_RegistrationRequest_tokens_ElmFn(ASN1encoding_t enc, PRegistrationRequest_tokens val)
  3537. {
  3538. if (!ASN1Enc_ClearToken(enc, &val->value))
  3539. return 0;
  3540. return 1;
  3541. }
  3542. static int ASN1CALL ASN1Dec_RegistrationRequest_tokens(ASN1decoding_t dec, PRegistrationRequest_tokens *val)
  3543. {
  3544. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_tokens_ElmFn, sizeof(**val));
  3545. }
  3546. static int ASN1CALL ASN1Dec_RegistrationRequest_tokens_ElmFn(ASN1decoding_t dec, PRegistrationRequest_tokens val)
  3547. {
  3548. if (!ASN1Dec_ClearToken(dec, &val->value))
  3549. return 0;
  3550. return 1;
  3551. }
  3552. static void ASN1CALL ASN1Free_RegistrationRequest_tokens(PRegistrationRequest_tokens *val)
  3553. {
  3554. if (val) {
  3555. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_tokens_ElmFn);
  3556. }
  3557. }
  3558. static void ASN1CALL ASN1Free_RegistrationRequest_tokens_ElmFn(PRegistrationRequest_tokens val)
  3559. {
  3560. if (val) {
  3561. ASN1Free_ClearToken(&val->value);
  3562. }
  3563. }
  3564. static int ASN1CALL ASN1Enc_GatekeeperReject_tokens(ASN1encoding_t enc, PGatekeeperReject_tokens *val)
  3565. {
  3566. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperReject_tokens_ElmFn);
  3567. }
  3568. static int ASN1CALL ASN1Enc_GatekeeperReject_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperReject_tokens val)
  3569. {
  3570. if (!ASN1Enc_ClearToken(enc, &val->value))
  3571. return 0;
  3572. return 1;
  3573. }
  3574. static int ASN1CALL ASN1Dec_GatekeeperReject_tokens(ASN1decoding_t dec, PGatekeeperReject_tokens *val)
  3575. {
  3576. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperReject_tokens_ElmFn, sizeof(**val));
  3577. }
  3578. static int ASN1CALL ASN1Dec_GatekeeperReject_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperReject_tokens val)
  3579. {
  3580. if (!ASN1Dec_ClearToken(dec, &val->value))
  3581. return 0;
  3582. return 1;
  3583. }
  3584. static void ASN1CALL ASN1Free_GatekeeperReject_tokens(PGatekeeperReject_tokens *val)
  3585. {
  3586. if (val) {
  3587. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperReject_tokens_ElmFn);
  3588. }
  3589. }
  3590. static void ASN1CALL ASN1Free_GatekeeperReject_tokens_ElmFn(PGatekeeperReject_tokens val)
  3591. {
  3592. if (val) {
  3593. ASN1Free_ClearToken(&val->value);
  3594. }
  3595. }
  3596. static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens(ASN1encoding_t enc, PGatekeeperConfirm_tokens *val)
  3597. {
  3598. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_tokens_ElmFn);
  3599. }
  3600. static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_tokens val)
  3601. {
  3602. if (!ASN1Enc_ClearToken(enc, &val->value))
  3603. return 0;
  3604. return 1;
  3605. }
  3606. static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens(ASN1decoding_t dec, PGatekeeperConfirm_tokens *val)
  3607. {
  3608. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_tokens_ElmFn, sizeof(**val));
  3609. }
  3610. static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_tokens val)
  3611. {
  3612. if (!ASN1Dec_ClearToken(dec, &val->value))
  3613. return 0;
  3614. return 1;
  3615. }
  3616. static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens(PGatekeeperConfirm_tokens *val)
  3617. {
  3618. if (val) {
  3619. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_tokens_ElmFn);
  3620. }
  3621. }
  3622. static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens_ElmFn(PGatekeeperConfirm_tokens val)
  3623. {
  3624. if (val) {
  3625. ASN1Free_ClearToken(&val->value);
  3626. }
  3627. }
  3628. static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability *val)
  3629. {
  3630. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_authenticationCapability_ElmFn);
  3631. }
  3632. static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability val)
  3633. {
  3634. if (!ASN1Enc_AuthenticationMechanism(enc, &val->value))
  3635. return 0;
  3636. return 1;
  3637. }
  3638. static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability *val)
  3639. {
  3640. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_authenticationCapability_ElmFn, sizeof(**val));
  3641. }
  3642. static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability val)
  3643. {
  3644. if (!ASN1Dec_AuthenticationMechanism(dec, &val->value))
  3645. return 0;
  3646. return 1;
  3647. }
  3648. static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability(PGatekeeperRequest_authenticationCapability *val)
  3649. {
  3650. if (val) {
  3651. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_authenticationCapability_ElmFn);
  3652. }
  3653. }
  3654. static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability_ElmFn(PGatekeeperRequest_authenticationCapability val)
  3655. {
  3656. if (val) {
  3657. ASN1Free_AuthenticationMechanism(&val->value);
  3658. }
  3659. }
  3660. static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens(ASN1encoding_t enc, PGatekeeperRequest_tokens *val)
  3661. {
  3662. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_tokens_ElmFn);
  3663. }
  3664. static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_tokens val)
  3665. {
  3666. if (!ASN1Enc_ClearToken(enc, &val->value))
  3667. return 0;
  3668. return 1;
  3669. }
  3670. static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens(ASN1decoding_t dec, PGatekeeperRequest_tokens *val)
  3671. {
  3672. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_tokens_ElmFn, sizeof(**val));
  3673. }
  3674. static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_tokens val)
  3675. {
  3676. if (!ASN1Dec_ClearToken(dec, &val->value))
  3677. return 0;
  3678. return 1;
  3679. }
  3680. static void ASN1CALL ASN1Free_GatekeeperRequest_tokens(PGatekeeperRequest_tokens *val)
  3681. {
  3682. if (val) {
  3683. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_tokens_ElmFn);
  3684. }
  3685. }
  3686. static void ASN1CALL ASN1Free_GatekeeperRequest_tokens_ElmFn(PGatekeeperRequest_tokens val)
  3687. {
  3688. if (val) {
  3689. ASN1Free_ClearToken(&val->value);
  3690. }
  3691. }
  3692. static int ASN1CALL ASN1Enc_Endpoint_tokens(ASN1encoding_t enc, PEndpoint_tokens *val)
  3693. {
  3694. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_tokens_ElmFn);
  3695. }
  3696. static int ASN1CALL ASN1Enc_Endpoint_tokens_ElmFn(ASN1encoding_t enc, PEndpoint_tokens val)
  3697. {
  3698. if (!ASN1Enc_ClearToken(enc, &val->value))
  3699. return 0;
  3700. return 1;
  3701. }
  3702. static int ASN1CALL ASN1Dec_Endpoint_tokens(ASN1decoding_t dec, PEndpoint_tokens *val)
  3703. {
  3704. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_tokens_ElmFn, sizeof(**val));
  3705. }
  3706. static int ASN1CALL ASN1Dec_Endpoint_tokens_ElmFn(ASN1decoding_t dec, PEndpoint_tokens val)
  3707. {
  3708. if (!ASN1Dec_ClearToken(dec, &val->value))
  3709. return 0;
  3710. return 1;
  3711. }
  3712. static void ASN1CALL ASN1Free_Endpoint_tokens(PEndpoint_tokens *val)
  3713. {
  3714. if (val) {
  3715. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_tokens_ElmFn);
  3716. }
  3717. }
  3718. static void ASN1CALL ASN1Free_Endpoint_tokens_ElmFn(PEndpoint_tokens val)
  3719. {
  3720. if (val) {
  3721. ASN1Free_ClearToken(&val->value);
  3722. }
  3723. }
  3724. static int ASN1CALL ASN1Enc_Progress_UUIE_tokens(ASN1encoding_t enc, PProgress_UUIE_tokens *val)
  3725. {
  3726. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_tokens_ElmFn);
  3727. }
  3728. static int ASN1CALL ASN1Enc_Progress_UUIE_tokens_ElmFn(ASN1encoding_t enc, PProgress_UUIE_tokens val)
  3729. {
  3730. if (!ASN1Enc_ClearToken(enc, &val->value))
  3731. return 0;
  3732. return 1;
  3733. }
  3734. static int ASN1CALL ASN1Dec_Progress_UUIE_tokens(ASN1decoding_t dec, PProgress_UUIE_tokens *val)
  3735. {
  3736. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_tokens_ElmFn, sizeof(**val));
  3737. }
  3738. static int ASN1CALL ASN1Dec_Progress_UUIE_tokens_ElmFn(ASN1decoding_t dec, PProgress_UUIE_tokens val)
  3739. {
  3740. if (!ASN1Dec_ClearToken(dec, &val->value))
  3741. return 0;
  3742. return 1;
  3743. }
  3744. static void ASN1CALL ASN1Free_Progress_UUIE_tokens(PProgress_UUIE_tokens *val)
  3745. {
  3746. if (val) {
  3747. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_tokens_ElmFn);
  3748. }
  3749. }
  3750. static void ASN1CALL ASN1Free_Progress_UUIE_tokens_ElmFn(PProgress_UUIE_tokens val)
  3751. {
  3752. if (val) {
  3753. ASN1Free_ClearToken(&val->value);
  3754. }
  3755. }
  3756. static int ASN1CALL ASN1Enc_Facility_UUIE_tokens(ASN1encoding_t enc, PFacility_UUIE_tokens *val)
  3757. {
  3758. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_tokens_ElmFn);
  3759. }
  3760. static int ASN1CALL ASN1Enc_Facility_UUIE_tokens_ElmFn(ASN1encoding_t enc, PFacility_UUIE_tokens val)
  3761. {
  3762. if (!ASN1Enc_ClearToken(enc, &val->value))
  3763. return 0;
  3764. return 1;
  3765. }
  3766. static int ASN1CALL ASN1Dec_Facility_UUIE_tokens(ASN1decoding_t dec, PFacility_UUIE_tokens *val)
  3767. {
  3768. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_tokens_ElmFn, sizeof(**val));
  3769. }
  3770. static int ASN1CALL ASN1Dec_Facility_UUIE_tokens_ElmFn(ASN1decoding_t dec, PFacility_UUIE_tokens val)
  3771. {
  3772. if (!ASN1Dec_ClearToken(dec, &val->value))
  3773. return 0;
  3774. return 1;
  3775. }
  3776. static void ASN1CALL ASN1Free_Facility_UUIE_tokens(PFacility_UUIE_tokens *val)
  3777. {
  3778. if (val) {
  3779. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_tokens_ElmFn);
  3780. }
  3781. }
  3782. static void ASN1CALL ASN1Free_Facility_UUIE_tokens_ElmFn(PFacility_UUIE_tokens val)
  3783. {
  3784. if (val) {
  3785. ASN1Free_ClearToken(&val->value);
  3786. }
  3787. }
  3788. static int ASN1CALL ASN1Enc_Setup_UUIE_tokens(ASN1encoding_t enc, PSetup_UUIE_tokens *val)
  3789. {
  3790. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_tokens_ElmFn);
  3791. }
  3792. static int ASN1CALL ASN1Enc_Setup_UUIE_tokens_ElmFn(ASN1encoding_t enc, PSetup_UUIE_tokens val)
  3793. {
  3794. if (!ASN1Enc_ClearToken(enc, &val->value))
  3795. return 0;
  3796. return 1;
  3797. }
  3798. static int ASN1CALL ASN1Dec_Setup_UUIE_tokens(ASN1decoding_t dec, PSetup_UUIE_tokens *val)
  3799. {
  3800. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_tokens_ElmFn, sizeof(**val));
  3801. }
  3802. static int ASN1CALL ASN1Dec_Setup_UUIE_tokens_ElmFn(ASN1decoding_t dec, PSetup_UUIE_tokens val)
  3803. {
  3804. if (!ASN1Dec_ClearToken(dec, &val->value))
  3805. return 0;
  3806. return 1;
  3807. }
  3808. static void ASN1CALL ASN1Free_Setup_UUIE_tokens(PSetup_UUIE_tokens *val)
  3809. {
  3810. if (val) {
  3811. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_tokens_ElmFn);
  3812. }
  3813. }
  3814. static void ASN1CALL ASN1Free_Setup_UUIE_tokens_ElmFn(PSetup_UUIE_tokens val)
  3815. {
  3816. if (val) {
  3817. ASN1Free_ClearToken(&val->value);
  3818. }
  3819. }
  3820. static int ASN1CALL ASN1Enc_Connect_UUIE_tokens(ASN1encoding_t enc, PConnect_UUIE_tokens *val)
  3821. {
  3822. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_tokens_ElmFn);
  3823. }
  3824. static int ASN1CALL ASN1Enc_Connect_UUIE_tokens_ElmFn(ASN1encoding_t enc, PConnect_UUIE_tokens val)
  3825. {
  3826. if (!ASN1Enc_ClearToken(enc, &val->value))
  3827. return 0;
  3828. return 1;
  3829. }
  3830. static int ASN1CALL ASN1Dec_Connect_UUIE_tokens(ASN1decoding_t dec, PConnect_UUIE_tokens *val)
  3831. {
  3832. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_tokens_ElmFn, sizeof(**val));
  3833. }
  3834. static int ASN1CALL ASN1Dec_Connect_UUIE_tokens_ElmFn(ASN1decoding_t dec, PConnect_UUIE_tokens val)
  3835. {
  3836. if (!ASN1Dec_ClearToken(dec, &val->value))
  3837. return 0;
  3838. return 1;
  3839. }
  3840. static void ASN1CALL ASN1Free_Connect_UUIE_tokens(PConnect_UUIE_tokens *val)
  3841. {
  3842. if (val) {
  3843. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_tokens_ElmFn);
  3844. }
  3845. }
  3846. static void ASN1CALL ASN1Free_Connect_UUIE_tokens_ElmFn(PConnect_UUIE_tokens val)
  3847. {
  3848. if (val) {
  3849. ASN1Free_ClearToken(&val->value);
  3850. }
  3851. }
  3852. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens(ASN1encoding_t enc, PCallProceeding_UUIE_tokens *val)
  3853. {
  3854. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_tokens_ElmFn);
  3855. }
  3856. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_tokens val)
  3857. {
  3858. if (!ASN1Enc_ClearToken(enc, &val->value))
  3859. return 0;
  3860. return 1;
  3861. }
  3862. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens(ASN1decoding_t dec, PCallProceeding_UUIE_tokens *val)
  3863. {
  3864. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_tokens_ElmFn, sizeof(**val));
  3865. }
  3866. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_tokens val)
  3867. {
  3868. if (!ASN1Dec_ClearToken(dec, &val->value))
  3869. return 0;
  3870. return 1;
  3871. }
  3872. static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens(PCallProceeding_UUIE_tokens *val)
  3873. {
  3874. if (val) {
  3875. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_tokens_ElmFn);
  3876. }
  3877. }
  3878. static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens_ElmFn(PCallProceeding_UUIE_tokens val)
  3879. {
  3880. if (val) {
  3881. ASN1Free_ClearToken(&val->value);
  3882. }
  3883. }
  3884. static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens(ASN1encoding_t enc, PAlerting_UUIE_tokens *val)
  3885. {
  3886. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_tokens_ElmFn);
  3887. }
  3888. static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_tokens val)
  3889. {
  3890. if (!ASN1Enc_ClearToken(enc, &val->value))
  3891. return 0;
  3892. return 1;
  3893. }
  3894. static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens(ASN1decoding_t dec, PAlerting_UUIE_tokens *val)
  3895. {
  3896. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_tokens_ElmFn, sizeof(**val));
  3897. }
  3898. static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_tokens val)
  3899. {
  3900. if (!ASN1Dec_ClearToken(dec, &val->value))
  3901. return 0;
  3902. return 1;
  3903. }
  3904. static void ASN1CALL ASN1Free_Alerting_UUIE_tokens(PAlerting_UUIE_tokens *val)
  3905. {
  3906. if (val) {
  3907. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_tokens_ElmFn);
  3908. }
  3909. }
  3910. static void ASN1CALL ASN1Free_Alerting_UUIE_tokens_ElmFn(PAlerting_UUIE_tokens val)
  3911. {
  3912. if (val) {
  3913. ASN1Free_ClearToken(&val->value);
  3914. }
  3915. }
  3916. static int ASN1CALL ASN1Enc_SIGNED_EncodedGeneralToken(ASN1encoding_t enc, SIGNED_EncodedGeneralToken *val)
  3917. {
  3918. if (!ASN1Enc_EncodedGeneralToken(enc, &(val)->toBeSigned))
  3919. return 0;
  3920. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3921. return 0;
  3922. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3923. return 0;
  3924. if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
  3925. return 0;
  3926. return 1;
  3927. }
  3928. static int ASN1CALL ASN1Dec_SIGNED_EncodedGeneralToken(ASN1decoding_t dec, SIGNED_EncodedGeneralToken *val)
  3929. {
  3930. if (!ASN1Dec_EncodedGeneralToken(dec, &(val)->toBeSigned))
  3931. return 0;
  3932. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3933. return 0;
  3934. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3935. return 0;
  3936. if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
  3937. return 0;
  3938. return 1;
  3939. }
  3940. static void ASN1CALL ASN1Free_SIGNED_EncodedGeneralToken(SIGNED_EncodedGeneralToken *val)
  3941. {
  3942. if (val) {
  3943. ASN1Free_EncodedGeneralToken(&(val)->toBeSigned);
  3944. ASN1objectidentifier_free(&(val)->algorithmOID);
  3945. ASN1Free_Params(&(val)->paramS);
  3946. ASN1bitstring_free(&(val)->signature);
  3947. }
  3948. }
  3949. static int ASN1CALL ASN1Enc_ENCRYPTED(ASN1encoding_t enc, ENCRYPTED *val)
  3950. {
  3951. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3952. return 0;
  3953. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3954. return 0;
  3955. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->encryptedData))
  3956. return 0;
  3957. return 1;
  3958. }
  3959. static int ASN1CALL ASN1Dec_ENCRYPTED(ASN1decoding_t dec, ENCRYPTED *val)
  3960. {
  3961. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3962. return 0;
  3963. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3964. return 0;
  3965. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->encryptedData))
  3966. return 0;
  3967. return 1;
  3968. }
  3969. static void ASN1CALL ASN1Free_ENCRYPTED(ENCRYPTED *val)
  3970. {
  3971. if (val) {
  3972. ASN1objectidentifier_free(&(val)->algorithmOID);
  3973. ASN1Free_Params(&(val)->paramS);
  3974. ASN1octetstring_free(&(val)->encryptedData);
  3975. }
  3976. }
  3977. static int ASN1CALL ASN1Enc_HASHED(ASN1encoding_t enc, HASHED *val)
  3978. {
  3979. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  3980. return 0;
  3981. if (!ASN1Enc_Params(enc, &(val)->paramS))
  3982. return 0;
  3983. if (!ASN1PEREncFragmented(enc, ((val)->hash).length, ((val)->hash).value, 1))
  3984. return 0;
  3985. return 1;
  3986. }
  3987. static int ASN1CALL ASN1Dec_HASHED(ASN1decoding_t dec, HASHED *val)
  3988. {
  3989. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  3990. return 0;
  3991. if (!ASN1Dec_Params(dec, &(val)->paramS))
  3992. return 0;
  3993. if (!ASN1PERDecFragmented(dec, &((val)->hash).length, &((val)->hash).value, 1))
  3994. return 0;
  3995. return 1;
  3996. }
  3997. static void ASN1CALL ASN1Free_HASHED(HASHED *val)
  3998. {
  3999. if (val) {
  4000. ASN1objectidentifier_free(&(val)->algorithmOID);
  4001. ASN1Free_Params(&(val)->paramS);
  4002. ASN1bitstring_free(&(val)->hash);
  4003. }
  4004. }
  4005. static int ASN1CALL ASN1Enc_SIGNED_EncodedPwdCertToken(ASN1encoding_t enc, SIGNED_EncodedPwdCertToken *val)
  4006. {
  4007. if (!ASN1Enc_EncodedPwdCertToken(enc, &(val)->toBeSigned))
  4008. return 0;
  4009. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  4010. return 0;
  4011. if (!ASN1Enc_Params(enc, &(val)->paramS))
  4012. return 0;
  4013. if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
  4014. return 0;
  4015. return 1;
  4016. }
  4017. static int ASN1CALL ASN1Dec_SIGNED_EncodedPwdCertToken(ASN1decoding_t dec, SIGNED_EncodedPwdCertToken *val)
  4018. {
  4019. if (!ASN1Dec_EncodedPwdCertToken(dec, &(val)->toBeSigned))
  4020. return 0;
  4021. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  4022. return 0;
  4023. if (!ASN1Dec_Params(dec, &(val)->paramS))
  4024. return 0;
  4025. if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
  4026. return 0;
  4027. return 1;
  4028. }
  4029. static void ASN1CALL ASN1Free_SIGNED_EncodedPwdCertToken(SIGNED_EncodedPwdCertToken *val)
  4030. {
  4031. if (val) {
  4032. ASN1Free_EncodedPwdCertToken(&(val)->toBeSigned);
  4033. ASN1objectidentifier_free(&(val)->algorithmOID);
  4034. ASN1Free_Params(&(val)->paramS);
  4035. ASN1bitstring_free(&(val)->signature);
  4036. }
  4037. }
  4038. static int ASN1CALL ASN1Enc_Information_UUIE(ASN1encoding_t enc, Information_UUIE *val)
  4039. {
  4040. ASN1octet_t o[1];
  4041. ASN1uint32_t y;
  4042. ASN1encoding_t ee;
  4043. CopyMemory(o, (val)->o, 1);
  4044. o[0] |= 0x80;
  4045. y = ASN1PEREncCheckExtensions(1, (val)->o + 0);
  4046. if (!ASN1PEREncBitVal(enc, 1, y))
  4047. return 0;
  4048. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  4049. return 0;
  4050. if (y) {
  4051. if (!ASN1PEREncNormallySmallBits(enc, 1, o + 0))
  4052. return 0;
  4053. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  4054. return 0;
  4055. if (o[0] & 0x80) {
  4056. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  4057. return 0;
  4058. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4059. return 0;
  4060. }
  4061. ASN1_CloseEncoder2(ee);
  4062. }
  4063. return 1;
  4064. }
  4065. static int ASN1CALL ASN1Dec_Information_UUIE(ASN1decoding_t dec, Information_UUIE *val)
  4066. {
  4067. ASN1uint32_t y;
  4068. ASN1decoding_t dd;
  4069. ASN1octet_t *db;
  4070. ASN1uint32_t ds;
  4071. ASN1uint32_t i;
  4072. ASN1uint32_t e;
  4073. if (!ASN1PERDecExtensionBit(dec, &y))
  4074. return 0;
  4075. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  4076. return 0;
  4077. if (!y) {
  4078. ZeroMemory((val)->o + 0, 1);
  4079. } else {
  4080. if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 0))
  4081. return 0;
  4082. if ((val)->o[0] & 0x80) {
  4083. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4084. return 0;
  4085. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  4086. return 0;
  4087. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  4088. return 0;
  4089. ASN1_CloseDecoder(dd);
  4090. }
  4091. for (i = 0; i < e; i++) {
  4092. if (!ASN1PERDecSkipFragmented(dec, 8))
  4093. return 0;
  4094. }
  4095. }
  4096. return 1;
  4097. }
  4098. static void ASN1CALL ASN1Free_Information_UUIE(Information_UUIE *val)
  4099. {
  4100. if (val) {
  4101. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  4102. if ((val)->o[0] & 0x80) {
  4103. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  4104. }
  4105. }
  4106. }
  4107. static int ASN1CALL ASN1Enc_ReleaseComplete_UUIE(ASN1encoding_t enc, ReleaseComplete_UUIE *val)
  4108. {
  4109. ASN1octet_t o[2];
  4110. ASN1uint32_t y;
  4111. ASN1encoding_t ee;
  4112. CopyMemory(o, (val)->o, 2);
  4113. o[1] |= 0x80;
  4114. y = ASN1PEREncCheckExtensions(1, (val)->o + 1);
  4115. if (!ASN1PEREncBitVal(enc, 1, y))
  4116. return 0;
  4117. if (!ASN1PEREncBits(enc, 1, o))
  4118. return 0;
  4119. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  4120. return 0;
  4121. if (o[0] & 0x80) {
  4122. if (!ASN1Enc_ReleaseCompleteReason(enc, &(val)->reason))
  4123. return 0;
  4124. }
  4125. if (y) {
  4126. if (!ASN1PEREncNormallySmallBits(enc, 1, o + 1))
  4127. return 0;
  4128. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  4129. return 0;
  4130. if (o[1] & 0x80) {
  4131. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  4132. return 0;
  4133. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4134. return 0;
  4135. }
  4136. ASN1_CloseEncoder2(ee);
  4137. }
  4138. return 1;
  4139. }
  4140. static int ASN1CALL ASN1Dec_ReleaseComplete_UUIE(ASN1decoding_t dec, ReleaseComplete_UUIE *val)
  4141. {
  4142. ASN1uint32_t y;
  4143. ASN1decoding_t dd;
  4144. ASN1octet_t *db;
  4145. ASN1uint32_t ds;
  4146. ASN1uint32_t i;
  4147. ASN1uint32_t e;
  4148. if (!ASN1PERDecExtensionBit(dec, &y))
  4149. return 0;
  4150. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  4151. return 0;
  4152. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  4153. return 0;
  4154. if ((val)->o[0] & 0x80) {
  4155. if (!ASN1Dec_ReleaseCompleteReason(dec, &(val)->reason))
  4156. return 0;
  4157. }
  4158. if (!y) {
  4159. ZeroMemory((val)->o + 1, 1);
  4160. } else {
  4161. if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 1))
  4162. return 0;
  4163. if ((val)->o[1] & 0x80) {
  4164. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4165. return 0;
  4166. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  4167. return 0;
  4168. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  4169. return 0;
  4170. ASN1_CloseDecoder(dd);
  4171. }
  4172. for (i = 0; i < e; i++) {
  4173. if (!ASN1PERDecSkipFragmented(dec, 8))
  4174. return 0;
  4175. }
  4176. }
  4177. return 1;
  4178. }
  4179. static void ASN1CALL ASN1Free_ReleaseComplete_UUIE(ReleaseComplete_UUIE *val)
  4180. {
  4181. if (val) {
  4182. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  4183. if ((val)->o[1] & 0x80) {
  4184. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  4185. }
  4186. }
  4187. }
  4188. static int ASN1CALL ASN1Enc_VendorIdentifier(ASN1encoding_t enc, VendorIdentifier *val)
  4189. {
  4190. if (!ASN1PEREncExtensionBitClear(enc))
  4191. return 0;
  4192. if (!ASN1PEREncBits(enc, 2, (val)->o))
  4193. return 0;
  4194. if (!ASN1Enc_H221NonStandard(enc, &(val)->vendor))
  4195. return 0;
  4196. if ((val)->o[0] & 0x80) {
  4197. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->productId, 1, 256, 8))
  4198. return 0;
  4199. }
  4200. if ((val)->o[0] & 0x40) {
  4201. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->versionId, 1, 256, 8))
  4202. return 0;
  4203. }
  4204. return 1;
  4205. }
  4206. static int ASN1CALL ASN1Dec_VendorIdentifier(ASN1decoding_t dec, VendorIdentifier *val)
  4207. {
  4208. ASN1uint32_t y;
  4209. if (!ASN1PERDecExtensionBit(dec, &y))
  4210. return 0;
  4211. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  4212. return 0;
  4213. if (!ASN1Dec_H221NonStandard(dec, &(val)->vendor))
  4214. return 0;
  4215. if ((val)->o[0] & 0x80) {
  4216. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->productId, 1, 256, 8))
  4217. return 0;
  4218. }
  4219. if ((val)->o[0] & 0x40) {
  4220. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->versionId, 1, 256, 8))
  4221. return 0;
  4222. }
  4223. if (y) {
  4224. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4225. return 0;
  4226. }
  4227. return 1;
  4228. }
  4229. static void ASN1CALL ASN1Free_VendorIdentifier(VendorIdentifier *val)
  4230. {
  4231. if (val) {
  4232. if ((val)->o[0] & 0x80) {
  4233. }
  4234. if ((val)->o[0] & 0x40) {
  4235. }
  4236. }
  4237. }
  4238. static int ASN1CALL ASN1Enc_H225NonStandardParameter(ASN1encoding_t enc, H225NonStandardParameter *val)
  4239. {
  4240. if (!ASN1Enc_H225NonStandardIdentifier(enc, &(val)->nonStandardIdentifier))
  4241. return 0;
  4242. if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
  4243. return 0;
  4244. return 1;
  4245. }
  4246. static int ASN1CALL ASN1Dec_H225NonStandardParameter(ASN1decoding_t dec, H225NonStandardParameter *val)
  4247. {
  4248. if (!ASN1Dec_H225NonStandardIdentifier(dec, &(val)->nonStandardIdentifier))
  4249. return 0;
  4250. if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
  4251. return 0;
  4252. return 1;
  4253. }
  4254. static void ASN1CALL ASN1Free_H225NonStandardParameter(H225NonStandardParameter *val)
  4255. {
  4256. if (val) {
  4257. ASN1Free_H225NonStandardIdentifier(&(val)->nonStandardIdentifier);
  4258. ASN1octetstring_free(&(val)->data);
  4259. }
  4260. }
  4261. static ASN1stringtableentry_t PublicPartyNumber_publicNumberDigits_StringTableEntries[] = {
  4262. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  4263. { 48, 57, 3 },
  4264. };
  4265. static ASN1stringtable_t PublicPartyNumber_publicNumberDigits_StringTable = {
  4266. 4, PublicPartyNumber_publicNumberDigits_StringTableEntries
  4267. };
  4268. static int ASN1CALL ASN1Enc_PublicPartyNumber(ASN1encoding_t enc, PublicPartyNumber *val)
  4269. {
  4270. ASN1uint32_t t;
  4271. if (!ASN1Enc_PublicTypeOfNumber(enc, &(val)->publicTypeOfNumber))
  4272. return 0;
  4273. t = lstrlenA((val)->publicNumberDigits);
  4274. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  4275. return 0;
  4276. ASN1PEREncAlignment(enc);
  4277. if (!ASN1PEREncTableCharString(enc, t, (val)->publicNumberDigits, 4, &PublicPartyNumber_publicNumberDigits_StringTable))
  4278. return 0;
  4279. return 1;
  4280. }
  4281. static int ASN1CALL ASN1Dec_PublicPartyNumber(ASN1decoding_t dec, PublicPartyNumber *val)
  4282. {
  4283. ASN1uint32_t l;
  4284. if (!ASN1Dec_PublicTypeOfNumber(dec, &(val)->publicTypeOfNumber))
  4285. return 0;
  4286. if (!ASN1PERDecU32Val(dec, 7, &l))
  4287. return 0;
  4288. l += 1;
  4289. ASN1PERDecAlignment(dec);
  4290. //NikhilB: Fix for the overflow bug 03/02/27
  4291. if ( l >= sizeof((val)->publicNumberDigits) ) {
  4292. ASN1DecSetError(dec, ASN1_ERR_LARGE);
  4293. return 0;
  4294. }
  4295. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->publicNumberDigits, 4, &PublicPartyNumber_publicNumberDigits_StringTable))
  4296. return 0;
  4297. return 1;
  4298. }
  4299. static void ASN1CALL ASN1Free_PublicPartyNumber(PublicPartyNumber *val)
  4300. {
  4301. if (val) {
  4302. }
  4303. }
  4304. static ASN1stringtableentry_t PrivatePartyNumber_privateNumberDigits_StringTableEntries[] = {
  4305. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  4306. { 48, 57, 3 },
  4307. };
  4308. static ASN1stringtable_t PrivatePartyNumber_privateNumberDigits_StringTable = {
  4309. 4, PrivatePartyNumber_privateNumberDigits_StringTableEntries
  4310. };
  4311. static int ASN1CALL ASN1Enc_PrivatePartyNumber(ASN1encoding_t enc, PrivatePartyNumber *val)
  4312. {
  4313. ASN1uint32_t t;
  4314. if (!ASN1Enc_PrivateTypeOfNumber(enc, &(val)->privateTypeOfNumber))
  4315. return 0;
  4316. t = lstrlenA((val)->privateNumberDigits);
  4317. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  4318. return 0;
  4319. ASN1PEREncAlignment(enc);
  4320. if (!ASN1PEREncTableCharString(enc, t, (val)->privateNumberDigits, 4, &PrivatePartyNumber_privateNumberDigits_StringTable))
  4321. return 0;
  4322. return 1;
  4323. }
  4324. static int ASN1CALL ASN1Dec_PrivatePartyNumber(ASN1decoding_t dec, PrivatePartyNumber *val)
  4325. {
  4326. ASN1uint32_t l;
  4327. if (!ASN1Dec_PrivateTypeOfNumber(dec, &(val)->privateTypeOfNumber))
  4328. return 0;
  4329. if (!ASN1PERDecU32Val(dec, 7, &l))
  4330. return 0;
  4331. l += 1;
  4332. ASN1PERDecAlignment(dec);
  4333. //NikhilB: Fix for the overflow bug 03/02/27
  4334. if ( l >= sizeof((val)->privateNumberDigits) ) {
  4335. ASN1DecSetError(dec, ASN1_ERR_LARGE);
  4336. return 0;
  4337. }
  4338. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->privateNumberDigits, 4, &PrivatePartyNumber_privateNumberDigits_StringTable))
  4339. return 0;
  4340. return 1;
  4341. }
  4342. static void ASN1CALL ASN1Free_PrivatePartyNumber(PrivatePartyNumber *val)
  4343. {
  4344. if (val) {
  4345. }
  4346. }
  4347. static int ASN1CALL ASN1Enc_SecurityServiceMode(ASN1encoding_t enc, SecurityServiceMode *val)
  4348. {
  4349. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4350. return 0;
  4351. switch ((val)->choice) {
  4352. case 1:
  4353. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4354. return 0;
  4355. break;
  4356. case 2:
  4357. break;
  4358. case 3:
  4359. break;
  4360. default:
  4361. /* impossible */
  4362. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4363. return 0;
  4364. }
  4365. return 1;
  4366. }
  4367. static int ASN1CALL ASN1Dec_SecurityServiceMode(ASN1decoding_t dec, SecurityServiceMode *val)
  4368. {
  4369. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4370. return 0;
  4371. switch ((val)->choice) {
  4372. case 1:
  4373. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4374. return 0;
  4375. break;
  4376. case 2:
  4377. break;
  4378. case 3:
  4379. break;
  4380. case 0:
  4381. /* extension case */
  4382. if (!ASN1PERDecSkipFragmented(dec, 8))
  4383. return 0;
  4384. break;
  4385. default:
  4386. /* impossible */
  4387. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4388. return 0;
  4389. }
  4390. return 1;
  4391. }
  4392. static void ASN1CALL ASN1Free_SecurityServiceMode(SecurityServiceMode *val)
  4393. {
  4394. if (val) {
  4395. switch ((val)->choice) {
  4396. case 1:
  4397. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4398. break;
  4399. }
  4400. }
  4401. }
  4402. static int ASN1CALL ASN1Enc_SecurityCapabilities(ASN1encoding_t enc, SecurityCapabilities *val)
  4403. {
  4404. if (!ASN1PEREncExtensionBitClear(enc))
  4405. return 0;
  4406. if (!ASN1PEREncBits(enc, 1, (val)->o))
  4407. return 0;
  4408. if ((val)->o[0] & 0x80) {
  4409. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandard))
  4410. return 0;
  4411. }
  4412. if (!ASN1Enc_SecurityServiceMode(enc, &(val)->encryption))
  4413. return 0;
  4414. if (!ASN1Enc_SecurityServiceMode(enc, &(val)->authenticaton))
  4415. return 0;
  4416. if (!ASN1Enc_SecurityServiceMode(enc, &(val)->integrity))
  4417. return 0;
  4418. return 1;
  4419. }
  4420. static int ASN1CALL ASN1Dec_SecurityCapabilities(ASN1decoding_t dec, SecurityCapabilities *val)
  4421. {
  4422. ASN1uint32_t y;
  4423. if (!ASN1PERDecExtensionBit(dec, &y))
  4424. return 0;
  4425. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  4426. return 0;
  4427. if ((val)->o[0] & 0x80) {
  4428. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandard))
  4429. return 0;
  4430. }
  4431. if (!ASN1Dec_SecurityServiceMode(dec, &(val)->encryption))
  4432. return 0;
  4433. if (!ASN1Dec_SecurityServiceMode(dec, &(val)->authenticaton))
  4434. return 0;
  4435. if (!ASN1Dec_SecurityServiceMode(dec, &(val)->integrity))
  4436. return 0;
  4437. if (y) {
  4438. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4439. return 0;
  4440. }
  4441. return 1;
  4442. }
  4443. static void ASN1CALL ASN1Free_SecurityCapabilities(SecurityCapabilities *val)
  4444. {
  4445. if (val) {
  4446. if ((val)->o[0] & 0x80) {
  4447. ASN1Free_H225NonStandardParameter(&(val)->nonStandard);
  4448. }
  4449. ASN1Free_SecurityServiceMode(&(val)->encryption);
  4450. ASN1Free_SecurityServiceMode(&(val)->authenticaton);
  4451. ASN1Free_SecurityServiceMode(&(val)->integrity);
  4452. }
  4453. }
  4454. static int ASN1CALL ASN1Enc_H245Security(ASN1encoding_t enc, H245Security *val)
  4455. {
  4456. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4457. return 0;
  4458. switch ((val)->choice) {
  4459. case 1:
  4460. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4461. return 0;
  4462. break;
  4463. case 2:
  4464. break;
  4465. case 3:
  4466. if (!ASN1Enc_SecurityCapabilities(enc, &(val)->u.tls))
  4467. return 0;
  4468. break;
  4469. case 4:
  4470. if (!ASN1Enc_SecurityCapabilities(enc, &(val)->u.ipsec))
  4471. return 0;
  4472. break;
  4473. default:
  4474. /* impossible */
  4475. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4476. return 0;
  4477. }
  4478. return 1;
  4479. }
  4480. static int ASN1CALL ASN1Dec_H245Security(ASN1decoding_t dec, H245Security *val)
  4481. {
  4482. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4483. return 0;
  4484. switch ((val)->choice) {
  4485. case 1:
  4486. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4487. return 0;
  4488. break;
  4489. case 2:
  4490. break;
  4491. case 3:
  4492. if (!ASN1Dec_SecurityCapabilities(dec, &(val)->u.tls))
  4493. return 0;
  4494. break;
  4495. case 4:
  4496. if (!ASN1Dec_SecurityCapabilities(dec, &(val)->u.ipsec))
  4497. return 0;
  4498. break;
  4499. case 0:
  4500. /* extension case */
  4501. if (!ASN1PERDecSkipFragmented(dec, 8))
  4502. return 0;
  4503. break;
  4504. default:
  4505. /* impossible */
  4506. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4507. return 0;
  4508. }
  4509. return 1;
  4510. }
  4511. static void ASN1CALL ASN1Free_H245Security(H245Security *val)
  4512. {
  4513. if (val) {
  4514. switch ((val)->choice) {
  4515. case 1:
  4516. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4517. break;
  4518. case 3:
  4519. ASN1Free_SecurityCapabilities(&(val)->u.tls);
  4520. break;
  4521. case 4:
  4522. ASN1Free_SecurityCapabilities(&(val)->u.ipsec);
  4523. break;
  4524. }
  4525. }
  4526. }
  4527. static int ASN1CALL ASN1Enc_QseriesOptions(ASN1encoding_t enc, QseriesOptions *val)
  4528. {
  4529. if (!ASN1PEREncExtensionBitClear(enc))
  4530. return 0;
  4531. if (!ASN1PEREncBoolean(enc, (val)->q932Full))
  4532. return 0;
  4533. if (!ASN1PEREncBoolean(enc, (val)->q951Full))
  4534. return 0;
  4535. if (!ASN1PEREncBoolean(enc, (val)->q952Full))
  4536. return 0;
  4537. if (!ASN1PEREncBoolean(enc, (val)->q953Full))
  4538. return 0;
  4539. if (!ASN1PEREncBoolean(enc, (val)->q955Full))
  4540. return 0;
  4541. if (!ASN1PEREncBoolean(enc, (val)->q956Full))
  4542. return 0;
  4543. if (!ASN1PEREncBoolean(enc, (val)->q957Full))
  4544. return 0;
  4545. if (!ASN1Enc_Q954Details(enc, &(val)->q954Info))
  4546. return 0;
  4547. return 1;
  4548. }
  4549. static int ASN1CALL ASN1Dec_QseriesOptions(ASN1decoding_t dec, QseriesOptions *val)
  4550. {
  4551. ASN1uint32_t y;
  4552. if (!ASN1PERDecExtensionBit(dec, &y))
  4553. return 0;
  4554. if (!ASN1PERDecBoolean(dec, &(val)->q932Full))
  4555. return 0;
  4556. if (!ASN1PERDecBoolean(dec, &(val)->q951Full))
  4557. return 0;
  4558. if (!ASN1PERDecBoolean(dec, &(val)->q952Full))
  4559. return 0;
  4560. if (!ASN1PERDecBoolean(dec, &(val)->q953Full))
  4561. return 0;
  4562. if (!ASN1PERDecBoolean(dec, &(val)->q955Full))
  4563. return 0;
  4564. if (!ASN1PERDecBoolean(dec, &(val)->q956Full))
  4565. return 0;
  4566. if (!ASN1PERDecBoolean(dec, &(val)->q957Full))
  4567. return 0;
  4568. if (!ASN1Dec_Q954Details(dec, &(val)->q954Info))
  4569. return 0;
  4570. if (y) {
  4571. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4572. return 0;
  4573. }
  4574. return 1;
  4575. }
  4576. static int ASN1CALL ASN1Enc_EncryptIntAlg(ASN1encoding_t enc, EncryptIntAlg *val)
  4577. {
  4578. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
  4579. return 0;
  4580. switch ((val)->choice) {
  4581. case 1:
  4582. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4583. return 0;
  4584. break;
  4585. case 2:
  4586. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.isoAlgorithm))
  4587. return 0;
  4588. break;
  4589. default:
  4590. /* impossible */
  4591. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4592. return 0;
  4593. }
  4594. return 1;
  4595. }
  4596. static int ASN1CALL ASN1Dec_EncryptIntAlg(ASN1decoding_t dec, EncryptIntAlg *val)
  4597. {
  4598. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
  4599. return 0;
  4600. switch ((val)->choice) {
  4601. case 1:
  4602. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4603. return 0;
  4604. break;
  4605. case 2:
  4606. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.isoAlgorithm))
  4607. return 0;
  4608. break;
  4609. case 0:
  4610. /* extension case */
  4611. if (!ASN1PERDecSkipFragmented(dec, 8))
  4612. return 0;
  4613. break;
  4614. default:
  4615. /* impossible */
  4616. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4617. return 0;
  4618. }
  4619. return 1;
  4620. }
  4621. static void ASN1CALL ASN1Free_EncryptIntAlg(EncryptIntAlg *val)
  4622. {
  4623. if (val) {
  4624. switch ((val)->choice) {
  4625. case 1:
  4626. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4627. break;
  4628. case 2:
  4629. ASN1objectidentifier_free(&(val)->u.isoAlgorithm);
  4630. break;
  4631. }
  4632. }
  4633. }
  4634. static int ASN1CALL ASN1Enc_NonIsoIntegrityMechanism(ASN1encoding_t enc, NonIsoIntegrityMechanism *val)
  4635. {
  4636. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4637. return 0;
  4638. switch ((val)->choice) {
  4639. case 1:
  4640. break;
  4641. case 2:
  4642. if (!ASN1Enc_EncryptIntAlg(enc, &(val)->u.hMAC_iso10118_2_s))
  4643. return 0;
  4644. break;
  4645. case 3:
  4646. if (!ASN1Enc_EncryptIntAlg(enc, &(val)->u.hMAC_iso10118_2_l))
  4647. return 0;
  4648. break;
  4649. case 4:
  4650. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.hMAC_iso10118_3))
  4651. return 0;
  4652. break;
  4653. default:
  4654. /* impossible */
  4655. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4656. return 0;
  4657. }
  4658. return 1;
  4659. }
  4660. static int ASN1CALL ASN1Dec_NonIsoIntegrityMechanism(ASN1decoding_t dec, NonIsoIntegrityMechanism *val)
  4661. {
  4662. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4663. return 0;
  4664. switch ((val)->choice) {
  4665. case 1:
  4666. break;
  4667. case 2:
  4668. if (!ASN1Dec_EncryptIntAlg(dec, &(val)->u.hMAC_iso10118_2_s))
  4669. return 0;
  4670. break;
  4671. case 3:
  4672. if (!ASN1Dec_EncryptIntAlg(dec, &(val)->u.hMAC_iso10118_2_l))
  4673. return 0;
  4674. break;
  4675. case 4:
  4676. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.hMAC_iso10118_3))
  4677. return 0;
  4678. break;
  4679. case 0:
  4680. /* extension case */
  4681. if (!ASN1PERDecSkipFragmented(dec, 8))
  4682. return 0;
  4683. break;
  4684. default:
  4685. /* impossible */
  4686. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4687. return 0;
  4688. }
  4689. return 1;
  4690. }
  4691. static void ASN1CALL ASN1Free_NonIsoIntegrityMechanism(NonIsoIntegrityMechanism *val)
  4692. {
  4693. if (val) {
  4694. switch ((val)->choice) {
  4695. case 2:
  4696. ASN1Free_EncryptIntAlg(&(val)->u.hMAC_iso10118_2_s);
  4697. break;
  4698. case 3:
  4699. ASN1Free_EncryptIntAlg(&(val)->u.hMAC_iso10118_2_l);
  4700. break;
  4701. case 4:
  4702. ASN1objectidentifier_free(&(val)->u.hMAC_iso10118_3);
  4703. break;
  4704. }
  4705. }
  4706. }
  4707. static int ASN1CALL ASN1Enc_IntegrityMechanism(ASN1encoding_t enc, IntegrityMechanism *val)
  4708. {
  4709. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  4710. return 0;
  4711. switch ((val)->choice) {
  4712. case 1:
  4713. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
  4714. return 0;
  4715. break;
  4716. case 2:
  4717. break;
  4718. case 3:
  4719. if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.iso9797))
  4720. return 0;
  4721. break;
  4722. case 4:
  4723. if (!ASN1Enc_NonIsoIntegrityMechanism(enc, &(val)->u.nonIsoIM))
  4724. return 0;
  4725. break;
  4726. default:
  4727. /* impossible */
  4728. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  4729. return 0;
  4730. }
  4731. return 1;
  4732. }
  4733. static int ASN1CALL ASN1Dec_IntegrityMechanism(ASN1decoding_t dec, IntegrityMechanism *val)
  4734. {
  4735. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  4736. return 0;
  4737. switch ((val)->choice) {
  4738. case 1:
  4739. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
  4740. return 0;
  4741. break;
  4742. case 2:
  4743. break;
  4744. case 3:
  4745. if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.iso9797))
  4746. return 0;
  4747. break;
  4748. case 4:
  4749. if (!ASN1Dec_NonIsoIntegrityMechanism(dec, &(val)->u.nonIsoIM))
  4750. return 0;
  4751. break;
  4752. case 0:
  4753. /* extension case */
  4754. if (!ASN1PERDecSkipFragmented(dec, 8))
  4755. return 0;
  4756. break;
  4757. default:
  4758. /* impossible */
  4759. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  4760. return 0;
  4761. }
  4762. return 1;
  4763. }
  4764. static void ASN1CALL ASN1Free_IntegrityMechanism(IntegrityMechanism *val)
  4765. {
  4766. if (val) {
  4767. switch ((val)->choice) {
  4768. case 1:
  4769. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
  4770. break;
  4771. case 3:
  4772. ASN1objectidentifier_free(&(val)->u.iso9797);
  4773. break;
  4774. case 4:
  4775. ASN1Free_NonIsoIntegrityMechanism(&(val)->u.nonIsoIM);
  4776. break;
  4777. }
  4778. }
  4779. }
  4780. static int ASN1CALL ASN1Enc_EncodedFastStartToken(ASN1encoding_t enc, EncodedFastStartToken *val)
  4781. {
  4782. if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
  4783. return 0;
  4784. if (!ASN1Enc_FastStartToken(enc, &(val)->type))
  4785. return 0;
  4786. return 1;
  4787. }
  4788. static int ASN1CALL ASN1Dec_EncodedFastStartToken(ASN1decoding_t dec, EncodedFastStartToken *val)
  4789. {
  4790. if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
  4791. return 0;
  4792. if (!ASN1Dec_FastStartToken(dec, &(val)->type))
  4793. return 0;
  4794. return 1;
  4795. }
  4796. static void ASN1CALL ASN1Free_EncodedFastStartToken(EncodedFastStartToken *val)
  4797. {
  4798. if (val) {
  4799. ASN1objectidentifier_free(&(val)->id);
  4800. ASN1Free_FastStartToken(&(val)->type);
  4801. }
  4802. }
  4803. static int ASN1CALL ASN1Enc_DataRate(ASN1encoding_t enc, DataRate *val)
  4804. {
  4805. ASN1uint32_t l;
  4806. if (!ASN1PEREncExtensionBitClear(enc))
  4807. return 0;
  4808. if (!ASN1PEREncBits(enc, 2, (val)->o))
  4809. return 0;
  4810. if ((val)->o[0] & 0x80) {
  4811. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  4812. return 0;
  4813. }
  4814. l = ASN1uint32_uoctets((val)->channelRate);
  4815. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  4816. return 0;
  4817. ASN1PEREncAlignment(enc);
  4818. if (!ASN1PEREncBitVal(enc, l * 8, (val)->channelRate))
  4819. return 0;
  4820. if ((val)->o[0] & 0x40) {
  4821. ASN1PEREncAlignment(enc);
  4822. if (!ASN1PEREncBitVal(enc, 8, (val)->channelMultiplier - 1))
  4823. return 0;
  4824. }
  4825. return 1;
  4826. }
  4827. static int ASN1CALL ASN1Dec_DataRate(ASN1decoding_t dec, DataRate *val)
  4828. {
  4829. ASN1uint32_t y;
  4830. ASN1uint32_t l;
  4831. if (!ASN1PERDecExtensionBit(dec, &y))
  4832. return 0;
  4833. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  4834. return 0;
  4835. if ((val)->o[0] & 0x80) {
  4836. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  4837. return 0;
  4838. }
  4839. if (!ASN1PERDecU32Val(dec, 2, &l))
  4840. return 0;
  4841. l += 1;
  4842. ASN1PERDecAlignment(dec);
  4843. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->channelRate))
  4844. return 0;
  4845. if ((val)->o[0] & 0x40) {
  4846. ASN1PERDecAlignment(dec);
  4847. if (!ASN1PERDecU16Val(dec, 8, &(val)->channelMultiplier))
  4848. return 0;
  4849. (val)->channelMultiplier += 1;
  4850. }
  4851. if (y) {
  4852. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  4853. return 0;
  4854. }
  4855. return 1;
  4856. }
  4857. static void ASN1CALL ASN1Free_DataRate(DataRate *val)
  4858. {
  4859. if (val) {
  4860. if ((val)->o[0] & 0x80) {
  4861. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  4862. }
  4863. }
  4864. }
  4865. static int ASN1CALL ASN1Enc_GatekeeperReject(ASN1encoding_t enc, GatekeeperReject *val)
  4866. {
  4867. ASN1uint32_t y;
  4868. ASN1encoding_t ee;
  4869. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  4870. if (!ASN1PEREncBitVal(enc, 1, y))
  4871. return 0;
  4872. if (!ASN1PEREncBits(enc, 2, (val)->o))
  4873. return 0;
  4874. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  4875. return 0;
  4876. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  4877. return 0;
  4878. if ((val)->o[0] & 0x80) {
  4879. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  4880. return 0;
  4881. }
  4882. if ((val)->o[0] & 0x40) {
  4883. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  4884. return 0;
  4885. ASN1PEREncAlignment(enc);
  4886. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  4887. return 0;
  4888. }
  4889. if (!ASN1Enc_GatekeeperRejectReason(enc, &(val)->rejectReason))
  4890. return 0;
  4891. if (y) {
  4892. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  4893. return 0;
  4894. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  4895. return 0;
  4896. if ((val)->o[1] & 0x80) {
  4897. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  4898. return 0;
  4899. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4900. return 0;
  4901. }
  4902. if ((val)->o[1] & 0x40) {
  4903. if (!ASN1Enc_GatekeeperReject_tokens(ee, &(val)->tokens))
  4904. return 0;
  4905. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4906. return 0;
  4907. }
  4908. if ((val)->o[1] & 0x20) {
  4909. if (!ASN1Enc_GatekeeperReject_cryptoTokens(ee, &(val)->cryptoTokens))
  4910. return 0;
  4911. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4912. return 0;
  4913. }
  4914. if ((val)->o[1] & 0x10) {
  4915. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  4916. return 0;
  4917. if (!ASN1PEREncFlushFragmentedToParent(ee))
  4918. return 0;
  4919. }
  4920. ASN1_CloseEncoder2(ee);
  4921. }
  4922. return 1;
  4923. }
  4924. static int ASN1CALL ASN1Dec_GatekeeperReject(ASN1decoding_t dec, GatekeeperReject *val)
  4925. {
  4926. ASN1uint32_t y;
  4927. ASN1decoding_t dd;
  4928. ASN1octet_t *db;
  4929. ASN1uint32_t ds;
  4930. ASN1uint32_t i;
  4931. ASN1uint32_t e;
  4932. if (!ASN1PERDecExtensionBit(dec, &y))
  4933. return 0;
  4934. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  4935. return 0;
  4936. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  4937. return 0;
  4938. (val)->requestSeqNum += 1;
  4939. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  4940. return 0;
  4941. if ((val)->o[0] & 0x80) {
  4942. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  4943. return 0;
  4944. }
  4945. if ((val)->o[0] & 0x40) {
  4946. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  4947. return 0;
  4948. ((val)->gatekeeperIdentifier).length += 1;
  4949. ASN1PERDecAlignment(dec);
  4950. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  4951. return 0;
  4952. }
  4953. if (!ASN1Dec_GatekeeperRejectReason(dec, &(val)->rejectReason))
  4954. return 0;
  4955. if (!y) {
  4956. ZeroMemory((val)->o + 1, 1);
  4957. } else {
  4958. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  4959. return 0;
  4960. if ((val)->o[1] & 0x80) {
  4961. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4962. return 0;
  4963. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  4964. return 0;
  4965. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  4966. return 0;
  4967. ASN1_CloseDecoder(dd);
  4968. }
  4969. if ((val)->o[1] & 0x40) {
  4970. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4971. return 0;
  4972. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  4973. return 0;
  4974. if (!ASN1Dec_GatekeeperReject_tokens(dd, &(val)->tokens))
  4975. return 0;
  4976. ASN1_CloseDecoder(dd);
  4977. }
  4978. if ((val)->o[1] & 0x20) {
  4979. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4980. return 0;
  4981. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  4982. return 0;
  4983. if (!ASN1Dec_GatekeeperReject_cryptoTokens(dd, &(val)->cryptoTokens))
  4984. return 0;
  4985. ASN1_CloseDecoder(dd);
  4986. }
  4987. if ((val)->o[1] & 0x10) {
  4988. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  4989. return 0;
  4990. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  4991. return 0;
  4992. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  4993. return 0;
  4994. ASN1_CloseDecoder(dd);
  4995. }
  4996. for (i = 0; i < e; i++) {
  4997. if (!ASN1PERDecSkipFragmented(dec, 8))
  4998. return 0;
  4999. }
  5000. }
  5001. return 1;
  5002. }
  5003. static void ASN1CALL ASN1Free_GatekeeperReject(GatekeeperReject *val)
  5004. {
  5005. if (val) {
  5006. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  5007. if ((val)->o[0] & 0x80) {
  5008. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5009. }
  5010. if ((val)->o[0] & 0x40) {
  5011. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5012. }
  5013. if ((val)->o[1] & 0x80) {
  5014. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  5015. }
  5016. if ((val)->o[1] & 0x40) {
  5017. ASN1Free_GatekeeperReject_tokens(&(val)->tokens);
  5018. }
  5019. if ((val)->o[1] & 0x20) {
  5020. ASN1Free_GatekeeperReject_cryptoTokens(&(val)->cryptoTokens);
  5021. }
  5022. if ((val)->o[1] & 0x10) {
  5023. ASN1Free_ICV(&(val)->integrityCheckValue);
  5024. }
  5025. }
  5026. }
  5027. static int ASN1CALL ASN1Enc_RegistrationConfirm(ASN1encoding_t enc, RegistrationConfirm *val)
  5028. {
  5029. ASN1octet_t o[2];
  5030. ASN1uint32_t y;
  5031. ASN1encoding_t ee;
  5032. ASN1uint32_t l;
  5033. CopyMemory(o, (val)->o, 2);
  5034. o[1] |= 0x4;
  5035. y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
  5036. if (!ASN1PEREncBitVal(enc, 1, y))
  5037. return 0;
  5038. if (!ASN1PEREncBits(enc, 3, o))
  5039. return 0;
  5040. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5041. return 0;
  5042. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  5043. return 0;
  5044. if (o[0] & 0x80) {
  5045. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5046. return 0;
  5047. }
  5048. if (!ASN1Enc_RegistrationConfirm_callSignalAddress(enc, &(val)->callSignalAddress))
  5049. return 0;
  5050. if (o[0] & 0x40) {
  5051. if (!ASN1Enc_RegistrationConfirm_terminalAlias(enc, &(val)->terminalAlias))
  5052. return 0;
  5053. }
  5054. if (o[0] & 0x20) {
  5055. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  5056. return 0;
  5057. ASN1PEREncAlignment(enc);
  5058. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  5059. return 0;
  5060. }
  5061. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  5062. return 0;
  5063. ASN1PEREncAlignment(enc);
  5064. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  5065. return 0;
  5066. if (y) {
  5067. if (!ASN1PEREncNormallySmallBits(enc, 7, o + 1))
  5068. return 0;
  5069. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5070. return 0;
  5071. if (o[1] & 0x80) {
  5072. if (!ASN1Enc_RegistrationConfirm_alternateGatekeeper(ee, &(val)->alternateGatekeeper))
  5073. return 0;
  5074. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5075. return 0;
  5076. }
  5077. if (o[1] & 0x40) {
  5078. l = ASN1uint32_uoctets((val)->timeToLive - 1);
  5079. if (!ASN1PEREncBitVal(ee, 2, l - 1))
  5080. return 0;
  5081. ASN1PEREncAlignment(ee);
  5082. if (!ASN1PEREncBitVal(ee, l * 8, (val)->timeToLive - 1))
  5083. return 0;
  5084. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5085. return 0;
  5086. }
  5087. if (o[1] & 0x20) {
  5088. if (!ASN1Enc_RegistrationConfirm_tokens(ee, &(val)->tokens))
  5089. return 0;
  5090. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5091. return 0;
  5092. }
  5093. if (o[1] & 0x10) {
  5094. if (!ASN1Enc_RegistrationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  5095. return 0;
  5096. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5097. return 0;
  5098. }
  5099. if (o[1] & 0x8) {
  5100. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5101. return 0;
  5102. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5103. return 0;
  5104. }
  5105. if (o[1] & 0x4) {
  5106. if (!ASN1PEREncBoolean(ee, (val)->willRespondToIRR))
  5107. return 0;
  5108. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5109. return 0;
  5110. }
  5111. if (o[1] & 0x2) {
  5112. if (!ASN1Enc_RegistrationConfirm_preGrantedARQ(ee, &(val)->preGrantedARQ))
  5113. return 0;
  5114. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5115. return 0;
  5116. }
  5117. ASN1_CloseEncoder2(ee);
  5118. }
  5119. return 1;
  5120. }
  5121. static int ASN1CALL ASN1Dec_RegistrationConfirm(ASN1decoding_t dec, RegistrationConfirm *val)
  5122. {
  5123. ASN1uint32_t y;
  5124. ASN1decoding_t dd;
  5125. ASN1octet_t *db;
  5126. ASN1uint32_t ds;
  5127. ASN1uint32_t l;
  5128. ASN1uint32_t i;
  5129. ASN1uint32_t e;
  5130. if (!ASN1PERDecExtensionBit(dec, &y))
  5131. return 0;
  5132. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  5133. return 0;
  5134. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5135. return 0;
  5136. (val)->requestSeqNum += 1;
  5137. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  5138. return 0;
  5139. if ((val)->o[0] & 0x80) {
  5140. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5141. return 0;
  5142. }
  5143. if (!ASN1Dec_RegistrationConfirm_callSignalAddress(dec, &(val)->callSignalAddress))
  5144. return 0;
  5145. if ((val)->o[0] & 0x40) {
  5146. if (!ASN1Dec_RegistrationConfirm_terminalAlias(dec, &(val)->terminalAlias))
  5147. return 0;
  5148. }
  5149. if ((val)->o[0] & 0x20) {
  5150. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  5151. return 0;
  5152. ((val)->gatekeeperIdentifier).length += 1;
  5153. ASN1PERDecAlignment(dec);
  5154. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  5155. return 0;
  5156. }
  5157. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  5158. return 0;
  5159. ((val)->endpointIdentifier).length += 1;
  5160. ASN1PERDecAlignment(dec);
  5161. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  5162. return 0;
  5163. if (!y) {
  5164. ZeroMemory((val)->o + 1, 1);
  5165. } else {
  5166. if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
  5167. return 0;
  5168. if ((val)->o[1] & 0x80) {
  5169. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5170. return 0;
  5171. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5172. return 0;
  5173. if (!ASN1Dec_RegistrationConfirm_alternateGatekeeper(dd, &(val)->alternateGatekeeper))
  5174. return 0;
  5175. ASN1_CloseDecoder(dd);
  5176. }
  5177. if ((val)->o[1] & 0x40) {
  5178. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5179. return 0;
  5180. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5181. return 0;
  5182. if (!ASN1PERDecU32Val(dd, 2, &l))
  5183. return 0;
  5184. l += 1;
  5185. ASN1PERDecAlignment(dd);
  5186. if (!ASN1PERDecU32Val(dd, l * 8, &(val)->timeToLive))
  5187. return 0;
  5188. (val)->timeToLive += 1;
  5189. ASN1_CloseDecoder(dd);
  5190. }
  5191. if ((val)->o[1] & 0x20) {
  5192. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5193. return 0;
  5194. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5195. return 0;
  5196. if (!ASN1Dec_RegistrationConfirm_tokens(dd, &(val)->tokens))
  5197. return 0;
  5198. ASN1_CloseDecoder(dd);
  5199. }
  5200. if ((val)->o[1] & 0x10) {
  5201. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5202. return 0;
  5203. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5204. return 0;
  5205. if (!ASN1Dec_RegistrationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  5206. return 0;
  5207. ASN1_CloseDecoder(dd);
  5208. }
  5209. if ((val)->o[1] & 0x8) {
  5210. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5211. return 0;
  5212. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5213. return 0;
  5214. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5215. return 0;
  5216. ASN1_CloseDecoder(dd);
  5217. }
  5218. if ((val)->o[1] & 0x4) {
  5219. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5220. return 0;
  5221. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5222. return 0;
  5223. if (!ASN1PERDecBoolean(dd, &(val)->willRespondToIRR))
  5224. return 0;
  5225. ASN1_CloseDecoder(dd);
  5226. }
  5227. if ((val)->o[1] & 0x2) {
  5228. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5229. return 0;
  5230. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5231. return 0;
  5232. if (!ASN1Dec_RegistrationConfirm_preGrantedARQ(dd, &(val)->preGrantedARQ))
  5233. return 0;
  5234. ASN1_CloseDecoder(dd);
  5235. }
  5236. for (i = 0; i < e; i++) {
  5237. if (!ASN1PERDecSkipFragmented(dec, 8))
  5238. return 0;
  5239. }
  5240. }
  5241. return 1;
  5242. }
  5243. static void ASN1CALL ASN1Free_RegistrationConfirm(RegistrationConfirm *val)
  5244. {
  5245. if (val) {
  5246. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  5247. if ((val)->o[0] & 0x80) {
  5248. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5249. }
  5250. ASN1Free_RegistrationConfirm_callSignalAddress(&(val)->callSignalAddress);
  5251. if ((val)->o[0] & 0x40) {
  5252. ASN1Free_RegistrationConfirm_terminalAlias(&(val)->terminalAlias);
  5253. }
  5254. if ((val)->o[0] & 0x20) {
  5255. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5256. }
  5257. ASN1char16string_free(&(val)->endpointIdentifier);
  5258. if ((val)->o[1] & 0x80) {
  5259. ASN1Free_RegistrationConfirm_alternateGatekeeper(&(val)->alternateGatekeeper);
  5260. }
  5261. if ((val)->o[1] & 0x20) {
  5262. ASN1Free_RegistrationConfirm_tokens(&(val)->tokens);
  5263. }
  5264. if ((val)->o[1] & 0x10) {
  5265. ASN1Free_RegistrationConfirm_cryptoTokens(&(val)->cryptoTokens);
  5266. }
  5267. if ((val)->o[1] & 0x8) {
  5268. ASN1Free_ICV(&(val)->integrityCheckValue);
  5269. }
  5270. }
  5271. }
  5272. static int ASN1CALL ASN1Enc_RegistrationReject(ASN1encoding_t enc, RegistrationReject *val)
  5273. {
  5274. ASN1uint32_t y;
  5275. ASN1encoding_t ee;
  5276. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  5277. if (!ASN1PEREncBitVal(enc, 1, y))
  5278. return 0;
  5279. if (!ASN1PEREncBits(enc, 2, (val)->o))
  5280. return 0;
  5281. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5282. return 0;
  5283. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  5284. return 0;
  5285. if ((val)->o[0] & 0x80) {
  5286. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5287. return 0;
  5288. }
  5289. if (!ASN1Enc_RegistrationRejectReason(enc, &(val)->rejectReason))
  5290. return 0;
  5291. if ((val)->o[0] & 0x40) {
  5292. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  5293. return 0;
  5294. ASN1PEREncAlignment(enc);
  5295. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  5296. return 0;
  5297. }
  5298. if (y) {
  5299. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  5300. return 0;
  5301. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5302. return 0;
  5303. if ((val)->o[1] & 0x80) {
  5304. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  5305. return 0;
  5306. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5307. return 0;
  5308. }
  5309. if ((val)->o[1] & 0x40) {
  5310. if (!ASN1Enc_RegistrationReject_tokens(ee, &(val)->tokens))
  5311. return 0;
  5312. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5313. return 0;
  5314. }
  5315. if ((val)->o[1] & 0x20) {
  5316. if (!ASN1Enc_RegistrationReject_cryptoTokens(ee, &(val)->cryptoTokens))
  5317. return 0;
  5318. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5319. return 0;
  5320. }
  5321. if ((val)->o[1] & 0x10) {
  5322. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5323. return 0;
  5324. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5325. return 0;
  5326. }
  5327. ASN1_CloseEncoder2(ee);
  5328. }
  5329. return 1;
  5330. }
  5331. static int ASN1CALL ASN1Dec_RegistrationReject(ASN1decoding_t dec, RegistrationReject *val)
  5332. {
  5333. ASN1uint32_t y;
  5334. ASN1decoding_t dd;
  5335. ASN1octet_t *db;
  5336. ASN1uint32_t ds;
  5337. ASN1uint32_t i;
  5338. ASN1uint32_t e;
  5339. if (!ASN1PERDecExtensionBit(dec, &y))
  5340. return 0;
  5341. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  5342. return 0;
  5343. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5344. return 0;
  5345. (val)->requestSeqNum += 1;
  5346. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  5347. return 0;
  5348. if ((val)->o[0] & 0x80) {
  5349. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5350. return 0;
  5351. }
  5352. if (!ASN1Dec_RegistrationRejectReason(dec, &(val)->rejectReason))
  5353. return 0;
  5354. if ((val)->o[0] & 0x40) {
  5355. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  5356. return 0;
  5357. ((val)->gatekeeperIdentifier).length += 1;
  5358. ASN1PERDecAlignment(dec);
  5359. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  5360. return 0;
  5361. }
  5362. if (!y) {
  5363. ZeroMemory((val)->o + 1, 1);
  5364. } else {
  5365. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  5366. return 0;
  5367. if ((val)->o[1] & 0x80) {
  5368. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5369. return 0;
  5370. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5371. return 0;
  5372. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  5373. return 0;
  5374. ASN1_CloseDecoder(dd);
  5375. }
  5376. if ((val)->o[1] & 0x40) {
  5377. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5378. return 0;
  5379. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5380. return 0;
  5381. if (!ASN1Dec_RegistrationReject_tokens(dd, &(val)->tokens))
  5382. return 0;
  5383. ASN1_CloseDecoder(dd);
  5384. }
  5385. if ((val)->o[1] & 0x20) {
  5386. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5387. return 0;
  5388. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5389. return 0;
  5390. if (!ASN1Dec_RegistrationReject_cryptoTokens(dd, &(val)->cryptoTokens))
  5391. return 0;
  5392. ASN1_CloseDecoder(dd);
  5393. }
  5394. if ((val)->o[1] & 0x10) {
  5395. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5396. return 0;
  5397. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5398. return 0;
  5399. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5400. return 0;
  5401. ASN1_CloseDecoder(dd);
  5402. }
  5403. for (i = 0; i < e; i++) {
  5404. if (!ASN1PERDecSkipFragmented(dec, 8))
  5405. return 0;
  5406. }
  5407. }
  5408. return 1;
  5409. }
  5410. static void ASN1CALL ASN1Free_RegistrationReject(RegistrationReject *val)
  5411. {
  5412. if (val) {
  5413. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  5414. if ((val)->o[0] & 0x80) {
  5415. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5416. }
  5417. ASN1Free_RegistrationRejectReason(&(val)->rejectReason);
  5418. if ((val)->o[0] & 0x40) {
  5419. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5420. }
  5421. if ((val)->o[1] & 0x80) {
  5422. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  5423. }
  5424. if ((val)->o[1] & 0x40) {
  5425. ASN1Free_RegistrationReject_tokens(&(val)->tokens);
  5426. }
  5427. if ((val)->o[1] & 0x20) {
  5428. ASN1Free_RegistrationReject_cryptoTokens(&(val)->cryptoTokens);
  5429. }
  5430. if ((val)->o[1] & 0x10) {
  5431. ASN1Free_ICV(&(val)->integrityCheckValue);
  5432. }
  5433. }
  5434. }
  5435. static int ASN1CALL ASN1Enc_UnregistrationRequest(ASN1encoding_t enc, UnregistrationRequest *val)
  5436. {
  5437. ASN1uint32_t y;
  5438. ASN1encoding_t ee;
  5439. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  5440. if (!ASN1PEREncBitVal(enc, 1, y))
  5441. return 0;
  5442. if (!ASN1PEREncBits(enc, 3, (val)->o))
  5443. return 0;
  5444. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5445. return 0;
  5446. if (!ASN1Enc_UnregistrationRequest_callSignalAddress(enc, &(val)->callSignalAddress))
  5447. return 0;
  5448. if ((val)->o[0] & 0x80) {
  5449. if (!ASN1Enc_UnregistrationRequest_endpointAlias(enc, &(val)->endpointAlias))
  5450. return 0;
  5451. }
  5452. if ((val)->o[0] & 0x40) {
  5453. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5454. return 0;
  5455. }
  5456. if ((val)->o[0] & 0x20) {
  5457. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  5458. return 0;
  5459. ASN1PEREncAlignment(enc);
  5460. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  5461. return 0;
  5462. }
  5463. if (y) {
  5464. if (!ASN1PEREncNormallySmallBits(enc, 6, (val)->o + 1))
  5465. return 0;
  5466. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5467. return 0;
  5468. if ((val)->o[1] & 0x80) {
  5469. if (!ASN1Enc_UnregistrationRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
  5470. return 0;
  5471. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5472. return 0;
  5473. }
  5474. if ((val)->o[1] & 0x40) {
  5475. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  5476. return 0;
  5477. ASN1PEREncAlignment(ee);
  5478. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  5479. return 0;
  5480. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5481. return 0;
  5482. }
  5483. if ((val)->o[1] & 0x20) {
  5484. if (!ASN1Enc_UnregistrationRequest_tokens(ee, &(val)->tokens))
  5485. return 0;
  5486. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5487. return 0;
  5488. }
  5489. if ((val)->o[1] & 0x10) {
  5490. if (!ASN1Enc_UnregistrationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  5491. return 0;
  5492. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5493. return 0;
  5494. }
  5495. if ((val)->o[1] & 0x8) {
  5496. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5497. return 0;
  5498. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5499. return 0;
  5500. }
  5501. if ((val)->o[1] & 0x4) {
  5502. if (!ASN1Enc_UnregRequestReason(ee, &(val)->reason))
  5503. return 0;
  5504. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5505. return 0;
  5506. }
  5507. ASN1_CloseEncoder2(ee);
  5508. }
  5509. return 1;
  5510. }
  5511. static int ASN1CALL ASN1Dec_UnregistrationRequest(ASN1decoding_t dec, UnregistrationRequest *val)
  5512. {
  5513. ASN1uint32_t y;
  5514. ASN1decoding_t dd;
  5515. ASN1octet_t *db;
  5516. ASN1uint32_t ds;
  5517. ASN1uint32_t i;
  5518. ASN1uint32_t e;
  5519. if (!ASN1PERDecExtensionBit(dec, &y))
  5520. return 0;
  5521. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  5522. return 0;
  5523. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5524. return 0;
  5525. (val)->requestSeqNum += 1;
  5526. if (!ASN1Dec_UnregistrationRequest_callSignalAddress(dec, &(val)->callSignalAddress))
  5527. return 0;
  5528. if ((val)->o[0] & 0x80) {
  5529. if (!ASN1Dec_UnregistrationRequest_endpointAlias(dec, &(val)->endpointAlias))
  5530. return 0;
  5531. }
  5532. if ((val)->o[0] & 0x40) {
  5533. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5534. return 0;
  5535. }
  5536. if ((val)->o[0] & 0x20) {
  5537. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  5538. return 0;
  5539. ((val)->endpointIdentifier).length += 1;
  5540. ASN1PERDecAlignment(dec);
  5541. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  5542. return 0;
  5543. }
  5544. if (!y) {
  5545. ZeroMemory((val)->o + 1, 1);
  5546. } else {
  5547. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  5548. return 0;
  5549. if ((val)->o[1] & 0x80) {
  5550. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5551. return 0;
  5552. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5553. return 0;
  5554. if (!ASN1Dec_UnregistrationRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
  5555. return 0;
  5556. ASN1_CloseDecoder(dd);
  5557. }
  5558. if ((val)->o[1] & 0x40) {
  5559. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5560. return 0;
  5561. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5562. return 0;
  5563. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  5564. return 0;
  5565. ((val)->gatekeeperIdentifier).length += 1;
  5566. ASN1PERDecAlignment(dd);
  5567. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  5568. return 0;
  5569. ASN1_CloseDecoder(dd);
  5570. }
  5571. if ((val)->o[1] & 0x20) {
  5572. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5573. return 0;
  5574. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5575. return 0;
  5576. if (!ASN1Dec_UnregistrationRequest_tokens(dd, &(val)->tokens))
  5577. return 0;
  5578. ASN1_CloseDecoder(dd);
  5579. }
  5580. if ((val)->o[1] & 0x10) {
  5581. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5582. return 0;
  5583. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5584. return 0;
  5585. if (!ASN1Dec_UnregistrationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  5586. return 0;
  5587. ASN1_CloseDecoder(dd);
  5588. }
  5589. if ((val)->o[1] & 0x8) {
  5590. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5591. return 0;
  5592. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5593. return 0;
  5594. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5595. return 0;
  5596. ASN1_CloseDecoder(dd);
  5597. }
  5598. if ((val)->o[1] & 0x4) {
  5599. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5600. return 0;
  5601. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5602. return 0;
  5603. if (!ASN1Dec_UnregRequestReason(dd, &(val)->reason))
  5604. return 0;
  5605. ASN1_CloseDecoder(dd);
  5606. }
  5607. for (i = 0; i < e; i++) {
  5608. if (!ASN1PERDecSkipFragmented(dec, 8))
  5609. return 0;
  5610. }
  5611. }
  5612. return 1;
  5613. }
  5614. static void ASN1CALL ASN1Free_UnregistrationRequest(UnregistrationRequest *val)
  5615. {
  5616. if (val) {
  5617. ASN1Free_UnregistrationRequest_callSignalAddress(&(val)->callSignalAddress);
  5618. if ((val)->o[0] & 0x80) {
  5619. ASN1Free_UnregistrationRequest_endpointAlias(&(val)->endpointAlias);
  5620. }
  5621. if ((val)->o[0] & 0x40) {
  5622. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5623. }
  5624. if ((val)->o[0] & 0x20) {
  5625. ASN1char16string_free(&(val)->endpointIdentifier);
  5626. }
  5627. if ((val)->o[1] & 0x80) {
  5628. ASN1Free_UnregistrationRequest_alternateEndpoints(&(val)->alternateEndpoints);
  5629. }
  5630. if ((val)->o[1] & 0x40) {
  5631. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  5632. }
  5633. if ((val)->o[1] & 0x20) {
  5634. ASN1Free_UnregistrationRequest_tokens(&(val)->tokens);
  5635. }
  5636. if ((val)->o[1] & 0x10) {
  5637. ASN1Free_UnregistrationRequest_cryptoTokens(&(val)->cryptoTokens);
  5638. }
  5639. if ((val)->o[1] & 0x8) {
  5640. ASN1Free_ICV(&(val)->integrityCheckValue);
  5641. }
  5642. }
  5643. }
  5644. static int ASN1CALL ASN1Enc_UnregistrationConfirm(ASN1encoding_t enc, UnregistrationConfirm *val)
  5645. {
  5646. ASN1uint32_t y;
  5647. ASN1encoding_t ee;
  5648. y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
  5649. if (!ASN1PEREncBitVal(enc, 1, y))
  5650. return 0;
  5651. if (!ASN1PEREncBits(enc, 1, (val)->o))
  5652. return 0;
  5653. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5654. return 0;
  5655. if ((val)->o[0] & 0x80) {
  5656. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5657. return 0;
  5658. }
  5659. if (y) {
  5660. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
  5661. return 0;
  5662. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5663. return 0;
  5664. if ((val)->o[1] & 0x80) {
  5665. if (!ASN1Enc_UnregistrationConfirm_tokens(ee, &(val)->tokens))
  5666. return 0;
  5667. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5668. return 0;
  5669. }
  5670. if ((val)->o[1] & 0x40) {
  5671. if (!ASN1Enc_UnregistrationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  5672. return 0;
  5673. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5674. return 0;
  5675. }
  5676. if ((val)->o[1] & 0x20) {
  5677. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5678. return 0;
  5679. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5680. return 0;
  5681. }
  5682. ASN1_CloseEncoder2(ee);
  5683. }
  5684. return 1;
  5685. }
  5686. static int ASN1CALL ASN1Dec_UnregistrationConfirm(ASN1decoding_t dec, UnregistrationConfirm *val)
  5687. {
  5688. ASN1uint32_t y;
  5689. ASN1decoding_t dd;
  5690. ASN1octet_t *db;
  5691. ASN1uint32_t ds;
  5692. ASN1uint32_t i;
  5693. ASN1uint32_t e;
  5694. if (!ASN1PERDecExtensionBit(dec, &y))
  5695. return 0;
  5696. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  5697. return 0;
  5698. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5699. return 0;
  5700. (val)->requestSeqNum += 1;
  5701. if ((val)->o[0] & 0x80) {
  5702. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5703. return 0;
  5704. }
  5705. if (!y) {
  5706. ZeroMemory((val)->o + 1, 1);
  5707. } else {
  5708. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
  5709. return 0;
  5710. if ((val)->o[1] & 0x80) {
  5711. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5712. return 0;
  5713. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5714. return 0;
  5715. if (!ASN1Dec_UnregistrationConfirm_tokens(dd, &(val)->tokens))
  5716. return 0;
  5717. ASN1_CloseDecoder(dd);
  5718. }
  5719. if ((val)->o[1] & 0x40) {
  5720. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5721. return 0;
  5722. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5723. return 0;
  5724. if (!ASN1Dec_UnregistrationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  5725. return 0;
  5726. ASN1_CloseDecoder(dd);
  5727. }
  5728. if ((val)->o[1] & 0x20) {
  5729. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5730. return 0;
  5731. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5732. return 0;
  5733. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5734. return 0;
  5735. ASN1_CloseDecoder(dd);
  5736. }
  5737. for (i = 0; i < e; i++) {
  5738. if (!ASN1PERDecSkipFragmented(dec, 8))
  5739. return 0;
  5740. }
  5741. }
  5742. return 1;
  5743. }
  5744. static void ASN1CALL ASN1Free_UnregistrationConfirm(UnregistrationConfirm *val)
  5745. {
  5746. if (val) {
  5747. if ((val)->o[0] & 0x80) {
  5748. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5749. }
  5750. if ((val)->o[1] & 0x80) {
  5751. ASN1Free_UnregistrationConfirm_tokens(&(val)->tokens);
  5752. }
  5753. if ((val)->o[1] & 0x40) {
  5754. ASN1Free_UnregistrationConfirm_cryptoTokens(&(val)->cryptoTokens);
  5755. }
  5756. if ((val)->o[1] & 0x20) {
  5757. ASN1Free_ICV(&(val)->integrityCheckValue);
  5758. }
  5759. }
  5760. }
  5761. static int ASN1CALL ASN1Enc_UnregistrationReject(ASN1encoding_t enc, UnregistrationReject *val)
  5762. {
  5763. ASN1uint32_t y;
  5764. ASN1encoding_t ee;
  5765. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  5766. if (!ASN1PEREncBitVal(enc, 1, y))
  5767. return 0;
  5768. if (!ASN1PEREncBits(enc, 1, (val)->o))
  5769. return 0;
  5770. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5771. return 0;
  5772. if (!ASN1Enc_UnregRejectReason(enc, &(val)->rejectReason))
  5773. return 0;
  5774. if ((val)->o[0] & 0x80) {
  5775. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5776. return 0;
  5777. }
  5778. if (y) {
  5779. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  5780. return 0;
  5781. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5782. return 0;
  5783. if ((val)->o[1] & 0x80) {
  5784. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  5785. return 0;
  5786. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5787. return 0;
  5788. }
  5789. if ((val)->o[1] & 0x40) {
  5790. if (!ASN1Enc_UnregistrationReject_tokens(ee, &(val)->tokens))
  5791. return 0;
  5792. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5793. return 0;
  5794. }
  5795. if ((val)->o[1] & 0x20) {
  5796. if (!ASN1Enc_UnregistrationReject_cryptoTokens(ee, &(val)->cryptoTokens))
  5797. return 0;
  5798. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5799. return 0;
  5800. }
  5801. if ((val)->o[1] & 0x10) {
  5802. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5803. return 0;
  5804. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5805. return 0;
  5806. }
  5807. ASN1_CloseEncoder2(ee);
  5808. }
  5809. return 1;
  5810. }
  5811. static int ASN1CALL ASN1Dec_UnregistrationReject(ASN1decoding_t dec, UnregistrationReject *val)
  5812. {
  5813. ASN1uint32_t y;
  5814. ASN1decoding_t dd;
  5815. ASN1octet_t *db;
  5816. ASN1uint32_t ds;
  5817. ASN1uint32_t i;
  5818. ASN1uint32_t e;
  5819. if (!ASN1PERDecExtensionBit(dec, &y))
  5820. return 0;
  5821. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  5822. return 0;
  5823. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5824. return 0;
  5825. (val)->requestSeqNum += 1;
  5826. if (!ASN1Dec_UnregRejectReason(dec, &(val)->rejectReason))
  5827. return 0;
  5828. if ((val)->o[0] & 0x80) {
  5829. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5830. return 0;
  5831. }
  5832. if (!y) {
  5833. ZeroMemory((val)->o + 1, 1);
  5834. } else {
  5835. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  5836. return 0;
  5837. if ((val)->o[1] & 0x80) {
  5838. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5839. return 0;
  5840. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5841. return 0;
  5842. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  5843. return 0;
  5844. ASN1_CloseDecoder(dd);
  5845. }
  5846. if ((val)->o[1] & 0x40) {
  5847. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5848. return 0;
  5849. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5850. return 0;
  5851. if (!ASN1Dec_UnregistrationReject_tokens(dd, &(val)->tokens))
  5852. return 0;
  5853. ASN1_CloseDecoder(dd);
  5854. }
  5855. if ((val)->o[1] & 0x20) {
  5856. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5857. return 0;
  5858. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5859. return 0;
  5860. if (!ASN1Dec_UnregistrationReject_cryptoTokens(dd, &(val)->cryptoTokens))
  5861. return 0;
  5862. ASN1_CloseDecoder(dd);
  5863. }
  5864. if ((val)->o[1] & 0x10) {
  5865. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5866. return 0;
  5867. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5868. return 0;
  5869. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  5870. return 0;
  5871. ASN1_CloseDecoder(dd);
  5872. }
  5873. for (i = 0; i < e; i++) {
  5874. if (!ASN1PERDecSkipFragmented(dec, 8))
  5875. return 0;
  5876. }
  5877. }
  5878. return 1;
  5879. }
  5880. static void ASN1CALL ASN1Free_UnregistrationReject(UnregistrationReject *val)
  5881. {
  5882. if (val) {
  5883. if ((val)->o[0] & 0x80) {
  5884. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  5885. }
  5886. if ((val)->o[1] & 0x80) {
  5887. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  5888. }
  5889. if ((val)->o[1] & 0x40) {
  5890. ASN1Free_UnregistrationReject_tokens(&(val)->tokens);
  5891. }
  5892. if ((val)->o[1] & 0x20) {
  5893. ASN1Free_UnregistrationReject_cryptoTokens(&(val)->cryptoTokens);
  5894. }
  5895. if ((val)->o[1] & 0x10) {
  5896. ASN1Free_ICV(&(val)->integrityCheckValue);
  5897. }
  5898. }
  5899. }
  5900. static int ASN1CALL ASN1Enc_AdmissionReject(ASN1encoding_t enc, AdmissionReject *val)
  5901. {
  5902. ASN1uint32_t y;
  5903. ASN1encoding_t ee;
  5904. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  5905. if (!ASN1PEREncBitVal(enc, 1, y))
  5906. return 0;
  5907. if (!ASN1PEREncBits(enc, 1, (val)->o))
  5908. return 0;
  5909. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  5910. return 0;
  5911. if (!ASN1Enc_AdmissionRejectReason(enc, &(val)->rejectReason))
  5912. return 0;
  5913. if ((val)->o[0] & 0x80) {
  5914. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  5915. return 0;
  5916. }
  5917. if (y) {
  5918. if (!ASN1PEREncNormallySmallBits(enc, 5, (val)->o + 1))
  5919. return 0;
  5920. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  5921. return 0;
  5922. if ((val)->o[1] & 0x80) {
  5923. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  5924. return 0;
  5925. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5926. return 0;
  5927. }
  5928. if ((val)->o[1] & 0x40) {
  5929. if (!ASN1Enc_AdmissionReject_tokens(ee, &(val)->tokens))
  5930. return 0;
  5931. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5932. return 0;
  5933. }
  5934. if ((val)->o[1] & 0x20) {
  5935. if (!ASN1Enc_AdmissionReject_cryptoTokens(ee, &(val)->cryptoTokens))
  5936. return 0;
  5937. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5938. return 0;
  5939. }
  5940. if ((val)->o[1] & 0x10) {
  5941. if (!ASN1Enc_AdmissionReject_callSignalAddress(ee, &(val)->callSignalAddress))
  5942. return 0;
  5943. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5944. return 0;
  5945. }
  5946. if ((val)->o[1] & 0x8) {
  5947. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  5948. return 0;
  5949. if (!ASN1PEREncFlushFragmentedToParent(ee))
  5950. return 0;
  5951. }
  5952. ASN1_CloseEncoder2(ee);
  5953. }
  5954. return 1;
  5955. }
  5956. static int ASN1CALL ASN1Dec_AdmissionReject(ASN1decoding_t dec, AdmissionReject *val)
  5957. {
  5958. ASN1uint32_t y;
  5959. ASN1decoding_t dd;
  5960. ASN1octet_t *db;
  5961. ASN1uint32_t ds;
  5962. ASN1uint32_t i;
  5963. ASN1uint32_t e;
  5964. if (!ASN1PERDecExtensionBit(dec, &y))
  5965. return 0;
  5966. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  5967. return 0;
  5968. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  5969. return 0;
  5970. (val)->requestSeqNum += 1;
  5971. if (!ASN1Dec_AdmissionRejectReason(dec, &(val)->rejectReason))
  5972. return 0;
  5973. if ((val)->o[0] & 0x80) {
  5974. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  5975. return 0;
  5976. }
  5977. if (!y) {
  5978. ZeroMemory((val)->o + 1, 1);
  5979. } else {
  5980. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  5981. return 0;
  5982. if ((val)->o[1] & 0x80) {
  5983. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5984. return 0;
  5985. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5986. return 0;
  5987. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  5988. return 0;
  5989. ASN1_CloseDecoder(dd);
  5990. }
  5991. if ((val)->o[1] & 0x40) {
  5992. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  5993. return 0;
  5994. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  5995. return 0;
  5996. if (!ASN1Dec_AdmissionReject_tokens(dd, &(val)->tokens))
  5997. return 0;
  5998. ASN1_CloseDecoder(dd);
  5999. }
  6000. if ((val)->o[1] & 0x20) {
  6001. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6002. return 0;
  6003. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6004. return 0;
  6005. if (!ASN1Dec_AdmissionReject_cryptoTokens(dd, &(val)->cryptoTokens))
  6006. return 0;
  6007. ASN1_CloseDecoder(dd);
  6008. }
  6009. if ((val)->o[1] & 0x10) {
  6010. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6011. return 0;
  6012. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6013. return 0;
  6014. if (!ASN1Dec_AdmissionReject_callSignalAddress(dd, &(val)->callSignalAddress))
  6015. return 0;
  6016. ASN1_CloseDecoder(dd);
  6017. }
  6018. if ((val)->o[1] & 0x8) {
  6019. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6020. return 0;
  6021. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6022. return 0;
  6023. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6024. return 0;
  6025. ASN1_CloseDecoder(dd);
  6026. }
  6027. for (i = 0; i < e; i++) {
  6028. if (!ASN1PERDecSkipFragmented(dec, 8))
  6029. return 0;
  6030. }
  6031. }
  6032. return 1;
  6033. }
  6034. static void ASN1CALL ASN1Free_AdmissionReject(AdmissionReject *val)
  6035. {
  6036. if (val) {
  6037. if ((val)->o[0] & 0x80) {
  6038. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6039. }
  6040. if ((val)->o[1] & 0x80) {
  6041. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  6042. }
  6043. if ((val)->o[1] & 0x40) {
  6044. ASN1Free_AdmissionReject_tokens(&(val)->tokens);
  6045. }
  6046. if ((val)->o[1] & 0x20) {
  6047. ASN1Free_AdmissionReject_cryptoTokens(&(val)->cryptoTokens);
  6048. }
  6049. if ((val)->o[1] & 0x10) {
  6050. ASN1Free_AdmissionReject_callSignalAddress(&(val)->callSignalAddress);
  6051. }
  6052. if ((val)->o[1] & 0x8) {
  6053. ASN1Free_ICV(&(val)->integrityCheckValue);
  6054. }
  6055. }
  6056. }
  6057. static int ASN1CALL ASN1Enc_BandwidthRequest(ASN1encoding_t enc, BandwidthRequest *val)
  6058. {
  6059. ASN1octet_t o[2];
  6060. ASN1uint32_t y;
  6061. ASN1uint32_t l;
  6062. ASN1encoding_t ee;
  6063. CopyMemory(o, (val)->o, 2);
  6064. o[1] |= 0x80;
  6065. o[1] |= 0x4;
  6066. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  6067. if (!ASN1PEREncBitVal(enc, 1, y))
  6068. return 0;
  6069. if (!ASN1PEREncBits(enc, 2, o))
  6070. return 0;
  6071. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6072. return 0;
  6073. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  6074. return 0;
  6075. ASN1PEREncAlignment(enc);
  6076. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  6077. return 0;
  6078. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6079. return 0;
  6080. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  6081. return 0;
  6082. if (o[0] & 0x80) {
  6083. if (!ASN1Enc_CallType(enc, &(val)->callType))
  6084. return 0;
  6085. }
  6086. l = ASN1uint32_uoctets((val)->bandWidth);
  6087. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  6088. return 0;
  6089. ASN1PEREncAlignment(enc);
  6090. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  6091. return 0;
  6092. if (o[0] & 0x40) {
  6093. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6094. return 0;
  6095. }
  6096. if (y) {
  6097. if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
  6098. return 0;
  6099. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6100. return 0;
  6101. if (o[1] & 0x80) {
  6102. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  6103. return 0;
  6104. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6105. return 0;
  6106. }
  6107. if (o[1] & 0x40) {
  6108. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  6109. return 0;
  6110. ASN1PEREncAlignment(ee);
  6111. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  6112. return 0;
  6113. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6114. return 0;
  6115. }
  6116. if (o[1] & 0x20) {
  6117. if (!ASN1Enc_BandwidthRequest_tokens(ee, &(val)->tokens))
  6118. return 0;
  6119. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6120. return 0;
  6121. }
  6122. if (o[1] & 0x10) {
  6123. if (!ASN1Enc_BandwidthRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  6124. return 0;
  6125. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6126. return 0;
  6127. }
  6128. if (o[1] & 0x8) {
  6129. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6130. return 0;
  6131. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6132. return 0;
  6133. }
  6134. if (o[1] & 0x4) {
  6135. if (!ASN1PEREncBoolean(ee, (val)->answeredCall))
  6136. return 0;
  6137. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6138. return 0;
  6139. }
  6140. ASN1_CloseEncoder2(ee);
  6141. }
  6142. return 1;
  6143. }
  6144. static int ASN1CALL ASN1Dec_BandwidthRequest(ASN1decoding_t dec, BandwidthRequest *val)
  6145. {
  6146. ASN1uint32_t y;
  6147. ASN1uint32_t l;
  6148. ASN1decoding_t dd;
  6149. ASN1octet_t *db;
  6150. ASN1uint32_t ds;
  6151. ASN1uint32_t i;
  6152. ASN1uint32_t e;
  6153. if (!ASN1PERDecExtensionBit(dec, &y))
  6154. return 0;
  6155. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  6156. return 0;
  6157. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6158. return 0;
  6159. (val)->requestSeqNum += 1;
  6160. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  6161. return 0;
  6162. ((val)->endpointIdentifier).length += 1;
  6163. ASN1PERDecAlignment(dec);
  6164. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  6165. return 0;
  6166. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6167. return 0;
  6168. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  6169. return 0;
  6170. if ((val)->o[0] & 0x80) {
  6171. if (!ASN1Dec_CallType(dec, &(val)->callType))
  6172. return 0;
  6173. }
  6174. if (!ASN1PERDecU32Val(dec, 2, &l))
  6175. return 0;
  6176. l += 1;
  6177. ASN1PERDecAlignment(dec);
  6178. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  6179. return 0;
  6180. if ((val)->o[0] & 0x40) {
  6181. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6182. return 0;
  6183. }
  6184. if (!y) {
  6185. ZeroMemory((val)->o + 1, 1);
  6186. } else {
  6187. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  6188. return 0;
  6189. if ((val)->o[1] & 0x80) {
  6190. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6191. return 0;
  6192. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6193. return 0;
  6194. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  6195. return 0;
  6196. ASN1_CloseDecoder(dd);
  6197. }
  6198. if ((val)->o[1] & 0x40) {
  6199. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6200. return 0;
  6201. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6202. return 0;
  6203. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  6204. return 0;
  6205. ((val)->gatekeeperIdentifier).length += 1;
  6206. ASN1PERDecAlignment(dd);
  6207. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  6208. return 0;
  6209. ASN1_CloseDecoder(dd);
  6210. }
  6211. if ((val)->o[1] & 0x20) {
  6212. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6213. return 0;
  6214. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6215. return 0;
  6216. if (!ASN1Dec_BandwidthRequest_tokens(dd, &(val)->tokens))
  6217. return 0;
  6218. ASN1_CloseDecoder(dd);
  6219. }
  6220. if ((val)->o[1] & 0x10) {
  6221. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6222. return 0;
  6223. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6224. return 0;
  6225. if (!ASN1Dec_BandwidthRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  6226. return 0;
  6227. ASN1_CloseDecoder(dd);
  6228. }
  6229. if ((val)->o[1] & 0x8) {
  6230. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6231. return 0;
  6232. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6233. return 0;
  6234. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6235. return 0;
  6236. ASN1_CloseDecoder(dd);
  6237. }
  6238. if ((val)->o[1] & 0x4) {
  6239. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6240. return 0;
  6241. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6242. return 0;
  6243. if (!ASN1PERDecBoolean(dd, &(val)->answeredCall))
  6244. return 0;
  6245. ASN1_CloseDecoder(dd);
  6246. }
  6247. for (i = 0; i < e; i++) {
  6248. if (!ASN1PERDecSkipFragmented(dec, 8))
  6249. return 0;
  6250. }
  6251. }
  6252. return 1;
  6253. }
  6254. static void ASN1CALL ASN1Free_BandwidthRequest(BandwidthRequest *val)
  6255. {
  6256. if (val) {
  6257. ASN1char16string_free(&(val)->endpointIdentifier);
  6258. if ((val)->o[0] & 0x40) {
  6259. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6260. }
  6261. if ((val)->o[1] & 0x80) {
  6262. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  6263. }
  6264. if ((val)->o[1] & 0x40) {
  6265. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  6266. }
  6267. if ((val)->o[1] & 0x20) {
  6268. ASN1Free_BandwidthRequest_tokens(&(val)->tokens);
  6269. }
  6270. if ((val)->o[1] & 0x10) {
  6271. ASN1Free_BandwidthRequest_cryptoTokens(&(val)->cryptoTokens);
  6272. }
  6273. if ((val)->o[1] & 0x8) {
  6274. ASN1Free_ICV(&(val)->integrityCheckValue);
  6275. }
  6276. }
  6277. }
  6278. static int ASN1CALL ASN1Enc_BandwidthConfirm(ASN1encoding_t enc, BandwidthConfirm *val)
  6279. {
  6280. ASN1uint32_t y;
  6281. ASN1uint32_t l;
  6282. ASN1encoding_t ee;
  6283. y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
  6284. if (!ASN1PEREncBitVal(enc, 1, y))
  6285. return 0;
  6286. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6287. return 0;
  6288. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6289. return 0;
  6290. l = ASN1uint32_uoctets((val)->bandWidth);
  6291. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  6292. return 0;
  6293. ASN1PEREncAlignment(enc);
  6294. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  6295. return 0;
  6296. if ((val)->o[0] & 0x80) {
  6297. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6298. return 0;
  6299. }
  6300. if (y) {
  6301. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
  6302. return 0;
  6303. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6304. return 0;
  6305. if ((val)->o[1] & 0x80) {
  6306. if (!ASN1Enc_BandwidthConfirm_tokens(ee, &(val)->tokens))
  6307. return 0;
  6308. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6309. return 0;
  6310. }
  6311. if ((val)->o[1] & 0x40) {
  6312. if (!ASN1Enc_BandwidthConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  6313. return 0;
  6314. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6315. return 0;
  6316. }
  6317. if ((val)->o[1] & 0x20) {
  6318. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6319. return 0;
  6320. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6321. return 0;
  6322. }
  6323. ASN1_CloseEncoder2(ee);
  6324. }
  6325. return 1;
  6326. }
  6327. static int ASN1CALL ASN1Dec_BandwidthConfirm(ASN1decoding_t dec, BandwidthConfirm *val)
  6328. {
  6329. ASN1uint32_t y;
  6330. ASN1uint32_t l;
  6331. ASN1decoding_t dd;
  6332. ASN1octet_t *db;
  6333. ASN1uint32_t ds;
  6334. ASN1uint32_t i;
  6335. ASN1uint32_t e;
  6336. if (!ASN1PERDecExtensionBit(dec, &y))
  6337. return 0;
  6338. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6339. return 0;
  6340. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6341. return 0;
  6342. (val)->requestSeqNum += 1;
  6343. if (!ASN1PERDecU32Val(dec, 2, &l))
  6344. return 0;
  6345. l += 1;
  6346. ASN1PERDecAlignment(dec);
  6347. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  6348. return 0;
  6349. if ((val)->o[0] & 0x80) {
  6350. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6351. return 0;
  6352. }
  6353. if (!y) {
  6354. ZeroMemory((val)->o + 1, 1);
  6355. } else {
  6356. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
  6357. return 0;
  6358. if ((val)->o[1] & 0x80) {
  6359. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6360. return 0;
  6361. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6362. return 0;
  6363. if (!ASN1Dec_BandwidthConfirm_tokens(dd, &(val)->tokens))
  6364. return 0;
  6365. ASN1_CloseDecoder(dd);
  6366. }
  6367. if ((val)->o[1] & 0x40) {
  6368. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6369. return 0;
  6370. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6371. return 0;
  6372. if (!ASN1Dec_BandwidthConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  6373. return 0;
  6374. ASN1_CloseDecoder(dd);
  6375. }
  6376. if ((val)->o[1] & 0x20) {
  6377. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6378. return 0;
  6379. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6380. return 0;
  6381. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6382. return 0;
  6383. ASN1_CloseDecoder(dd);
  6384. }
  6385. for (i = 0; i < e; i++) {
  6386. if (!ASN1PERDecSkipFragmented(dec, 8))
  6387. return 0;
  6388. }
  6389. }
  6390. return 1;
  6391. }
  6392. static void ASN1CALL ASN1Free_BandwidthConfirm(BandwidthConfirm *val)
  6393. {
  6394. if (val) {
  6395. if ((val)->o[0] & 0x80) {
  6396. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6397. }
  6398. if ((val)->o[1] & 0x80) {
  6399. ASN1Free_BandwidthConfirm_tokens(&(val)->tokens);
  6400. }
  6401. if ((val)->o[1] & 0x40) {
  6402. ASN1Free_BandwidthConfirm_cryptoTokens(&(val)->cryptoTokens);
  6403. }
  6404. if ((val)->o[1] & 0x20) {
  6405. ASN1Free_ICV(&(val)->integrityCheckValue);
  6406. }
  6407. }
  6408. }
  6409. static int ASN1CALL ASN1Enc_BandwidthReject(ASN1encoding_t enc, BandwidthReject *val)
  6410. {
  6411. ASN1uint32_t y;
  6412. ASN1uint32_t l;
  6413. ASN1encoding_t ee;
  6414. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  6415. if (!ASN1PEREncBitVal(enc, 1, y))
  6416. return 0;
  6417. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6418. return 0;
  6419. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6420. return 0;
  6421. if (!ASN1Enc_BandRejectReason(enc, &(val)->rejectReason))
  6422. return 0;
  6423. l = ASN1uint32_uoctets((val)->allowedBandWidth);
  6424. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  6425. return 0;
  6426. ASN1PEREncAlignment(enc);
  6427. if (!ASN1PEREncBitVal(enc, l * 8, (val)->allowedBandWidth))
  6428. return 0;
  6429. if ((val)->o[0] & 0x80) {
  6430. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6431. return 0;
  6432. }
  6433. if (y) {
  6434. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  6435. return 0;
  6436. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6437. return 0;
  6438. if ((val)->o[1] & 0x80) {
  6439. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  6440. return 0;
  6441. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6442. return 0;
  6443. }
  6444. if ((val)->o[1] & 0x40) {
  6445. if (!ASN1Enc_BandwidthReject_tokens(ee, &(val)->tokens))
  6446. return 0;
  6447. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6448. return 0;
  6449. }
  6450. if ((val)->o[1] & 0x20) {
  6451. if (!ASN1Enc_BandwidthReject_cryptoTokens(ee, &(val)->cryptoTokens))
  6452. return 0;
  6453. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6454. return 0;
  6455. }
  6456. if ((val)->o[1] & 0x10) {
  6457. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6458. return 0;
  6459. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6460. return 0;
  6461. }
  6462. ASN1_CloseEncoder2(ee);
  6463. }
  6464. return 1;
  6465. }
  6466. static int ASN1CALL ASN1Dec_BandwidthReject(ASN1decoding_t dec, BandwidthReject *val)
  6467. {
  6468. ASN1uint32_t y;
  6469. ASN1uint32_t l;
  6470. ASN1decoding_t dd;
  6471. ASN1octet_t *db;
  6472. ASN1uint32_t ds;
  6473. ASN1uint32_t i;
  6474. ASN1uint32_t e;
  6475. if (!ASN1PERDecExtensionBit(dec, &y))
  6476. return 0;
  6477. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6478. return 0;
  6479. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6480. return 0;
  6481. (val)->requestSeqNum += 1;
  6482. if (!ASN1Dec_BandRejectReason(dec, &(val)->rejectReason))
  6483. return 0;
  6484. if (!ASN1PERDecU32Val(dec, 2, &l))
  6485. return 0;
  6486. l += 1;
  6487. ASN1PERDecAlignment(dec);
  6488. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->allowedBandWidth))
  6489. return 0;
  6490. if ((val)->o[0] & 0x80) {
  6491. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6492. return 0;
  6493. }
  6494. if (!y) {
  6495. ZeroMemory((val)->o + 1, 1);
  6496. } else {
  6497. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  6498. return 0;
  6499. if ((val)->o[1] & 0x80) {
  6500. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6501. return 0;
  6502. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6503. return 0;
  6504. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  6505. return 0;
  6506. ASN1_CloseDecoder(dd);
  6507. }
  6508. if ((val)->o[1] & 0x40) {
  6509. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6510. return 0;
  6511. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6512. return 0;
  6513. if (!ASN1Dec_BandwidthReject_tokens(dd, &(val)->tokens))
  6514. return 0;
  6515. ASN1_CloseDecoder(dd);
  6516. }
  6517. if ((val)->o[1] & 0x20) {
  6518. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6519. return 0;
  6520. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6521. return 0;
  6522. if (!ASN1Dec_BandwidthReject_cryptoTokens(dd, &(val)->cryptoTokens))
  6523. return 0;
  6524. ASN1_CloseDecoder(dd);
  6525. }
  6526. if ((val)->o[1] & 0x10) {
  6527. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6528. return 0;
  6529. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6530. return 0;
  6531. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6532. return 0;
  6533. ASN1_CloseDecoder(dd);
  6534. }
  6535. for (i = 0; i < e; i++) {
  6536. if (!ASN1PERDecSkipFragmented(dec, 8))
  6537. return 0;
  6538. }
  6539. }
  6540. return 1;
  6541. }
  6542. static void ASN1CALL ASN1Free_BandwidthReject(BandwidthReject *val)
  6543. {
  6544. if (val) {
  6545. if ((val)->o[0] & 0x80) {
  6546. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6547. }
  6548. if ((val)->o[1] & 0x80) {
  6549. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  6550. }
  6551. if ((val)->o[1] & 0x40) {
  6552. ASN1Free_BandwidthReject_tokens(&(val)->tokens);
  6553. }
  6554. if ((val)->o[1] & 0x20) {
  6555. ASN1Free_BandwidthReject_cryptoTokens(&(val)->cryptoTokens);
  6556. }
  6557. if ((val)->o[1] & 0x10) {
  6558. ASN1Free_ICV(&(val)->integrityCheckValue);
  6559. }
  6560. }
  6561. }
  6562. static int ASN1CALL ASN1Enc_LocationReject(ASN1encoding_t enc, LocationReject *val)
  6563. {
  6564. ASN1uint32_t y;
  6565. ASN1encoding_t ee;
  6566. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  6567. if (!ASN1PEREncBitVal(enc, 1, y))
  6568. return 0;
  6569. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6570. return 0;
  6571. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6572. return 0;
  6573. if (!ASN1Enc_LocationRejectReason(enc, &(val)->rejectReason))
  6574. return 0;
  6575. if ((val)->o[0] & 0x80) {
  6576. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6577. return 0;
  6578. }
  6579. if (y) {
  6580. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  6581. return 0;
  6582. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6583. return 0;
  6584. if ((val)->o[1] & 0x80) {
  6585. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  6586. return 0;
  6587. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6588. return 0;
  6589. }
  6590. if ((val)->o[1] & 0x40) {
  6591. if (!ASN1Enc_LocationReject_tokens(ee, &(val)->tokens))
  6592. return 0;
  6593. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6594. return 0;
  6595. }
  6596. if ((val)->o[1] & 0x20) {
  6597. if (!ASN1Enc_LocationReject_cryptoTokens(ee, &(val)->cryptoTokens))
  6598. return 0;
  6599. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6600. return 0;
  6601. }
  6602. if ((val)->o[1] & 0x10) {
  6603. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6604. return 0;
  6605. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6606. return 0;
  6607. }
  6608. ASN1_CloseEncoder2(ee);
  6609. }
  6610. return 1;
  6611. }
  6612. static int ASN1CALL ASN1Dec_LocationReject(ASN1decoding_t dec, LocationReject *val)
  6613. {
  6614. ASN1uint32_t y;
  6615. ASN1decoding_t dd;
  6616. ASN1octet_t *db;
  6617. ASN1uint32_t ds;
  6618. ASN1uint32_t i;
  6619. ASN1uint32_t e;
  6620. if (!ASN1PERDecExtensionBit(dec, &y))
  6621. return 0;
  6622. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6623. return 0;
  6624. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6625. return 0;
  6626. (val)->requestSeqNum += 1;
  6627. if (!ASN1Dec_LocationRejectReason(dec, &(val)->rejectReason))
  6628. return 0;
  6629. if ((val)->o[0] & 0x80) {
  6630. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6631. return 0;
  6632. }
  6633. if (!y) {
  6634. ZeroMemory((val)->o + 1, 1);
  6635. } else {
  6636. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  6637. return 0;
  6638. if ((val)->o[1] & 0x80) {
  6639. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6640. return 0;
  6641. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6642. return 0;
  6643. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  6644. return 0;
  6645. ASN1_CloseDecoder(dd);
  6646. }
  6647. if ((val)->o[1] & 0x40) {
  6648. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6649. return 0;
  6650. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6651. return 0;
  6652. if (!ASN1Dec_LocationReject_tokens(dd, &(val)->tokens))
  6653. return 0;
  6654. ASN1_CloseDecoder(dd);
  6655. }
  6656. if ((val)->o[1] & 0x20) {
  6657. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6658. return 0;
  6659. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6660. return 0;
  6661. if (!ASN1Dec_LocationReject_cryptoTokens(dd, &(val)->cryptoTokens))
  6662. return 0;
  6663. ASN1_CloseDecoder(dd);
  6664. }
  6665. if ((val)->o[1] & 0x10) {
  6666. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6667. return 0;
  6668. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6669. return 0;
  6670. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6671. return 0;
  6672. ASN1_CloseDecoder(dd);
  6673. }
  6674. for (i = 0; i < e; i++) {
  6675. if (!ASN1PERDecSkipFragmented(dec, 8))
  6676. return 0;
  6677. }
  6678. }
  6679. return 1;
  6680. }
  6681. static void ASN1CALL ASN1Free_LocationReject(LocationReject *val)
  6682. {
  6683. if (val) {
  6684. if ((val)->o[0] & 0x80) {
  6685. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6686. }
  6687. if ((val)->o[1] & 0x80) {
  6688. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  6689. }
  6690. if ((val)->o[1] & 0x40) {
  6691. ASN1Free_LocationReject_tokens(&(val)->tokens);
  6692. }
  6693. if ((val)->o[1] & 0x20) {
  6694. ASN1Free_LocationReject_cryptoTokens(&(val)->cryptoTokens);
  6695. }
  6696. if ((val)->o[1] & 0x10) {
  6697. ASN1Free_ICV(&(val)->integrityCheckValue);
  6698. }
  6699. }
  6700. }
  6701. static int ASN1CALL ASN1Enc_DisengageRequest(ASN1encoding_t enc, DisengageRequest *val)
  6702. {
  6703. ASN1octet_t o[2];
  6704. ASN1uint32_t y;
  6705. ASN1encoding_t ee;
  6706. CopyMemory(o, (val)->o, 2);
  6707. o[1] |= 0x80;
  6708. o[1] |= 0x4;
  6709. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  6710. if (!ASN1PEREncBitVal(enc, 1, y))
  6711. return 0;
  6712. if (!ASN1PEREncBits(enc, 1, o))
  6713. return 0;
  6714. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6715. return 0;
  6716. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  6717. return 0;
  6718. ASN1PEREncAlignment(enc);
  6719. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  6720. return 0;
  6721. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6722. return 0;
  6723. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  6724. return 0;
  6725. if (!ASN1Enc_DisengageReason(enc, &(val)->disengageReason))
  6726. return 0;
  6727. if (o[0] & 0x80) {
  6728. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6729. return 0;
  6730. }
  6731. if (y) {
  6732. if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
  6733. return 0;
  6734. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6735. return 0;
  6736. if (o[1] & 0x80) {
  6737. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  6738. return 0;
  6739. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6740. return 0;
  6741. }
  6742. if (o[1] & 0x40) {
  6743. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  6744. return 0;
  6745. ASN1PEREncAlignment(ee);
  6746. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  6747. return 0;
  6748. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6749. return 0;
  6750. }
  6751. if (o[1] & 0x20) {
  6752. if (!ASN1Enc_DisengageRequest_tokens(ee, &(val)->tokens))
  6753. return 0;
  6754. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6755. return 0;
  6756. }
  6757. if (o[1] & 0x10) {
  6758. if (!ASN1Enc_DisengageRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  6759. return 0;
  6760. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6761. return 0;
  6762. }
  6763. if (o[1] & 0x8) {
  6764. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6765. return 0;
  6766. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6767. return 0;
  6768. }
  6769. if (o[1] & 0x4) {
  6770. if (!ASN1PEREncBoolean(ee, (val)->answeredCall))
  6771. return 0;
  6772. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6773. return 0;
  6774. }
  6775. ASN1_CloseEncoder2(ee);
  6776. }
  6777. return 1;
  6778. }
  6779. static int ASN1CALL ASN1Dec_DisengageRequest(ASN1decoding_t dec, DisengageRequest *val)
  6780. {
  6781. ASN1uint32_t y;
  6782. ASN1decoding_t dd;
  6783. ASN1octet_t *db;
  6784. ASN1uint32_t ds;
  6785. ASN1uint32_t i;
  6786. ASN1uint32_t e;
  6787. if (!ASN1PERDecExtensionBit(dec, &y))
  6788. return 0;
  6789. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6790. return 0;
  6791. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6792. return 0;
  6793. (val)->requestSeqNum += 1;
  6794. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  6795. return 0;
  6796. ((val)->endpointIdentifier).length += 1;
  6797. ASN1PERDecAlignment(dec);
  6798. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  6799. return 0;
  6800. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  6801. return 0;
  6802. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  6803. return 0;
  6804. if (!ASN1Dec_DisengageReason(dec, &(val)->disengageReason))
  6805. return 0;
  6806. if ((val)->o[0] & 0x80) {
  6807. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6808. return 0;
  6809. }
  6810. if (!y) {
  6811. ZeroMemory((val)->o + 1, 1);
  6812. } else {
  6813. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  6814. return 0;
  6815. if ((val)->o[1] & 0x80) {
  6816. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6817. return 0;
  6818. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6819. return 0;
  6820. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  6821. return 0;
  6822. ASN1_CloseDecoder(dd);
  6823. }
  6824. if ((val)->o[1] & 0x40) {
  6825. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6826. return 0;
  6827. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6828. return 0;
  6829. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  6830. return 0;
  6831. ((val)->gatekeeperIdentifier).length += 1;
  6832. ASN1PERDecAlignment(dd);
  6833. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  6834. return 0;
  6835. ASN1_CloseDecoder(dd);
  6836. }
  6837. if ((val)->o[1] & 0x20) {
  6838. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6839. return 0;
  6840. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6841. return 0;
  6842. if (!ASN1Dec_DisengageRequest_tokens(dd, &(val)->tokens))
  6843. return 0;
  6844. ASN1_CloseDecoder(dd);
  6845. }
  6846. if ((val)->o[1] & 0x10) {
  6847. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6848. return 0;
  6849. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6850. return 0;
  6851. if (!ASN1Dec_DisengageRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  6852. return 0;
  6853. ASN1_CloseDecoder(dd);
  6854. }
  6855. if ((val)->o[1] & 0x8) {
  6856. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6857. return 0;
  6858. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6859. return 0;
  6860. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6861. return 0;
  6862. ASN1_CloseDecoder(dd);
  6863. }
  6864. if ((val)->o[1] & 0x4) {
  6865. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6866. return 0;
  6867. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6868. return 0;
  6869. if (!ASN1PERDecBoolean(dd, &(val)->answeredCall))
  6870. return 0;
  6871. ASN1_CloseDecoder(dd);
  6872. }
  6873. for (i = 0; i < e; i++) {
  6874. if (!ASN1PERDecSkipFragmented(dec, 8))
  6875. return 0;
  6876. }
  6877. }
  6878. return 1;
  6879. }
  6880. static void ASN1CALL ASN1Free_DisengageRequest(DisengageRequest *val)
  6881. {
  6882. if (val) {
  6883. ASN1char16string_free(&(val)->endpointIdentifier);
  6884. if ((val)->o[0] & 0x80) {
  6885. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  6886. }
  6887. if ((val)->o[1] & 0x80) {
  6888. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  6889. }
  6890. if ((val)->o[1] & 0x40) {
  6891. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  6892. }
  6893. if ((val)->o[1] & 0x20) {
  6894. ASN1Free_DisengageRequest_tokens(&(val)->tokens);
  6895. }
  6896. if ((val)->o[1] & 0x10) {
  6897. ASN1Free_DisengageRequest_cryptoTokens(&(val)->cryptoTokens);
  6898. }
  6899. if ((val)->o[1] & 0x8) {
  6900. ASN1Free_ICV(&(val)->integrityCheckValue);
  6901. }
  6902. }
  6903. }
  6904. static int ASN1CALL ASN1Enc_DisengageConfirm(ASN1encoding_t enc, DisengageConfirm *val)
  6905. {
  6906. ASN1uint32_t y;
  6907. ASN1encoding_t ee;
  6908. y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
  6909. if (!ASN1PEREncBitVal(enc, 1, y))
  6910. return 0;
  6911. if (!ASN1PEREncBits(enc, 1, (val)->o))
  6912. return 0;
  6913. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  6914. return 0;
  6915. if ((val)->o[0] & 0x80) {
  6916. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  6917. return 0;
  6918. }
  6919. if (y) {
  6920. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
  6921. return 0;
  6922. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  6923. return 0;
  6924. if ((val)->o[1] & 0x80) {
  6925. if (!ASN1Enc_DisengageConfirm_tokens(ee, &(val)->tokens))
  6926. return 0;
  6927. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6928. return 0;
  6929. }
  6930. if ((val)->o[1] & 0x40) {
  6931. if (!ASN1Enc_DisengageConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  6932. return 0;
  6933. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6934. return 0;
  6935. }
  6936. if ((val)->o[1] & 0x20) {
  6937. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  6938. return 0;
  6939. if (!ASN1PEREncFlushFragmentedToParent(ee))
  6940. return 0;
  6941. }
  6942. ASN1_CloseEncoder2(ee);
  6943. }
  6944. return 1;
  6945. }
  6946. static int ASN1CALL ASN1Dec_DisengageConfirm(ASN1decoding_t dec, DisengageConfirm *val)
  6947. {
  6948. ASN1uint32_t y;
  6949. ASN1decoding_t dd;
  6950. ASN1octet_t *db;
  6951. ASN1uint32_t ds;
  6952. ASN1uint32_t i;
  6953. ASN1uint32_t e;
  6954. if (!ASN1PERDecExtensionBit(dec, &y))
  6955. return 0;
  6956. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  6957. return 0;
  6958. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  6959. return 0;
  6960. (val)->requestSeqNum += 1;
  6961. if ((val)->o[0] & 0x80) {
  6962. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  6963. return 0;
  6964. }
  6965. if (!y) {
  6966. ZeroMemory((val)->o + 1, 1);
  6967. } else {
  6968. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
  6969. return 0;
  6970. if ((val)->o[1] & 0x80) {
  6971. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6972. return 0;
  6973. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6974. return 0;
  6975. if (!ASN1Dec_DisengageConfirm_tokens(dd, &(val)->tokens))
  6976. return 0;
  6977. ASN1_CloseDecoder(dd);
  6978. }
  6979. if ((val)->o[1] & 0x40) {
  6980. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6981. return 0;
  6982. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6983. return 0;
  6984. if (!ASN1Dec_DisengageConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  6985. return 0;
  6986. ASN1_CloseDecoder(dd);
  6987. }
  6988. if ((val)->o[1] & 0x20) {
  6989. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  6990. return 0;
  6991. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  6992. return 0;
  6993. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  6994. return 0;
  6995. ASN1_CloseDecoder(dd);
  6996. }
  6997. for (i = 0; i < e; i++) {
  6998. if (!ASN1PERDecSkipFragmented(dec, 8))
  6999. return 0;
  7000. }
  7001. }
  7002. return 1;
  7003. }
  7004. static void ASN1CALL ASN1Free_DisengageConfirm(DisengageConfirm *val)
  7005. {
  7006. if (val) {
  7007. if ((val)->o[0] & 0x80) {
  7008. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7009. }
  7010. if ((val)->o[1] & 0x80) {
  7011. ASN1Free_DisengageConfirm_tokens(&(val)->tokens);
  7012. }
  7013. if ((val)->o[1] & 0x40) {
  7014. ASN1Free_DisengageConfirm_cryptoTokens(&(val)->cryptoTokens);
  7015. }
  7016. if ((val)->o[1] & 0x20) {
  7017. ASN1Free_ICV(&(val)->integrityCheckValue);
  7018. }
  7019. }
  7020. }
  7021. static int ASN1CALL ASN1Enc_DisengageReject(ASN1encoding_t enc, DisengageReject *val)
  7022. {
  7023. ASN1uint32_t y;
  7024. ASN1encoding_t ee;
  7025. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  7026. if (!ASN1PEREncBitVal(enc, 1, y))
  7027. return 0;
  7028. if (!ASN1PEREncBits(enc, 1, (val)->o))
  7029. return 0;
  7030. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7031. return 0;
  7032. if (!ASN1Enc_DisengageRejectReason(enc, &(val)->rejectReason))
  7033. return 0;
  7034. if ((val)->o[0] & 0x80) {
  7035. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7036. return 0;
  7037. }
  7038. if (y) {
  7039. if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
  7040. return 0;
  7041. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  7042. return 0;
  7043. if ((val)->o[1] & 0x80) {
  7044. if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
  7045. return 0;
  7046. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7047. return 0;
  7048. }
  7049. if ((val)->o[1] & 0x40) {
  7050. if (!ASN1Enc_DisengageReject_tokens(ee, &(val)->tokens))
  7051. return 0;
  7052. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7053. return 0;
  7054. }
  7055. if ((val)->o[1] & 0x20) {
  7056. if (!ASN1Enc_DisengageReject_cryptoTokens(ee, &(val)->cryptoTokens))
  7057. return 0;
  7058. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7059. return 0;
  7060. }
  7061. if ((val)->o[1] & 0x10) {
  7062. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  7063. return 0;
  7064. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7065. return 0;
  7066. }
  7067. ASN1_CloseEncoder2(ee);
  7068. }
  7069. return 1;
  7070. }
  7071. static int ASN1CALL ASN1Dec_DisengageReject(ASN1decoding_t dec, DisengageReject *val)
  7072. {
  7073. ASN1uint32_t y;
  7074. ASN1decoding_t dd;
  7075. ASN1octet_t *db;
  7076. ASN1uint32_t ds;
  7077. ASN1uint32_t i;
  7078. ASN1uint32_t e;
  7079. if (!ASN1PERDecExtensionBit(dec, &y))
  7080. return 0;
  7081. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  7082. return 0;
  7083. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7084. return 0;
  7085. (val)->requestSeqNum += 1;
  7086. if (!ASN1Dec_DisengageRejectReason(dec, &(val)->rejectReason))
  7087. return 0;
  7088. if ((val)->o[0] & 0x80) {
  7089. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7090. return 0;
  7091. }
  7092. if (!y) {
  7093. ZeroMemory((val)->o + 1, 1);
  7094. } else {
  7095. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  7096. return 0;
  7097. if ((val)->o[1] & 0x80) {
  7098. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7099. return 0;
  7100. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7101. return 0;
  7102. if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
  7103. return 0;
  7104. ASN1_CloseDecoder(dd);
  7105. }
  7106. if ((val)->o[1] & 0x40) {
  7107. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7108. return 0;
  7109. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7110. return 0;
  7111. if (!ASN1Dec_DisengageReject_tokens(dd, &(val)->tokens))
  7112. return 0;
  7113. ASN1_CloseDecoder(dd);
  7114. }
  7115. if ((val)->o[1] & 0x20) {
  7116. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7117. return 0;
  7118. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7119. return 0;
  7120. if (!ASN1Dec_DisengageReject_cryptoTokens(dd, &(val)->cryptoTokens))
  7121. return 0;
  7122. ASN1_CloseDecoder(dd);
  7123. }
  7124. if ((val)->o[1] & 0x10) {
  7125. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7126. return 0;
  7127. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7128. return 0;
  7129. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  7130. return 0;
  7131. ASN1_CloseDecoder(dd);
  7132. }
  7133. for (i = 0; i < e; i++) {
  7134. if (!ASN1PERDecSkipFragmented(dec, 8))
  7135. return 0;
  7136. }
  7137. }
  7138. return 1;
  7139. }
  7140. static void ASN1CALL ASN1Free_DisengageReject(DisengageReject *val)
  7141. {
  7142. if (val) {
  7143. if ((val)->o[0] & 0x80) {
  7144. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7145. }
  7146. if ((val)->o[1] & 0x80) {
  7147. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  7148. }
  7149. if ((val)->o[1] & 0x40) {
  7150. ASN1Free_DisengageReject_tokens(&(val)->tokens);
  7151. }
  7152. if ((val)->o[1] & 0x20) {
  7153. ASN1Free_DisengageReject_cryptoTokens(&(val)->cryptoTokens);
  7154. }
  7155. if ((val)->o[1] & 0x10) {
  7156. ASN1Free_ICV(&(val)->integrityCheckValue);
  7157. }
  7158. }
  7159. }
  7160. static int ASN1CALL ASN1Enc_InfoRequestAck(ASN1encoding_t enc, InfoRequestAck *val)
  7161. {
  7162. if (!ASN1PEREncExtensionBitClear(enc))
  7163. return 0;
  7164. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7165. return 0;
  7166. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7167. return 0;
  7168. if ((val)->o[0] & 0x80) {
  7169. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7170. return 0;
  7171. }
  7172. if ((val)->o[0] & 0x40) {
  7173. if (!ASN1Enc_InfoRequestAck_tokens(enc, &(val)->tokens))
  7174. return 0;
  7175. }
  7176. if ((val)->o[0] & 0x20) {
  7177. if (!ASN1Enc_InfoRequestAck_cryptoTokens(enc, &(val)->cryptoTokens))
  7178. return 0;
  7179. }
  7180. if ((val)->o[0] & 0x10) {
  7181. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7182. return 0;
  7183. }
  7184. return 1;
  7185. }
  7186. static int ASN1CALL ASN1Dec_InfoRequestAck(ASN1decoding_t dec, InfoRequestAck *val)
  7187. {
  7188. ASN1uint32_t y;
  7189. if (!ASN1PERDecExtensionBit(dec, &y))
  7190. return 0;
  7191. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7192. return 0;
  7193. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7194. return 0;
  7195. (val)->requestSeqNum += 1;
  7196. if ((val)->o[0] & 0x80) {
  7197. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7198. return 0;
  7199. }
  7200. if ((val)->o[0] & 0x40) {
  7201. if (!ASN1Dec_InfoRequestAck_tokens(dec, &(val)->tokens))
  7202. return 0;
  7203. }
  7204. if ((val)->o[0] & 0x20) {
  7205. if (!ASN1Dec_InfoRequestAck_cryptoTokens(dec, &(val)->cryptoTokens))
  7206. return 0;
  7207. }
  7208. if ((val)->o[0] & 0x10) {
  7209. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7210. return 0;
  7211. }
  7212. if (y) {
  7213. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7214. return 0;
  7215. }
  7216. return 1;
  7217. }
  7218. static void ASN1CALL ASN1Free_InfoRequestAck(InfoRequestAck *val)
  7219. {
  7220. if (val) {
  7221. if ((val)->o[0] & 0x80) {
  7222. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7223. }
  7224. if ((val)->o[0] & 0x40) {
  7225. ASN1Free_InfoRequestAck_tokens(&(val)->tokens);
  7226. }
  7227. if ((val)->o[0] & 0x20) {
  7228. ASN1Free_InfoRequestAck_cryptoTokens(&(val)->cryptoTokens);
  7229. }
  7230. if ((val)->o[0] & 0x10) {
  7231. ASN1Free_ICV(&(val)->integrityCheckValue);
  7232. }
  7233. }
  7234. }
  7235. static int ASN1CALL ASN1Enc_InfoRequestNak(ASN1encoding_t enc, InfoRequestNak *val)
  7236. {
  7237. if (!ASN1PEREncExtensionBitClear(enc))
  7238. return 0;
  7239. if (!ASN1PEREncBits(enc, 5, (val)->o))
  7240. return 0;
  7241. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7242. return 0;
  7243. if ((val)->o[0] & 0x80) {
  7244. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7245. return 0;
  7246. }
  7247. if (!ASN1Enc_InfoRequestNakReason(enc, &(val)->nakReason))
  7248. return 0;
  7249. if ((val)->o[0] & 0x40) {
  7250. if (!ASN1Enc_AltGKInfo(enc, &(val)->altGKInfo))
  7251. return 0;
  7252. }
  7253. if ((val)->o[0] & 0x20) {
  7254. if (!ASN1Enc_InfoRequestNak_tokens(enc, &(val)->tokens))
  7255. return 0;
  7256. }
  7257. if ((val)->o[0] & 0x10) {
  7258. if (!ASN1Enc_InfoRequestNak_cryptoTokens(enc, &(val)->cryptoTokens))
  7259. return 0;
  7260. }
  7261. if ((val)->o[0] & 0x8) {
  7262. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7263. return 0;
  7264. }
  7265. return 1;
  7266. }
  7267. static int ASN1CALL ASN1Dec_InfoRequestNak(ASN1decoding_t dec, InfoRequestNak *val)
  7268. {
  7269. ASN1uint32_t y;
  7270. if (!ASN1PERDecExtensionBit(dec, &y))
  7271. return 0;
  7272. if (!ASN1PERDecExtension(dec, 5, (val)->o))
  7273. return 0;
  7274. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7275. return 0;
  7276. (val)->requestSeqNum += 1;
  7277. if ((val)->o[0] & 0x80) {
  7278. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7279. return 0;
  7280. }
  7281. if (!ASN1Dec_InfoRequestNakReason(dec, &(val)->nakReason))
  7282. return 0;
  7283. if ((val)->o[0] & 0x40) {
  7284. if (!ASN1Dec_AltGKInfo(dec, &(val)->altGKInfo))
  7285. return 0;
  7286. }
  7287. if ((val)->o[0] & 0x20) {
  7288. if (!ASN1Dec_InfoRequestNak_tokens(dec, &(val)->tokens))
  7289. return 0;
  7290. }
  7291. if ((val)->o[0] & 0x10) {
  7292. if (!ASN1Dec_InfoRequestNak_cryptoTokens(dec, &(val)->cryptoTokens))
  7293. return 0;
  7294. }
  7295. if ((val)->o[0] & 0x8) {
  7296. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7297. return 0;
  7298. }
  7299. if (y) {
  7300. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7301. return 0;
  7302. }
  7303. return 1;
  7304. }
  7305. static void ASN1CALL ASN1Free_InfoRequestNak(InfoRequestNak *val)
  7306. {
  7307. if (val) {
  7308. if ((val)->o[0] & 0x80) {
  7309. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7310. }
  7311. if ((val)->o[0] & 0x40) {
  7312. ASN1Free_AltGKInfo(&(val)->altGKInfo);
  7313. }
  7314. if ((val)->o[0] & 0x20) {
  7315. ASN1Free_InfoRequestNak_tokens(&(val)->tokens);
  7316. }
  7317. if ((val)->o[0] & 0x10) {
  7318. ASN1Free_InfoRequestNak_cryptoTokens(&(val)->cryptoTokens);
  7319. }
  7320. if ((val)->o[0] & 0x8) {
  7321. ASN1Free_ICV(&(val)->integrityCheckValue);
  7322. }
  7323. }
  7324. }
  7325. static int ASN1CALL ASN1Enc_H225NonStandardMessage(ASN1encoding_t enc, H225NonStandardMessage *val)
  7326. {
  7327. ASN1uint32_t y;
  7328. ASN1encoding_t ee;
  7329. y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
  7330. if (!ASN1PEREncBitVal(enc, 1, y))
  7331. return 0;
  7332. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7333. return 0;
  7334. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7335. return 0;
  7336. if (y) {
  7337. if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 0))
  7338. return 0;
  7339. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  7340. return 0;
  7341. if ((val)->o[0] & 0x80) {
  7342. if (!ASN1Enc_H225NonStandardMessage_tokens(ee, &(val)->tokens))
  7343. return 0;
  7344. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7345. return 0;
  7346. }
  7347. if ((val)->o[0] & 0x40) {
  7348. if (!ASN1Enc_H225NonStandardMessage_cryptoTokens(ee, &(val)->cryptoTokens))
  7349. return 0;
  7350. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7351. return 0;
  7352. }
  7353. if ((val)->o[0] & 0x20) {
  7354. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  7355. return 0;
  7356. if (!ASN1PEREncFlushFragmentedToParent(ee))
  7357. return 0;
  7358. }
  7359. ASN1_CloseEncoder2(ee);
  7360. }
  7361. return 1;
  7362. }
  7363. static int ASN1CALL ASN1Dec_H225NonStandardMessage(ASN1decoding_t dec, H225NonStandardMessage *val)
  7364. {
  7365. ASN1uint32_t y;
  7366. ASN1decoding_t dd;
  7367. ASN1octet_t *db;
  7368. ASN1uint32_t ds;
  7369. ASN1uint32_t i;
  7370. ASN1uint32_t e;
  7371. if (!ASN1PERDecExtensionBit(dec, &y))
  7372. return 0;
  7373. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7374. return 0;
  7375. (val)->requestSeqNum += 1;
  7376. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7377. return 0;
  7378. if (!y) {
  7379. ZeroMemory((val)->o + 0, 1);
  7380. } else {
  7381. if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
  7382. return 0;
  7383. if ((val)->o[0] & 0x80) {
  7384. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7385. return 0;
  7386. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7387. return 0;
  7388. if (!ASN1Dec_H225NonStandardMessage_tokens(dd, &(val)->tokens))
  7389. return 0;
  7390. ASN1_CloseDecoder(dd);
  7391. }
  7392. if ((val)->o[0] & 0x40) {
  7393. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7394. return 0;
  7395. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7396. return 0;
  7397. if (!ASN1Dec_H225NonStandardMessage_cryptoTokens(dd, &(val)->cryptoTokens))
  7398. return 0;
  7399. ASN1_CloseDecoder(dd);
  7400. }
  7401. if ((val)->o[0] & 0x20) {
  7402. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  7403. return 0;
  7404. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  7405. return 0;
  7406. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  7407. return 0;
  7408. ASN1_CloseDecoder(dd);
  7409. }
  7410. for (i = 0; i < e; i++) {
  7411. if (!ASN1PERDecSkipFragmented(dec, 8))
  7412. return 0;
  7413. }
  7414. }
  7415. return 1;
  7416. }
  7417. static void ASN1CALL ASN1Free_H225NonStandardMessage(H225NonStandardMessage *val)
  7418. {
  7419. if (val) {
  7420. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7421. if ((val)->o[0] & 0x80) {
  7422. ASN1Free_H225NonStandardMessage_tokens(&(val)->tokens);
  7423. }
  7424. if ((val)->o[0] & 0x40) {
  7425. ASN1Free_H225NonStandardMessage_cryptoTokens(&(val)->cryptoTokens);
  7426. }
  7427. if ((val)->o[0] & 0x20) {
  7428. ASN1Free_ICV(&(val)->integrityCheckValue);
  7429. }
  7430. }
  7431. }
  7432. static int ASN1CALL ASN1Enc_RequestInProgress(ASN1encoding_t enc, RequestInProgress *val)
  7433. {
  7434. if (!ASN1PEREncExtensionBitClear(enc))
  7435. return 0;
  7436. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7437. return 0;
  7438. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7439. return 0;
  7440. if ((val)->o[0] & 0x80) {
  7441. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7442. return 0;
  7443. }
  7444. if ((val)->o[0] & 0x40) {
  7445. if (!ASN1Enc_RequestInProgress_tokens(enc, &(val)->tokens))
  7446. return 0;
  7447. }
  7448. if ((val)->o[0] & 0x20) {
  7449. if (!ASN1Enc_RequestInProgress_cryptoTokens(enc, &(val)->cryptoTokens))
  7450. return 0;
  7451. }
  7452. if ((val)->o[0] & 0x10) {
  7453. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7454. return 0;
  7455. }
  7456. if (!ASN1PEREncUnsignedShort(enc, (val)->delay - 1))
  7457. return 0;
  7458. return 1;
  7459. }
  7460. static int ASN1CALL ASN1Dec_RequestInProgress(ASN1decoding_t dec, RequestInProgress *val)
  7461. {
  7462. ASN1uint32_t y;
  7463. if (!ASN1PERDecExtensionBit(dec, &y))
  7464. return 0;
  7465. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7466. return 0;
  7467. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7468. return 0;
  7469. (val)->requestSeqNum += 1;
  7470. if ((val)->o[0] & 0x80) {
  7471. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7472. return 0;
  7473. }
  7474. if ((val)->o[0] & 0x40) {
  7475. if (!ASN1Dec_RequestInProgress_tokens(dec, &(val)->tokens))
  7476. return 0;
  7477. }
  7478. if ((val)->o[0] & 0x20) {
  7479. if (!ASN1Dec_RequestInProgress_cryptoTokens(dec, &(val)->cryptoTokens))
  7480. return 0;
  7481. }
  7482. if ((val)->o[0] & 0x10) {
  7483. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7484. return 0;
  7485. }
  7486. if (!ASN1PERDecUnsignedShort(dec, &(val)->delay))
  7487. return 0;
  7488. (val)->delay += 1;
  7489. if (y) {
  7490. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7491. return 0;
  7492. }
  7493. return 1;
  7494. }
  7495. static void ASN1CALL ASN1Free_RequestInProgress(RequestInProgress *val)
  7496. {
  7497. if (val) {
  7498. if ((val)->o[0] & 0x80) {
  7499. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7500. }
  7501. if ((val)->o[0] & 0x40) {
  7502. ASN1Free_RequestInProgress_tokens(&(val)->tokens);
  7503. }
  7504. if ((val)->o[0] & 0x20) {
  7505. ASN1Free_RequestInProgress_cryptoTokens(&(val)->cryptoTokens);
  7506. }
  7507. if ((val)->o[0] & 0x10) {
  7508. ASN1Free_ICV(&(val)->integrityCheckValue);
  7509. }
  7510. }
  7511. }
  7512. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate(ASN1encoding_t enc, ResourcesAvailableIndicate *val)
  7513. {
  7514. if (!ASN1PEREncExtensionBitClear(enc))
  7515. return 0;
  7516. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7517. return 0;
  7518. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7519. return 0;
  7520. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  7521. return 0;
  7522. if ((val)->o[0] & 0x80) {
  7523. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7524. return 0;
  7525. }
  7526. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  7527. return 0;
  7528. ASN1PEREncAlignment(enc);
  7529. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  7530. return 0;
  7531. if (!ASN1Enc_ResourcesAvailableIndicate_protocols(enc, &(val)->protocols))
  7532. return 0;
  7533. if (!ASN1PEREncBoolean(enc, (val)->almostOutOfResources))
  7534. return 0;
  7535. if ((val)->o[0] & 0x40) {
  7536. if (!ASN1Enc_ResourcesAvailableIndicate_tokens(enc, &(val)->tokens))
  7537. return 0;
  7538. }
  7539. if ((val)->o[0] & 0x20) {
  7540. if (!ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(enc, &(val)->cryptoTokens))
  7541. return 0;
  7542. }
  7543. if ((val)->o[0] & 0x10) {
  7544. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7545. return 0;
  7546. }
  7547. return 1;
  7548. }
  7549. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate(ASN1decoding_t dec, ResourcesAvailableIndicate *val)
  7550. {
  7551. ASN1uint32_t y;
  7552. if (!ASN1PERDecExtensionBit(dec, &y))
  7553. return 0;
  7554. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7555. return 0;
  7556. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7557. return 0;
  7558. (val)->requestSeqNum += 1;
  7559. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  7560. return 0;
  7561. if ((val)->o[0] & 0x80) {
  7562. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7563. return 0;
  7564. }
  7565. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  7566. return 0;
  7567. ((val)->endpointIdentifier).length += 1;
  7568. ASN1PERDecAlignment(dec);
  7569. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  7570. return 0;
  7571. if (!ASN1Dec_ResourcesAvailableIndicate_protocols(dec, &(val)->protocols))
  7572. return 0;
  7573. if (!ASN1PERDecBoolean(dec, &(val)->almostOutOfResources))
  7574. return 0;
  7575. if ((val)->o[0] & 0x40) {
  7576. if (!ASN1Dec_ResourcesAvailableIndicate_tokens(dec, &(val)->tokens))
  7577. return 0;
  7578. }
  7579. if ((val)->o[0] & 0x20) {
  7580. if (!ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(dec, &(val)->cryptoTokens))
  7581. return 0;
  7582. }
  7583. if ((val)->o[0] & 0x10) {
  7584. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7585. return 0;
  7586. }
  7587. if (y) {
  7588. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7589. return 0;
  7590. }
  7591. return 1;
  7592. }
  7593. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate(ResourcesAvailableIndicate *val)
  7594. {
  7595. if (val) {
  7596. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  7597. if ((val)->o[0] & 0x80) {
  7598. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7599. }
  7600. ASN1char16string_free(&(val)->endpointIdentifier);
  7601. ASN1Free_ResourcesAvailableIndicate_protocols(&(val)->protocols);
  7602. if ((val)->o[0] & 0x40) {
  7603. ASN1Free_ResourcesAvailableIndicate_tokens(&(val)->tokens);
  7604. }
  7605. if ((val)->o[0] & 0x20) {
  7606. ASN1Free_ResourcesAvailableIndicate_cryptoTokens(&(val)->cryptoTokens);
  7607. }
  7608. if ((val)->o[0] & 0x10) {
  7609. ASN1Free_ICV(&(val)->integrityCheckValue);
  7610. }
  7611. }
  7612. }
  7613. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm(ASN1encoding_t enc, ResourcesAvailableConfirm *val)
  7614. {
  7615. if (!ASN1PEREncExtensionBitClear(enc))
  7616. return 0;
  7617. if (!ASN1PEREncBits(enc, 4, (val)->o))
  7618. return 0;
  7619. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  7620. return 0;
  7621. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  7622. return 0;
  7623. if ((val)->o[0] & 0x80) {
  7624. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  7625. return 0;
  7626. }
  7627. if ((val)->o[0] & 0x40) {
  7628. if (!ASN1Enc_ResourcesAvailableConfirm_tokens(enc, &(val)->tokens))
  7629. return 0;
  7630. }
  7631. if ((val)->o[0] & 0x20) {
  7632. if (!ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(enc, &(val)->cryptoTokens))
  7633. return 0;
  7634. }
  7635. if ((val)->o[0] & 0x10) {
  7636. if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
  7637. return 0;
  7638. }
  7639. return 1;
  7640. }
  7641. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm(ASN1decoding_t dec, ResourcesAvailableConfirm *val)
  7642. {
  7643. ASN1uint32_t y;
  7644. if (!ASN1PERDecExtensionBit(dec, &y))
  7645. return 0;
  7646. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  7647. return 0;
  7648. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  7649. return 0;
  7650. (val)->requestSeqNum += 1;
  7651. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  7652. return 0;
  7653. if ((val)->o[0] & 0x80) {
  7654. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  7655. return 0;
  7656. }
  7657. if ((val)->o[0] & 0x40) {
  7658. if (!ASN1Dec_ResourcesAvailableConfirm_tokens(dec, &(val)->tokens))
  7659. return 0;
  7660. }
  7661. if ((val)->o[0] & 0x20) {
  7662. if (!ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(dec, &(val)->cryptoTokens))
  7663. return 0;
  7664. }
  7665. if ((val)->o[0] & 0x10) {
  7666. if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
  7667. return 0;
  7668. }
  7669. if (y) {
  7670. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  7671. return 0;
  7672. }
  7673. return 1;
  7674. }
  7675. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm(ResourcesAvailableConfirm *val)
  7676. {
  7677. if (val) {
  7678. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  7679. if ((val)->o[0] & 0x80) {
  7680. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  7681. }
  7682. if ((val)->o[0] & 0x40) {
  7683. ASN1Free_ResourcesAvailableConfirm_tokens(&(val)->tokens);
  7684. }
  7685. if ((val)->o[0] & 0x20) {
  7686. ASN1Free_ResourcesAvailableConfirm_cryptoTokens(&(val)->cryptoTokens);
  7687. }
  7688. if ((val)->o[0] & 0x10) {
  7689. ASN1Free_ICV(&(val)->integrityCheckValue);
  7690. }
  7691. }
  7692. }
  7693. static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity(ASN1encoding_t enc, PGatekeeperConfirm_integrity *val)
  7694. {
  7695. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_integrity_ElmFn);
  7696. }
  7697. static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_integrity val)
  7698. {
  7699. if (!ASN1Enc_IntegrityMechanism(enc, &val->value))
  7700. return 0;
  7701. return 1;
  7702. }
  7703. static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity(ASN1decoding_t dec, PGatekeeperConfirm_integrity *val)
  7704. {
  7705. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_integrity_ElmFn, sizeof(**val));
  7706. }
  7707. static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_integrity val)
  7708. {
  7709. if (!ASN1Dec_IntegrityMechanism(dec, &val->value))
  7710. return 0;
  7711. return 1;
  7712. }
  7713. static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity(PGatekeeperConfirm_integrity *val)
  7714. {
  7715. if (val) {
  7716. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_integrity_ElmFn);
  7717. }
  7718. }
  7719. static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity_ElmFn(PGatekeeperConfirm_integrity val)
  7720. {
  7721. if (val) {
  7722. ASN1Free_IntegrityMechanism(&val->value);
  7723. }
  7724. }
  7725. static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity(ASN1encoding_t enc, PGatekeeperRequest_integrity *val)
  7726. {
  7727. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_integrity_ElmFn);
  7728. }
  7729. static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_integrity val)
  7730. {
  7731. if (!ASN1Enc_IntegrityMechanism(enc, &val->value))
  7732. return 0;
  7733. return 1;
  7734. }
  7735. static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity(ASN1decoding_t dec, PGatekeeperRequest_integrity *val)
  7736. {
  7737. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_integrity_ElmFn, sizeof(**val));
  7738. }
  7739. static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_integrity val)
  7740. {
  7741. if (!ASN1Dec_IntegrityMechanism(dec, &val->value))
  7742. return 0;
  7743. return 1;
  7744. }
  7745. static void ASN1CALL ASN1Free_GatekeeperRequest_integrity(PGatekeeperRequest_integrity *val)
  7746. {
  7747. if (val) {
  7748. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_integrity_ElmFn);
  7749. }
  7750. }
  7751. static void ASN1CALL ASN1Free_GatekeeperRequest_integrity_ElmFn(PGatekeeperRequest_integrity val)
  7752. {
  7753. if (val) {
  7754. ASN1Free_IntegrityMechanism(&val->value);
  7755. }
  7756. }
  7757. static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoGKPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoGKPwdHash *val)
  7758. {
  7759. ASN1uint32_t l;
  7760. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperId).length - 1))
  7761. return 0;
  7762. ASN1PEREncAlignment(enc);
  7763. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperId).length, ((val)->gatekeeperId).value, 16))
  7764. return 0;
  7765. l = ASN1uint32_uoctets((val)->timeStamp - 1);
  7766. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  7767. return 0;
  7768. ASN1PEREncAlignment(enc);
  7769. if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
  7770. return 0;
  7771. if (!ASN1Enc_HASHED(enc, &(val)->token))
  7772. return 0;
  7773. return 1;
  7774. }
  7775. static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoGKPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoGKPwdHash *val)
  7776. {
  7777. ASN1uint32_t l;
  7778. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperId).length))
  7779. return 0;
  7780. ((val)->gatekeeperId).length += 1;
  7781. ASN1PERDecAlignment(dec);
  7782. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperId).length, &((val)->gatekeeperId).value, 16))
  7783. return 0;
  7784. if (!ASN1PERDecU32Val(dec, 2, &l))
  7785. return 0;
  7786. l += 1;
  7787. ASN1PERDecAlignment(dec);
  7788. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
  7789. return 0;
  7790. (val)->timeStamp += 1;
  7791. if (!ASN1Dec_HASHED(dec, &(val)->token))
  7792. return 0;
  7793. return 1;
  7794. }
  7795. static void ASN1CALL ASN1Free_CryptoH323Token_cryptoGKPwdHash(CryptoH323Token_cryptoGKPwdHash *val)
  7796. {
  7797. if (val) {
  7798. ASN1char16string_free(&(val)->gatekeeperId);
  7799. ASN1Free_HASHED(&(val)->token);
  7800. }
  7801. }
  7802. static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported *val)
  7803. {
  7804. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_NonStandardProtocol_dataRatesSupported_ElmFn);
  7805. }
  7806. static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported_ElmFn(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported val)
  7807. {
  7808. if (!ASN1Enc_DataRate(enc, &val->value))
  7809. return 0;
  7810. return 1;
  7811. }
  7812. static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported *val)
  7813. {
  7814. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_NonStandardProtocol_dataRatesSupported_ElmFn, sizeof(**val));
  7815. }
  7816. static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported_ElmFn(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported val)
  7817. {
  7818. if (!ASN1Dec_DataRate(dec, &val->value))
  7819. return 0;
  7820. return 1;
  7821. }
  7822. static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported(PNonStandardProtocol_dataRatesSupported *val)
  7823. {
  7824. if (val) {
  7825. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_NonStandardProtocol_dataRatesSupported_ElmFn);
  7826. }
  7827. }
  7828. static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported_ElmFn(PNonStandardProtocol_dataRatesSupported val)
  7829. {
  7830. if (val) {
  7831. ASN1Free_DataRate(&val->value);
  7832. }
  7833. }
  7834. static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported *val)
  7835. {
  7836. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_T120OnlyCaps_dataRatesSupported_ElmFn);
  7837. }
  7838. static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported val)
  7839. {
  7840. if (!ASN1Enc_DataRate(enc, &val->value))
  7841. return 0;
  7842. return 1;
  7843. }
  7844. static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported *val)
  7845. {
  7846. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_T120OnlyCaps_dataRatesSupported_ElmFn, sizeof(**val));
  7847. }
  7848. static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported val)
  7849. {
  7850. if (!ASN1Dec_DataRate(dec, &val->value))
  7851. return 0;
  7852. return 1;
  7853. }
  7854. static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported(PT120OnlyCaps_dataRatesSupported *val)
  7855. {
  7856. if (val) {
  7857. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_T120OnlyCaps_dataRatesSupported_ElmFn);
  7858. }
  7859. }
  7860. static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported_ElmFn(PT120OnlyCaps_dataRatesSupported val)
  7861. {
  7862. if (val) {
  7863. ASN1Free_DataRate(&val->value);
  7864. }
  7865. }
  7866. static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported *val)
  7867. {
  7868. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_VoiceCaps_dataRatesSupported_ElmFn);
  7869. }
  7870. static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported val)
  7871. {
  7872. if (!ASN1Enc_DataRate(enc, &val->value))
  7873. return 0;
  7874. return 1;
  7875. }
  7876. static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported *val)
  7877. {
  7878. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_VoiceCaps_dataRatesSupported_ElmFn, sizeof(**val));
  7879. }
  7880. static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported val)
  7881. {
  7882. if (!ASN1Dec_DataRate(dec, &val->value))
  7883. return 0;
  7884. return 1;
  7885. }
  7886. static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported(PVoiceCaps_dataRatesSupported *val)
  7887. {
  7888. if (val) {
  7889. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_VoiceCaps_dataRatesSupported_ElmFn);
  7890. }
  7891. }
  7892. static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported_ElmFn(PVoiceCaps_dataRatesSupported val)
  7893. {
  7894. if (val) {
  7895. ASN1Free_DataRate(&val->value);
  7896. }
  7897. }
  7898. static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported(ASN1encoding_t enc, PH324Caps_dataRatesSupported *val)
  7899. {
  7900. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H324Caps_dataRatesSupported_ElmFn);
  7901. }
  7902. static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH324Caps_dataRatesSupported val)
  7903. {
  7904. if (!ASN1Enc_DataRate(enc, &val->value))
  7905. return 0;
  7906. return 1;
  7907. }
  7908. static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported(ASN1decoding_t dec, PH324Caps_dataRatesSupported *val)
  7909. {
  7910. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H324Caps_dataRatesSupported_ElmFn, sizeof(**val));
  7911. }
  7912. static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH324Caps_dataRatesSupported val)
  7913. {
  7914. if (!ASN1Dec_DataRate(dec, &val->value))
  7915. return 0;
  7916. return 1;
  7917. }
  7918. static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported(PH324Caps_dataRatesSupported *val)
  7919. {
  7920. if (val) {
  7921. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H324Caps_dataRatesSupported_ElmFn);
  7922. }
  7923. }
  7924. static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported_ElmFn(PH324Caps_dataRatesSupported val)
  7925. {
  7926. if (val) {
  7927. ASN1Free_DataRate(&val->value);
  7928. }
  7929. }
  7930. static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported(ASN1encoding_t enc, PH323Caps_dataRatesSupported *val)
  7931. {
  7932. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323Caps_dataRatesSupported_ElmFn);
  7933. }
  7934. static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH323Caps_dataRatesSupported val)
  7935. {
  7936. if (!ASN1Enc_DataRate(enc, &val->value))
  7937. return 0;
  7938. return 1;
  7939. }
  7940. static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported(ASN1decoding_t dec, PH323Caps_dataRatesSupported *val)
  7941. {
  7942. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323Caps_dataRatesSupported_ElmFn, sizeof(**val));
  7943. }
  7944. static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH323Caps_dataRatesSupported val)
  7945. {
  7946. if (!ASN1Dec_DataRate(dec, &val->value))
  7947. return 0;
  7948. return 1;
  7949. }
  7950. static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported(PH323Caps_dataRatesSupported *val)
  7951. {
  7952. if (val) {
  7953. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323Caps_dataRatesSupported_ElmFn);
  7954. }
  7955. }
  7956. static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported_ElmFn(PH323Caps_dataRatesSupported val)
  7957. {
  7958. if (val) {
  7959. ASN1Free_DataRate(&val->value);
  7960. }
  7961. }
  7962. static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported(ASN1encoding_t enc, PH322Caps_dataRatesSupported *val)
  7963. {
  7964. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H322Caps_dataRatesSupported_ElmFn);
  7965. }
  7966. static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH322Caps_dataRatesSupported val)
  7967. {
  7968. if (!ASN1Enc_DataRate(enc, &val->value))
  7969. return 0;
  7970. return 1;
  7971. }
  7972. static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported(ASN1decoding_t dec, PH322Caps_dataRatesSupported *val)
  7973. {
  7974. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H322Caps_dataRatesSupported_ElmFn, sizeof(**val));
  7975. }
  7976. static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH322Caps_dataRatesSupported val)
  7977. {
  7978. if (!ASN1Dec_DataRate(dec, &val->value))
  7979. return 0;
  7980. return 1;
  7981. }
  7982. static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported(PH322Caps_dataRatesSupported *val)
  7983. {
  7984. if (val) {
  7985. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H322Caps_dataRatesSupported_ElmFn);
  7986. }
  7987. }
  7988. static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported_ElmFn(PH322Caps_dataRatesSupported val)
  7989. {
  7990. if (val) {
  7991. ASN1Free_DataRate(&val->value);
  7992. }
  7993. }
  7994. static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported(ASN1encoding_t enc, PH321Caps_dataRatesSupported *val)
  7995. {
  7996. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H321Caps_dataRatesSupported_ElmFn);
  7997. }
  7998. static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH321Caps_dataRatesSupported val)
  7999. {
  8000. if (!ASN1Enc_DataRate(enc, &val->value))
  8001. return 0;
  8002. return 1;
  8003. }
  8004. static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported(ASN1decoding_t dec, PH321Caps_dataRatesSupported *val)
  8005. {
  8006. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H321Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8007. }
  8008. static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH321Caps_dataRatesSupported val)
  8009. {
  8010. if (!ASN1Dec_DataRate(dec, &val->value))
  8011. return 0;
  8012. return 1;
  8013. }
  8014. static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported(PH321Caps_dataRatesSupported *val)
  8015. {
  8016. if (val) {
  8017. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H321Caps_dataRatesSupported_ElmFn);
  8018. }
  8019. }
  8020. static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported_ElmFn(PH321Caps_dataRatesSupported val)
  8021. {
  8022. if (val) {
  8023. ASN1Free_DataRate(&val->value);
  8024. }
  8025. }
  8026. static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported(ASN1encoding_t enc, PH320Caps_dataRatesSupported *val)
  8027. {
  8028. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H320Caps_dataRatesSupported_ElmFn);
  8029. }
  8030. static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH320Caps_dataRatesSupported val)
  8031. {
  8032. if (!ASN1Enc_DataRate(enc, &val->value))
  8033. return 0;
  8034. return 1;
  8035. }
  8036. static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported(ASN1decoding_t dec, PH320Caps_dataRatesSupported *val)
  8037. {
  8038. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H320Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8039. }
  8040. static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH320Caps_dataRatesSupported val)
  8041. {
  8042. if (!ASN1Dec_DataRate(dec, &val->value))
  8043. return 0;
  8044. return 1;
  8045. }
  8046. static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported(PH320Caps_dataRatesSupported *val)
  8047. {
  8048. if (val) {
  8049. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H320Caps_dataRatesSupported_ElmFn);
  8050. }
  8051. }
  8052. static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported_ElmFn(PH320Caps_dataRatesSupported val)
  8053. {
  8054. if (val) {
  8055. ASN1Free_DataRate(&val->value);
  8056. }
  8057. }
  8058. static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported(ASN1encoding_t enc, PH310Caps_dataRatesSupported *val)
  8059. {
  8060. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H310Caps_dataRatesSupported_ElmFn);
  8061. }
  8062. static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH310Caps_dataRatesSupported val)
  8063. {
  8064. if (!ASN1Enc_DataRate(enc, &val->value))
  8065. return 0;
  8066. return 1;
  8067. }
  8068. static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported(ASN1decoding_t dec, PH310Caps_dataRatesSupported *val)
  8069. {
  8070. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H310Caps_dataRatesSupported_ElmFn, sizeof(**val));
  8071. }
  8072. static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH310Caps_dataRatesSupported val)
  8073. {
  8074. if (!ASN1Dec_DataRate(dec, &val->value))
  8075. return 0;
  8076. return 1;
  8077. }
  8078. static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported(PH310Caps_dataRatesSupported *val)
  8079. {
  8080. if (val) {
  8081. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H310Caps_dataRatesSupported_ElmFn);
  8082. }
  8083. }
  8084. static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported_ElmFn(PH310Caps_dataRatesSupported val)
  8085. {
  8086. if (val) {
  8087. ASN1Free_DataRate(&val->value);
  8088. }
  8089. }
  8090. static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability *val)
  8091. {
  8092. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_h245SecurityCapability_ElmFn);
  8093. }
  8094. static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability_ElmFn(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability val)
  8095. {
  8096. if (!ASN1Enc_H245Security(enc, &val->value))
  8097. return 0;
  8098. return 1;
  8099. }
  8100. static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability *val)
  8101. {
  8102. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_h245SecurityCapability_ElmFn, sizeof(**val));
  8103. }
  8104. static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability_ElmFn(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability val)
  8105. {
  8106. if (!ASN1Dec_H245Security(dec, &val->value))
  8107. return 0;
  8108. return 1;
  8109. }
  8110. static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability(PSetup_UUIE_h245SecurityCapability *val)
  8111. {
  8112. if (val) {
  8113. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_h245SecurityCapability_ElmFn);
  8114. }
  8115. }
  8116. static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability_ElmFn(PSetup_UUIE_h245SecurityCapability val)
  8117. {
  8118. if (val) {
  8119. ASN1Free_H245Security(&val->value);
  8120. }
  8121. }
  8122. static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl *val)
  8123. {
  8124. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_nonStandardControl_ElmFn);
  8125. }
  8126. static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl val)
  8127. {
  8128. if (!ASN1Enc_H225NonStandardParameter(enc, &val->value))
  8129. return 0;
  8130. return 1;
  8131. }
  8132. static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl *val)
  8133. {
  8134. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_nonStandardControl_ElmFn, sizeof(**val));
  8135. }
  8136. static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl val)
  8137. {
  8138. if (!ASN1Dec_H225NonStandardParameter(dec, &val->value))
  8139. return 0;
  8140. return 1;
  8141. }
  8142. static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl(PH323_UU_PDU_nonStandardControl *val)
  8143. {
  8144. if (val) {
  8145. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_nonStandardControl_ElmFn);
  8146. }
  8147. }
  8148. static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl_ElmFn(PH323_UU_PDU_nonStandardControl val)
  8149. {
  8150. if (val) {
  8151. ASN1Free_H225NonStandardParameter(&val->value);
  8152. }
  8153. }
  8154. static int ASN1CALL ASN1Enc_CryptoToken_cryptoHashedToken(ASN1encoding_t enc, CryptoToken_cryptoHashedToken *val)
  8155. {
  8156. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  8157. return 0;
  8158. if (!ASN1Enc_ClearToken(enc, &(val)->hashedVals))
  8159. return 0;
  8160. if (!ASN1Enc_HASHED(enc, &(val)->token))
  8161. return 0;
  8162. return 1;
  8163. }
  8164. static int ASN1CALL ASN1Dec_CryptoToken_cryptoHashedToken(ASN1decoding_t dec, CryptoToken_cryptoHashedToken *val)
  8165. {
  8166. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  8167. return 0;
  8168. if (!ASN1Dec_ClearToken(dec, &(val)->hashedVals))
  8169. return 0;
  8170. if (!ASN1Dec_HASHED(dec, &(val)->token))
  8171. return 0;
  8172. return 1;
  8173. }
  8174. static void ASN1CALL ASN1Free_CryptoToken_cryptoHashedToken(CryptoToken_cryptoHashedToken *val)
  8175. {
  8176. if (val) {
  8177. ASN1objectidentifier_free(&(val)->tokenOID);
  8178. ASN1Free_ClearToken(&(val)->hashedVals);
  8179. ASN1Free_HASHED(&(val)->token);
  8180. }
  8181. }
  8182. static int ASN1CALL ASN1Enc_CryptoToken_cryptoSignedToken(ASN1encoding_t enc, CryptoToken_cryptoSignedToken *val)
  8183. {
  8184. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  8185. return 0;
  8186. if (!ASN1Enc_SIGNED_EncodedGeneralToken(enc, &(val)->token))
  8187. return 0;
  8188. return 1;
  8189. }
  8190. static int ASN1CALL ASN1Dec_CryptoToken_cryptoSignedToken(ASN1decoding_t dec, CryptoToken_cryptoSignedToken *val)
  8191. {
  8192. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  8193. return 0;
  8194. if (!ASN1Dec_SIGNED_EncodedGeneralToken(dec, &(val)->token))
  8195. return 0;
  8196. return 1;
  8197. }
  8198. static void ASN1CALL ASN1Free_CryptoToken_cryptoSignedToken(CryptoToken_cryptoSignedToken *val)
  8199. {
  8200. if (val) {
  8201. ASN1objectidentifier_free(&(val)->tokenOID);
  8202. ASN1Free_SIGNED_EncodedGeneralToken(&(val)->token);
  8203. }
  8204. }
  8205. static int ASN1CALL ASN1Enc_CryptoToken_cryptoEncryptedToken(ASN1encoding_t enc, CryptoToken_cryptoEncryptedToken *val)
  8206. {
  8207. if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
  8208. return 0;
  8209. if (!ASN1Enc_ENCRYPTED(enc, &(val)->token))
  8210. return 0;
  8211. return 1;
  8212. }
  8213. static int ASN1CALL ASN1Dec_CryptoToken_cryptoEncryptedToken(ASN1decoding_t dec, CryptoToken_cryptoEncryptedToken *val)
  8214. {
  8215. if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
  8216. return 0;
  8217. if (!ASN1Dec_ENCRYPTED(dec, &(val)->token))
  8218. return 0;
  8219. return 1;
  8220. }
  8221. static void ASN1CALL ASN1Free_CryptoToken_cryptoEncryptedToken(CryptoToken_cryptoEncryptedToken *val)
  8222. {
  8223. if (val) {
  8224. ASN1objectidentifier_free(&(val)->tokenOID);
  8225. ASN1Free_ENCRYPTED(&(val)->token);
  8226. }
  8227. }
  8228. static int ASN1CALL ASN1Enc_CryptoToken(ASN1encoding_t enc, CryptoToken *val)
  8229. {
  8230. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
  8231. return 0;
  8232. switch ((val)->choice) {
  8233. case 1:
  8234. if (!ASN1Enc_CryptoToken_cryptoEncryptedToken(enc, &(val)->u.cryptoEncryptedToken))
  8235. return 0;
  8236. break;
  8237. case 2:
  8238. if (!ASN1Enc_CryptoToken_cryptoSignedToken(enc, &(val)->u.cryptoSignedToken))
  8239. return 0;
  8240. break;
  8241. case 3:
  8242. if (!ASN1Enc_CryptoToken_cryptoHashedToken(enc, &(val)->u.cryptoHashedToken))
  8243. return 0;
  8244. break;
  8245. case 4:
  8246. if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoPwdEncr))
  8247. return 0;
  8248. break;
  8249. default:
  8250. /* impossible */
  8251. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  8252. return 0;
  8253. }
  8254. return 1;
  8255. }
  8256. static int ASN1CALL ASN1Dec_CryptoToken(ASN1decoding_t dec, CryptoToken *val)
  8257. {
  8258. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
  8259. return 0;
  8260. switch ((val)->choice) {
  8261. case 1:
  8262. if (!ASN1Dec_CryptoToken_cryptoEncryptedToken(dec, &(val)->u.cryptoEncryptedToken))
  8263. return 0;
  8264. break;
  8265. case 2:
  8266. if (!ASN1Dec_CryptoToken_cryptoSignedToken(dec, &(val)->u.cryptoSignedToken))
  8267. return 0;
  8268. break;
  8269. case 3:
  8270. if (!ASN1Dec_CryptoToken_cryptoHashedToken(dec, &(val)->u.cryptoHashedToken))
  8271. return 0;
  8272. break;
  8273. case 4:
  8274. if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoPwdEncr))
  8275. return 0;
  8276. break;
  8277. case 0:
  8278. /* extension case */
  8279. if (!ASN1PERDecSkipFragmented(dec, 8))
  8280. return 0;
  8281. break;
  8282. default:
  8283. /* impossible */
  8284. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  8285. return 0;
  8286. }
  8287. return 1;
  8288. }
  8289. static void ASN1CALL ASN1Free_CryptoToken(CryptoToken *val)
  8290. {
  8291. if (val) {
  8292. switch ((val)->choice) {
  8293. case 1:
  8294. ASN1Free_CryptoToken_cryptoEncryptedToken(&(val)->u.cryptoEncryptedToken);
  8295. break;
  8296. case 2:
  8297. ASN1Free_CryptoToken_cryptoSignedToken(&(val)->u.cryptoSignedToken);
  8298. break;
  8299. case 3:
  8300. ASN1Free_CryptoToken_cryptoHashedToken(&(val)->u.cryptoHashedToken);
  8301. break;
  8302. case 4:
  8303. ASN1Free_ENCRYPTED(&(val)->u.cryptoPwdEncr);
  8304. break;
  8305. }
  8306. }
  8307. }
  8308. static int ASN1CALL ASN1Enc_SIGNED_EncodedFastStartToken(ASN1encoding_t enc, SIGNED_EncodedFastStartToken *val)
  8309. {
  8310. if (!ASN1Enc_EncodedFastStartToken(enc, &(val)->toBeSigned))
  8311. return 0;
  8312. if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
  8313. return 0;
  8314. if (!ASN1Enc_Params(enc, &(val)->paramS))
  8315. return 0;
  8316. if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
  8317. return 0;
  8318. return 1;
  8319. }
  8320. static int ASN1CALL ASN1Dec_SIGNED_EncodedFastStartToken(ASN1decoding_t dec, SIGNED_EncodedFastStartToken *val)
  8321. {
  8322. if (!ASN1Dec_EncodedFastStartToken(dec, &(val)->toBeSigned))
  8323. return 0;
  8324. if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
  8325. return 0;
  8326. if (!ASN1Dec_Params(dec, &(val)->paramS))
  8327. return 0;
  8328. if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
  8329. return 0;
  8330. return 1;
  8331. }
  8332. static void ASN1CALL ASN1Free_SIGNED_EncodedFastStartToken(SIGNED_EncodedFastStartToken *val)
  8333. {
  8334. if (val) {
  8335. ASN1Free_EncodedFastStartToken(&(val)->toBeSigned);
  8336. ASN1objectidentifier_free(&(val)->algorithmOID);
  8337. ASN1Free_Params(&(val)->paramS);
  8338. ASN1bitstring_free(&(val)->signature);
  8339. }
  8340. }
  8341. static int ASN1CALL ASN1Enc_TransportAddress(ASN1encoding_t enc, TransportAddress *val)
  8342. {
  8343. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  8344. return 0;
  8345. switch ((val)->choice) {
  8346. case 1:
  8347. if (!ASN1Enc_TransportAddress_ipAddress(enc, &(val)->u.ipAddress))
  8348. return 0;
  8349. break;
  8350. case 2:
  8351. if (!ASN1Enc_TransportAddress_ipSourceRoute(enc, &(val)->u.ipSourceRoute))
  8352. return 0;
  8353. break;
  8354. case 3:
  8355. if (!ASN1Enc_TransportAddress_ipxAddress(enc, &(val)->u.ipxAddress))
  8356. return 0;
  8357. break;
  8358. case 4:
  8359. if (!ASN1Enc_TransportAddress_ip6Address(enc, &(val)->u.ip6Address))
  8360. return 0;
  8361. break;
  8362. case 5:
  8363. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
  8364. return 0;
  8365. break;
  8366. case 6:
  8367. if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
  8368. return 0;
  8369. break;
  8370. case 7:
  8371. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandardAddress))
  8372. return 0;
  8373. break;
  8374. default:
  8375. /* impossible */
  8376. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  8377. return 0;
  8378. }
  8379. return 1;
  8380. }
  8381. static int ASN1CALL ASN1Dec_TransportAddress(ASN1decoding_t dec, TransportAddress *val)
  8382. {
  8383. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  8384. return 0;
  8385. switch ((val)->choice) {
  8386. case 1:
  8387. if (!ASN1Dec_TransportAddress_ipAddress(dec, &(val)->u.ipAddress))
  8388. return 0;
  8389. break;
  8390. case 2:
  8391. if (!ASN1Dec_TransportAddress_ipSourceRoute(dec, &(val)->u.ipSourceRoute))
  8392. return 0;
  8393. break;
  8394. case 3:
  8395. if (!ASN1Dec_TransportAddress_ipxAddress(dec, &(val)->u.ipxAddress))
  8396. return 0;
  8397. break;
  8398. case 4:
  8399. if (!ASN1Dec_TransportAddress_ip6Address(dec, &(val)->u.ip6Address))
  8400. return 0;
  8401. break;
  8402. case 5:
  8403. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
  8404. return 0;
  8405. break;
  8406. case 6:
  8407. if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
  8408. return 0;
  8409. break;
  8410. case 7:
  8411. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandardAddress))
  8412. return 0;
  8413. break;
  8414. case 0:
  8415. /* extension case */
  8416. if (!ASN1PERDecSkipFragmented(dec, 8))
  8417. return 0;
  8418. break;
  8419. default:
  8420. /* impossible */
  8421. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  8422. return 0;
  8423. }
  8424. return 1;
  8425. }
  8426. static void ASN1CALL ASN1Free_TransportAddress(TransportAddress *val)
  8427. {
  8428. if (val) {
  8429. switch ((val)->choice) {
  8430. case 1:
  8431. ASN1Free_TransportAddress_ipAddress(&(val)->u.ipAddress);
  8432. break;
  8433. case 2:
  8434. ASN1Free_TransportAddress_ipSourceRoute(&(val)->u.ipSourceRoute);
  8435. break;
  8436. case 3:
  8437. ASN1Free_TransportAddress_ipxAddress(&(val)->u.ipxAddress);
  8438. break;
  8439. case 4:
  8440. ASN1Free_TransportAddress_ip6Address(&(val)->u.ip6Address);
  8441. break;
  8442. case 5:
  8443. break;
  8444. case 6:
  8445. break;
  8446. case 7:
  8447. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandardAddress);
  8448. break;
  8449. }
  8450. }
  8451. }
  8452. static int ASN1CALL ASN1Enc_GatewayInfo(ASN1encoding_t enc, GatewayInfo *val)
  8453. {
  8454. if (!ASN1PEREncExtensionBitClear(enc))
  8455. return 0;
  8456. if (!ASN1PEREncBits(enc, 2, (val)->o))
  8457. return 0;
  8458. if ((val)->o[0] & 0x80) {
  8459. if (!ASN1Enc_GatewayInfo_protocol(enc, &(val)->protocol))
  8460. return 0;
  8461. }
  8462. if ((val)->o[0] & 0x40) {
  8463. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8464. return 0;
  8465. }
  8466. return 1;
  8467. }
  8468. static int ASN1CALL ASN1Dec_GatewayInfo(ASN1decoding_t dec, GatewayInfo *val)
  8469. {
  8470. ASN1uint32_t y;
  8471. if (!ASN1PERDecExtensionBit(dec, &y))
  8472. return 0;
  8473. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  8474. return 0;
  8475. if ((val)->o[0] & 0x80) {
  8476. if (!ASN1Dec_GatewayInfo_protocol(dec, &(val)->protocol))
  8477. return 0;
  8478. }
  8479. if ((val)->o[0] & 0x40) {
  8480. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8481. return 0;
  8482. }
  8483. if (y) {
  8484. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  8485. return 0;
  8486. }
  8487. return 1;
  8488. }
  8489. static void ASN1CALL ASN1Free_GatewayInfo(GatewayInfo *val)
  8490. {
  8491. if (val) {
  8492. if ((val)->o[0] & 0x80) {
  8493. ASN1Free_GatewayInfo_protocol(&(val)->protocol);
  8494. }
  8495. if ((val)->o[0] & 0x40) {
  8496. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8497. }
  8498. }
  8499. }
  8500. static int ASN1CALL ASN1Enc_H310Caps(ASN1encoding_t enc, H310Caps *val)
  8501. {
  8502. ASN1octet_t o[2];
  8503. ASN1uint32_t y;
  8504. ASN1encoding_t ee;
  8505. CopyMemory(o, (val)->o, 2);
  8506. o[1] |= 0x40;
  8507. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8508. if (!ASN1PEREncBitVal(enc, 1, y))
  8509. return 0;
  8510. if (!ASN1PEREncBits(enc, 1, o))
  8511. return 0;
  8512. if (o[0] & 0x80) {
  8513. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8514. return 0;
  8515. }
  8516. if (y) {
  8517. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8518. return 0;
  8519. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8520. return 0;
  8521. if (o[1] & 0x80) {
  8522. if (!ASN1Enc_H310Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8523. return 0;
  8524. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8525. return 0;
  8526. }
  8527. if (o[1] & 0x40) {
  8528. if (!ASN1Enc_H310Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8529. return 0;
  8530. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8531. return 0;
  8532. }
  8533. ASN1_CloseEncoder2(ee);
  8534. }
  8535. return 1;
  8536. }
  8537. static int ASN1CALL ASN1Dec_H310Caps(ASN1decoding_t dec, H310Caps *val)
  8538. {
  8539. ASN1uint32_t y;
  8540. ASN1decoding_t dd;
  8541. ASN1octet_t *db;
  8542. ASN1uint32_t ds;
  8543. ASN1uint32_t i;
  8544. ASN1uint32_t e;
  8545. if (!ASN1PERDecExtensionBit(dec, &y))
  8546. return 0;
  8547. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8548. return 0;
  8549. if ((val)->o[0] & 0x80) {
  8550. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8551. return 0;
  8552. }
  8553. if (!y) {
  8554. ZeroMemory((val)->o + 1, 1);
  8555. } else {
  8556. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8557. return 0;
  8558. if ((val)->o[1] & 0x80) {
  8559. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8560. return 0;
  8561. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8562. return 0;
  8563. if (!ASN1Dec_H310Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8564. return 0;
  8565. ASN1_CloseDecoder(dd);
  8566. }
  8567. if ((val)->o[1] & 0x40) {
  8568. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8569. return 0;
  8570. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8571. return 0;
  8572. if (!ASN1Dec_H310Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8573. return 0;
  8574. ASN1_CloseDecoder(dd);
  8575. }
  8576. for (i = 0; i < e; i++) {
  8577. if (!ASN1PERDecSkipFragmented(dec, 8))
  8578. return 0;
  8579. }
  8580. }
  8581. return 1;
  8582. }
  8583. static void ASN1CALL ASN1Free_H310Caps(H310Caps *val)
  8584. {
  8585. if (val) {
  8586. if ((val)->o[0] & 0x80) {
  8587. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8588. }
  8589. if ((val)->o[1] & 0x80) {
  8590. ASN1Free_H310Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8591. }
  8592. if ((val)->o[1] & 0x40) {
  8593. ASN1Free_H310Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8594. }
  8595. }
  8596. }
  8597. static int ASN1CALL ASN1Enc_H320Caps(ASN1encoding_t enc, H320Caps *val)
  8598. {
  8599. ASN1octet_t o[2];
  8600. ASN1uint32_t y;
  8601. ASN1encoding_t ee;
  8602. CopyMemory(o, (val)->o, 2);
  8603. o[1] |= 0x40;
  8604. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8605. if (!ASN1PEREncBitVal(enc, 1, y))
  8606. return 0;
  8607. if (!ASN1PEREncBits(enc, 1, o))
  8608. return 0;
  8609. if (o[0] & 0x80) {
  8610. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8611. return 0;
  8612. }
  8613. if (y) {
  8614. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8615. return 0;
  8616. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8617. return 0;
  8618. if (o[1] & 0x80) {
  8619. if (!ASN1Enc_H320Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8620. return 0;
  8621. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8622. return 0;
  8623. }
  8624. if (o[1] & 0x40) {
  8625. if (!ASN1Enc_H320Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8626. return 0;
  8627. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8628. return 0;
  8629. }
  8630. ASN1_CloseEncoder2(ee);
  8631. }
  8632. return 1;
  8633. }
  8634. static int ASN1CALL ASN1Dec_H320Caps(ASN1decoding_t dec, H320Caps *val)
  8635. {
  8636. ASN1uint32_t y;
  8637. ASN1decoding_t dd;
  8638. ASN1octet_t *db;
  8639. ASN1uint32_t ds;
  8640. ASN1uint32_t i;
  8641. ASN1uint32_t e;
  8642. if (!ASN1PERDecExtensionBit(dec, &y))
  8643. return 0;
  8644. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8645. return 0;
  8646. if ((val)->o[0] & 0x80) {
  8647. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8648. return 0;
  8649. }
  8650. if (!y) {
  8651. ZeroMemory((val)->o + 1, 1);
  8652. } else {
  8653. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8654. return 0;
  8655. if ((val)->o[1] & 0x80) {
  8656. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8657. return 0;
  8658. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8659. return 0;
  8660. if (!ASN1Dec_H320Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8661. return 0;
  8662. ASN1_CloseDecoder(dd);
  8663. }
  8664. if ((val)->o[1] & 0x40) {
  8665. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8666. return 0;
  8667. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8668. return 0;
  8669. if (!ASN1Dec_H320Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8670. return 0;
  8671. ASN1_CloseDecoder(dd);
  8672. }
  8673. for (i = 0; i < e; i++) {
  8674. if (!ASN1PERDecSkipFragmented(dec, 8))
  8675. return 0;
  8676. }
  8677. }
  8678. return 1;
  8679. }
  8680. static void ASN1CALL ASN1Free_H320Caps(H320Caps *val)
  8681. {
  8682. if (val) {
  8683. if ((val)->o[0] & 0x80) {
  8684. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8685. }
  8686. if ((val)->o[1] & 0x80) {
  8687. ASN1Free_H320Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8688. }
  8689. if ((val)->o[1] & 0x40) {
  8690. ASN1Free_H320Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8691. }
  8692. }
  8693. }
  8694. static int ASN1CALL ASN1Enc_H321Caps(ASN1encoding_t enc, H321Caps *val)
  8695. {
  8696. ASN1octet_t o[2];
  8697. ASN1uint32_t y;
  8698. ASN1encoding_t ee;
  8699. CopyMemory(o, (val)->o, 2);
  8700. o[1] |= 0x40;
  8701. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8702. if (!ASN1PEREncBitVal(enc, 1, y))
  8703. return 0;
  8704. if (!ASN1PEREncBits(enc, 1, o))
  8705. return 0;
  8706. if (o[0] & 0x80) {
  8707. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8708. return 0;
  8709. }
  8710. if (y) {
  8711. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8712. return 0;
  8713. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8714. return 0;
  8715. if (o[1] & 0x80) {
  8716. if (!ASN1Enc_H321Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8717. return 0;
  8718. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8719. return 0;
  8720. }
  8721. if (o[1] & 0x40) {
  8722. if (!ASN1Enc_H321Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8723. return 0;
  8724. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8725. return 0;
  8726. }
  8727. ASN1_CloseEncoder2(ee);
  8728. }
  8729. return 1;
  8730. }
  8731. static int ASN1CALL ASN1Dec_H321Caps(ASN1decoding_t dec, H321Caps *val)
  8732. {
  8733. ASN1uint32_t y;
  8734. ASN1decoding_t dd;
  8735. ASN1octet_t *db;
  8736. ASN1uint32_t ds;
  8737. ASN1uint32_t i;
  8738. ASN1uint32_t e;
  8739. if (!ASN1PERDecExtensionBit(dec, &y))
  8740. return 0;
  8741. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8742. return 0;
  8743. if ((val)->o[0] & 0x80) {
  8744. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8745. return 0;
  8746. }
  8747. if (!y) {
  8748. ZeroMemory((val)->o + 1, 1);
  8749. } else {
  8750. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8751. return 0;
  8752. if ((val)->o[1] & 0x80) {
  8753. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8754. return 0;
  8755. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8756. return 0;
  8757. if (!ASN1Dec_H321Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8758. return 0;
  8759. ASN1_CloseDecoder(dd);
  8760. }
  8761. if ((val)->o[1] & 0x40) {
  8762. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8763. return 0;
  8764. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8765. return 0;
  8766. if (!ASN1Dec_H321Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8767. return 0;
  8768. ASN1_CloseDecoder(dd);
  8769. }
  8770. for (i = 0; i < e; i++) {
  8771. if (!ASN1PERDecSkipFragmented(dec, 8))
  8772. return 0;
  8773. }
  8774. }
  8775. return 1;
  8776. }
  8777. static void ASN1CALL ASN1Free_H321Caps(H321Caps *val)
  8778. {
  8779. if (val) {
  8780. if ((val)->o[0] & 0x80) {
  8781. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8782. }
  8783. if ((val)->o[1] & 0x80) {
  8784. ASN1Free_H321Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8785. }
  8786. if ((val)->o[1] & 0x40) {
  8787. ASN1Free_H321Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8788. }
  8789. }
  8790. }
  8791. static int ASN1CALL ASN1Enc_H322Caps(ASN1encoding_t enc, H322Caps *val)
  8792. {
  8793. ASN1octet_t o[2];
  8794. ASN1uint32_t y;
  8795. ASN1encoding_t ee;
  8796. CopyMemory(o, (val)->o, 2);
  8797. o[1] |= 0x40;
  8798. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8799. if (!ASN1PEREncBitVal(enc, 1, y))
  8800. return 0;
  8801. if (!ASN1PEREncBits(enc, 1, o))
  8802. return 0;
  8803. if (o[0] & 0x80) {
  8804. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8805. return 0;
  8806. }
  8807. if (y) {
  8808. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8809. return 0;
  8810. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8811. return 0;
  8812. if (o[1] & 0x80) {
  8813. if (!ASN1Enc_H322Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8814. return 0;
  8815. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8816. return 0;
  8817. }
  8818. if (o[1] & 0x40) {
  8819. if (!ASN1Enc_H322Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8820. return 0;
  8821. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8822. return 0;
  8823. }
  8824. ASN1_CloseEncoder2(ee);
  8825. }
  8826. return 1;
  8827. }
  8828. static int ASN1CALL ASN1Dec_H322Caps(ASN1decoding_t dec, H322Caps *val)
  8829. {
  8830. ASN1uint32_t y;
  8831. ASN1decoding_t dd;
  8832. ASN1octet_t *db;
  8833. ASN1uint32_t ds;
  8834. ASN1uint32_t i;
  8835. ASN1uint32_t e;
  8836. if (!ASN1PERDecExtensionBit(dec, &y))
  8837. return 0;
  8838. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8839. return 0;
  8840. if ((val)->o[0] & 0x80) {
  8841. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8842. return 0;
  8843. }
  8844. if (!y) {
  8845. ZeroMemory((val)->o + 1, 1);
  8846. } else {
  8847. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8848. return 0;
  8849. if ((val)->o[1] & 0x80) {
  8850. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8851. return 0;
  8852. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8853. return 0;
  8854. if (!ASN1Dec_H322Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8855. return 0;
  8856. ASN1_CloseDecoder(dd);
  8857. }
  8858. if ((val)->o[1] & 0x40) {
  8859. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8860. return 0;
  8861. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8862. return 0;
  8863. if (!ASN1Dec_H322Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8864. return 0;
  8865. ASN1_CloseDecoder(dd);
  8866. }
  8867. for (i = 0; i < e; i++) {
  8868. if (!ASN1PERDecSkipFragmented(dec, 8))
  8869. return 0;
  8870. }
  8871. }
  8872. return 1;
  8873. }
  8874. static void ASN1CALL ASN1Free_H322Caps(H322Caps *val)
  8875. {
  8876. if (val) {
  8877. if ((val)->o[0] & 0x80) {
  8878. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8879. }
  8880. if ((val)->o[1] & 0x80) {
  8881. ASN1Free_H322Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8882. }
  8883. if ((val)->o[1] & 0x40) {
  8884. ASN1Free_H322Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8885. }
  8886. }
  8887. }
  8888. static int ASN1CALL ASN1Enc_H323Caps(ASN1encoding_t enc, H323Caps *val)
  8889. {
  8890. ASN1octet_t o[2];
  8891. ASN1uint32_t y;
  8892. ASN1encoding_t ee;
  8893. CopyMemory(o, (val)->o, 2);
  8894. o[1] |= 0x40;
  8895. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8896. if (!ASN1PEREncBitVal(enc, 1, y))
  8897. return 0;
  8898. if (!ASN1PEREncBits(enc, 1, o))
  8899. return 0;
  8900. if (o[0] & 0x80) {
  8901. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8902. return 0;
  8903. }
  8904. if (y) {
  8905. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  8906. return 0;
  8907. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  8908. return 0;
  8909. if (o[1] & 0x80) {
  8910. if (!ASN1Enc_H323Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  8911. return 0;
  8912. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8913. return 0;
  8914. }
  8915. if (o[1] & 0x40) {
  8916. if (!ASN1Enc_H323Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  8917. return 0;
  8918. if (!ASN1PEREncFlushFragmentedToParent(ee))
  8919. return 0;
  8920. }
  8921. ASN1_CloseEncoder2(ee);
  8922. }
  8923. return 1;
  8924. }
  8925. static int ASN1CALL ASN1Dec_H323Caps(ASN1decoding_t dec, H323Caps *val)
  8926. {
  8927. ASN1uint32_t y;
  8928. ASN1decoding_t dd;
  8929. ASN1octet_t *db;
  8930. ASN1uint32_t ds;
  8931. ASN1uint32_t i;
  8932. ASN1uint32_t e;
  8933. if (!ASN1PERDecExtensionBit(dec, &y))
  8934. return 0;
  8935. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  8936. return 0;
  8937. if ((val)->o[0] & 0x80) {
  8938. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  8939. return 0;
  8940. }
  8941. if (!y) {
  8942. ZeroMemory((val)->o + 1, 1);
  8943. } else {
  8944. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  8945. return 0;
  8946. if ((val)->o[1] & 0x80) {
  8947. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8948. return 0;
  8949. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8950. return 0;
  8951. if (!ASN1Dec_H323Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  8952. return 0;
  8953. ASN1_CloseDecoder(dd);
  8954. }
  8955. if ((val)->o[1] & 0x40) {
  8956. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  8957. return 0;
  8958. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  8959. return 0;
  8960. if (!ASN1Dec_H323Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  8961. return 0;
  8962. ASN1_CloseDecoder(dd);
  8963. }
  8964. for (i = 0; i < e; i++) {
  8965. if (!ASN1PERDecSkipFragmented(dec, 8))
  8966. return 0;
  8967. }
  8968. }
  8969. return 1;
  8970. }
  8971. static void ASN1CALL ASN1Free_H323Caps(H323Caps *val)
  8972. {
  8973. if (val) {
  8974. if ((val)->o[0] & 0x80) {
  8975. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  8976. }
  8977. if ((val)->o[1] & 0x80) {
  8978. ASN1Free_H323Caps_dataRatesSupported(&(val)->dataRatesSupported);
  8979. }
  8980. if ((val)->o[1] & 0x40) {
  8981. ASN1Free_H323Caps_supportedPrefixes(&(val)->supportedPrefixes);
  8982. }
  8983. }
  8984. }
  8985. static int ASN1CALL ASN1Enc_H324Caps(ASN1encoding_t enc, H324Caps *val)
  8986. {
  8987. ASN1octet_t o[2];
  8988. ASN1uint32_t y;
  8989. ASN1encoding_t ee;
  8990. CopyMemory(o, (val)->o, 2);
  8991. o[1] |= 0x40;
  8992. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  8993. if (!ASN1PEREncBitVal(enc, 1, y))
  8994. return 0;
  8995. if (!ASN1PEREncBits(enc, 1, o))
  8996. return 0;
  8997. if (o[0] & 0x80) {
  8998. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  8999. return 0;
  9000. }
  9001. if (y) {
  9002. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  9003. return 0;
  9004. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9005. return 0;
  9006. if (o[1] & 0x80) {
  9007. if (!ASN1Enc_H324Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  9008. return 0;
  9009. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9010. return 0;
  9011. }
  9012. if (o[1] & 0x40) {
  9013. if (!ASN1Enc_H324Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  9014. return 0;
  9015. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9016. return 0;
  9017. }
  9018. ASN1_CloseEncoder2(ee);
  9019. }
  9020. return 1;
  9021. }
  9022. static int ASN1CALL ASN1Dec_H324Caps(ASN1decoding_t dec, H324Caps *val)
  9023. {
  9024. ASN1uint32_t y;
  9025. ASN1decoding_t dd;
  9026. ASN1octet_t *db;
  9027. ASN1uint32_t ds;
  9028. ASN1uint32_t i;
  9029. ASN1uint32_t e;
  9030. if (!ASN1PERDecExtensionBit(dec, &y))
  9031. return 0;
  9032. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9033. return 0;
  9034. if ((val)->o[0] & 0x80) {
  9035. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9036. return 0;
  9037. }
  9038. if (!y) {
  9039. ZeroMemory((val)->o + 1, 1);
  9040. } else {
  9041. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  9042. return 0;
  9043. if ((val)->o[1] & 0x80) {
  9044. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9045. return 0;
  9046. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9047. return 0;
  9048. if (!ASN1Dec_H324Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9049. return 0;
  9050. ASN1_CloseDecoder(dd);
  9051. }
  9052. if ((val)->o[1] & 0x40) {
  9053. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9054. return 0;
  9055. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9056. return 0;
  9057. if (!ASN1Dec_H324Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9058. return 0;
  9059. ASN1_CloseDecoder(dd);
  9060. }
  9061. for (i = 0; i < e; i++) {
  9062. if (!ASN1PERDecSkipFragmented(dec, 8))
  9063. return 0;
  9064. }
  9065. }
  9066. return 1;
  9067. }
  9068. static void ASN1CALL ASN1Free_H324Caps(H324Caps *val)
  9069. {
  9070. if (val) {
  9071. if ((val)->o[0] & 0x80) {
  9072. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9073. }
  9074. if ((val)->o[1] & 0x80) {
  9075. ASN1Free_H324Caps_dataRatesSupported(&(val)->dataRatesSupported);
  9076. }
  9077. if ((val)->o[1] & 0x40) {
  9078. ASN1Free_H324Caps_supportedPrefixes(&(val)->supportedPrefixes);
  9079. }
  9080. }
  9081. }
  9082. static int ASN1CALL ASN1Enc_VoiceCaps(ASN1encoding_t enc, VoiceCaps *val)
  9083. {
  9084. ASN1octet_t o[2];
  9085. ASN1uint32_t y;
  9086. ASN1encoding_t ee;
  9087. CopyMemory(o, (val)->o, 2);
  9088. o[1] |= 0x40;
  9089. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  9090. if (!ASN1PEREncBitVal(enc, 1, y))
  9091. return 0;
  9092. if (!ASN1PEREncBits(enc, 1, o))
  9093. return 0;
  9094. if (o[0] & 0x80) {
  9095. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9096. return 0;
  9097. }
  9098. if (y) {
  9099. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  9100. return 0;
  9101. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9102. return 0;
  9103. if (o[1] & 0x80) {
  9104. if (!ASN1Enc_VoiceCaps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  9105. return 0;
  9106. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9107. return 0;
  9108. }
  9109. if (o[1] & 0x40) {
  9110. if (!ASN1Enc_VoiceCaps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  9111. return 0;
  9112. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9113. return 0;
  9114. }
  9115. ASN1_CloseEncoder2(ee);
  9116. }
  9117. return 1;
  9118. }
  9119. static int ASN1CALL ASN1Dec_VoiceCaps(ASN1decoding_t dec, VoiceCaps *val)
  9120. {
  9121. ASN1uint32_t y;
  9122. ASN1decoding_t dd;
  9123. ASN1octet_t *db;
  9124. ASN1uint32_t ds;
  9125. ASN1uint32_t i;
  9126. ASN1uint32_t e;
  9127. if (!ASN1PERDecExtensionBit(dec, &y))
  9128. return 0;
  9129. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9130. return 0;
  9131. if ((val)->o[0] & 0x80) {
  9132. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9133. return 0;
  9134. }
  9135. if (!y) {
  9136. ZeroMemory((val)->o + 1, 1);
  9137. } else {
  9138. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  9139. return 0;
  9140. if ((val)->o[1] & 0x80) {
  9141. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9142. return 0;
  9143. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9144. return 0;
  9145. if (!ASN1Dec_VoiceCaps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9146. return 0;
  9147. ASN1_CloseDecoder(dd);
  9148. }
  9149. if ((val)->o[1] & 0x40) {
  9150. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9151. return 0;
  9152. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9153. return 0;
  9154. if (!ASN1Dec_VoiceCaps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9155. return 0;
  9156. ASN1_CloseDecoder(dd);
  9157. }
  9158. for (i = 0; i < e; i++) {
  9159. if (!ASN1PERDecSkipFragmented(dec, 8))
  9160. return 0;
  9161. }
  9162. }
  9163. return 1;
  9164. }
  9165. static void ASN1CALL ASN1Free_VoiceCaps(VoiceCaps *val)
  9166. {
  9167. if (val) {
  9168. if ((val)->o[0] & 0x80) {
  9169. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9170. }
  9171. if ((val)->o[1] & 0x80) {
  9172. ASN1Free_VoiceCaps_dataRatesSupported(&(val)->dataRatesSupported);
  9173. }
  9174. if ((val)->o[1] & 0x40) {
  9175. ASN1Free_VoiceCaps_supportedPrefixes(&(val)->supportedPrefixes);
  9176. }
  9177. }
  9178. }
  9179. static int ASN1CALL ASN1Enc_T120OnlyCaps(ASN1encoding_t enc, T120OnlyCaps *val)
  9180. {
  9181. ASN1octet_t o[2];
  9182. ASN1uint32_t y;
  9183. ASN1encoding_t ee;
  9184. CopyMemory(o, (val)->o, 2);
  9185. o[1] |= 0x40;
  9186. y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
  9187. if (!ASN1PEREncBitVal(enc, 1, y))
  9188. return 0;
  9189. if (!ASN1PEREncBits(enc, 1, o))
  9190. return 0;
  9191. if (o[0] & 0x80) {
  9192. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9193. return 0;
  9194. }
  9195. if (y) {
  9196. if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
  9197. return 0;
  9198. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9199. return 0;
  9200. if (o[1] & 0x80) {
  9201. if (!ASN1Enc_T120OnlyCaps_dataRatesSupported(ee, &(val)->dataRatesSupported))
  9202. return 0;
  9203. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9204. return 0;
  9205. }
  9206. if (o[1] & 0x40) {
  9207. if (!ASN1Enc_T120OnlyCaps_supportedPrefixes(ee, &(val)->supportedPrefixes))
  9208. return 0;
  9209. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9210. return 0;
  9211. }
  9212. ASN1_CloseEncoder2(ee);
  9213. }
  9214. return 1;
  9215. }
  9216. static int ASN1CALL ASN1Dec_T120OnlyCaps(ASN1decoding_t dec, T120OnlyCaps *val)
  9217. {
  9218. ASN1uint32_t y;
  9219. ASN1decoding_t dd;
  9220. ASN1octet_t *db;
  9221. ASN1uint32_t ds;
  9222. ASN1uint32_t i;
  9223. ASN1uint32_t e;
  9224. if (!ASN1PERDecExtensionBit(dec, &y))
  9225. return 0;
  9226. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9227. return 0;
  9228. if ((val)->o[0] & 0x80) {
  9229. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9230. return 0;
  9231. }
  9232. if (!y) {
  9233. ZeroMemory((val)->o + 1, 1);
  9234. } else {
  9235. if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
  9236. return 0;
  9237. if ((val)->o[1] & 0x80) {
  9238. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9239. return 0;
  9240. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9241. return 0;
  9242. if (!ASN1Dec_T120OnlyCaps_dataRatesSupported(dd, &(val)->dataRatesSupported))
  9243. return 0;
  9244. ASN1_CloseDecoder(dd);
  9245. }
  9246. if ((val)->o[1] & 0x40) {
  9247. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9248. return 0;
  9249. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9250. return 0;
  9251. if (!ASN1Dec_T120OnlyCaps_supportedPrefixes(dd, &(val)->supportedPrefixes))
  9252. return 0;
  9253. ASN1_CloseDecoder(dd);
  9254. }
  9255. for (i = 0; i < e; i++) {
  9256. if (!ASN1PERDecSkipFragmented(dec, 8))
  9257. return 0;
  9258. }
  9259. }
  9260. return 1;
  9261. }
  9262. static void ASN1CALL ASN1Free_T120OnlyCaps(T120OnlyCaps *val)
  9263. {
  9264. if (val) {
  9265. if ((val)->o[0] & 0x80) {
  9266. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9267. }
  9268. if ((val)->o[1] & 0x80) {
  9269. ASN1Free_T120OnlyCaps_dataRatesSupported(&(val)->dataRatesSupported);
  9270. }
  9271. if ((val)->o[1] & 0x40) {
  9272. ASN1Free_T120OnlyCaps_supportedPrefixes(&(val)->supportedPrefixes);
  9273. }
  9274. }
  9275. }
  9276. static int ASN1CALL ASN1Enc_NonStandardProtocol(ASN1encoding_t enc, NonStandardProtocol *val)
  9277. {
  9278. if (!ASN1PEREncExtensionBitClear(enc))
  9279. return 0;
  9280. if (!ASN1PEREncBits(enc, 2, (val)->o))
  9281. return 0;
  9282. if ((val)->o[0] & 0x80) {
  9283. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9284. return 0;
  9285. }
  9286. if ((val)->o[0] & 0x40) {
  9287. if (!ASN1Enc_NonStandardProtocol_dataRatesSupported(enc, &(val)->dataRatesSupported))
  9288. return 0;
  9289. }
  9290. if (!ASN1Enc_NonStandardProtocol_supportedPrefixes(enc, &(val)->supportedPrefixes))
  9291. return 0;
  9292. return 1;
  9293. }
  9294. static int ASN1CALL ASN1Dec_NonStandardProtocol(ASN1decoding_t dec, NonStandardProtocol *val)
  9295. {
  9296. ASN1uint32_t y;
  9297. if (!ASN1PERDecExtensionBit(dec, &y))
  9298. return 0;
  9299. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  9300. return 0;
  9301. if ((val)->o[0] & 0x80) {
  9302. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9303. return 0;
  9304. }
  9305. if ((val)->o[0] & 0x40) {
  9306. if (!ASN1Dec_NonStandardProtocol_dataRatesSupported(dec, &(val)->dataRatesSupported))
  9307. return 0;
  9308. }
  9309. if (!ASN1Dec_NonStandardProtocol_supportedPrefixes(dec, &(val)->supportedPrefixes))
  9310. return 0;
  9311. if (y) {
  9312. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9313. return 0;
  9314. }
  9315. return 1;
  9316. }
  9317. static void ASN1CALL ASN1Free_NonStandardProtocol(NonStandardProtocol *val)
  9318. {
  9319. if (val) {
  9320. if ((val)->o[0] & 0x80) {
  9321. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9322. }
  9323. if ((val)->o[0] & 0x40) {
  9324. ASN1Free_NonStandardProtocol_dataRatesSupported(&(val)->dataRatesSupported);
  9325. }
  9326. ASN1Free_NonStandardProtocol_supportedPrefixes(&(val)->supportedPrefixes);
  9327. }
  9328. }
  9329. static int ASN1CALL ASN1Enc_McuInfo(ASN1encoding_t enc, McuInfo *val)
  9330. {
  9331. if (!ASN1PEREncExtensionBitClear(enc))
  9332. return 0;
  9333. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9334. return 0;
  9335. if ((val)->o[0] & 0x80) {
  9336. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9337. return 0;
  9338. }
  9339. return 1;
  9340. }
  9341. static int ASN1CALL ASN1Dec_McuInfo(ASN1decoding_t dec, McuInfo *val)
  9342. {
  9343. ASN1uint32_t y;
  9344. if (!ASN1PERDecExtensionBit(dec, &y))
  9345. return 0;
  9346. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9347. return 0;
  9348. if ((val)->o[0] & 0x80) {
  9349. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9350. return 0;
  9351. }
  9352. if (y) {
  9353. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9354. return 0;
  9355. }
  9356. return 1;
  9357. }
  9358. static void ASN1CALL ASN1Free_McuInfo(McuInfo *val)
  9359. {
  9360. if (val) {
  9361. if ((val)->o[0] & 0x80) {
  9362. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9363. }
  9364. }
  9365. }
  9366. static int ASN1CALL ASN1Enc_TerminalInfo(ASN1encoding_t enc, TerminalInfo *val)
  9367. {
  9368. if (!ASN1PEREncExtensionBitClear(enc))
  9369. return 0;
  9370. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9371. return 0;
  9372. if ((val)->o[0] & 0x80) {
  9373. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9374. return 0;
  9375. }
  9376. return 1;
  9377. }
  9378. static int ASN1CALL ASN1Dec_TerminalInfo(ASN1decoding_t dec, TerminalInfo *val)
  9379. {
  9380. ASN1uint32_t y;
  9381. if (!ASN1PERDecExtensionBit(dec, &y))
  9382. return 0;
  9383. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9384. return 0;
  9385. if ((val)->o[0] & 0x80) {
  9386. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9387. return 0;
  9388. }
  9389. if (y) {
  9390. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9391. return 0;
  9392. }
  9393. return 1;
  9394. }
  9395. static void ASN1CALL ASN1Free_TerminalInfo(TerminalInfo *val)
  9396. {
  9397. if (val) {
  9398. if ((val)->o[0] & 0x80) {
  9399. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9400. }
  9401. }
  9402. }
  9403. static int ASN1CALL ASN1Enc_GatekeeperInfo(ASN1encoding_t enc, GatekeeperInfo *val)
  9404. {
  9405. if (!ASN1PEREncExtensionBitClear(enc))
  9406. return 0;
  9407. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9408. return 0;
  9409. if ((val)->o[0] & 0x80) {
  9410. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9411. return 0;
  9412. }
  9413. return 1;
  9414. }
  9415. static int ASN1CALL ASN1Dec_GatekeeperInfo(ASN1decoding_t dec, GatekeeperInfo *val)
  9416. {
  9417. ASN1uint32_t y;
  9418. if (!ASN1PERDecExtensionBit(dec, &y))
  9419. return 0;
  9420. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9421. return 0;
  9422. if ((val)->o[0] & 0x80) {
  9423. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9424. return 0;
  9425. }
  9426. if (y) {
  9427. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9428. return 0;
  9429. }
  9430. return 1;
  9431. }
  9432. static void ASN1CALL ASN1Free_GatekeeperInfo(GatekeeperInfo *val)
  9433. {
  9434. if (val) {
  9435. if ((val)->o[0] & 0x80) {
  9436. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9437. }
  9438. }
  9439. }
  9440. static ASN1stringtableentry_t PartyNumber_dataPartyNumber_StringTableEntries[] = {
  9441. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  9442. { 48, 57, 3 },
  9443. };
  9444. static ASN1stringtable_t PartyNumber_dataPartyNumber_StringTable = {
  9445. 4, PartyNumber_dataPartyNumber_StringTableEntries
  9446. };
  9447. static ASN1stringtableentry_t PartyNumber_telexPartyNumber_StringTableEntries[] = {
  9448. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  9449. { 48, 57, 3 },
  9450. };
  9451. static ASN1stringtable_t PartyNumber_telexPartyNumber_StringTable = {
  9452. 4, PartyNumber_telexPartyNumber_StringTableEntries
  9453. };
  9454. static ASN1stringtableentry_t PartyNumber_nationalStandardPartyNumber_StringTableEntries[] = {
  9455. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  9456. { 48, 57, 3 },
  9457. };
  9458. static ASN1stringtable_t PartyNumber_nationalStandardPartyNumber_StringTable = {
  9459. 4, PartyNumber_nationalStandardPartyNumber_StringTableEntries
  9460. };
  9461. static int ASN1CALL ASN1Enc_PartyNumber(ASN1encoding_t enc, PartyNumber *val)
  9462. {
  9463. ASN1uint32_t t;
  9464. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  9465. return 0;
  9466. switch ((val)->choice) {
  9467. case 1:
  9468. if (!ASN1Enc_PublicPartyNumber(enc, &(val)->u.publicNumber))
  9469. return 0;
  9470. break;
  9471. case 2:
  9472. t = lstrlenA((val)->u.dataPartyNumber);
  9473. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  9474. return 0;
  9475. ASN1PEREncAlignment(enc);
  9476. if (!ASN1PEREncTableCharString(enc, t, (val)->u.dataPartyNumber, 4, &PartyNumber_dataPartyNumber_StringTable))
  9477. return 0;
  9478. break;
  9479. case 3:
  9480. t = lstrlenA((val)->u.telexPartyNumber);
  9481. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  9482. return 0;
  9483. ASN1PEREncAlignment(enc);
  9484. if (!ASN1PEREncTableCharString(enc, t, (val)->u.telexPartyNumber, 4, &PartyNumber_telexPartyNumber_StringTable))
  9485. return 0;
  9486. break;
  9487. case 4:
  9488. if (!ASN1Enc_PrivatePartyNumber(enc, &(val)->u.privateNumber))
  9489. return 0;
  9490. break;
  9491. case 5:
  9492. t = lstrlenA((val)->u.nationalStandardPartyNumber);
  9493. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  9494. return 0;
  9495. ASN1PEREncAlignment(enc);
  9496. if (!ASN1PEREncTableCharString(enc, t, (val)->u.nationalStandardPartyNumber, 4, &PartyNumber_nationalStandardPartyNumber_StringTable))
  9497. return 0;
  9498. break;
  9499. default:
  9500. /* impossible */
  9501. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  9502. return 0;
  9503. }
  9504. return 1;
  9505. }
  9506. static int ASN1CALL ASN1Dec_PartyNumber(ASN1decoding_t dec, PartyNumber *val)
  9507. {
  9508. ASN1uint32_t l;
  9509. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  9510. return 0;
  9511. switch ((val)->choice) {
  9512. case 1:
  9513. if (!ASN1Dec_PublicPartyNumber(dec, &(val)->u.publicNumber))
  9514. return 0;
  9515. break;
  9516. case 2:
  9517. if (!ASN1PERDecU32Val(dec, 7, &l))
  9518. return 0;
  9519. l += 1;
  9520. ASN1PERDecAlignment(dec);
  9521. //NikhilB: Fix for the overflow bug 03/02/27
  9522. if ( l >= sizeof((val)->u.dataPartyNumber) ) {
  9523. ASN1DecSetError(dec, ASN1_ERR_LARGE);
  9524. return 0;
  9525. }
  9526. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.dataPartyNumber, 4, &PartyNumber_dataPartyNumber_StringTable))
  9527. return 0;
  9528. break;
  9529. case 3:
  9530. if (!ASN1PERDecU32Val(dec, 7, &l))
  9531. return 0;
  9532. l += 1;
  9533. ASN1PERDecAlignment(dec);
  9534. //NikhilB: Fix for the overflow bug 03/02/27
  9535. if ( l >= sizeof((val)->u.telexPartyNumber) ) {
  9536. ASN1DecSetError(dec, ASN1_ERR_LARGE);
  9537. return 0;
  9538. }
  9539. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.telexPartyNumber, 4, &PartyNumber_telexPartyNumber_StringTable))
  9540. return 0;
  9541. break;
  9542. case 4:
  9543. if (!ASN1Dec_PrivatePartyNumber(dec, &(val)->u.privateNumber))
  9544. return 0;
  9545. break;
  9546. case 5:
  9547. if (!ASN1PERDecU32Val(dec, 7, &l))
  9548. return 0;
  9549. l += 1;
  9550. ASN1PERDecAlignment(dec);
  9551. //NikhilB: Fix for the overflow bug 03/02/27
  9552. if ( l >= sizeof((val)->u.nationalStandardPartyNumber) ) {
  9553. ASN1DecSetError(dec, ASN1_ERR_LARGE);
  9554. return 0;
  9555. }
  9556. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.nationalStandardPartyNumber, 4, &PartyNumber_nationalStandardPartyNumber_StringTable))
  9557. return 0;
  9558. break;
  9559. case 0:
  9560. /* extension case */
  9561. if (!ASN1PERDecSkipFragmented(dec, 8))
  9562. return 0;
  9563. break;
  9564. default:
  9565. /* impossible */
  9566. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  9567. return 0;
  9568. }
  9569. return 1;
  9570. }
  9571. static void ASN1CALL ASN1Free_PartyNumber(PartyNumber *val)
  9572. {
  9573. if (val) {
  9574. switch ((val)->choice) {
  9575. case 1:
  9576. ASN1Free_PublicPartyNumber(&(val)->u.publicNumber);
  9577. break;
  9578. case 2:
  9579. break;
  9580. case 3:
  9581. break;
  9582. case 4:
  9583. ASN1Free_PrivatePartyNumber(&(val)->u.privateNumber);
  9584. break;
  9585. case 5:
  9586. break;
  9587. }
  9588. }
  9589. }
  9590. static int ASN1CALL ASN1Enc_AlternateGK(ASN1encoding_t enc, AlternateGK *val)
  9591. {
  9592. if (!ASN1PEREncExtensionBitClear(enc))
  9593. return 0;
  9594. if (!ASN1PEREncBits(enc, 1, (val)->o))
  9595. return 0;
  9596. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  9597. return 0;
  9598. if ((val)->o[0] & 0x80) {
  9599. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  9600. return 0;
  9601. ASN1PEREncAlignment(enc);
  9602. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  9603. return 0;
  9604. }
  9605. if (!ASN1PEREncBoolean(enc, (val)->needToRegister))
  9606. return 0;
  9607. if (!ASN1PEREncBitVal(enc, 7, (val)->priority))
  9608. return 0;
  9609. return 1;
  9610. }
  9611. static int ASN1CALL ASN1Dec_AlternateGK(ASN1decoding_t dec, AlternateGK *val)
  9612. {
  9613. ASN1uint32_t y;
  9614. if (!ASN1PERDecExtensionBit(dec, &y))
  9615. return 0;
  9616. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  9617. return 0;
  9618. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  9619. return 0;
  9620. if ((val)->o[0] & 0x80) {
  9621. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  9622. return 0;
  9623. ((val)->gatekeeperIdentifier).length += 1;
  9624. ASN1PERDecAlignment(dec);
  9625. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  9626. return 0;
  9627. }
  9628. if (!ASN1PERDecBoolean(dec, &(val)->needToRegister))
  9629. return 0;
  9630. if (!ASN1PERDecU16Val(dec, 7, &(val)->priority))
  9631. return 0;
  9632. if (y) {
  9633. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  9634. return 0;
  9635. }
  9636. return 1;
  9637. }
  9638. static void ASN1CALL ASN1Free_AlternateGK(AlternateGK *val)
  9639. {
  9640. if (val) {
  9641. ASN1Free_TransportAddress(&(val)->rasAddress);
  9642. if ((val)->o[0] & 0x80) {
  9643. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  9644. }
  9645. }
  9646. }
  9647. static int ASN1CALL ASN1Enc_GatekeeperConfirm(ASN1encoding_t enc, GatekeeperConfirm *val)
  9648. {
  9649. ASN1uint32_t y;
  9650. ASN1encoding_t ee;
  9651. y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
  9652. if (!ASN1PEREncBitVal(enc, 1, y))
  9653. return 0;
  9654. if (!ASN1PEREncBits(enc, 2, (val)->o))
  9655. return 0;
  9656. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  9657. return 0;
  9658. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  9659. return 0;
  9660. if ((val)->o[0] & 0x80) {
  9661. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9662. return 0;
  9663. }
  9664. if ((val)->o[0] & 0x40) {
  9665. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  9666. return 0;
  9667. ASN1PEREncAlignment(enc);
  9668. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  9669. return 0;
  9670. }
  9671. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  9672. return 0;
  9673. if (y) {
  9674. if (!ASN1PEREncNormallySmallBits(enc, 7, (val)->o + 1))
  9675. return 0;
  9676. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9677. return 0;
  9678. if ((val)->o[1] & 0x80) {
  9679. if (!ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ee, &(val)->alternateGatekeeper))
  9680. return 0;
  9681. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9682. return 0;
  9683. }
  9684. if ((val)->o[1] & 0x40) {
  9685. if (!ASN1Enc_AuthenticationMechanism(ee, &(val)->authenticationMode))
  9686. return 0;
  9687. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9688. return 0;
  9689. }
  9690. if ((val)->o[1] & 0x20) {
  9691. if (!ASN1Enc_GatekeeperConfirm_tokens(ee, &(val)->tokens))
  9692. return 0;
  9693. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9694. return 0;
  9695. }
  9696. if ((val)->o[1] & 0x10) {
  9697. if (!ASN1Enc_GatekeeperConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  9698. return 0;
  9699. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9700. return 0;
  9701. }
  9702. if ((val)->o[1] & 0x8) {
  9703. if (!ASN1PEREncObjectIdentifier(ee, &(val)->algorithmOID))
  9704. return 0;
  9705. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9706. return 0;
  9707. }
  9708. if ((val)->o[1] & 0x4) {
  9709. if (!ASN1Enc_GatekeeperConfirm_integrity(ee, &(val)->integrity))
  9710. return 0;
  9711. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9712. return 0;
  9713. }
  9714. if ((val)->o[1] & 0x2) {
  9715. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  9716. return 0;
  9717. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9718. return 0;
  9719. }
  9720. ASN1_CloseEncoder2(ee);
  9721. }
  9722. return 1;
  9723. }
  9724. static int ASN1CALL ASN1Dec_GatekeeperConfirm(ASN1decoding_t dec, GatekeeperConfirm *val)
  9725. {
  9726. ASN1uint32_t y;
  9727. ASN1decoding_t dd;
  9728. ASN1octet_t *db;
  9729. ASN1uint32_t ds;
  9730. ASN1uint32_t i;
  9731. ASN1uint32_t e;
  9732. if (!ASN1PERDecExtensionBit(dec, &y))
  9733. return 0;
  9734. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  9735. return 0;
  9736. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  9737. return 0;
  9738. (val)->requestSeqNum += 1;
  9739. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  9740. return 0;
  9741. if ((val)->o[0] & 0x80) {
  9742. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  9743. return 0;
  9744. }
  9745. if ((val)->o[0] & 0x40) {
  9746. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  9747. return 0;
  9748. ((val)->gatekeeperIdentifier).length += 1;
  9749. ASN1PERDecAlignment(dec);
  9750. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  9751. return 0;
  9752. }
  9753. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  9754. return 0;
  9755. if (!y) {
  9756. ZeroMemory((val)->o + 1, 1);
  9757. } else {
  9758. if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
  9759. return 0;
  9760. if ((val)->o[1] & 0x80) {
  9761. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9762. return 0;
  9763. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9764. return 0;
  9765. if (!ASN1Dec_GatekeeperConfirm_alternateGatekeeper(dd, &(val)->alternateGatekeeper))
  9766. return 0;
  9767. ASN1_CloseDecoder(dd);
  9768. }
  9769. if ((val)->o[1] & 0x40) {
  9770. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9771. return 0;
  9772. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9773. return 0;
  9774. if (!ASN1Dec_AuthenticationMechanism(dd, &(val)->authenticationMode))
  9775. return 0;
  9776. ASN1_CloseDecoder(dd);
  9777. }
  9778. if ((val)->o[1] & 0x20) {
  9779. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9780. return 0;
  9781. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9782. return 0;
  9783. if (!ASN1Dec_GatekeeperConfirm_tokens(dd, &(val)->tokens))
  9784. return 0;
  9785. ASN1_CloseDecoder(dd);
  9786. }
  9787. if ((val)->o[1] & 0x10) {
  9788. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9789. return 0;
  9790. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9791. return 0;
  9792. if (!ASN1Dec_GatekeeperConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  9793. return 0;
  9794. ASN1_CloseDecoder(dd);
  9795. }
  9796. if ((val)->o[1] & 0x8) {
  9797. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9798. return 0;
  9799. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9800. return 0;
  9801. if (!ASN1PERDecObjectIdentifier(dd, &(val)->algorithmOID))
  9802. return 0;
  9803. ASN1_CloseDecoder(dd);
  9804. }
  9805. if ((val)->o[1] & 0x4) {
  9806. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9807. return 0;
  9808. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9809. return 0;
  9810. if (!ASN1Dec_GatekeeperConfirm_integrity(dd, &(val)->integrity))
  9811. return 0;
  9812. ASN1_CloseDecoder(dd);
  9813. }
  9814. if ((val)->o[1] & 0x2) {
  9815. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  9816. return 0;
  9817. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  9818. return 0;
  9819. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  9820. return 0;
  9821. ASN1_CloseDecoder(dd);
  9822. }
  9823. for (i = 0; i < e; i++) {
  9824. if (!ASN1PERDecSkipFragmented(dec, 8))
  9825. return 0;
  9826. }
  9827. }
  9828. return 1;
  9829. }
  9830. static void ASN1CALL ASN1Free_GatekeeperConfirm(GatekeeperConfirm *val)
  9831. {
  9832. if (val) {
  9833. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  9834. if ((val)->o[0] & 0x80) {
  9835. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  9836. }
  9837. if ((val)->o[0] & 0x40) {
  9838. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  9839. }
  9840. ASN1Free_TransportAddress(&(val)->rasAddress);
  9841. if ((val)->o[1] & 0x80) {
  9842. ASN1Free_GatekeeperConfirm_alternateGatekeeper(&(val)->alternateGatekeeper);
  9843. }
  9844. if ((val)->o[1] & 0x40) {
  9845. ASN1Free_AuthenticationMechanism(&(val)->authenticationMode);
  9846. }
  9847. if ((val)->o[1] & 0x20) {
  9848. ASN1Free_GatekeeperConfirm_tokens(&(val)->tokens);
  9849. }
  9850. if ((val)->o[1] & 0x10) {
  9851. ASN1Free_GatekeeperConfirm_cryptoTokens(&(val)->cryptoTokens);
  9852. }
  9853. if ((val)->o[1] & 0x8) {
  9854. ASN1objectidentifier_free(&(val)->algorithmOID);
  9855. }
  9856. if ((val)->o[1] & 0x4) {
  9857. ASN1Free_GatekeeperConfirm_integrity(&(val)->integrity);
  9858. }
  9859. if ((val)->o[1] & 0x2) {
  9860. ASN1Free_ICV(&(val)->integrityCheckValue);
  9861. }
  9862. }
  9863. }
  9864. static int ASN1CALL ASN1Enc_AdmissionRequest(ASN1encoding_t enc, AdmissionRequest *val)
  9865. {
  9866. ASN1octet_t o[3];
  9867. ASN1uint32_t y;
  9868. ASN1uint32_t l;
  9869. ASN1encoding_t ee;
  9870. CopyMemory(o, (val)->o, 3);
  9871. o[1] |= 0x80;
  9872. o[1] |= 0x40;
  9873. o[2] |= 0x40;
  9874. y = ASN1PEREncCheckExtensions(10, (val)->o + 1);
  9875. if (!ASN1PEREncBitVal(enc, 1, y))
  9876. return 0;
  9877. if (!ASN1PEREncBits(enc, 7, o))
  9878. return 0;
  9879. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  9880. return 0;
  9881. if (!ASN1Enc_CallType(enc, &(val)->callType))
  9882. return 0;
  9883. if (o[0] & 0x80) {
  9884. if (!ASN1Enc_CallModel(enc, &(val)->callModel))
  9885. return 0;
  9886. }
  9887. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  9888. return 0;
  9889. ASN1PEREncAlignment(enc);
  9890. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  9891. return 0;
  9892. if (o[0] & 0x40) {
  9893. if (!ASN1Enc_AdmissionRequest_destinationInfo(enc, &(val)->destinationInfo))
  9894. return 0;
  9895. }
  9896. if (o[0] & 0x20) {
  9897. if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
  9898. return 0;
  9899. }
  9900. if (o[0] & 0x10) {
  9901. if (!ASN1Enc_AdmissionRequest_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
  9902. return 0;
  9903. }
  9904. if (!ASN1Enc_AdmissionRequest_srcInfo(enc, &(val)->srcInfo))
  9905. return 0;
  9906. if (o[0] & 0x8) {
  9907. if (!ASN1Enc_TransportAddress(enc, &(val)->srcCallSignalAddress))
  9908. return 0;
  9909. }
  9910. l = ASN1uint32_uoctets((val)->bandWidth);
  9911. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  9912. return 0;
  9913. ASN1PEREncAlignment(enc);
  9914. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  9915. return 0;
  9916. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  9917. return 0;
  9918. if (o[0] & 0x4) {
  9919. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  9920. return 0;
  9921. }
  9922. if (o[0] & 0x2) {
  9923. if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
  9924. return 0;
  9925. }
  9926. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  9927. return 0;
  9928. if (!ASN1PEREncBoolean(enc, (val)->activeMC))
  9929. return 0;
  9930. if (!ASN1PEREncBoolean(enc, (val)->answerCall))
  9931. return 0;
  9932. if (y) {
  9933. if (!ASN1PEREncNormallySmallBits(enc, 10, o + 1))
  9934. return 0;
  9935. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  9936. return 0;
  9937. if (o[1] & 0x80) {
  9938. if (!ASN1PEREncBoolean(ee, (val)->canMapAlias))
  9939. return 0;
  9940. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9941. return 0;
  9942. }
  9943. if (o[1] & 0x40) {
  9944. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  9945. return 0;
  9946. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9947. return 0;
  9948. }
  9949. if (o[1] & 0x20) {
  9950. if (!ASN1Enc_AdmissionRequest_srcAlternatives(ee, &(val)->srcAlternatives))
  9951. return 0;
  9952. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9953. return 0;
  9954. }
  9955. if (o[1] & 0x10) {
  9956. if (!ASN1Enc_AdmissionRequest_destAlternatives(ee, &(val)->destAlternatives))
  9957. return 0;
  9958. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9959. return 0;
  9960. }
  9961. if (o[1] & 0x8) {
  9962. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  9963. return 0;
  9964. ASN1PEREncAlignment(ee);
  9965. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  9966. return 0;
  9967. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9968. return 0;
  9969. }
  9970. if (o[1] & 0x4) {
  9971. if (!ASN1Enc_AdmissionRequest_tokens(ee, &(val)->tokens))
  9972. return 0;
  9973. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9974. return 0;
  9975. }
  9976. if (o[1] & 0x2) {
  9977. if (!ASN1Enc_AdmissionRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  9978. return 0;
  9979. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9980. return 0;
  9981. }
  9982. if (o[1] & 0x1) {
  9983. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  9984. return 0;
  9985. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9986. return 0;
  9987. }
  9988. if (o[2] & 0x80) {
  9989. if (!ASN1Enc_TransportQOS(ee, &(val)->transportQOS))
  9990. return 0;
  9991. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9992. return 0;
  9993. }
  9994. if (o[2] & 0x40) {
  9995. if (!ASN1PEREncBoolean(ee, (val)->willSupplyUUIEs))
  9996. return 0;
  9997. if (!ASN1PEREncFlushFragmentedToParent(ee))
  9998. return 0;
  9999. }
  10000. ASN1_CloseEncoder2(ee);
  10001. }
  10002. return 1;
  10003. }
  10004. static int ASN1CALL ASN1Dec_AdmissionRequest(ASN1decoding_t dec, AdmissionRequest *val)
  10005. {
  10006. ASN1uint32_t y;
  10007. ASN1uint32_t l;
  10008. ASN1decoding_t dd;
  10009. ASN1octet_t *db;
  10010. ASN1uint32_t ds;
  10011. ASN1uint32_t i;
  10012. ASN1uint32_t e;
  10013. if (!ASN1PERDecExtensionBit(dec, &y))
  10014. return 0;
  10015. if (!ASN1PERDecExtension(dec, 7, (val)->o))
  10016. return 0;
  10017. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  10018. return 0;
  10019. (val)->requestSeqNum += 1;
  10020. if (!ASN1Dec_CallType(dec, &(val)->callType))
  10021. return 0;
  10022. if ((val)->o[0] & 0x80) {
  10023. if (!ASN1Dec_CallModel(dec, &(val)->callModel))
  10024. return 0;
  10025. }
  10026. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  10027. return 0;
  10028. ((val)->endpointIdentifier).length += 1;
  10029. ASN1PERDecAlignment(dec);
  10030. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  10031. return 0;
  10032. if ((val)->o[0] & 0x40) {
  10033. if (!ASN1Dec_AdmissionRequest_destinationInfo(dec, &(val)->destinationInfo))
  10034. return 0;
  10035. }
  10036. if ((val)->o[0] & 0x20) {
  10037. if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
  10038. return 0;
  10039. }
  10040. if ((val)->o[0] & 0x10) {
  10041. if (!ASN1Dec_AdmissionRequest_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
  10042. return 0;
  10043. }
  10044. if (!ASN1Dec_AdmissionRequest_srcInfo(dec, &(val)->srcInfo))
  10045. return 0;
  10046. if ((val)->o[0] & 0x8) {
  10047. if (!ASN1Dec_TransportAddress(dec, &(val)->srcCallSignalAddress))
  10048. return 0;
  10049. }
  10050. if (!ASN1PERDecU32Val(dec, 2, &l))
  10051. return 0;
  10052. l += 1;
  10053. ASN1PERDecAlignment(dec);
  10054. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  10055. return 0;
  10056. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  10057. return 0;
  10058. if ((val)->o[0] & 0x4) {
  10059. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10060. return 0;
  10061. }
  10062. if ((val)->o[0] & 0x2) {
  10063. if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
  10064. return 0;
  10065. }
  10066. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  10067. return 0;
  10068. if (!ASN1PERDecBoolean(dec, &(val)->activeMC))
  10069. return 0;
  10070. if (!ASN1PERDecBoolean(dec, &(val)->answerCall))
  10071. return 0;
  10072. if (!y) {
  10073. ZeroMemory((val)->o + 1, 2);
  10074. } else {
  10075. if (!ASN1PERDecNormallySmallExtension(dec, &e, 10, (val)->o + 1))
  10076. return 0;
  10077. if ((val)->o[1] & 0x80) {
  10078. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10079. return 0;
  10080. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10081. return 0;
  10082. if (!ASN1PERDecBoolean(dd, &(val)->canMapAlias))
  10083. return 0;
  10084. ASN1_CloseDecoder(dd);
  10085. }
  10086. if ((val)->o[1] & 0x40) {
  10087. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10088. return 0;
  10089. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10090. return 0;
  10091. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  10092. return 0;
  10093. ASN1_CloseDecoder(dd);
  10094. }
  10095. if ((val)->o[1] & 0x20) {
  10096. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10097. return 0;
  10098. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10099. return 0;
  10100. if (!ASN1Dec_AdmissionRequest_srcAlternatives(dd, &(val)->srcAlternatives))
  10101. return 0;
  10102. ASN1_CloseDecoder(dd);
  10103. }
  10104. if ((val)->o[1] & 0x10) {
  10105. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10106. return 0;
  10107. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10108. return 0;
  10109. if (!ASN1Dec_AdmissionRequest_destAlternatives(dd, &(val)->destAlternatives))
  10110. return 0;
  10111. ASN1_CloseDecoder(dd);
  10112. }
  10113. if ((val)->o[1] & 0x8) {
  10114. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10115. return 0;
  10116. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10117. return 0;
  10118. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  10119. return 0;
  10120. ((val)->gatekeeperIdentifier).length += 1;
  10121. ASN1PERDecAlignment(dd);
  10122. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  10123. return 0;
  10124. ASN1_CloseDecoder(dd);
  10125. }
  10126. if ((val)->o[1] & 0x4) {
  10127. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10128. return 0;
  10129. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10130. return 0;
  10131. if (!ASN1Dec_AdmissionRequest_tokens(dd, &(val)->tokens))
  10132. return 0;
  10133. ASN1_CloseDecoder(dd);
  10134. }
  10135. if ((val)->o[1] & 0x2) {
  10136. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10137. return 0;
  10138. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10139. return 0;
  10140. if (!ASN1Dec_AdmissionRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  10141. return 0;
  10142. ASN1_CloseDecoder(dd);
  10143. }
  10144. if ((val)->o[1] & 0x1) {
  10145. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10146. return 0;
  10147. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10148. return 0;
  10149. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  10150. return 0;
  10151. ASN1_CloseDecoder(dd);
  10152. }
  10153. if ((val)->o[2] & 0x80) {
  10154. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10155. return 0;
  10156. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10157. return 0;
  10158. if (!ASN1Dec_TransportQOS(dd, &(val)->transportQOS))
  10159. return 0;
  10160. ASN1_CloseDecoder(dd);
  10161. }
  10162. if ((val)->o[2] & 0x40) {
  10163. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10164. return 0;
  10165. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10166. return 0;
  10167. if (!ASN1PERDecBoolean(dd, &(val)->willSupplyUUIEs))
  10168. return 0;
  10169. ASN1_CloseDecoder(dd);
  10170. }
  10171. for (i = 0; i < e; i++) {
  10172. if (!ASN1PERDecSkipFragmented(dec, 8))
  10173. return 0;
  10174. }
  10175. }
  10176. return 1;
  10177. }
  10178. static void ASN1CALL ASN1Free_AdmissionRequest(AdmissionRequest *val)
  10179. {
  10180. if (val) {
  10181. ASN1char16string_free(&(val)->endpointIdentifier);
  10182. if ((val)->o[0] & 0x40) {
  10183. ASN1Free_AdmissionRequest_destinationInfo(&(val)->destinationInfo);
  10184. }
  10185. if ((val)->o[0] & 0x20) {
  10186. ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
  10187. }
  10188. if ((val)->o[0] & 0x10) {
  10189. ASN1Free_AdmissionRequest_destExtraCallInfo(&(val)->destExtraCallInfo);
  10190. }
  10191. ASN1Free_AdmissionRequest_srcInfo(&(val)->srcInfo);
  10192. if ((val)->o[0] & 0x8) {
  10193. ASN1Free_TransportAddress(&(val)->srcCallSignalAddress);
  10194. }
  10195. if ((val)->o[0] & 0x4) {
  10196. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  10197. }
  10198. if ((val)->o[1] & 0x40) {
  10199. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  10200. }
  10201. if ((val)->o[1] & 0x20) {
  10202. ASN1Free_AdmissionRequest_srcAlternatives(&(val)->srcAlternatives);
  10203. }
  10204. if ((val)->o[1] & 0x10) {
  10205. ASN1Free_AdmissionRequest_destAlternatives(&(val)->destAlternatives);
  10206. }
  10207. if ((val)->o[1] & 0x8) {
  10208. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  10209. }
  10210. if ((val)->o[1] & 0x4) {
  10211. ASN1Free_AdmissionRequest_tokens(&(val)->tokens);
  10212. }
  10213. if ((val)->o[1] & 0x2) {
  10214. ASN1Free_AdmissionRequest_cryptoTokens(&(val)->cryptoTokens);
  10215. }
  10216. if ((val)->o[1] & 0x1) {
  10217. ASN1Free_ICV(&(val)->integrityCheckValue);
  10218. }
  10219. }
  10220. }
  10221. static int ASN1CALL ASN1Enc_LocationRequest(ASN1encoding_t enc, LocationRequest *val)
  10222. {
  10223. ASN1octet_t o[2];
  10224. ASN1uint32_t y;
  10225. ASN1encoding_t ee;
  10226. CopyMemory(o, (val)->o, 2);
  10227. o[1] |= 0x40;
  10228. y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
  10229. if (!ASN1PEREncBitVal(enc, 1, y))
  10230. return 0;
  10231. if (!ASN1PEREncBits(enc, 2, o))
  10232. return 0;
  10233. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  10234. return 0;
  10235. if (o[0] & 0x80) {
  10236. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  10237. return 0;
  10238. ASN1PEREncAlignment(enc);
  10239. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  10240. return 0;
  10241. }
  10242. if (!ASN1Enc_LocationRequest_destinationInfo(enc, &(val)->destinationInfo))
  10243. return 0;
  10244. if (o[0] & 0x40) {
  10245. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  10246. return 0;
  10247. }
  10248. if (!ASN1Enc_TransportAddress(enc, &(val)->replyAddress))
  10249. return 0;
  10250. if (y) {
  10251. if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
  10252. return 0;
  10253. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  10254. return 0;
  10255. if (o[1] & 0x80) {
  10256. if (!ASN1Enc_LocationRequest_sourceInfo(ee, &(val)->sourceInfo))
  10257. return 0;
  10258. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10259. return 0;
  10260. }
  10261. if (o[1] & 0x40) {
  10262. if (!ASN1PEREncBoolean(ee, (val)->canMapAlias))
  10263. return 0;
  10264. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10265. return 0;
  10266. }
  10267. if (o[1] & 0x20) {
  10268. if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
  10269. return 0;
  10270. ASN1PEREncAlignment(ee);
  10271. if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  10272. return 0;
  10273. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10274. return 0;
  10275. }
  10276. if (o[1] & 0x10) {
  10277. if (!ASN1Enc_LocationRequest_tokens(ee, &(val)->tokens))
  10278. return 0;
  10279. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10280. return 0;
  10281. }
  10282. if (o[1] & 0x8) {
  10283. if (!ASN1Enc_LocationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  10284. return 0;
  10285. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10286. return 0;
  10287. }
  10288. if (o[1] & 0x4) {
  10289. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  10290. return 0;
  10291. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10292. return 0;
  10293. }
  10294. ASN1_CloseEncoder2(ee);
  10295. }
  10296. return 1;
  10297. }
  10298. static int ASN1CALL ASN1Dec_LocationRequest(ASN1decoding_t dec, LocationRequest *val)
  10299. {
  10300. ASN1uint32_t y;
  10301. ASN1decoding_t dd;
  10302. ASN1octet_t *db;
  10303. ASN1uint32_t ds;
  10304. ASN1uint32_t i;
  10305. ASN1uint32_t e;
  10306. if (!ASN1PERDecExtensionBit(dec, &y))
  10307. return 0;
  10308. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  10309. return 0;
  10310. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  10311. return 0;
  10312. (val)->requestSeqNum += 1;
  10313. if ((val)->o[0] & 0x80) {
  10314. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  10315. return 0;
  10316. ((val)->endpointIdentifier).length += 1;
  10317. ASN1PERDecAlignment(dec);
  10318. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  10319. return 0;
  10320. }
  10321. if (!ASN1Dec_LocationRequest_destinationInfo(dec, &(val)->destinationInfo))
  10322. return 0;
  10323. if ((val)->o[0] & 0x40) {
  10324. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10325. return 0;
  10326. }
  10327. if (!ASN1Dec_TransportAddress(dec, &(val)->replyAddress))
  10328. return 0;
  10329. if (!y) {
  10330. ZeroMemory((val)->o + 1, 1);
  10331. } else {
  10332. if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
  10333. return 0;
  10334. if ((val)->o[1] & 0x80) {
  10335. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10336. return 0;
  10337. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10338. return 0;
  10339. if (!ASN1Dec_LocationRequest_sourceInfo(dd, &(val)->sourceInfo))
  10340. return 0;
  10341. ASN1_CloseDecoder(dd);
  10342. }
  10343. if ((val)->o[1] & 0x40) {
  10344. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10345. return 0;
  10346. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10347. return 0;
  10348. if (!ASN1PERDecBoolean(dd, &(val)->canMapAlias))
  10349. return 0;
  10350. ASN1_CloseDecoder(dd);
  10351. }
  10352. if ((val)->o[1] & 0x20) {
  10353. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10354. return 0;
  10355. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10356. return 0;
  10357. if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
  10358. return 0;
  10359. ((val)->gatekeeperIdentifier).length += 1;
  10360. ASN1PERDecAlignment(dd);
  10361. if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  10362. return 0;
  10363. ASN1_CloseDecoder(dd);
  10364. }
  10365. if ((val)->o[1] & 0x10) {
  10366. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10367. return 0;
  10368. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10369. return 0;
  10370. if (!ASN1Dec_LocationRequest_tokens(dd, &(val)->tokens))
  10371. return 0;
  10372. ASN1_CloseDecoder(dd);
  10373. }
  10374. if ((val)->o[1] & 0x8) {
  10375. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10376. return 0;
  10377. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10378. return 0;
  10379. if (!ASN1Dec_LocationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  10380. return 0;
  10381. ASN1_CloseDecoder(dd);
  10382. }
  10383. if ((val)->o[1] & 0x4) {
  10384. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10385. return 0;
  10386. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10387. return 0;
  10388. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  10389. return 0;
  10390. ASN1_CloseDecoder(dd);
  10391. }
  10392. for (i = 0; i < e; i++) {
  10393. if (!ASN1PERDecSkipFragmented(dec, 8))
  10394. return 0;
  10395. }
  10396. }
  10397. return 1;
  10398. }
  10399. static void ASN1CALL ASN1Free_LocationRequest(LocationRequest *val)
  10400. {
  10401. if (val) {
  10402. if ((val)->o[0] & 0x80) {
  10403. ASN1char16string_free(&(val)->endpointIdentifier);
  10404. }
  10405. ASN1Free_LocationRequest_destinationInfo(&(val)->destinationInfo);
  10406. if ((val)->o[0] & 0x40) {
  10407. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  10408. }
  10409. ASN1Free_TransportAddress(&(val)->replyAddress);
  10410. if ((val)->o[1] & 0x80) {
  10411. ASN1Free_LocationRequest_sourceInfo(&(val)->sourceInfo);
  10412. }
  10413. if ((val)->o[1] & 0x20) {
  10414. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  10415. }
  10416. if ((val)->o[1] & 0x10) {
  10417. ASN1Free_LocationRequest_tokens(&(val)->tokens);
  10418. }
  10419. if ((val)->o[1] & 0x8) {
  10420. ASN1Free_LocationRequest_cryptoTokens(&(val)->cryptoTokens);
  10421. }
  10422. if ((val)->o[1] & 0x4) {
  10423. ASN1Free_ICV(&(val)->integrityCheckValue);
  10424. }
  10425. }
  10426. }
  10427. static int ASN1CALL ASN1Enc_InfoRequest(ASN1encoding_t enc, InfoRequest *val)
  10428. {
  10429. ASN1octet_t o[2];
  10430. ASN1uint32_t y;
  10431. ASN1encoding_t ee;
  10432. CopyMemory(o, (val)->o, 2);
  10433. o[1] |= 0x80;
  10434. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  10435. if (!ASN1PEREncBitVal(enc, 1, y))
  10436. return 0;
  10437. if (!ASN1PEREncBits(enc, 2, o))
  10438. return 0;
  10439. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  10440. return 0;
  10441. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  10442. return 0;
  10443. if (o[0] & 0x80) {
  10444. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  10445. return 0;
  10446. }
  10447. if (o[0] & 0x40) {
  10448. if (!ASN1Enc_TransportAddress(enc, &(val)->replyAddress))
  10449. return 0;
  10450. }
  10451. if (y) {
  10452. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  10453. return 0;
  10454. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  10455. return 0;
  10456. if (o[1] & 0x80) {
  10457. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  10458. return 0;
  10459. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10460. return 0;
  10461. }
  10462. if (o[1] & 0x40) {
  10463. if (!ASN1Enc_InfoRequest_tokens(ee, &(val)->tokens))
  10464. return 0;
  10465. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10466. return 0;
  10467. }
  10468. if (o[1] & 0x20) {
  10469. if (!ASN1Enc_InfoRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  10470. return 0;
  10471. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10472. return 0;
  10473. }
  10474. if (o[1] & 0x10) {
  10475. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  10476. return 0;
  10477. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10478. return 0;
  10479. }
  10480. if (o[1] & 0x8) {
  10481. if (!ASN1Enc_UUIEsRequested(ee, &(val)->uuiesRequested))
  10482. return 0;
  10483. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10484. return 0;
  10485. }
  10486. ASN1_CloseEncoder2(ee);
  10487. }
  10488. return 1;
  10489. }
  10490. static int ASN1CALL ASN1Dec_InfoRequest(ASN1decoding_t dec, InfoRequest *val)
  10491. {
  10492. ASN1uint32_t y;
  10493. ASN1decoding_t dd;
  10494. ASN1octet_t *db;
  10495. ASN1uint32_t ds;
  10496. ASN1uint32_t i;
  10497. ASN1uint32_t e;
  10498. if (!ASN1PERDecExtensionBit(dec, &y))
  10499. return 0;
  10500. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  10501. return 0;
  10502. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  10503. return 0;
  10504. (val)->requestSeqNum += 1;
  10505. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  10506. return 0;
  10507. if ((val)->o[0] & 0x80) {
  10508. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10509. return 0;
  10510. }
  10511. if ((val)->o[0] & 0x40) {
  10512. if (!ASN1Dec_TransportAddress(dec, &(val)->replyAddress))
  10513. return 0;
  10514. }
  10515. if (!y) {
  10516. ZeroMemory((val)->o + 1, 1);
  10517. } else {
  10518. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  10519. return 0;
  10520. if ((val)->o[1] & 0x80) {
  10521. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10522. return 0;
  10523. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10524. return 0;
  10525. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  10526. return 0;
  10527. ASN1_CloseDecoder(dd);
  10528. }
  10529. if ((val)->o[1] & 0x40) {
  10530. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10531. return 0;
  10532. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10533. return 0;
  10534. if (!ASN1Dec_InfoRequest_tokens(dd, &(val)->tokens))
  10535. return 0;
  10536. ASN1_CloseDecoder(dd);
  10537. }
  10538. if ((val)->o[1] & 0x20) {
  10539. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10540. return 0;
  10541. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10542. return 0;
  10543. if (!ASN1Dec_InfoRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  10544. return 0;
  10545. ASN1_CloseDecoder(dd);
  10546. }
  10547. if ((val)->o[1] & 0x10) {
  10548. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10549. return 0;
  10550. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10551. return 0;
  10552. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  10553. return 0;
  10554. ASN1_CloseDecoder(dd);
  10555. }
  10556. if ((val)->o[1] & 0x8) {
  10557. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10558. return 0;
  10559. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10560. return 0;
  10561. if (!ASN1Dec_UUIEsRequested(dd, &(val)->uuiesRequested))
  10562. return 0;
  10563. ASN1_CloseDecoder(dd);
  10564. }
  10565. for (i = 0; i < e; i++) {
  10566. if (!ASN1PERDecSkipFragmented(dec, 8))
  10567. return 0;
  10568. }
  10569. }
  10570. return 1;
  10571. }
  10572. static void ASN1CALL ASN1Free_InfoRequest(InfoRequest *val)
  10573. {
  10574. if (val) {
  10575. if ((val)->o[0] & 0x80) {
  10576. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  10577. }
  10578. if ((val)->o[0] & 0x40) {
  10579. ASN1Free_TransportAddress(&(val)->replyAddress);
  10580. }
  10581. if ((val)->o[1] & 0x80) {
  10582. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  10583. }
  10584. if ((val)->o[1] & 0x40) {
  10585. ASN1Free_InfoRequest_tokens(&(val)->tokens);
  10586. }
  10587. if ((val)->o[1] & 0x20) {
  10588. ASN1Free_InfoRequest_cryptoTokens(&(val)->cryptoTokens);
  10589. }
  10590. if ((val)->o[1] & 0x10) {
  10591. ASN1Free_ICV(&(val)->integrityCheckValue);
  10592. }
  10593. }
  10594. }
  10595. static int ASN1CALL ASN1Enc_TransportChannelInfo(ASN1encoding_t enc, TransportChannelInfo *val)
  10596. {
  10597. if (!ASN1PEREncExtensionBitClear(enc))
  10598. return 0;
  10599. if (!ASN1PEREncBits(enc, 2, (val)->o))
  10600. return 0;
  10601. if ((val)->o[0] & 0x80) {
  10602. if (!ASN1Enc_TransportAddress(enc, &(val)->sendAddress))
  10603. return 0;
  10604. }
  10605. if ((val)->o[0] & 0x40) {
  10606. if (!ASN1Enc_TransportAddress(enc, &(val)->recvAddress))
  10607. return 0;
  10608. }
  10609. return 1;
  10610. }
  10611. static int ASN1CALL ASN1Dec_TransportChannelInfo(ASN1decoding_t dec, TransportChannelInfo *val)
  10612. {
  10613. ASN1uint32_t y;
  10614. if (!ASN1PERDecExtensionBit(dec, &y))
  10615. return 0;
  10616. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  10617. return 0;
  10618. if ((val)->o[0] & 0x80) {
  10619. if (!ASN1Dec_TransportAddress(dec, &(val)->sendAddress))
  10620. return 0;
  10621. }
  10622. if ((val)->o[0] & 0x40) {
  10623. if (!ASN1Dec_TransportAddress(dec, &(val)->recvAddress))
  10624. return 0;
  10625. }
  10626. if (y) {
  10627. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  10628. return 0;
  10629. }
  10630. return 1;
  10631. }
  10632. static void ASN1CALL ASN1Free_TransportChannelInfo(TransportChannelInfo *val)
  10633. {
  10634. if (val) {
  10635. if ((val)->o[0] & 0x80) {
  10636. ASN1Free_TransportAddress(&(val)->sendAddress);
  10637. }
  10638. if ((val)->o[0] & 0x40) {
  10639. ASN1Free_TransportAddress(&(val)->recvAddress);
  10640. }
  10641. }
  10642. }
  10643. static int ASN1CALL ASN1Enc_RTPSession(ASN1encoding_t enc, RTPSession *val)
  10644. {
  10645. ASN1uint32_t t;
  10646. ASN1uint32_t l;
  10647. if (!ASN1PEREncExtensionBitClear(enc))
  10648. return 0;
  10649. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->rtpAddress))
  10650. return 0;
  10651. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->rtcpAddress))
  10652. return 0;
  10653. t = lstrlenA((val)->cname);
  10654. if (!ASN1PEREncFragmentedCharString(enc, t, (val)->cname, 8))
  10655. return 0;
  10656. l = ASN1uint32_uoctets((val)->ssrc - 1);
  10657. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  10658. return 0;
  10659. ASN1PEREncAlignment(enc);
  10660. if (!ASN1PEREncBitVal(enc, l * 8, (val)->ssrc - 1))
  10661. return 0;
  10662. if (!ASN1PEREncBitVal(enc, 8, (val)->sessionId - 1))
  10663. return 0;
  10664. if (!ASN1Enc_RTPSession_associatedSessionIds(enc, &(val)->associatedSessionIds))
  10665. return 0;
  10666. return 1;
  10667. }
  10668. static int ASN1CALL ASN1Dec_RTPSession(ASN1decoding_t dec, RTPSession *val)
  10669. {
  10670. ASN1uint32_t y;
  10671. ASN1uint32_t l;
  10672. if (!ASN1PERDecExtensionBit(dec, &y))
  10673. return 0;
  10674. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->rtpAddress))
  10675. return 0;
  10676. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->rtcpAddress))
  10677. return 0;
  10678. if (!ASN1PERDecFragmentedZeroCharString(dec, &(val)->cname, 8))
  10679. return 0;
  10680. if (!ASN1PERDecU32Val(dec, 2, &l))
  10681. return 0;
  10682. l += 1;
  10683. ASN1PERDecAlignment(dec);
  10684. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->ssrc))
  10685. return 0;
  10686. (val)->ssrc += 1;
  10687. if (!ASN1PERDecU16Val(dec, 8, &(val)->sessionId))
  10688. return 0;
  10689. (val)->sessionId += 1;
  10690. if (!ASN1Dec_RTPSession_associatedSessionIds(dec, &(val)->associatedSessionIds))
  10691. return 0;
  10692. if (y) {
  10693. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  10694. return 0;
  10695. }
  10696. return 1;
  10697. }
  10698. static void ASN1CALL ASN1Free_RTPSession(RTPSession *val)
  10699. {
  10700. if (val) {
  10701. ASN1Free_TransportChannelInfo(&(val)->rtpAddress);
  10702. ASN1Free_TransportChannelInfo(&(val)->rtcpAddress);
  10703. ASN1ztcharstring_free((val)->cname);
  10704. ASN1Free_RTPSession_associatedSessionIds(&(val)->associatedSessionIds);
  10705. }
  10706. }
  10707. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data *val)
  10708. {
  10709. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data_ElmFn);
  10710. }
  10711. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data val)
  10712. {
  10713. if (!ASN1Enc_TransportChannelInfo(enc, &val->value))
  10714. return 0;
  10715. return 1;
  10716. }
  10717. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data *val)
  10718. {
  10719. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data_ElmFn, sizeof(**val));
  10720. }
  10721. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data val)
  10722. {
  10723. if (!ASN1Dec_TransportChannelInfo(dec, &val->value))
  10724. return 0;
  10725. return 1;
  10726. }
  10727. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(PInfoRequestResponse_perCallInfo_Seq_data *val)
  10728. {
  10729. if (val) {
  10730. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_data_ElmFn);
  10731. }
  10732. }
  10733. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(PInfoRequestResponse_perCallInfo_Seq_data val)
  10734. {
  10735. if (val) {
  10736. ASN1Free_TransportChannelInfo(&val->value);
  10737. }
  10738. }
  10739. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video *val)
  10740. {
  10741. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video_ElmFn);
  10742. }
  10743. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video val)
  10744. {
  10745. if (!ASN1Enc_RTPSession(enc, &val->value))
  10746. return 0;
  10747. return 1;
  10748. }
  10749. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video *val)
  10750. {
  10751. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video_ElmFn, sizeof(**val));
  10752. }
  10753. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video val)
  10754. {
  10755. if (!ASN1Dec_RTPSession(dec, &val->value))
  10756. return 0;
  10757. return 1;
  10758. }
  10759. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(PInfoRequestResponse_perCallInfo_Seq_video *val)
  10760. {
  10761. if (val) {
  10762. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_video_ElmFn);
  10763. }
  10764. }
  10765. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(PInfoRequestResponse_perCallInfo_Seq_video val)
  10766. {
  10767. if (val) {
  10768. ASN1Free_RTPSession(&val->value);
  10769. }
  10770. }
  10771. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio *val)
  10772. {
  10773. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn);
  10774. }
  10775. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio val)
  10776. {
  10777. if (!ASN1Enc_RTPSession(enc, &val->value))
  10778. return 0;
  10779. return 1;
  10780. }
  10781. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio *val)
  10782. {
  10783. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn, sizeof(**val));
  10784. }
  10785. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio val)
  10786. {
  10787. if (!ASN1Dec_RTPSession(dec, &val->value))
  10788. return 0;
  10789. return 1;
  10790. }
  10791. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(PInfoRequestResponse_perCallInfo_Seq_audio *val)
  10792. {
  10793. if (val) {
  10794. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn);
  10795. }
  10796. }
  10797. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(PInfoRequestResponse_perCallInfo_Seq_audio val)
  10798. {
  10799. if (val) {
  10800. ASN1Free_RTPSession(&val->value);
  10801. }
  10802. }
  10803. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq *val)
  10804. {
  10805. ASN1octet_t o[2];
  10806. ASN1uint32_t y;
  10807. ASN1uint32_t l;
  10808. ASN1encoding_t ee;
  10809. CopyMemory(o, (val)->o, 2);
  10810. o[1] |= 0x80;
  10811. o[1] |= 0x10;
  10812. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  10813. if (!ASN1PEREncBitVal(enc, 1, y))
  10814. return 0;
  10815. if (!ASN1PEREncBits(enc, 5, o))
  10816. return 0;
  10817. if (o[0] & 0x80) {
  10818. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  10819. return 0;
  10820. }
  10821. if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
  10822. return 0;
  10823. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  10824. return 0;
  10825. if (o[0] & 0x40) {
  10826. if (!ASN1PEREncBoolean(enc, (val)->originator))
  10827. return 0;
  10828. }
  10829. if (o[0] & 0x20) {
  10830. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(enc, &(val)->audio))
  10831. return 0;
  10832. }
  10833. if (o[0] & 0x10) {
  10834. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(enc, &(val)->video))
  10835. return 0;
  10836. }
  10837. if (o[0] & 0x8) {
  10838. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(enc, &(val)->data))
  10839. return 0;
  10840. }
  10841. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->h245))
  10842. return 0;
  10843. if (!ASN1Enc_TransportChannelInfo(enc, &(val)->callSignaling))
  10844. return 0;
  10845. if (!ASN1Enc_CallType(enc, &(val)->callType))
  10846. return 0;
  10847. l = ASN1uint32_uoctets((val)->bandWidth);
  10848. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  10849. return 0;
  10850. ASN1PEREncAlignment(enc);
  10851. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  10852. return 0;
  10853. if (!ASN1Enc_CallModel(enc, &(val)->callModel))
  10854. return 0;
  10855. if (y) {
  10856. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  10857. return 0;
  10858. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  10859. return 0;
  10860. if (o[1] & 0x80) {
  10861. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  10862. return 0;
  10863. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10864. return 0;
  10865. }
  10866. if (o[1] & 0x40) {
  10867. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ee, &(val)->tokens))
  10868. return 0;
  10869. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10870. return 0;
  10871. }
  10872. if (o[1] & 0x20) {
  10873. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ee, &(val)->cryptoTokens))
  10874. return 0;
  10875. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10876. return 0;
  10877. }
  10878. if (o[1] & 0x10) {
  10879. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ee, &(val)->substituteConfIDs))
  10880. return 0;
  10881. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10882. return 0;
  10883. }
  10884. if (o[1] & 0x8) {
  10885. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ee, &(val)->pdu))
  10886. return 0;
  10887. if (!ASN1PEREncFlushFragmentedToParent(ee))
  10888. return 0;
  10889. }
  10890. ASN1_CloseEncoder2(ee);
  10891. }
  10892. return 1;
  10893. }
  10894. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq *val)
  10895. {
  10896. ASN1uint32_t y;
  10897. ASN1uint32_t l;
  10898. ASN1decoding_t dd;
  10899. ASN1octet_t *db;
  10900. ASN1uint32_t ds;
  10901. ASN1uint32_t i;
  10902. ASN1uint32_t e;
  10903. if (!ASN1PERDecExtensionBit(dec, &y))
  10904. return 0;
  10905. if (!ASN1PERDecExtension(dec, 5, (val)->o))
  10906. return 0;
  10907. if ((val)->o[0] & 0x80) {
  10908. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  10909. return 0;
  10910. }
  10911. if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
  10912. return 0;
  10913. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  10914. return 0;
  10915. if ((val)->o[0] & 0x40) {
  10916. if (!ASN1PERDecBoolean(dec, &(val)->originator))
  10917. return 0;
  10918. }
  10919. if ((val)->o[0] & 0x20) {
  10920. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(dec, &(val)->audio))
  10921. return 0;
  10922. }
  10923. if ((val)->o[0] & 0x10) {
  10924. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(dec, &(val)->video))
  10925. return 0;
  10926. }
  10927. if ((val)->o[0] & 0x8) {
  10928. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(dec, &(val)->data))
  10929. return 0;
  10930. }
  10931. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->h245))
  10932. return 0;
  10933. if (!ASN1Dec_TransportChannelInfo(dec, &(val)->callSignaling))
  10934. return 0;
  10935. if (!ASN1Dec_CallType(dec, &(val)->callType))
  10936. return 0;
  10937. if (!ASN1PERDecU32Val(dec, 2, &l))
  10938. return 0;
  10939. l += 1;
  10940. ASN1PERDecAlignment(dec);
  10941. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  10942. return 0;
  10943. if (!ASN1Dec_CallModel(dec, &(val)->callModel))
  10944. return 0;
  10945. if (!y) {
  10946. ZeroMemory((val)->o + 1, 1);
  10947. } else {
  10948. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  10949. return 0;
  10950. if ((val)->o[1] & 0x80) {
  10951. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10952. return 0;
  10953. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10954. return 0;
  10955. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  10956. return 0;
  10957. ASN1_CloseDecoder(dd);
  10958. }
  10959. if ((val)->o[1] & 0x40) {
  10960. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10961. return 0;
  10962. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10963. return 0;
  10964. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(dd, &(val)->tokens))
  10965. return 0;
  10966. ASN1_CloseDecoder(dd);
  10967. }
  10968. if ((val)->o[1] & 0x20) {
  10969. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10970. return 0;
  10971. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10972. return 0;
  10973. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(dd, &(val)->cryptoTokens))
  10974. return 0;
  10975. ASN1_CloseDecoder(dd);
  10976. }
  10977. if ((val)->o[1] & 0x10) {
  10978. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10979. return 0;
  10980. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10981. return 0;
  10982. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(dd, &(val)->substituteConfIDs))
  10983. return 0;
  10984. ASN1_CloseDecoder(dd);
  10985. }
  10986. if ((val)->o[1] & 0x8) {
  10987. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  10988. return 0;
  10989. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  10990. return 0;
  10991. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(dd, &(val)->pdu))
  10992. return 0;
  10993. ASN1_CloseDecoder(dd);
  10994. }
  10995. for (i = 0; i < e; i++) {
  10996. if (!ASN1PERDecSkipFragmented(dec, 8))
  10997. return 0;
  10998. }
  10999. }
  11000. return 1;
  11001. }
  11002. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq(InfoRequestResponse_perCallInfo_Seq *val)
  11003. {
  11004. if (val) {
  11005. if ((val)->o[0] & 0x80) {
  11006. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  11007. }
  11008. if ((val)->o[0] & 0x20) {
  11009. ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(&(val)->audio);
  11010. }
  11011. if ((val)->o[0] & 0x10) {
  11012. ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(&(val)->video);
  11013. }
  11014. if ((val)->o[0] & 0x8) {
  11015. ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(&(val)->data);
  11016. }
  11017. ASN1Free_TransportChannelInfo(&(val)->h245);
  11018. ASN1Free_TransportChannelInfo(&(val)->callSignaling);
  11019. if ((val)->o[1] & 0x80) {
  11020. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  11021. }
  11022. if ((val)->o[1] & 0x40) {
  11023. ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(&(val)->tokens);
  11024. }
  11025. if ((val)->o[1] & 0x20) {
  11026. ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(&(val)->cryptoTokens);
  11027. }
  11028. if ((val)->o[1] & 0x10) {
  11029. ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(&(val)->substituteConfIDs);
  11030. }
  11031. if ((val)->o[1] & 0x8) {
  11032. ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(&(val)->pdu);
  11033. }
  11034. }
  11035. }
  11036. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo *val)
  11037. {
  11038. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_ElmFn);
  11039. }
  11040. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo val)
  11041. {
  11042. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq(enc, &val->value))
  11043. return 0;
  11044. return 1;
  11045. }
  11046. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo *val)
  11047. {
  11048. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_ElmFn, sizeof(**val));
  11049. }
  11050. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo val)
  11051. {
  11052. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq(dec, &val->value))
  11053. return 0;
  11054. return 1;
  11055. }
  11056. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo(PInfoRequestResponse_perCallInfo *val)
  11057. {
  11058. if (val) {
  11059. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_ElmFn);
  11060. }
  11061. }
  11062. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_ElmFn(PInfoRequestResponse_perCallInfo val)
  11063. {
  11064. if (val) {
  11065. ASN1Free_InfoRequestResponse_perCallInfo_Seq(&val->value);
  11066. }
  11067. }
  11068. static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress *val)
  11069. {
  11070. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_callSignalAddress_ElmFn);
  11071. }
  11072. static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress val)
  11073. {
  11074. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11075. return 0;
  11076. return 1;
  11077. }
  11078. static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress *val)
  11079. {
  11080. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_callSignalAddress_ElmFn, sizeof(**val));
  11081. }
  11082. static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress val)
  11083. {
  11084. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11085. return 0;
  11086. return 1;
  11087. }
  11088. static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress(PInfoRequestResponse_callSignalAddress *val)
  11089. {
  11090. if (val) {
  11091. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_callSignalAddress_ElmFn);
  11092. }
  11093. }
  11094. static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress_ElmFn(PInfoRequestResponse_callSignalAddress val)
  11095. {
  11096. if (val) {
  11097. ASN1Free_TransportAddress(&val->value);
  11098. }
  11099. }
  11100. static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress(ASN1encoding_t enc, PAdmissionReject_callSignalAddress *val)
  11101. {
  11102. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_callSignalAddress_ElmFn);
  11103. }
  11104. static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress_ElmFn(ASN1encoding_t enc, PAdmissionReject_callSignalAddress val)
  11105. {
  11106. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11107. return 0;
  11108. return 1;
  11109. }
  11110. static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress(ASN1decoding_t dec, PAdmissionReject_callSignalAddress *val)
  11111. {
  11112. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_callSignalAddress_ElmFn, sizeof(**val));
  11113. }
  11114. static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress_ElmFn(ASN1decoding_t dec, PAdmissionReject_callSignalAddress val)
  11115. {
  11116. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11117. return 0;
  11118. return 1;
  11119. }
  11120. static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress(PAdmissionReject_callSignalAddress *val)
  11121. {
  11122. if (val) {
  11123. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_callSignalAddress_ElmFn);
  11124. }
  11125. }
  11126. static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress_ElmFn(PAdmissionReject_callSignalAddress val)
  11127. {
  11128. if (val) {
  11129. ASN1Free_TransportAddress(&val->value);
  11130. }
  11131. }
  11132. static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress *val)
  11133. {
  11134. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_callSignalAddress_ElmFn);
  11135. }
  11136. static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress val)
  11137. {
  11138. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11139. return 0;
  11140. return 1;
  11141. }
  11142. static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress *val)
  11143. {
  11144. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_callSignalAddress_ElmFn, sizeof(**val));
  11145. }
  11146. static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress val)
  11147. {
  11148. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11149. return 0;
  11150. return 1;
  11151. }
  11152. static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress(PUnregistrationRequest_callSignalAddress *val)
  11153. {
  11154. if (val) {
  11155. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_callSignalAddress_ElmFn);
  11156. }
  11157. }
  11158. static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress_ElmFn(PUnregistrationRequest_callSignalAddress val)
  11159. {
  11160. if (val) {
  11161. ASN1Free_TransportAddress(&val->value);
  11162. }
  11163. }
  11164. static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper *val)
  11165. {
  11166. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_alternateGatekeeper_ElmFn);
  11167. }
  11168. static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper val)
  11169. {
  11170. if (!ASN1Enc_AlternateGK(enc, &val->value))
  11171. return 0;
  11172. return 1;
  11173. }
  11174. static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper *val)
  11175. {
  11176. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_alternateGatekeeper_ElmFn, sizeof(**val));
  11177. }
  11178. static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper val)
  11179. {
  11180. if (!ASN1Dec_AlternateGK(dec, &val->value))
  11181. return 0;
  11182. return 1;
  11183. }
  11184. static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper(PRegistrationConfirm_alternateGatekeeper *val)
  11185. {
  11186. if (val) {
  11187. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_alternateGatekeeper_ElmFn);
  11188. }
  11189. }
  11190. static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper_ElmFn(PRegistrationConfirm_alternateGatekeeper val)
  11191. {
  11192. if (val) {
  11193. ASN1Free_AlternateGK(&val->value);
  11194. }
  11195. }
  11196. static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress *val)
  11197. {
  11198. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_callSignalAddress_ElmFn);
  11199. }
  11200. static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress val)
  11201. {
  11202. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11203. return 0;
  11204. return 1;
  11205. }
  11206. static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress *val)
  11207. {
  11208. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_callSignalAddress_ElmFn, sizeof(**val));
  11209. }
  11210. static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress val)
  11211. {
  11212. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11213. return 0;
  11214. return 1;
  11215. }
  11216. static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress(PRegistrationConfirm_callSignalAddress *val)
  11217. {
  11218. if (val) {
  11219. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_callSignalAddress_ElmFn);
  11220. }
  11221. }
  11222. static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress_ElmFn(PRegistrationConfirm_callSignalAddress val)
  11223. {
  11224. if (val) {
  11225. ASN1Free_TransportAddress(&val->value);
  11226. }
  11227. }
  11228. static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress(ASN1encoding_t enc, PRegistrationRequest_rasAddress *val)
  11229. {
  11230. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_rasAddress_ElmFn);
  11231. }
  11232. static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress_ElmFn(ASN1encoding_t enc, PRegistrationRequest_rasAddress val)
  11233. {
  11234. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11235. return 0;
  11236. return 1;
  11237. }
  11238. static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress(ASN1decoding_t dec, PRegistrationRequest_rasAddress *val)
  11239. {
  11240. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_rasAddress_ElmFn, sizeof(**val));
  11241. }
  11242. static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress_ElmFn(ASN1decoding_t dec, PRegistrationRequest_rasAddress val)
  11243. {
  11244. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11245. return 0;
  11246. return 1;
  11247. }
  11248. static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress(PRegistrationRequest_rasAddress *val)
  11249. {
  11250. if (val) {
  11251. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_rasAddress_ElmFn);
  11252. }
  11253. }
  11254. static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress_ElmFn(PRegistrationRequest_rasAddress val)
  11255. {
  11256. if (val) {
  11257. ASN1Free_TransportAddress(&val->value);
  11258. }
  11259. }
  11260. static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress *val)
  11261. {
  11262. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_callSignalAddress_ElmFn);
  11263. }
  11264. static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress_ElmFn(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress val)
  11265. {
  11266. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11267. return 0;
  11268. return 1;
  11269. }
  11270. static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress *val)
  11271. {
  11272. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_callSignalAddress_ElmFn, sizeof(**val));
  11273. }
  11274. static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress_ElmFn(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress val)
  11275. {
  11276. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11277. return 0;
  11278. return 1;
  11279. }
  11280. static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress(PRegistrationRequest_callSignalAddress *val)
  11281. {
  11282. if (val) {
  11283. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_callSignalAddress_ElmFn);
  11284. }
  11285. }
  11286. static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress_ElmFn(PRegistrationRequest_callSignalAddress val)
  11287. {
  11288. if (val) {
  11289. ASN1Free_TransportAddress(&val->value);
  11290. }
  11291. }
  11292. static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper *val)
  11293. {
  11294. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_alternateGatekeeper_ElmFn);
  11295. }
  11296. static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper val)
  11297. {
  11298. if (!ASN1Enc_AlternateGK(enc, &val->value))
  11299. return 0;
  11300. return 1;
  11301. }
  11302. static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper *val)
  11303. {
  11304. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_alternateGatekeeper_ElmFn, sizeof(**val));
  11305. }
  11306. static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper val)
  11307. {
  11308. if (!ASN1Dec_AlternateGK(dec, &val->value))
  11309. return 0;
  11310. return 1;
  11311. }
  11312. static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper(PGatekeeperConfirm_alternateGatekeeper *val)
  11313. {
  11314. if (val) {
  11315. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_alternateGatekeeper_ElmFn);
  11316. }
  11317. }
  11318. static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper_ElmFn(PGatekeeperConfirm_alternateGatekeeper val)
  11319. {
  11320. if (val) {
  11321. ASN1Free_AlternateGK(&val->value);
  11322. }
  11323. }
  11324. static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper *val)
  11325. {
  11326. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AltGKInfo_alternateGatekeeper_ElmFn);
  11327. }
  11328. static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper val)
  11329. {
  11330. if (!ASN1Enc_AlternateGK(enc, &val->value))
  11331. return 0;
  11332. return 1;
  11333. }
  11334. static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper *val)
  11335. {
  11336. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AltGKInfo_alternateGatekeeper_ElmFn, sizeof(**val));
  11337. }
  11338. static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper val)
  11339. {
  11340. if (!ASN1Dec_AlternateGK(dec, &val->value))
  11341. return 0;
  11342. return 1;
  11343. }
  11344. static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper(PAltGKInfo_alternateGatekeeper *val)
  11345. {
  11346. if (val) {
  11347. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AltGKInfo_alternateGatekeeper_ElmFn);
  11348. }
  11349. }
  11350. static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper_ElmFn(PAltGKInfo_alternateGatekeeper val)
  11351. {
  11352. if (val) {
  11353. ASN1Free_AlternateGK(&val->value);
  11354. }
  11355. }
  11356. static int ASN1CALL ASN1Enc_Endpoint_rasAddress(ASN1encoding_t enc, PEndpoint_rasAddress *val)
  11357. {
  11358. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_rasAddress_ElmFn);
  11359. }
  11360. static int ASN1CALL ASN1Enc_Endpoint_rasAddress_ElmFn(ASN1encoding_t enc, PEndpoint_rasAddress val)
  11361. {
  11362. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11363. return 0;
  11364. return 1;
  11365. }
  11366. static int ASN1CALL ASN1Dec_Endpoint_rasAddress(ASN1decoding_t dec, PEndpoint_rasAddress *val)
  11367. {
  11368. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_rasAddress_ElmFn, sizeof(**val));
  11369. }
  11370. static int ASN1CALL ASN1Dec_Endpoint_rasAddress_ElmFn(ASN1decoding_t dec, PEndpoint_rasAddress val)
  11371. {
  11372. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11373. return 0;
  11374. return 1;
  11375. }
  11376. static void ASN1CALL ASN1Free_Endpoint_rasAddress(PEndpoint_rasAddress *val)
  11377. {
  11378. if (val) {
  11379. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_rasAddress_ElmFn);
  11380. }
  11381. }
  11382. static void ASN1CALL ASN1Free_Endpoint_rasAddress_ElmFn(PEndpoint_rasAddress val)
  11383. {
  11384. if (val) {
  11385. ASN1Free_TransportAddress(&val->value);
  11386. }
  11387. }
  11388. static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress(ASN1encoding_t enc, PEndpoint_callSignalAddress *val)
  11389. {
  11390. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_callSignalAddress_ElmFn);
  11391. }
  11392. static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress_ElmFn(ASN1encoding_t enc, PEndpoint_callSignalAddress val)
  11393. {
  11394. if (!ASN1Enc_TransportAddress(enc, &val->value))
  11395. return 0;
  11396. return 1;
  11397. }
  11398. static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress(ASN1decoding_t dec, PEndpoint_callSignalAddress *val)
  11399. {
  11400. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_callSignalAddress_ElmFn, sizeof(**val));
  11401. }
  11402. static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress_ElmFn(ASN1decoding_t dec, PEndpoint_callSignalAddress val)
  11403. {
  11404. if (!ASN1Dec_TransportAddress(dec, &val->value))
  11405. return 0;
  11406. return 1;
  11407. }
  11408. static void ASN1CALL ASN1Free_Endpoint_callSignalAddress(PEndpoint_callSignalAddress *val)
  11409. {
  11410. if (val) {
  11411. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_callSignalAddress_ElmFn);
  11412. }
  11413. }
  11414. static void ASN1CALL ASN1Free_Endpoint_callSignalAddress_ElmFn(PEndpoint_callSignalAddress val)
  11415. {
  11416. if (val) {
  11417. ASN1Free_TransportAddress(&val->value);
  11418. }
  11419. }
  11420. static int ASN1CALL ASN1Enc_EndpointType(ASN1encoding_t enc, EndpointType *val)
  11421. {
  11422. if (!ASN1PEREncExtensionBitClear(enc))
  11423. return 0;
  11424. if (!ASN1PEREncBits(enc, 6, (val)->o))
  11425. return 0;
  11426. if ((val)->o[0] & 0x80) {
  11427. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  11428. return 0;
  11429. }
  11430. if ((val)->o[0] & 0x40) {
  11431. if (!ASN1Enc_VendorIdentifier(enc, &(val)->vendor))
  11432. return 0;
  11433. }
  11434. if ((val)->o[0] & 0x20) {
  11435. if (!ASN1Enc_GatekeeperInfo(enc, &(val)->gatekeeper))
  11436. return 0;
  11437. }
  11438. if ((val)->o[0] & 0x10) {
  11439. if (!ASN1Enc_GatewayInfo(enc, &(val)->gateway))
  11440. return 0;
  11441. }
  11442. if ((val)->o[0] & 0x8) {
  11443. if (!ASN1Enc_McuInfo(enc, &(val)->mcu))
  11444. return 0;
  11445. }
  11446. if ((val)->o[0] & 0x4) {
  11447. if (!ASN1Enc_TerminalInfo(enc, &(val)->terminal))
  11448. return 0;
  11449. }
  11450. if (!ASN1PEREncBoolean(enc, (val)->mc))
  11451. return 0;
  11452. if (!ASN1PEREncBoolean(enc, (val)->undefinedNode))
  11453. return 0;
  11454. return 1;
  11455. }
  11456. static int ASN1CALL ASN1Dec_EndpointType(ASN1decoding_t dec, EndpointType *val)
  11457. {
  11458. ASN1uint32_t y;
  11459. if (!ASN1PERDecExtensionBit(dec, &y))
  11460. return 0;
  11461. if (!ASN1PERDecExtension(dec, 6, (val)->o))
  11462. return 0;
  11463. if ((val)->o[0] & 0x80) {
  11464. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  11465. return 0;
  11466. }
  11467. if ((val)->o[0] & 0x40) {
  11468. if (!ASN1Dec_VendorIdentifier(dec, &(val)->vendor))
  11469. return 0;
  11470. }
  11471. if ((val)->o[0] & 0x20) {
  11472. if (!ASN1Dec_GatekeeperInfo(dec, &(val)->gatekeeper))
  11473. return 0;
  11474. }
  11475. if ((val)->o[0] & 0x10) {
  11476. if (!ASN1Dec_GatewayInfo(dec, &(val)->gateway))
  11477. return 0;
  11478. }
  11479. if ((val)->o[0] & 0x8) {
  11480. if (!ASN1Dec_McuInfo(dec, &(val)->mcu))
  11481. return 0;
  11482. }
  11483. if ((val)->o[0] & 0x4) {
  11484. if (!ASN1Dec_TerminalInfo(dec, &(val)->terminal))
  11485. return 0;
  11486. }
  11487. if (!ASN1PERDecBoolean(dec, &(val)->mc))
  11488. return 0;
  11489. if (!ASN1PERDecBoolean(dec, &(val)->undefinedNode))
  11490. return 0;
  11491. if (y) {
  11492. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  11493. return 0;
  11494. }
  11495. return 1;
  11496. }
  11497. static void ASN1CALL ASN1Free_EndpointType(EndpointType *val)
  11498. {
  11499. if (val) {
  11500. if ((val)->o[0] & 0x80) {
  11501. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  11502. }
  11503. if ((val)->o[0] & 0x40) {
  11504. ASN1Free_VendorIdentifier(&(val)->vendor);
  11505. }
  11506. if ((val)->o[0] & 0x20) {
  11507. ASN1Free_GatekeeperInfo(&(val)->gatekeeper);
  11508. }
  11509. if ((val)->o[0] & 0x10) {
  11510. ASN1Free_GatewayInfo(&(val)->gateway);
  11511. }
  11512. if ((val)->o[0] & 0x8) {
  11513. ASN1Free_McuInfo(&(val)->mcu);
  11514. }
  11515. if ((val)->o[0] & 0x4) {
  11516. ASN1Free_TerminalInfo(&(val)->terminal);
  11517. }
  11518. }
  11519. }
  11520. static int ASN1CALL ASN1Enc_SupportedProtocols(ASN1encoding_t enc, SupportedProtocols *val)
  11521. {
  11522. ASN1encoding_t ee;
  11523. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 9))
  11524. return 0;
  11525. switch ((val)->choice) {
  11526. case 1:
  11527. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandardData))
  11528. return 0;
  11529. break;
  11530. case 2:
  11531. if (!ASN1Enc_H310Caps(enc, &(val)->u.h310))
  11532. return 0;
  11533. break;
  11534. case 3:
  11535. if (!ASN1Enc_H320Caps(enc, &(val)->u.h320))
  11536. return 0;
  11537. break;
  11538. case 4:
  11539. if (!ASN1Enc_H321Caps(enc, &(val)->u.h321))
  11540. return 0;
  11541. break;
  11542. case 5:
  11543. if (!ASN1Enc_H322Caps(enc, &(val)->u.h322))
  11544. return 0;
  11545. break;
  11546. case 6:
  11547. if (!ASN1Enc_H323Caps(enc, &(val)->u.h323))
  11548. return 0;
  11549. break;
  11550. case 7:
  11551. if (!ASN1Enc_H324Caps(enc, &(val)->u.h324))
  11552. return 0;
  11553. break;
  11554. case 8:
  11555. if (!ASN1Enc_VoiceCaps(enc, &(val)->u.voice))
  11556. return 0;
  11557. break;
  11558. case 9:
  11559. if (!ASN1Enc_T120OnlyCaps(enc, &(val)->u.t120_only))
  11560. return 0;
  11561. break;
  11562. case 10:
  11563. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11564. return 0;
  11565. if (!ASN1Enc_NonStandardProtocol(ee, &(val)->u.nonStandardProtocol))
  11566. return 0;
  11567. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11568. return 0;
  11569. ASN1_CloseEncoder2(ee);
  11570. break;
  11571. default:
  11572. /* impossible */
  11573. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  11574. return 0;
  11575. }
  11576. return 1;
  11577. }
  11578. static int ASN1CALL ASN1Dec_SupportedProtocols(ASN1decoding_t dec, SupportedProtocols *val)
  11579. {
  11580. ASN1decoding_t dd;
  11581. ASN1octet_t *db;
  11582. ASN1uint32_t ds;
  11583. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 9))
  11584. return 0;
  11585. switch ((val)->choice) {
  11586. case 1:
  11587. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandardData))
  11588. return 0;
  11589. break;
  11590. case 2:
  11591. if (!ASN1Dec_H310Caps(dec, &(val)->u.h310))
  11592. return 0;
  11593. break;
  11594. case 3:
  11595. if (!ASN1Dec_H320Caps(dec, &(val)->u.h320))
  11596. return 0;
  11597. break;
  11598. case 4:
  11599. if (!ASN1Dec_H321Caps(dec, &(val)->u.h321))
  11600. return 0;
  11601. break;
  11602. case 5:
  11603. if (!ASN1Dec_H322Caps(dec, &(val)->u.h322))
  11604. return 0;
  11605. break;
  11606. case 6:
  11607. if (!ASN1Dec_H323Caps(dec, &(val)->u.h323))
  11608. return 0;
  11609. break;
  11610. case 7:
  11611. if (!ASN1Dec_H324Caps(dec, &(val)->u.h324))
  11612. return 0;
  11613. break;
  11614. case 8:
  11615. if (!ASN1Dec_VoiceCaps(dec, &(val)->u.voice))
  11616. return 0;
  11617. break;
  11618. case 9:
  11619. if (!ASN1Dec_T120OnlyCaps(dec, &(val)->u.t120_only))
  11620. return 0;
  11621. break;
  11622. case 10:
  11623. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11624. return 0;
  11625. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  11626. return 0;
  11627. if (!ASN1Dec_NonStandardProtocol(dd, &(val)->u.nonStandardProtocol))
  11628. return 0;
  11629. ASN1_CloseDecoder(dd);
  11630. break;
  11631. case 0:
  11632. /* extension case */
  11633. if (!ASN1PERDecSkipFragmented(dec, 8))
  11634. return 0;
  11635. break;
  11636. default:
  11637. /* impossible */
  11638. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  11639. return 0;
  11640. }
  11641. return 1;
  11642. }
  11643. static void ASN1CALL ASN1Free_SupportedProtocols(SupportedProtocols *val)
  11644. {
  11645. if (val) {
  11646. switch ((val)->choice) {
  11647. case 1:
  11648. ASN1Free_H225NonStandardParameter(&(val)->u.nonStandardData);
  11649. break;
  11650. case 2:
  11651. ASN1Free_H310Caps(&(val)->u.h310);
  11652. break;
  11653. case 3:
  11654. ASN1Free_H320Caps(&(val)->u.h320);
  11655. break;
  11656. case 4:
  11657. ASN1Free_H321Caps(&(val)->u.h321);
  11658. break;
  11659. case 5:
  11660. ASN1Free_H322Caps(&(val)->u.h322);
  11661. break;
  11662. case 6:
  11663. ASN1Free_H323Caps(&(val)->u.h323);
  11664. break;
  11665. case 7:
  11666. ASN1Free_H324Caps(&(val)->u.h324);
  11667. break;
  11668. case 8:
  11669. ASN1Free_VoiceCaps(&(val)->u.voice);
  11670. break;
  11671. case 9:
  11672. ASN1Free_T120OnlyCaps(&(val)->u.t120_only);
  11673. break;
  11674. case 10:
  11675. ASN1Free_NonStandardProtocol(&(val)->u.nonStandardProtocol);
  11676. break;
  11677. }
  11678. }
  11679. }
  11680. static ASN1stringtableentry_t AliasAddress_e164_StringTableEntries[] = {
  11681. { 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
  11682. { 48, 57, 3 },
  11683. };
  11684. static ASN1stringtable_t AliasAddress_e164_StringTable = {
  11685. 4, AliasAddress_e164_StringTableEntries
  11686. };
  11687. static int ASN1CALL ASN1Enc_AliasAddress(ASN1encoding_t enc, AliasAddress *val)
  11688. {
  11689. ASN1uint32_t t;
  11690. ASN1encoding_t ee;
  11691. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
  11692. return 0;
  11693. switch ((val)->choice) {
  11694. case 1:
  11695. t = lstrlenA((val)->u.e164);
  11696. if (!ASN1PEREncBitVal(enc, 7, t - 1))
  11697. return 0;
  11698. ASN1PEREncAlignment(enc);
  11699. if (!ASN1PEREncTableCharString(enc, t, (val)->u.e164, 4, &AliasAddress_e164_StringTable))
  11700. return 0;
  11701. break;
  11702. case 2:
  11703. ASN1PEREncAlignment(enc);
  11704. if (!ASN1PEREncBitVal(enc, 8, ((val)->u.h323_ID).length - 1))
  11705. return 0;
  11706. if (!ASN1PEREncChar16String(enc, ((val)->u.h323_ID).length, ((val)->u.h323_ID).value, 16))
  11707. return 0;
  11708. break;
  11709. case 3:
  11710. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11711. return 0;
  11712. t = lstrlenA((val)->u.url_ID);
  11713. ASN1PEREncAlignment(ee);
  11714. if (!ASN1PEREncBitVal(ee, 16, t - 1))
  11715. return 0;
  11716. if (!ASN1PEREncCharString(ee, t, (val)->u.url_ID, 8))
  11717. return 0;
  11718. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11719. return 0;
  11720. ASN1_CloseEncoder2(ee);
  11721. break;
  11722. case 4:
  11723. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11724. return 0;
  11725. if (!ASN1Enc_TransportAddress(ee, &(val)->u.transportID))
  11726. return 0;
  11727. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11728. return 0;
  11729. ASN1_CloseEncoder2(ee);
  11730. break;
  11731. case 5:
  11732. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11733. return 0;
  11734. t = lstrlenA((val)->u.email_ID);
  11735. ASN1PEREncAlignment(ee);
  11736. if (!ASN1PEREncBitVal(ee, 16, t - 1))
  11737. return 0;
  11738. if (!ASN1PEREncCharString(ee, t, (val)->u.email_ID, 8))
  11739. return 0;
  11740. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11741. return 0;
  11742. ASN1_CloseEncoder2(ee);
  11743. break;
  11744. case 6:
  11745. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  11746. return 0;
  11747. if (!ASN1Enc_PartyNumber(ee, &(val)->u.partyNumber))
  11748. return 0;
  11749. if (!ASN1PEREncFlushFragmentedToParent(ee))
  11750. return 0;
  11751. ASN1_CloseEncoder2(ee);
  11752. break;
  11753. default:
  11754. /* impossible */
  11755. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  11756. return 0;
  11757. }
  11758. return 1;
  11759. }
  11760. static int ASN1CALL ASN1Dec_AliasAddress(ASN1decoding_t dec, AliasAddress *val)
  11761. {
  11762. ASN1uint32_t l;
  11763. ASN1decoding_t dd;
  11764. ASN1octet_t *db;
  11765. ASN1uint32_t ds;
  11766. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
  11767. return 0;
  11768. switch ((val)->choice) {
  11769. case 1:
  11770. if (!ASN1PERDecU32Val(dec, 7, &l))
  11771. return 0;
  11772. l += 1;
  11773. ASN1PERDecAlignment(dec);
  11774. //NikhilB: Fix for the overflow bug 03/02/27
  11775. if ( l >= sizeof((val)->u.e164) ) {
  11776. ASN1DecSetError(dec, ASN1_ERR_LARGE);
  11777. return 0;
  11778. }
  11779. if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.e164, 4, &AliasAddress_e164_StringTable))
  11780. return 0;
  11781. break;
  11782. case 2:
  11783. ASN1PERDecAlignment(dec);
  11784. if (!ASN1PERDecU32Val(dec, 8, &((val)->u.h323_ID).length))
  11785. return 0;
  11786. ((val)->u.h323_ID).length += 1;
  11787. if (!ASN1PERDecChar16String(dec, ((val)->u.h323_ID).length, &((val)->u.h323_ID).value, 16))
  11788. return 0;
  11789. break;
  11790. case 3:
  11791. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11792. return 0;
  11793. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  11794. return 0;
  11795. ASN1PERDecAlignment(dd);
  11796. if (!ASN1PERDecU32Val(dd, 16, &l))
  11797. return 0;
  11798. l += 1;
  11799. //NikhilB: Fix for the overflow bug 03/02/26
  11800. if (l >= sizeof((val)->u.url_ID)) {
  11801. ASN1DecSetError(dd, ASN1_ERR_LARGE);
  11802. return 0;
  11803. }
  11804. if (!ASN1PERDecZeroCharStringNoAlloc(dd, l, (val)->u.url_ID, 8))
  11805. return 0;
  11806. ASN1_CloseDecoder(dd);
  11807. break;
  11808. case 4:
  11809. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11810. return 0;
  11811. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  11812. return 0;
  11813. if (!ASN1Dec_TransportAddress(dd, &(val)->u.transportID))
  11814. return 0;
  11815. ASN1_CloseDecoder(dd);
  11816. break;
  11817. case 5:
  11818. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11819. return 0;
  11820. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  11821. return 0;
  11822. ASN1PERDecAlignment(dd);
  11823. if (!ASN1PERDecU32Val(dd, 16, &l))
  11824. return 0;
  11825. l += 1;
  11826. //NikhilB: Fix for the overflow bug 03/02/26
  11827. if (l >= sizeof((val)->u.email_ID)) {
  11828. ASN1DecSetError(dd, ASN1_ERR_LARGE);
  11829. return 0;
  11830. }
  11831. if (!ASN1PERDecZeroCharStringNoAlloc(dd, l, (val)->u.email_ID, 8))
  11832. return 0;
  11833. ASN1_CloseDecoder(dd);
  11834. break;
  11835. case 6:
  11836. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  11837. return 0;
  11838. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  11839. return 0;
  11840. if (!ASN1Dec_PartyNumber(dd, &(val)->u.partyNumber))
  11841. return 0;
  11842. ASN1_CloseDecoder(dd);
  11843. break;
  11844. case 0:
  11845. /* extension case */
  11846. if (!ASN1PERDecSkipFragmented(dec, 8))
  11847. return 0;
  11848. break;
  11849. default:
  11850. /* impossible */
  11851. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  11852. return 0;
  11853. }
  11854. return 1;
  11855. }
  11856. static void ASN1CALL ASN1Free_AliasAddress(AliasAddress *val)
  11857. {
  11858. if (val) {
  11859. switch ((val)->choice) {
  11860. case 1:
  11861. break;
  11862. case 2:
  11863. ASN1char16string_free(&(val)->u.h323_ID);
  11864. break;
  11865. case 3:
  11866. break;
  11867. case 4:
  11868. ASN1Free_TransportAddress(&(val)->u.transportID);
  11869. break;
  11870. case 5:
  11871. break;
  11872. case 6:
  11873. ASN1Free_PartyNumber(&(val)->u.partyNumber);
  11874. break;
  11875. }
  11876. }
  11877. }
  11878. static int ASN1CALL ASN1Enc_Endpoint(ASN1encoding_t enc, Endpoint *val)
  11879. {
  11880. if (!ASN1PEREncExtensionBitClear(enc))
  11881. return 0;
  11882. if (!ASN1PEREncBits(enc, 10, (val)->o))
  11883. return 0;
  11884. if ((val)->o[0] & 0x80) {
  11885. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  11886. return 0;
  11887. }
  11888. if ((val)->o[0] & 0x40) {
  11889. if (!ASN1Enc_Endpoint_aliasAddress(enc, &(val)->aliasAddress))
  11890. return 0;
  11891. }
  11892. if ((val)->o[0] & 0x20) {
  11893. if (!ASN1Enc_Endpoint_callSignalAddress(enc, &(val)->callSignalAddress))
  11894. return 0;
  11895. }
  11896. if ((val)->o[0] & 0x10) {
  11897. if (!ASN1Enc_Endpoint_rasAddress(enc, &(val)->rasAddress))
  11898. return 0;
  11899. }
  11900. if ((val)->o[0] & 0x8) {
  11901. if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
  11902. return 0;
  11903. }
  11904. if ((val)->o[0] & 0x4) {
  11905. if (!ASN1Enc_Endpoint_tokens(enc, &(val)->tokens))
  11906. return 0;
  11907. }
  11908. if ((val)->o[0] & 0x2) {
  11909. if (!ASN1Enc_Endpoint_cryptoTokens(enc, &(val)->cryptoTokens))
  11910. return 0;
  11911. }
  11912. if ((val)->o[0] & 0x1) {
  11913. if (!ASN1PEREncBitVal(enc, 7, (val)->priority))
  11914. return 0;
  11915. }
  11916. if ((val)->o[1] & 0x80) {
  11917. if (!ASN1Enc_Endpoint_remoteExtensionAddress(enc, &(val)->remoteExtensionAddress))
  11918. return 0;
  11919. }
  11920. if ((val)->o[1] & 0x40) {
  11921. if (!ASN1Enc_Endpoint_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
  11922. return 0;
  11923. }
  11924. return 1;
  11925. }
  11926. static int ASN1CALL ASN1Dec_Endpoint(ASN1decoding_t dec, Endpoint *val)
  11927. {
  11928. ASN1uint32_t y;
  11929. if (!ASN1PERDecExtensionBit(dec, &y))
  11930. return 0;
  11931. if (!ASN1PERDecExtension(dec, 10, (val)->o))
  11932. return 0;
  11933. if ((val)->o[0] & 0x80) {
  11934. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  11935. return 0;
  11936. }
  11937. if ((val)->o[0] & 0x40) {
  11938. if (!ASN1Dec_Endpoint_aliasAddress(dec, &(val)->aliasAddress))
  11939. return 0;
  11940. }
  11941. if ((val)->o[0] & 0x20) {
  11942. if (!ASN1Dec_Endpoint_callSignalAddress(dec, &(val)->callSignalAddress))
  11943. return 0;
  11944. }
  11945. if ((val)->o[0] & 0x10) {
  11946. if (!ASN1Dec_Endpoint_rasAddress(dec, &(val)->rasAddress))
  11947. return 0;
  11948. }
  11949. if ((val)->o[0] & 0x8) {
  11950. if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
  11951. return 0;
  11952. }
  11953. if ((val)->o[0] & 0x4) {
  11954. if (!ASN1Dec_Endpoint_tokens(dec, &(val)->tokens))
  11955. return 0;
  11956. }
  11957. if ((val)->o[0] & 0x2) {
  11958. if (!ASN1Dec_Endpoint_cryptoTokens(dec, &(val)->cryptoTokens))
  11959. return 0;
  11960. }
  11961. if ((val)->o[0] & 0x1) {
  11962. if (!ASN1PERDecU16Val(dec, 7, &(val)->priority))
  11963. return 0;
  11964. }
  11965. if ((val)->o[1] & 0x80) {
  11966. if (!ASN1Dec_Endpoint_remoteExtensionAddress(dec, &(val)->remoteExtensionAddress))
  11967. return 0;
  11968. }
  11969. if ((val)->o[1] & 0x40) {
  11970. if (!ASN1Dec_Endpoint_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
  11971. return 0;
  11972. }
  11973. if (y) {
  11974. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  11975. return 0;
  11976. }
  11977. return 1;
  11978. }
  11979. static void ASN1CALL ASN1Free_Endpoint(Endpoint *val)
  11980. {
  11981. if (val) {
  11982. if ((val)->o[0] & 0x80) {
  11983. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  11984. }
  11985. if ((val)->o[0] & 0x40) {
  11986. ASN1Free_Endpoint_aliasAddress(&(val)->aliasAddress);
  11987. }
  11988. if ((val)->o[0] & 0x20) {
  11989. ASN1Free_Endpoint_callSignalAddress(&(val)->callSignalAddress);
  11990. }
  11991. if ((val)->o[0] & 0x10) {
  11992. ASN1Free_Endpoint_rasAddress(&(val)->rasAddress);
  11993. }
  11994. if ((val)->o[0] & 0x8) {
  11995. ASN1Free_EndpointType(&(val)->endpointType);
  11996. }
  11997. if ((val)->o[0] & 0x4) {
  11998. ASN1Free_Endpoint_tokens(&(val)->tokens);
  11999. }
  12000. if ((val)->o[0] & 0x2) {
  12001. ASN1Free_Endpoint_cryptoTokens(&(val)->cryptoTokens);
  12002. }
  12003. if ((val)->o[1] & 0x80) {
  12004. ASN1Free_Endpoint_remoteExtensionAddress(&(val)->remoteExtensionAddress);
  12005. }
  12006. if ((val)->o[1] & 0x40) {
  12007. ASN1Free_Endpoint_destExtraCallInfo(&(val)->destExtraCallInfo);
  12008. }
  12009. }
  12010. }
  12011. static int ASN1CALL ASN1Enc_SupportedPrefix(ASN1encoding_t enc, SupportedPrefix *val)
  12012. {
  12013. if (!ASN1PEREncExtensionBitClear(enc))
  12014. return 0;
  12015. if (!ASN1PEREncBits(enc, 1, (val)->o))
  12016. return 0;
  12017. if ((val)->o[0] & 0x80) {
  12018. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12019. return 0;
  12020. }
  12021. if (!ASN1Enc_AliasAddress(enc, &(val)->prefix))
  12022. return 0;
  12023. return 1;
  12024. }
  12025. static int ASN1CALL ASN1Dec_SupportedPrefix(ASN1decoding_t dec, SupportedPrefix *val)
  12026. {
  12027. ASN1uint32_t y;
  12028. if (!ASN1PERDecExtensionBit(dec, &y))
  12029. return 0;
  12030. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  12031. return 0;
  12032. if ((val)->o[0] & 0x80) {
  12033. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12034. return 0;
  12035. }
  12036. if (!ASN1Dec_AliasAddress(dec, &(val)->prefix))
  12037. return 0;
  12038. if (y) {
  12039. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  12040. return 0;
  12041. }
  12042. return 1;
  12043. }
  12044. static void ASN1CALL ASN1Free_SupportedPrefix(SupportedPrefix *val)
  12045. {
  12046. if (val) {
  12047. if ((val)->o[0] & 0x80) {
  12048. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12049. }
  12050. ASN1Free_AliasAddress(&(val)->prefix);
  12051. }
  12052. }
  12053. static int ASN1CALL ASN1Enc_GatekeeperRequest(ASN1encoding_t enc, GatekeeperRequest *val)
  12054. {
  12055. ASN1uint32_t y;
  12056. ASN1encoding_t ee;
  12057. y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
  12058. if (!ASN1PEREncBitVal(enc, 1, y))
  12059. return 0;
  12060. if (!ASN1PEREncBits(enc, 4, (val)->o))
  12061. return 0;
  12062. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12063. return 0;
  12064. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  12065. return 0;
  12066. if ((val)->o[0] & 0x80) {
  12067. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12068. return 0;
  12069. }
  12070. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  12071. return 0;
  12072. if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
  12073. return 0;
  12074. if ((val)->o[0] & 0x40) {
  12075. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  12076. return 0;
  12077. ASN1PEREncAlignment(enc);
  12078. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  12079. return 0;
  12080. }
  12081. if ((val)->o[0] & 0x20) {
  12082. if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
  12083. return 0;
  12084. }
  12085. if ((val)->o[0] & 0x10) {
  12086. if (!ASN1Enc_GatekeeperRequest_endpointAlias(enc, &(val)->endpointAlias))
  12087. return 0;
  12088. }
  12089. if (y) {
  12090. if (!ASN1PEREncNormallySmallBits(enc, 7, (val)->o + 1))
  12091. return 0;
  12092. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12093. return 0;
  12094. if ((val)->o[1] & 0x80) {
  12095. if (!ASN1Enc_GatekeeperRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12096. return 0;
  12097. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12098. return 0;
  12099. }
  12100. if ((val)->o[1] & 0x40) {
  12101. if (!ASN1Enc_GatekeeperRequest_tokens(ee, &(val)->tokens))
  12102. return 0;
  12103. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12104. return 0;
  12105. }
  12106. if ((val)->o[1] & 0x20) {
  12107. if (!ASN1Enc_GatekeeperRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  12108. return 0;
  12109. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12110. return 0;
  12111. }
  12112. if ((val)->o[1] & 0x10) {
  12113. if (!ASN1Enc_GatekeeperRequest_authenticationCapability(ee, &(val)->authenticationCapability))
  12114. return 0;
  12115. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12116. return 0;
  12117. }
  12118. if ((val)->o[1] & 0x8) {
  12119. if (!ASN1Enc_GatekeeperRequest_algorithmOIDs(ee, &(val)->algorithmOIDs))
  12120. return 0;
  12121. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12122. return 0;
  12123. }
  12124. if ((val)->o[1] & 0x4) {
  12125. if (!ASN1Enc_GatekeeperRequest_integrity(ee, &(val)->integrity))
  12126. return 0;
  12127. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12128. return 0;
  12129. }
  12130. if ((val)->o[1] & 0x2) {
  12131. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12132. return 0;
  12133. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12134. return 0;
  12135. }
  12136. ASN1_CloseEncoder2(ee);
  12137. }
  12138. return 1;
  12139. }
  12140. static int ASN1CALL ASN1Dec_GatekeeperRequest(ASN1decoding_t dec, GatekeeperRequest *val)
  12141. {
  12142. ASN1uint32_t y;
  12143. ASN1decoding_t dd;
  12144. ASN1octet_t *db;
  12145. ASN1uint32_t ds;
  12146. ASN1uint32_t i;
  12147. ASN1uint32_t e;
  12148. if (!ASN1PERDecExtensionBit(dec, &y))
  12149. return 0;
  12150. if (!ASN1PERDecExtension(dec, 4, (val)->o))
  12151. return 0;
  12152. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12153. return 0;
  12154. (val)->requestSeqNum += 1;
  12155. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  12156. return 0;
  12157. if ((val)->o[0] & 0x80) {
  12158. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12159. return 0;
  12160. }
  12161. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  12162. return 0;
  12163. if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
  12164. return 0;
  12165. if ((val)->o[0] & 0x40) {
  12166. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  12167. return 0;
  12168. ((val)->gatekeeperIdentifier).length += 1;
  12169. ASN1PERDecAlignment(dec);
  12170. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  12171. return 0;
  12172. }
  12173. if ((val)->o[0] & 0x20) {
  12174. if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
  12175. return 0;
  12176. }
  12177. if ((val)->o[0] & 0x10) {
  12178. if (!ASN1Dec_GatekeeperRequest_endpointAlias(dec, &(val)->endpointAlias))
  12179. return 0;
  12180. }
  12181. if (!y) {
  12182. ZeroMemory((val)->o + 1, 1);
  12183. } else {
  12184. if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
  12185. return 0;
  12186. if ((val)->o[1] & 0x80) {
  12187. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12188. return 0;
  12189. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12190. return 0;
  12191. if (!ASN1Dec_GatekeeperRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
  12192. return 0;
  12193. ASN1_CloseDecoder(dd);
  12194. }
  12195. if ((val)->o[1] & 0x40) {
  12196. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12197. return 0;
  12198. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12199. return 0;
  12200. if (!ASN1Dec_GatekeeperRequest_tokens(dd, &(val)->tokens))
  12201. return 0;
  12202. ASN1_CloseDecoder(dd);
  12203. }
  12204. if ((val)->o[1] & 0x20) {
  12205. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12206. return 0;
  12207. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12208. return 0;
  12209. if (!ASN1Dec_GatekeeperRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  12210. return 0;
  12211. ASN1_CloseDecoder(dd);
  12212. }
  12213. if ((val)->o[1] & 0x10) {
  12214. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12215. return 0;
  12216. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12217. return 0;
  12218. if (!ASN1Dec_GatekeeperRequest_authenticationCapability(dd, &(val)->authenticationCapability))
  12219. return 0;
  12220. ASN1_CloseDecoder(dd);
  12221. }
  12222. if ((val)->o[1] & 0x8) {
  12223. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12224. return 0;
  12225. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12226. return 0;
  12227. if (!ASN1Dec_GatekeeperRequest_algorithmOIDs(dd, &(val)->algorithmOIDs))
  12228. return 0;
  12229. ASN1_CloseDecoder(dd);
  12230. }
  12231. if ((val)->o[1] & 0x4) {
  12232. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12233. return 0;
  12234. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12235. return 0;
  12236. if (!ASN1Dec_GatekeeperRequest_integrity(dd, &(val)->integrity))
  12237. return 0;
  12238. ASN1_CloseDecoder(dd);
  12239. }
  12240. if ((val)->o[1] & 0x2) {
  12241. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12242. return 0;
  12243. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12244. return 0;
  12245. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  12246. return 0;
  12247. ASN1_CloseDecoder(dd);
  12248. }
  12249. for (i = 0; i < e; i++) {
  12250. if (!ASN1PERDecSkipFragmented(dec, 8))
  12251. return 0;
  12252. }
  12253. }
  12254. return 1;
  12255. }
  12256. static void ASN1CALL ASN1Free_GatekeeperRequest(GatekeeperRequest *val)
  12257. {
  12258. if (val) {
  12259. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  12260. if ((val)->o[0] & 0x80) {
  12261. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12262. }
  12263. ASN1Free_TransportAddress(&(val)->rasAddress);
  12264. ASN1Free_EndpointType(&(val)->endpointType);
  12265. if ((val)->o[0] & 0x40) {
  12266. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  12267. }
  12268. if ((val)->o[0] & 0x10) {
  12269. ASN1Free_GatekeeperRequest_endpointAlias(&(val)->endpointAlias);
  12270. }
  12271. if ((val)->o[1] & 0x80) {
  12272. ASN1Free_GatekeeperRequest_alternateEndpoints(&(val)->alternateEndpoints);
  12273. }
  12274. if ((val)->o[1] & 0x40) {
  12275. ASN1Free_GatekeeperRequest_tokens(&(val)->tokens);
  12276. }
  12277. if ((val)->o[1] & 0x20) {
  12278. ASN1Free_GatekeeperRequest_cryptoTokens(&(val)->cryptoTokens);
  12279. }
  12280. if ((val)->o[1] & 0x10) {
  12281. ASN1Free_GatekeeperRequest_authenticationCapability(&(val)->authenticationCapability);
  12282. }
  12283. if ((val)->o[1] & 0x8) {
  12284. ASN1Free_GatekeeperRequest_algorithmOIDs(&(val)->algorithmOIDs);
  12285. }
  12286. if ((val)->o[1] & 0x4) {
  12287. ASN1Free_GatekeeperRequest_integrity(&(val)->integrity);
  12288. }
  12289. if ((val)->o[1] & 0x2) {
  12290. ASN1Free_ICV(&(val)->integrityCheckValue);
  12291. }
  12292. }
  12293. }
  12294. static int ASN1CALL ASN1Enc_RegistrationRequest(ASN1encoding_t enc, RegistrationRequest *val)
  12295. {
  12296. ASN1octet_t o[2];
  12297. ASN1uint32_t y;
  12298. ASN1encoding_t ee;
  12299. ASN1uint32_t l;
  12300. CopyMemory(o, (val)->o, 2);
  12301. o[1] |= 0x4;
  12302. o[1] |= 0x1;
  12303. y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
  12304. if (!ASN1PEREncBitVal(enc, 1, y))
  12305. return 0;
  12306. if (!ASN1PEREncBits(enc, 3, o))
  12307. return 0;
  12308. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12309. return 0;
  12310. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  12311. return 0;
  12312. if (o[0] & 0x80) {
  12313. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12314. return 0;
  12315. }
  12316. if (!ASN1PEREncBoolean(enc, (val)->discoveryComplete))
  12317. return 0;
  12318. if (!ASN1Enc_RegistrationRequest_callSignalAddress(enc, &(val)->callSignalAddress))
  12319. return 0;
  12320. if (!ASN1Enc_RegistrationRequest_rasAddress(enc, &(val)->rasAddress))
  12321. return 0;
  12322. if (!ASN1Enc_EndpointType(enc, &(val)->terminalType))
  12323. return 0;
  12324. if (o[0] & 0x40) {
  12325. if (!ASN1Enc_RegistrationRequest_terminalAlias(enc, &(val)->terminalAlias))
  12326. return 0;
  12327. }
  12328. if (o[0] & 0x20) {
  12329. if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
  12330. return 0;
  12331. ASN1PEREncAlignment(enc);
  12332. if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
  12333. return 0;
  12334. }
  12335. if (!ASN1Enc_VendorIdentifier(enc, &(val)->endpointVendor))
  12336. return 0;
  12337. if (y) {
  12338. if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
  12339. return 0;
  12340. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12341. return 0;
  12342. if (o[1] & 0x80) {
  12343. if (!ASN1Enc_RegistrationRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12344. return 0;
  12345. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12346. return 0;
  12347. }
  12348. if (o[1] & 0x40) {
  12349. l = ASN1uint32_uoctets((val)->timeToLive - 1);
  12350. if (!ASN1PEREncBitVal(ee, 2, l - 1))
  12351. return 0;
  12352. ASN1PEREncAlignment(ee);
  12353. if (!ASN1PEREncBitVal(ee, l * 8, (val)->timeToLive - 1))
  12354. return 0;
  12355. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12356. return 0;
  12357. }
  12358. if (o[1] & 0x20) {
  12359. if (!ASN1Enc_RegistrationRequest_tokens(ee, &(val)->tokens))
  12360. return 0;
  12361. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12362. return 0;
  12363. }
  12364. if (o[1] & 0x10) {
  12365. if (!ASN1Enc_RegistrationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
  12366. return 0;
  12367. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12368. return 0;
  12369. }
  12370. if (o[1] & 0x8) {
  12371. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12372. return 0;
  12373. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12374. return 0;
  12375. }
  12376. if (o[1] & 0x4) {
  12377. if (!ASN1PEREncBoolean(ee, (val)->keepAlive))
  12378. return 0;
  12379. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12380. return 0;
  12381. }
  12382. if (o[1] & 0x2) {
  12383. if (!ASN1PEREncBitVal(ee, 7, ((val)->endpointIdentifier).length - 1))
  12384. return 0;
  12385. ASN1PEREncAlignment(ee);
  12386. if (!ASN1PEREncChar16String(ee, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  12387. return 0;
  12388. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12389. return 0;
  12390. }
  12391. if (o[1] & 0x1) {
  12392. if (!ASN1PEREncBoolean(ee, (val)->willSupplyUUIEs))
  12393. return 0;
  12394. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12395. return 0;
  12396. }
  12397. ASN1_CloseEncoder2(ee);
  12398. }
  12399. return 1;
  12400. }
  12401. static int ASN1CALL ASN1Dec_RegistrationRequest(ASN1decoding_t dec, RegistrationRequest *val)
  12402. {
  12403. ASN1uint32_t y;
  12404. ASN1decoding_t dd;
  12405. ASN1octet_t *db;
  12406. ASN1uint32_t ds;
  12407. ASN1uint32_t l;
  12408. ASN1uint32_t i;
  12409. ASN1uint32_t e;
  12410. if (!ASN1PERDecExtensionBit(dec, &y))
  12411. return 0;
  12412. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  12413. return 0;
  12414. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12415. return 0;
  12416. (val)->requestSeqNum += 1;
  12417. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  12418. return 0;
  12419. if ((val)->o[0] & 0x80) {
  12420. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12421. return 0;
  12422. }
  12423. if (!ASN1PERDecBoolean(dec, &(val)->discoveryComplete))
  12424. return 0;
  12425. if (!ASN1Dec_RegistrationRequest_callSignalAddress(dec, &(val)->callSignalAddress))
  12426. return 0;
  12427. if (!ASN1Dec_RegistrationRequest_rasAddress(dec, &(val)->rasAddress))
  12428. return 0;
  12429. if (!ASN1Dec_EndpointType(dec, &(val)->terminalType))
  12430. return 0;
  12431. if ((val)->o[0] & 0x40) {
  12432. if (!ASN1Dec_RegistrationRequest_terminalAlias(dec, &(val)->terminalAlias))
  12433. return 0;
  12434. }
  12435. if ((val)->o[0] & 0x20) {
  12436. if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
  12437. return 0;
  12438. ((val)->gatekeeperIdentifier).length += 1;
  12439. ASN1PERDecAlignment(dec);
  12440. if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
  12441. return 0;
  12442. }
  12443. if (!ASN1Dec_VendorIdentifier(dec, &(val)->endpointVendor))
  12444. return 0;
  12445. if (!y) {
  12446. ZeroMemory((val)->o + 1, 1);
  12447. } else {
  12448. if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
  12449. return 0;
  12450. if ((val)->o[1] & 0x80) {
  12451. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12452. return 0;
  12453. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12454. return 0;
  12455. if (!ASN1Dec_RegistrationRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
  12456. return 0;
  12457. ASN1_CloseDecoder(dd);
  12458. }
  12459. if ((val)->o[1] & 0x40) {
  12460. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12461. return 0;
  12462. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12463. return 0;
  12464. if (!ASN1PERDecU32Val(dd, 2, &l))
  12465. return 0;
  12466. l += 1;
  12467. ASN1PERDecAlignment(dd);
  12468. if (!ASN1PERDecU32Val(dd, l * 8, &(val)->timeToLive))
  12469. return 0;
  12470. (val)->timeToLive += 1;
  12471. ASN1_CloseDecoder(dd);
  12472. }
  12473. if ((val)->o[1] & 0x20) {
  12474. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12475. return 0;
  12476. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12477. return 0;
  12478. if (!ASN1Dec_RegistrationRequest_tokens(dd, &(val)->tokens))
  12479. return 0;
  12480. ASN1_CloseDecoder(dd);
  12481. }
  12482. if ((val)->o[1] & 0x10) {
  12483. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12484. return 0;
  12485. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12486. return 0;
  12487. if (!ASN1Dec_RegistrationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
  12488. return 0;
  12489. ASN1_CloseDecoder(dd);
  12490. }
  12491. if ((val)->o[1] & 0x8) {
  12492. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12493. return 0;
  12494. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12495. return 0;
  12496. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  12497. return 0;
  12498. ASN1_CloseDecoder(dd);
  12499. }
  12500. if ((val)->o[1] & 0x4) {
  12501. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12502. return 0;
  12503. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12504. return 0;
  12505. if (!ASN1PERDecBoolean(dd, &(val)->keepAlive))
  12506. return 0;
  12507. ASN1_CloseDecoder(dd);
  12508. }
  12509. if ((val)->o[1] & 0x2) {
  12510. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12511. return 0;
  12512. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12513. return 0;
  12514. if (!ASN1PERDecU32Val(dd, 7, &((val)->endpointIdentifier).length))
  12515. return 0;
  12516. ((val)->endpointIdentifier).length += 1;
  12517. ASN1PERDecAlignment(dd);
  12518. if (!ASN1PERDecChar16String(dd, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  12519. return 0;
  12520. ASN1_CloseDecoder(dd);
  12521. }
  12522. if ((val)->o[1] & 0x1) {
  12523. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12524. return 0;
  12525. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12526. return 0;
  12527. if (!ASN1PERDecBoolean(dd, &(val)->willSupplyUUIEs))
  12528. return 0;
  12529. ASN1_CloseDecoder(dd);
  12530. }
  12531. for (i = 0; i < e; i++) {
  12532. if (!ASN1PERDecSkipFragmented(dec, 8))
  12533. return 0;
  12534. }
  12535. }
  12536. return 1;
  12537. }
  12538. static void ASN1CALL ASN1Free_RegistrationRequest(RegistrationRequest *val)
  12539. {
  12540. if (val) {
  12541. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  12542. if ((val)->o[0] & 0x80) {
  12543. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12544. }
  12545. ASN1Free_RegistrationRequest_callSignalAddress(&(val)->callSignalAddress);
  12546. ASN1Free_RegistrationRequest_rasAddress(&(val)->rasAddress);
  12547. ASN1Free_EndpointType(&(val)->terminalType);
  12548. if ((val)->o[0] & 0x40) {
  12549. ASN1Free_RegistrationRequest_terminalAlias(&(val)->terminalAlias);
  12550. }
  12551. if ((val)->o[0] & 0x20) {
  12552. ASN1char16string_free(&(val)->gatekeeperIdentifier);
  12553. }
  12554. ASN1Free_VendorIdentifier(&(val)->endpointVendor);
  12555. if ((val)->o[1] & 0x80) {
  12556. ASN1Free_RegistrationRequest_alternateEndpoints(&(val)->alternateEndpoints);
  12557. }
  12558. if ((val)->o[1] & 0x20) {
  12559. ASN1Free_RegistrationRequest_tokens(&(val)->tokens);
  12560. }
  12561. if ((val)->o[1] & 0x10) {
  12562. ASN1Free_RegistrationRequest_cryptoTokens(&(val)->cryptoTokens);
  12563. }
  12564. if ((val)->o[1] & 0x8) {
  12565. ASN1Free_ICV(&(val)->integrityCheckValue);
  12566. }
  12567. if ((val)->o[1] & 0x2) {
  12568. ASN1char16string_free(&(val)->endpointIdentifier);
  12569. }
  12570. }
  12571. }
  12572. static int ASN1CALL ASN1Enc_AdmissionConfirm(ASN1encoding_t enc, AdmissionConfirm *val)
  12573. {
  12574. ASN1octet_t o[3];
  12575. ASN1uint32_t y;
  12576. ASN1uint32_t l;
  12577. ASN1encoding_t ee;
  12578. CopyMemory(o, (val)->o, 3);
  12579. o[2] |= 0x40;
  12580. o[2] |= 0x20;
  12581. y = ASN1PEREncCheckExtensions(11, (val)->o + 1);
  12582. if (!ASN1PEREncBitVal(enc, 1, y))
  12583. return 0;
  12584. if (!ASN1PEREncBits(enc, 2, o))
  12585. return 0;
  12586. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12587. return 0;
  12588. l = ASN1uint32_uoctets((val)->bandWidth);
  12589. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  12590. return 0;
  12591. ASN1PEREncAlignment(enc);
  12592. if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
  12593. return 0;
  12594. if (!ASN1Enc_CallModel(enc, &(val)->callModel))
  12595. return 0;
  12596. if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
  12597. return 0;
  12598. if (o[0] & 0x80) {
  12599. if (!ASN1PEREncUnsignedShort(enc, (val)->irrFrequency - 1))
  12600. return 0;
  12601. }
  12602. if (o[0] & 0x40) {
  12603. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12604. return 0;
  12605. }
  12606. if (y) {
  12607. if (!ASN1PEREncNormallySmallBits(enc, 11, o + 1))
  12608. return 0;
  12609. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12610. return 0;
  12611. if (o[1] & 0x80) {
  12612. if (!ASN1Enc_AdmissionConfirm_destinationInfo(ee, &(val)->destinationInfo))
  12613. return 0;
  12614. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12615. return 0;
  12616. }
  12617. if (o[1] & 0x40) {
  12618. if (!ASN1Enc_AdmissionConfirm_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
  12619. return 0;
  12620. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12621. return 0;
  12622. }
  12623. if (o[1] & 0x20) {
  12624. if (!ASN1Enc_EndpointType(ee, &(val)->destinationType))
  12625. return 0;
  12626. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12627. return 0;
  12628. }
  12629. if (o[1] & 0x10) {
  12630. if (!ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ee, &(val)->remoteExtensionAddress))
  12631. return 0;
  12632. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12633. return 0;
  12634. }
  12635. if (o[1] & 0x8) {
  12636. if (!ASN1Enc_AdmissionConfirm_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12637. return 0;
  12638. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12639. return 0;
  12640. }
  12641. if (o[1] & 0x4) {
  12642. if (!ASN1Enc_AdmissionConfirm_tokens(ee, &(val)->tokens))
  12643. return 0;
  12644. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12645. return 0;
  12646. }
  12647. if (o[1] & 0x2) {
  12648. if (!ASN1Enc_AdmissionConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  12649. return 0;
  12650. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12651. return 0;
  12652. }
  12653. if (o[1] & 0x1) {
  12654. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12655. return 0;
  12656. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12657. return 0;
  12658. }
  12659. if (o[2] & 0x80) {
  12660. if (!ASN1Enc_TransportQOS(ee, &(val)->transportQOS))
  12661. return 0;
  12662. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12663. return 0;
  12664. }
  12665. if (o[2] & 0x40) {
  12666. if (!ASN1PEREncBoolean(ee, (val)->willRespondToIRR))
  12667. return 0;
  12668. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12669. return 0;
  12670. }
  12671. if (o[2] & 0x20) {
  12672. if (!ASN1Enc_UUIEsRequested(ee, &(val)->uuiesRequested))
  12673. return 0;
  12674. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12675. return 0;
  12676. }
  12677. ASN1_CloseEncoder2(ee);
  12678. }
  12679. return 1;
  12680. }
  12681. static int ASN1CALL ASN1Dec_AdmissionConfirm(ASN1decoding_t dec, AdmissionConfirm *val)
  12682. {
  12683. ASN1uint32_t y;
  12684. ASN1uint32_t l;
  12685. ASN1decoding_t dd;
  12686. ASN1octet_t *db;
  12687. ASN1uint32_t ds;
  12688. ASN1uint32_t i;
  12689. ASN1uint32_t e;
  12690. if (!ASN1PERDecExtensionBit(dec, &y))
  12691. return 0;
  12692. if (!ASN1PERDecExtension(dec, 2, (val)->o))
  12693. return 0;
  12694. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12695. return 0;
  12696. (val)->requestSeqNum += 1;
  12697. if (!ASN1PERDecU32Val(dec, 2, &l))
  12698. return 0;
  12699. l += 1;
  12700. ASN1PERDecAlignment(dec);
  12701. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
  12702. return 0;
  12703. if (!ASN1Dec_CallModel(dec, &(val)->callModel))
  12704. return 0;
  12705. if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
  12706. return 0;
  12707. if ((val)->o[0] & 0x80) {
  12708. if (!ASN1PERDecUnsignedShort(dec, &(val)->irrFrequency))
  12709. return 0;
  12710. (val)->irrFrequency += 1;
  12711. }
  12712. if ((val)->o[0] & 0x40) {
  12713. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12714. return 0;
  12715. }
  12716. if (!y) {
  12717. ZeroMemory((val)->o + 1, 2);
  12718. } else {
  12719. if (!ASN1PERDecNormallySmallExtension(dec, &e, 11, (val)->o + 1))
  12720. return 0;
  12721. if ((val)->o[1] & 0x80) {
  12722. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12723. return 0;
  12724. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12725. return 0;
  12726. if (!ASN1Dec_AdmissionConfirm_destinationInfo(dd, &(val)->destinationInfo))
  12727. return 0;
  12728. ASN1_CloseDecoder(dd);
  12729. }
  12730. if ((val)->o[1] & 0x40) {
  12731. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12732. return 0;
  12733. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12734. return 0;
  12735. if (!ASN1Dec_AdmissionConfirm_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
  12736. return 0;
  12737. ASN1_CloseDecoder(dd);
  12738. }
  12739. if ((val)->o[1] & 0x20) {
  12740. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12741. return 0;
  12742. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12743. return 0;
  12744. if (!ASN1Dec_EndpointType(dd, &(val)->destinationType))
  12745. return 0;
  12746. ASN1_CloseDecoder(dd);
  12747. }
  12748. if ((val)->o[1] & 0x10) {
  12749. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12750. return 0;
  12751. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12752. return 0;
  12753. if (!ASN1Dec_AdmissionConfirm_remoteExtensionAddress(dd, &(val)->remoteExtensionAddress))
  12754. return 0;
  12755. ASN1_CloseDecoder(dd);
  12756. }
  12757. if ((val)->o[1] & 0x8) {
  12758. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12759. return 0;
  12760. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12761. return 0;
  12762. if (!ASN1Dec_AdmissionConfirm_alternateEndpoints(dd, &(val)->alternateEndpoints))
  12763. return 0;
  12764. ASN1_CloseDecoder(dd);
  12765. }
  12766. if ((val)->o[1] & 0x4) {
  12767. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12768. return 0;
  12769. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12770. return 0;
  12771. if (!ASN1Dec_AdmissionConfirm_tokens(dd, &(val)->tokens))
  12772. return 0;
  12773. ASN1_CloseDecoder(dd);
  12774. }
  12775. if ((val)->o[1] & 0x2) {
  12776. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12777. return 0;
  12778. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12779. return 0;
  12780. if (!ASN1Dec_AdmissionConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  12781. return 0;
  12782. ASN1_CloseDecoder(dd);
  12783. }
  12784. if ((val)->o[1] & 0x1) {
  12785. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12786. return 0;
  12787. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12788. return 0;
  12789. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  12790. return 0;
  12791. ASN1_CloseDecoder(dd);
  12792. }
  12793. if ((val)->o[2] & 0x80) {
  12794. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12795. return 0;
  12796. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12797. return 0;
  12798. if (!ASN1Dec_TransportQOS(dd, &(val)->transportQOS))
  12799. return 0;
  12800. ASN1_CloseDecoder(dd);
  12801. }
  12802. if ((val)->o[2] & 0x40) {
  12803. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12804. return 0;
  12805. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12806. return 0;
  12807. if (!ASN1PERDecBoolean(dd, &(val)->willRespondToIRR))
  12808. return 0;
  12809. ASN1_CloseDecoder(dd);
  12810. }
  12811. if ((val)->o[2] & 0x20) {
  12812. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12813. return 0;
  12814. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12815. return 0;
  12816. if (!ASN1Dec_UUIEsRequested(dd, &(val)->uuiesRequested))
  12817. return 0;
  12818. ASN1_CloseDecoder(dd);
  12819. }
  12820. for (i = 0; i < e; i++) {
  12821. if (!ASN1PERDecSkipFragmented(dec, 8))
  12822. return 0;
  12823. }
  12824. }
  12825. return 1;
  12826. }
  12827. static void ASN1CALL ASN1Free_AdmissionConfirm(AdmissionConfirm *val)
  12828. {
  12829. if (val) {
  12830. ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
  12831. if ((val)->o[0] & 0x40) {
  12832. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  12833. }
  12834. if ((val)->o[1] & 0x80) {
  12835. ASN1Free_AdmissionConfirm_destinationInfo(&(val)->destinationInfo);
  12836. }
  12837. if ((val)->o[1] & 0x40) {
  12838. ASN1Free_AdmissionConfirm_destExtraCallInfo(&(val)->destExtraCallInfo);
  12839. }
  12840. if ((val)->o[1] & 0x20) {
  12841. ASN1Free_EndpointType(&(val)->destinationType);
  12842. }
  12843. if ((val)->o[1] & 0x10) {
  12844. ASN1Free_AdmissionConfirm_remoteExtensionAddress(&(val)->remoteExtensionAddress);
  12845. }
  12846. if ((val)->o[1] & 0x8) {
  12847. ASN1Free_AdmissionConfirm_alternateEndpoints(&(val)->alternateEndpoints);
  12848. }
  12849. if ((val)->o[1] & 0x4) {
  12850. ASN1Free_AdmissionConfirm_tokens(&(val)->tokens);
  12851. }
  12852. if ((val)->o[1] & 0x2) {
  12853. ASN1Free_AdmissionConfirm_cryptoTokens(&(val)->cryptoTokens);
  12854. }
  12855. if ((val)->o[1] & 0x1) {
  12856. ASN1Free_ICV(&(val)->integrityCheckValue);
  12857. }
  12858. }
  12859. }
  12860. static int ASN1CALL ASN1Enc_LocationConfirm(ASN1encoding_t enc, LocationConfirm *val)
  12861. {
  12862. ASN1uint32_t y;
  12863. ASN1encoding_t ee;
  12864. y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
  12865. if (!ASN1PEREncBitVal(enc, 1, y))
  12866. return 0;
  12867. if (!ASN1PEREncBits(enc, 1, (val)->o))
  12868. return 0;
  12869. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  12870. return 0;
  12871. if (!ASN1Enc_TransportAddress(enc, &(val)->callSignalAddress))
  12872. return 0;
  12873. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  12874. return 0;
  12875. if ((val)->o[0] & 0x80) {
  12876. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  12877. return 0;
  12878. }
  12879. if (y) {
  12880. if (!ASN1PEREncNormallySmallBits(enc, 8, (val)->o + 1))
  12881. return 0;
  12882. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  12883. return 0;
  12884. if ((val)->o[1] & 0x80) {
  12885. if (!ASN1Enc_LocationConfirm_destinationInfo(ee, &(val)->destinationInfo))
  12886. return 0;
  12887. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12888. return 0;
  12889. }
  12890. if ((val)->o[1] & 0x40) {
  12891. if (!ASN1Enc_LocationConfirm_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
  12892. return 0;
  12893. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12894. return 0;
  12895. }
  12896. if ((val)->o[1] & 0x20) {
  12897. if (!ASN1Enc_EndpointType(ee, &(val)->destinationType))
  12898. return 0;
  12899. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12900. return 0;
  12901. }
  12902. if ((val)->o[1] & 0x10) {
  12903. if (!ASN1Enc_LocationConfirm_remoteExtensionAddress(ee, &(val)->remoteExtensionAddress))
  12904. return 0;
  12905. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12906. return 0;
  12907. }
  12908. if ((val)->o[1] & 0x8) {
  12909. if (!ASN1Enc_LocationConfirm_alternateEndpoints(ee, &(val)->alternateEndpoints))
  12910. return 0;
  12911. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12912. return 0;
  12913. }
  12914. if ((val)->o[1] & 0x4) {
  12915. if (!ASN1Enc_LocationConfirm_tokens(ee, &(val)->tokens))
  12916. return 0;
  12917. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12918. return 0;
  12919. }
  12920. if ((val)->o[1] & 0x2) {
  12921. if (!ASN1Enc_LocationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
  12922. return 0;
  12923. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12924. return 0;
  12925. }
  12926. if ((val)->o[1] & 0x1) {
  12927. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  12928. return 0;
  12929. if (!ASN1PEREncFlushFragmentedToParent(ee))
  12930. return 0;
  12931. }
  12932. ASN1_CloseEncoder2(ee);
  12933. }
  12934. return 1;
  12935. }
  12936. static int ASN1CALL ASN1Dec_LocationConfirm(ASN1decoding_t dec, LocationConfirm *val)
  12937. {
  12938. ASN1uint32_t y;
  12939. ASN1decoding_t dd;
  12940. ASN1octet_t *db;
  12941. ASN1uint32_t ds;
  12942. ASN1uint32_t i;
  12943. ASN1uint32_t e;
  12944. if (!ASN1PERDecExtensionBit(dec, &y))
  12945. return 0;
  12946. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  12947. return 0;
  12948. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  12949. return 0;
  12950. (val)->requestSeqNum += 1;
  12951. if (!ASN1Dec_TransportAddress(dec, &(val)->callSignalAddress))
  12952. return 0;
  12953. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  12954. return 0;
  12955. if ((val)->o[0] & 0x80) {
  12956. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  12957. return 0;
  12958. }
  12959. if (!y) {
  12960. ZeroMemory((val)->o + 1, 1);
  12961. } else {
  12962. if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
  12963. return 0;
  12964. if ((val)->o[1] & 0x80) {
  12965. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12966. return 0;
  12967. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12968. return 0;
  12969. if (!ASN1Dec_LocationConfirm_destinationInfo(dd, &(val)->destinationInfo))
  12970. return 0;
  12971. ASN1_CloseDecoder(dd);
  12972. }
  12973. if ((val)->o[1] & 0x40) {
  12974. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12975. return 0;
  12976. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12977. return 0;
  12978. if (!ASN1Dec_LocationConfirm_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
  12979. return 0;
  12980. ASN1_CloseDecoder(dd);
  12981. }
  12982. if ((val)->o[1] & 0x20) {
  12983. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12984. return 0;
  12985. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12986. return 0;
  12987. if (!ASN1Dec_EndpointType(dd, &(val)->destinationType))
  12988. return 0;
  12989. ASN1_CloseDecoder(dd);
  12990. }
  12991. if ((val)->o[1] & 0x10) {
  12992. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  12993. return 0;
  12994. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  12995. return 0;
  12996. if (!ASN1Dec_LocationConfirm_remoteExtensionAddress(dd, &(val)->remoteExtensionAddress))
  12997. return 0;
  12998. ASN1_CloseDecoder(dd);
  12999. }
  13000. if ((val)->o[1] & 0x8) {
  13001. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13002. return 0;
  13003. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13004. return 0;
  13005. if (!ASN1Dec_LocationConfirm_alternateEndpoints(dd, &(val)->alternateEndpoints))
  13006. return 0;
  13007. ASN1_CloseDecoder(dd);
  13008. }
  13009. if ((val)->o[1] & 0x4) {
  13010. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13011. return 0;
  13012. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13013. return 0;
  13014. if (!ASN1Dec_LocationConfirm_tokens(dd, &(val)->tokens))
  13015. return 0;
  13016. ASN1_CloseDecoder(dd);
  13017. }
  13018. if ((val)->o[1] & 0x2) {
  13019. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13020. return 0;
  13021. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13022. return 0;
  13023. if (!ASN1Dec_LocationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
  13024. return 0;
  13025. ASN1_CloseDecoder(dd);
  13026. }
  13027. if ((val)->o[1] & 0x1) {
  13028. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13029. return 0;
  13030. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13031. return 0;
  13032. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  13033. return 0;
  13034. ASN1_CloseDecoder(dd);
  13035. }
  13036. for (i = 0; i < e; i++) {
  13037. if (!ASN1PERDecSkipFragmented(dec, 8))
  13038. return 0;
  13039. }
  13040. }
  13041. return 1;
  13042. }
  13043. static void ASN1CALL ASN1Free_LocationConfirm(LocationConfirm *val)
  13044. {
  13045. if (val) {
  13046. ASN1Free_TransportAddress(&(val)->callSignalAddress);
  13047. ASN1Free_TransportAddress(&(val)->rasAddress);
  13048. if ((val)->o[0] & 0x80) {
  13049. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  13050. }
  13051. if ((val)->o[1] & 0x80) {
  13052. ASN1Free_LocationConfirm_destinationInfo(&(val)->destinationInfo);
  13053. }
  13054. if ((val)->o[1] & 0x40) {
  13055. ASN1Free_LocationConfirm_destExtraCallInfo(&(val)->destExtraCallInfo);
  13056. }
  13057. if ((val)->o[1] & 0x20) {
  13058. ASN1Free_EndpointType(&(val)->destinationType);
  13059. }
  13060. if ((val)->o[1] & 0x10) {
  13061. ASN1Free_LocationConfirm_remoteExtensionAddress(&(val)->remoteExtensionAddress);
  13062. }
  13063. if ((val)->o[1] & 0x8) {
  13064. ASN1Free_LocationConfirm_alternateEndpoints(&(val)->alternateEndpoints);
  13065. }
  13066. if ((val)->o[1] & 0x4) {
  13067. ASN1Free_LocationConfirm_tokens(&(val)->tokens);
  13068. }
  13069. if ((val)->o[1] & 0x2) {
  13070. ASN1Free_LocationConfirm_cryptoTokens(&(val)->cryptoTokens);
  13071. }
  13072. if ((val)->o[1] & 0x1) {
  13073. ASN1Free_ICV(&(val)->integrityCheckValue);
  13074. }
  13075. }
  13076. }
  13077. static int ASN1CALL ASN1Enc_InfoRequestResponse(ASN1encoding_t enc, InfoRequestResponse *val)
  13078. {
  13079. ASN1octet_t o[2];
  13080. ASN1uint32_t y;
  13081. ASN1encoding_t ee;
  13082. CopyMemory(o, (val)->o, 2);
  13083. o[1] |= 0x10;
  13084. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  13085. if (!ASN1PEREncBitVal(enc, 1, y))
  13086. return 0;
  13087. if (!ASN1PEREncBits(enc, 3, o))
  13088. return 0;
  13089. if (o[0] & 0x80) {
  13090. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  13091. return 0;
  13092. }
  13093. if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
  13094. return 0;
  13095. if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
  13096. return 0;
  13097. if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
  13098. return 0;
  13099. ASN1PEREncAlignment(enc);
  13100. if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
  13101. return 0;
  13102. if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
  13103. return 0;
  13104. if (!ASN1Enc_InfoRequestResponse_callSignalAddress(enc, &(val)->callSignalAddress))
  13105. return 0;
  13106. if (o[0] & 0x40) {
  13107. if (!ASN1Enc_InfoRequestResponse_endpointAlias(enc, &(val)->endpointAlias))
  13108. return 0;
  13109. }
  13110. if (o[0] & 0x20) {
  13111. if (!ASN1Enc_InfoRequestResponse_perCallInfo(enc, &(val)->perCallInfo))
  13112. return 0;
  13113. }
  13114. if (y) {
  13115. if (!ASN1PEREncNormallySmallBits(enc, 4, o + 1))
  13116. return 0;
  13117. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  13118. return 0;
  13119. if (o[1] & 0x80) {
  13120. if (!ASN1Enc_InfoRequestResponse_tokens(ee, &(val)->tokens))
  13121. return 0;
  13122. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13123. return 0;
  13124. }
  13125. if (o[1] & 0x40) {
  13126. if (!ASN1Enc_InfoRequestResponse_cryptoTokens(ee, &(val)->cryptoTokens))
  13127. return 0;
  13128. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13129. return 0;
  13130. }
  13131. if (o[1] & 0x20) {
  13132. if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
  13133. return 0;
  13134. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13135. return 0;
  13136. }
  13137. if (o[1] & 0x10) {
  13138. if (!ASN1PEREncBoolean(ee, (val)->needResponse))
  13139. return 0;
  13140. if (!ASN1PEREncFlushFragmentedToParent(ee))
  13141. return 0;
  13142. }
  13143. ASN1_CloseEncoder2(ee);
  13144. }
  13145. return 1;
  13146. }
  13147. static int ASN1CALL ASN1Dec_InfoRequestResponse(ASN1decoding_t dec, InfoRequestResponse *val)
  13148. {
  13149. ASN1uint32_t y;
  13150. ASN1decoding_t dd;
  13151. ASN1octet_t *db;
  13152. ASN1uint32_t ds;
  13153. ASN1uint32_t i;
  13154. ASN1uint32_t e;
  13155. if (!ASN1PERDecExtensionBit(dec, &y))
  13156. return 0;
  13157. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  13158. return 0;
  13159. if ((val)->o[0] & 0x80) {
  13160. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  13161. return 0;
  13162. }
  13163. if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
  13164. return 0;
  13165. (val)->requestSeqNum += 1;
  13166. if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
  13167. return 0;
  13168. if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
  13169. return 0;
  13170. ((val)->endpointIdentifier).length += 1;
  13171. ASN1PERDecAlignment(dec);
  13172. if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
  13173. return 0;
  13174. if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
  13175. return 0;
  13176. if (!ASN1Dec_InfoRequestResponse_callSignalAddress(dec, &(val)->callSignalAddress))
  13177. return 0;
  13178. if ((val)->o[0] & 0x40) {
  13179. if (!ASN1Dec_InfoRequestResponse_endpointAlias(dec, &(val)->endpointAlias))
  13180. return 0;
  13181. }
  13182. if ((val)->o[0] & 0x20) {
  13183. if (!ASN1Dec_InfoRequestResponse_perCallInfo(dec, &(val)->perCallInfo))
  13184. return 0;
  13185. }
  13186. if (!y) {
  13187. ZeroMemory((val)->o + 1, 1);
  13188. } else {
  13189. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  13190. return 0;
  13191. if ((val)->o[1] & 0x80) {
  13192. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13193. return 0;
  13194. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13195. return 0;
  13196. if (!ASN1Dec_InfoRequestResponse_tokens(dd, &(val)->tokens))
  13197. return 0;
  13198. ASN1_CloseDecoder(dd);
  13199. }
  13200. if ((val)->o[1] & 0x40) {
  13201. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13202. return 0;
  13203. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13204. return 0;
  13205. if (!ASN1Dec_InfoRequestResponse_cryptoTokens(dd, &(val)->cryptoTokens))
  13206. return 0;
  13207. ASN1_CloseDecoder(dd);
  13208. }
  13209. if ((val)->o[1] & 0x20) {
  13210. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13211. return 0;
  13212. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13213. return 0;
  13214. if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
  13215. return 0;
  13216. ASN1_CloseDecoder(dd);
  13217. }
  13218. if ((val)->o[1] & 0x10) {
  13219. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  13220. return 0;
  13221. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  13222. return 0;
  13223. if (!ASN1PERDecBoolean(dd, &(val)->needResponse))
  13224. return 0;
  13225. ASN1_CloseDecoder(dd);
  13226. }
  13227. for (i = 0; i < e; i++) {
  13228. if (!ASN1PERDecSkipFragmented(dec, 8))
  13229. return 0;
  13230. }
  13231. }
  13232. return 1;
  13233. }
  13234. static void ASN1CALL ASN1Free_InfoRequestResponse(InfoRequestResponse *val)
  13235. {
  13236. if (val) {
  13237. if ((val)->o[0] & 0x80) {
  13238. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  13239. }
  13240. ASN1Free_EndpointType(&(val)->endpointType);
  13241. ASN1char16string_free(&(val)->endpointIdentifier);
  13242. ASN1Free_TransportAddress(&(val)->rasAddress);
  13243. ASN1Free_InfoRequestResponse_callSignalAddress(&(val)->callSignalAddress);
  13244. if ((val)->o[0] & 0x40) {
  13245. ASN1Free_InfoRequestResponse_endpointAlias(&(val)->endpointAlias);
  13246. }
  13247. if ((val)->o[0] & 0x20) {
  13248. ASN1Free_InfoRequestResponse_perCallInfo(&(val)->perCallInfo);
  13249. }
  13250. if ((val)->o[1] & 0x80) {
  13251. ASN1Free_InfoRequestResponse_tokens(&(val)->tokens);
  13252. }
  13253. if ((val)->o[1] & 0x40) {
  13254. ASN1Free_InfoRequestResponse_cryptoTokens(&(val)->cryptoTokens);
  13255. }
  13256. if ((val)->o[1] & 0x20) {
  13257. ASN1Free_ICV(&(val)->integrityCheckValue);
  13258. }
  13259. }
  13260. }
  13261. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols *val)
  13262. {
  13263. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_protocols_ElmFn);
  13264. }
  13265. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols val)
  13266. {
  13267. if (!ASN1Enc_SupportedProtocols(enc, &val->value))
  13268. return 0;
  13269. return 1;
  13270. }
  13271. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols *val)
  13272. {
  13273. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_protocols_ElmFn, sizeof(**val));
  13274. }
  13275. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols val)
  13276. {
  13277. if (!ASN1Dec_SupportedProtocols(dec, &val->value))
  13278. return 0;
  13279. return 1;
  13280. }
  13281. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols(PResourcesAvailableIndicate_protocols *val)
  13282. {
  13283. if (val) {
  13284. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_protocols_ElmFn);
  13285. }
  13286. }
  13287. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols_ElmFn(PResourcesAvailableIndicate_protocols val)
  13288. {
  13289. if (val) {
  13290. ASN1Free_SupportedProtocols(&val->value);
  13291. }
  13292. }
  13293. static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias *val)
  13294. {
  13295. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_endpointAlias_ElmFn);
  13296. }
  13297. static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias val)
  13298. {
  13299. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13300. return 0;
  13301. return 1;
  13302. }
  13303. static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias *val)
  13304. {
  13305. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_endpointAlias_ElmFn, sizeof(**val));
  13306. }
  13307. static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias val)
  13308. {
  13309. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13310. return 0;
  13311. return 1;
  13312. }
  13313. static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias(PInfoRequestResponse_endpointAlias *val)
  13314. {
  13315. if (val) {
  13316. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_endpointAlias_ElmFn);
  13317. }
  13318. }
  13319. static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias_ElmFn(PInfoRequestResponse_endpointAlias val)
  13320. {
  13321. if (val) {
  13322. ASN1Free_AliasAddress(&val->value);
  13323. }
  13324. }
  13325. static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints *val)
  13326. {
  13327. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_alternateEndpoints_ElmFn);
  13328. }
  13329. static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints_ElmFn(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints val)
  13330. {
  13331. if (!ASN1Enc_Endpoint(enc, &val->value))
  13332. return 0;
  13333. return 1;
  13334. }
  13335. static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints *val)
  13336. {
  13337. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_alternateEndpoints_ElmFn, sizeof(**val));
  13338. }
  13339. static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints_ElmFn(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints val)
  13340. {
  13341. if (!ASN1Dec_Endpoint(dec, &val->value))
  13342. return 0;
  13343. return 1;
  13344. }
  13345. static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints(PLocationConfirm_alternateEndpoints *val)
  13346. {
  13347. if (val) {
  13348. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_alternateEndpoints_ElmFn);
  13349. }
  13350. }
  13351. static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints_ElmFn(PLocationConfirm_alternateEndpoints val)
  13352. {
  13353. if (val) {
  13354. ASN1Free_Endpoint(&val->value);
  13355. }
  13356. }
  13357. static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress *val)
  13358. {
  13359. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_remoteExtensionAddress_ElmFn);
  13360. }
  13361. static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress val)
  13362. {
  13363. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13364. return 0;
  13365. return 1;
  13366. }
  13367. static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress *val)
  13368. {
  13369. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_remoteExtensionAddress_ElmFn, sizeof(**val));
  13370. }
  13371. static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress val)
  13372. {
  13373. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13374. return 0;
  13375. return 1;
  13376. }
  13377. static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress(PLocationConfirm_remoteExtensionAddress *val)
  13378. {
  13379. if (val) {
  13380. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_remoteExtensionAddress_ElmFn);
  13381. }
  13382. }
  13383. static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress_ElmFn(PLocationConfirm_remoteExtensionAddress val)
  13384. {
  13385. if (val) {
  13386. ASN1Free_AliasAddress(&val->value);
  13387. }
  13388. }
  13389. static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo *val)
  13390. {
  13391. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_destExtraCallInfo_ElmFn);
  13392. }
  13393. static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo val)
  13394. {
  13395. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13396. return 0;
  13397. return 1;
  13398. }
  13399. static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo *val)
  13400. {
  13401. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_destExtraCallInfo_ElmFn, sizeof(**val));
  13402. }
  13403. static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo val)
  13404. {
  13405. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13406. return 0;
  13407. return 1;
  13408. }
  13409. static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo(PLocationConfirm_destExtraCallInfo *val)
  13410. {
  13411. if (val) {
  13412. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_destExtraCallInfo_ElmFn);
  13413. }
  13414. }
  13415. static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo_ElmFn(PLocationConfirm_destExtraCallInfo val)
  13416. {
  13417. if (val) {
  13418. ASN1Free_AliasAddress(&val->value);
  13419. }
  13420. }
  13421. static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo(ASN1encoding_t enc, PLocationConfirm_destinationInfo *val)
  13422. {
  13423. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_destinationInfo_ElmFn);
  13424. }
  13425. static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo_ElmFn(ASN1encoding_t enc, PLocationConfirm_destinationInfo val)
  13426. {
  13427. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13428. return 0;
  13429. return 1;
  13430. }
  13431. static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo(ASN1decoding_t dec, PLocationConfirm_destinationInfo *val)
  13432. {
  13433. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_destinationInfo_ElmFn, sizeof(**val));
  13434. }
  13435. static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo_ElmFn(ASN1decoding_t dec, PLocationConfirm_destinationInfo val)
  13436. {
  13437. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13438. return 0;
  13439. return 1;
  13440. }
  13441. static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo(PLocationConfirm_destinationInfo *val)
  13442. {
  13443. if (val) {
  13444. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_destinationInfo_ElmFn);
  13445. }
  13446. }
  13447. static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo_ElmFn(PLocationConfirm_destinationInfo val)
  13448. {
  13449. if (val) {
  13450. ASN1Free_AliasAddress(&val->value);
  13451. }
  13452. }
  13453. static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo(ASN1encoding_t enc, PLocationRequest_sourceInfo *val)
  13454. {
  13455. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_sourceInfo_ElmFn);
  13456. }
  13457. static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo_ElmFn(ASN1encoding_t enc, PLocationRequest_sourceInfo val)
  13458. {
  13459. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13460. return 0;
  13461. return 1;
  13462. }
  13463. static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo(ASN1decoding_t dec, PLocationRequest_sourceInfo *val)
  13464. {
  13465. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_sourceInfo_ElmFn, sizeof(**val));
  13466. }
  13467. static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo_ElmFn(ASN1decoding_t dec, PLocationRequest_sourceInfo val)
  13468. {
  13469. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13470. return 0;
  13471. return 1;
  13472. }
  13473. static void ASN1CALL ASN1Free_LocationRequest_sourceInfo(PLocationRequest_sourceInfo *val)
  13474. {
  13475. if (val) {
  13476. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_sourceInfo_ElmFn);
  13477. }
  13478. }
  13479. static void ASN1CALL ASN1Free_LocationRequest_sourceInfo_ElmFn(PLocationRequest_sourceInfo val)
  13480. {
  13481. if (val) {
  13482. ASN1Free_AliasAddress(&val->value);
  13483. }
  13484. }
  13485. static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo(ASN1encoding_t enc, PLocationRequest_destinationInfo *val)
  13486. {
  13487. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_destinationInfo_ElmFn);
  13488. }
  13489. static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo_ElmFn(ASN1encoding_t enc, PLocationRequest_destinationInfo val)
  13490. {
  13491. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13492. return 0;
  13493. return 1;
  13494. }
  13495. static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo(ASN1decoding_t dec, PLocationRequest_destinationInfo *val)
  13496. {
  13497. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_destinationInfo_ElmFn, sizeof(**val));
  13498. }
  13499. static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo_ElmFn(ASN1decoding_t dec, PLocationRequest_destinationInfo val)
  13500. {
  13501. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13502. return 0;
  13503. return 1;
  13504. }
  13505. static void ASN1CALL ASN1Free_LocationRequest_destinationInfo(PLocationRequest_destinationInfo *val)
  13506. {
  13507. if (val) {
  13508. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_destinationInfo_ElmFn);
  13509. }
  13510. }
  13511. static void ASN1CALL ASN1Free_LocationRequest_destinationInfo_ElmFn(PLocationRequest_destinationInfo val)
  13512. {
  13513. if (val) {
  13514. ASN1Free_AliasAddress(&val->value);
  13515. }
  13516. }
  13517. static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints *val)
  13518. {
  13519. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_alternateEndpoints_ElmFn);
  13520. }
  13521. static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints val)
  13522. {
  13523. if (!ASN1Enc_Endpoint(enc, &val->value))
  13524. return 0;
  13525. return 1;
  13526. }
  13527. static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints *val)
  13528. {
  13529. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_alternateEndpoints_ElmFn, sizeof(**val));
  13530. }
  13531. static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints val)
  13532. {
  13533. if (!ASN1Dec_Endpoint(dec, &val->value))
  13534. return 0;
  13535. return 1;
  13536. }
  13537. static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints(PAdmissionConfirm_alternateEndpoints *val)
  13538. {
  13539. if (val) {
  13540. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_alternateEndpoints_ElmFn);
  13541. }
  13542. }
  13543. static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints_ElmFn(PAdmissionConfirm_alternateEndpoints val)
  13544. {
  13545. if (val) {
  13546. ASN1Free_Endpoint(&val->value);
  13547. }
  13548. }
  13549. static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress *val)
  13550. {
  13551. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_remoteExtensionAddress_ElmFn);
  13552. }
  13553. static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress val)
  13554. {
  13555. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13556. return 0;
  13557. return 1;
  13558. }
  13559. static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress *val)
  13560. {
  13561. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_remoteExtensionAddress_ElmFn, sizeof(**val));
  13562. }
  13563. static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress val)
  13564. {
  13565. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13566. return 0;
  13567. return 1;
  13568. }
  13569. static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress(PAdmissionConfirm_remoteExtensionAddress *val)
  13570. {
  13571. if (val) {
  13572. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_remoteExtensionAddress_ElmFn);
  13573. }
  13574. }
  13575. static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress_ElmFn(PAdmissionConfirm_remoteExtensionAddress val)
  13576. {
  13577. if (val) {
  13578. ASN1Free_AliasAddress(&val->value);
  13579. }
  13580. }
  13581. static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo *val)
  13582. {
  13583. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_destExtraCallInfo_ElmFn);
  13584. }
  13585. static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo val)
  13586. {
  13587. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13588. return 0;
  13589. return 1;
  13590. }
  13591. static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo *val)
  13592. {
  13593. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_destExtraCallInfo_ElmFn, sizeof(**val));
  13594. }
  13595. static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo val)
  13596. {
  13597. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13598. return 0;
  13599. return 1;
  13600. }
  13601. static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo(PAdmissionConfirm_destExtraCallInfo *val)
  13602. {
  13603. if (val) {
  13604. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_destExtraCallInfo_ElmFn);
  13605. }
  13606. }
  13607. static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo_ElmFn(PAdmissionConfirm_destExtraCallInfo val)
  13608. {
  13609. if (val) {
  13610. ASN1Free_AliasAddress(&val->value);
  13611. }
  13612. }
  13613. static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo *val)
  13614. {
  13615. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_destinationInfo_ElmFn);
  13616. }
  13617. static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo val)
  13618. {
  13619. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13620. return 0;
  13621. return 1;
  13622. }
  13623. static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo *val)
  13624. {
  13625. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_destinationInfo_ElmFn, sizeof(**val));
  13626. }
  13627. static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo val)
  13628. {
  13629. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13630. return 0;
  13631. return 1;
  13632. }
  13633. static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo(PAdmissionConfirm_destinationInfo *val)
  13634. {
  13635. if (val) {
  13636. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_destinationInfo_ElmFn);
  13637. }
  13638. }
  13639. static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo_ElmFn(PAdmissionConfirm_destinationInfo val)
  13640. {
  13641. if (val) {
  13642. ASN1Free_AliasAddress(&val->value);
  13643. }
  13644. }
  13645. static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives(ASN1encoding_t enc, PAdmissionRequest_destAlternatives *val)
  13646. {
  13647. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destAlternatives_ElmFn);
  13648. }
  13649. static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destAlternatives val)
  13650. {
  13651. if (!ASN1Enc_Endpoint(enc, &val->value))
  13652. return 0;
  13653. return 1;
  13654. }
  13655. static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives(ASN1decoding_t dec, PAdmissionRequest_destAlternatives *val)
  13656. {
  13657. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destAlternatives_ElmFn, sizeof(**val));
  13658. }
  13659. static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destAlternatives val)
  13660. {
  13661. if (!ASN1Dec_Endpoint(dec, &val->value))
  13662. return 0;
  13663. return 1;
  13664. }
  13665. static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives(PAdmissionRequest_destAlternatives *val)
  13666. {
  13667. if (val) {
  13668. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destAlternatives_ElmFn);
  13669. }
  13670. }
  13671. static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives_ElmFn(PAdmissionRequest_destAlternatives val)
  13672. {
  13673. if (val) {
  13674. ASN1Free_Endpoint(&val->value);
  13675. }
  13676. }
  13677. static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives *val)
  13678. {
  13679. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_srcAlternatives_ElmFn);
  13680. }
  13681. static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives_ElmFn(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives val)
  13682. {
  13683. if (!ASN1Enc_Endpoint(enc, &val->value))
  13684. return 0;
  13685. return 1;
  13686. }
  13687. static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives *val)
  13688. {
  13689. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_srcAlternatives_ElmFn, sizeof(**val));
  13690. }
  13691. static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives_ElmFn(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives val)
  13692. {
  13693. if (!ASN1Dec_Endpoint(dec, &val->value))
  13694. return 0;
  13695. return 1;
  13696. }
  13697. static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives(PAdmissionRequest_srcAlternatives *val)
  13698. {
  13699. if (val) {
  13700. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_srcAlternatives_ElmFn);
  13701. }
  13702. }
  13703. static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives_ElmFn(PAdmissionRequest_srcAlternatives val)
  13704. {
  13705. if (val) {
  13706. ASN1Free_Endpoint(&val->value);
  13707. }
  13708. }
  13709. static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo(ASN1encoding_t enc, PAdmissionRequest_srcInfo *val)
  13710. {
  13711. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_srcInfo_ElmFn);
  13712. }
  13713. static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_srcInfo val)
  13714. {
  13715. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13716. return 0;
  13717. return 1;
  13718. }
  13719. static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo(ASN1decoding_t dec, PAdmissionRequest_srcInfo *val)
  13720. {
  13721. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_srcInfo_ElmFn, sizeof(**val));
  13722. }
  13723. static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_srcInfo val)
  13724. {
  13725. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13726. return 0;
  13727. return 1;
  13728. }
  13729. static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo(PAdmissionRequest_srcInfo *val)
  13730. {
  13731. if (val) {
  13732. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_srcInfo_ElmFn);
  13733. }
  13734. }
  13735. static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo_ElmFn(PAdmissionRequest_srcInfo val)
  13736. {
  13737. if (val) {
  13738. ASN1Free_AliasAddress(&val->value);
  13739. }
  13740. }
  13741. static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo *val)
  13742. {
  13743. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destExtraCallInfo_ElmFn);
  13744. }
  13745. static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo val)
  13746. {
  13747. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13748. return 0;
  13749. return 1;
  13750. }
  13751. static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo *val)
  13752. {
  13753. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destExtraCallInfo_ElmFn, sizeof(**val));
  13754. }
  13755. static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo val)
  13756. {
  13757. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13758. return 0;
  13759. return 1;
  13760. }
  13761. static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo(PAdmissionRequest_destExtraCallInfo *val)
  13762. {
  13763. if (val) {
  13764. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destExtraCallInfo_ElmFn);
  13765. }
  13766. }
  13767. static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo_ElmFn(PAdmissionRequest_destExtraCallInfo val)
  13768. {
  13769. if (val) {
  13770. ASN1Free_AliasAddress(&val->value);
  13771. }
  13772. }
  13773. static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo(ASN1encoding_t enc, PAdmissionRequest_destinationInfo *val)
  13774. {
  13775. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destinationInfo_ElmFn);
  13776. }
  13777. static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destinationInfo val)
  13778. {
  13779. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13780. return 0;
  13781. return 1;
  13782. }
  13783. static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo(ASN1decoding_t dec, PAdmissionRequest_destinationInfo *val)
  13784. {
  13785. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destinationInfo_ElmFn, sizeof(**val));
  13786. }
  13787. static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destinationInfo val)
  13788. {
  13789. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13790. return 0;
  13791. return 1;
  13792. }
  13793. static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo(PAdmissionRequest_destinationInfo *val)
  13794. {
  13795. if (val) {
  13796. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destinationInfo_ElmFn);
  13797. }
  13798. }
  13799. static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo_ElmFn(PAdmissionRequest_destinationInfo val)
  13800. {
  13801. if (val) {
  13802. ASN1Free_AliasAddress(&val->value);
  13803. }
  13804. }
  13805. static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints *val)
  13806. {
  13807. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_alternateEndpoints_ElmFn);
  13808. }
  13809. static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints val)
  13810. {
  13811. if (!ASN1Enc_Endpoint(enc, &val->value))
  13812. return 0;
  13813. return 1;
  13814. }
  13815. static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints *val)
  13816. {
  13817. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_alternateEndpoints_ElmFn, sizeof(**val));
  13818. }
  13819. static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints val)
  13820. {
  13821. if (!ASN1Dec_Endpoint(dec, &val->value))
  13822. return 0;
  13823. return 1;
  13824. }
  13825. static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints(PUnregistrationRequest_alternateEndpoints *val)
  13826. {
  13827. if (val) {
  13828. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_alternateEndpoints_ElmFn);
  13829. }
  13830. }
  13831. static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints_ElmFn(PUnregistrationRequest_alternateEndpoints val)
  13832. {
  13833. if (val) {
  13834. ASN1Free_Endpoint(&val->value);
  13835. }
  13836. }
  13837. static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias *val)
  13838. {
  13839. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_endpointAlias_ElmFn);
  13840. }
  13841. static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias val)
  13842. {
  13843. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13844. return 0;
  13845. return 1;
  13846. }
  13847. static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias *val)
  13848. {
  13849. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_endpointAlias_ElmFn, sizeof(**val));
  13850. }
  13851. static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias val)
  13852. {
  13853. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13854. return 0;
  13855. return 1;
  13856. }
  13857. static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias(PUnregistrationRequest_endpointAlias *val)
  13858. {
  13859. if (val) {
  13860. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_endpointAlias_ElmFn);
  13861. }
  13862. }
  13863. static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias_ElmFn(PUnregistrationRequest_endpointAlias val)
  13864. {
  13865. if (val) {
  13866. ASN1Free_AliasAddress(&val->value);
  13867. }
  13868. }
  13869. static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias *val)
  13870. {
  13871. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRejectReason_duplicateAlias_ElmFn);
  13872. }
  13873. static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias_ElmFn(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias val)
  13874. {
  13875. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13876. return 0;
  13877. return 1;
  13878. }
  13879. static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias *val)
  13880. {
  13881. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRejectReason_duplicateAlias_ElmFn, sizeof(**val));
  13882. }
  13883. static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias_ElmFn(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias val)
  13884. {
  13885. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13886. return 0;
  13887. return 1;
  13888. }
  13889. static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias(PRegistrationRejectReason_duplicateAlias *val)
  13890. {
  13891. if (val) {
  13892. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRejectReason_duplicateAlias_ElmFn);
  13893. }
  13894. }
  13895. static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias_ElmFn(PRegistrationRejectReason_duplicateAlias val)
  13896. {
  13897. if (val) {
  13898. ASN1Free_AliasAddress(&val->value);
  13899. }
  13900. }
  13901. static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias *val)
  13902. {
  13903. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_terminalAlias_ElmFn);
  13904. }
  13905. static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias val)
  13906. {
  13907. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13908. return 0;
  13909. return 1;
  13910. }
  13911. static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias *val)
  13912. {
  13913. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_terminalAlias_ElmFn, sizeof(**val));
  13914. }
  13915. static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias val)
  13916. {
  13917. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13918. return 0;
  13919. return 1;
  13920. }
  13921. static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias(PRegistrationConfirm_terminalAlias *val)
  13922. {
  13923. if (val) {
  13924. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_terminalAlias_ElmFn);
  13925. }
  13926. }
  13927. static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias_ElmFn(PRegistrationConfirm_terminalAlias val)
  13928. {
  13929. if (val) {
  13930. ASN1Free_AliasAddress(&val->value);
  13931. }
  13932. }
  13933. static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints *val)
  13934. {
  13935. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_alternateEndpoints_ElmFn);
  13936. }
  13937. static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints val)
  13938. {
  13939. if (!ASN1Enc_Endpoint(enc, &val->value))
  13940. return 0;
  13941. return 1;
  13942. }
  13943. static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints *val)
  13944. {
  13945. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_alternateEndpoints_ElmFn, sizeof(**val));
  13946. }
  13947. static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints val)
  13948. {
  13949. if (!ASN1Dec_Endpoint(dec, &val->value))
  13950. return 0;
  13951. return 1;
  13952. }
  13953. static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints(PRegistrationRequest_alternateEndpoints *val)
  13954. {
  13955. if (val) {
  13956. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_alternateEndpoints_ElmFn);
  13957. }
  13958. }
  13959. static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints_ElmFn(PRegistrationRequest_alternateEndpoints val)
  13960. {
  13961. if (val) {
  13962. ASN1Free_Endpoint(&val->value);
  13963. }
  13964. }
  13965. static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias(ASN1encoding_t enc, PRegistrationRequest_terminalAlias *val)
  13966. {
  13967. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_terminalAlias_ElmFn);
  13968. }
  13969. static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias_ElmFn(ASN1encoding_t enc, PRegistrationRequest_terminalAlias val)
  13970. {
  13971. if (!ASN1Enc_AliasAddress(enc, &val->value))
  13972. return 0;
  13973. return 1;
  13974. }
  13975. static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias(ASN1decoding_t dec, PRegistrationRequest_terminalAlias *val)
  13976. {
  13977. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_terminalAlias_ElmFn, sizeof(**val));
  13978. }
  13979. static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias_ElmFn(ASN1decoding_t dec, PRegistrationRequest_terminalAlias val)
  13980. {
  13981. if (!ASN1Dec_AliasAddress(dec, &val->value))
  13982. return 0;
  13983. return 1;
  13984. }
  13985. static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias(PRegistrationRequest_terminalAlias *val)
  13986. {
  13987. if (val) {
  13988. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_terminalAlias_ElmFn);
  13989. }
  13990. }
  13991. static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias_ElmFn(PRegistrationRequest_terminalAlias val)
  13992. {
  13993. if (val) {
  13994. ASN1Free_AliasAddress(&val->value);
  13995. }
  13996. }
  13997. static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints *val)
  13998. {
  13999. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_alternateEndpoints_ElmFn);
  14000. }
  14001. static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints val)
  14002. {
  14003. if (!ASN1Enc_Endpoint(enc, &val->value))
  14004. return 0;
  14005. return 1;
  14006. }
  14007. static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints *val)
  14008. {
  14009. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_alternateEndpoints_ElmFn, sizeof(**val));
  14010. }
  14011. static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints val)
  14012. {
  14013. if (!ASN1Dec_Endpoint(dec, &val->value))
  14014. return 0;
  14015. return 1;
  14016. }
  14017. static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints(PGatekeeperRequest_alternateEndpoints *val)
  14018. {
  14019. if (val) {
  14020. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_alternateEndpoints_ElmFn);
  14021. }
  14022. }
  14023. static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints_ElmFn(PGatekeeperRequest_alternateEndpoints val)
  14024. {
  14025. if (val) {
  14026. ASN1Free_Endpoint(&val->value);
  14027. }
  14028. }
  14029. static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias *val)
  14030. {
  14031. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_endpointAlias_ElmFn);
  14032. }
  14033. static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias val)
  14034. {
  14035. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14036. return 0;
  14037. return 1;
  14038. }
  14039. static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias *val)
  14040. {
  14041. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_endpointAlias_ElmFn, sizeof(**val));
  14042. }
  14043. static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias val)
  14044. {
  14045. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14046. return 0;
  14047. return 1;
  14048. }
  14049. static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias(PGatekeeperRequest_endpointAlias *val)
  14050. {
  14051. if (val) {
  14052. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_endpointAlias_ElmFn);
  14053. }
  14054. }
  14055. static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias_ElmFn(PGatekeeperRequest_endpointAlias val)
  14056. {
  14057. if (val) {
  14058. ASN1Free_AliasAddress(&val->value);
  14059. }
  14060. }
  14061. static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoEPPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoEPPwdHash *val)
  14062. {
  14063. ASN1uint32_t l;
  14064. if (!ASN1Enc_AliasAddress(enc, &(val)->alias))
  14065. return 0;
  14066. l = ASN1uint32_uoctets((val)->timeStamp - 1);
  14067. if (!ASN1PEREncBitVal(enc, 2, l - 1))
  14068. return 0;
  14069. ASN1PEREncAlignment(enc);
  14070. if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
  14071. return 0;
  14072. if (!ASN1Enc_HASHED(enc, &(val)->token))
  14073. return 0;
  14074. return 1;
  14075. }
  14076. static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoEPPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoEPPwdHash *val)
  14077. {
  14078. ASN1uint32_t l;
  14079. if (!ASN1Dec_AliasAddress(dec, &(val)->alias))
  14080. return 0;
  14081. if (!ASN1PERDecU32Val(dec, 2, &l))
  14082. return 0;
  14083. l += 1;
  14084. ASN1PERDecAlignment(dec);
  14085. if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
  14086. return 0;
  14087. (val)->timeStamp += 1;
  14088. if (!ASN1Dec_HASHED(dec, &(val)->token))
  14089. return 0;
  14090. return 1;
  14091. }
  14092. static void ASN1CALL ASN1Free_CryptoH323Token_cryptoEPPwdHash(CryptoH323Token_cryptoEPPwdHash *val)
  14093. {
  14094. if (val) {
  14095. ASN1Free_AliasAddress(&(val)->alias);
  14096. ASN1Free_HASHED(&(val)->token);
  14097. }
  14098. }
  14099. static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo(ASN1encoding_t enc, PEndpoint_destExtraCallInfo *val)
  14100. {
  14101. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_destExtraCallInfo_ElmFn);
  14102. }
  14103. static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PEndpoint_destExtraCallInfo val)
  14104. {
  14105. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14106. return 0;
  14107. return 1;
  14108. }
  14109. static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo(ASN1decoding_t dec, PEndpoint_destExtraCallInfo *val)
  14110. {
  14111. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_destExtraCallInfo_ElmFn, sizeof(**val));
  14112. }
  14113. static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PEndpoint_destExtraCallInfo val)
  14114. {
  14115. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14116. return 0;
  14117. return 1;
  14118. }
  14119. static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo(PEndpoint_destExtraCallInfo *val)
  14120. {
  14121. if (val) {
  14122. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_destExtraCallInfo_ElmFn);
  14123. }
  14124. }
  14125. static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo_ElmFn(PEndpoint_destExtraCallInfo val)
  14126. {
  14127. if (val) {
  14128. ASN1Free_AliasAddress(&val->value);
  14129. }
  14130. }
  14131. static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress *val)
  14132. {
  14133. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_remoteExtensionAddress_ElmFn);
  14134. }
  14135. static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress val)
  14136. {
  14137. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14138. return 0;
  14139. return 1;
  14140. }
  14141. static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress *val)
  14142. {
  14143. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_remoteExtensionAddress_ElmFn, sizeof(**val));
  14144. }
  14145. static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress val)
  14146. {
  14147. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14148. return 0;
  14149. return 1;
  14150. }
  14151. static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress(PEndpoint_remoteExtensionAddress *val)
  14152. {
  14153. if (val) {
  14154. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_remoteExtensionAddress_ElmFn);
  14155. }
  14156. }
  14157. static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress_ElmFn(PEndpoint_remoteExtensionAddress val)
  14158. {
  14159. if (val) {
  14160. ASN1Free_AliasAddress(&val->value);
  14161. }
  14162. }
  14163. static int ASN1CALL ASN1Enc_Endpoint_aliasAddress(ASN1encoding_t enc, PEndpoint_aliasAddress *val)
  14164. {
  14165. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_aliasAddress_ElmFn);
  14166. }
  14167. static int ASN1CALL ASN1Enc_Endpoint_aliasAddress_ElmFn(ASN1encoding_t enc, PEndpoint_aliasAddress val)
  14168. {
  14169. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14170. return 0;
  14171. return 1;
  14172. }
  14173. static int ASN1CALL ASN1Dec_Endpoint_aliasAddress(ASN1decoding_t dec, PEndpoint_aliasAddress *val)
  14174. {
  14175. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_aliasAddress_ElmFn, sizeof(**val));
  14176. }
  14177. static int ASN1CALL ASN1Dec_Endpoint_aliasAddress_ElmFn(ASN1decoding_t dec, PEndpoint_aliasAddress val)
  14178. {
  14179. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14180. return 0;
  14181. return 1;
  14182. }
  14183. static void ASN1CALL ASN1Free_Endpoint_aliasAddress(PEndpoint_aliasAddress *val)
  14184. {
  14185. if (val) {
  14186. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_aliasAddress_ElmFn);
  14187. }
  14188. }
  14189. static void ASN1CALL ASN1Free_Endpoint_aliasAddress_ElmFn(PEndpoint_aliasAddress val)
  14190. {
  14191. if (val) {
  14192. ASN1Free_AliasAddress(&val->value);
  14193. }
  14194. }
  14195. static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes *val)
  14196. {
  14197. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_NonStandardProtocol_supportedPrefixes_ElmFn);
  14198. }
  14199. static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes_ElmFn(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes val)
  14200. {
  14201. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14202. return 0;
  14203. return 1;
  14204. }
  14205. static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes *val)
  14206. {
  14207. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_NonStandardProtocol_supportedPrefixes_ElmFn, sizeof(**val));
  14208. }
  14209. static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes_ElmFn(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes val)
  14210. {
  14211. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14212. return 0;
  14213. return 1;
  14214. }
  14215. static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes(PNonStandardProtocol_supportedPrefixes *val)
  14216. {
  14217. if (val) {
  14218. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_NonStandardProtocol_supportedPrefixes_ElmFn);
  14219. }
  14220. }
  14221. static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes_ElmFn(PNonStandardProtocol_supportedPrefixes val)
  14222. {
  14223. if (val) {
  14224. ASN1Free_SupportedPrefix(&val->value);
  14225. }
  14226. }
  14227. static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes *val)
  14228. {
  14229. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_T120OnlyCaps_supportedPrefixes_ElmFn);
  14230. }
  14231. static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes val)
  14232. {
  14233. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14234. return 0;
  14235. return 1;
  14236. }
  14237. static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes *val)
  14238. {
  14239. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_T120OnlyCaps_supportedPrefixes_ElmFn, sizeof(**val));
  14240. }
  14241. static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes val)
  14242. {
  14243. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14244. return 0;
  14245. return 1;
  14246. }
  14247. static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes(PT120OnlyCaps_supportedPrefixes *val)
  14248. {
  14249. if (val) {
  14250. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_T120OnlyCaps_supportedPrefixes_ElmFn);
  14251. }
  14252. }
  14253. static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes_ElmFn(PT120OnlyCaps_supportedPrefixes val)
  14254. {
  14255. if (val) {
  14256. ASN1Free_SupportedPrefix(&val->value);
  14257. }
  14258. }
  14259. static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes *val)
  14260. {
  14261. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_VoiceCaps_supportedPrefixes_ElmFn);
  14262. }
  14263. static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes val)
  14264. {
  14265. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14266. return 0;
  14267. return 1;
  14268. }
  14269. static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes *val)
  14270. {
  14271. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_VoiceCaps_supportedPrefixes_ElmFn, sizeof(**val));
  14272. }
  14273. static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes val)
  14274. {
  14275. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14276. return 0;
  14277. return 1;
  14278. }
  14279. static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes(PVoiceCaps_supportedPrefixes *val)
  14280. {
  14281. if (val) {
  14282. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_VoiceCaps_supportedPrefixes_ElmFn);
  14283. }
  14284. }
  14285. static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes_ElmFn(PVoiceCaps_supportedPrefixes val)
  14286. {
  14287. if (val) {
  14288. ASN1Free_SupportedPrefix(&val->value);
  14289. }
  14290. }
  14291. static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes(ASN1encoding_t enc, PH324Caps_supportedPrefixes *val)
  14292. {
  14293. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H324Caps_supportedPrefixes_ElmFn);
  14294. }
  14295. static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH324Caps_supportedPrefixes val)
  14296. {
  14297. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14298. return 0;
  14299. return 1;
  14300. }
  14301. static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes(ASN1decoding_t dec, PH324Caps_supportedPrefixes *val)
  14302. {
  14303. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H324Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14304. }
  14305. static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH324Caps_supportedPrefixes val)
  14306. {
  14307. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14308. return 0;
  14309. return 1;
  14310. }
  14311. static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes(PH324Caps_supportedPrefixes *val)
  14312. {
  14313. if (val) {
  14314. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H324Caps_supportedPrefixes_ElmFn);
  14315. }
  14316. }
  14317. static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes_ElmFn(PH324Caps_supportedPrefixes val)
  14318. {
  14319. if (val) {
  14320. ASN1Free_SupportedPrefix(&val->value);
  14321. }
  14322. }
  14323. static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes(ASN1encoding_t enc, PH323Caps_supportedPrefixes *val)
  14324. {
  14325. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323Caps_supportedPrefixes_ElmFn);
  14326. }
  14327. static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH323Caps_supportedPrefixes val)
  14328. {
  14329. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14330. return 0;
  14331. return 1;
  14332. }
  14333. static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes(ASN1decoding_t dec, PH323Caps_supportedPrefixes *val)
  14334. {
  14335. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14336. }
  14337. static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH323Caps_supportedPrefixes val)
  14338. {
  14339. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14340. return 0;
  14341. return 1;
  14342. }
  14343. static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes(PH323Caps_supportedPrefixes *val)
  14344. {
  14345. if (val) {
  14346. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323Caps_supportedPrefixes_ElmFn);
  14347. }
  14348. }
  14349. static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes_ElmFn(PH323Caps_supportedPrefixes val)
  14350. {
  14351. if (val) {
  14352. ASN1Free_SupportedPrefix(&val->value);
  14353. }
  14354. }
  14355. static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes(ASN1encoding_t enc, PH322Caps_supportedPrefixes *val)
  14356. {
  14357. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H322Caps_supportedPrefixes_ElmFn);
  14358. }
  14359. static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH322Caps_supportedPrefixes val)
  14360. {
  14361. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14362. return 0;
  14363. return 1;
  14364. }
  14365. static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes(ASN1decoding_t dec, PH322Caps_supportedPrefixes *val)
  14366. {
  14367. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H322Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14368. }
  14369. static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH322Caps_supportedPrefixes val)
  14370. {
  14371. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14372. return 0;
  14373. return 1;
  14374. }
  14375. static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes(PH322Caps_supportedPrefixes *val)
  14376. {
  14377. if (val) {
  14378. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H322Caps_supportedPrefixes_ElmFn);
  14379. }
  14380. }
  14381. static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes_ElmFn(PH322Caps_supportedPrefixes val)
  14382. {
  14383. if (val) {
  14384. ASN1Free_SupportedPrefix(&val->value);
  14385. }
  14386. }
  14387. static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes(ASN1encoding_t enc, PH321Caps_supportedPrefixes *val)
  14388. {
  14389. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H321Caps_supportedPrefixes_ElmFn);
  14390. }
  14391. static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH321Caps_supportedPrefixes val)
  14392. {
  14393. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14394. return 0;
  14395. return 1;
  14396. }
  14397. static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes(ASN1decoding_t dec, PH321Caps_supportedPrefixes *val)
  14398. {
  14399. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H321Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14400. }
  14401. static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH321Caps_supportedPrefixes val)
  14402. {
  14403. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14404. return 0;
  14405. return 1;
  14406. }
  14407. static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes(PH321Caps_supportedPrefixes *val)
  14408. {
  14409. if (val) {
  14410. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H321Caps_supportedPrefixes_ElmFn);
  14411. }
  14412. }
  14413. static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes_ElmFn(PH321Caps_supportedPrefixes val)
  14414. {
  14415. if (val) {
  14416. ASN1Free_SupportedPrefix(&val->value);
  14417. }
  14418. }
  14419. static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes(ASN1encoding_t enc, PH320Caps_supportedPrefixes *val)
  14420. {
  14421. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H320Caps_supportedPrefixes_ElmFn);
  14422. }
  14423. static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH320Caps_supportedPrefixes val)
  14424. {
  14425. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14426. return 0;
  14427. return 1;
  14428. }
  14429. static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes(ASN1decoding_t dec, PH320Caps_supportedPrefixes *val)
  14430. {
  14431. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H320Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14432. }
  14433. static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH320Caps_supportedPrefixes val)
  14434. {
  14435. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14436. return 0;
  14437. return 1;
  14438. }
  14439. static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes(PH320Caps_supportedPrefixes *val)
  14440. {
  14441. if (val) {
  14442. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H320Caps_supportedPrefixes_ElmFn);
  14443. }
  14444. }
  14445. static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes_ElmFn(PH320Caps_supportedPrefixes val)
  14446. {
  14447. if (val) {
  14448. ASN1Free_SupportedPrefix(&val->value);
  14449. }
  14450. }
  14451. static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes(ASN1encoding_t enc, PH310Caps_supportedPrefixes *val)
  14452. {
  14453. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H310Caps_supportedPrefixes_ElmFn);
  14454. }
  14455. static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH310Caps_supportedPrefixes val)
  14456. {
  14457. if (!ASN1Enc_SupportedPrefix(enc, &val->value))
  14458. return 0;
  14459. return 1;
  14460. }
  14461. static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes(ASN1decoding_t dec, PH310Caps_supportedPrefixes *val)
  14462. {
  14463. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H310Caps_supportedPrefixes_ElmFn, sizeof(**val));
  14464. }
  14465. static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH310Caps_supportedPrefixes val)
  14466. {
  14467. if (!ASN1Dec_SupportedPrefix(dec, &val->value))
  14468. return 0;
  14469. return 1;
  14470. }
  14471. static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes(PH310Caps_supportedPrefixes *val)
  14472. {
  14473. if (val) {
  14474. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H310Caps_supportedPrefixes_ElmFn);
  14475. }
  14476. }
  14477. static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes_ElmFn(PH310Caps_supportedPrefixes val)
  14478. {
  14479. if (val) {
  14480. ASN1Free_SupportedPrefix(&val->value);
  14481. }
  14482. }
  14483. static int ASN1CALL ASN1Enc_GatewayInfo_protocol(ASN1encoding_t enc, PGatewayInfo_protocol *val)
  14484. {
  14485. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatewayInfo_protocol_ElmFn);
  14486. }
  14487. static int ASN1CALL ASN1Enc_GatewayInfo_protocol_ElmFn(ASN1encoding_t enc, PGatewayInfo_protocol val)
  14488. {
  14489. if (!ASN1Enc_SupportedProtocols(enc, &val->value))
  14490. return 0;
  14491. return 1;
  14492. }
  14493. static int ASN1CALL ASN1Dec_GatewayInfo_protocol(ASN1decoding_t dec, PGatewayInfo_protocol *val)
  14494. {
  14495. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatewayInfo_protocol_ElmFn, sizeof(**val));
  14496. }
  14497. static int ASN1CALL ASN1Dec_GatewayInfo_protocol_ElmFn(ASN1decoding_t dec, PGatewayInfo_protocol val)
  14498. {
  14499. if (!ASN1Dec_SupportedProtocols(dec, &val->value))
  14500. return 0;
  14501. return 1;
  14502. }
  14503. static void ASN1CALL ASN1Free_GatewayInfo_protocol(PGatewayInfo_protocol *val)
  14504. {
  14505. if (val) {
  14506. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatewayInfo_protocol_ElmFn);
  14507. }
  14508. }
  14509. static void ASN1CALL ASN1Free_GatewayInfo_protocol_ElmFn(PGatewayInfo_protocol val)
  14510. {
  14511. if (val) {
  14512. ASN1Free_SupportedProtocols(&val->value);
  14513. }
  14514. }
  14515. static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo *val)
  14516. {
  14517. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_destExtraCallInfo_ElmFn);
  14518. }
  14519. static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo val)
  14520. {
  14521. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14522. return 0;
  14523. return 1;
  14524. }
  14525. static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo *val)
  14526. {
  14527. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_destExtraCallInfo_ElmFn, sizeof(**val));
  14528. }
  14529. static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo val)
  14530. {
  14531. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14532. return 0;
  14533. return 1;
  14534. }
  14535. static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo(PFacility_UUIE_destExtraCallInfo *val)
  14536. {
  14537. if (val) {
  14538. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_destExtraCallInfo_ElmFn);
  14539. }
  14540. }
  14541. static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo_ElmFn(PFacility_UUIE_destExtraCallInfo val)
  14542. {
  14543. if (val) {
  14544. ASN1Free_AliasAddress(&val->value);
  14545. }
  14546. }
  14547. static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress *val)
  14548. {
  14549. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_alternativeAliasAddress_ElmFn);
  14550. }
  14551. static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress_ElmFn(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress val)
  14552. {
  14553. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14554. return 0;
  14555. return 1;
  14556. }
  14557. static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress *val)
  14558. {
  14559. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_alternativeAliasAddress_ElmFn, sizeof(**val));
  14560. }
  14561. static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress_ElmFn(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress val)
  14562. {
  14563. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14564. return 0;
  14565. return 1;
  14566. }
  14567. static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress(PFacility_UUIE_alternativeAliasAddress *val)
  14568. {
  14569. if (val) {
  14570. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_alternativeAliasAddress_ElmFn);
  14571. }
  14572. }
  14573. static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress_ElmFn(PFacility_UUIE_alternativeAliasAddress val)
  14574. {
  14575. if (val) {
  14576. ASN1Free_AliasAddress(&val->value);
  14577. }
  14578. }
  14579. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo *val)
  14580. {
  14581. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destExtraCallInfo_ElmFn);
  14582. }
  14583. static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo val)
  14584. {
  14585. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14586. return 0;
  14587. return 1;
  14588. }
  14589. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo *val)
  14590. {
  14591. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destExtraCallInfo_ElmFn, sizeof(**val));
  14592. }
  14593. static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo val)
  14594. {
  14595. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14596. return 0;
  14597. return 1;
  14598. }
  14599. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo(PSetup_UUIE_destExtraCallInfo *val)
  14600. {
  14601. if (val) {
  14602. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destExtraCallInfo_ElmFn);
  14603. }
  14604. }
  14605. static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo_ElmFn(PSetup_UUIE_destExtraCallInfo val)
  14606. {
  14607. if (val) {
  14608. ASN1Free_AliasAddress(&val->value);
  14609. }
  14610. }
  14611. static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress(ASN1encoding_t enc, PSetup_UUIE_destinationAddress *val)
  14612. {
  14613. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destinationAddress_ElmFn);
  14614. }
  14615. static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destinationAddress val)
  14616. {
  14617. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14618. return 0;
  14619. return 1;
  14620. }
  14621. static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress(ASN1decoding_t dec, PSetup_UUIE_destinationAddress *val)
  14622. {
  14623. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destinationAddress_ElmFn, sizeof(**val));
  14624. }
  14625. static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destinationAddress val)
  14626. {
  14627. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14628. return 0;
  14629. return 1;
  14630. }
  14631. static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress(PSetup_UUIE_destinationAddress *val)
  14632. {
  14633. if (val) {
  14634. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destinationAddress_ElmFn);
  14635. }
  14636. }
  14637. static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress_ElmFn(PSetup_UUIE_destinationAddress val)
  14638. {
  14639. if (val) {
  14640. ASN1Free_AliasAddress(&val->value);
  14641. }
  14642. }
  14643. static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress(ASN1encoding_t enc, PSetup_UUIE_sourceAddress *val)
  14644. {
  14645. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_sourceAddress_ElmFn);
  14646. }
  14647. static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress_ElmFn(ASN1encoding_t enc, PSetup_UUIE_sourceAddress val)
  14648. {
  14649. if (!ASN1Enc_AliasAddress(enc, &val->value))
  14650. return 0;
  14651. return 1;
  14652. }
  14653. static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress(ASN1decoding_t dec, PSetup_UUIE_sourceAddress *val)
  14654. {
  14655. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_sourceAddress_ElmFn, sizeof(**val));
  14656. }
  14657. static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress_ElmFn(ASN1decoding_t dec, PSetup_UUIE_sourceAddress val)
  14658. {
  14659. if (!ASN1Dec_AliasAddress(dec, &val->value))
  14660. return 0;
  14661. return 1;
  14662. }
  14663. static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress(PSetup_UUIE_sourceAddress *val)
  14664. {
  14665. if (val) {
  14666. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_sourceAddress_ElmFn);
  14667. }
  14668. }
  14669. static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress_ElmFn(PSetup_UUIE_sourceAddress val)
  14670. {
  14671. if (val) {
  14672. ASN1Free_AliasAddress(&val->value);
  14673. }
  14674. }
  14675. static int ASN1CALL ASN1Enc_Alerting_UUIE(ASN1encoding_t enc, Alerting_UUIE *val)
  14676. {
  14677. ASN1octet_t o[2];
  14678. ASN1uint32_t y;
  14679. ASN1encoding_t ee;
  14680. CopyMemory(o, (val)->o, 2);
  14681. o[1] |= 0x80;
  14682. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  14683. if (!ASN1PEREncBitVal(enc, 1, y))
  14684. return 0;
  14685. if (!ASN1PEREncBits(enc, 1, o))
  14686. return 0;
  14687. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  14688. return 0;
  14689. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  14690. return 0;
  14691. if (o[0] & 0x80) {
  14692. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  14693. return 0;
  14694. }
  14695. if (y) {
  14696. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  14697. return 0;
  14698. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  14699. return 0;
  14700. if (o[1] & 0x80) {
  14701. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  14702. return 0;
  14703. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14704. return 0;
  14705. }
  14706. if (o[1] & 0x40) {
  14707. if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
  14708. return 0;
  14709. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14710. return 0;
  14711. }
  14712. if (o[1] & 0x20) {
  14713. if (!ASN1Enc_Alerting_UUIE_tokens(ee, &(val)->tokens))
  14714. return 0;
  14715. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14716. return 0;
  14717. }
  14718. if (o[1] & 0x10) {
  14719. if (!ASN1Enc_Alerting_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  14720. return 0;
  14721. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14722. return 0;
  14723. }
  14724. if (o[1] & 0x8) {
  14725. if (!ASN1Enc_Alerting_UUIE_fastStart(ee, &(val)->fastStart))
  14726. return 0;
  14727. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14728. return 0;
  14729. }
  14730. ASN1_CloseEncoder2(ee);
  14731. }
  14732. return 1;
  14733. }
  14734. static int ASN1CALL ASN1Dec_Alerting_UUIE(ASN1decoding_t dec, Alerting_UUIE *val)
  14735. {
  14736. ASN1uint32_t y;
  14737. ASN1decoding_t dd;
  14738. ASN1octet_t *db;
  14739. ASN1uint32_t ds;
  14740. ASN1uint32_t i;
  14741. ASN1uint32_t e;
  14742. if (!ASN1PERDecExtensionBit(dec, &y))
  14743. return 0;
  14744. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  14745. return 0;
  14746. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  14747. return 0;
  14748. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  14749. return 0;
  14750. if ((val)->o[0] & 0x80) {
  14751. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  14752. return 0;
  14753. }
  14754. if (!y) {
  14755. ZeroMemory((val)->o + 1, 1);
  14756. } else {
  14757. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  14758. return 0;
  14759. if ((val)->o[1] & 0x80) {
  14760. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14761. return 0;
  14762. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14763. return 0;
  14764. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  14765. return 0;
  14766. ASN1_CloseDecoder(dd);
  14767. }
  14768. if ((val)->o[1] & 0x40) {
  14769. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14770. return 0;
  14771. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14772. return 0;
  14773. if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
  14774. return 0;
  14775. ASN1_CloseDecoder(dd);
  14776. }
  14777. if ((val)->o[1] & 0x20) {
  14778. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14779. return 0;
  14780. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14781. return 0;
  14782. if (!ASN1Dec_Alerting_UUIE_tokens(dd, &(val)->tokens))
  14783. return 0;
  14784. ASN1_CloseDecoder(dd);
  14785. }
  14786. if ((val)->o[1] & 0x10) {
  14787. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14788. return 0;
  14789. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14790. return 0;
  14791. if (!ASN1Dec_Alerting_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  14792. return 0;
  14793. ASN1_CloseDecoder(dd);
  14794. }
  14795. if ((val)->o[1] & 0x8) {
  14796. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14797. return 0;
  14798. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14799. return 0;
  14800. if (!ASN1Dec_Alerting_UUIE_fastStart(dd, &(val)->fastStart))
  14801. return 0;
  14802. ASN1_CloseDecoder(dd);
  14803. }
  14804. for (i = 0; i < e; i++) {
  14805. if (!ASN1PERDecSkipFragmented(dec, 8))
  14806. return 0;
  14807. }
  14808. }
  14809. return 1;
  14810. }
  14811. static void ASN1CALL ASN1Free_Alerting_UUIE(Alerting_UUIE *val)
  14812. {
  14813. if (val) {
  14814. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  14815. ASN1Free_EndpointType(&(val)->destinationInfo);
  14816. if ((val)->o[0] & 0x80) {
  14817. ASN1Free_TransportAddress(&(val)->h245Address);
  14818. }
  14819. if ((val)->o[1] & 0x80) {
  14820. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  14821. }
  14822. if ((val)->o[1] & 0x40) {
  14823. ASN1Free_H245Security(&(val)->h245SecurityMode);
  14824. }
  14825. if ((val)->o[1] & 0x20) {
  14826. ASN1Free_Alerting_UUIE_tokens(&(val)->tokens);
  14827. }
  14828. if ((val)->o[1] & 0x10) {
  14829. ASN1Free_Alerting_UUIE_cryptoTokens(&(val)->cryptoTokens);
  14830. }
  14831. if ((val)->o[1] & 0x8) {
  14832. ASN1Free_Alerting_UUIE_fastStart(&(val)->fastStart);
  14833. }
  14834. }
  14835. }
  14836. static int ASN1CALL ASN1Enc_CallProceeding_UUIE(ASN1encoding_t enc, CallProceeding_UUIE *val)
  14837. {
  14838. ASN1octet_t o[2];
  14839. ASN1uint32_t y;
  14840. ASN1encoding_t ee;
  14841. CopyMemory(o, (val)->o, 2);
  14842. o[1] |= 0x80;
  14843. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  14844. if (!ASN1PEREncBitVal(enc, 1, y))
  14845. return 0;
  14846. if (!ASN1PEREncBits(enc, 1, o))
  14847. return 0;
  14848. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  14849. return 0;
  14850. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  14851. return 0;
  14852. if (o[0] & 0x80) {
  14853. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  14854. return 0;
  14855. }
  14856. if (y) {
  14857. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  14858. return 0;
  14859. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  14860. return 0;
  14861. if (o[1] & 0x80) {
  14862. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  14863. return 0;
  14864. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14865. return 0;
  14866. }
  14867. if (o[1] & 0x40) {
  14868. if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
  14869. return 0;
  14870. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14871. return 0;
  14872. }
  14873. if (o[1] & 0x20) {
  14874. if (!ASN1Enc_CallProceeding_UUIE_tokens(ee, &(val)->tokens))
  14875. return 0;
  14876. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14877. return 0;
  14878. }
  14879. if (o[1] & 0x10) {
  14880. if (!ASN1Enc_CallProceeding_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  14881. return 0;
  14882. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14883. return 0;
  14884. }
  14885. if (o[1] & 0x8) {
  14886. if (!ASN1Enc_CallProceeding_UUIE_fastStart(ee, &(val)->fastStart))
  14887. return 0;
  14888. if (!ASN1PEREncFlushFragmentedToParent(ee))
  14889. return 0;
  14890. }
  14891. ASN1_CloseEncoder2(ee);
  14892. }
  14893. return 1;
  14894. }
  14895. static int ASN1CALL ASN1Dec_CallProceeding_UUIE(ASN1decoding_t dec, CallProceeding_UUIE *val)
  14896. {
  14897. ASN1uint32_t y;
  14898. ASN1decoding_t dd;
  14899. ASN1octet_t *db;
  14900. ASN1uint32_t ds;
  14901. ASN1uint32_t i;
  14902. ASN1uint32_t e;
  14903. if (!ASN1PERDecExtensionBit(dec, &y))
  14904. return 0;
  14905. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  14906. return 0;
  14907. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  14908. return 0;
  14909. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  14910. return 0;
  14911. if ((val)->o[0] & 0x80) {
  14912. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  14913. return 0;
  14914. }
  14915. if (!y) {
  14916. ZeroMemory((val)->o + 1, 1);
  14917. } else {
  14918. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  14919. return 0;
  14920. if ((val)->o[1] & 0x80) {
  14921. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14922. return 0;
  14923. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14924. return 0;
  14925. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  14926. return 0;
  14927. ASN1_CloseDecoder(dd);
  14928. }
  14929. if ((val)->o[1] & 0x40) {
  14930. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14931. return 0;
  14932. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14933. return 0;
  14934. if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
  14935. return 0;
  14936. ASN1_CloseDecoder(dd);
  14937. }
  14938. if ((val)->o[1] & 0x20) {
  14939. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14940. return 0;
  14941. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14942. return 0;
  14943. if (!ASN1Dec_CallProceeding_UUIE_tokens(dd, &(val)->tokens))
  14944. return 0;
  14945. ASN1_CloseDecoder(dd);
  14946. }
  14947. if ((val)->o[1] & 0x10) {
  14948. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14949. return 0;
  14950. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14951. return 0;
  14952. if (!ASN1Dec_CallProceeding_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  14953. return 0;
  14954. ASN1_CloseDecoder(dd);
  14955. }
  14956. if ((val)->o[1] & 0x8) {
  14957. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  14958. return 0;
  14959. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  14960. return 0;
  14961. if (!ASN1Dec_CallProceeding_UUIE_fastStart(dd, &(val)->fastStart))
  14962. return 0;
  14963. ASN1_CloseDecoder(dd);
  14964. }
  14965. for (i = 0; i < e; i++) {
  14966. if (!ASN1PERDecSkipFragmented(dec, 8))
  14967. return 0;
  14968. }
  14969. }
  14970. return 1;
  14971. }
  14972. static void ASN1CALL ASN1Free_CallProceeding_UUIE(CallProceeding_UUIE *val)
  14973. {
  14974. if (val) {
  14975. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  14976. ASN1Free_EndpointType(&(val)->destinationInfo);
  14977. if ((val)->o[0] & 0x80) {
  14978. ASN1Free_TransportAddress(&(val)->h245Address);
  14979. }
  14980. if ((val)->o[1] & 0x80) {
  14981. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  14982. }
  14983. if ((val)->o[1] & 0x40) {
  14984. ASN1Free_H245Security(&(val)->h245SecurityMode);
  14985. }
  14986. if ((val)->o[1] & 0x20) {
  14987. ASN1Free_CallProceeding_UUIE_tokens(&(val)->tokens);
  14988. }
  14989. if ((val)->o[1] & 0x10) {
  14990. ASN1Free_CallProceeding_UUIE_cryptoTokens(&(val)->cryptoTokens);
  14991. }
  14992. if ((val)->o[1] & 0x8) {
  14993. ASN1Free_CallProceeding_UUIE_fastStart(&(val)->fastStart);
  14994. }
  14995. }
  14996. }
  14997. static int ASN1CALL ASN1Enc_Connect_UUIE(ASN1encoding_t enc, Connect_UUIE *val)
  14998. {
  14999. ASN1octet_t o[2];
  15000. ASN1uint32_t y;
  15001. ASN1encoding_t ee;
  15002. CopyMemory(o, (val)->o, 2);
  15003. o[1] |= 0x80;
  15004. y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
  15005. if (!ASN1PEREncBitVal(enc, 1, y))
  15006. return 0;
  15007. if (!ASN1PEREncBits(enc, 1, o))
  15008. return 0;
  15009. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15010. return 0;
  15011. if (o[0] & 0x80) {
  15012. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  15013. return 0;
  15014. }
  15015. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  15016. return 0;
  15017. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15018. return 0;
  15019. if (y) {
  15020. if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
  15021. return 0;
  15022. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  15023. return 0;
  15024. if (o[1] & 0x80) {
  15025. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  15026. return 0;
  15027. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15028. return 0;
  15029. }
  15030. if (o[1] & 0x40) {
  15031. if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
  15032. return 0;
  15033. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15034. return 0;
  15035. }
  15036. if (o[1] & 0x20) {
  15037. if (!ASN1Enc_Connect_UUIE_tokens(ee, &(val)->tokens))
  15038. return 0;
  15039. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15040. return 0;
  15041. }
  15042. if (o[1] & 0x10) {
  15043. if (!ASN1Enc_Connect_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  15044. return 0;
  15045. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15046. return 0;
  15047. }
  15048. if (o[1] & 0x8) {
  15049. if (!ASN1Enc_Connect_UUIE_fastStart(ee, &(val)->fastStart))
  15050. return 0;
  15051. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15052. return 0;
  15053. }
  15054. ASN1_CloseEncoder2(ee);
  15055. }
  15056. return 1;
  15057. }
  15058. static int ASN1CALL ASN1Dec_Connect_UUIE(ASN1decoding_t dec, Connect_UUIE *val)
  15059. {
  15060. ASN1uint32_t y;
  15061. ASN1decoding_t dd;
  15062. ASN1octet_t *db;
  15063. ASN1uint32_t ds;
  15064. ASN1uint32_t i;
  15065. ASN1uint32_t e;
  15066. if (!ASN1PERDecExtensionBit(dec, &y))
  15067. return 0;
  15068. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  15069. return 0;
  15070. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15071. return 0;
  15072. if ((val)->o[0] & 0x80) {
  15073. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15074. return 0;
  15075. }
  15076. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  15077. return 0;
  15078. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15079. return 0;
  15080. if (!y) {
  15081. ZeroMemory((val)->o + 1, 1);
  15082. } else {
  15083. if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
  15084. return 0;
  15085. if ((val)->o[1] & 0x80) {
  15086. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15087. return 0;
  15088. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15089. return 0;
  15090. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15091. return 0;
  15092. ASN1_CloseDecoder(dd);
  15093. }
  15094. if ((val)->o[1] & 0x40) {
  15095. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15096. return 0;
  15097. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15098. return 0;
  15099. if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
  15100. return 0;
  15101. ASN1_CloseDecoder(dd);
  15102. }
  15103. if ((val)->o[1] & 0x20) {
  15104. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15105. return 0;
  15106. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15107. return 0;
  15108. if (!ASN1Dec_Connect_UUIE_tokens(dd, &(val)->tokens))
  15109. return 0;
  15110. ASN1_CloseDecoder(dd);
  15111. }
  15112. if ((val)->o[1] & 0x10) {
  15113. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15114. return 0;
  15115. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15116. return 0;
  15117. if (!ASN1Dec_Connect_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15118. return 0;
  15119. ASN1_CloseDecoder(dd);
  15120. }
  15121. if ((val)->o[1] & 0x8) {
  15122. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15123. return 0;
  15124. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15125. return 0;
  15126. if (!ASN1Dec_Connect_UUIE_fastStart(dd, &(val)->fastStart))
  15127. return 0;
  15128. ASN1_CloseDecoder(dd);
  15129. }
  15130. for (i = 0; i < e; i++) {
  15131. if (!ASN1PERDecSkipFragmented(dec, 8))
  15132. return 0;
  15133. }
  15134. }
  15135. return 1;
  15136. }
  15137. static void ASN1CALL ASN1Free_Connect_UUIE(Connect_UUIE *val)
  15138. {
  15139. if (val) {
  15140. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15141. if ((val)->o[0] & 0x80) {
  15142. ASN1Free_TransportAddress(&(val)->h245Address);
  15143. }
  15144. ASN1Free_EndpointType(&(val)->destinationInfo);
  15145. if ((val)->o[1] & 0x80) {
  15146. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15147. }
  15148. if ((val)->o[1] & 0x40) {
  15149. ASN1Free_H245Security(&(val)->h245SecurityMode);
  15150. }
  15151. if ((val)->o[1] & 0x20) {
  15152. ASN1Free_Connect_UUIE_tokens(&(val)->tokens);
  15153. }
  15154. if ((val)->o[1] & 0x10) {
  15155. ASN1Free_Connect_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15156. }
  15157. if ((val)->o[1] & 0x8) {
  15158. ASN1Free_Connect_UUIE_fastStart(&(val)->fastStart);
  15159. }
  15160. }
  15161. }
  15162. static int ASN1CALL ASN1Enc_Setup_UUIE(ASN1encoding_t enc, Setup_UUIE *val)
  15163. {
  15164. ASN1octet_t o[3];
  15165. ASN1uint32_t y;
  15166. ASN1encoding_t ee;
  15167. CopyMemory(o, (val)->o, 3);
  15168. o[1] |= 0x20;
  15169. o[1] |= 0x1;
  15170. o[2] |= 0x80;
  15171. y = ASN1PEREncCheckExtensions(9, (val)->o + 1);
  15172. if (!ASN1PEREncBitVal(enc, 1, y))
  15173. return 0;
  15174. if (!ASN1PEREncBits(enc, 7, o))
  15175. return 0;
  15176. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15177. return 0;
  15178. if (o[0] & 0x80) {
  15179. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  15180. return 0;
  15181. }
  15182. if (o[0] & 0x40) {
  15183. if (!ASN1Enc_Setup_UUIE_sourceAddress(enc, &(val)->sourceAddress))
  15184. return 0;
  15185. }
  15186. if (!ASN1Enc_EndpointType(enc, &(val)->sourceInfo))
  15187. return 0;
  15188. if (o[0] & 0x20) {
  15189. if (!ASN1Enc_Setup_UUIE_destinationAddress(enc, &(val)->destinationAddress))
  15190. return 0;
  15191. }
  15192. if (o[0] & 0x10) {
  15193. if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
  15194. return 0;
  15195. }
  15196. if (o[0] & 0x8) {
  15197. if (!ASN1Enc_Setup_UUIE_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
  15198. return 0;
  15199. }
  15200. if (o[0] & 0x4) {
  15201. if (!ASN1Enc_Setup_UUIE_destExtraCRV(enc, &(val)->destExtraCRV))
  15202. return 0;
  15203. }
  15204. if (!ASN1PEREncBoolean(enc, (val)->activeMC))
  15205. return 0;
  15206. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15207. return 0;
  15208. if (!ASN1Enc_Setup_UUIE_conferenceGoal(enc, &(val)->conferenceGoal))
  15209. return 0;
  15210. if (o[0] & 0x2) {
  15211. if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
  15212. return 0;
  15213. }
  15214. if (!ASN1Enc_CallType(enc, &(val)->callType))
  15215. return 0;
  15216. if (y) {
  15217. if (!ASN1PEREncNormallySmallBits(enc, 9, o + 1))
  15218. return 0;
  15219. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  15220. return 0;
  15221. if (o[1] & 0x80) {
  15222. if (!ASN1Enc_TransportAddress(ee, &(val)->sourceCallSignalAddress))
  15223. return 0;
  15224. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15225. return 0;
  15226. }
  15227. if (o[1] & 0x40) {
  15228. if (!ASN1Enc_AliasAddress(ee, &(val)->remoteExtensionAddress))
  15229. return 0;
  15230. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15231. return 0;
  15232. }
  15233. if (o[1] & 0x20) {
  15234. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  15235. return 0;
  15236. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15237. return 0;
  15238. }
  15239. if (o[1] & 0x10) {
  15240. if (!ASN1Enc_Setup_UUIE_h245SecurityCapability(ee, &(val)->h245SecurityCapability))
  15241. return 0;
  15242. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15243. return 0;
  15244. }
  15245. if (o[1] & 0x8) {
  15246. if (!ASN1Enc_Setup_UUIE_tokens(ee, &(val)->tokens))
  15247. return 0;
  15248. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15249. return 0;
  15250. }
  15251. if (o[1] & 0x4) {
  15252. if (!ASN1Enc_Setup_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  15253. return 0;
  15254. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15255. return 0;
  15256. }
  15257. if (o[1] & 0x2) {
  15258. if (!ASN1Enc_Setup_UUIE_fastStart(ee, &(val)->fastStart))
  15259. return 0;
  15260. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15261. return 0;
  15262. }
  15263. if (o[1] & 0x1) {
  15264. if (!ASN1PEREncBoolean(ee, (val)->mediaWaitForConnect))
  15265. return 0;
  15266. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15267. return 0;
  15268. }
  15269. if (o[2] & 0x80) {
  15270. if (!ASN1PEREncBoolean(ee, (val)->canOverlapSend))
  15271. return 0;
  15272. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15273. return 0;
  15274. }
  15275. ASN1_CloseEncoder2(ee);
  15276. }
  15277. return 1;
  15278. }
  15279. static int ASN1CALL ASN1Dec_Setup_UUIE(ASN1decoding_t dec, Setup_UUIE *val)
  15280. {
  15281. ASN1uint32_t y;
  15282. ASN1decoding_t dd;
  15283. ASN1octet_t *db;
  15284. ASN1uint32_t ds;
  15285. ASN1uint32_t i;
  15286. ASN1uint32_t e;
  15287. if (!ASN1PERDecExtensionBit(dec, &y))
  15288. return 0;
  15289. if (!ASN1PERDecExtension(dec, 7, (val)->o))
  15290. return 0;
  15291. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15292. return 0;
  15293. if ((val)->o[0] & 0x80) {
  15294. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15295. return 0;
  15296. }
  15297. if ((val)->o[0] & 0x40) {
  15298. if (!ASN1Dec_Setup_UUIE_sourceAddress(dec, &(val)->sourceAddress))
  15299. return 0;
  15300. }
  15301. if (!ASN1Dec_EndpointType(dec, &(val)->sourceInfo))
  15302. return 0;
  15303. if ((val)->o[0] & 0x20) {
  15304. if (!ASN1Dec_Setup_UUIE_destinationAddress(dec, &(val)->destinationAddress))
  15305. return 0;
  15306. }
  15307. if ((val)->o[0] & 0x10) {
  15308. if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
  15309. return 0;
  15310. }
  15311. if ((val)->o[0] & 0x8) {
  15312. if (!ASN1Dec_Setup_UUIE_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
  15313. return 0;
  15314. }
  15315. if ((val)->o[0] & 0x4) {
  15316. if (!ASN1Dec_Setup_UUIE_destExtraCRV(dec, &(val)->destExtraCRV))
  15317. return 0;
  15318. }
  15319. if (!ASN1PERDecBoolean(dec, &(val)->activeMC))
  15320. return 0;
  15321. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15322. return 0;
  15323. if (!ASN1Dec_Setup_UUIE_conferenceGoal(dec, &(val)->conferenceGoal))
  15324. return 0;
  15325. if ((val)->o[0] & 0x2) {
  15326. if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
  15327. return 0;
  15328. }
  15329. if (!ASN1Dec_CallType(dec, &(val)->callType))
  15330. return 0;
  15331. if (!y) {
  15332. ZeroMemory((val)->o + 1, 2);
  15333. } else {
  15334. if (!ASN1PERDecNormallySmallExtension(dec, &e, 9, (val)->o + 1))
  15335. return 0;
  15336. if ((val)->o[1] & 0x80) {
  15337. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15338. return 0;
  15339. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15340. return 0;
  15341. if (!ASN1Dec_TransportAddress(dd, &(val)->sourceCallSignalAddress))
  15342. return 0;
  15343. ASN1_CloseDecoder(dd);
  15344. }
  15345. if ((val)->o[1] & 0x40) {
  15346. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15347. return 0;
  15348. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15349. return 0;
  15350. if (!ASN1Dec_AliasAddress(dd, &(val)->remoteExtensionAddress))
  15351. return 0;
  15352. ASN1_CloseDecoder(dd);
  15353. }
  15354. if ((val)->o[1] & 0x20) {
  15355. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15356. return 0;
  15357. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15358. return 0;
  15359. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15360. return 0;
  15361. ASN1_CloseDecoder(dd);
  15362. }
  15363. if ((val)->o[1] & 0x10) {
  15364. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15365. return 0;
  15366. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15367. return 0;
  15368. if (!ASN1Dec_Setup_UUIE_h245SecurityCapability(dd, &(val)->h245SecurityCapability))
  15369. return 0;
  15370. ASN1_CloseDecoder(dd);
  15371. }
  15372. if ((val)->o[1] & 0x8) {
  15373. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15374. return 0;
  15375. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15376. return 0;
  15377. if (!ASN1Dec_Setup_UUIE_tokens(dd, &(val)->tokens))
  15378. return 0;
  15379. ASN1_CloseDecoder(dd);
  15380. }
  15381. if ((val)->o[1] & 0x4) {
  15382. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15383. return 0;
  15384. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15385. return 0;
  15386. if (!ASN1Dec_Setup_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15387. return 0;
  15388. ASN1_CloseDecoder(dd);
  15389. }
  15390. if ((val)->o[1] & 0x2) {
  15391. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15392. return 0;
  15393. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15394. return 0;
  15395. if (!ASN1Dec_Setup_UUIE_fastStart(dd, &(val)->fastStart))
  15396. return 0;
  15397. ASN1_CloseDecoder(dd);
  15398. }
  15399. if ((val)->o[1] & 0x1) {
  15400. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15401. return 0;
  15402. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15403. return 0;
  15404. if (!ASN1PERDecBoolean(dd, &(val)->mediaWaitForConnect))
  15405. return 0;
  15406. ASN1_CloseDecoder(dd);
  15407. }
  15408. if ((val)->o[2] & 0x80) {
  15409. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15410. return 0;
  15411. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15412. return 0;
  15413. if (!ASN1PERDecBoolean(dd, &(val)->canOverlapSend))
  15414. return 0;
  15415. ASN1_CloseDecoder(dd);
  15416. }
  15417. for (i = 0; i < e; i++) {
  15418. if (!ASN1PERDecSkipFragmented(dec, 8))
  15419. return 0;
  15420. }
  15421. }
  15422. return 1;
  15423. }
  15424. static void ASN1CALL ASN1Free_Setup_UUIE(Setup_UUIE *val)
  15425. {
  15426. if (val) {
  15427. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15428. if ((val)->o[0] & 0x80) {
  15429. ASN1Free_TransportAddress(&(val)->h245Address);
  15430. }
  15431. if ((val)->o[0] & 0x40) {
  15432. ASN1Free_Setup_UUIE_sourceAddress(&(val)->sourceAddress);
  15433. }
  15434. ASN1Free_EndpointType(&(val)->sourceInfo);
  15435. if ((val)->o[0] & 0x20) {
  15436. ASN1Free_Setup_UUIE_destinationAddress(&(val)->destinationAddress);
  15437. }
  15438. if ((val)->o[0] & 0x10) {
  15439. ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
  15440. }
  15441. if ((val)->o[0] & 0x8) {
  15442. ASN1Free_Setup_UUIE_destExtraCallInfo(&(val)->destExtraCallInfo);
  15443. }
  15444. if ((val)->o[0] & 0x4) {
  15445. ASN1Free_Setup_UUIE_destExtraCRV(&(val)->destExtraCRV);
  15446. }
  15447. if ((val)->o[1] & 0x80) {
  15448. ASN1Free_TransportAddress(&(val)->sourceCallSignalAddress);
  15449. }
  15450. if ((val)->o[1] & 0x40) {
  15451. ASN1Free_AliasAddress(&(val)->remoteExtensionAddress);
  15452. }
  15453. if ((val)->o[1] & 0x20) {
  15454. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15455. }
  15456. if ((val)->o[1] & 0x10) {
  15457. ASN1Free_Setup_UUIE_h245SecurityCapability(&(val)->h245SecurityCapability);
  15458. }
  15459. if ((val)->o[1] & 0x8) {
  15460. ASN1Free_Setup_UUIE_tokens(&(val)->tokens);
  15461. }
  15462. if ((val)->o[1] & 0x4) {
  15463. ASN1Free_Setup_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15464. }
  15465. if ((val)->o[1] & 0x2) {
  15466. ASN1Free_Setup_UUIE_fastStart(&(val)->fastStart);
  15467. }
  15468. }
  15469. }
  15470. static int ASN1CALL ASN1Enc_Facility_UUIE(ASN1encoding_t enc, Facility_UUIE *val)
  15471. {
  15472. ASN1octet_t o[2];
  15473. ASN1uint32_t y;
  15474. ASN1encoding_t ee;
  15475. CopyMemory(o, (val)->o, 2);
  15476. o[1] |= 0x80;
  15477. y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
  15478. if (!ASN1PEREncBitVal(enc, 1, y))
  15479. return 0;
  15480. if (!ASN1PEREncBits(enc, 3, o))
  15481. return 0;
  15482. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15483. return 0;
  15484. if (o[0] & 0x80) {
  15485. if (!ASN1Enc_TransportAddress(enc, &(val)->alternativeAddress))
  15486. return 0;
  15487. }
  15488. if (o[0] & 0x40) {
  15489. if (!ASN1Enc_Facility_UUIE_alternativeAliasAddress(enc, &(val)->alternativeAliasAddress))
  15490. return 0;
  15491. }
  15492. if (o[0] & 0x20) {
  15493. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15494. return 0;
  15495. }
  15496. if (!ASN1Enc_FacilityReason(enc, &(val)->reason))
  15497. return 0;
  15498. if (y) {
  15499. if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
  15500. return 0;
  15501. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  15502. return 0;
  15503. if (o[1] & 0x80) {
  15504. if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
  15505. return 0;
  15506. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15507. return 0;
  15508. }
  15509. if (o[1] & 0x40) {
  15510. if (!ASN1Enc_Facility_UUIE_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
  15511. return 0;
  15512. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15513. return 0;
  15514. }
  15515. if (o[1] & 0x20) {
  15516. if (!ASN1Enc_AliasAddress(ee, &(val)->remoteExtensionAddress))
  15517. return 0;
  15518. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15519. return 0;
  15520. }
  15521. if (o[1] & 0x10) {
  15522. if (!ASN1Enc_Facility_UUIE_tokens(ee, &(val)->tokens))
  15523. return 0;
  15524. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15525. return 0;
  15526. }
  15527. if (o[1] & 0x8) {
  15528. if (!ASN1Enc_Facility_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
  15529. return 0;
  15530. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15531. return 0;
  15532. }
  15533. if (o[1] & 0x4) {
  15534. if (!ASN1Enc_Facility_UUIE_conferences(ee, &(val)->conferences))
  15535. return 0;
  15536. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15537. return 0;
  15538. }
  15539. if (o[1] & 0x2) {
  15540. if (!ASN1Enc_TransportAddress(ee, &(val)->h245Address))
  15541. return 0;
  15542. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15543. return 0;
  15544. }
  15545. if (o[1] & 0x1) {
  15546. if (!ASN1Enc_Facility_UUIE_fastStart(ee, &(val)->fastStart))
  15547. return 0;
  15548. if (!ASN1PEREncFlushFragmentedToParent(ee))
  15549. return 0;
  15550. }
  15551. ASN1_CloseEncoder2(ee);
  15552. }
  15553. return 1;
  15554. }
  15555. static int ASN1CALL ASN1Dec_Facility_UUIE(ASN1decoding_t dec, Facility_UUIE *val)
  15556. {
  15557. ASN1uint32_t y;
  15558. ASN1decoding_t dd;
  15559. ASN1octet_t *db;
  15560. ASN1uint32_t ds;
  15561. ASN1uint32_t i;
  15562. ASN1uint32_t e;
  15563. if (!ASN1PERDecExtensionBit(dec, &y))
  15564. return 0;
  15565. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  15566. return 0;
  15567. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15568. return 0;
  15569. if ((val)->o[0] & 0x80) {
  15570. if (!ASN1Dec_TransportAddress(dec, &(val)->alternativeAddress))
  15571. return 0;
  15572. }
  15573. if ((val)->o[0] & 0x40) {
  15574. if (!ASN1Dec_Facility_UUIE_alternativeAliasAddress(dec, &(val)->alternativeAliasAddress))
  15575. return 0;
  15576. }
  15577. if ((val)->o[0] & 0x20) {
  15578. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15579. return 0;
  15580. }
  15581. if (!ASN1Dec_FacilityReason(dec, &(val)->reason))
  15582. return 0;
  15583. if (!y) {
  15584. ZeroMemory((val)->o + 1, 1);
  15585. } else {
  15586. if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
  15587. return 0;
  15588. if ((val)->o[1] & 0x80) {
  15589. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15590. return 0;
  15591. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15592. return 0;
  15593. if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
  15594. return 0;
  15595. ASN1_CloseDecoder(dd);
  15596. }
  15597. if ((val)->o[1] & 0x40) {
  15598. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15599. return 0;
  15600. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15601. return 0;
  15602. if (!ASN1Dec_Facility_UUIE_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
  15603. return 0;
  15604. ASN1_CloseDecoder(dd);
  15605. }
  15606. if ((val)->o[1] & 0x20) {
  15607. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15608. return 0;
  15609. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15610. return 0;
  15611. if (!ASN1Dec_AliasAddress(dd, &(val)->remoteExtensionAddress))
  15612. return 0;
  15613. ASN1_CloseDecoder(dd);
  15614. }
  15615. if ((val)->o[1] & 0x10) {
  15616. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15617. return 0;
  15618. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15619. return 0;
  15620. if (!ASN1Dec_Facility_UUIE_tokens(dd, &(val)->tokens))
  15621. return 0;
  15622. ASN1_CloseDecoder(dd);
  15623. }
  15624. if ((val)->o[1] & 0x8) {
  15625. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15626. return 0;
  15627. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15628. return 0;
  15629. if (!ASN1Dec_Facility_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
  15630. return 0;
  15631. ASN1_CloseDecoder(dd);
  15632. }
  15633. if ((val)->o[1] & 0x4) {
  15634. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15635. return 0;
  15636. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15637. return 0;
  15638. if (!ASN1Dec_Facility_UUIE_conferences(dd, &(val)->conferences))
  15639. return 0;
  15640. ASN1_CloseDecoder(dd);
  15641. }
  15642. if ((val)->o[1] & 0x2) {
  15643. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15644. return 0;
  15645. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15646. return 0;
  15647. if (!ASN1Dec_TransportAddress(dd, &(val)->h245Address))
  15648. return 0;
  15649. ASN1_CloseDecoder(dd);
  15650. }
  15651. if ((val)->o[1] & 0x1) {
  15652. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  15653. return 0;
  15654. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  15655. return 0;
  15656. if (!ASN1Dec_Facility_UUIE_fastStart(dd, &(val)->fastStart))
  15657. return 0;
  15658. ASN1_CloseDecoder(dd);
  15659. }
  15660. for (i = 0; i < e; i++) {
  15661. if (!ASN1PERDecSkipFragmented(dec, 8))
  15662. return 0;
  15663. }
  15664. }
  15665. return 1;
  15666. }
  15667. static void ASN1CALL ASN1Free_Facility_UUIE(Facility_UUIE *val)
  15668. {
  15669. if (val) {
  15670. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15671. if ((val)->o[0] & 0x80) {
  15672. ASN1Free_TransportAddress(&(val)->alternativeAddress);
  15673. }
  15674. if ((val)->o[0] & 0x40) {
  15675. ASN1Free_Facility_UUIE_alternativeAliasAddress(&(val)->alternativeAliasAddress);
  15676. }
  15677. if ((val)->o[0] & 0x20) {
  15678. }
  15679. if ((val)->o[1] & 0x80) {
  15680. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15681. }
  15682. if ((val)->o[1] & 0x40) {
  15683. ASN1Free_Facility_UUIE_destExtraCallInfo(&(val)->destExtraCallInfo);
  15684. }
  15685. if ((val)->o[1] & 0x20) {
  15686. ASN1Free_AliasAddress(&(val)->remoteExtensionAddress);
  15687. }
  15688. if ((val)->o[1] & 0x10) {
  15689. ASN1Free_Facility_UUIE_tokens(&(val)->tokens);
  15690. }
  15691. if ((val)->o[1] & 0x8) {
  15692. ASN1Free_Facility_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15693. }
  15694. if ((val)->o[1] & 0x4) {
  15695. ASN1Free_Facility_UUIE_conferences(&(val)->conferences);
  15696. }
  15697. if ((val)->o[1] & 0x2) {
  15698. ASN1Free_TransportAddress(&(val)->h245Address);
  15699. }
  15700. if ((val)->o[1] & 0x1) {
  15701. ASN1Free_Facility_UUIE_fastStart(&(val)->fastStart);
  15702. }
  15703. }
  15704. }
  15705. static int ASN1CALL ASN1Enc_ConferenceList(ASN1encoding_t enc, ConferenceList *val)
  15706. {
  15707. if (!ASN1PEREncExtensionBitClear(enc))
  15708. return 0;
  15709. if (!ASN1PEREncBits(enc, 3, (val)->o))
  15710. return 0;
  15711. if ((val)->o[0] & 0x80) {
  15712. if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15713. return 0;
  15714. }
  15715. if ((val)->o[0] & 0x40) {
  15716. if (!ASN1Enc_AliasAddress(enc, &(val)->conferenceAlias))
  15717. return 0;
  15718. }
  15719. if ((val)->o[0] & 0x20) {
  15720. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  15721. return 0;
  15722. }
  15723. return 1;
  15724. }
  15725. static int ASN1CALL ASN1Dec_ConferenceList(ASN1decoding_t dec, ConferenceList *val)
  15726. {
  15727. ASN1uint32_t y;
  15728. if (!ASN1PERDecExtensionBit(dec, &y))
  15729. return 0;
  15730. if (!ASN1PERDecExtension(dec, 3, (val)->o))
  15731. return 0;
  15732. if ((val)->o[0] & 0x80) {
  15733. if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
  15734. return 0;
  15735. }
  15736. if ((val)->o[0] & 0x40) {
  15737. if (!ASN1Dec_AliasAddress(dec, &(val)->conferenceAlias))
  15738. return 0;
  15739. }
  15740. if ((val)->o[0] & 0x20) {
  15741. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  15742. return 0;
  15743. }
  15744. if (y) {
  15745. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  15746. return 0;
  15747. }
  15748. return 1;
  15749. }
  15750. static void ASN1CALL ASN1Free_ConferenceList(ConferenceList *val)
  15751. {
  15752. if (val) {
  15753. if ((val)->o[0] & 0x80) {
  15754. }
  15755. if ((val)->o[0] & 0x40) {
  15756. ASN1Free_AliasAddress(&(val)->conferenceAlias);
  15757. }
  15758. if ((val)->o[0] & 0x20) {
  15759. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  15760. }
  15761. }
  15762. }
  15763. static int ASN1CALL ASN1Enc_Progress_UUIE(ASN1encoding_t enc, Progress_UUIE *val)
  15764. {
  15765. if (!ASN1PEREncExtensionBitClear(enc))
  15766. return 0;
  15767. if (!ASN1PEREncBits(enc, 5, (val)->o))
  15768. return 0;
  15769. if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
  15770. return 0;
  15771. if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
  15772. return 0;
  15773. if ((val)->o[0] & 0x80) {
  15774. if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
  15775. return 0;
  15776. }
  15777. if (!ASN1Enc_CallIdentifier(enc, &(val)->callIdentifier))
  15778. return 0;
  15779. if ((val)->o[0] & 0x40) {
  15780. if (!ASN1Enc_H245Security(enc, &(val)->h245SecurityMode))
  15781. return 0;
  15782. }
  15783. if ((val)->o[0] & 0x20) {
  15784. if (!ASN1Enc_Progress_UUIE_tokens(enc, &(val)->tokens))
  15785. return 0;
  15786. }
  15787. if ((val)->o[0] & 0x10) {
  15788. if (!ASN1Enc_Progress_UUIE_cryptoTokens(enc, &(val)->cryptoTokens))
  15789. return 0;
  15790. }
  15791. if ((val)->o[0] & 0x8) {
  15792. if (!ASN1Enc_Progress_UUIE_fastStart(enc, &(val)->fastStart))
  15793. return 0;
  15794. }
  15795. return 1;
  15796. }
  15797. static int ASN1CALL ASN1Dec_Progress_UUIE(ASN1decoding_t dec, Progress_UUIE *val)
  15798. {
  15799. ASN1uint32_t y;
  15800. if (!ASN1PERDecExtensionBit(dec, &y))
  15801. return 0;
  15802. if (!ASN1PERDecExtension(dec, 5, (val)->o))
  15803. return 0;
  15804. if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
  15805. return 0;
  15806. if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
  15807. return 0;
  15808. if ((val)->o[0] & 0x80) {
  15809. if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
  15810. return 0;
  15811. }
  15812. if (!ASN1Dec_CallIdentifier(dec, &(val)->callIdentifier))
  15813. return 0;
  15814. if ((val)->o[0] & 0x40) {
  15815. if (!ASN1Dec_H245Security(dec, &(val)->h245SecurityMode))
  15816. return 0;
  15817. }
  15818. if ((val)->o[0] & 0x20) {
  15819. if (!ASN1Dec_Progress_UUIE_tokens(dec, &(val)->tokens))
  15820. return 0;
  15821. }
  15822. if ((val)->o[0] & 0x10) {
  15823. if (!ASN1Dec_Progress_UUIE_cryptoTokens(dec, &(val)->cryptoTokens))
  15824. return 0;
  15825. }
  15826. if ((val)->o[0] & 0x8) {
  15827. if (!ASN1Dec_Progress_UUIE_fastStart(dec, &(val)->fastStart))
  15828. return 0;
  15829. }
  15830. if (y) {
  15831. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  15832. return 0;
  15833. }
  15834. return 1;
  15835. }
  15836. static void ASN1CALL ASN1Free_Progress_UUIE(Progress_UUIE *val)
  15837. {
  15838. if (val) {
  15839. ASN1objectidentifier_free(&(val)->protocolIdentifier);
  15840. ASN1Free_EndpointType(&(val)->destinationInfo);
  15841. if ((val)->o[0] & 0x80) {
  15842. ASN1Free_TransportAddress(&(val)->h245Address);
  15843. }
  15844. ASN1Free_CallIdentifier(&(val)->callIdentifier);
  15845. if ((val)->o[0] & 0x40) {
  15846. ASN1Free_H245Security(&(val)->h245SecurityMode);
  15847. }
  15848. if ((val)->o[0] & 0x20) {
  15849. ASN1Free_Progress_UUIE_tokens(&(val)->tokens);
  15850. }
  15851. if ((val)->o[0] & 0x10) {
  15852. ASN1Free_Progress_UUIE_cryptoTokens(&(val)->cryptoTokens);
  15853. }
  15854. if ((val)->o[0] & 0x8) {
  15855. ASN1Free_Progress_UUIE_fastStart(&(val)->fastStart);
  15856. }
  15857. }
  15858. }
  15859. static int ASN1CALL ASN1Enc_CryptoH323Token(ASN1encoding_t enc, CryptoH323Token *val)
  15860. {
  15861. if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
  15862. return 0;
  15863. switch ((val)->choice) {
  15864. case 1:
  15865. if (!ASN1Enc_CryptoH323Token_cryptoEPPwdHash(enc, &(val)->u.cryptoEPPwdHash))
  15866. return 0;
  15867. break;
  15868. case 2:
  15869. if (!ASN1Enc_CryptoH323Token_cryptoGKPwdHash(enc, &(val)->u.cryptoGKPwdHash))
  15870. return 0;
  15871. break;
  15872. case 3:
  15873. if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoEPPwdEncr))
  15874. return 0;
  15875. break;
  15876. case 4:
  15877. if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoGKPwdEncr))
  15878. return 0;
  15879. break;
  15880. case 5:
  15881. if (!ASN1Enc_SIGNED_EncodedPwdCertToken(enc, &(val)->u.cryptoEPCert))
  15882. return 0;
  15883. break;
  15884. case 6:
  15885. if (!ASN1Enc_SIGNED_EncodedPwdCertToken(enc, &(val)->u.cryptoGKCert))
  15886. return 0;
  15887. break;
  15888. case 7:
  15889. if (!ASN1Enc_SIGNED_EncodedFastStartToken(enc, &(val)->u.cryptoFastStart))
  15890. return 0;
  15891. break;
  15892. case 8:
  15893. if (!ASN1Enc_CryptoToken(enc, &(val)->u.nestedcryptoToken))
  15894. return 0;
  15895. break;
  15896. default:
  15897. /* impossible */
  15898. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  15899. return 0;
  15900. }
  15901. return 1;
  15902. }
  15903. static int ASN1CALL ASN1Dec_CryptoH323Token(ASN1decoding_t dec, CryptoH323Token *val)
  15904. {
  15905. if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
  15906. return 0;
  15907. switch ((val)->choice) {
  15908. case 1:
  15909. if (!ASN1Dec_CryptoH323Token_cryptoEPPwdHash(dec, &(val)->u.cryptoEPPwdHash))
  15910. return 0;
  15911. break;
  15912. case 2:
  15913. if (!ASN1Dec_CryptoH323Token_cryptoGKPwdHash(dec, &(val)->u.cryptoGKPwdHash))
  15914. return 0;
  15915. break;
  15916. case 3:
  15917. if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoEPPwdEncr))
  15918. return 0;
  15919. break;
  15920. case 4:
  15921. if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoGKPwdEncr))
  15922. return 0;
  15923. break;
  15924. case 5:
  15925. if (!ASN1Dec_SIGNED_EncodedPwdCertToken(dec, &(val)->u.cryptoEPCert))
  15926. return 0;
  15927. break;
  15928. case 6:
  15929. if (!ASN1Dec_SIGNED_EncodedPwdCertToken(dec, &(val)->u.cryptoGKCert))
  15930. return 0;
  15931. break;
  15932. case 7:
  15933. if (!ASN1Dec_SIGNED_EncodedFastStartToken(dec, &(val)->u.cryptoFastStart))
  15934. return 0;
  15935. break;
  15936. case 8:
  15937. if (!ASN1Dec_CryptoToken(dec, &(val)->u.nestedcryptoToken))
  15938. return 0;
  15939. break;
  15940. case 0:
  15941. /* extension case */
  15942. if (!ASN1PERDecSkipFragmented(dec, 8))
  15943. return 0;
  15944. break;
  15945. default:
  15946. /* impossible */
  15947. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  15948. return 0;
  15949. }
  15950. return 1;
  15951. }
  15952. static void ASN1CALL ASN1Free_CryptoH323Token(CryptoH323Token *val)
  15953. {
  15954. if (val) {
  15955. switch ((val)->choice) {
  15956. case 1:
  15957. ASN1Free_CryptoH323Token_cryptoEPPwdHash(&(val)->u.cryptoEPPwdHash);
  15958. break;
  15959. case 2:
  15960. ASN1Free_CryptoH323Token_cryptoGKPwdHash(&(val)->u.cryptoGKPwdHash);
  15961. break;
  15962. case 3:
  15963. ASN1Free_ENCRYPTED(&(val)->u.cryptoEPPwdEncr);
  15964. break;
  15965. case 4:
  15966. ASN1Free_ENCRYPTED(&(val)->u.cryptoGKPwdEncr);
  15967. break;
  15968. case 5:
  15969. ASN1Free_SIGNED_EncodedPwdCertToken(&(val)->u.cryptoEPCert);
  15970. break;
  15971. case 6:
  15972. ASN1Free_SIGNED_EncodedPwdCertToken(&(val)->u.cryptoGKCert);
  15973. break;
  15974. case 7:
  15975. ASN1Free_SIGNED_EncodedFastStartToken(&(val)->u.cryptoFastStart);
  15976. break;
  15977. case 8:
  15978. ASN1Free_CryptoToken(&(val)->u.nestedcryptoToken);
  15979. break;
  15980. }
  15981. }
  15982. }
  15983. static int ASN1CALL ASN1Enc_RasMessage(ASN1encoding_t enc, RasMessage *val)
  15984. {
  15985. ASN1encoding_t ee;
  15986. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 5, 25))
  15987. return 0;
  15988. switch ((val)->choice) {
  15989. case 1:
  15990. if (!ASN1Enc_GatekeeperRequest(enc, &(val)->u.gatekeeperRequest))
  15991. return 0;
  15992. break;
  15993. case 2:
  15994. if (!ASN1Enc_GatekeeperConfirm(enc, &(val)->u.gatekeeperConfirm))
  15995. return 0;
  15996. break;
  15997. case 3:
  15998. if (!ASN1Enc_GatekeeperReject(enc, &(val)->u.gatekeeperReject))
  15999. return 0;
  16000. break;
  16001. case 4:
  16002. if (!ASN1Enc_RegistrationRequest(enc, &(val)->u.registrationRequest))
  16003. return 0;
  16004. break;
  16005. case 5:
  16006. if (!ASN1Enc_RegistrationConfirm(enc, &(val)->u.registrationConfirm))
  16007. return 0;
  16008. break;
  16009. case 6:
  16010. if (!ASN1Enc_RegistrationReject(enc, &(val)->u.registrationReject))
  16011. return 0;
  16012. break;
  16013. case 7:
  16014. if (!ASN1Enc_UnregistrationRequest(enc, &(val)->u.unregistrationRequest))
  16015. return 0;
  16016. break;
  16017. case 8:
  16018. if (!ASN1Enc_UnregistrationConfirm(enc, &(val)->u.unregistrationConfirm))
  16019. return 0;
  16020. break;
  16021. case 9:
  16022. if (!ASN1Enc_UnregistrationReject(enc, &(val)->u.unregistrationReject))
  16023. return 0;
  16024. break;
  16025. case 10:
  16026. if (!ASN1Enc_AdmissionRequest(enc, &(val)->u.admissionRequest))
  16027. return 0;
  16028. break;
  16029. case 11:
  16030. if (!ASN1Enc_AdmissionConfirm(enc, &(val)->u.admissionConfirm))
  16031. return 0;
  16032. break;
  16033. case 12:
  16034. if (!ASN1Enc_AdmissionReject(enc, &(val)->u.admissionReject))
  16035. return 0;
  16036. break;
  16037. case 13:
  16038. if (!ASN1Enc_BandwidthRequest(enc, &(val)->u.bandwidthRequest))
  16039. return 0;
  16040. break;
  16041. case 14:
  16042. if (!ASN1Enc_BandwidthConfirm(enc, &(val)->u.bandwidthConfirm))
  16043. return 0;
  16044. break;
  16045. case 15:
  16046. if (!ASN1Enc_BandwidthReject(enc, &(val)->u.bandwidthReject))
  16047. return 0;
  16048. break;
  16049. case 16:
  16050. if (!ASN1Enc_DisengageRequest(enc, &(val)->u.disengageRequest))
  16051. return 0;
  16052. break;
  16053. case 17:
  16054. if (!ASN1Enc_DisengageConfirm(enc, &(val)->u.disengageConfirm))
  16055. return 0;
  16056. break;
  16057. case 18:
  16058. if (!ASN1Enc_DisengageReject(enc, &(val)->u.disengageReject))
  16059. return 0;
  16060. break;
  16061. case 19:
  16062. if (!ASN1Enc_LocationRequest(enc, &(val)->u.locationRequest))
  16063. return 0;
  16064. break;
  16065. case 20:
  16066. if (!ASN1Enc_LocationConfirm(enc, &(val)->u.locationConfirm))
  16067. return 0;
  16068. break;
  16069. case 21:
  16070. if (!ASN1Enc_LocationReject(enc, &(val)->u.locationReject))
  16071. return 0;
  16072. break;
  16073. case 22:
  16074. if (!ASN1Enc_InfoRequest(enc, &(val)->u.infoRequest))
  16075. return 0;
  16076. break;
  16077. case 23:
  16078. if (!ASN1Enc_InfoRequestResponse(enc, &(val)->u.infoRequestResponse))
  16079. return 0;
  16080. break;
  16081. case 24:
  16082. if (!ASN1Enc_H225NonStandardMessage(enc, &(val)->u.nonStandardMessage))
  16083. return 0;
  16084. break;
  16085. case 25:
  16086. if (!ASN1Enc_UnknownMessageResponse(enc, &(val)->u.unknownMessageResponse))
  16087. return 0;
  16088. break;
  16089. case 26:
  16090. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16091. return 0;
  16092. if (!ASN1Enc_RequestInProgress(ee, &(val)->u.requestInProgress))
  16093. return 0;
  16094. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16095. return 0;
  16096. ASN1_CloseEncoder2(ee);
  16097. break;
  16098. case 27:
  16099. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16100. return 0;
  16101. if (!ASN1Enc_ResourcesAvailableIndicate(ee, &(val)->u.resourcesAvailableIndicate))
  16102. return 0;
  16103. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16104. return 0;
  16105. ASN1_CloseEncoder2(ee);
  16106. break;
  16107. case 28:
  16108. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16109. return 0;
  16110. if (!ASN1Enc_ResourcesAvailableConfirm(ee, &(val)->u.resourcesAvailableConfirm))
  16111. return 0;
  16112. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16113. return 0;
  16114. ASN1_CloseEncoder2(ee);
  16115. break;
  16116. case 29:
  16117. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16118. return 0;
  16119. if (!ASN1Enc_InfoRequestAck(ee, &(val)->u.infoRequestAck))
  16120. return 0;
  16121. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16122. return 0;
  16123. ASN1_CloseEncoder2(ee);
  16124. break;
  16125. case 30:
  16126. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  16127. return 0;
  16128. if (!ASN1Enc_InfoRequestNak(ee, &(val)->u.infoRequestNak))
  16129. return 0;
  16130. if (!ASN1PEREncFlushFragmentedToParent(ee))
  16131. return 0;
  16132. ASN1_CloseEncoder2(ee);
  16133. break;
  16134. default:
  16135. /* impossible */
  16136. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  16137. return 0;
  16138. }
  16139. return 1;
  16140. }
  16141. static int ASN1CALL ASN1Dec_RasMessage(ASN1decoding_t dec, RasMessage *val)
  16142. {
  16143. ASN1decoding_t dd;
  16144. ASN1octet_t *db;
  16145. ASN1uint32_t ds;
  16146. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 5, 25))
  16147. return 0;
  16148. switch ((val)->choice) {
  16149. case 1:
  16150. if (!ASN1Dec_GatekeeperRequest(dec, &(val)->u.gatekeeperRequest))
  16151. return 0;
  16152. break;
  16153. case 2:
  16154. if (!ASN1Dec_GatekeeperConfirm(dec, &(val)->u.gatekeeperConfirm))
  16155. return 0;
  16156. break;
  16157. case 3:
  16158. if (!ASN1Dec_GatekeeperReject(dec, &(val)->u.gatekeeperReject))
  16159. return 0;
  16160. break;
  16161. case 4:
  16162. if (!ASN1Dec_RegistrationRequest(dec, &(val)->u.registrationRequest))
  16163. return 0;
  16164. break;
  16165. case 5:
  16166. if (!ASN1Dec_RegistrationConfirm(dec, &(val)->u.registrationConfirm))
  16167. return 0;
  16168. break;
  16169. case 6:
  16170. if (!ASN1Dec_RegistrationReject(dec, &(val)->u.registrationReject))
  16171. return 0;
  16172. break;
  16173. case 7:
  16174. if (!ASN1Dec_UnregistrationRequest(dec, &(val)->u.unregistrationRequest))
  16175. return 0;
  16176. break;
  16177. case 8:
  16178. if (!ASN1Dec_UnregistrationConfirm(dec, &(val)->u.unregistrationConfirm))
  16179. return 0;
  16180. break;
  16181. case 9:
  16182. if (!ASN1Dec_UnregistrationReject(dec, &(val)->u.unregistrationReject))
  16183. return 0;
  16184. break;
  16185. case 10:
  16186. if (!ASN1Dec_AdmissionRequest(dec, &(val)->u.admissionRequest))
  16187. return 0;
  16188. break;
  16189. case 11:
  16190. if (!ASN1Dec_AdmissionConfirm(dec, &(val)->u.admissionConfirm))
  16191. return 0;
  16192. break;
  16193. case 12:
  16194. if (!ASN1Dec_AdmissionReject(dec, &(val)->u.admissionReject))
  16195. return 0;
  16196. break;
  16197. case 13:
  16198. if (!ASN1Dec_BandwidthRequest(dec, &(val)->u.bandwidthRequest))
  16199. return 0;
  16200. break;
  16201. case 14:
  16202. if (!ASN1Dec_BandwidthConfirm(dec, &(val)->u.bandwidthConfirm))
  16203. return 0;
  16204. break;
  16205. case 15:
  16206. if (!ASN1Dec_BandwidthReject(dec, &(val)->u.bandwidthReject))
  16207. return 0;
  16208. break;
  16209. case 16:
  16210. if (!ASN1Dec_DisengageRequest(dec, &(val)->u.disengageRequest))
  16211. return 0;
  16212. break;
  16213. case 17:
  16214. if (!ASN1Dec_DisengageConfirm(dec, &(val)->u.disengageConfirm))
  16215. return 0;
  16216. break;
  16217. case 18:
  16218. if (!ASN1Dec_DisengageReject(dec, &(val)->u.disengageReject))
  16219. return 0;
  16220. break;
  16221. case 19:
  16222. if (!ASN1Dec_LocationRequest(dec, &(val)->u.locationRequest))
  16223. return 0;
  16224. break;
  16225. case 20:
  16226. if (!ASN1Dec_LocationConfirm(dec, &(val)->u.locationConfirm))
  16227. return 0;
  16228. break;
  16229. case 21:
  16230. if (!ASN1Dec_LocationReject(dec, &(val)->u.locationReject))
  16231. return 0;
  16232. break;
  16233. case 22:
  16234. if (!ASN1Dec_InfoRequest(dec, &(val)->u.infoRequest))
  16235. return 0;
  16236. break;
  16237. case 23:
  16238. if (!ASN1Dec_InfoRequestResponse(dec, &(val)->u.infoRequestResponse))
  16239. return 0;
  16240. break;
  16241. case 24:
  16242. if (!ASN1Dec_H225NonStandardMessage(dec, &(val)->u.nonStandardMessage))
  16243. return 0;
  16244. break;
  16245. case 25:
  16246. if (!ASN1Dec_UnknownMessageResponse(dec, &(val)->u.unknownMessageResponse))
  16247. return 0;
  16248. break;
  16249. case 26:
  16250. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16251. return 0;
  16252. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  16253. return 0;
  16254. if (!ASN1Dec_RequestInProgress(dd, &(val)->u.requestInProgress))
  16255. return 0;
  16256. ASN1_CloseDecoder(dd);
  16257. break;
  16258. case 27:
  16259. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16260. return 0;
  16261. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  16262. return 0;
  16263. if (!ASN1Dec_ResourcesAvailableIndicate(dd, &(val)->u.resourcesAvailableIndicate))
  16264. return 0;
  16265. ASN1_CloseDecoder(dd);
  16266. break;
  16267. case 28:
  16268. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16269. return 0;
  16270. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  16271. return 0;
  16272. if (!ASN1Dec_ResourcesAvailableConfirm(dd, &(val)->u.resourcesAvailableConfirm))
  16273. return 0;
  16274. ASN1_CloseDecoder(dd);
  16275. break;
  16276. case 29:
  16277. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16278. return 0;
  16279. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  16280. return 0;
  16281. if (!ASN1Dec_InfoRequestAck(dd, &(val)->u.infoRequestAck))
  16282. return 0;
  16283. ASN1_CloseDecoder(dd);
  16284. break;
  16285. case 30:
  16286. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  16287. return 0;
  16288. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  16289. return 0;
  16290. if (!ASN1Dec_InfoRequestNak(dd, &(val)->u.infoRequestNak))
  16291. return 0;
  16292. ASN1_CloseDecoder(dd);
  16293. break;
  16294. case 0:
  16295. /* extension case */
  16296. if (!ASN1PERDecSkipFragmented(dec, 8))
  16297. return 0;
  16298. break;
  16299. default:
  16300. /* impossible */
  16301. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  16302. return 0;
  16303. }
  16304. return 1;
  16305. }
  16306. static void ASN1CALL ASN1Free_RasMessage(RasMessage *val)
  16307. {
  16308. if (val) {
  16309. switch ((val)->choice) {
  16310. case 1:
  16311. ASN1Free_GatekeeperRequest(&(val)->u.gatekeeperRequest);
  16312. break;
  16313. case 2:
  16314. ASN1Free_GatekeeperConfirm(&(val)->u.gatekeeperConfirm);
  16315. break;
  16316. case 3:
  16317. ASN1Free_GatekeeperReject(&(val)->u.gatekeeperReject);
  16318. break;
  16319. case 4:
  16320. ASN1Free_RegistrationRequest(&(val)->u.registrationRequest);
  16321. break;
  16322. case 5:
  16323. ASN1Free_RegistrationConfirm(&(val)->u.registrationConfirm);
  16324. break;
  16325. case 6:
  16326. ASN1Free_RegistrationReject(&(val)->u.registrationReject);
  16327. break;
  16328. case 7:
  16329. ASN1Free_UnregistrationRequest(&(val)->u.unregistrationRequest);
  16330. break;
  16331. case 8:
  16332. ASN1Free_UnregistrationConfirm(&(val)->u.unregistrationConfirm);
  16333. break;
  16334. case 9:
  16335. ASN1Free_UnregistrationReject(&(val)->u.unregistrationReject);
  16336. break;
  16337. case 10:
  16338. ASN1Free_AdmissionRequest(&(val)->u.admissionRequest);
  16339. break;
  16340. case 11:
  16341. ASN1Free_AdmissionConfirm(&(val)->u.admissionConfirm);
  16342. break;
  16343. case 12:
  16344. ASN1Free_AdmissionReject(&(val)->u.admissionReject);
  16345. break;
  16346. case 13:
  16347. ASN1Free_BandwidthRequest(&(val)->u.bandwidthRequest);
  16348. break;
  16349. case 14:
  16350. ASN1Free_BandwidthConfirm(&(val)->u.bandwidthConfirm);
  16351. break;
  16352. case 15:
  16353. ASN1Free_BandwidthReject(&(val)->u.bandwidthReject);
  16354. break;
  16355. case 16:
  16356. ASN1Free_DisengageRequest(&(val)->u.disengageRequest);
  16357. break;
  16358. case 17:
  16359. ASN1Free_DisengageConfirm(&(val)->u.disengageConfirm);
  16360. break;
  16361. case 18:
  16362. ASN1Free_DisengageReject(&(val)->u.disengageReject);
  16363. break;
  16364. case 19:
  16365. ASN1Free_LocationRequest(&(val)->u.locationRequest);
  16366. break;
  16367. case 20:
  16368. ASN1Free_LocationConfirm(&(val)->u.locationConfirm);
  16369. break;
  16370. case 21:
  16371. ASN1Free_LocationReject(&(val)->u.locationReject);
  16372. break;
  16373. case 22:
  16374. ASN1Free_InfoRequest(&(val)->u.infoRequest);
  16375. break;
  16376. case 23:
  16377. ASN1Free_InfoRequestResponse(&(val)->u.infoRequestResponse);
  16378. break;
  16379. case 24:
  16380. ASN1Free_H225NonStandardMessage(&(val)->u.nonStandardMessage);
  16381. break;
  16382. case 25:
  16383. ASN1Free_UnknownMessageResponse(&(val)->u.unknownMessageResponse);
  16384. break;
  16385. case 26:
  16386. ASN1Free_RequestInProgress(&(val)->u.requestInProgress);
  16387. break;
  16388. case 27:
  16389. ASN1Free_ResourcesAvailableIndicate(&(val)->u.resourcesAvailableIndicate);
  16390. break;
  16391. case 28:
  16392. ASN1Free_ResourcesAvailableConfirm(&(val)->u.resourcesAvailableConfirm);
  16393. break;
  16394. case 29:
  16395. ASN1Free_InfoRequestAck(&(val)->u.infoRequestAck);
  16396. break;
  16397. case 30:
  16398. ASN1Free_InfoRequestNak(&(val)->u.infoRequestNak);
  16399. break;
  16400. }
  16401. }
  16402. }
  16403. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
  16404. {
  16405. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn);
  16406. }
  16407. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
  16408. {
  16409. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16410. return 0;
  16411. return 1;
  16412. }
  16413. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
  16414. {
  16415. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn, sizeof(**val));
  16416. }
  16417. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
  16418. {
  16419. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16420. return 0;
  16421. return 1;
  16422. }
  16423. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
  16424. {
  16425. if (val) {
  16426. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn);
  16427. }
  16428. }
  16429. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
  16430. {
  16431. if (val) {
  16432. ASN1Free_CryptoH323Token(&val->value);
  16433. }
  16434. }
  16435. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens *val)
  16436. {
  16437. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableConfirm_cryptoTokens_ElmFn);
  16438. }
  16439. static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens val)
  16440. {
  16441. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16442. return 0;
  16443. return 1;
  16444. }
  16445. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens *val)
  16446. {
  16447. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableConfirm_cryptoTokens_ElmFn, sizeof(**val));
  16448. }
  16449. static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens val)
  16450. {
  16451. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16452. return 0;
  16453. return 1;
  16454. }
  16455. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens(PResourcesAvailableConfirm_cryptoTokens *val)
  16456. {
  16457. if (val) {
  16458. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableConfirm_cryptoTokens_ElmFn);
  16459. }
  16460. }
  16461. static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens_ElmFn(PResourcesAvailableConfirm_cryptoTokens val)
  16462. {
  16463. if (val) {
  16464. ASN1Free_CryptoH323Token(&val->value);
  16465. }
  16466. }
  16467. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens *val)
  16468. {
  16469. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_cryptoTokens_ElmFn);
  16470. }
  16471. static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens val)
  16472. {
  16473. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16474. return 0;
  16475. return 1;
  16476. }
  16477. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens *val)
  16478. {
  16479. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_cryptoTokens_ElmFn, sizeof(**val));
  16480. }
  16481. static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens val)
  16482. {
  16483. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16484. return 0;
  16485. return 1;
  16486. }
  16487. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens(PResourcesAvailableIndicate_cryptoTokens *val)
  16488. {
  16489. if (val) {
  16490. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_cryptoTokens_ElmFn);
  16491. }
  16492. }
  16493. static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens_ElmFn(PResourcesAvailableIndicate_cryptoTokens val)
  16494. {
  16495. if (val) {
  16496. ASN1Free_CryptoH323Token(&val->value);
  16497. }
  16498. }
  16499. static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens(ASN1encoding_t enc, PRequestInProgress_cryptoTokens *val)
  16500. {
  16501. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestInProgress_cryptoTokens_ElmFn);
  16502. }
  16503. static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens_ElmFn(ASN1encoding_t enc, PRequestInProgress_cryptoTokens val)
  16504. {
  16505. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16506. return 0;
  16507. return 1;
  16508. }
  16509. static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens(ASN1decoding_t dec, PRequestInProgress_cryptoTokens *val)
  16510. {
  16511. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestInProgress_cryptoTokens_ElmFn, sizeof(**val));
  16512. }
  16513. static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens_ElmFn(ASN1decoding_t dec, PRequestInProgress_cryptoTokens val)
  16514. {
  16515. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16516. return 0;
  16517. return 1;
  16518. }
  16519. static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens(PRequestInProgress_cryptoTokens *val)
  16520. {
  16521. if (val) {
  16522. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestInProgress_cryptoTokens_ElmFn);
  16523. }
  16524. }
  16525. static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens_ElmFn(PRequestInProgress_cryptoTokens val)
  16526. {
  16527. if (val) {
  16528. ASN1Free_CryptoH323Token(&val->value);
  16529. }
  16530. }
  16531. static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens *val)
  16532. {
  16533. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnknownMessageResponse_cryptoTokens_ElmFn);
  16534. }
  16535. static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens val)
  16536. {
  16537. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16538. return 0;
  16539. return 1;
  16540. }
  16541. static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens *val)
  16542. {
  16543. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnknownMessageResponse_cryptoTokens_ElmFn, sizeof(**val));
  16544. }
  16545. static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens val)
  16546. {
  16547. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16548. return 0;
  16549. return 1;
  16550. }
  16551. static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens(PUnknownMessageResponse_cryptoTokens *val)
  16552. {
  16553. if (val) {
  16554. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnknownMessageResponse_cryptoTokens_ElmFn);
  16555. }
  16556. }
  16557. static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens_ElmFn(PUnknownMessageResponse_cryptoTokens val)
  16558. {
  16559. if (val) {
  16560. ASN1Free_CryptoH323Token(&val->value);
  16561. }
  16562. }
  16563. static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens *val)
  16564. {
  16565. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H225NonStandardMessage_cryptoTokens_ElmFn);
  16566. }
  16567. static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens_ElmFn(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens val)
  16568. {
  16569. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16570. return 0;
  16571. return 1;
  16572. }
  16573. static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens *val)
  16574. {
  16575. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H225NonStandardMessage_cryptoTokens_ElmFn, sizeof(**val));
  16576. }
  16577. static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens_ElmFn(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens val)
  16578. {
  16579. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16580. return 0;
  16581. return 1;
  16582. }
  16583. static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens(PH225NonStandardMessage_cryptoTokens *val)
  16584. {
  16585. if (val) {
  16586. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H225NonStandardMessage_cryptoTokens_ElmFn);
  16587. }
  16588. }
  16589. static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens_ElmFn(PH225NonStandardMessage_cryptoTokens val)
  16590. {
  16591. if (val) {
  16592. ASN1Free_CryptoH323Token(&val->value);
  16593. }
  16594. }
  16595. static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens *val)
  16596. {
  16597. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestNak_cryptoTokens_ElmFn);
  16598. }
  16599. static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens val)
  16600. {
  16601. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16602. return 0;
  16603. return 1;
  16604. }
  16605. static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens *val)
  16606. {
  16607. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestNak_cryptoTokens_ElmFn, sizeof(**val));
  16608. }
  16609. static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens val)
  16610. {
  16611. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16612. return 0;
  16613. return 1;
  16614. }
  16615. static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens(PInfoRequestNak_cryptoTokens *val)
  16616. {
  16617. if (val) {
  16618. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestNak_cryptoTokens_ElmFn);
  16619. }
  16620. }
  16621. static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens_ElmFn(PInfoRequestNak_cryptoTokens val)
  16622. {
  16623. if (val) {
  16624. ASN1Free_CryptoH323Token(&val->value);
  16625. }
  16626. }
  16627. static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens *val)
  16628. {
  16629. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestAck_cryptoTokens_ElmFn);
  16630. }
  16631. static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens val)
  16632. {
  16633. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16634. return 0;
  16635. return 1;
  16636. }
  16637. static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens *val)
  16638. {
  16639. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestAck_cryptoTokens_ElmFn, sizeof(**val));
  16640. }
  16641. static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens val)
  16642. {
  16643. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16644. return 0;
  16645. return 1;
  16646. }
  16647. static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens(PInfoRequestAck_cryptoTokens *val)
  16648. {
  16649. if (val) {
  16650. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestAck_cryptoTokens_ElmFn);
  16651. }
  16652. }
  16653. static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens_ElmFn(PInfoRequestAck_cryptoTokens val)
  16654. {
  16655. if (val) {
  16656. ASN1Free_CryptoH323Token(&val->value);
  16657. }
  16658. }
  16659. static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens *val)
  16660. {
  16661. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_cryptoTokens_ElmFn);
  16662. }
  16663. static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens val)
  16664. {
  16665. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16666. return 0;
  16667. return 1;
  16668. }
  16669. static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens *val)
  16670. {
  16671. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_cryptoTokens_ElmFn, sizeof(**val));
  16672. }
  16673. static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens val)
  16674. {
  16675. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16676. return 0;
  16677. return 1;
  16678. }
  16679. static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens(PInfoRequestResponse_cryptoTokens *val)
  16680. {
  16681. if (val) {
  16682. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_cryptoTokens_ElmFn);
  16683. }
  16684. }
  16685. static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens_ElmFn(PInfoRequestResponse_cryptoTokens val)
  16686. {
  16687. if (val) {
  16688. ASN1Free_CryptoH323Token(&val->value);
  16689. }
  16690. }
  16691. static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens(ASN1encoding_t enc, PInfoRequest_cryptoTokens *val)
  16692. {
  16693. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequest_cryptoTokens_ElmFn);
  16694. }
  16695. static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequest_cryptoTokens val)
  16696. {
  16697. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16698. return 0;
  16699. return 1;
  16700. }
  16701. static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens(ASN1decoding_t dec, PInfoRequest_cryptoTokens *val)
  16702. {
  16703. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequest_cryptoTokens_ElmFn, sizeof(**val));
  16704. }
  16705. static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequest_cryptoTokens val)
  16706. {
  16707. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16708. return 0;
  16709. return 1;
  16710. }
  16711. static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens(PInfoRequest_cryptoTokens *val)
  16712. {
  16713. if (val) {
  16714. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequest_cryptoTokens_ElmFn);
  16715. }
  16716. }
  16717. static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens_ElmFn(PInfoRequest_cryptoTokens val)
  16718. {
  16719. if (val) {
  16720. ASN1Free_CryptoH323Token(&val->value);
  16721. }
  16722. }
  16723. static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens(ASN1encoding_t enc, PDisengageReject_cryptoTokens *val)
  16724. {
  16725. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageReject_cryptoTokens_ElmFn);
  16726. }
  16727. static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageReject_cryptoTokens val)
  16728. {
  16729. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16730. return 0;
  16731. return 1;
  16732. }
  16733. static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens(ASN1decoding_t dec, PDisengageReject_cryptoTokens *val)
  16734. {
  16735. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageReject_cryptoTokens_ElmFn, sizeof(**val));
  16736. }
  16737. static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageReject_cryptoTokens val)
  16738. {
  16739. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16740. return 0;
  16741. return 1;
  16742. }
  16743. static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens(PDisengageReject_cryptoTokens *val)
  16744. {
  16745. if (val) {
  16746. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageReject_cryptoTokens_ElmFn);
  16747. }
  16748. }
  16749. static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens_ElmFn(PDisengageReject_cryptoTokens val)
  16750. {
  16751. if (val) {
  16752. ASN1Free_CryptoH323Token(&val->value);
  16753. }
  16754. }
  16755. static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens *val)
  16756. {
  16757. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageConfirm_cryptoTokens_ElmFn);
  16758. }
  16759. static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens val)
  16760. {
  16761. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16762. return 0;
  16763. return 1;
  16764. }
  16765. static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens *val)
  16766. {
  16767. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageConfirm_cryptoTokens_ElmFn, sizeof(**val));
  16768. }
  16769. static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens val)
  16770. {
  16771. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16772. return 0;
  16773. return 1;
  16774. }
  16775. static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens(PDisengageConfirm_cryptoTokens *val)
  16776. {
  16777. if (val) {
  16778. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageConfirm_cryptoTokens_ElmFn);
  16779. }
  16780. }
  16781. static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens_ElmFn(PDisengageConfirm_cryptoTokens val)
  16782. {
  16783. if (val) {
  16784. ASN1Free_CryptoH323Token(&val->value);
  16785. }
  16786. }
  16787. static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens(ASN1encoding_t enc, PDisengageRequest_cryptoTokens *val)
  16788. {
  16789. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageRequest_cryptoTokens_ElmFn);
  16790. }
  16791. static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageRequest_cryptoTokens val)
  16792. {
  16793. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16794. return 0;
  16795. return 1;
  16796. }
  16797. static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens(ASN1decoding_t dec, PDisengageRequest_cryptoTokens *val)
  16798. {
  16799. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageRequest_cryptoTokens_ElmFn, sizeof(**val));
  16800. }
  16801. static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageRequest_cryptoTokens val)
  16802. {
  16803. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16804. return 0;
  16805. return 1;
  16806. }
  16807. static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens(PDisengageRequest_cryptoTokens *val)
  16808. {
  16809. if (val) {
  16810. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageRequest_cryptoTokens_ElmFn);
  16811. }
  16812. }
  16813. static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens_ElmFn(PDisengageRequest_cryptoTokens val)
  16814. {
  16815. if (val) {
  16816. ASN1Free_CryptoH323Token(&val->value);
  16817. }
  16818. }
  16819. static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens(ASN1encoding_t enc, PLocationReject_cryptoTokens *val)
  16820. {
  16821. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationReject_cryptoTokens_ElmFn);
  16822. }
  16823. static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationReject_cryptoTokens val)
  16824. {
  16825. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16826. return 0;
  16827. return 1;
  16828. }
  16829. static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens(ASN1decoding_t dec, PLocationReject_cryptoTokens *val)
  16830. {
  16831. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationReject_cryptoTokens_ElmFn, sizeof(**val));
  16832. }
  16833. static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationReject_cryptoTokens val)
  16834. {
  16835. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16836. return 0;
  16837. return 1;
  16838. }
  16839. static void ASN1CALL ASN1Free_LocationReject_cryptoTokens(PLocationReject_cryptoTokens *val)
  16840. {
  16841. if (val) {
  16842. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationReject_cryptoTokens_ElmFn);
  16843. }
  16844. }
  16845. static void ASN1CALL ASN1Free_LocationReject_cryptoTokens_ElmFn(PLocationReject_cryptoTokens val)
  16846. {
  16847. if (val) {
  16848. ASN1Free_CryptoH323Token(&val->value);
  16849. }
  16850. }
  16851. static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens(ASN1encoding_t enc, PLocationConfirm_cryptoTokens *val)
  16852. {
  16853. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_cryptoTokens_ElmFn);
  16854. }
  16855. static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationConfirm_cryptoTokens val)
  16856. {
  16857. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16858. return 0;
  16859. return 1;
  16860. }
  16861. static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens(ASN1decoding_t dec, PLocationConfirm_cryptoTokens *val)
  16862. {
  16863. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_cryptoTokens_ElmFn, sizeof(**val));
  16864. }
  16865. static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationConfirm_cryptoTokens val)
  16866. {
  16867. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16868. return 0;
  16869. return 1;
  16870. }
  16871. static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens(PLocationConfirm_cryptoTokens *val)
  16872. {
  16873. if (val) {
  16874. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_cryptoTokens_ElmFn);
  16875. }
  16876. }
  16877. static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens_ElmFn(PLocationConfirm_cryptoTokens val)
  16878. {
  16879. if (val) {
  16880. ASN1Free_CryptoH323Token(&val->value);
  16881. }
  16882. }
  16883. static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens(ASN1encoding_t enc, PLocationRequest_cryptoTokens *val)
  16884. {
  16885. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_cryptoTokens_ElmFn);
  16886. }
  16887. static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationRequest_cryptoTokens val)
  16888. {
  16889. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16890. return 0;
  16891. return 1;
  16892. }
  16893. static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens(ASN1decoding_t dec, PLocationRequest_cryptoTokens *val)
  16894. {
  16895. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_cryptoTokens_ElmFn, sizeof(**val));
  16896. }
  16897. static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationRequest_cryptoTokens val)
  16898. {
  16899. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16900. return 0;
  16901. return 1;
  16902. }
  16903. static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens(PLocationRequest_cryptoTokens *val)
  16904. {
  16905. if (val) {
  16906. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_cryptoTokens_ElmFn);
  16907. }
  16908. }
  16909. static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens_ElmFn(PLocationRequest_cryptoTokens val)
  16910. {
  16911. if (val) {
  16912. ASN1Free_CryptoH323Token(&val->value);
  16913. }
  16914. }
  16915. static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens(ASN1encoding_t enc, PBandwidthReject_cryptoTokens *val)
  16916. {
  16917. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthReject_cryptoTokens_ElmFn);
  16918. }
  16919. static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthReject_cryptoTokens val)
  16920. {
  16921. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16922. return 0;
  16923. return 1;
  16924. }
  16925. static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens(ASN1decoding_t dec, PBandwidthReject_cryptoTokens *val)
  16926. {
  16927. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthReject_cryptoTokens_ElmFn, sizeof(**val));
  16928. }
  16929. static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthReject_cryptoTokens val)
  16930. {
  16931. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16932. return 0;
  16933. return 1;
  16934. }
  16935. static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens(PBandwidthReject_cryptoTokens *val)
  16936. {
  16937. if (val) {
  16938. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthReject_cryptoTokens_ElmFn);
  16939. }
  16940. }
  16941. static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens_ElmFn(PBandwidthReject_cryptoTokens val)
  16942. {
  16943. if (val) {
  16944. ASN1Free_CryptoH323Token(&val->value);
  16945. }
  16946. }
  16947. static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens *val)
  16948. {
  16949. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthConfirm_cryptoTokens_ElmFn);
  16950. }
  16951. static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens val)
  16952. {
  16953. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16954. return 0;
  16955. return 1;
  16956. }
  16957. static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens *val)
  16958. {
  16959. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthConfirm_cryptoTokens_ElmFn, sizeof(**val));
  16960. }
  16961. static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens val)
  16962. {
  16963. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16964. return 0;
  16965. return 1;
  16966. }
  16967. static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens(PBandwidthConfirm_cryptoTokens *val)
  16968. {
  16969. if (val) {
  16970. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthConfirm_cryptoTokens_ElmFn);
  16971. }
  16972. }
  16973. static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens_ElmFn(PBandwidthConfirm_cryptoTokens val)
  16974. {
  16975. if (val) {
  16976. ASN1Free_CryptoH323Token(&val->value);
  16977. }
  16978. }
  16979. static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens *val)
  16980. {
  16981. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthRequest_cryptoTokens_ElmFn);
  16982. }
  16983. static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens val)
  16984. {
  16985. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  16986. return 0;
  16987. return 1;
  16988. }
  16989. static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens *val)
  16990. {
  16991. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthRequest_cryptoTokens_ElmFn, sizeof(**val));
  16992. }
  16993. static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens val)
  16994. {
  16995. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  16996. return 0;
  16997. return 1;
  16998. }
  16999. static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens(PBandwidthRequest_cryptoTokens *val)
  17000. {
  17001. if (val) {
  17002. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthRequest_cryptoTokens_ElmFn);
  17003. }
  17004. }
  17005. static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens_ElmFn(PBandwidthRequest_cryptoTokens val)
  17006. {
  17007. if (val) {
  17008. ASN1Free_CryptoH323Token(&val->value);
  17009. }
  17010. }
  17011. static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens(ASN1encoding_t enc, PAdmissionReject_cryptoTokens *val)
  17012. {
  17013. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_cryptoTokens_ElmFn);
  17014. }
  17015. static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionReject_cryptoTokens val)
  17016. {
  17017. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17018. return 0;
  17019. return 1;
  17020. }
  17021. static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens(ASN1decoding_t dec, PAdmissionReject_cryptoTokens *val)
  17022. {
  17023. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_cryptoTokens_ElmFn, sizeof(**val));
  17024. }
  17025. static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionReject_cryptoTokens val)
  17026. {
  17027. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17028. return 0;
  17029. return 1;
  17030. }
  17031. static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens(PAdmissionReject_cryptoTokens *val)
  17032. {
  17033. if (val) {
  17034. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_cryptoTokens_ElmFn);
  17035. }
  17036. }
  17037. static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens_ElmFn(PAdmissionReject_cryptoTokens val)
  17038. {
  17039. if (val) {
  17040. ASN1Free_CryptoH323Token(&val->value);
  17041. }
  17042. }
  17043. static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens *val)
  17044. {
  17045. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_cryptoTokens_ElmFn);
  17046. }
  17047. static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens val)
  17048. {
  17049. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17050. return 0;
  17051. return 1;
  17052. }
  17053. static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens *val)
  17054. {
  17055. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17056. }
  17057. static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens val)
  17058. {
  17059. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17060. return 0;
  17061. return 1;
  17062. }
  17063. static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens(PAdmissionConfirm_cryptoTokens *val)
  17064. {
  17065. if (val) {
  17066. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_cryptoTokens_ElmFn);
  17067. }
  17068. }
  17069. static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens_ElmFn(PAdmissionConfirm_cryptoTokens val)
  17070. {
  17071. if (val) {
  17072. ASN1Free_CryptoH323Token(&val->value);
  17073. }
  17074. }
  17075. static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens *val)
  17076. {
  17077. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_cryptoTokens_ElmFn);
  17078. }
  17079. static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens val)
  17080. {
  17081. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17082. return 0;
  17083. return 1;
  17084. }
  17085. static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens *val)
  17086. {
  17087. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_cryptoTokens_ElmFn, sizeof(**val));
  17088. }
  17089. static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens val)
  17090. {
  17091. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17092. return 0;
  17093. return 1;
  17094. }
  17095. static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens(PAdmissionRequest_cryptoTokens *val)
  17096. {
  17097. if (val) {
  17098. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_cryptoTokens_ElmFn);
  17099. }
  17100. }
  17101. static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens_ElmFn(PAdmissionRequest_cryptoTokens val)
  17102. {
  17103. if (val) {
  17104. ASN1Free_CryptoH323Token(&val->value);
  17105. }
  17106. }
  17107. static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens *val)
  17108. {
  17109. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationReject_cryptoTokens_ElmFn);
  17110. }
  17111. static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens val)
  17112. {
  17113. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17114. return 0;
  17115. return 1;
  17116. }
  17117. static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens *val)
  17118. {
  17119. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationReject_cryptoTokens_ElmFn, sizeof(**val));
  17120. }
  17121. static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens val)
  17122. {
  17123. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17124. return 0;
  17125. return 1;
  17126. }
  17127. static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens(PUnregistrationReject_cryptoTokens *val)
  17128. {
  17129. if (val) {
  17130. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationReject_cryptoTokens_ElmFn);
  17131. }
  17132. }
  17133. static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens_ElmFn(PUnregistrationReject_cryptoTokens val)
  17134. {
  17135. if (val) {
  17136. ASN1Free_CryptoH323Token(&val->value);
  17137. }
  17138. }
  17139. static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens *val)
  17140. {
  17141. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationConfirm_cryptoTokens_ElmFn);
  17142. }
  17143. static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens val)
  17144. {
  17145. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17146. return 0;
  17147. return 1;
  17148. }
  17149. static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens *val)
  17150. {
  17151. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17152. }
  17153. static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens val)
  17154. {
  17155. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17156. return 0;
  17157. return 1;
  17158. }
  17159. static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens(PUnregistrationConfirm_cryptoTokens *val)
  17160. {
  17161. if (val) {
  17162. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationConfirm_cryptoTokens_ElmFn);
  17163. }
  17164. }
  17165. static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens_ElmFn(PUnregistrationConfirm_cryptoTokens val)
  17166. {
  17167. if (val) {
  17168. ASN1Free_CryptoH323Token(&val->value);
  17169. }
  17170. }
  17171. static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens *val)
  17172. {
  17173. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_cryptoTokens_ElmFn);
  17174. }
  17175. static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens val)
  17176. {
  17177. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17178. return 0;
  17179. return 1;
  17180. }
  17181. static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens *val)
  17182. {
  17183. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_cryptoTokens_ElmFn, sizeof(**val));
  17184. }
  17185. static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens val)
  17186. {
  17187. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17188. return 0;
  17189. return 1;
  17190. }
  17191. static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens(PUnregistrationRequest_cryptoTokens *val)
  17192. {
  17193. if (val) {
  17194. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_cryptoTokens_ElmFn);
  17195. }
  17196. }
  17197. static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens_ElmFn(PUnregistrationRequest_cryptoTokens val)
  17198. {
  17199. if (val) {
  17200. ASN1Free_CryptoH323Token(&val->value);
  17201. }
  17202. }
  17203. static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens(ASN1encoding_t enc, PRegistrationReject_cryptoTokens *val)
  17204. {
  17205. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationReject_cryptoTokens_ElmFn);
  17206. }
  17207. static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationReject_cryptoTokens val)
  17208. {
  17209. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17210. return 0;
  17211. return 1;
  17212. }
  17213. static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens(ASN1decoding_t dec, PRegistrationReject_cryptoTokens *val)
  17214. {
  17215. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationReject_cryptoTokens_ElmFn, sizeof(**val));
  17216. }
  17217. static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationReject_cryptoTokens val)
  17218. {
  17219. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17220. return 0;
  17221. return 1;
  17222. }
  17223. static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens(PRegistrationReject_cryptoTokens *val)
  17224. {
  17225. if (val) {
  17226. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationReject_cryptoTokens_ElmFn);
  17227. }
  17228. }
  17229. static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens_ElmFn(PRegistrationReject_cryptoTokens val)
  17230. {
  17231. if (val) {
  17232. ASN1Free_CryptoH323Token(&val->value);
  17233. }
  17234. }
  17235. static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens *val)
  17236. {
  17237. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_cryptoTokens_ElmFn);
  17238. }
  17239. static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens val)
  17240. {
  17241. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17242. return 0;
  17243. return 1;
  17244. }
  17245. static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens *val)
  17246. {
  17247. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17248. }
  17249. static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens val)
  17250. {
  17251. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17252. return 0;
  17253. return 1;
  17254. }
  17255. static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens(PRegistrationConfirm_cryptoTokens *val)
  17256. {
  17257. if (val) {
  17258. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_cryptoTokens_ElmFn);
  17259. }
  17260. }
  17261. static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens_ElmFn(PRegistrationConfirm_cryptoTokens val)
  17262. {
  17263. if (val) {
  17264. ASN1Free_CryptoH323Token(&val->value);
  17265. }
  17266. }
  17267. static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens *val)
  17268. {
  17269. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_cryptoTokens_ElmFn);
  17270. }
  17271. static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens val)
  17272. {
  17273. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17274. return 0;
  17275. return 1;
  17276. }
  17277. static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens *val)
  17278. {
  17279. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_cryptoTokens_ElmFn, sizeof(**val));
  17280. }
  17281. static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens val)
  17282. {
  17283. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17284. return 0;
  17285. return 1;
  17286. }
  17287. static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens(PRegistrationRequest_cryptoTokens *val)
  17288. {
  17289. if (val) {
  17290. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_cryptoTokens_ElmFn);
  17291. }
  17292. }
  17293. static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens_ElmFn(PRegistrationRequest_cryptoTokens val)
  17294. {
  17295. if (val) {
  17296. ASN1Free_CryptoH323Token(&val->value);
  17297. }
  17298. }
  17299. static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens *val)
  17300. {
  17301. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperReject_cryptoTokens_ElmFn);
  17302. }
  17303. static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens val)
  17304. {
  17305. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17306. return 0;
  17307. return 1;
  17308. }
  17309. static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens *val)
  17310. {
  17311. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperReject_cryptoTokens_ElmFn, sizeof(**val));
  17312. }
  17313. static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens val)
  17314. {
  17315. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17316. return 0;
  17317. return 1;
  17318. }
  17319. static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens(PGatekeeperReject_cryptoTokens *val)
  17320. {
  17321. if (val) {
  17322. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperReject_cryptoTokens_ElmFn);
  17323. }
  17324. }
  17325. static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens_ElmFn(PGatekeeperReject_cryptoTokens val)
  17326. {
  17327. if (val) {
  17328. ASN1Free_CryptoH323Token(&val->value);
  17329. }
  17330. }
  17331. static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens *val)
  17332. {
  17333. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_cryptoTokens_ElmFn);
  17334. }
  17335. static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens val)
  17336. {
  17337. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17338. return 0;
  17339. return 1;
  17340. }
  17341. static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens *val)
  17342. {
  17343. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_cryptoTokens_ElmFn, sizeof(**val));
  17344. }
  17345. static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens val)
  17346. {
  17347. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17348. return 0;
  17349. return 1;
  17350. }
  17351. static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens(PGatekeeperConfirm_cryptoTokens *val)
  17352. {
  17353. if (val) {
  17354. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_cryptoTokens_ElmFn);
  17355. }
  17356. }
  17357. static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens_ElmFn(PGatekeeperConfirm_cryptoTokens val)
  17358. {
  17359. if (val) {
  17360. ASN1Free_CryptoH323Token(&val->value);
  17361. }
  17362. }
  17363. static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens *val)
  17364. {
  17365. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_cryptoTokens_ElmFn);
  17366. }
  17367. static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens val)
  17368. {
  17369. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17370. return 0;
  17371. return 1;
  17372. }
  17373. static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens *val)
  17374. {
  17375. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_cryptoTokens_ElmFn, sizeof(**val));
  17376. }
  17377. static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens val)
  17378. {
  17379. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17380. return 0;
  17381. return 1;
  17382. }
  17383. static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens(PGatekeeperRequest_cryptoTokens *val)
  17384. {
  17385. if (val) {
  17386. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_cryptoTokens_ElmFn);
  17387. }
  17388. }
  17389. static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens_ElmFn(PGatekeeperRequest_cryptoTokens val)
  17390. {
  17391. if (val) {
  17392. ASN1Free_CryptoH323Token(&val->value);
  17393. }
  17394. }
  17395. static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens(ASN1encoding_t enc, PEndpoint_cryptoTokens *val)
  17396. {
  17397. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_cryptoTokens_ElmFn);
  17398. }
  17399. static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens_ElmFn(ASN1encoding_t enc, PEndpoint_cryptoTokens val)
  17400. {
  17401. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17402. return 0;
  17403. return 1;
  17404. }
  17405. static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens(ASN1decoding_t dec, PEndpoint_cryptoTokens *val)
  17406. {
  17407. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_cryptoTokens_ElmFn, sizeof(**val));
  17408. }
  17409. static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens_ElmFn(ASN1decoding_t dec, PEndpoint_cryptoTokens val)
  17410. {
  17411. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17412. return 0;
  17413. return 1;
  17414. }
  17415. static void ASN1CALL ASN1Free_Endpoint_cryptoTokens(PEndpoint_cryptoTokens *val)
  17416. {
  17417. if (val) {
  17418. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_cryptoTokens_ElmFn);
  17419. }
  17420. }
  17421. static void ASN1CALL ASN1Free_Endpoint_cryptoTokens_ElmFn(PEndpoint_cryptoTokens val)
  17422. {
  17423. if (val) {
  17424. ASN1Free_CryptoH323Token(&val->value);
  17425. }
  17426. }
  17427. static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens *val)
  17428. {
  17429. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_cryptoTokens_ElmFn);
  17430. }
  17431. static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens val)
  17432. {
  17433. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17434. return 0;
  17435. return 1;
  17436. }
  17437. static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens *val)
  17438. {
  17439. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17440. }
  17441. static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens val)
  17442. {
  17443. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17444. return 0;
  17445. return 1;
  17446. }
  17447. static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens(PProgress_UUIE_cryptoTokens *val)
  17448. {
  17449. if (val) {
  17450. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_cryptoTokens_ElmFn);
  17451. }
  17452. }
  17453. static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens_ElmFn(PProgress_UUIE_cryptoTokens val)
  17454. {
  17455. if (val) {
  17456. ASN1Free_CryptoH323Token(&val->value);
  17457. }
  17458. }
  17459. static int ASN1CALL ASN1Enc_Facility_UUIE_conferences(ASN1encoding_t enc, PFacility_UUIE_conferences *val)
  17460. {
  17461. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_conferences_ElmFn);
  17462. }
  17463. static int ASN1CALL ASN1Enc_Facility_UUIE_conferences_ElmFn(ASN1encoding_t enc, PFacility_UUIE_conferences val)
  17464. {
  17465. if (!ASN1Enc_ConferenceList(enc, &val->value))
  17466. return 0;
  17467. return 1;
  17468. }
  17469. static int ASN1CALL ASN1Dec_Facility_UUIE_conferences(ASN1decoding_t dec, PFacility_UUIE_conferences *val)
  17470. {
  17471. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_conferences_ElmFn, sizeof(**val));
  17472. }
  17473. static int ASN1CALL ASN1Dec_Facility_UUIE_conferences_ElmFn(ASN1decoding_t dec, PFacility_UUIE_conferences val)
  17474. {
  17475. if (!ASN1Dec_ConferenceList(dec, &val->value))
  17476. return 0;
  17477. return 1;
  17478. }
  17479. static void ASN1CALL ASN1Free_Facility_UUIE_conferences(PFacility_UUIE_conferences *val)
  17480. {
  17481. if (val) {
  17482. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_conferences_ElmFn);
  17483. }
  17484. }
  17485. static void ASN1CALL ASN1Free_Facility_UUIE_conferences_ElmFn(PFacility_UUIE_conferences val)
  17486. {
  17487. if (val) {
  17488. ASN1Free_ConferenceList(&val->value);
  17489. }
  17490. }
  17491. static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens *val)
  17492. {
  17493. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_cryptoTokens_ElmFn);
  17494. }
  17495. static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens val)
  17496. {
  17497. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17498. return 0;
  17499. return 1;
  17500. }
  17501. static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens *val)
  17502. {
  17503. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17504. }
  17505. static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens val)
  17506. {
  17507. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17508. return 0;
  17509. return 1;
  17510. }
  17511. static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens(PFacility_UUIE_cryptoTokens *val)
  17512. {
  17513. if (val) {
  17514. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_cryptoTokens_ElmFn);
  17515. }
  17516. }
  17517. static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens_ElmFn(PFacility_UUIE_cryptoTokens val)
  17518. {
  17519. if (val) {
  17520. ASN1Free_CryptoH323Token(&val->value);
  17521. }
  17522. }
  17523. static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens *val)
  17524. {
  17525. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_cryptoTokens_ElmFn);
  17526. }
  17527. static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens val)
  17528. {
  17529. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17530. return 0;
  17531. return 1;
  17532. }
  17533. static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens *val)
  17534. {
  17535. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17536. }
  17537. static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens val)
  17538. {
  17539. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17540. return 0;
  17541. return 1;
  17542. }
  17543. static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens(PSetup_UUIE_cryptoTokens *val)
  17544. {
  17545. if (val) {
  17546. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_cryptoTokens_ElmFn);
  17547. }
  17548. }
  17549. static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens_ElmFn(PSetup_UUIE_cryptoTokens val)
  17550. {
  17551. if (val) {
  17552. ASN1Free_CryptoH323Token(&val->value);
  17553. }
  17554. }
  17555. static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens *val)
  17556. {
  17557. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_cryptoTokens_ElmFn);
  17558. }
  17559. static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens val)
  17560. {
  17561. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17562. return 0;
  17563. return 1;
  17564. }
  17565. static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens *val)
  17566. {
  17567. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17568. }
  17569. static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens val)
  17570. {
  17571. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17572. return 0;
  17573. return 1;
  17574. }
  17575. static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens(PConnect_UUIE_cryptoTokens *val)
  17576. {
  17577. if (val) {
  17578. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_cryptoTokens_ElmFn);
  17579. }
  17580. }
  17581. static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens_ElmFn(PConnect_UUIE_cryptoTokens val)
  17582. {
  17583. if (val) {
  17584. ASN1Free_CryptoH323Token(&val->value);
  17585. }
  17586. }
  17587. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens *val)
  17588. {
  17589. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_cryptoTokens_ElmFn);
  17590. }
  17591. static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens val)
  17592. {
  17593. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17594. return 0;
  17595. return 1;
  17596. }
  17597. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens *val)
  17598. {
  17599. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17600. }
  17601. static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens val)
  17602. {
  17603. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17604. return 0;
  17605. return 1;
  17606. }
  17607. static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens(PCallProceeding_UUIE_cryptoTokens *val)
  17608. {
  17609. if (val) {
  17610. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_cryptoTokens_ElmFn);
  17611. }
  17612. }
  17613. static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens_ElmFn(PCallProceeding_UUIE_cryptoTokens val)
  17614. {
  17615. if (val) {
  17616. ASN1Free_CryptoH323Token(&val->value);
  17617. }
  17618. }
  17619. static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens *val)
  17620. {
  17621. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_cryptoTokens_ElmFn);
  17622. }
  17623. static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens val)
  17624. {
  17625. if (!ASN1Enc_CryptoH323Token(enc, &val->value))
  17626. return 0;
  17627. return 1;
  17628. }
  17629. static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens *val)
  17630. {
  17631. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_cryptoTokens_ElmFn, sizeof(**val));
  17632. }
  17633. static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens val)
  17634. {
  17635. if (!ASN1Dec_CryptoH323Token(dec, &val->value))
  17636. return 0;
  17637. return 1;
  17638. }
  17639. static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens(PAlerting_UUIE_cryptoTokens *val)
  17640. {
  17641. if (val) {
  17642. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_cryptoTokens_ElmFn);
  17643. }
  17644. }
  17645. static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens_ElmFn(PAlerting_UUIE_cryptoTokens val)
  17646. {
  17647. if (val) {
  17648. ASN1Free_CryptoH323Token(&val->value);
  17649. }
  17650. }
  17651. static int ASN1CALL ASN1Enc_H323_UU_PDU_h323_message_body(ASN1encoding_t enc, H323_UU_PDU_h323_message_body *val)
  17652. {
  17653. ASN1encoding_t ee;
  17654. if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 7))
  17655. return 0;
  17656. switch ((val)->choice) {
  17657. case 1:
  17658. if (!ASN1Enc_Setup_UUIE(enc, &(val)->u.setup))
  17659. return 0;
  17660. break;
  17661. case 2:
  17662. if (!ASN1Enc_CallProceeding_UUIE(enc, &(val)->u.callProceeding))
  17663. return 0;
  17664. break;
  17665. case 3:
  17666. if (!ASN1Enc_Connect_UUIE(enc, &(val)->u.connect))
  17667. return 0;
  17668. break;
  17669. case 4:
  17670. if (!ASN1Enc_Alerting_UUIE(enc, &(val)->u.alerting))
  17671. return 0;
  17672. break;
  17673. case 5:
  17674. if (!ASN1Enc_Information_UUIE(enc, &(val)->u.information))
  17675. return 0;
  17676. break;
  17677. case 6:
  17678. if (!ASN1Enc_ReleaseComplete_UUIE(enc, &(val)->u.releaseComplete))
  17679. return 0;
  17680. break;
  17681. case 7:
  17682. if (!ASN1Enc_Facility_UUIE(enc, &(val)->u.facility))
  17683. return 0;
  17684. break;
  17685. case 8:
  17686. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  17687. return 0;
  17688. if (!ASN1Enc_Progress_UUIE(ee, &(val)->u.progress))
  17689. return 0;
  17690. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17691. return 0;
  17692. ASN1_CloseEncoder2(ee);
  17693. break;
  17694. case 9:
  17695. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  17696. return 0;
  17697. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17698. return 0;
  17699. ASN1_CloseEncoder2(ee);
  17700. break;
  17701. default:
  17702. /* impossible */
  17703. ASN1EncSetError(enc, ASN1_ERR_CHOICE);
  17704. return 0;
  17705. }
  17706. return 1;
  17707. }
  17708. static int ASN1CALL ASN1Dec_H323_UU_PDU_h323_message_body(ASN1decoding_t dec, H323_UU_PDU_h323_message_body *val)
  17709. {
  17710. ASN1decoding_t dd;
  17711. ASN1octet_t *db;
  17712. ASN1uint32_t ds;
  17713. if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 7))
  17714. return 0;
  17715. switch ((val)->choice) {
  17716. case 1:
  17717. if (!ASN1Dec_Setup_UUIE(dec, &(val)->u.setup))
  17718. return 0;
  17719. break;
  17720. case 2:
  17721. if (!ASN1Dec_CallProceeding_UUIE(dec, &(val)->u.callProceeding))
  17722. return 0;
  17723. break;
  17724. case 3:
  17725. if (!ASN1Dec_Connect_UUIE(dec, &(val)->u.connect))
  17726. return 0;
  17727. break;
  17728. case 4:
  17729. if (!ASN1Dec_Alerting_UUIE(dec, &(val)->u.alerting))
  17730. return 0;
  17731. break;
  17732. case 5:
  17733. if (!ASN1Dec_Information_UUIE(dec, &(val)->u.information))
  17734. return 0;
  17735. break;
  17736. case 6:
  17737. if (!ASN1Dec_ReleaseComplete_UUIE(dec, &(val)->u.releaseComplete))
  17738. return 0;
  17739. break;
  17740. case 7:
  17741. if (!ASN1Dec_Facility_UUIE(dec, &(val)->u.facility))
  17742. return 0;
  17743. break;
  17744. case 8:
  17745. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17746. return 0;
  17747. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  17748. return 0;
  17749. if (!ASN1Dec_Progress_UUIE(dd, &(val)->u.progress))
  17750. return 0;
  17751. ASN1_CloseDecoder(dd);
  17752. break;
  17753. case 9:
  17754. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17755. return 0;
  17756. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  17757. return 0;
  17758. ASN1_CloseDecoder(dd);
  17759. break;
  17760. case 0:
  17761. /* extension case */
  17762. if (!ASN1PERDecSkipFragmented(dec, 8))
  17763. return 0;
  17764. break;
  17765. default:
  17766. /* impossible */
  17767. ASN1DecSetError(dec, ASN1_ERR_CHOICE);
  17768. return 0;
  17769. }
  17770. return 1;
  17771. }
  17772. static void ASN1CALL ASN1Free_H323_UU_PDU_h323_message_body(H323_UU_PDU_h323_message_body *val)
  17773. {
  17774. if (val) {
  17775. switch ((val)->choice) {
  17776. case 1:
  17777. ASN1Free_Setup_UUIE(&(val)->u.setup);
  17778. break;
  17779. case 2:
  17780. ASN1Free_CallProceeding_UUIE(&(val)->u.callProceeding);
  17781. break;
  17782. case 3:
  17783. ASN1Free_Connect_UUIE(&(val)->u.connect);
  17784. break;
  17785. case 4:
  17786. ASN1Free_Alerting_UUIE(&(val)->u.alerting);
  17787. break;
  17788. case 5:
  17789. ASN1Free_Information_UUIE(&(val)->u.information);
  17790. break;
  17791. case 6:
  17792. ASN1Free_ReleaseComplete_UUIE(&(val)->u.releaseComplete);
  17793. break;
  17794. case 7:
  17795. ASN1Free_Facility_UUIE(&(val)->u.facility);
  17796. break;
  17797. case 8:
  17798. ASN1Free_Progress_UUIE(&(val)->u.progress);
  17799. break;
  17800. }
  17801. }
  17802. }
  17803. static int ASN1CALL ASN1Enc_H323_UU_PDU(ASN1encoding_t enc, H323_UU_PDU *val)
  17804. {
  17805. ASN1octet_t o[2];
  17806. ASN1uint32_t y;
  17807. ASN1encoding_t ee;
  17808. CopyMemory(o, (val)->o, 2);
  17809. o[1] |= 0x40;
  17810. y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
  17811. if (!ASN1PEREncBitVal(enc, 1, y))
  17812. return 0;
  17813. if (!ASN1PEREncBits(enc, 1, o))
  17814. return 0;
  17815. if (!ASN1Enc_H323_UU_PDU_h323_message_body(enc, &(val)->h323_message_body))
  17816. return 0;
  17817. if (o[0] & 0x80) {
  17818. if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
  17819. return 0;
  17820. }
  17821. if (y) {
  17822. if (!ASN1PEREncNormallySmallBits(enc, 4, o + 1))
  17823. return 0;
  17824. if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
  17825. return 0;
  17826. if (o[1] & 0x80) {
  17827. if (!ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ee, &(val)->h4501SupplementaryService))
  17828. return 0;
  17829. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17830. return 0;
  17831. }
  17832. if (o[1] & 0x40) {
  17833. if (!ASN1PEREncBoolean(ee, (val)->h245Tunneling))
  17834. return 0;
  17835. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17836. return 0;
  17837. }
  17838. if (o[1] & 0x20) {
  17839. if (!ASN1Enc_H323_UU_PDU_h245Control(ee, &(val)->h245Control))
  17840. return 0;
  17841. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17842. return 0;
  17843. }
  17844. if (o[1] & 0x10) {
  17845. if (!ASN1Enc_H323_UU_PDU_nonStandardControl(ee, &(val)->nonStandardControl))
  17846. return 0;
  17847. if (!ASN1PEREncFlushFragmentedToParent(ee))
  17848. return 0;
  17849. }
  17850. ASN1_CloseEncoder2(ee);
  17851. }
  17852. return 1;
  17853. }
  17854. static int ASN1CALL ASN1Dec_H323_UU_PDU(ASN1decoding_t dec, H323_UU_PDU *val)
  17855. {
  17856. ASN1uint32_t y;
  17857. ASN1decoding_t dd;
  17858. ASN1octet_t *db;
  17859. ASN1uint32_t ds;
  17860. ASN1uint32_t i;
  17861. ASN1uint32_t e;
  17862. if (!ASN1PERDecExtensionBit(dec, &y))
  17863. return 0;
  17864. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  17865. return 0;
  17866. if (!ASN1Dec_H323_UU_PDU_h323_message_body(dec, &(val)->h323_message_body))
  17867. return 0;
  17868. if ((val)->o[0] & 0x80) {
  17869. if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
  17870. return 0;
  17871. }
  17872. if (!y) {
  17873. ZeroMemory((val)->o + 1, 1);
  17874. } else {
  17875. if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
  17876. return 0;
  17877. if ((val)->o[1] & 0x80) {
  17878. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17879. return 0;
  17880. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  17881. return 0;
  17882. if (!ASN1Dec_H323_UU_PDU_h4501SupplementaryService(dd, &(val)->h4501SupplementaryService))
  17883. return 0;
  17884. ASN1_CloseDecoder(dd);
  17885. }
  17886. if ((val)->o[1] & 0x40) {
  17887. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17888. return 0;
  17889. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  17890. return 0;
  17891. if (!ASN1PERDecBoolean(dd, &(val)->h245Tunneling))
  17892. return 0;
  17893. ASN1_CloseDecoder(dd);
  17894. }
  17895. if ((val)->o[1] & 0x20) {
  17896. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17897. return 0;
  17898. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  17899. return 0;
  17900. if (!ASN1Dec_H323_UU_PDU_h245Control(dd, &(val)->h245Control))
  17901. return 0;
  17902. ASN1_CloseDecoder(dd);
  17903. }
  17904. if ((val)->o[1] & 0x10) {
  17905. if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
  17906. return 0;
  17907. if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
  17908. return 0;
  17909. if (!ASN1Dec_H323_UU_PDU_nonStandardControl(dd, &(val)->nonStandardControl))
  17910. return 0;
  17911. ASN1_CloseDecoder(dd);
  17912. }
  17913. for (i = 0; i < e; i++) {
  17914. if (!ASN1PERDecSkipFragmented(dec, 8))
  17915. return 0;
  17916. }
  17917. }
  17918. return 1;
  17919. }
  17920. static void ASN1CALL ASN1Free_H323_UU_PDU(H323_UU_PDU *val)
  17921. {
  17922. if (val) {
  17923. ASN1Free_H323_UU_PDU_h323_message_body(&(val)->h323_message_body);
  17924. if ((val)->o[0] & 0x80) {
  17925. ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
  17926. }
  17927. if ((val)->o[1] & 0x80) {
  17928. ASN1Free_H323_UU_PDU_h4501SupplementaryService(&(val)->h4501SupplementaryService);
  17929. }
  17930. if ((val)->o[1] & 0x20) {
  17931. ASN1Free_H323_UU_PDU_h245Control(&(val)->h245Control);
  17932. }
  17933. if ((val)->o[1] & 0x10) {
  17934. ASN1Free_H323_UU_PDU_nonStandardControl(&(val)->nonStandardControl);
  17935. }
  17936. }
  17937. }
  17938. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
  17939. {
  17940. if (!ASN1Enc_H323_UU_PDU(enc, &(val)->h323pdu))
  17941. return 0;
  17942. if (!ASN1PEREncBoolean(enc, (val)->sent))
  17943. return 0;
  17944. return 1;
  17945. }
  17946. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
  17947. {
  17948. if (!ASN1Dec_H323_UU_PDU(dec, &(val)->h323pdu))
  17949. return 0;
  17950. if (!ASN1PERDecBoolean(dec, &(val)->sent))
  17951. return 0;
  17952. return 1;
  17953. }
  17954. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
  17955. {
  17956. if (val) {
  17957. ASN1Free_H323_UU_PDU(&(val)->h323pdu);
  17958. }
  17959. }
  17960. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu *val)
  17961. {
  17962. return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn);
  17963. }
  17964. static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu val)
  17965. {
  17966. if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(enc, &val->value))
  17967. return 0;
  17968. return 1;
  17969. }
  17970. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu *val)
  17971. {
  17972. return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn, sizeof(**val));
  17973. }
  17974. static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu val)
  17975. {
  17976. if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(dec, &val->value))
  17977. return 0;
  17978. return 1;
  17979. }
  17980. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(PInfoRequestResponse_perCallInfo_Seq_pdu *val)
  17981. {
  17982. if (val) {
  17983. ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn);
  17984. }
  17985. }
  17986. static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(PInfoRequestResponse_perCallInfo_Seq_pdu val)
  17987. {
  17988. if (val) {
  17989. ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(&val->value);
  17990. }
  17991. }
  17992. static int ASN1CALL ASN1Enc_H323_UserInformation(ASN1encoding_t enc, H323_UserInformation *val)
  17993. {
  17994. if (!ASN1PEREncExtensionBitClear(enc))
  17995. return 0;
  17996. if (!ASN1PEREncBits(enc, 1, (val)->o))
  17997. return 0;
  17998. if (!ASN1Enc_H323_UU_PDU(enc, &(val)->h323_uu_pdu))
  17999. return 0;
  18000. if ((val)->o[0] & 0x80) {
  18001. if (!ASN1Enc_H323_UserInformation_user_data(enc, &(val)->user_data))
  18002. return 0;
  18003. }
  18004. return 1;
  18005. }
  18006. static int ASN1CALL ASN1Dec_H323_UserInformation(ASN1decoding_t dec, H323_UserInformation *val)
  18007. {
  18008. ASN1uint32_t y;
  18009. if (!ASN1PERDecExtensionBit(dec, &y))
  18010. return 0;
  18011. if (!ASN1PERDecExtension(dec, 1, (val)->o))
  18012. return 0;
  18013. if (!ASN1Dec_H323_UU_PDU(dec, &(val)->h323_uu_pdu))
  18014. return 0;
  18015. if ((val)->o[0] & 0x80) {
  18016. if (!ASN1Dec_H323_UserInformation_user_data(dec, &(val)->user_data))
  18017. return 0;
  18018. }
  18019. if (y) {
  18020. if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
  18021. return 0;
  18022. }
  18023. return 1;
  18024. }
  18025. static void ASN1CALL ASN1Free_H323_UserInformation(H323_UserInformation *val)
  18026. {
  18027. if (val) {
  18028. ASN1Free_H323_UU_PDU(&(val)->h323_uu_pdu);
  18029. if ((val)->o[0] & 0x80) {
  18030. ASN1Free_H323_UserInformation_user_data(&(val)->user_data);
  18031. }
  18032. }
  18033. }