windows-nt/Source/XPSP1/NT/net/tapi/skywalker/h323/asn/h225asn.c
2020-09-26 16:20:57 +08:00

19375 lines
635 KiB
C

/* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
/* ASN.1 definitions for H.235 Security Messages v1 (H.235) */
/* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
/* ASN.1 definitions for Multimedia System Control (H.245) */
/* Copyright (C) Microsoft Corporation, 1995-1999. All rights reserved. */
/* ASN.1 definitions for H.323 Messages v2 (H.225) */
#include <windows.h>
#include "h225asn.h"
ASN1module_t H225ASN_Module = NULL;
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val);
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_routing(ASN1encoding_t enc, TransportAddress_ipSourceRoute_routing *val);
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_route(ASN1encoding_t enc, PTransportAddress_ipSourceRoute_route *val);
static int ASN1CALL ASN1Enc_RTPSession_associatedSessionIds(ASN1encoding_t enc, PRTPSession_associatedSessionIds *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm_preGrantedARQ(ASN1encoding_t enc, RegistrationConfirm_preGrantedARQ *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_algorithmOIDs(ASN1encoding_t enc, PGatekeeperRequest_algorithmOIDs *val);
static int ASN1CALL ASN1Enc_TransportAddress_ip6Address(ASN1encoding_t enc, TransportAddress_ip6Address *val);
static int ASN1CALL ASN1Enc_TransportAddress_ipxAddress(ASN1encoding_t enc, TransportAddress_ipxAddress *val);
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute(ASN1encoding_t enc, TransportAddress_ipSourceRoute *val);
static int ASN1CALL ASN1Enc_TransportAddress_ipAddress(ASN1encoding_t enc, TransportAddress_ipAddress *val);
static int ASN1CALL ASN1Enc_Progress_UUIE_fastStart(ASN1encoding_t enc, PProgress_UUIE_fastStart *val);
static int ASN1CALL ASN1Enc_Facility_UUIE_fastStart(ASN1encoding_t enc, PFacility_UUIE_fastStart *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_fastStart(ASN1encoding_t enc, PSetup_UUIE_fastStart *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_conferenceGoal(ASN1encoding_t enc, Setup_UUIE_conferenceGoal *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV *val);
static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart(ASN1encoding_t enc, PConnect_UUIE_fastStart *val);
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart *val);
static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart(ASN1encoding_t enc, PAlerting_UUIE_fastStart *val);
static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control(ASN1encoding_t enc, PH323_UU_PDU_h245Control *val);
static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService *val);
static int ASN1CALL ASN1Enc_H323_UserInformation_user_data(ASN1encoding_t enc, H323_UserInformation_user_data *val);
static int ASN1CALL ASN1Enc_H235NonStandardParameter(ASN1encoding_t enc, H235NonStandardParameter *val);
static int ASN1CALL ASN1Enc_DHset(ASN1encoding_t enc, DHset *val);
static int ASN1CALL ASN1Enc_TypedCertificate(ASN1encoding_t enc, TypedCertificate *val);
static int ASN1CALL ASN1Enc_AuthenticationMechanism(ASN1encoding_t enc, AuthenticationMechanism *val);
static int ASN1CALL ASN1Enc_ClearToken(ASN1encoding_t enc, ClearToken *val);
static int ASN1CALL ASN1Enc_Params(ASN1encoding_t enc, Params *val);
static int ASN1CALL ASN1Enc_EncodedGeneralToken(ASN1encoding_t enc, EncodedGeneralToken *val);
static int ASN1CALL ASN1Enc_PwdCertToken(ASN1encoding_t enc, PwdCertToken *val);
static int ASN1CALL ASN1Enc_EncodedPwdCertToken(ASN1encoding_t enc, EncodedPwdCertToken *val);
static int ASN1CALL ASN1Enc_ReleaseCompleteReason(ASN1encoding_t enc, ReleaseCompleteReason *val);
static int ASN1CALL ASN1Enc_FacilityReason(ASN1encoding_t enc, FacilityReason *val);
static int ASN1CALL ASN1Enc_H221NonStandard(ASN1encoding_t enc, H221NonStandard *val);
static int ASN1CALL ASN1Enc_H225NonStandardIdentifier(ASN1encoding_t enc, H225NonStandardIdentifier *val);
static int ASN1CALL ASN1Enc_PublicTypeOfNumber(ASN1encoding_t enc, PublicTypeOfNumber *val);
static int ASN1CALL ASN1Enc_PrivateTypeOfNumber(ASN1encoding_t enc, PrivateTypeOfNumber *val);
static int ASN1CALL ASN1Enc_AltGKInfo(ASN1encoding_t enc, AltGKInfo *val);
static int ASN1CALL ASN1Enc_Q954Details(ASN1encoding_t enc, Q954Details *val);
static int ASN1CALL ASN1Enc_CallIdentifier(ASN1encoding_t enc, CallIdentifier *val);
static int ASN1CALL ASN1Enc_ICV(ASN1encoding_t enc, ICV *val);
static int ASN1CALL ASN1Enc_GatekeeperRejectReason(ASN1encoding_t enc, GatekeeperRejectReason *val);
static int ASN1CALL ASN1Enc_RegistrationRejectReason(ASN1encoding_t enc, RegistrationRejectReason *val);
static int ASN1CALL ASN1Enc_UnregRequestReason(ASN1encoding_t enc, UnregRequestReason *val);
static int ASN1CALL ASN1Enc_UnregRejectReason(ASN1encoding_t enc, UnregRejectReason *val);
static int ASN1CALL ASN1Enc_CallType(ASN1encoding_t enc, CallType *val);
static int ASN1CALL ASN1Enc_CallModel(ASN1encoding_t enc, CallModel *val);
static int ASN1CALL ASN1Enc_TransportQOS(ASN1encoding_t enc, TransportQOS *val);
static int ASN1CALL ASN1Enc_UUIEsRequested(ASN1encoding_t enc, UUIEsRequested *val);
static int ASN1CALL ASN1Enc_AdmissionRejectReason(ASN1encoding_t enc, AdmissionRejectReason *val);
static int ASN1CALL ASN1Enc_BandRejectReason(ASN1encoding_t enc, BandRejectReason *val);
static int ASN1CALL ASN1Enc_LocationRejectReason(ASN1encoding_t enc, LocationRejectReason *val);
static int ASN1CALL ASN1Enc_DisengageReason(ASN1encoding_t enc, DisengageReason *val);
static int ASN1CALL ASN1Enc_DisengageRejectReason(ASN1encoding_t enc, DisengageRejectReason *val);
static int ASN1CALL ASN1Enc_InfoRequestNakReason(ASN1encoding_t enc, InfoRequestNakReason *val);
static int ASN1CALL ASN1Enc_UnknownMessageResponse(ASN1encoding_t enc, UnknownMessageResponse *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens *val);
static int ASN1CALL ASN1Enc_RequestInProgress_tokens(ASN1encoding_t enc, PRequestInProgress_tokens *val);
static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens(ASN1encoding_t enc, PUnknownMessageResponse_tokens *val);
static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens(ASN1encoding_t enc, PH225NonStandardMessage_tokens *val);
static int ASN1CALL ASN1Enc_InfoRequestNak_tokens(ASN1encoding_t enc, PInfoRequestNak_tokens *val);
static int ASN1CALL ASN1Enc_InfoRequestAck_tokens(ASN1encoding_t enc, PInfoRequestAck_tokens *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens(ASN1encoding_t enc, PInfoRequestResponse_tokens *val);
static int ASN1CALL ASN1Enc_InfoRequest_tokens(ASN1encoding_t enc, PInfoRequest_tokens *val);
static int ASN1CALL ASN1Enc_DisengageReject_tokens(ASN1encoding_t enc, PDisengageReject_tokens *val);
static int ASN1CALL ASN1Enc_DisengageConfirm_tokens(ASN1encoding_t enc, PDisengageConfirm_tokens *val);
static int ASN1CALL ASN1Enc_DisengageRequest_tokens(ASN1encoding_t enc, PDisengageRequest_tokens *val);
static int ASN1CALL ASN1Enc_LocationReject_tokens(ASN1encoding_t enc, PLocationReject_tokens *val);
static int ASN1CALL ASN1Enc_LocationConfirm_tokens(ASN1encoding_t enc, PLocationConfirm_tokens *val);
static int ASN1CALL ASN1Enc_LocationRequest_tokens(ASN1encoding_t enc, PLocationRequest_tokens *val);
static int ASN1CALL ASN1Enc_BandwidthReject_tokens(ASN1encoding_t enc, PBandwidthReject_tokens *val);
static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens(ASN1encoding_t enc, PBandwidthConfirm_tokens *val);
static int ASN1CALL ASN1Enc_BandwidthRequest_tokens(ASN1encoding_t enc, PBandwidthRequest_tokens *val);
static int ASN1CALL ASN1Enc_AdmissionReject_tokens(ASN1encoding_t enc, PAdmissionReject_tokens *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens(ASN1encoding_t enc, PAdmissionConfirm_tokens *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_tokens(ASN1encoding_t enc, PAdmissionRequest_tokens *val);
static int ASN1CALL ASN1Enc_UnregistrationReject_tokens(ASN1encoding_t enc, PUnregistrationReject_tokens *val);
static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens(ASN1encoding_t enc, PUnregistrationConfirm_tokens *val);
static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens(ASN1encoding_t enc, PUnregistrationRequest_tokens *val);
static int ASN1CALL ASN1Enc_RegistrationReject_tokens(ASN1encoding_t enc, PRegistrationReject_tokens *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens(ASN1encoding_t enc, PRegistrationConfirm_tokens *val);
static int ASN1CALL ASN1Enc_RegistrationRequest_tokens(ASN1encoding_t enc, PRegistrationRequest_tokens *val);
static int ASN1CALL ASN1Enc_GatekeeperReject_tokens(ASN1encoding_t enc, PGatekeeperReject_tokens *val);
static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens(ASN1encoding_t enc, PGatekeeperConfirm_tokens *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens(ASN1encoding_t enc, PGatekeeperRequest_tokens *val);
static int ASN1CALL ASN1Enc_Endpoint_tokens(ASN1encoding_t enc, PEndpoint_tokens *val);
static int ASN1CALL ASN1Enc_Progress_UUIE_tokens(ASN1encoding_t enc, PProgress_UUIE_tokens *val);
static int ASN1CALL ASN1Enc_Facility_UUIE_tokens(ASN1encoding_t enc, PFacility_UUIE_tokens *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_tokens(ASN1encoding_t enc, PSetup_UUIE_tokens *val);
static int ASN1CALL ASN1Enc_Connect_UUIE_tokens(ASN1encoding_t enc, PConnect_UUIE_tokens *val);
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens(ASN1encoding_t enc, PCallProceeding_UUIE_tokens *val);
static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens(ASN1encoding_t enc, PAlerting_UUIE_tokens *val);
static int ASN1CALL ASN1Enc_SIGNED_EncodedGeneralToken(ASN1encoding_t enc, SIGNED_EncodedGeneralToken *val);
static int ASN1CALL ASN1Enc_ENCRYPTED(ASN1encoding_t enc, ENCRYPTED *val);
static int ASN1CALL ASN1Enc_HASHED(ASN1encoding_t enc, HASHED *val);
static int ASN1CALL ASN1Enc_SIGNED_EncodedPwdCertToken(ASN1encoding_t enc, SIGNED_EncodedPwdCertToken *val);
static int ASN1CALL ASN1Enc_Information_UUIE(ASN1encoding_t enc, Information_UUIE *val);
static int ASN1CALL ASN1Enc_ReleaseComplete_UUIE(ASN1encoding_t enc, ReleaseComplete_UUIE *val);
static int ASN1CALL ASN1Enc_VendorIdentifier(ASN1encoding_t enc, VendorIdentifier *val);
static int ASN1CALL ASN1Enc_H225NonStandardParameter(ASN1encoding_t enc, H225NonStandardParameter *val);
static int ASN1CALL ASN1Enc_PublicPartyNumber(ASN1encoding_t enc, PublicPartyNumber *val);
static int ASN1CALL ASN1Enc_PrivatePartyNumber(ASN1encoding_t enc, PrivatePartyNumber *val);
static int ASN1CALL ASN1Enc_SecurityServiceMode(ASN1encoding_t enc, SecurityServiceMode *val);
static int ASN1CALL ASN1Enc_SecurityCapabilities(ASN1encoding_t enc, SecurityCapabilities *val);
static int ASN1CALL ASN1Enc_H245Security(ASN1encoding_t enc, H245Security *val);
static int ASN1CALL ASN1Enc_QseriesOptions(ASN1encoding_t enc, QseriesOptions *val);
static int ASN1CALL ASN1Enc_EncryptIntAlg(ASN1encoding_t enc, EncryptIntAlg *val);
static int ASN1CALL ASN1Enc_NonIsoIntegrityMechanism(ASN1encoding_t enc, NonIsoIntegrityMechanism *val);
static int ASN1CALL ASN1Enc_IntegrityMechanism(ASN1encoding_t enc, IntegrityMechanism *val);
#define ASN1Enc_FastStartToken(x,y) 0
static int ASN1CALL ASN1Enc_EncodedFastStartToken(ASN1encoding_t enc, EncodedFastStartToken *val);
static int ASN1CALL ASN1Enc_DataRate(ASN1encoding_t enc, DataRate *val);
static int ASN1CALL ASN1Enc_GatekeeperReject(ASN1encoding_t enc, GatekeeperReject *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm(ASN1encoding_t enc, RegistrationConfirm *val);
static int ASN1CALL ASN1Enc_RegistrationReject(ASN1encoding_t enc, RegistrationReject *val);
static int ASN1CALL ASN1Enc_UnregistrationRequest(ASN1encoding_t enc, UnregistrationRequest *val);
static int ASN1CALL ASN1Enc_UnregistrationConfirm(ASN1encoding_t enc, UnregistrationConfirm *val);
static int ASN1CALL ASN1Enc_UnregistrationReject(ASN1encoding_t enc, UnregistrationReject *val);
static int ASN1CALL ASN1Enc_AdmissionReject(ASN1encoding_t enc, AdmissionReject *val);
static int ASN1CALL ASN1Enc_BandwidthRequest(ASN1encoding_t enc, BandwidthRequest *val);
static int ASN1CALL ASN1Enc_BandwidthConfirm(ASN1encoding_t enc, BandwidthConfirm *val);
static int ASN1CALL ASN1Enc_BandwidthReject(ASN1encoding_t enc, BandwidthReject *val);
static int ASN1CALL ASN1Enc_LocationReject(ASN1encoding_t enc, LocationReject *val);
static int ASN1CALL ASN1Enc_DisengageRequest(ASN1encoding_t enc, DisengageRequest *val);
static int ASN1CALL ASN1Enc_DisengageConfirm(ASN1encoding_t enc, DisengageConfirm *val);
static int ASN1CALL ASN1Enc_DisengageReject(ASN1encoding_t enc, DisengageReject *val);
static int ASN1CALL ASN1Enc_InfoRequestAck(ASN1encoding_t enc, InfoRequestAck *val);
static int ASN1CALL ASN1Enc_InfoRequestNak(ASN1encoding_t enc, InfoRequestNak *val);
static int ASN1CALL ASN1Enc_H225NonStandardMessage(ASN1encoding_t enc, H225NonStandardMessage *val);
static int ASN1CALL ASN1Enc_RequestInProgress(ASN1encoding_t enc, RequestInProgress *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate(ASN1encoding_t enc, ResourcesAvailableIndicate *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm(ASN1encoding_t enc, ResourcesAvailableConfirm *val);
static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity(ASN1encoding_t enc, PGatekeeperConfirm_integrity *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity(ASN1encoding_t enc, PGatekeeperRequest_integrity *val);
static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoGKPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoGKPwdHash *val);
static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported(ASN1encoding_t enc, PH324Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported(ASN1encoding_t enc, PH323Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported(ASN1encoding_t enc, PH322Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported(ASN1encoding_t enc, PH321Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported(ASN1encoding_t enc, PH320Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported(ASN1encoding_t enc, PH310Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability *val);
static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl *val);
static int ASN1CALL ASN1Enc_CryptoToken_cryptoHashedToken(ASN1encoding_t enc, CryptoToken_cryptoHashedToken *val);
static int ASN1CALL ASN1Enc_CryptoToken_cryptoSignedToken(ASN1encoding_t enc, CryptoToken_cryptoSignedToken *val);
static int ASN1CALL ASN1Enc_CryptoToken_cryptoEncryptedToken(ASN1encoding_t enc, CryptoToken_cryptoEncryptedToken *val);
static int ASN1CALL ASN1Enc_CryptoToken(ASN1encoding_t enc, CryptoToken *val);
static int ASN1CALL ASN1Enc_SIGNED_EncodedFastStartToken(ASN1encoding_t enc, SIGNED_EncodedFastStartToken *val);
static int ASN1CALL ASN1Enc_TransportAddress(ASN1encoding_t enc, TransportAddress *val);
static int ASN1CALL ASN1Enc_GatewayInfo(ASN1encoding_t enc, GatewayInfo *val);
static int ASN1CALL ASN1Enc_H310Caps(ASN1encoding_t enc, H310Caps *val);
static int ASN1CALL ASN1Enc_H320Caps(ASN1encoding_t enc, H320Caps *val);
static int ASN1CALL ASN1Enc_H321Caps(ASN1encoding_t enc, H321Caps *val);
static int ASN1CALL ASN1Enc_H322Caps(ASN1encoding_t enc, H322Caps *val);
static int ASN1CALL ASN1Enc_H323Caps(ASN1encoding_t enc, H323Caps *val);
static int ASN1CALL ASN1Enc_H324Caps(ASN1encoding_t enc, H324Caps *val);
static int ASN1CALL ASN1Enc_VoiceCaps(ASN1encoding_t enc, VoiceCaps *val);
static int ASN1CALL ASN1Enc_T120OnlyCaps(ASN1encoding_t enc, T120OnlyCaps *val);
static int ASN1CALL ASN1Enc_NonStandardProtocol(ASN1encoding_t enc, NonStandardProtocol *val);
static int ASN1CALL ASN1Enc_McuInfo(ASN1encoding_t enc, McuInfo *val);
static int ASN1CALL ASN1Enc_TerminalInfo(ASN1encoding_t enc, TerminalInfo *val);
static int ASN1CALL ASN1Enc_GatekeeperInfo(ASN1encoding_t enc, GatekeeperInfo *val);
static int ASN1CALL ASN1Enc_PartyNumber(ASN1encoding_t enc, PartyNumber *val);
static int ASN1CALL ASN1Enc_AlternateGK(ASN1encoding_t enc, AlternateGK *val);
static int ASN1CALL ASN1Enc_GatekeeperConfirm(ASN1encoding_t enc, GatekeeperConfirm *val);
static int ASN1CALL ASN1Enc_AdmissionRequest(ASN1encoding_t enc, AdmissionRequest *val);
static int ASN1CALL ASN1Enc_LocationRequest(ASN1encoding_t enc, LocationRequest *val);
static int ASN1CALL ASN1Enc_InfoRequest(ASN1encoding_t enc, InfoRequest *val);
static int ASN1CALL ASN1Enc_TransportChannelInfo(ASN1encoding_t enc, TransportChannelInfo *val);
static int ASN1CALL ASN1Enc_RTPSession(ASN1encoding_t enc, RTPSession *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress *val);
static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress(ASN1encoding_t enc, PAdmissionReject_callSignalAddress *val);
static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress *val);
static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress(ASN1encoding_t enc, PRegistrationRequest_rasAddress *val);
static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress *val);
static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper *val);
static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper *val);
static int ASN1CALL ASN1Enc_Endpoint_rasAddress(ASN1encoding_t enc, PEndpoint_rasAddress *val);
static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress(ASN1encoding_t enc, PEndpoint_callSignalAddress *val);
static int ASN1CALL ASN1Enc_EndpointType(ASN1encoding_t enc, EndpointType *val);
static int ASN1CALL ASN1Enc_SupportedProtocols(ASN1encoding_t enc, SupportedProtocols *val);
static int ASN1CALL ASN1Enc_AliasAddress(ASN1encoding_t enc, AliasAddress *val);
static int ASN1CALL ASN1Enc_Endpoint(ASN1encoding_t enc, Endpoint *val);
static int ASN1CALL ASN1Enc_SupportedPrefix(ASN1encoding_t enc, SupportedPrefix *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest(ASN1encoding_t enc, GatekeeperRequest *val);
static int ASN1CALL ASN1Enc_RegistrationRequest(ASN1encoding_t enc, RegistrationRequest *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm(ASN1encoding_t enc, AdmissionConfirm *val);
static int ASN1CALL ASN1Enc_LocationConfirm(ASN1encoding_t enc, LocationConfirm *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse(ASN1encoding_t enc, InfoRequestResponse *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias *val);
static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints *val);
static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress *val);
static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo *val);
static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo(ASN1encoding_t enc, PLocationConfirm_destinationInfo *val);
static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo(ASN1encoding_t enc, PLocationRequest_sourceInfo *val);
static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo(ASN1encoding_t enc, PLocationRequest_destinationInfo *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives(ASN1encoding_t enc, PAdmissionRequest_destAlternatives *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo(ASN1encoding_t enc, PAdmissionRequest_srcInfo *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo(ASN1encoding_t enc, PAdmissionRequest_destinationInfo *val);
static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints *val);
static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias *val);
static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias *val);
static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints *val);
static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias(ASN1encoding_t enc, PRegistrationRequest_terminalAlias *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias *val);
static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoEPPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoEPPwdHash *val);
static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo(ASN1encoding_t enc, PEndpoint_destExtraCallInfo *val);
static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress *val);
static int ASN1CALL ASN1Enc_Endpoint_aliasAddress(ASN1encoding_t enc, PEndpoint_aliasAddress *val);
static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes(ASN1encoding_t enc, PH324Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes(ASN1encoding_t enc, PH323Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes(ASN1encoding_t enc, PH322Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes(ASN1encoding_t enc, PH321Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes(ASN1encoding_t enc, PH320Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes(ASN1encoding_t enc, PH310Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Enc_GatewayInfo_protocol(ASN1encoding_t enc, PGatewayInfo_protocol *val);
static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo *val);
static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress(ASN1encoding_t enc, PSetup_UUIE_destinationAddress *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress(ASN1encoding_t enc, PSetup_UUIE_sourceAddress *val);
static int ASN1CALL ASN1Enc_Alerting_UUIE(ASN1encoding_t enc, Alerting_UUIE *val);
static int ASN1CALL ASN1Enc_CallProceeding_UUIE(ASN1encoding_t enc, CallProceeding_UUIE *val);
static int ASN1CALL ASN1Enc_Connect_UUIE(ASN1encoding_t enc, Connect_UUIE *val);
static int ASN1CALL ASN1Enc_Setup_UUIE(ASN1encoding_t enc, Setup_UUIE *val);
static int ASN1CALL ASN1Enc_Facility_UUIE(ASN1encoding_t enc, Facility_UUIE *val);
static int ASN1CALL ASN1Enc_ConferenceList(ASN1encoding_t enc, ConferenceList *val);
static int ASN1CALL ASN1Enc_Progress_UUIE(ASN1encoding_t enc, Progress_UUIE *val);
static int ASN1CALL ASN1Enc_CryptoH323Token(ASN1encoding_t enc, CryptoH323Token *val);
static int ASN1CALL ASN1Enc_RasMessage(ASN1encoding_t enc, RasMessage *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens *val);
static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens(ASN1encoding_t enc, PRequestInProgress_cryptoTokens *val);
static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens *val);
static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens *val);
static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens *val);
static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens *val);
static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens(ASN1encoding_t enc, PInfoRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens(ASN1encoding_t enc, PDisengageReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens(ASN1encoding_t enc, PDisengageRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens(ASN1encoding_t enc, PLocationReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens(ASN1encoding_t enc, PLocationConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens(ASN1encoding_t enc, PLocationRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens(ASN1encoding_t enc, PBandwidthReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens(ASN1encoding_t enc, PAdmissionReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens(ASN1encoding_t enc, PRegistrationReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens *val);
static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens *val);
static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens(ASN1encoding_t enc, PEndpoint_cryptoTokens *val);
static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Enc_Facility_UUIE_conferences(ASN1encoding_t enc, PFacility_UUIE_conferences *val);
static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Enc_H323_UU_PDU_h323_message_body(ASN1encoding_t enc, H323_UU_PDU_h323_message_body *val);
static int ASN1CALL ASN1Enc_H323_UU_PDU(ASN1encoding_t enc, H323_UU_PDU *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val);
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu *val);
static int ASN1CALL ASN1Enc_H323_UserInformation(ASN1encoding_t enc, H323_UserInformation *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val);
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_routing(ASN1decoding_t dec, TransportAddress_ipSourceRoute_routing *val);
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_route(ASN1decoding_t dec, PTransportAddress_ipSourceRoute_route *val);
static int ASN1CALL ASN1Dec_RTPSession_associatedSessionIds(ASN1decoding_t dec, PRTPSession_associatedSessionIds *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm_preGrantedARQ(ASN1decoding_t dec, RegistrationConfirm_preGrantedARQ *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_algorithmOIDs(ASN1decoding_t dec, PGatekeeperRequest_algorithmOIDs *val);
static int ASN1CALL ASN1Dec_TransportAddress_ip6Address(ASN1decoding_t dec, TransportAddress_ip6Address *val);
static int ASN1CALL ASN1Dec_TransportAddress_ipxAddress(ASN1decoding_t dec, TransportAddress_ipxAddress *val);
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute(ASN1decoding_t dec, TransportAddress_ipSourceRoute *val);
static int ASN1CALL ASN1Dec_TransportAddress_ipAddress(ASN1decoding_t dec, TransportAddress_ipAddress *val);
static int ASN1CALL ASN1Dec_Progress_UUIE_fastStart(ASN1decoding_t dec, PProgress_UUIE_fastStart *val);
static int ASN1CALL ASN1Dec_Facility_UUIE_fastStart(ASN1decoding_t dec, PFacility_UUIE_fastStart *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_fastStart(ASN1decoding_t dec, PSetup_UUIE_fastStart *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_conferenceGoal(ASN1decoding_t dec, Setup_UUIE_conferenceGoal *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV *val);
static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart(ASN1decoding_t dec, PConnect_UUIE_fastStart *val);
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart *val);
static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart(ASN1decoding_t dec, PAlerting_UUIE_fastStart *val);
static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control(ASN1decoding_t dec, PH323_UU_PDU_h245Control *val);
static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService *val);
static int ASN1CALL ASN1Dec_H323_UserInformation_user_data(ASN1decoding_t dec, H323_UserInformation_user_data *val);
static int ASN1CALL ASN1Dec_H235NonStandardParameter(ASN1decoding_t dec, H235NonStandardParameter *val);
static int ASN1CALL ASN1Dec_DHset(ASN1decoding_t dec, DHset *val);
static int ASN1CALL ASN1Dec_TypedCertificate(ASN1decoding_t dec, TypedCertificate *val);
static int ASN1CALL ASN1Dec_AuthenticationMechanism(ASN1decoding_t dec, AuthenticationMechanism *val);
static int ASN1CALL ASN1Dec_ClearToken(ASN1decoding_t dec, ClearToken *val);
static int ASN1CALL ASN1Dec_Params(ASN1decoding_t dec, Params *val);
static int ASN1CALL ASN1Dec_EncodedGeneralToken(ASN1decoding_t dec, EncodedGeneralToken *val);
static int ASN1CALL ASN1Dec_PwdCertToken(ASN1decoding_t dec, PwdCertToken *val);
static int ASN1CALL ASN1Dec_EncodedPwdCertToken(ASN1decoding_t dec, EncodedPwdCertToken *val);
static int ASN1CALL ASN1Dec_ReleaseCompleteReason(ASN1decoding_t dec, ReleaseCompleteReason *val);
static int ASN1CALL ASN1Dec_FacilityReason(ASN1decoding_t dec, FacilityReason *val);
static int ASN1CALL ASN1Dec_H221NonStandard(ASN1decoding_t dec, H221NonStandard *val);
static int ASN1CALL ASN1Dec_H225NonStandardIdentifier(ASN1decoding_t dec, H225NonStandardIdentifier *val);
static int ASN1CALL ASN1Dec_PublicTypeOfNumber(ASN1decoding_t dec, PublicTypeOfNumber *val);
static int ASN1CALL ASN1Dec_PrivateTypeOfNumber(ASN1decoding_t dec, PrivateTypeOfNumber *val);
static int ASN1CALL ASN1Dec_AltGKInfo(ASN1decoding_t dec, AltGKInfo *val);
static int ASN1CALL ASN1Dec_Q954Details(ASN1decoding_t dec, Q954Details *val);
static int ASN1CALL ASN1Dec_CallIdentifier(ASN1decoding_t dec, CallIdentifier *val);
static int ASN1CALL ASN1Dec_ICV(ASN1decoding_t dec, ICV *val);
static int ASN1CALL ASN1Dec_GatekeeperRejectReason(ASN1decoding_t dec, GatekeeperRejectReason *val);
static int ASN1CALL ASN1Dec_RegistrationRejectReason(ASN1decoding_t dec, RegistrationRejectReason *val);
static int ASN1CALL ASN1Dec_UnregRequestReason(ASN1decoding_t dec, UnregRequestReason *val);
static int ASN1CALL ASN1Dec_UnregRejectReason(ASN1decoding_t dec, UnregRejectReason *val);
static int ASN1CALL ASN1Dec_CallType(ASN1decoding_t dec, CallType *val);
static int ASN1CALL ASN1Dec_CallModel(ASN1decoding_t dec, CallModel *val);
static int ASN1CALL ASN1Dec_TransportQOS(ASN1decoding_t dec, TransportQOS *val);
static int ASN1CALL ASN1Dec_UUIEsRequested(ASN1decoding_t dec, UUIEsRequested *val);
static int ASN1CALL ASN1Dec_AdmissionRejectReason(ASN1decoding_t dec, AdmissionRejectReason *val);
static int ASN1CALL ASN1Dec_BandRejectReason(ASN1decoding_t dec, BandRejectReason *val);
static int ASN1CALL ASN1Dec_LocationRejectReason(ASN1decoding_t dec, LocationRejectReason *val);
static int ASN1CALL ASN1Dec_DisengageReason(ASN1decoding_t dec, DisengageReason *val);
static int ASN1CALL ASN1Dec_DisengageRejectReason(ASN1decoding_t dec, DisengageRejectReason *val);
static int ASN1CALL ASN1Dec_InfoRequestNakReason(ASN1decoding_t dec, InfoRequestNakReason *val);
static int ASN1CALL ASN1Dec_UnknownMessageResponse(ASN1decoding_t dec, UnknownMessageResponse *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens *val);
static int ASN1CALL ASN1Dec_RequestInProgress_tokens(ASN1decoding_t dec, PRequestInProgress_tokens *val);
static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens(ASN1decoding_t dec, PUnknownMessageResponse_tokens *val);
static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens(ASN1decoding_t dec, PH225NonStandardMessage_tokens *val);
static int ASN1CALL ASN1Dec_InfoRequestNak_tokens(ASN1decoding_t dec, PInfoRequestNak_tokens *val);
static int ASN1CALL ASN1Dec_InfoRequestAck_tokens(ASN1decoding_t dec, PInfoRequestAck_tokens *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens(ASN1decoding_t dec, PInfoRequestResponse_tokens *val);
static int ASN1CALL ASN1Dec_InfoRequest_tokens(ASN1decoding_t dec, PInfoRequest_tokens *val);
static int ASN1CALL ASN1Dec_DisengageReject_tokens(ASN1decoding_t dec, PDisengageReject_tokens *val);
static int ASN1CALL ASN1Dec_DisengageConfirm_tokens(ASN1decoding_t dec, PDisengageConfirm_tokens *val);
static int ASN1CALL ASN1Dec_DisengageRequest_tokens(ASN1decoding_t dec, PDisengageRequest_tokens *val);
static int ASN1CALL ASN1Dec_LocationReject_tokens(ASN1decoding_t dec, PLocationReject_tokens *val);
static int ASN1CALL ASN1Dec_LocationConfirm_tokens(ASN1decoding_t dec, PLocationConfirm_tokens *val);
static int ASN1CALL ASN1Dec_LocationRequest_tokens(ASN1decoding_t dec, PLocationRequest_tokens *val);
static int ASN1CALL ASN1Dec_BandwidthReject_tokens(ASN1decoding_t dec, PBandwidthReject_tokens *val);
static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens(ASN1decoding_t dec, PBandwidthConfirm_tokens *val);
static int ASN1CALL ASN1Dec_BandwidthRequest_tokens(ASN1decoding_t dec, PBandwidthRequest_tokens *val);
static int ASN1CALL ASN1Dec_AdmissionReject_tokens(ASN1decoding_t dec, PAdmissionReject_tokens *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens(ASN1decoding_t dec, PAdmissionConfirm_tokens *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_tokens(ASN1decoding_t dec, PAdmissionRequest_tokens *val);
static int ASN1CALL ASN1Dec_UnregistrationReject_tokens(ASN1decoding_t dec, PUnregistrationReject_tokens *val);
static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens(ASN1decoding_t dec, PUnregistrationConfirm_tokens *val);
static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens(ASN1decoding_t dec, PUnregistrationRequest_tokens *val);
static int ASN1CALL ASN1Dec_RegistrationReject_tokens(ASN1decoding_t dec, PRegistrationReject_tokens *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens(ASN1decoding_t dec, PRegistrationConfirm_tokens *val);
static int ASN1CALL ASN1Dec_RegistrationRequest_tokens(ASN1decoding_t dec, PRegistrationRequest_tokens *val);
static int ASN1CALL ASN1Dec_GatekeeperReject_tokens(ASN1decoding_t dec, PGatekeeperReject_tokens *val);
static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens(ASN1decoding_t dec, PGatekeeperConfirm_tokens *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens(ASN1decoding_t dec, PGatekeeperRequest_tokens *val);
static int ASN1CALL ASN1Dec_Endpoint_tokens(ASN1decoding_t dec, PEndpoint_tokens *val);
static int ASN1CALL ASN1Dec_Progress_UUIE_tokens(ASN1decoding_t dec, PProgress_UUIE_tokens *val);
static int ASN1CALL ASN1Dec_Facility_UUIE_tokens(ASN1decoding_t dec, PFacility_UUIE_tokens *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_tokens(ASN1decoding_t dec, PSetup_UUIE_tokens *val);
static int ASN1CALL ASN1Dec_Connect_UUIE_tokens(ASN1decoding_t dec, PConnect_UUIE_tokens *val);
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens(ASN1decoding_t dec, PCallProceeding_UUIE_tokens *val);
static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens(ASN1decoding_t dec, PAlerting_UUIE_tokens *val);
static int ASN1CALL ASN1Dec_SIGNED_EncodedGeneralToken(ASN1decoding_t dec, SIGNED_EncodedGeneralToken *val);
static int ASN1CALL ASN1Dec_ENCRYPTED(ASN1decoding_t dec, ENCRYPTED *val);
static int ASN1CALL ASN1Dec_HASHED(ASN1decoding_t dec, HASHED *val);
static int ASN1CALL ASN1Dec_SIGNED_EncodedPwdCertToken(ASN1decoding_t dec, SIGNED_EncodedPwdCertToken *val);
static int ASN1CALL ASN1Dec_Information_UUIE(ASN1decoding_t dec, Information_UUIE *val);
static int ASN1CALL ASN1Dec_ReleaseComplete_UUIE(ASN1decoding_t dec, ReleaseComplete_UUIE *val);
static int ASN1CALL ASN1Dec_VendorIdentifier(ASN1decoding_t dec, VendorIdentifier *val);
static int ASN1CALL ASN1Dec_H225NonStandardParameter(ASN1decoding_t dec, H225NonStandardParameter *val);
static int ASN1CALL ASN1Dec_PublicPartyNumber(ASN1decoding_t dec, PublicPartyNumber *val);
static int ASN1CALL ASN1Dec_PrivatePartyNumber(ASN1decoding_t dec, PrivatePartyNumber *val);
static int ASN1CALL ASN1Dec_SecurityServiceMode(ASN1decoding_t dec, SecurityServiceMode *val);
static int ASN1CALL ASN1Dec_SecurityCapabilities(ASN1decoding_t dec, SecurityCapabilities *val);
static int ASN1CALL ASN1Dec_H245Security(ASN1decoding_t dec, H245Security *val);
static int ASN1CALL ASN1Dec_QseriesOptions(ASN1decoding_t dec, QseriesOptions *val);
static int ASN1CALL ASN1Dec_EncryptIntAlg(ASN1decoding_t dec, EncryptIntAlg *val);
static int ASN1CALL ASN1Dec_NonIsoIntegrityMechanism(ASN1decoding_t dec, NonIsoIntegrityMechanism *val);
static int ASN1CALL ASN1Dec_IntegrityMechanism(ASN1decoding_t dec, IntegrityMechanism *val);
#define ASN1Dec_FastStartToken(x,y) 0
static int ASN1CALL ASN1Dec_EncodedFastStartToken(ASN1decoding_t dec, EncodedFastStartToken *val);
static int ASN1CALL ASN1Dec_DataRate(ASN1decoding_t dec, DataRate *val);
static int ASN1CALL ASN1Dec_GatekeeperReject(ASN1decoding_t dec, GatekeeperReject *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm(ASN1decoding_t dec, RegistrationConfirm *val);
static int ASN1CALL ASN1Dec_RegistrationReject(ASN1decoding_t dec, RegistrationReject *val);
static int ASN1CALL ASN1Dec_UnregistrationRequest(ASN1decoding_t dec, UnregistrationRequest *val);
static int ASN1CALL ASN1Dec_UnregistrationConfirm(ASN1decoding_t dec, UnregistrationConfirm *val);
static int ASN1CALL ASN1Dec_UnregistrationReject(ASN1decoding_t dec, UnregistrationReject *val);
static int ASN1CALL ASN1Dec_AdmissionReject(ASN1decoding_t dec, AdmissionReject *val);
static int ASN1CALL ASN1Dec_BandwidthRequest(ASN1decoding_t dec, BandwidthRequest *val);
static int ASN1CALL ASN1Dec_BandwidthConfirm(ASN1decoding_t dec, BandwidthConfirm *val);
static int ASN1CALL ASN1Dec_BandwidthReject(ASN1decoding_t dec, BandwidthReject *val);
static int ASN1CALL ASN1Dec_LocationReject(ASN1decoding_t dec, LocationReject *val);
static int ASN1CALL ASN1Dec_DisengageRequest(ASN1decoding_t dec, DisengageRequest *val);
static int ASN1CALL ASN1Dec_DisengageConfirm(ASN1decoding_t dec, DisengageConfirm *val);
static int ASN1CALL ASN1Dec_DisengageReject(ASN1decoding_t dec, DisengageReject *val);
static int ASN1CALL ASN1Dec_InfoRequestAck(ASN1decoding_t dec, InfoRequestAck *val);
static int ASN1CALL ASN1Dec_InfoRequestNak(ASN1decoding_t dec, InfoRequestNak *val);
static int ASN1CALL ASN1Dec_H225NonStandardMessage(ASN1decoding_t dec, H225NonStandardMessage *val);
static int ASN1CALL ASN1Dec_RequestInProgress(ASN1decoding_t dec, RequestInProgress *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate(ASN1decoding_t dec, ResourcesAvailableIndicate *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm(ASN1decoding_t dec, ResourcesAvailableConfirm *val);
static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity(ASN1decoding_t dec, PGatekeeperConfirm_integrity *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity(ASN1decoding_t dec, PGatekeeperRequest_integrity *val);
static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoGKPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoGKPwdHash *val);
static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported(ASN1decoding_t dec, PH324Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported(ASN1decoding_t dec, PH323Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported(ASN1decoding_t dec, PH322Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported(ASN1decoding_t dec, PH321Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported(ASN1decoding_t dec, PH320Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported(ASN1decoding_t dec, PH310Caps_dataRatesSupported *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability *val);
static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl *val);
static int ASN1CALL ASN1Dec_CryptoToken_cryptoHashedToken(ASN1decoding_t dec, CryptoToken_cryptoHashedToken *val);
static int ASN1CALL ASN1Dec_CryptoToken_cryptoSignedToken(ASN1decoding_t dec, CryptoToken_cryptoSignedToken *val);
static int ASN1CALL ASN1Dec_CryptoToken_cryptoEncryptedToken(ASN1decoding_t dec, CryptoToken_cryptoEncryptedToken *val);
static int ASN1CALL ASN1Dec_CryptoToken(ASN1decoding_t dec, CryptoToken *val);
static int ASN1CALL ASN1Dec_SIGNED_EncodedFastStartToken(ASN1decoding_t dec, SIGNED_EncodedFastStartToken *val);
static int ASN1CALL ASN1Dec_TransportAddress(ASN1decoding_t dec, TransportAddress *val);
static int ASN1CALL ASN1Dec_GatewayInfo(ASN1decoding_t dec, GatewayInfo *val);
static int ASN1CALL ASN1Dec_H310Caps(ASN1decoding_t dec, H310Caps *val);
static int ASN1CALL ASN1Dec_H320Caps(ASN1decoding_t dec, H320Caps *val);
static int ASN1CALL ASN1Dec_H321Caps(ASN1decoding_t dec, H321Caps *val);
static int ASN1CALL ASN1Dec_H322Caps(ASN1decoding_t dec, H322Caps *val);
static int ASN1CALL ASN1Dec_H323Caps(ASN1decoding_t dec, H323Caps *val);
static int ASN1CALL ASN1Dec_H324Caps(ASN1decoding_t dec, H324Caps *val);
static int ASN1CALL ASN1Dec_VoiceCaps(ASN1decoding_t dec, VoiceCaps *val);
static int ASN1CALL ASN1Dec_T120OnlyCaps(ASN1decoding_t dec, T120OnlyCaps *val);
static int ASN1CALL ASN1Dec_NonStandardProtocol(ASN1decoding_t dec, NonStandardProtocol *val);
static int ASN1CALL ASN1Dec_McuInfo(ASN1decoding_t dec, McuInfo *val);
static int ASN1CALL ASN1Dec_TerminalInfo(ASN1decoding_t dec, TerminalInfo *val);
static int ASN1CALL ASN1Dec_GatekeeperInfo(ASN1decoding_t dec, GatekeeperInfo *val);
static int ASN1CALL ASN1Dec_PartyNumber(ASN1decoding_t dec, PartyNumber *val);
static int ASN1CALL ASN1Dec_AlternateGK(ASN1decoding_t dec, AlternateGK *val);
static int ASN1CALL ASN1Dec_GatekeeperConfirm(ASN1decoding_t dec, GatekeeperConfirm *val);
static int ASN1CALL ASN1Dec_AdmissionRequest(ASN1decoding_t dec, AdmissionRequest *val);
static int ASN1CALL ASN1Dec_LocationRequest(ASN1decoding_t dec, LocationRequest *val);
static int ASN1CALL ASN1Dec_InfoRequest(ASN1decoding_t dec, InfoRequest *val);
static int ASN1CALL ASN1Dec_TransportChannelInfo(ASN1decoding_t dec, TransportChannelInfo *val);
static int ASN1CALL ASN1Dec_RTPSession(ASN1decoding_t dec, RTPSession *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress *val);
static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress(ASN1decoding_t dec, PAdmissionReject_callSignalAddress *val);
static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress *val);
static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress(ASN1decoding_t dec, PRegistrationRequest_rasAddress *val);
static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress *val);
static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper *val);
static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper *val);
static int ASN1CALL ASN1Dec_Endpoint_rasAddress(ASN1decoding_t dec, PEndpoint_rasAddress *val);
static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress(ASN1decoding_t dec, PEndpoint_callSignalAddress *val);
static int ASN1CALL ASN1Dec_EndpointType(ASN1decoding_t dec, EndpointType *val);
static int ASN1CALL ASN1Dec_SupportedProtocols(ASN1decoding_t dec, SupportedProtocols *val);
static int ASN1CALL ASN1Dec_AliasAddress(ASN1decoding_t dec, AliasAddress *val);
static int ASN1CALL ASN1Dec_Endpoint(ASN1decoding_t dec, Endpoint *val);
static int ASN1CALL ASN1Dec_SupportedPrefix(ASN1decoding_t dec, SupportedPrefix *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest(ASN1decoding_t dec, GatekeeperRequest *val);
static int ASN1CALL ASN1Dec_RegistrationRequest(ASN1decoding_t dec, RegistrationRequest *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm(ASN1decoding_t dec, AdmissionConfirm *val);
static int ASN1CALL ASN1Dec_LocationConfirm(ASN1decoding_t dec, LocationConfirm *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse(ASN1decoding_t dec, InfoRequestResponse *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias *val);
static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints *val);
static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress *val);
static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo *val);
static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo(ASN1decoding_t dec, PLocationConfirm_destinationInfo *val);
static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo(ASN1decoding_t dec, PLocationRequest_sourceInfo *val);
static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo(ASN1decoding_t dec, PLocationRequest_destinationInfo *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives(ASN1decoding_t dec, PAdmissionRequest_destAlternatives *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo(ASN1decoding_t dec, PAdmissionRequest_srcInfo *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo(ASN1decoding_t dec, PAdmissionRequest_destinationInfo *val);
static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints *val);
static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias *val);
static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias *val);
static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints *val);
static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias(ASN1decoding_t dec, PRegistrationRequest_terminalAlias *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias *val);
static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoEPPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoEPPwdHash *val);
static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo(ASN1decoding_t dec, PEndpoint_destExtraCallInfo *val);
static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress *val);
static int ASN1CALL ASN1Dec_Endpoint_aliasAddress(ASN1decoding_t dec, PEndpoint_aliasAddress *val);
static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes(ASN1decoding_t dec, PH324Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes(ASN1decoding_t dec, PH323Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes(ASN1decoding_t dec, PH322Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes(ASN1decoding_t dec, PH321Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes(ASN1decoding_t dec, PH320Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes(ASN1decoding_t dec, PH310Caps_supportedPrefixes *val);
static int ASN1CALL ASN1Dec_GatewayInfo_protocol(ASN1decoding_t dec, PGatewayInfo_protocol *val);
static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo *val);
static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress(ASN1decoding_t dec, PSetup_UUIE_destinationAddress *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress(ASN1decoding_t dec, PSetup_UUIE_sourceAddress *val);
static int ASN1CALL ASN1Dec_Alerting_UUIE(ASN1decoding_t dec, Alerting_UUIE *val);
static int ASN1CALL ASN1Dec_CallProceeding_UUIE(ASN1decoding_t dec, CallProceeding_UUIE *val);
static int ASN1CALL ASN1Dec_Connect_UUIE(ASN1decoding_t dec, Connect_UUIE *val);
static int ASN1CALL ASN1Dec_Setup_UUIE(ASN1decoding_t dec, Setup_UUIE *val);
static int ASN1CALL ASN1Dec_Facility_UUIE(ASN1decoding_t dec, Facility_UUIE *val);
static int ASN1CALL ASN1Dec_ConferenceList(ASN1decoding_t dec, ConferenceList *val);
static int ASN1CALL ASN1Dec_Progress_UUIE(ASN1decoding_t dec, Progress_UUIE *val);
static int ASN1CALL ASN1Dec_CryptoH323Token(ASN1decoding_t dec, CryptoH323Token *val);
static int ASN1CALL ASN1Dec_RasMessage(ASN1decoding_t dec, RasMessage *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens *val);
static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens(ASN1decoding_t dec, PRequestInProgress_cryptoTokens *val);
static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens *val);
static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens *val);
static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens *val);
static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens *val);
static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens(ASN1decoding_t dec, PInfoRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens(ASN1decoding_t dec, PDisengageReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens(ASN1decoding_t dec, PDisengageRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens(ASN1decoding_t dec, PLocationReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens(ASN1decoding_t dec, PLocationConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens(ASN1decoding_t dec, PLocationRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens(ASN1decoding_t dec, PBandwidthReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens(ASN1decoding_t dec, PAdmissionReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens(ASN1decoding_t dec, PRegistrationReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens *val);
static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens *val);
static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens *val);
static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens(ASN1decoding_t dec, PEndpoint_cryptoTokens *val);
static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Dec_Facility_UUIE_conferences(ASN1decoding_t dec, PFacility_UUIE_conferences *val);
static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens *val);
static int ASN1CALL ASN1Dec_H323_UU_PDU_h323_message_body(ASN1decoding_t dec, H323_UU_PDU_h323_message_body *val);
static int ASN1CALL ASN1Dec_H323_UU_PDU(ASN1decoding_t dec, H323_UU_PDU *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val);
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu *val);
static int ASN1CALL ASN1Dec_H323_UserInformation(ASN1decoding_t dec, H323_UserInformation *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val);
static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute_route(PTransportAddress_ipSourceRoute_route *val);
static void ASN1CALL ASN1Free_RTPSession_associatedSessionIds(PRTPSession_associatedSessionIds *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_algorithmOIDs(PGatekeeperRequest_algorithmOIDs *val);
static void ASN1CALL ASN1Free_TransportAddress_ip6Address(TransportAddress_ip6Address *val);
static void ASN1CALL ASN1Free_TransportAddress_ipxAddress(TransportAddress_ipxAddress *val);
static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute(TransportAddress_ipSourceRoute *val);
static void ASN1CALL ASN1Free_TransportAddress_ipAddress(TransportAddress_ipAddress *val);
static void ASN1CALL ASN1Free_Progress_UUIE_fastStart(PProgress_UUIE_fastStart *val);
static void ASN1CALL ASN1Free_Facility_UUIE_fastStart(PFacility_UUIE_fastStart *val);
static void ASN1CALL ASN1Free_Setup_UUIE_fastStart(PSetup_UUIE_fastStart *val);
static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV(PSetup_UUIE_destExtraCRV *val);
static void ASN1CALL ASN1Free_Connect_UUIE_fastStart(PConnect_UUIE_fastStart *val);
static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart(PCallProceeding_UUIE_fastStart *val);
static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart(PAlerting_UUIE_fastStart *val);
static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control(PH323_UU_PDU_h245Control *val);
static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService(PH323_UU_PDU_h4501SupplementaryService *val);
static void ASN1CALL ASN1Free_H323_UserInformation_user_data(H323_UserInformation_user_data *val);
static void ASN1CALL ASN1Free_H235NonStandardParameter(H235NonStandardParameter *val);
static void ASN1CALL ASN1Free_DHset(DHset *val);
static void ASN1CALL ASN1Free_TypedCertificate(TypedCertificate *val);
static void ASN1CALL ASN1Free_AuthenticationMechanism(AuthenticationMechanism *val);
static void ASN1CALL ASN1Free_ClearToken(ClearToken *val);
static void ASN1CALL ASN1Free_Params(Params *val);
static void ASN1CALL ASN1Free_EncodedGeneralToken(EncodedGeneralToken *val);
static void ASN1CALL ASN1Free_PwdCertToken(PwdCertToken *val);
static void ASN1CALL ASN1Free_EncodedPwdCertToken(EncodedPwdCertToken *val);
static void ASN1CALL ASN1Free_H225NonStandardIdentifier(H225NonStandardIdentifier *val);
static void ASN1CALL ASN1Free_AltGKInfo(AltGKInfo *val);
static void ASN1CALL ASN1Free_CallIdentifier(CallIdentifier *val);
static void ASN1CALL ASN1Free_ICV(ICV *val);
static void ASN1CALL ASN1Free_RegistrationRejectReason(RegistrationRejectReason *val);
static void ASN1CALL ASN1Free_UnknownMessageResponse(UnknownMessageResponse *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(PInfoRequestResponse_perCallInfo_Seq_tokens *val);
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens(PResourcesAvailableConfirm_tokens *val);
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens(PResourcesAvailableIndicate_tokens *val);
static void ASN1CALL ASN1Free_RequestInProgress_tokens(PRequestInProgress_tokens *val);
static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens(PUnknownMessageResponse_tokens *val);
static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens(PH225NonStandardMessage_tokens *val);
static void ASN1CALL ASN1Free_InfoRequestNak_tokens(PInfoRequestNak_tokens *val);
static void ASN1CALL ASN1Free_InfoRequestAck_tokens(PInfoRequestAck_tokens *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_tokens(PInfoRequestResponse_tokens *val);
static void ASN1CALL ASN1Free_InfoRequest_tokens(PInfoRequest_tokens *val);
static void ASN1CALL ASN1Free_DisengageReject_tokens(PDisengageReject_tokens *val);
static void ASN1CALL ASN1Free_DisengageConfirm_tokens(PDisengageConfirm_tokens *val);
static void ASN1CALL ASN1Free_DisengageRequest_tokens(PDisengageRequest_tokens *val);
static void ASN1CALL ASN1Free_LocationReject_tokens(PLocationReject_tokens *val);
static void ASN1CALL ASN1Free_LocationConfirm_tokens(PLocationConfirm_tokens *val);
static void ASN1CALL ASN1Free_LocationRequest_tokens(PLocationRequest_tokens *val);
static void ASN1CALL ASN1Free_BandwidthReject_tokens(PBandwidthReject_tokens *val);
static void ASN1CALL ASN1Free_BandwidthConfirm_tokens(PBandwidthConfirm_tokens *val);
static void ASN1CALL ASN1Free_BandwidthRequest_tokens(PBandwidthRequest_tokens *val);
static void ASN1CALL ASN1Free_AdmissionReject_tokens(PAdmissionReject_tokens *val);
static void ASN1CALL ASN1Free_AdmissionConfirm_tokens(PAdmissionConfirm_tokens *val);
static void ASN1CALL ASN1Free_AdmissionRequest_tokens(PAdmissionRequest_tokens *val);
static void ASN1CALL ASN1Free_UnregistrationReject_tokens(PUnregistrationReject_tokens *val);
static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens(PUnregistrationConfirm_tokens *val);
static void ASN1CALL ASN1Free_UnregistrationRequest_tokens(PUnregistrationRequest_tokens *val);
static void ASN1CALL ASN1Free_RegistrationReject_tokens(PRegistrationReject_tokens *val);
static void ASN1CALL ASN1Free_RegistrationConfirm_tokens(PRegistrationConfirm_tokens *val);
static void ASN1CALL ASN1Free_RegistrationRequest_tokens(PRegistrationRequest_tokens *val);
static void ASN1CALL ASN1Free_GatekeeperReject_tokens(PGatekeeperReject_tokens *val);
static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens(PGatekeeperConfirm_tokens *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability(PGatekeeperRequest_authenticationCapability *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_tokens(PGatekeeperRequest_tokens *val);
static void ASN1CALL ASN1Free_Endpoint_tokens(PEndpoint_tokens *val);
static void ASN1CALL ASN1Free_Progress_UUIE_tokens(PProgress_UUIE_tokens *val);
static void ASN1CALL ASN1Free_Facility_UUIE_tokens(PFacility_UUIE_tokens *val);
static void ASN1CALL ASN1Free_Setup_UUIE_tokens(PSetup_UUIE_tokens *val);
static void ASN1CALL ASN1Free_Connect_UUIE_tokens(PConnect_UUIE_tokens *val);
static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens(PCallProceeding_UUIE_tokens *val);
static void ASN1CALL ASN1Free_Alerting_UUIE_tokens(PAlerting_UUIE_tokens *val);
static void ASN1CALL ASN1Free_SIGNED_EncodedGeneralToken(SIGNED_EncodedGeneralToken *val);
static void ASN1CALL ASN1Free_ENCRYPTED(ENCRYPTED *val);
static void ASN1CALL ASN1Free_HASHED(HASHED *val);
static void ASN1CALL ASN1Free_SIGNED_EncodedPwdCertToken(SIGNED_EncodedPwdCertToken *val);
static void ASN1CALL ASN1Free_Information_UUIE(Information_UUIE *val);
static void ASN1CALL ASN1Free_ReleaseComplete_UUIE(ReleaseComplete_UUIE *val);
static void ASN1CALL ASN1Free_VendorIdentifier(VendorIdentifier *val);
static void ASN1CALL ASN1Free_H225NonStandardParameter(H225NonStandardParameter *val);
static void ASN1CALL ASN1Free_PublicPartyNumber(PublicPartyNumber *val);
static void ASN1CALL ASN1Free_PrivatePartyNumber(PrivatePartyNumber *val);
static void ASN1CALL ASN1Free_SecurityServiceMode(SecurityServiceMode *val);
static void ASN1CALL ASN1Free_SecurityCapabilities(SecurityCapabilities *val);
static void ASN1CALL ASN1Free_H245Security(H245Security *val);
static void ASN1CALL ASN1Free_EncryptIntAlg(EncryptIntAlg *val);
static void ASN1CALL ASN1Free_NonIsoIntegrityMechanism(NonIsoIntegrityMechanism *val);
static void ASN1CALL ASN1Free_IntegrityMechanism(IntegrityMechanism *val);
#define ASN1Free_FastStartToken(x)
static void ASN1CALL ASN1Free_EncodedFastStartToken(EncodedFastStartToken *val);
static void ASN1CALL ASN1Free_DataRate(DataRate *val);
static void ASN1CALL ASN1Free_GatekeeperReject(GatekeeperReject *val);
static void ASN1CALL ASN1Free_RegistrationConfirm(RegistrationConfirm *val);
static void ASN1CALL ASN1Free_RegistrationReject(RegistrationReject *val);
static void ASN1CALL ASN1Free_UnregistrationRequest(UnregistrationRequest *val);
static void ASN1CALL ASN1Free_UnregistrationConfirm(UnregistrationConfirm *val);
static void ASN1CALL ASN1Free_UnregistrationReject(UnregistrationReject *val);
static void ASN1CALL ASN1Free_AdmissionReject(AdmissionReject *val);
static void ASN1CALL ASN1Free_BandwidthRequest(BandwidthRequest *val);
static void ASN1CALL ASN1Free_BandwidthConfirm(BandwidthConfirm *val);
static void ASN1CALL ASN1Free_BandwidthReject(BandwidthReject *val);
static void ASN1CALL ASN1Free_LocationReject(LocationReject *val);
static void ASN1CALL ASN1Free_DisengageRequest(DisengageRequest *val);
static void ASN1CALL ASN1Free_DisengageConfirm(DisengageConfirm *val);
static void ASN1CALL ASN1Free_DisengageReject(DisengageReject *val);
static void ASN1CALL ASN1Free_InfoRequestAck(InfoRequestAck *val);
static void ASN1CALL ASN1Free_InfoRequestNak(InfoRequestNak *val);
static void ASN1CALL ASN1Free_H225NonStandardMessage(H225NonStandardMessage *val);
static void ASN1CALL ASN1Free_RequestInProgress(RequestInProgress *val);
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate(ResourcesAvailableIndicate *val);
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm(ResourcesAvailableConfirm *val);
static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity(PGatekeeperConfirm_integrity *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_integrity(PGatekeeperRequest_integrity *val);
static void ASN1CALL ASN1Free_CryptoH323Token_cryptoGKPwdHash(CryptoH323Token_cryptoGKPwdHash *val);
static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported(PNonStandardProtocol_dataRatesSupported *val);
static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported(PT120OnlyCaps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported(PVoiceCaps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported(PH324Caps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported(PH323Caps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported(PH322Caps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported(PH321Caps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported(PH320Caps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported(PH310Caps_dataRatesSupported *val);
static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability(PSetup_UUIE_h245SecurityCapability *val);
static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl(PH323_UU_PDU_nonStandardControl *val);
static void ASN1CALL ASN1Free_CryptoToken_cryptoHashedToken(CryptoToken_cryptoHashedToken *val);
static void ASN1CALL ASN1Free_CryptoToken_cryptoSignedToken(CryptoToken_cryptoSignedToken *val);
static void ASN1CALL ASN1Free_CryptoToken_cryptoEncryptedToken(CryptoToken_cryptoEncryptedToken *val);
static void ASN1CALL ASN1Free_CryptoToken(CryptoToken *val);
static void ASN1CALL ASN1Free_SIGNED_EncodedFastStartToken(SIGNED_EncodedFastStartToken *val);
static void ASN1CALL ASN1Free_TransportAddress(TransportAddress *val);
static void ASN1CALL ASN1Free_GatewayInfo(GatewayInfo *val);
static void ASN1CALL ASN1Free_H310Caps(H310Caps *val);
static void ASN1CALL ASN1Free_H320Caps(H320Caps *val);
static void ASN1CALL ASN1Free_H321Caps(H321Caps *val);
static void ASN1CALL ASN1Free_H322Caps(H322Caps *val);
static void ASN1CALL ASN1Free_H323Caps(H323Caps *val);
static void ASN1CALL ASN1Free_H324Caps(H324Caps *val);
static void ASN1CALL ASN1Free_VoiceCaps(VoiceCaps *val);
static void ASN1CALL ASN1Free_T120OnlyCaps(T120OnlyCaps *val);
static void ASN1CALL ASN1Free_NonStandardProtocol(NonStandardProtocol *val);
static void ASN1CALL ASN1Free_McuInfo(McuInfo *val);
static void ASN1CALL ASN1Free_TerminalInfo(TerminalInfo *val);
static void ASN1CALL ASN1Free_GatekeeperInfo(GatekeeperInfo *val);
static void ASN1CALL ASN1Free_PartyNumber(PartyNumber *val);
static void ASN1CALL ASN1Free_AlternateGK(AlternateGK *val);
static void ASN1CALL ASN1Free_GatekeeperConfirm(GatekeeperConfirm *val);
static void ASN1CALL ASN1Free_AdmissionRequest(AdmissionRequest *val);
static void ASN1CALL ASN1Free_LocationRequest(LocationRequest *val);
static void ASN1CALL ASN1Free_InfoRequest(InfoRequest *val);
static void ASN1CALL ASN1Free_TransportChannelInfo(TransportChannelInfo *val);
static void ASN1CALL ASN1Free_RTPSession(RTPSession *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(PInfoRequestResponse_perCallInfo_Seq_data *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(PInfoRequestResponse_perCallInfo_Seq_video *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(PInfoRequestResponse_perCallInfo_Seq_audio *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq(InfoRequestResponse_perCallInfo_Seq *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo(PInfoRequestResponse_perCallInfo *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress(PInfoRequestResponse_callSignalAddress *val);
static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress(PAdmissionReject_callSignalAddress *val);
static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress(PUnregistrationRequest_callSignalAddress *val);
static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper(PRegistrationConfirm_alternateGatekeeper *val);
static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress(PRegistrationConfirm_callSignalAddress *val);
static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress(PRegistrationRequest_rasAddress *val);
static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress(PRegistrationRequest_callSignalAddress *val);
static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper(PGatekeeperConfirm_alternateGatekeeper *val);
static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper(PAltGKInfo_alternateGatekeeper *val);
static void ASN1CALL ASN1Free_Endpoint_rasAddress(PEndpoint_rasAddress *val);
static void ASN1CALL ASN1Free_Endpoint_callSignalAddress(PEndpoint_callSignalAddress *val);
static void ASN1CALL ASN1Free_EndpointType(EndpointType *val);
static void ASN1CALL ASN1Free_SupportedProtocols(SupportedProtocols *val);
static void ASN1CALL ASN1Free_AliasAddress(AliasAddress *val);
static void ASN1CALL ASN1Free_Endpoint(Endpoint *val);
static void ASN1CALL ASN1Free_SupportedPrefix(SupportedPrefix *val);
static void ASN1CALL ASN1Free_GatekeeperRequest(GatekeeperRequest *val);
static void ASN1CALL ASN1Free_RegistrationRequest(RegistrationRequest *val);
static void ASN1CALL ASN1Free_AdmissionConfirm(AdmissionConfirm *val);
static void ASN1CALL ASN1Free_LocationConfirm(LocationConfirm *val);
static void ASN1CALL ASN1Free_InfoRequestResponse(InfoRequestResponse *val);
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols(PResourcesAvailableIndicate_protocols *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias(PInfoRequestResponse_endpointAlias *val);
static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints(PLocationConfirm_alternateEndpoints *val);
static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress(PLocationConfirm_remoteExtensionAddress *val);
static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo(PLocationConfirm_destExtraCallInfo *val);
static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo(PLocationConfirm_destinationInfo *val);
static void ASN1CALL ASN1Free_LocationRequest_sourceInfo(PLocationRequest_sourceInfo *val);
static void ASN1CALL ASN1Free_LocationRequest_destinationInfo(PLocationRequest_destinationInfo *val);
static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints(PAdmissionConfirm_alternateEndpoints *val);
static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress(PAdmissionConfirm_remoteExtensionAddress *val);
static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo(PAdmissionConfirm_destExtraCallInfo *val);
static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo(PAdmissionConfirm_destinationInfo *val);
static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives(PAdmissionRequest_destAlternatives *val);
static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives(PAdmissionRequest_srcAlternatives *val);
static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo(PAdmissionRequest_srcInfo *val);
static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo(PAdmissionRequest_destExtraCallInfo *val);
static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo(PAdmissionRequest_destinationInfo *val);
static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints(PUnregistrationRequest_alternateEndpoints *val);
static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias(PUnregistrationRequest_endpointAlias *val);
static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias(PRegistrationRejectReason_duplicateAlias *val);
static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias(PRegistrationConfirm_terminalAlias *val);
static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints(PRegistrationRequest_alternateEndpoints *val);
static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias(PRegistrationRequest_terminalAlias *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints(PGatekeeperRequest_alternateEndpoints *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias(PGatekeeperRequest_endpointAlias *val);
static void ASN1CALL ASN1Free_CryptoH323Token_cryptoEPPwdHash(CryptoH323Token_cryptoEPPwdHash *val);
static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo(PEndpoint_destExtraCallInfo *val);
static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress(PEndpoint_remoteExtensionAddress *val);
static void ASN1CALL ASN1Free_Endpoint_aliasAddress(PEndpoint_aliasAddress *val);
static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes(PNonStandardProtocol_supportedPrefixes *val);
static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes(PT120OnlyCaps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes(PVoiceCaps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes(PH324Caps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes(PH323Caps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes(PH322Caps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes(PH321Caps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes(PH320Caps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes(PH310Caps_supportedPrefixes *val);
static void ASN1CALL ASN1Free_GatewayInfo_protocol(PGatewayInfo_protocol *val);
static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo(PFacility_UUIE_destExtraCallInfo *val);
static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress(PFacility_UUIE_alternativeAliasAddress *val);
static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo(PSetup_UUIE_destExtraCallInfo *val);
static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress(PSetup_UUIE_destinationAddress *val);
static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress(PSetup_UUIE_sourceAddress *val);
static void ASN1CALL ASN1Free_Alerting_UUIE(Alerting_UUIE *val);
static void ASN1CALL ASN1Free_CallProceeding_UUIE(CallProceeding_UUIE *val);
static void ASN1CALL ASN1Free_Connect_UUIE(Connect_UUIE *val);
static void ASN1CALL ASN1Free_Setup_UUIE(Setup_UUIE *val);
static void ASN1CALL ASN1Free_Facility_UUIE(Facility_UUIE *val);
static void ASN1CALL ASN1Free_ConferenceList(ConferenceList *val);
static void ASN1CALL ASN1Free_Progress_UUIE(Progress_UUIE *val);
static void ASN1CALL ASN1Free_CryptoH323Token(CryptoH323Token *val);
static void ASN1CALL ASN1Free_RasMessage(RasMessage *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val);
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens(PResourcesAvailableConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens(PResourcesAvailableIndicate_cryptoTokens *val);
static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens(PRequestInProgress_cryptoTokens *val);
static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens(PUnknownMessageResponse_cryptoTokens *val);
static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens(PH225NonStandardMessage_cryptoTokens *val);
static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens(PInfoRequestNak_cryptoTokens *val);
static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens(PInfoRequestAck_cryptoTokens *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens(PInfoRequestResponse_cryptoTokens *val);
static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens(PInfoRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens(PDisengageReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens(PDisengageConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens(PDisengageRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_LocationReject_cryptoTokens(PLocationReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens(PLocationConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens(PLocationRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens(PBandwidthReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens(PBandwidthConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens(PBandwidthRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens(PAdmissionReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens(PAdmissionConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens(PAdmissionRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens(PUnregistrationReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens(PUnregistrationConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens(PUnregistrationRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens(PRegistrationReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens(PRegistrationConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens(PRegistrationRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens(PGatekeeperReject_cryptoTokens *val);
static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens(PGatekeeperConfirm_cryptoTokens *val);
static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens(PGatekeeperRequest_cryptoTokens *val);
static void ASN1CALL ASN1Free_Endpoint_cryptoTokens(PEndpoint_cryptoTokens *val);
static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens(PProgress_UUIE_cryptoTokens *val);
static void ASN1CALL ASN1Free_Facility_UUIE_conferences(PFacility_UUIE_conferences *val);
static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens(PFacility_UUIE_cryptoTokens *val);
static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens(PSetup_UUIE_cryptoTokens *val);
static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens(PConnect_UUIE_cryptoTokens *val);
static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens(PCallProceeding_UUIE_cryptoTokens *val);
static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens(PAlerting_UUIE_cryptoTokens *val);
static void ASN1CALL ASN1Free_H323_UU_PDU_h323_message_body(H323_UU_PDU_h323_message_body *val);
static void ASN1CALL ASN1Free_H323_UU_PDU(H323_UU_PDU *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val);
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(PInfoRequestResponse_perCallInfo_Seq_pdu *val);
static void ASN1CALL ASN1Free_H323_UserInformation(H323_UserInformation *val);
typedef ASN1PerEncFun_t ASN1EncFun_t;
static const ASN1EncFun_t encfntab[2] = {
(ASN1EncFun_t) ASN1Enc_RasMessage,
(ASN1EncFun_t) ASN1Enc_H323_UserInformation,
};
typedef ASN1PerDecFun_t ASN1DecFun_t;
static const ASN1DecFun_t decfntab[2] = {
(ASN1DecFun_t) ASN1Dec_RasMessage,
(ASN1DecFun_t) ASN1Dec_H323_UserInformation,
};
static const ASN1FreeFun_t freefntab[2] = {
(ASN1FreeFun_t) ASN1Free_RasMessage,
(ASN1FreeFun_t) ASN1Free_H323_UserInformation,
};
static const ULONG sizetab[2] = {
SIZE_H225ASN_Module_PDU_0,
SIZE_H225ASN_Module_PDU_1,
};
/* forward declarations of values: */
/* definitions of value components: */
/* definitions of values: */
void ASN1CALL H225ASN_Module_Startup(void)
{
H225ASN_Module = ASN1_CreateModule(0x10000, ASN1_PER_RULE_ALIGNED, ASN1FLAGS_NONE, 2, (const ASN1GenericFun_t *) encfntab, (const ASN1GenericFun_t *) decfntab, freefntab, sizetab, 0x35323268);
}
void ASN1CALL H225ASN_Module_Cleanup(void)
{
ASN1_CloseModule(H225ASN_Module);
H225ASN_Module = NULL;
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs val)
{
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &val->value, 16))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs val)
{
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &val->value, 16))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs_ElmFn(PInfoRequestResponse_perCallInfo_Seq_substituteConfIDs val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_routing(ASN1encoding_t enc, TransportAddress_ipSourceRoute_routing *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_routing(ASN1decoding_t dec, TransportAddress_ipSourceRoute_routing *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_route(ASN1encoding_t enc, PTransportAddress_ipSourceRoute_route *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_TransportAddress_ipSourceRoute_route_ElmFn);
}
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute_route_ElmFn(ASN1encoding_t enc, PTransportAddress_ipSourceRoute_route val)
{
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &val->value, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_route(ASN1decoding_t dec, PTransportAddress_ipSourceRoute_route *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_TransportAddress_ipSourceRoute_route_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute_route_ElmFn(ASN1decoding_t dec, PTransportAddress_ipSourceRoute_route val)
{
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &val->value, 4))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute_route(PTransportAddress_ipSourceRoute_route *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_TransportAddress_ipSourceRoute_route_ElmFn);
}
}
static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute_route_ElmFn(PTransportAddress_ipSourceRoute_route val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_RTPSession_associatedSessionIds(ASN1encoding_t enc, PRTPSession_associatedSessionIds *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RTPSession_associatedSessionIds_ElmFn);
}
static int ASN1CALL ASN1Enc_RTPSession_associatedSessionIds_ElmFn(ASN1encoding_t enc, PRTPSession_associatedSessionIds val)
{
if (!ASN1PEREncBitVal(enc, 8, val->value - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RTPSession_associatedSessionIds(ASN1decoding_t dec, PRTPSession_associatedSessionIds *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RTPSession_associatedSessionIds_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RTPSession_associatedSessionIds_ElmFn(ASN1decoding_t dec, PRTPSession_associatedSessionIds val)
{
if (!ASN1PERDecU16Val(dec, 8, &val->value))
return 0;
val->value += 1;
return 1;
}
static void ASN1CALL ASN1Free_RTPSession_associatedSessionIds(PRTPSession_associatedSessionIds *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RTPSession_associatedSessionIds_ElmFn);
}
}
static void ASN1CALL ASN1Free_RTPSession_associatedSessionIds_ElmFn(PRTPSession_associatedSessionIds val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_preGrantedARQ(ASN1encoding_t enc, RegistrationConfirm_preGrantedARQ *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->makeCall))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->useGKCallSignalAddressToMakeCall))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->answerCall))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->useGKCallSignalAddressToAnswer))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_preGrantedARQ(ASN1decoding_t dec, RegistrationConfirm_preGrantedARQ *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->makeCall))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->useGKCallSignalAddressToMakeCall))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->answerCall))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->useGKCallSignalAddressToAnswer))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_algorithmOIDs(ASN1encoding_t enc, PGatekeeperRequest_algorithmOIDs *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_algorithmOIDs_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_algorithmOIDs_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_algorithmOIDs val)
{
if (!ASN1PEREncObjectIdentifier(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_algorithmOIDs(ASN1decoding_t dec, PGatekeeperRequest_algorithmOIDs *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_algorithmOIDs_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_algorithmOIDs_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_algorithmOIDs val)
{
if (!ASN1PERDecObjectIdentifier(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_algorithmOIDs(PGatekeeperRequest_algorithmOIDs *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_algorithmOIDs_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_algorithmOIDs_ElmFn(PGatekeeperRequest_algorithmOIDs val)
{
if (val) {
ASN1objectidentifier_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_TransportAddress_ip6Address(ASN1encoding_t enc, TransportAddress_ip6Address *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->ip, 16))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->port))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress_ip6Address(ASN1decoding_t dec, TransportAddress_ip6Address *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->ip, 16))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->port))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_TransportAddress_ip6Address(TransportAddress_ip6Address *val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_TransportAddress_ipxAddress(ASN1encoding_t enc, TransportAddress_ipxAddress *val)
{
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->node, 6))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->netnum, 4))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->port, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress_ipxAddress(ASN1decoding_t dec, TransportAddress_ipxAddress *val)
{
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->node, 6))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->netnum, 4))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->port, 2))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_TransportAddress_ipxAddress(TransportAddress_ipxAddress *val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_TransportAddress_ipSourceRoute(ASN1encoding_t enc, TransportAddress_ipSourceRoute *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->ip, 4))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->port))
return 0;
if (!ASN1Enc_TransportAddress_ipSourceRoute_route(enc, &(val)->route))
return 0;
if (!ASN1Enc_TransportAddress_ipSourceRoute_routing(enc, &(val)->routing))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress_ipSourceRoute(ASN1decoding_t dec, TransportAddress_ipSourceRoute *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->ip, 4))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->port))
return 0;
if (!ASN1Dec_TransportAddress_ipSourceRoute_route(dec, &(val)->route))
return 0;
if (!ASN1Dec_TransportAddress_ipSourceRoute_routing(dec, &(val)->routing))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_TransportAddress_ipSourceRoute(TransportAddress_ipSourceRoute *val)
{
if (val) {
ASN1Free_TransportAddress_ipSourceRoute_route(&(val)->route);
}
}
static int ASN1CALL ASN1Enc_TransportAddress_ipAddress(ASN1encoding_t enc, TransportAddress_ipAddress *val)
{
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->ip, 4))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->port))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress_ipAddress(ASN1decoding_t dec, TransportAddress_ipAddress *val)
{
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->ip, 4))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->port))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_TransportAddress_ipAddress(TransportAddress_ipAddress *val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_Progress_UUIE_fastStart(ASN1encoding_t enc, PProgress_UUIE_fastStart *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_fastStart_ElmFn);
}
static int ASN1CALL ASN1Enc_Progress_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PProgress_UUIE_fastStart val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Progress_UUIE_fastStart(ASN1decoding_t dec, PProgress_UUIE_fastStart *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_fastStart_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Progress_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PProgress_UUIE_fastStart val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Progress_UUIE_fastStart(PProgress_UUIE_fastStart *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_fastStart_ElmFn);
}
}
static void ASN1CALL ASN1Free_Progress_UUIE_fastStart_ElmFn(PProgress_UUIE_fastStart val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE_fastStart(ASN1encoding_t enc, PFacility_UUIE_fastStart *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_fastStart_ElmFn);
}
static int ASN1CALL ASN1Enc_Facility_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PFacility_UUIE_fastStart val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE_fastStart(ASN1decoding_t dec, PFacility_UUIE_fastStart *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_fastStart_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Facility_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PFacility_UUIE_fastStart val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE_fastStart(PFacility_UUIE_fastStart *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_fastStart_ElmFn);
}
}
static void ASN1CALL ASN1Free_Facility_UUIE_fastStart_ElmFn(PFacility_UUIE_fastStart val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_fastStart(ASN1encoding_t enc, PSetup_UUIE_fastStart *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_fastStart_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PSetup_UUIE_fastStart val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_fastStart(ASN1decoding_t dec, PSetup_UUIE_fastStart *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_fastStart_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PSetup_UUIE_fastStart val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_fastStart(PSetup_UUIE_fastStart *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_fastStart_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_fastStart_ElmFn(PSetup_UUIE_fastStart val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_conferenceGoal(ASN1encoding_t enc, Setup_UUIE_conferenceGoal *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
return 0;
return 1;
}
//nik:change to fix the bug in decoding the extension filds in the CHOICE structure.
int MyASN1PERDecComplexChoice(ASN1decoding_t dec, ASN1choice_t *pChoiceVal, ASN1int32_t cChoiceBits, ASN1choice_t ExtensionChoice)
{
ASN1uint32_t x;
ASN1uint16_t tempVal;
if (ASN1PERDecExtensionBit(dec, &x))
{
if (!x)
{
*pChoiceVal = ASN1_CHOICE_BASE; // default choice
if (cChoiceBits)
{
if (ASN1PERDecU16Val(dec, cChoiceBits, pChoiceVal))
{
*pChoiceVal += ASN1_CHOICE_BASE;
return 1;
}
return 0;
}
return 1;
}
if (ASN1PERDecN16Val(dec, pChoiceVal))
{
*pChoiceVal += ExtensionChoice + ASN1_CHOICE_BASE;
/*skip 2 bytes*/
return ASN1PERDecS16Val( dec, 16, &tempVal );
}
}
return 0;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_conferenceGoal(ASN1decoding_t dec, Setup_UUIE_conferenceGoal *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destExtraCRV_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCRV_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destExtraCRV val)
{
if (!ASN1PEREncUnsignedShort(enc, val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destExtraCRV_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCRV_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destExtraCRV val)
{
if (!ASN1PERDecUnsignedShort(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV(PSetup_UUIE_destExtraCRV *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destExtraCRV_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCRV_ElmFn(PSetup_UUIE_destExtraCRV val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart(ASN1encoding_t enc, PConnect_UUIE_fastStart *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_fastStart_ElmFn);
}
static int ASN1CALL ASN1Enc_Connect_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PConnect_UUIE_fastStart val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart(ASN1decoding_t dec, PConnect_UUIE_fastStart *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_fastStart_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Connect_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PConnect_UUIE_fastStart val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Connect_UUIE_fastStart(PConnect_UUIE_fastStart *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_fastStart_ElmFn);
}
}
static void ASN1CALL ASN1Free_Connect_UUIE_fastStart_ElmFn(PConnect_UUIE_fastStart val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_fastStart_ElmFn);
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_fastStart val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_fastStart_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_fastStart val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart(PCallProceeding_UUIE_fastStart *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_fastStart_ElmFn);
}
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE_fastStart_ElmFn(PCallProceeding_UUIE_fastStart val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart(ASN1encoding_t enc, PAlerting_UUIE_fastStart *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_fastStart_ElmFn);
}
static int ASN1CALL ASN1Enc_Alerting_UUIE_fastStart_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_fastStart val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart(ASN1decoding_t dec, PAlerting_UUIE_fastStart *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_fastStart_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Alerting_UUIE_fastStart_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_fastStart val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart(PAlerting_UUIE_fastStart *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_fastStart_ElmFn);
}
}
static void ASN1CALL ASN1Free_Alerting_UUIE_fastStart_ElmFn(PAlerting_UUIE_fastStart val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control(ASN1encoding_t enc, PH323_UU_PDU_h245Control *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_h245Control_ElmFn);
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_h245Control_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_h245Control val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control(ASN1decoding_t dec, PH323_UU_PDU_h245Control *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_h245Control_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_h245Control_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_h245Control val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control(PH323_UU_PDU_h245Control *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_h245Control_ElmFn);
}
}
static void ASN1CALL ASN1Free_H323_UU_PDU_h245Control_ElmFn(PH323_UU_PDU_h245Control val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_h4501SupplementaryService_ElmFn);
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_h4501SupplementaryService_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_h4501SupplementaryService val)
{
if (!ASN1PEREncOctetString_NoSize(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_h4501SupplementaryService_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_h4501SupplementaryService_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_h4501SupplementaryService val)
{
if (!ASN1PERDecOctetString_NoSize(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService(PH323_UU_PDU_h4501SupplementaryService *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_h4501SupplementaryService_ElmFn);
}
}
static void ASN1CALL ASN1Free_H323_UU_PDU_h4501SupplementaryService_ElmFn(PH323_UU_PDU_h4501SupplementaryService val)
{
if (val) {
ASN1octetstring_free(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323_UserInformation_user_data(ASN1encoding_t enc, H323_UserInformation_user_data *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 8, (val)->protocol_discriminator))
return 0;
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->user_information, 1, 131, 8))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H323_UserInformation_user_data(ASN1decoding_t dec, H323_UserInformation_user_data *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU16Val(dec, 8, &(val)->protocol_discriminator))
return 0;
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->user_information, 1, 131, 8))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_H323_UserInformation_user_data(H323_UserInformation_user_data *val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_H235NonStandardParameter(ASN1encoding_t enc, H235NonStandardParameter *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->nonStandardIdentifier))
return 0;
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H235NonStandardParameter(ASN1decoding_t dec, H235NonStandardParameter *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->nonStandardIdentifier))
return 0;
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H235NonStandardParameter(H235NonStandardParameter *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->nonStandardIdentifier);
ASN1octetstring_free(&(val)->data);
}
}
static int ASN1CALL ASN1Enc_DHset(ASN1encoding_t enc, DHset *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 16, ((val)->halfkey).length))
return 0;
if (!ASN1PEREncBits(enc, ((val)->halfkey).length, ((val)->halfkey).value))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 16, ((val)->modSize).length))
return 0;
if (!ASN1PEREncBits(enc, ((val)->modSize).length, ((val)->modSize).value))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 16, ((val)->generator).length))
return 0;
if (!ASN1PEREncBits(enc, ((val)->generator).length, ((val)->generator).value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DHset(ASN1decoding_t dec, DHset *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, 16, &((val)->halfkey).length))
return 0;
if (!ASN1PERDecBits(dec, ((val)->halfkey).length, &((val)->halfkey).value))
return 0;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, 16, &((val)->modSize).length))
return 0;
if (!ASN1PERDecBits(dec, ((val)->modSize).length, &((val)->modSize).value))
return 0;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, 16, &((val)->generator).length))
return 0;
if (!ASN1PERDecBits(dec, ((val)->generator).length, &((val)->generator).value))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_DHset(DHset *val)
{
if (val) {
ASN1bitstring_free(&(val)->halfkey);
ASN1bitstring_free(&(val)->modSize);
ASN1bitstring_free(&(val)->generator);
}
}
static int ASN1CALL ASN1Enc_TypedCertificate(ASN1encoding_t enc, TypedCertificate *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->type))
return 0;
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->certificate))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TypedCertificate(ASN1decoding_t dec, TypedCertificate *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->type))
return 0;
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->certificate))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_TypedCertificate(TypedCertificate *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->type);
ASN1octetstring_free(&(val)->certificate);
}
}
static int ASN1CALL ASN1Enc_AuthenticationMechanism(ASN1encoding_t enc, AuthenticationMechanism *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
if (!ASN1Enc_H235NonStandardParameter(enc, &(val)->u.nonStandard))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_AuthenticationMechanism(ASN1decoding_t dec, AuthenticationMechanism *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
break;
case 6:
break;
case 7:
if (!ASN1Dec_H235NonStandardParameter(dec, &(val)->u.nonStandard))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_AuthenticationMechanism(AuthenticationMechanism *val)
{
if (val) {
switch ((val)->choice) {
case 7:
ASN1Free_H235NonStandardParameter(&(val)->u.nonStandard);
break;
}
}
}
static int ASN1CALL ASN1Enc_ClearToken(ASN1encoding_t enc, ClearToken *val)
{
ASN1uint32_t l;
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 8, (val)->o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
return 0;
if ((val)->o[0] & 0x80) {
l = ASN1uint32_uoctets((val)->timeStamp - 1);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->password).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->password).length, ((val)->password).value, 16))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_DHset(enc, &(val)->dhkey))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->challenge, 8, 128, 7))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1PEREncInteger(enc, (val)->random))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Enc_TypedCertificate(enc, &(val)->certificate))
return 0;
}
if ((val)->o[0] & 0x2) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->generalID).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->generalID).length, ((val)->generalID).value, 16))
return 0;
}
if ((val)->o[0] & 0x1) {
if (!ASN1Enc_H235NonStandardParameter(enc, &(val)->nonStandard))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_ClearToken(ASN1decoding_t dec, ClearToken *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 8, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
return 0;
(val)->timeStamp += 1;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->password).length))
return 0;
((val)->password).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->password).length, &((val)->password).value, 16))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_DHset(dec, &(val)->dhkey))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->challenge, 8, 128, 7))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1PERDecInteger(dec, &(val)->random))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Dec_TypedCertificate(dec, &(val)->certificate))
return 0;
}
if ((val)->o[0] & 0x2) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->generalID).length))
return 0;
((val)->generalID).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->generalID).length, &((val)->generalID).value, 16))
return 0;
}
if ((val)->o[0] & 0x1) {
if (!ASN1Dec_H235NonStandardParameter(dec, &(val)->nonStandard))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_ClearToken(ClearToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->tokenOID);
if ((val)->o[0] & 0x40) {
ASN1char16string_free(&(val)->password);
}
if ((val)->o[0] & 0x20) {
ASN1Free_DHset(&(val)->dhkey);
}
if ((val)->o[0] & 0x10) {
}
if ((val)->o[0] & 0x4) {
ASN1Free_TypedCertificate(&(val)->certificate);
}
if ((val)->o[0] & 0x2) {
ASN1char16string_free(&(val)->generalID);
}
if ((val)->o[0] & 0x1) {
ASN1Free_H235NonStandardParameter(&(val)->nonStandard);
}
}
}
static int ASN1CALL ASN1Enc_Params(ASN1encoding_t enc, Params *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncInteger(enc, (val)->ranInt))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->iv8, 8))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_Params(ASN1decoding_t dec, Params *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecInteger(dec, &(val)->ranInt))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->iv8, 8))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_Params(Params *val)
{
if (val) {
if ((val)->o[0] & 0x40) {
}
}
}
static int ASN1CALL ASN1Enc_EncodedGeneralToken(ASN1encoding_t enc, EncodedGeneralToken *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
return 0;
if (!ASN1Enc_ClearToken(enc, &(val)->type))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_EncodedGeneralToken(ASN1decoding_t dec, EncodedGeneralToken *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
return 0;
if (!ASN1Dec_ClearToken(dec, &(val)->type))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_EncodedGeneralToken(EncodedGeneralToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->id);
ASN1Free_ClearToken(&(val)->type);
}
}
static int ASN1CALL ASN1Enc_PwdCertToken(ASN1encoding_t enc, PwdCertToken *val)
{
if (!ASN1Enc_ClearToken(enc, val))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PwdCertToken(ASN1decoding_t dec, PwdCertToken *val)
{
if (!ASN1Dec_ClearToken(dec, val))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_PwdCertToken(PwdCertToken *val)
{
if (val) {
ASN1Free_ClearToken(val);
}
}
static int ASN1CALL ASN1Enc_EncodedPwdCertToken(ASN1encoding_t enc, EncodedPwdCertToken *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
return 0;
if (!ASN1Enc_PwdCertToken(enc, &(val)->type))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_EncodedPwdCertToken(ASN1decoding_t dec, EncodedPwdCertToken *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
return 0;
if (!ASN1Dec_PwdCertToken(dec, &(val)->type))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_EncodedPwdCertToken(EncodedPwdCertToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->id);
ASN1Free_PwdCertToken(&(val)->type);
}
}
static int ASN1CALL ASN1Enc_ReleaseCompleteReason(ASN1encoding_t enc, ReleaseCompleteReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 12))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ReleaseCompleteReason(ASN1decoding_t dec, ReleaseCompleteReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 4, 12))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_FacilityReason(ASN1encoding_t enc, FacilityReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_FacilityReason(ASN1decoding_t dec, FacilityReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_H221NonStandard(ASN1encoding_t enc, H221NonStandard *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 8, (val)->t35CountryCode))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 8, (val)->t35Extension))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->manufacturerCode))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H221NonStandard(ASN1decoding_t dec, H221NonStandard *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU16Val(dec, 8, &(val)->t35CountryCode))
return 0;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU16Val(dec, 8, &(val)->t35Extension))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->manufacturerCode))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Enc_H225NonStandardIdentifier(ASN1encoding_t enc, H225NonStandardIdentifier *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.object))
return 0;
break;
case 2:
if (!ASN1Enc_H221NonStandard(enc, &(val)->u.h221NonStandard))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_H225NonStandardIdentifier(ASN1decoding_t dec, H225NonStandardIdentifier *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.object))
return 0;
break;
case 2:
if (!ASN1Dec_H221NonStandard(dec, &(val)->u.h221NonStandard))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_H225NonStandardIdentifier(H225NonStandardIdentifier *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1objectidentifier_free(&(val)->u.object);
break;
}
}
}
static int ASN1CALL ASN1Enc_PublicTypeOfNumber(ASN1encoding_t enc, PublicTypeOfNumber *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PublicTypeOfNumber(ASN1decoding_t dec, PublicTypeOfNumber *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_PrivateTypeOfNumber(ASN1encoding_t enc, PrivateTypeOfNumber *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PrivateTypeOfNumber(ASN1decoding_t dec, PrivateTypeOfNumber *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_AltGKInfo(ASN1encoding_t enc, AltGKInfo *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1Enc_AltGKInfo_alternateGatekeeper(enc, &(val)->alternateGatekeeper))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->altGKisPermanent))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AltGKInfo(ASN1decoding_t dec, AltGKInfo *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1Dec_AltGKInfo_alternateGatekeeper(dec, &(val)->alternateGatekeeper))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->altGKisPermanent))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_AltGKInfo(AltGKInfo *val)
{
if (val) {
ASN1Free_AltGKInfo_alternateGatekeeper(&(val)->alternateGatekeeper);
}
}
static int ASN1CALL ASN1Enc_Q954Details(ASN1encoding_t enc, Q954Details *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->conferenceCalling))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->threePartyService))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Q954Details(ASN1decoding_t dec, Q954Details *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->conferenceCalling))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->threePartyService))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Enc_CallIdentifier(ASN1encoding_t enc, CallIdentifier *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->guid, 16))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CallIdentifier(ASN1decoding_t dec, CallIdentifier *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->guid, 16))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_CallIdentifier(CallIdentifier *val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_ICV(ASN1encoding_t enc, ICV *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
return 0;
if (!ASN1PEREncFragmented(enc, ((val)->icv).length, ((val)->icv).value, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ICV(ASN1decoding_t dec, ICV *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
return 0;
if (!ASN1PERDecFragmented(dec, &((val)->icv).length, &((val)->icv).value, 1))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ICV(ICV *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->algorithmOID);
ASN1bitstring_free(&(val)->icv);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRejectReason(ASN1encoding_t enc, GatekeeperRejectReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRejectReason(ASN1decoding_t dec, GatekeeperRejectReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_RegistrationRejectReason(ASN1encoding_t enc, RegistrationRejectReason *val)
{
ASN1encoding_t ee;
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
return 0;
switch ((val)->choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
if (!ASN1Enc_RegistrationRejectReason_duplicateAlias(enc, &(val)->u.duplicateAlias))
return 0;
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 10:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 11:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 12:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRejectReason(ASN1decoding_t dec, RegistrationRejectReason *val)
{
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
return 0;
switch ((val)->choice) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
if (!ASN1Dec_RegistrationRejectReason_duplicateAlias(dec, &(val)->u.duplicateAlias))
return 0;
break;
case 6:
break;
case 7:
break;
case 8:
break;
case 9:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1_CloseDecoder(dd);
break;
case 10:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1_CloseDecoder(dd);
break;
case 11:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1_CloseDecoder(dd);
break;
case 12:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1_CloseDecoder(dd);
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRejectReason(RegistrationRejectReason *val)
{
if (val) {
switch ((val)->choice) {
case 5:
ASN1Free_RegistrationRejectReason_duplicateAlias(&(val)->u.duplicateAlias);
break;
}
}
}
static int ASN1CALL ASN1Enc_UnregRequestReason(ASN1encoding_t enc, UnregRequestReason *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregRequestReason(ASN1decoding_t dec, UnregRequestReason *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_UnregRejectReason(ASN1encoding_t enc, UnregRejectReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregRejectReason(ASN1decoding_t dec, UnregRejectReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 3))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_CallType(ASN1encoding_t enc, CallType *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CallType(ASN1decoding_t dec, CallType *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_CallModel(ASN1encoding_t enc, CallModel *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CallModel(ASN1decoding_t dec, CallModel *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_TransportQOS(ASN1encoding_t enc, TransportQOS *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_TransportQOS(ASN1decoding_t dec, TransportQOS *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_UUIEsRequested(ASN1encoding_t enc, UUIEsRequested *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->setup))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->callProceeding))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->connect))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->alerting))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->information))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->releaseComplete))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->facility))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->progress))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->empty))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UUIEsRequested(ASN1decoding_t dec, UUIEsRequested *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->setup))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->callProceeding))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->connect))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->alerting))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->information))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->releaseComplete))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->facility))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->progress))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->empty))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Enc_AdmissionRejectReason(ASN1encoding_t enc, AdmissionRejectReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 8))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRejectReason(ASN1decoding_t dec, AdmissionRejectReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 3, 8))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_BandRejectReason(ASN1encoding_t enc, BandRejectReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 6))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandRejectReason(ASN1decoding_t dec, BandRejectReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 3, 6))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_LocationRejectReason(ASN1encoding_t enc, LocationRejectReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 2, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationRejectReason(ASN1decoding_t dec, LocationRejectReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 2, 4))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_DisengageReason(ASN1encoding_t enc, DisengageReason *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageReason(ASN1decoding_t dec, DisengageReason *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_DisengageRejectReason(ASN1encoding_t enc, DisengageRejectReason *val)
{
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageRejectReason(ASN1decoding_t dec, DisengageRejectReason *val)
{
//nik:
if (!MyASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_InfoRequestNakReason(ASN1encoding_t enc, InfoRequestNakReason *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestNakReason(ASN1decoding_t dec, InfoRequestNakReason *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
return 1;
}
static int ASN1CALL ASN1Enc_UnknownMessageResponse(ASN1encoding_t enc, UnknownMessageResponse *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 0))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_UnknownMessageResponse_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_UnknownMessageResponse_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_UnknownMessageResponse(ASN1decoding_t dec, UnknownMessageResponse *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!y) {
ZeroMemory((val)->o + 0, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnknownMessageResponse_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnknownMessageResponse_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[0] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_UnknownMessageResponse(UnknownMessageResponse *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_UnknownMessageResponse_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x40) {
ASN1Free_UnknownMessageResponse_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x20) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(PInfoRequestResponse_perCallInfo_Seq_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens_ElmFn(PInfoRequestResponse_perCallInfo_Seq_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_tokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_tokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens(PResourcesAvailableConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_tokens_ElmFn(PResourcesAvailableConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_tokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_tokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens(PResourcesAvailableIndicate_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_tokens_ElmFn(PResourcesAvailableIndicate_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_RequestInProgress_tokens(ASN1encoding_t enc, PRequestInProgress_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestInProgress_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RequestInProgress_tokens_ElmFn(ASN1encoding_t enc, PRequestInProgress_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RequestInProgress_tokens(ASN1decoding_t dec, PRequestInProgress_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestInProgress_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RequestInProgress_tokens_ElmFn(ASN1decoding_t dec, PRequestInProgress_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RequestInProgress_tokens(PRequestInProgress_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestInProgress_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RequestInProgress_tokens_ElmFn(PRequestInProgress_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens(ASN1encoding_t enc, PUnknownMessageResponse_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnknownMessageResponse_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnknownMessageResponse_tokens_ElmFn(ASN1encoding_t enc, PUnknownMessageResponse_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens(ASN1decoding_t dec, PUnknownMessageResponse_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnknownMessageResponse_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnknownMessageResponse_tokens_ElmFn(ASN1decoding_t dec, PUnknownMessageResponse_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens(PUnknownMessageResponse_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnknownMessageResponse_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnknownMessageResponse_tokens_ElmFn(PUnknownMessageResponse_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens(ASN1encoding_t enc, PH225NonStandardMessage_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H225NonStandardMessage_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_H225NonStandardMessage_tokens_ElmFn(ASN1encoding_t enc, PH225NonStandardMessage_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens(ASN1decoding_t dec, PH225NonStandardMessage_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H225NonStandardMessage_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H225NonStandardMessage_tokens_ElmFn(ASN1decoding_t dec, PH225NonStandardMessage_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens(PH225NonStandardMessage_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H225NonStandardMessage_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_H225NonStandardMessage_tokens_ElmFn(PH225NonStandardMessage_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestNak_tokens(ASN1encoding_t enc, PInfoRequestNak_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestNak_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestNak_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestNak_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestNak_tokens(ASN1decoding_t dec, PInfoRequestNak_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestNak_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestNak_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestNak_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestNak_tokens(PInfoRequestNak_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestNak_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestNak_tokens_ElmFn(PInfoRequestNak_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestAck_tokens(ASN1encoding_t enc, PInfoRequestAck_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestAck_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestAck_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestAck_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestAck_tokens(ASN1decoding_t dec, PInfoRequestAck_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestAck_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestAck_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestAck_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestAck_tokens(PInfoRequestAck_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestAck_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestAck_tokens_ElmFn(PInfoRequestAck_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens(ASN1encoding_t enc, PInfoRequestResponse_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_tokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens(ASN1decoding_t dec, PInfoRequestResponse_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_tokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_tokens(PInfoRequestResponse_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_tokens_ElmFn(PInfoRequestResponse_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequest_tokens(ASN1encoding_t enc, PInfoRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequest_tokens_ElmFn(ASN1encoding_t enc, PInfoRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequest_tokens(ASN1decoding_t dec, PInfoRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequest_tokens_ElmFn(ASN1decoding_t dec, PInfoRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequest_tokens(PInfoRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequest_tokens_ElmFn(PInfoRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_DisengageReject_tokens(ASN1encoding_t enc, PDisengageReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_DisengageReject_tokens_ElmFn(ASN1encoding_t enc, PDisengageReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageReject_tokens(ASN1decoding_t dec, PDisengageReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_DisengageReject_tokens_ElmFn(ASN1decoding_t dec, PDisengageReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DisengageReject_tokens(PDisengageReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_DisengageReject_tokens_ElmFn(PDisengageReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_DisengageConfirm_tokens(ASN1encoding_t enc, PDisengageConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_DisengageConfirm_tokens_ElmFn(ASN1encoding_t enc, PDisengageConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageConfirm_tokens(ASN1decoding_t dec, PDisengageConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_DisengageConfirm_tokens_ElmFn(ASN1decoding_t dec, PDisengageConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DisengageConfirm_tokens(PDisengageConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_DisengageConfirm_tokens_ElmFn(PDisengageConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_DisengageRequest_tokens(ASN1encoding_t enc, PDisengageRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_DisengageRequest_tokens_ElmFn(ASN1encoding_t enc, PDisengageRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageRequest_tokens(ASN1decoding_t dec, PDisengageRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_DisengageRequest_tokens_ElmFn(ASN1decoding_t dec, PDisengageRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DisengageRequest_tokens(PDisengageRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_DisengageRequest_tokens_ElmFn(PDisengageRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationReject_tokens(ASN1encoding_t enc, PLocationReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationReject_tokens_ElmFn(ASN1encoding_t enc, PLocationReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationReject_tokens(ASN1decoding_t dec, PLocationReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationReject_tokens_ElmFn(ASN1decoding_t dec, PLocationReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationReject_tokens(PLocationReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationReject_tokens_ElmFn(PLocationReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationConfirm_tokens(ASN1encoding_t enc, PLocationConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationConfirm_tokens_ElmFn(ASN1encoding_t enc, PLocationConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm_tokens(ASN1decoding_t dec, PLocationConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationConfirm_tokens_ElmFn(ASN1decoding_t dec, PLocationConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm_tokens(PLocationConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationConfirm_tokens_ElmFn(PLocationConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationRequest_tokens(ASN1encoding_t enc, PLocationRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationRequest_tokens_ElmFn(ASN1encoding_t enc, PLocationRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationRequest_tokens(ASN1decoding_t dec, PLocationRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationRequest_tokens_ElmFn(ASN1decoding_t dec, PLocationRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationRequest_tokens(PLocationRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationRequest_tokens_ElmFn(PLocationRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_BandwidthReject_tokens(ASN1encoding_t enc, PBandwidthReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_BandwidthReject_tokens_ElmFn(ASN1encoding_t enc, PBandwidthReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthReject_tokens(ASN1decoding_t dec, PBandwidthReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_BandwidthReject_tokens_ElmFn(ASN1decoding_t dec, PBandwidthReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_BandwidthReject_tokens(PBandwidthReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_BandwidthReject_tokens_ElmFn(PBandwidthReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens(ASN1encoding_t enc, PBandwidthConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_BandwidthConfirm_tokens_ElmFn(ASN1encoding_t enc, PBandwidthConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens(ASN1decoding_t dec, PBandwidthConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_BandwidthConfirm_tokens_ElmFn(ASN1decoding_t dec, PBandwidthConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_BandwidthConfirm_tokens(PBandwidthConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_BandwidthConfirm_tokens_ElmFn(PBandwidthConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_BandwidthRequest_tokens(ASN1encoding_t enc, PBandwidthRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_BandwidthRequest_tokens_ElmFn(ASN1encoding_t enc, PBandwidthRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthRequest_tokens(ASN1decoding_t dec, PBandwidthRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_BandwidthRequest_tokens_ElmFn(ASN1decoding_t dec, PBandwidthRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_BandwidthRequest_tokens(PBandwidthRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_BandwidthRequest_tokens_ElmFn(PBandwidthRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionReject_tokens(ASN1encoding_t enc, PAdmissionReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionReject_tokens_ElmFn(ASN1encoding_t enc, PAdmissionReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionReject_tokens(ASN1decoding_t dec, PAdmissionReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionReject_tokens_ElmFn(ASN1decoding_t dec, PAdmissionReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionReject_tokens(PAdmissionReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionReject_tokens_ElmFn(PAdmissionReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens(ASN1encoding_t enc, PAdmissionConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_tokens_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens(ASN1decoding_t dec, PAdmissionConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_tokens_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm_tokens(PAdmissionConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionConfirm_tokens_ElmFn(PAdmissionConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_tokens(ASN1encoding_t enc, PAdmissionRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_tokens_ElmFn(ASN1encoding_t enc, PAdmissionRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_tokens(ASN1decoding_t dec, PAdmissionRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_tokens_ElmFn(ASN1decoding_t dec, PAdmissionRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_tokens(PAdmissionRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_tokens_ElmFn(PAdmissionRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationReject_tokens(ASN1encoding_t enc, PUnregistrationReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationReject_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationReject_tokens(ASN1decoding_t dec, PUnregistrationReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationReject_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationReject_tokens(PUnregistrationReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationReject_tokens_ElmFn(PUnregistrationReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens(ASN1encoding_t enc, PUnregistrationConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationConfirm_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens(ASN1decoding_t dec, PUnregistrationConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationConfirm_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens(PUnregistrationConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationConfirm_tokens_ElmFn(PUnregistrationConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens(ASN1encoding_t enc, PUnregistrationRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_tokens_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens(ASN1decoding_t dec, PUnregistrationRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_tokens_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationRequest_tokens(PUnregistrationRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationRequest_tokens_ElmFn(PUnregistrationRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationReject_tokens(ASN1encoding_t enc, PRegistrationReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationReject_tokens_ElmFn(ASN1encoding_t enc, PRegistrationReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationReject_tokens(ASN1decoding_t dec, PRegistrationReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationReject_tokens_ElmFn(ASN1decoding_t dec, PRegistrationReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationReject_tokens(PRegistrationReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationReject_tokens_ElmFn(PRegistrationReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens(ASN1encoding_t enc, PRegistrationConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_tokens_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens(ASN1decoding_t dec, PRegistrationConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_tokens_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationConfirm_tokens(PRegistrationConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationConfirm_tokens_ElmFn(PRegistrationConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest_tokens(ASN1encoding_t enc, PRegistrationRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRequest_tokens_ElmFn(ASN1encoding_t enc, PRegistrationRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest_tokens(ASN1decoding_t dec, PRegistrationRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRequest_tokens_ElmFn(ASN1decoding_t dec, PRegistrationRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest_tokens(PRegistrationRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRequest_tokens_ElmFn(PRegistrationRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperReject_tokens(ASN1encoding_t enc, PGatekeeperReject_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperReject_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperReject_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperReject_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperReject_tokens(ASN1decoding_t dec, PGatekeeperReject_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperReject_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperReject_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperReject_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperReject_tokens(PGatekeeperReject_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperReject_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperReject_tokens_ElmFn(PGatekeeperReject_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens(ASN1encoding_t enc, PGatekeeperConfirm_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens(ASN1decoding_t dec, PGatekeeperConfirm_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens(PGatekeeperConfirm_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_tokens_ElmFn(PGatekeeperConfirm_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_authenticationCapability_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_authenticationCapability_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_authenticationCapability val)
{
if (!ASN1Enc_AuthenticationMechanism(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_authenticationCapability_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_authenticationCapability_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_authenticationCapability val)
{
if (!ASN1Dec_AuthenticationMechanism(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability(PGatekeeperRequest_authenticationCapability *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_authenticationCapability_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_authenticationCapability_ElmFn(PGatekeeperRequest_authenticationCapability val)
{
if (val) {
ASN1Free_AuthenticationMechanism(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens(ASN1encoding_t enc, PGatekeeperRequest_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_tokens_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens(ASN1decoding_t dec, PGatekeeperRequest_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_tokens_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_tokens(PGatekeeperRequest_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_tokens_ElmFn(PGatekeeperRequest_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_Endpoint_tokens(ASN1encoding_t enc, PEndpoint_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_tokens_ElmFn(ASN1encoding_t enc, PEndpoint_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_tokens(ASN1decoding_t dec, PEndpoint_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_tokens_ElmFn(ASN1decoding_t dec, PEndpoint_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_tokens(PEndpoint_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_tokens_ElmFn(PEndpoint_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_Progress_UUIE_tokens(ASN1encoding_t enc, PProgress_UUIE_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Progress_UUIE_tokens_ElmFn(ASN1encoding_t enc, PProgress_UUIE_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Progress_UUIE_tokens(ASN1decoding_t dec, PProgress_UUIE_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Progress_UUIE_tokens_ElmFn(ASN1decoding_t dec, PProgress_UUIE_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Progress_UUIE_tokens(PProgress_UUIE_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Progress_UUIE_tokens_ElmFn(PProgress_UUIE_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE_tokens(ASN1encoding_t enc, PFacility_UUIE_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Facility_UUIE_tokens_ElmFn(ASN1encoding_t enc, PFacility_UUIE_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE_tokens(ASN1decoding_t dec, PFacility_UUIE_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Facility_UUIE_tokens_ElmFn(ASN1decoding_t dec, PFacility_UUIE_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE_tokens(PFacility_UUIE_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Facility_UUIE_tokens_ElmFn(PFacility_UUIE_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_tokens(ASN1encoding_t enc, PSetup_UUIE_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_tokens_ElmFn(ASN1encoding_t enc, PSetup_UUIE_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_tokens(ASN1decoding_t dec, PSetup_UUIE_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_tokens_ElmFn(ASN1decoding_t dec, PSetup_UUIE_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_tokens(PSetup_UUIE_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_tokens_ElmFn(PSetup_UUIE_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_Connect_UUIE_tokens(ASN1encoding_t enc, PConnect_UUIE_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Connect_UUIE_tokens_ElmFn(ASN1encoding_t enc, PConnect_UUIE_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Connect_UUIE_tokens(ASN1decoding_t dec, PConnect_UUIE_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Connect_UUIE_tokens_ElmFn(ASN1decoding_t dec, PConnect_UUIE_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Connect_UUIE_tokens(PConnect_UUIE_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Connect_UUIE_tokens_ElmFn(PConnect_UUIE_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens(ASN1encoding_t enc, PCallProceeding_UUIE_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_tokens_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens(ASN1decoding_t dec, PCallProceeding_UUIE_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_tokens_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens(PCallProceeding_UUIE_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE_tokens_ElmFn(PCallProceeding_UUIE_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens(ASN1encoding_t enc, PAlerting_UUIE_tokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_tokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Alerting_UUIE_tokens_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_tokens val)
{
if (!ASN1Enc_ClearToken(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens(ASN1decoding_t dec, PAlerting_UUIE_tokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_tokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Alerting_UUIE_tokens_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_tokens val)
{
if (!ASN1Dec_ClearToken(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Alerting_UUIE_tokens(PAlerting_UUIE_tokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_tokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Alerting_UUIE_tokens_ElmFn(PAlerting_UUIE_tokens val)
{
if (val) {
ASN1Free_ClearToken(&val->value);
}
}
static int ASN1CALL ASN1Enc_SIGNED_EncodedGeneralToken(ASN1encoding_t enc, SIGNED_EncodedGeneralToken *val)
{
if (!ASN1Enc_EncodedGeneralToken(enc, &(val)->toBeSigned))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
return 0;
if (!ASN1Enc_Params(enc, &(val)->paramS))
return 0;
if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SIGNED_EncodedGeneralToken(ASN1decoding_t dec, SIGNED_EncodedGeneralToken *val)
{
if (!ASN1Dec_EncodedGeneralToken(dec, &(val)->toBeSigned))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
return 0;
if (!ASN1Dec_Params(dec, &(val)->paramS))
return 0;
if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_SIGNED_EncodedGeneralToken(SIGNED_EncodedGeneralToken *val)
{
if (val) {
ASN1Free_EncodedGeneralToken(&(val)->toBeSigned);
ASN1objectidentifier_free(&(val)->algorithmOID);
ASN1Free_Params(&(val)->paramS);
ASN1bitstring_free(&(val)->signature);
}
}
static int ASN1CALL ASN1Enc_ENCRYPTED(ASN1encoding_t enc, ENCRYPTED *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
return 0;
if (!ASN1Enc_Params(enc, &(val)->paramS))
return 0;
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->encryptedData))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ENCRYPTED(ASN1decoding_t dec, ENCRYPTED *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
return 0;
if (!ASN1Dec_Params(dec, &(val)->paramS))
return 0;
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->encryptedData))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ENCRYPTED(ENCRYPTED *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->algorithmOID);
ASN1Free_Params(&(val)->paramS);
ASN1octetstring_free(&(val)->encryptedData);
}
}
static int ASN1CALL ASN1Enc_HASHED(ASN1encoding_t enc, HASHED *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
return 0;
if (!ASN1Enc_Params(enc, &(val)->paramS))
return 0;
if (!ASN1PEREncFragmented(enc, ((val)->hash).length, ((val)->hash).value, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_HASHED(ASN1decoding_t dec, HASHED *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
return 0;
if (!ASN1Dec_Params(dec, &(val)->paramS))
return 0;
if (!ASN1PERDecFragmented(dec, &((val)->hash).length, &((val)->hash).value, 1))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_HASHED(HASHED *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->algorithmOID);
ASN1Free_Params(&(val)->paramS);
ASN1bitstring_free(&(val)->hash);
}
}
static int ASN1CALL ASN1Enc_SIGNED_EncodedPwdCertToken(ASN1encoding_t enc, SIGNED_EncodedPwdCertToken *val)
{
if (!ASN1Enc_EncodedPwdCertToken(enc, &(val)->toBeSigned))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
return 0;
if (!ASN1Enc_Params(enc, &(val)->paramS))
return 0;
if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SIGNED_EncodedPwdCertToken(ASN1decoding_t dec, SIGNED_EncodedPwdCertToken *val)
{
if (!ASN1Dec_EncodedPwdCertToken(dec, &(val)->toBeSigned))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
return 0;
if (!ASN1Dec_Params(dec, &(val)->paramS))
return 0;
if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_SIGNED_EncodedPwdCertToken(SIGNED_EncodedPwdCertToken *val)
{
if (val) {
ASN1Free_EncodedPwdCertToken(&(val)->toBeSigned);
ASN1objectidentifier_free(&(val)->algorithmOID);
ASN1Free_Params(&(val)->paramS);
ASN1bitstring_free(&(val)->signature);
}
}
static int ASN1CALL ASN1Enc_Information_UUIE(ASN1encoding_t enc, Information_UUIE *val)
{
ASN1octet_t o[1];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 1);
o[0] |= 0x80;
y = ASN1PEREncCheckExtensions(1, (val)->o + 0);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 1, o + 0))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_Information_UUIE(ASN1decoding_t dec, Information_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if (!y) {
ZeroMemory((val)->o + 0, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 0))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_Information_UUIE(Information_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
}
}
static int ASN1CALL ASN1Enc_ReleaseComplete_UUIE(ASN1encoding_t enc, ReleaseComplete_UUIE *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
y = ASN1PEREncCheckExtensions(1, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_ReleaseCompleteReason(enc, &(val)->reason))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 1, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_ReleaseComplete_UUIE(ASN1decoding_t dec, ReleaseComplete_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_ReleaseCompleteReason(dec, &(val)->reason))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 1, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_ReleaseComplete_UUIE(ReleaseComplete_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
}
}
static int ASN1CALL ASN1Enc_VendorIdentifier(ASN1encoding_t enc, VendorIdentifier *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if (!ASN1Enc_H221NonStandard(enc, &(val)->vendor))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->productId, 1, 256, 8))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->versionId, 1, 256, 8))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_VendorIdentifier(ASN1decoding_t dec, VendorIdentifier *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1Dec_H221NonStandard(dec, &(val)->vendor))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->productId, 1, 256, 8))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->versionId, 1, 256, 8))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_VendorIdentifier(VendorIdentifier *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
}
if ((val)->o[0] & 0x40) {
}
}
}
static int ASN1CALL ASN1Enc_H225NonStandardParameter(ASN1encoding_t enc, H225NonStandardParameter *val)
{
if (!ASN1Enc_H225NonStandardIdentifier(enc, &(val)->nonStandardIdentifier))
return 0;
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H225NonStandardParameter(ASN1decoding_t dec, H225NonStandardParameter *val)
{
if (!ASN1Dec_H225NonStandardIdentifier(dec, &(val)->nonStandardIdentifier))
return 0;
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H225NonStandardParameter(H225NonStandardParameter *val)
{
if (val) {
ASN1Free_H225NonStandardIdentifier(&(val)->nonStandardIdentifier);
ASN1octetstring_free(&(val)->data);
}
}
static ASN1stringtableentry_t PublicPartyNumber_publicNumberDigits_StringTableEntries[] = {
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
{ 48, 57, 3 },
};
static ASN1stringtable_t PublicPartyNumber_publicNumberDigits_StringTable = {
4, PublicPartyNumber_publicNumberDigits_StringTableEntries
};
static int ASN1CALL ASN1Enc_PublicPartyNumber(ASN1encoding_t enc, PublicPartyNumber *val)
{
ASN1uint32_t t;
if (!ASN1Enc_PublicTypeOfNumber(enc, &(val)->publicTypeOfNumber))
return 0;
t = lstrlenA((val)->publicNumberDigits);
if (!ASN1PEREncBitVal(enc, 7, t - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncTableCharString(enc, t, (val)->publicNumberDigits, 4, &PublicPartyNumber_publicNumberDigits_StringTable))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PublicPartyNumber(ASN1decoding_t dec, PublicPartyNumber *val)
{
ASN1uint32_t l;
if (!ASN1Dec_PublicTypeOfNumber(dec, &(val)->publicTypeOfNumber))
return 0;
if (!ASN1PERDecU32Val(dec, 7, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->publicNumberDigits, 4, &PublicPartyNumber_publicNumberDigits_StringTable))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_PublicPartyNumber(PublicPartyNumber *val)
{
if (val) {
}
}
static ASN1stringtableentry_t PrivatePartyNumber_privateNumberDigits_StringTableEntries[] = {
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
{ 48, 57, 3 },
};
static ASN1stringtable_t PrivatePartyNumber_privateNumberDigits_StringTable = {
4, PrivatePartyNumber_privateNumberDigits_StringTableEntries
};
static int ASN1CALL ASN1Enc_PrivatePartyNumber(ASN1encoding_t enc, PrivatePartyNumber *val)
{
ASN1uint32_t t;
if (!ASN1Enc_PrivateTypeOfNumber(enc, &(val)->privateTypeOfNumber))
return 0;
t = lstrlenA((val)->privateNumberDigits);
if (!ASN1PEREncBitVal(enc, 7, t - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncTableCharString(enc, t, (val)->privateNumberDigits, 4, &PrivatePartyNumber_privateNumberDigits_StringTable))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_PrivatePartyNumber(ASN1decoding_t dec, PrivatePartyNumber *val)
{
ASN1uint32_t l;
if (!ASN1Dec_PrivateTypeOfNumber(dec, &(val)->privateTypeOfNumber))
return 0;
if (!ASN1PERDecU32Val(dec, 7, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->privateNumberDigits, 4, &PrivatePartyNumber_privateNumberDigits_StringTable))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_PrivatePartyNumber(PrivatePartyNumber *val)
{
if (val) {
}
}
static int ASN1CALL ASN1Enc_SecurityServiceMode(ASN1encoding_t enc, SecurityServiceMode *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
return 0;
break;
case 2:
break;
case 3:
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_SecurityServiceMode(ASN1decoding_t dec, SecurityServiceMode *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
return 0;
break;
case 2:
break;
case 3:
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_SecurityServiceMode(SecurityServiceMode *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
break;
}
}
}
static int ASN1CALL ASN1Enc_SecurityCapabilities(ASN1encoding_t enc, SecurityCapabilities *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandard))
return 0;
}
if (!ASN1Enc_SecurityServiceMode(enc, &(val)->encryption))
return 0;
if (!ASN1Enc_SecurityServiceMode(enc, &(val)->authenticaton))
return 0;
if (!ASN1Enc_SecurityServiceMode(enc, &(val)->integrity))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SecurityCapabilities(ASN1decoding_t dec, SecurityCapabilities *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandard))
return 0;
}
if (!ASN1Dec_SecurityServiceMode(dec, &(val)->encryption))
return 0;
if (!ASN1Dec_SecurityServiceMode(dec, &(val)->authenticaton))
return 0;
if (!ASN1Dec_SecurityServiceMode(dec, &(val)->integrity))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_SecurityCapabilities(SecurityCapabilities *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandard);
}
ASN1Free_SecurityServiceMode(&(val)->encryption);
ASN1Free_SecurityServiceMode(&(val)->authenticaton);
ASN1Free_SecurityServiceMode(&(val)->integrity);
}
}
static int ASN1CALL ASN1Enc_H245Security(ASN1encoding_t enc, H245Security *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
return 0;
break;
case 2:
break;
case 3:
if (!ASN1Enc_SecurityCapabilities(enc, &(val)->u.tls))
return 0;
break;
case 4:
if (!ASN1Enc_SecurityCapabilities(enc, &(val)->u.ipsec))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_H245Security(ASN1decoding_t dec, H245Security *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
return 0;
break;
case 2:
break;
case 3:
if (!ASN1Dec_SecurityCapabilities(dec, &(val)->u.tls))
return 0;
break;
case 4:
if (!ASN1Dec_SecurityCapabilities(dec, &(val)->u.ipsec))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_H245Security(H245Security *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
break;
case 3:
ASN1Free_SecurityCapabilities(&(val)->u.tls);
break;
case 4:
ASN1Free_SecurityCapabilities(&(val)->u.ipsec);
break;
}
}
}
static int ASN1CALL ASN1Enc_QseriesOptions(ASN1encoding_t enc, QseriesOptions *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q932Full))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q951Full))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q952Full))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q953Full))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q955Full))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q956Full))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->q957Full))
return 0;
if (!ASN1Enc_Q954Details(enc, &(val)->q954Info))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_QseriesOptions(ASN1decoding_t dec, QseriesOptions *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q932Full))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q951Full))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q952Full))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q953Full))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q955Full))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q956Full))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->q957Full))
return 0;
if (!ASN1Dec_Q954Details(dec, &(val)->q954Info))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Enc_EncryptIntAlg(ASN1encoding_t enc, EncryptIntAlg *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
return 0;
break;
case 2:
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.isoAlgorithm))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_EncryptIntAlg(ASN1decoding_t dec, EncryptIntAlg *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
return 0;
break;
case 2:
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.isoAlgorithm))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_EncryptIntAlg(EncryptIntAlg *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
break;
case 2:
ASN1objectidentifier_free(&(val)->u.isoAlgorithm);
break;
}
}
}
static int ASN1CALL ASN1Enc_NonIsoIntegrityMechanism(ASN1encoding_t enc, NonIsoIntegrityMechanism *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
break;
case 2:
if (!ASN1Enc_EncryptIntAlg(enc, &(val)->u.hMAC_iso10118_2_s))
return 0;
break;
case 3:
if (!ASN1Enc_EncryptIntAlg(enc, &(val)->u.hMAC_iso10118_2_l))
return 0;
break;
case 4:
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.hMAC_iso10118_3))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_NonIsoIntegrityMechanism(ASN1decoding_t dec, NonIsoIntegrityMechanism *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
break;
case 2:
if (!ASN1Dec_EncryptIntAlg(dec, &(val)->u.hMAC_iso10118_2_s))
return 0;
break;
case 3:
if (!ASN1Dec_EncryptIntAlg(dec, &(val)->u.hMAC_iso10118_2_l))
return 0;
break;
case 4:
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.hMAC_iso10118_3))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_NonIsoIntegrityMechanism(NonIsoIntegrityMechanism *val)
{
if (val) {
switch ((val)->choice) {
case 2:
ASN1Free_EncryptIntAlg(&(val)->u.hMAC_iso10118_2_s);
break;
case 3:
ASN1Free_EncryptIntAlg(&(val)->u.hMAC_iso10118_2_l);
break;
case 4:
ASN1objectidentifier_free(&(val)->u.hMAC_iso10118_3);
break;
}
}
}
static int ASN1CALL ASN1Enc_IntegrityMechanism(ASN1encoding_t enc, IntegrityMechanism *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandard))
return 0;
break;
case 2:
break;
case 3:
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.iso9797))
return 0;
break;
case 4:
if (!ASN1Enc_NonIsoIntegrityMechanism(enc, &(val)->u.nonIsoIM))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_IntegrityMechanism(ASN1decoding_t dec, IntegrityMechanism *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandard))
return 0;
break;
case 2:
break;
case 3:
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.iso9797))
return 0;
break;
case 4:
if (!ASN1Dec_NonIsoIntegrityMechanism(dec, &(val)->u.nonIsoIM))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_IntegrityMechanism(IntegrityMechanism *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_H225NonStandardParameter(&(val)->u.nonStandard);
break;
case 3:
ASN1objectidentifier_free(&(val)->u.iso9797);
break;
case 4:
ASN1Free_NonIsoIntegrityMechanism(&(val)->u.nonIsoIM);
break;
}
}
}
static int ASN1CALL ASN1Enc_EncodedFastStartToken(ASN1encoding_t enc, EncodedFastStartToken *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->id))
return 0;
if (!ASN1Enc_FastStartToken(enc, &(val)->type))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_EncodedFastStartToken(ASN1decoding_t dec, EncodedFastStartToken *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->id))
return 0;
if (!ASN1Dec_FastStartToken(dec, &(val)->type))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_EncodedFastStartToken(EncodedFastStartToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->id);
ASN1Free_FastStartToken(&(val)->type);
}
}
static int ASN1CALL ASN1Enc_DataRate(ASN1encoding_t enc, DataRate *val)
{
ASN1uint32_t l;
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
l = ASN1uint32_uoctets((val)->channelRate);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->channelRate))
return 0;
if ((val)->o[0] & 0x40) {
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 8, (val)->channelMultiplier - 1))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_DataRate(ASN1decoding_t dec, DataRate *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->channelRate))
return 0;
if ((val)->o[0] & 0x40) {
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU16Val(dec, 8, &(val)->channelMultiplier))
return 0;
(val)->channelMultiplier += 1;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_DataRate(DataRate *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
}
}
static int ASN1CALL ASN1Enc_GatekeeperReject(ASN1encoding_t enc, GatekeeperReject *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1Enc_GatekeeperRejectReason(enc, &(val)->rejectReason))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_GatekeeperReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_GatekeeperReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperReject(ASN1decoding_t dec, GatekeeperReject *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1Dec_GatekeeperRejectReason(dec, &(val)->rejectReason))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperReject(GatekeeperReject *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_GatekeeperReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_GatekeeperReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm(ASN1encoding_t enc, RegistrationConfirm *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
ASN1uint32_t l;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x4;
y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 3, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1Enc_RegistrationConfirm_callSignalAddress(enc, &(val)->callSignalAddress))
return 0;
if (o[0] & 0x40) {
if (!ASN1Enc_RegistrationConfirm_terminalAlias(enc, &(val)->terminalAlias))
return 0;
}
if (o[0] & 0x20) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 7, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_RegistrationConfirm_alternateGatekeeper(ee, &(val)->alternateGatekeeper))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
l = ASN1uint32_uoctets((val)->timeToLive - 1);
if (!ASN1PEREncBitVal(ee, 2, l - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncBitVal(ee, l * 8, (val)->timeToLive - 1))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_RegistrationConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_RegistrationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1PEREncBoolean(ee, (val)->willRespondToIRR))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x2) {
if (!ASN1Enc_RegistrationConfirm_preGrantedARQ(ee, &(val)->preGrantedARQ))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm(ASN1decoding_t dec, RegistrationConfirm *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t l;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 3, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1Dec_RegistrationConfirm_callSignalAddress(dec, &(val)->callSignalAddress))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_RegistrationConfirm_terminalAlias(dec, &(val)->terminalAlias))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationConfirm_alternateGatekeeper(dd, &(val)->alternateGatekeeper))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecU32Val(dd, l * 8, &(val)->timeToLive))
return 0;
(val)->timeToLive += 1;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->willRespondToIRR))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationConfirm_preGrantedARQ(dd, &(val)->preGrantedARQ))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_RegistrationConfirm(RegistrationConfirm *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_RegistrationConfirm_callSignalAddress(&(val)->callSignalAddress);
if ((val)->o[0] & 0x40) {
ASN1Free_RegistrationConfirm_terminalAlias(&(val)->terminalAlias);
}
if ((val)->o[0] & 0x20) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
ASN1char16string_free(&(val)->endpointIdentifier);
if ((val)->o[1] & 0x80) {
ASN1Free_RegistrationConfirm_alternateGatekeeper(&(val)->alternateGatekeeper);
}
if ((val)->o[1] & 0x20) {
ASN1Free_RegistrationConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_RegistrationConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_RegistrationReject(ASN1encoding_t enc, RegistrationReject *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1Enc_RegistrationRejectReason(enc, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_RegistrationReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_RegistrationReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationReject(ASN1decoding_t dec, RegistrationReject *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1Dec_RegistrationRejectReason(dec, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_RegistrationReject(RegistrationReject *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_RegistrationRejectReason(&(val)->rejectReason);
if ((val)->o[0] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_RegistrationReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_RegistrationReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_UnregistrationRequest(ASN1encoding_t enc, UnregistrationRequest *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 3, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_UnregistrationRequest_callSignalAddress(enc, &(val)->callSignalAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_UnregistrationRequest_endpointAlias(enc, &(val)->endpointAlias))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 6, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_UnregistrationRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_UnregistrationRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_UnregistrationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x8) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x4) {
if (!ASN1Enc_UnregRequestReason(ee, &(val)->reason))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationRequest(ASN1decoding_t dec, UnregistrationRequest *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 3, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_UnregistrationRequest_callSignalAddress(dec, &(val)->callSignalAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_UnregistrationRequest_endpointAlias(dec, &(val)->endpointAlias))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregRequestReason(dd, &(val)->reason))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationRequest(UnregistrationRequest *val)
{
if (val) {
ASN1Free_UnregistrationRequest_callSignalAddress(&(val)->callSignalAddress);
if ((val)->o[0] & 0x80) {
ASN1Free_UnregistrationRequest_endpointAlias(&(val)->endpointAlias);
}
if ((val)->o[0] & 0x40) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x20) {
ASN1char16string_free(&(val)->endpointIdentifier);
}
if ((val)->o[1] & 0x80) {
ASN1Free_UnregistrationRequest_alternateEndpoints(&(val)->alternateEndpoints);
}
if ((val)->o[1] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x20) {
ASN1Free_UnregistrationRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_UnregistrationRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_UnregistrationConfirm(ASN1encoding_t enc, UnregistrationConfirm *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_UnregistrationConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_UnregistrationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationConfirm(ASN1decoding_t dec, UnregistrationConfirm *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationConfirm(UnregistrationConfirm *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_UnregistrationConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x40) {
ASN1Free_UnregistrationConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_UnregistrationReject(ASN1encoding_t enc, UnregistrationReject *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_UnregRejectReason(enc, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_UnregistrationReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_UnregistrationReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationReject(ASN1decoding_t dec, UnregistrationReject *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_UnregRejectReason(dec, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UnregistrationReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationReject(UnregistrationReject *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_UnregistrationReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_UnregistrationReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_AdmissionReject(ASN1encoding_t enc, AdmissionReject *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_AdmissionRejectReason(enc, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 5, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_AdmissionReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_AdmissionReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_AdmissionReject_callSignalAddress(ee, &(val)->callSignalAddress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x8) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionReject(ASN1decoding_t dec, AdmissionReject *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_AdmissionRejectReason(dec, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionReject_callSignalAddress(dd, &(val)->callSignalAddress))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_AdmissionReject(AdmissionReject *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_AdmissionReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_AdmissionReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_AdmissionReject_callSignalAddress(&(val)->callSignalAddress);
}
if ((val)->o[1] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_BandwidthRequest(ASN1encoding_t enc, BandwidthRequest *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1uint32_t l;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
o[1] |= 0x4;
y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_CallType(enc, &(val)->callType))
return 0;
}
l = ASN1uint32_uoctets((val)->bandWidth);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
return 0;
if (o[0] & 0x40) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_BandwidthRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_BandwidthRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1PEREncBoolean(ee, (val)->answeredCall))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthRequest(ASN1decoding_t dec, BandwidthRequest *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_CallType(dec, &(val)->callType))
return 0;
}
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_BandwidthRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_BandwidthRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->answeredCall))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_BandwidthRequest(BandwidthRequest *val)
{
if (val) {
ASN1char16string_free(&(val)->endpointIdentifier);
if ((val)->o[0] & 0x40) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x20) {
ASN1Free_BandwidthRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_BandwidthRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_BandwidthConfirm(ASN1encoding_t enc, BandwidthConfirm *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
l = ASN1uint32_uoctets((val)->bandWidth);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_BandwidthConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_BandwidthConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthConfirm(ASN1decoding_t dec, BandwidthConfirm *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_BandwidthConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_BandwidthConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_BandwidthConfirm(BandwidthConfirm *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_BandwidthConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x40) {
ASN1Free_BandwidthConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_BandwidthReject(ASN1encoding_t enc, BandwidthReject *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_BandRejectReason(enc, &(val)->rejectReason))
return 0;
l = ASN1uint32_uoctets((val)->allowedBandWidth);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->allowedBandWidth))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_BandwidthReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_BandwidthReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthReject(ASN1decoding_t dec, BandwidthReject *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_BandRejectReason(dec, &(val)->rejectReason))
return 0;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->allowedBandWidth))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_BandwidthReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_BandwidthReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_BandwidthReject(BandwidthReject *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_BandwidthReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_BandwidthReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_LocationReject(ASN1encoding_t enc, LocationReject *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_LocationRejectReason(enc, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_LocationReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_LocationReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_LocationReject(ASN1decoding_t dec, LocationReject *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_LocationRejectReason(dec, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_LocationReject(LocationReject *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_LocationReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_LocationReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_DisengageRequest(ASN1encoding_t enc, DisengageRequest *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
o[1] |= 0x4;
y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
return 0;
if (!ASN1Enc_DisengageReason(enc, &(val)->disengageReason))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_DisengageRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_DisengageRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1PEREncBoolean(ee, (val)->answeredCall))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_DisengageRequest(ASN1decoding_t dec, DisengageRequest *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
return 0;
if (!ASN1Dec_DisengageReason(dec, &(val)->disengageReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_DisengageRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_DisengageRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->answeredCall))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_DisengageRequest(DisengageRequest *val)
{
if (val) {
ASN1char16string_free(&(val)->endpointIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x20) {
ASN1Free_DisengageRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_DisengageRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_DisengageConfirm(ASN1encoding_t enc, DisengageConfirm *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(3, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_DisengageConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_DisengageConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_DisengageConfirm(ASN1decoding_t dec, DisengageConfirm *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_DisengageConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_DisengageConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_DisengageConfirm(DisengageConfirm *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_DisengageConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x40) {
ASN1Free_DisengageConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_DisengageReject(ASN1encoding_t enc, DisengageReject *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_DisengageRejectReason(enc, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_AltGKInfo(ee, &(val)->altGKInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_DisengageReject_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_DisengageReject_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_DisengageReject(ASN1decoding_t dec, DisengageReject *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_DisengageRejectReason(dec, &(val)->rejectReason))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AltGKInfo(dd, &(val)->altGKInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_DisengageReject_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_DisengageReject_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_DisengageReject(DisengageReject *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_DisengageReject_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_DisengageReject_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestAck(ASN1encoding_t enc, InfoRequestAck *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 4, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_InfoRequestAck_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_InfoRequestAck_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestAck(ASN1decoding_t dec, InfoRequestAck *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 4, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_InfoRequestAck_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_InfoRequestAck_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestAck(InfoRequestAck *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_InfoRequestAck_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x20) {
ASN1Free_InfoRequestAck_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestNak(ASN1encoding_t enc, InfoRequestNak *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 5, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1Enc_InfoRequestNakReason(enc, &(val)->nakReason))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_AltGKInfo(enc, &(val)->altGKInfo))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_InfoRequestNak_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_InfoRequestNak_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestNak(ASN1decoding_t dec, InfoRequestNak *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 5, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1Dec_InfoRequestNakReason(dec, &(val)->nakReason))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_AltGKInfo(dec, &(val)->altGKInfo))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_InfoRequestNak_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_InfoRequestNak_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestNak(InfoRequestNak *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_AltGKInfo(&(val)->altGKInfo);
}
if ((val)->o[0] & 0x20) {
ASN1Free_InfoRequestNak_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x10) {
ASN1Free_InfoRequestNak_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_H225NonStandardMessage(ASN1encoding_t enc, H225NonStandardMessage *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(3, (val)->o + 0);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 3, (val)->o + 0))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardMessage_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_H225NonStandardMessage_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H225NonStandardMessage(ASN1decoding_t dec, H225NonStandardMessage *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
if (!y) {
ZeroMemory((val)->o + 0, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 3, (val)->o + 0))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H225NonStandardMessage_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H225NonStandardMessage_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[0] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H225NonStandardMessage(H225NonStandardMessage *val)
{
if (val) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardMessage_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x40) {
ASN1Free_H225NonStandardMessage_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x20) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_RequestInProgress(ASN1encoding_t enc, RequestInProgress *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 4, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_RequestInProgress_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_RequestInProgress_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
return 0;
}
if (!ASN1PEREncUnsignedShort(enc, (val)->delay - 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RequestInProgress(ASN1decoding_t dec, RequestInProgress *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 4, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_RequestInProgress_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_RequestInProgress_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
return 0;
}
if (!ASN1PERDecUnsignedShort(dec, &(val)->delay))
return 0;
(val)->delay += 1;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_RequestInProgress(RequestInProgress *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_RequestInProgress_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x20) {
ASN1Free_RequestInProgress_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate(ASN1encoding_t enc, ResourcesAvailableIndicate *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 4, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1Enc_ResourcesAvailableIndicate_protocols(enc, &(val)->protocols))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->almostOutOfResources))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_ResourcesAvailableIndicate_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate(ASN1decoding_t dec, ResourcesAvailableIndicate *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 4, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1Dec_ResourcesAvailableIndicate_protocols(dec, &(val)->protocols))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->almostOutOfResources))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_ResourcesAvailableIndicate_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate(ResourcesAvailableIndicate *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1char16string_free(&(val)->endpointIdentifier);
ASN1Free_ResourcesAvailableIndicate_protocols(&(val)->protocols);
if ((val)->o[0] & 0x40) {
ASN1Free_ResourcesAvailableIndicate_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x20) {
ASN1Free_ResourcesAvailableIndicate_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm(ASN1encoding_t enc, ResourcesAvailableConfirm *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 4, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_ResourcesAvailableConfirm_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_ICV(enc, &(val)->integrityCheckValue))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm(ASN1decoding_t dec, ResourcesAvailableConfirm *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 4, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_ResourcesAvailableConfirm_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_ICV(dec, &(val)->integrityCheckValue))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm(ResourcesAvailableConfirm *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_ResourcesAvailableConfirm_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x20) {
ASN1Free_ResourcesAvailableConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity(ASN1encoding_t enc, PGatekeeperConfirm_integrity *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_integrity_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_integrity_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_integrity val)
{
if (!ASN1Enc_IntegrityMechanism(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity(ASN1decoding_t dec, PGatekeeperConfirm_integrity *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_integrity_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_integrity_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_integrity val)
{
if (!ASN1Dec_IntegrityMechanism(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity(PGatekeeperConfirm_integrity *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_integrity_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_integrity_ElmFn(PGatekeeperConfirm_integrity val)
{
if (val) {
ASN1Free_IntegrityMechanism(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity(ASN1encoding_t enc, PGatekeeperRequest_integrity *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_integrity_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_integrity_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_integrity val)
{
if (!ASN1Enc_IntegrityMechanism(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity(ASN1decoding_t dec, PGatekeeperRequest_integrity *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_integrity_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_integrity_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_integrity val)
{
if (!ASN1Dec_IntegrityMechanism(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_integrity(PGatekeeperRequest_integrity *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_integrity_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_integrity_ElmFn(PGatekeeperRequest_integrity val)
{
if (val) {
ASN1Free_IntegrityMechanism(&val->value);
}
}
static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoGKPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoGKPwdHash *val)
{
ASN1uint32_t l;
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperId).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperId).length, ((val)->gatekeeperId).value, 16))
return 0;
l = ASN1uint32_uoctets((val)->timeStamp - 1);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
return 0;
if (!ASN1Enc_HASHED(enc, &(val)->token))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoGKPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoGKPwdHash *val)
{
ASN1uint32_t l;
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperId).length))
return 0;
((val)->gatekeeperId).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperId).length, &((val)->gatekeeperId).value, 16))
return 0;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
return 0;
(val)->timeStamp += 1;
if (!ASN1Dec_HASHED(dec, &(val)->token))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CryptoH323Token_cryptoGKPwdHash(CryptoH323Token_cryptoGKPwdHash *val)
{
if (val) {
ASN1char16string_free(&(val)->gatekeeperId);
ASN1Free_HASHED(&(val)->token);
}
}
static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_NonStandardProtocol_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_NonStandardProtocol_dataRatesSupported_ElmFn(ASN1encoding_t enc, PNonStandardProtocol_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_NonStandardProtocol_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_NonStandardProtocol_dataRatesSupported_ElmFn(ASN1decoding_t dec, PNonStandardProtocol_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported(PNonStandardProtocol_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_NonStandardProtocol_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_NonStandardProtocol_dataRatesSupported_ElmFn(PNonStandardProtocol_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_T120OnlyCaps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_T120OnlyCaps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PT120OnlyCaps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_T120OnlyCaps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_T120OnlyCaps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PT120OnlyCaps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported(PT120OnlyCaps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_T120OnlyCaps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_T120OnlyCaps_dataRatesSupported_ElmFn(PT120OnlyCaps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_VoiceCaps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_VoiceCaps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PVoiceCaps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_VoiceCaps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_VoiceCaps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PVoiceCaps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported(PVoiceCaps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_VoiceCaps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_VoiceCaps_dataRatesSupported_ElmFn(PVoiceCaps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported(ASN1encoding_t enc, PH324Caps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H324Caps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_H324Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH324Caps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported(ASN1decoding_t dec, PH324Caps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H324Caps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H324Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH324Caps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported(PH324Caps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H324Caps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_H324Caps_dataRatesSupported_ElmFn(PH324Caps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported(ASN1encoding_t enc, PH323Caps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323Caps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_H323Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH323Caps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported(ASN1decoding_t dec, PH323Caps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323Caps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H323Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH323Caps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported(PH323Caps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323Caps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_H323Caps_dataRatesSupported_ElmFn(PH323Caps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported(ASN1encoding_t enc, PH322Caps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H322Caps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_H322Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH322Caps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported(ASN1decoding_t dec, PH322Caps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H322Caps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H322Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH322Caps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported(PH322Caps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H322Caps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_H322Caps_dataRatesSupported_ElmFn(PH322Caps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported(ASN1encoding_t enc, PH321Caps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H321Caps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_H321Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH321Caps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported(ASN1decoding_t dec, PH321Caps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H321Caps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H321Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH321Caps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported(PH321Caps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H321Caps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_H321Caps_dataRatesSupported_ElmFn(PH321Caps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported(ASN1encoding_t enc, PH320Caps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H320Caps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_H320Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH320Caps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported(ASN1decoding_t dec, PH320Caps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H320Caps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H320Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH320Caps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported(PH320Caps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H320Caps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_H320Caps_dataRatesSupported_ElmFn(PH320Caps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported(ASN1encoding_t enc, PH310Caps_dataRatesSupported *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H310Caps_dataRatesSupported_ElmFn);
}
static int ASN1CALL ASN1Enc_H310Caps_dataRatesSupported_ElmFn(ASN1encoding_t enc, PH310Caps_dataRatesSupported val)
{
if (!ASN1Enc_DataRate(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported(ASN1decoding_t dec, PH310Caps_dataRatesSupported *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H310Caps_dataRatesSupported_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H310Caps_dataRatesSupported_ElmFn(ASN1decoding_t dec, PH310Caps_dataRatesSupported val)
{
if (!ASN1Dec_DataRate(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported(PH310Caps_dataRatesSupported *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H310Caps_dataRatesSupported_ElmFn);
}
}
static void ASN1CALL ASN1Free_H310Caps_dataRatesSupported_ElmFn(PH310Caps_dataRatesSupported val)
{
if (val) {
ASN1Free_DataRate(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_h245SecurityCapability_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_h245SecurityCapability_ElmFn(ASN1encoding_t enc, PSetup_UUIE_h245SecurityCapability val)
{
if (!ASN1Enc_H245Security(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_h245SecurityCapability_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_h245SecurityCapability_ElmFn(ASN1decoding_t dec, PSetup_UUIE_h245SecurityCapability val)
{
if (!ASN1Dec_H245Security(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability(PSetup_UUIE_h245SecurityCapability *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_h245SecurityCapability_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_h245SecurityCapability_ElmFn(PSetup_UUIE_h245SecurityCapability val)
{
if (val) {
ASN1Free_H245Security(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323_UU_PDU_nonStandardControl_ElmFn);
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_nonStandardControl_ElmFn(ASN1encoding_t enc, PH323_UU_PDU_nonStandardControl val)
{
if (!ASN1Enc_H225NonStandardParameter(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323_UU_PDU_nonStandardControl_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_nonStandardControl_ElmFn(ASN1decoding_t dec, PH323_UU_PDU_nonStandardControl val)
{
if (!ASN1Dec_H225NonStandardParameter(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl(PH323_UU_PDU_nonStandardControl *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323_UU_PDU_nonStandardControl_ElmFn);
}
}
static void ASN1CALL ASN1Free_H323_UU_PDU_nonStandardControl_ElmFn(PH323_UU_PDU_nonStandardControl val)
{
if (val) {
ASN1Free_H225NonStandardParameter(&val->value);
}
}
static int ASN1CALL ASN1Enc_CryptoToken_cryptoHashedToken(ASN1encoding_t enc, CryptoToken_cryptoHashedToken *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
return 0;
if (!ASN1Enc_ClearToken(enc, &(val)->hashedVals))
return 0;
if (!ASN1Enc_HASHED(enc, &(val)->token))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CryptoToken_cryptoHashedToken(ASN1decoding_t dec, CryptoToken_cryptoHashedToken *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
return 0;
if (!ASN1Dec_ClearToken(dec, &(val)->hashedVals))
return 0;
if (!ASN1Dec_HASHED(dec, &(val)->token))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CryptoToken_cryptoHashedToken(CryptoToken_cryptoHashedToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->tokenOID);
ASN1Free_ClearToken(&(val)->hashedVals);
ASN1Free_HASHED(&(val)->token);
}
}
static int ASN1CALL ASN1Enc_CryptoToken_cryptoSignedToken(ASN1encoding_t enc, CryptoToken_cryptoSignedToken *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
return 0;
if (!ASN1Enc_SIGNED_EncodedGeneralToken(enc, &(val)->token))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CryptoToken_cryptoSignedToken(ASN1decoding_t dec, CryptoToken_cryptoSignedToken *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
return 0;
if (!ASN1Dec_SIGNED_EncodedGeneralToken(dec, &(val)->token))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CryptoToken_cryptoSignedToken(CryptoToken_cryptoSignedToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->tokenOID);
ASN1Free_SIGNED_EncodedGeneralToken(&(val)->token);
}
}
static int ASN1CALL ASN1Enc_CryptoToken_cryptoEncryptedToken(ASN1encoding_t enc, CryptoToken_cryptoEncryptedToken *val)
{
if (!ASN1PEREncObjectIdentifier(enc, &(val)->tokenOID))
return 0;
if (!ASN1Enc_ENCRYPTED(enc, &(val)->token))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CryptoToken_cryptoEncryptedToken(ASN1decoding_t dec, CryptoToken_cryptoEncryptedToken *val)
{
if (!ASN1PERDecObjectIdentifier(dec, &(val)->tokenOID))
return 0;
if (!ASN1Dec_ENCRYPTED(dec, &(val)->token))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CryptoToken_cryptoEncryptedToken(CryptoToken_cryptoEncryptedToken *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->tokenOID);
ASN1Free_ENCRYPTED(&(val)->token);
}
}
static int ASN1CALL ASN1Enc_CryptoToken(ASN1encoding_t enc, CryptoToken *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_CryptoToken_cryptoEncryptedToken(enc, &(val)->u.cryptoEncryptedToken))
return 0;
break;
case 2:
if (!ASN1Enc_CryptoToken_cryptoSignedToken(enc, &(val)->u.cryptoSignedToken))
return 0;
break;
case 3:
if (!ASN1Enc_CryptoToken_cryptoHashedToken(enc, &(val)->u.cryptoHashedToken))
return 0;
break;
case 4:
if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoPwdEncr))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_CryptoToken(ASN1decoding_t dec, CryptoToken *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_CryptoToken_cryptoEncryptedToken(dec, &(val)->u.cryptoEncryptedToken))
return 0;
break;
case 2:
if (!ASN1Dec_CryptoToken_cryptoSignedToken(dec, &(val)->u.cryptoSignedToken))
return 0;
break;
case 3:
if (!ASN1Dec_CryptoToken_cryptoHashedToken(dec, &(val)->u.cryptoHashedToken))
return 0;
break;
case 4:
if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoPwdEncr))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_CryptoToken(CryptoToken *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_CryptoToken_cryptoEncryptedToken(&(val)->u.cryptoEncryptedToken);
break;
case 2:
ASN1Free_CryptoToken_cryptoSignedToken(&(val)->u.cryptoSignedToken);
break;
case 3:
ASN1Free_CryptoToken_cryptoHashedToken(&(val)->u.cryptoHashedToken);
break;
case 4:
ASN1Free_ENCRYPTED(&(val)->u.cryptoPwdEncr);
break;
}
}
}
static int ASN1CALL ASN1Enc_SIGNED_EncodedFastStartToken(ASN1encoding_t enc, SIGNED_EncodedFastStartToken *val)
{
if (!ASN1Enc_EncodedFastStartToken(enc, &(val)->toBeSigned))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->algorithmOID))
return 0;
if (!ASN1Enc_Params(enc, &(val)->paramS))
return 0;
if (!ASN1PEREncFragmented(enc, ((val)->signature).length, ((val)->signature).value, 1))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SIGNED_EncodedFastStartToken(ASN1decoding_t dec, SIGNED_EncodedFastStartToken *val)
{
if (!ASN1Dec_EncodedFastStartToken(dec, &(val)->toBeSigned))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->algorithmOID))
return 0;
if (!ASN1Dec_Params(dec, &(val)->paramS))
return 0;
if (!ASN1PERDecFragmented(dec, &((val)->signature).length, &((val)->signature).value, 1))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_SIGNED_EncodedFastStartToken(SIGNED_EncodedFastStartToken *val)
{
if (val) {
ASN1Free_EncodedFastStartToken(&(val)->toBeSigned);
ASN1objectidentifier_free(&(val)->algorithmOID);
ASN1Free_Params(&(val)->paramS);
ASN1bitstring_free(&(val)->signature);
}
}
static int ASN1CALL ASN1Enc_TransportAddress(ASN1encoding_t enc, TransportAddress *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_TransportAddress_ipAddress(enc, &(val)->u.ipAddress))
return 0;
break;
case 2:
if (!ASN1Enc_TransportAddress_ipSourceRoute(enc, &(val)->u.ipSourceRoute))
return 0;
break;
case 3:
if (!ASN1Enc_TransportAddress_ipxAddress(enc, &(val)->u.ipxAddress))
return 0;
break;
case 4:
if (!ASN1Enc_TransportAddress_ip6Address(enc, &(val)->u.ip6Address))
return 0;
break;
case 5:
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
return 0;
break;
case 6:
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
return 0;
break;
case 7:
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandardAddress))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_TransportAddress(ASN1decoding_t dec, TransportAddress *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_TransportAddress_ipAddress(dec, &(val)->u.ipAddress))
return 0;
break;
case 2:
if (!ASN1Dec_TransportAddress_ipSourceRoute(dec, &(val)->u.ipSourceRoute))
return 0;
break;
case 3:
if (!ASN1Dec_TransportAddress_ipxAddress(dec, &(val)->u.ipxAddress))
return 0;
break;
case 4:
if (!ASN1Dec_TransportAddress_ip6Address(dec, &(val)->u.ip6Address))
return 0;
break;
case 5:
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->u.netBios, 16))
return 0;
break;
case 6:
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->u.nsap, 1, 20, 5))
return 0;
break;
case 7:
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandardAddress))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_TransportAddress(TransportAddress *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_TransportAddress_ipAddress(&(val)->u.ipAddress);
break;
case 2:
ASN1Free_TransportAddress_ipSourceRoute(&(val)->u.ipSourceRoute);
break;
case 3:
ASN1Free_TransportAddress_ipxAddress(&(val)->u.ipxAddress);
break;
case 4:
ASN1Free_TransportAddress_ip6Address(&(val)->u.ip6Address);
break;
case 5:
break;
case 6:
break;
case 7:
ASN1Free_H225NonStandardParameter(&(val)->u.nonStandardAddress);
break;
}
}
}
static int ASN1CALL ASN1Enc_GatewayInfo(ASN1encoding_t enc, GatewayInfo *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_GatewayInfo_protocol(enc, &(val)->protocol))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_GatewayInfo(ASN1decoding_t dec, GatewayInfo *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_GatewayInfo_protocol(dec, &(val)->protocol))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_GatewayInfo(GatewayInfo *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_GatewayInfo_protocol(&(val)->protocol);
}
if ((val)->o[0] & 0x40) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
}
}
static int ASN1CALL ASN1Enc_H310Caps(ASN1encoding_t enc, H310Caps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H310Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H310Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H310Caps(ASN1decoding_t dec, H310Caps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H310Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H310Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H310Caps(H310Caps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H310Caps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H310Caps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_H320Caps(ASN1encoding_t enc, H320Caps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H320Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H320Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H320Caps(ASN1decoding_t dec, H320Caps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H320Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H320Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H320Caps(H320Caps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H320Caps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H320Caps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_H321Caps(ASN1encoding_t enc, H321Caps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H321Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H321Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H321Caps(ASN1decoding_t dec, H321Caps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H321Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H321Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H321Caps(H321Caps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H321Caps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H321Caps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_H322Caps(ASN1encoding_t enc, H322Caps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H322Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H322Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H322Caps(ASN1decoding_t dec, H322Caps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H322Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H322Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H322Caps(H322Caps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H322Caps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H322Caps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_H323Caps(ASN1encoding_t enc, H323Caps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H323Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H323Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H323Caps(ASN1decoding_t dec, H323Caps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H323Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H323Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H323Caps(H323Caps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H323Caps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H323Caps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_H324Caps(ASN1encoding_t enc, H324Caps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H324Caps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H324Caps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H324Caps(ASN1decoding_t dec, H324Caps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H324Caps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H324Caps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H324Caps(H324Caps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H324Caps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H324Caps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_VoiceCaps(ASN1encoding_t enc, VoiceCaps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_VoiceCaps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_VoiceCaps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_VoiceCaps(ASN1decoding_t dec, VoiceCaps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_VoiceCaps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_VoiceCaps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_VoiceCaps(VoiceCaps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_VoiceCaps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_VoiceCaps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_T120OnlyCaps(ASN1encoding_t enc, T120OnlyCaps *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(2, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 2, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_T120OnlyCaps_dataRatesSupported(ee, &(val)->dataRatesSupported))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_T120OnlyCaps_supportedPrefixes(ee, &(val)->supportedPrefixes))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_T120OnlyCaps(ASN1decoding_t dec, T120OnlyCaps *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 2, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_T120OnlyCaps_dataRatesSupported(dd, &(val)->dataRatesSupported))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_T120OnlyCaps_supportedPrefixes(dd, &(val)->supportedPrefixes))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_T120OnlyCaps(T120OnlyCaps *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_T120OnlyCaps_dataRatesSupported(&(val)->dataRatesSupported);
}
if ((val)->o[1] & 0x40) {
ASN1Free_T120OnlyCaps_supportedPrefixes(&(val)->supportedPrefixes);
}
}
}
static int ASN1CALL ASN1Enc_NonStandardProtocol(ASN1encoding_t enc, NonStandardProtocol *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_NonStandardProtocol_dataRatesSupported(enc, &(val)->dataRatesSupported))
return 0;
}
if (!ASN1Enc_NonStandardProtocol_supportedPrefixes(enc, &(val)->supportedPrefixes))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_NonStandardProtocol(ASN1decoding_t dec, NonStandardProtocol *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_NonStandardProtocol_dataRatesSupported(dec, &(val)->dataRatesSupported))
return 0;
}
if (!ASN1Dec_NonStandardProtocol_supportedPrefixes(dec, &(val)->supportedPrefixes))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_NonStandardProtocol(NonStandardProtocol *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_NonStandardProtocol_dataRatesSupported(&(val)->dataRatesSupported);
}
ASN1Free_NonStandardProtocol_supportedPrefixes(&(val)->supportedPrefixes);
}
}
static int ASN1CALL ASN1Enc_McuInfo(ASN1encoding_t enc, McuInfo *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_McuInfo(ASN1decoding_t dec, McuInfo *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_McuInfo(McuInfo *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
}
}
static int ASN1CALL ASN1Enc_TerminalInfo(ASN1encoding_t enc, TerminalInfo *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_TerminalInfo(ASN1decoding_t dec, TerminalInfo *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_TerminalInfo(TerminalInfo *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
}
}
static int ASN1CALL ASN1Enc_GatekeeperInfo(ASN1encoding_t enc, GatekeeperInfo *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperInfo(ASN1decoding_t dec, GatekeeperInfo *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperInfo(GatekeeperInfo *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
}
}
static ASN1stringtableentry_t PartyNumber_dataPartyNumber_StringTableEntries[] = {
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
{ 48, 57, 3 },
};
static ASN1stringtable_t PartyNumber_dataPartyNumber_StringTable = {
4, PartyNumber_dataPartyNumber_StringTableEntries
};
static ASN1stringtableentry_t PartyNumber_telexPartyNumber_StringTableEntries[] = {
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
{ 48, 57, 3 },
};
static ASN1stringtable_t PartyNumber_telexPartyNumber_StringTable = {
4, PartyNumber_telexPartyNumber_StringTableEntries
};
static ASN1stringtableentry_t PartyNumber_nationalStandardPartyNumber_StringTableEntries[] = {
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
{ 48, 57, 3 },
};
static ASN1stringtable_t PartyNumber_nationalStandardPartyNumber_StringTable = {
4, PartyNumber_nationalStandardPartyNumber_StringTableEntries
};
static int ASN1CALL ASN1Enc_PartyNumber(ASN1encoding_t enc, PartyNumber *val)
{
ASN1uint32_t t;
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_PublicPartyNumber(enc, &(val)->u.publicNumber))
return 0;
break;
case 2:
t = lstrlenA((val)->u.dataPartyNumber);
if (!ASN1PEREncBitVal(enc, 7, t - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncTableCharString(enc, t, (val)->u.dataPartyNumber, 4, &PartyNumber_dataPartyNumber_StringTable))
return 0;
break;
case 3:
t = lstrlenA((val)->u.telexPartyNumber);
if (!ASN1PEREncBitVal(enc, 7, t - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncTableCharString(enc, t, (val)->u.telexPartyNumber, 4, &PartyNumber_telexPartyNumber_StringTable))
return 0;
break;
case 4:
if (!ASN1Enc_PrivatePartyNumber(enc, &(val)->u.privateNumber))
return 0;
break;
case 5:
t = lstrlenA((val)->u.nationalStandardPartyNumber);
if (!ASN1PEREncBitVal(enc, 7, t - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncTableCharString(enc, t, (val)->u.nationalStandardPartyNumber, 4, &PartyNumber_nationalStandardPartyNumber_StringTable))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_PartyNumber(ASN1decoding_t dec, PartyNumber *val)
{
ASN1uint32_t l;
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_PublicPartyNumber(dec, &(val)->u.publicNumber))
return 0;
break;
case 2:
if (!ASN1PERDecU32Val(dec, 7, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.dataPartyNumber, 4, &PartyNumber_dataPartyNumber_StringTable))
return 0;
break;
case 3:
if (!ASN1PERDecU32Val(dec, 7, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.telexPartyNumber, 4, &PartyNumber_telexPartyNumber_StringTable))
return 0;
break;
case 4:
if (!ASN1Dec_PrivatePartyNumber(dec, &(val)->u.privateNumber))
return 0;
break;
case 5:
if (!ASN1PERDecU32Val(dec, 7, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.nationalStandardPartyNumber, 4, &PartyNumber_nationalStandardPartyNumber_StringTable))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_PartyNumber(PartyNumber *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_PublicPartyNumber(&(val)->u.publicNumber);
break;
case 2:
break;
case 3:
break;
case 4:
ASN1Free_PrivatePartyNumber(&(val)->u.privateNumber);
break;
case 5:
break;
}
}
}
static int ASN1CALL ASN1Enc_AlternateGK(ASN1encoding_t enc, AlternateGK *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1PEREncBoolean(enc, (val)->needToRegister))
return 0;
if (!ASN1PEREncBitVal(enc, 7, (val)->priority))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AlternateGK(ASN1decoding_t dec, AlternateGK *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1PERDecBoolean(dec, &(val)->needToRegister))
return 0;
if (!ASN1PERDecU16Val(dec, 7, &(val)->priority))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_AlternateGK(AlternateGK *val)
{
if (val) {
ASN1Free_TransportAddress(&(val)->rasAddress);
if ((val)->o[0] & 0x80) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
}
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm(ASN1encoding_t enc, GatekeeperConfirm *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 7, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ee, &(val)->alternateGatekeeper))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_AuthenticationMechanism(ee, &(val)->authenticationMode))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_GatekeeperConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_GatekeeperConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x8) {
if (!ASN1PEREncObjectIdentifier(ee, &(val)->algorithmOID))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x4) {
if (!ASN1Enc_GatekeeperConfirm_integrity(ee, &(val)->integrity))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x2) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm(ASN1decoding_t dec, GatekeeperConfirm *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperConfirm_alternateGatekeeper(dd, &(val)->alternateGatekeeper))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AuthenticationMechanism(dd, &(val)->authenticationMode))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecObjectIdentifier(dd, &(val)->algorithmOID))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperConfirm_integrity(dd, &(val)->integrity))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperConfirm(GatekeeperConfirm *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
ASN1Free_TransportAddress(&(val)->rasAddress);
if ((val)->o[1] & 0x80) {
ASN1Free_GatekeeperConfirm_alternateGatekeeper(&(val)->alternateGatekeeper);
}
if ((val)->o[1] & 0x40) {
ASN1Free_AuthenticationMechanism(&(val)->authenticationMode);
}
if ((val)->o[1] & 0x20) {
ASN1Free_GatekeeperConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_GatekeeperConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1objectidentifier_free(&(val)->algorithmOID);
}
if ((val)->o[1] & 0x4) {
ASN1Free_GatekeeperConfirm_integrity(&(val)->integrity);
}
if ((val)->o[1] & 0x2) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest(ASN1encoding_t enc, AdmissionRequest *val)
{
ASN1octet_t o[3];
ASN1uint32_t y;
ASN1uint32_t l;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 3);
o[1] |= 0x80;
o[1] |= 0x40;
o[2] |= 0x40;
y = ASN1PEREncCheckExtensions(10, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 7, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_CallType(enc, &(val)->callType))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_CallModel(enc, &(val)->callModel))
return 0;
}
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (o[0] & 0x40) {
if (!ASN1Enc_AdmissionRequest_destinationInfo(enc, &(val)->destinationInfo))
return 0;
}
if (o[0] & 0x20) {
if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
return 0;
}
if (o[0] & 0x10) {
if (!ASN1Enc_AdmissionRequest_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
return 0;
}
if (!ASN1Enc_AdmissionRequest_srcInfo(enc, &(val)->srcInfo))
return 0;
if (o[0] & 0x8) {
if (!ASN1Enc_TransportAddress(enc, &(val)->srcCallSignalAddress))
return 0;
}
l = ASN1uint32_uoctets((val)->bandWidth);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
return 0;
if (o[0] & 0x4) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (o[0] & 0x2) {
if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
return 0;
}
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->activeMC))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->answerCall))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 10, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1PEREncBoolean(ee, (val)->canMapAlias))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_AdmissionRequest_srcAlternatives(ee, &(val)->srcAlternatives))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_AdmissionRequest_destAlternatives(ee, &(val)->destAlternatives))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1Enc_AdmissionRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x2) {
if (!ASN1Enc_AdmissionRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x1) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[2] & 0x80) {
if (!ASN1Enc_TransportQOS(ee, &(val)->transportQOS))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[2] & 0x40) {
if (!ASN1PEREncBoolean(ee, (val)->willSupplyUUIEs))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest(ASN1decoding_t dec, AdmissionRequest *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 7, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_CallType(dec, &(val)->callType))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_CallModel(dec, &(val)->callModel))
return 0;
}
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_AdmissionRequest_destinationInfo(dec, &(val)->destinationInfo))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_AdmissionRequest_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
return 0;
}
if (!ASN1Dec_AdmissionRequest_srcInfo(dec, &(val)->srcInfo))
return 0;
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_TransportAddress(dec, &(val)->srcCallSignalAddress))
return 0;
}
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
return 0;
if ((val)->o[0] & 0x4) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x2) {
if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
return 0;
}
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->activeMC))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->answerCall))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 2);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 10, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->canMapAlias))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionRequest_srcAlternatives(dd, &(val)->srcAlternatives))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionRequest_destAlternatives(dd, &(val)->destAlternatives))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x1) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[2] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_TransportQOS(dd, &(val)->transportQOS))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[2] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->willSupplyUUIEs))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest(AdmissionRequest *val)
{
if (val) {
ASN1char16string_free(&(val)->endpointIdentifier);
if ((val)->o[0] & 0x40) {
ASN1Free_AdmissionRequest_destinationInfo(&(val)->destinationInfo);
}
if ((val)->o[0] & 0x20) {
ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
}
if ((val)->o[0] & 0x10) {
ASN1Free_AdmissionRequest_destExtraCallInfo(&(val)->destExtraCallInfo);
}
ASN1Free_AdmissionRequest_srcInfo(&(val)->srcInfo);
if ((val)->o[0] & 0x8) {
ASN1Free_TransportAddress(&(val)->srcCallSignalAddress);
}
if ((val)->o[0] & 0x4) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x40) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x20) {
ASN1Free_AdmissionRequest_srcAlternatives(&(val)->srcAlternatives);
}
if ((val)->o[1] & 0x10) {
ASN1Free_AdmissionRequest_destAlternatives(&(val)->destAlternatives);
}
if ((val)->o[1] & 0x8) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x4) {
ASN1Free_AdmissionRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x2) {
ASN1Free_AdmissionRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x1) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_LocationRequest(ASN1encoding_t enc, LocationRequest *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(6, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (o[0] & 0x80) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
}
if (!ASN1Enc_LocationRequest_destinationInfo(enc, &(val)->destinationInfo))
return 0;
if (o[0] & 0x40) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1Enc_TransportAddress(enc, &(val)->replyAddress))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 6, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_LocationRequest_sourceInfo(ee, &(val)->sourceInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1PEREncBoolean(ee, (val)->canMapAlias))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1PEREncBitVal(ee, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncChar16String(ee, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_LocationRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_LocationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_LocationRequest(ASN1decoding_t dec, LocationRequest *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
}
if (!ASN1Dec_LocationRequest_destinationInfo(dec, &(val)->destinationInfo))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1Dec_TransportAddress(dec, &(val)->replyAddress))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 6, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationRequest_sourceInfo(dd, &(val)->sourceInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->canMapAlias))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecChar16String(dd, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_LocationRequest(LocationRequest *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1char16string_free(&(val)->endpointIdentifier);
}
ASN1Free_LocationRequest_destinationInfo(&(val)->destinationInfo);
if ((val)->o[0] & 0x40) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_TransportAddress(&(val)->replyAddress);
if ((val)->o[1] & 0x80) {
ASN1Free_LocationRequest_sourceInfo(&(val)->sourceInfo);
}
if ((val)->o[1] & 0x20) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[1] & 0x10) {
ASN1Free_LocationRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_LocationRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x4) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequest(ASN1encoding_t enc, InfoRequest *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (o[0] & 0x40) {
if (!ASN1Enc_TransportAddress(enc, &(val)->replyAddress))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_InfoRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_InfoRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_UUIEsRequested(ee, &(val)->uuiesRequested))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequest(ASN1decoding_t dec, InfoRequest *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_TransportAddress(dec, &(val)->replyAddress))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UUIEsRequested(dd, &(val)->uuiesRequested))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_InfoRequest(InfoRequest *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_TransportAddress(&(val)->replyAddress);
}
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1Free_InfoRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_InfoRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_TransportChannelInfo(ASN1encoding_t enc, TransportChannelInfo *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->sendAddress))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_TransportAddress(enc, &(val)->recvAddress))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_TransportChannelInfo(ASN1decoding_t dec, TransportChannelInfo *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->sendAddress))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_TransportAddress(dec, &(val)->recvAddress))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_TransportChannelInfo(TransportChannelInfo *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->sendAddress);
}
if ((val)->o[0] & 0x40) {
ASN1Free_TransportAddress(&(val)->recvAddress);
}
}
}
static int ASN1CALL ASN1Enc_RTPSession(ASN1encoding_t enc, RTPSession *val)
{
ASN1uint32_t t;
ASN1uint32_t l;
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1Enc_TransportChannelInfo(enc, &(val)->rtpAddress))
return 0;
if (!ASN1Enc_TransportChannelInfo(enc, &(val)->rtcpAddress))
return 0;
t = lstrlenA((val)->cname);
if (!ASN1PEREncFragmentedCharString(enc, t, (val)->cname, 8))
return 0;
l = ASN1uint32_uoctets((val)->ssrc - 1);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->ssrc - 1))
return 0;
if (!ASN1PEREncBitVal(enc, 8, (val)->sessionId - 1))
return 0;
if (!ASN1Enc_RTPSession_associatedSessionIds(enc, &(val)->associatedSessionIds))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RTPSession(ASN1decoding_t dec, RTPSession *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1Dec_TransportChannelInfo(dec, &(val)->rtpAddress))
return 0;
if (!ASN1Dec_TransportChannelInfo(dec, &(val)->rtcpAddress))
return 0;
if (!ASN1PERDecFragmentedZeroCharString(dec, &(val)->cname, 8))
return 0;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->ssrc))
return 0;
(val)->ssrc += 1;
if (!ASN1PERDecU16Val(dec, 8, &(val)->sessionId))
return 0;
(val)->sessionId += 1;
if (!ASN1Dec_RTPSession_associatedSessionIds(dec, &(val)->associatedSessionIds))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_RTPSession(RTPSession *val)
{
if (val) {
ASN1Free_TransportChannelInfo(&(val)->rtpAddress);
ASN1Free_TransportChannelInfo(&(val)->rtcpAddress);
ASN1ztcharstring_free((val)->cname);
ASN1Free_RTPSession_associatedSessionIds(&(val)->associatedSessionIds);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_data val)
{
if (!ASN1Enc_TransportChannelInfo(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_data val)
{
if (!ASN1Dec_TransportChannelInfo(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(PInfoRequestResponse_perCallInfo_Seq_data *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_data_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_data_ElmFn(PInfoRequestResponse_perCallInfo_Seq_data val)
{
if (val) {
ASN1Free_TransportChannelInfo(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_video val)
{
if (!ASN1Enc_RTPSession(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_video val)
{
if (!ASN1Dec_RTPSession(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(PInfoRequestResponse_perCallInfo_Seq_video *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_video_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_video_ElmFn(PInfoRequestResponse_perCallInfo_Seq_video val)
{
if (val) {
ASN1Free_RTPSession(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_audio val)
{
if (!ASN1Enc_RTPSession(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_audio val)
{
if (!ASN1Dec_RTPSession(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(PInfoRequestResponse_perCallInfo_Seq_audio *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio_ElmFn(PInfoRequestResponse_perCallInfo_Seq_audio val)
{
if (val) {
ASN1Free_RTPSession(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1uint32_t l;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
o[1] |= 0x10;
y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 5, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1PEREncUnsignedShort(enc, (val)->callReferenceValue))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (o[0] & 0x40) {
if (!ASN1PEREncBoolean(enc, (val)->originator))
return 0;
}
if (o[0] & 0x20) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_audio(enc, &(val)->audio))
return 0;
}
if (o[0] & 0x10) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_video(enc, &(val)->video))
return 0;
}
if (o[0] & 0x8) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_data(enc, &(val)->data))
return 0;
}
if (!ASN1Enc_TransportChannelInfo(enc, &(val)->h245))
return 0;
if (!ASN1Enc_TransportChannelInfo(enc, &(val)->callSignaling))
return 0;
if (!ASN1Enc_CallType(enc, &(val)->callType))
return 0;
l = ASN1uint32_uoctets((val)->bandWidth);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
return 0;
if (!ASN1Enc_CallModel(enc, &(val)->callModel))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(ee, &(val)->substituteConfIDs))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ee, &(val)->pdu))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 5, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1PERDecUnsignedShort(dec, &(val)->callReferenceValue))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecBoolean(dec, &(val)->originator))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_audio(dec, &(val)->audio))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_video(dec, &(val)->video))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_data(dec, &(val)->data))
return 0;
}
if (!ASN1Dec_TransportChannelInfo(dec, &(val)->h245))
return 0;
if (!ASN1Dec_TransportChannelInfo(dec, &(val)->callSignaling))
return 0;
if (!ASN1Dec_CallType(dec, &(val)->callType))
return 0;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
return 0;
if (!ASN1Dec_CallModel(dec, &(val)->callModel))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(dd, &(val)->substituteConfIDs))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(dd, &(val)->pdu))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq(InfoRequestResponse_perCallInfo_Seq *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x20) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_audio(&(val)->audio);
}
if ((val)->o[0] & 0x10) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_video(&(val)->video);
}
if ((val)->o[0] & 0x8) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_data(&(val)->data);
}
ASN1Free_TransportChannelInfo(&(val)->h245);
ASN1Free_TransportChannelInfo(&(val)->callSignaling);
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_substituteConfIDs(&(val)->substituteConfIDs);
}
if ((val)->o[1] & 0x8) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(&(val)->pdu);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo val)
{
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo val)
{
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo(PInfoRequestResponse_perCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_ElmFn(PInfoRequestResponse_perCallInfo val)
{
if (val) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_callSignalAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_callSignalAddress_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_callSignalAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_callSignalAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_callSignalAddress_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_callSignalAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress(PInfoRequestResponse_callSignalAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_callSignalAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_callSignalAddress_ElmFn(PInfoRequestResponse_callSignalAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress(ASN1encoding_t enc, PAdmissionReject_callSignalAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_callSignalAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionReject_callSignalAddress_ElmFn(ASN1encoding_t enc, PAdmissionReject_callSignalAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress(ASN1decoding_t dec, PAdmissionReject_callSignalAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_callSignalAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionReject_callSignalAddress_ElmFn(ASN1decoding_t dec, PAdmissionReject_callSignalAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress(PAdmissionReject_callSignalAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_callSignalAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionReject_callSignalAddress_ElmFn(PAdmissionReject_callSignalAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_callSignalAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_callSignalAddress_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_callSignalAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_callSignalAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_callSignalAddress_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_callSignalAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress(PUnregistrationRequest_callSignalAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_callSignalAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationRequest_callSignalAddress_ElmFn(PUnregistrationRequest_callSignalAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_alternateGatekeeper_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_alternateGatekeeper val)
{
if (!ASN1Enc_AlternateGK(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_alternateGatekeeper_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_alternateGatekeeper val)
{
if (!ASN1Dec_AlternateGK(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper(PRegistrationConfirm_alternateGatekeeper *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_alternateGatekeeper_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationConfirm_alternateGatekeeper_ElmFn(PRegistrationConfirm_alternateGatekeeper val)
{
if (val) {
ASN1Free_AlternateGK(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_callSignalAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_callSignalAddress_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_callSignalAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_callSignalAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_callSignalAddress_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_callSignalAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress(PRegistrationConfirm_callSignalAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_callSignalAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationConfirm_callSignalAddress_ElmFn(PRegistrationConfirm_callSignalAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress(ASN1encoding_t enc, PRegistrationRequest_rasAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_rasAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRequest_rasAddress_ElmFn(ASN1encoding_t enc, PRegistrationRequest_rasAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress(ASN1decoding_t dec, PRegistrationRequest_rasAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_rasAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRequest_rasAddress_ElmFn(ASN1decoding_t dec, PRegistrationRequest_rasAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress(PRegistrationRequest_rasAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_rasAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRequest_rasAddress_ElmFn(PRegistrationRequest_rasAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_callSignalAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRequest_callSignalAddress_ElmFn(ASN1encoding_t enc, PRegistrationRequest_callSignalAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_callSignalAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRequest_callSignalAddress_ElmFn(ASN1decoding_t dec, PRegistrationRequest_callSignalAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress(PRegistrationRequest_callSignalAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_callSignalAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRequest_callSignalAddress_ElmFn(PRegistrationRequest_callSignalAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_alternateGatekeeper_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_alternateGatekeeper val)
{
if (!ASN1Enc_AlternateGK(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_alternateGatekeeper_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_alternateGatekeeper val)
{
if (!ASN1Dec_AlternateGK(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper(PGatekeeperConfirm_alternateGatekeeper *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_alternateGatekeeper_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_alternateGatekeeper_ElmFn(PGatekeeperConfirm_alternateGatekeeper val)
{
if (val) {
ASN1Free_AlternateGK(&val->value);
}
}
static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AltGKInfo_alternateGatekeeper_ElmFn);
}
static int ASN1CALL ASN1Enc_AltGKInfo_alternateGatekeeper_ElmFn(ASN1encoding_t enc, PAltGKInfo_alternateGatekeeper val)
{
if (!ASN1Enc_AlternateGK(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AltGKInfo_alternateGatekeeper_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AltGKInfo_alternateGatekeeper_ElmFn(ASN1decoding_t dec, PAltGKInfo_alternateGatekeeper val)
{
if (!ASN1Dec_AlternateGK(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper(PAltGKInfo_alternateGatekeeper *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AltGKInfo_alternateGatekeeper_ElmFn);
}
}
static void ASN1CALL ASN1Free_AltGKInfo_alternateGatekeeper_ElmFn(PAltGKInfo_alternateGatekeeper val)
{
if (val) {
ASN1Free_AlternateGK(&val->value);
}
}
static int ASN1CALL ASN1Enc_Endpoint_rasAddress(ASN1encoding_t enc, PEndpoint_rasAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_rasAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_rasAddress_ElmFn(ASN1encoding_t enc, PEndpoint_rasAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_rasAddress(ASN1decoding_t dec, PEndpoint_rasAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_rasAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_rasAddress_ElmFn(ASN1decoding_t dec, PEndpoint_rasAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_rasAddress(PEndpoint_rasAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_rasAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_rasAddress_ElmFn(PEndpoint_rasAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress(ASN1encoding_t enc, PEndpoint_callSignalAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_callSignalAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_callSignalAddress_ElmFn(ASN1encoding_t enc, PEndpoint_callSignalAddress val)
{
if (!ASN1Enc_TransportAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress(ASN1decoding_t dec, PEndpoint_callSignalAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_callSignalAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_callSignalAddress_ElmFn(ASN1decoding_t dec, PEndpoint_callSignalAddress val)
{
if (!ASN1Dec_TransportAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_callSignalAddress(PEndpoint_callSignalAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_callSignalAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_callSignalAddress_ElmFn(PEndpoint_callSignalAddress val)
{
if (val) {
ASN1Free_TransportAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_EndpointType(ASN1encoding_t enc, EndpointType *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 6, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_VendorIdentifier(enc, &(val)->vendor))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_GatekeeperInfo(enc, &(val)->gatekeeper))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_GatewayInfo(enc, &(val)->gateway))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Enc_McuInfo(enc, &(val)->mcu))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Enc_TerminalInfo(enc, &(val)->terminal))
return 0;
}
if (!ASN1PEREncBoolean(enc, (val)->mc))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->undefinedNode))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_EndpointType(ASN1decoding_t dec, EndpointType *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 6, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_VendorIdentifier(dec, &(val)->vendor))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_GatekeeperInfo(dec, &(val)->gatekeeper))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_GatewayInfo(dec, &(val)->gateway))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_McuInfo(dec, &(val)->mcu))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Dec_TerminalInfo(dec, &(val)->terminal))
return 0;
}
if (!ASN1PERDecBoolean(dec, &(val)->mc))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->undefinedNode))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_EndpointType(EndpointType *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_VendorIdentifier(&(val)->vendor);
}
if ((val)->o[0] & 0x20) {
ASN1Free_GatekeeperInfo(&(val)->gatekeeper);
}
if ((val)->o[0] & 0x10) {
ASN1Free_GatewayInfo(&(val)->gateway);
}
if ((val)->o[0] & 0x8) {
ASN1Free_McuInfo(&(val)->mcu);
}
if ((val)->o[0] & 0x4) {
ASN1Free_TerminalInfo(&(val)->terminal);
}
}
}
static int ASN1CALL ASN1Enc_SupportedProtocols(ASN1encoding_t enc, SupportedProtocols *val)
{
ASN1encoding_t ee;
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 4, 9))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->u.nonStandardData))
return 0;
break;
case 2:
if (!ASN1Enc_H310Caps(enc, &(val)->u.h310))
return 0;
break;
case 3:
if (!ASN1Enc_H320Caps(enc, &(val)->u.h320))
return 0;
break;
case 4:
if (!ASN1Enc_H321Caps(enc, &(val)->u.h321))
return 0;
break;
case 5:
if (!ASN1Enc_H322Caps(enc, &(val)->u.h322))
return 0;
break;
case 6:
if (!ASN1Enc_H323Caps(enc, &(val)->u.h323))
return 0;
break;
case 7:
if (!ASN1Enc_H324Caps(enc, &(val)->u.h324))
return 0;
break;
case 8:
if (!ASN1Enc_VoiceCaps(enc, &(val)->u.voice))
return 0;
break;
case 9:
if (!ASN1Enc_T120OnlyCaps(enc, &(val)->u.t120_only))
return 0;
break;
case 10:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_NonStandardProtocol(ee, &(val)->u.nonStandardProtocol))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_SupportedProtocols(ASN1decoding_t dec, SupportedProtocols *val)
{
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 4, 9))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->u.nonStandardData))
return 0;
break;
case 2:
if (!ASN1Dec_H310Caps(dec, &(val)->u.h310))
return 0;
break;
case 3:
if (!ASN1Dec_H320Caps(dec, &(val)->u.h320))
return 0;
break;
case 4:
if (!ASN1Dec_H321Caps(dec, &(val)->u.h321))
return 0;
break;
case 5:
if (!ASN1Dec_H322Caps(dec, &(val)->u.h322))
return 0;
break;
case 6:
if (!ASN1Dec_H323Caps(dec, &(val)->u.h323))
return 0;
break;
case 7:
if (!ASN1Dec_H324Caps(dec, &(val)->u.h324))
return 0;
break;
case 8:
if (!ASN1Dec_VoiceCaps(dec, &(val)->u.voice))
return 0;
break;
case 9:
if (!ASN1Dec_T120OnlyCaps(dec, &(val)->u.t120_only))
return 0;
break;
case 10:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_NonStandardProtocol(dd, &(val)->u.nonStandardProtocol))
return 0;
ASN1_CloseDecoder(dd);
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_SupportedProtocols(SupportedProtocols *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_H225NonStandardParameter(&(val)->u.nonStandardData);
break;
case 2:
ASN1Free_H310Caps(&(val)->u.h310);
break;
case 3:
ASN1Free_H320Caps(&(val)->u.h320);
break;
case 4:
ASN1Free_H321Caps(&(val)->u.h321);
break;
case 5:
ASN1Free_H322Caps(&(val)->u.h322);
break;
case 6:
ASN1Free_H323Caps(&(val)->u.h323);
break;
case 7:
ASN1Free_H324Caps(&(val)->u.h324);
break;
case 8:
ASN1Free_VoiceCaps(&(val)->u.voice);
break;
case 9:
ASN1Free_T120OnlyCaps(&(val)->u.t120_only);
break;
case 10:
ASN1Free_NonStandardProtocol(&(val)->u.nonStandardProtocol);
break;
}
}
}
static ASN1stringtableentry_t AliasAddress_e164_StringTableEntries[] = {
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
{ 48, 57, 3 },
};
static ASN1stringtable_t AliasAddress_e164_StringTable = {
4, AliasAddress_e164_StringTableEntries
};
static int ASN1CALL ASN1Enc_AliasAddress(ASN1encoding_t enc, AliasAddress *val)
{
ASN1uint32_t t;
ASN1encoding_t ee;
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 1, 2))
return 0;
switch ((val)->choice) {
case 1:
t = lstrlenA((val)->u.e164);
if (!ASN1PEREncBitVal(enc, 7, t - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncTableCharString(enc, t, (val)->u.e164, 4, &AliasAddress_e164_StringTable))
return 0;
break;
case 2:
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, 8, ((val)->u.h323_ID).length - 1))
return 0;
if (!ASN1PEREncChar16String(enc, ((val)->u.h323_ID).length, ((val)->u.h323_ID).value, 16))
return 0;
break;
case 3:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
t = lstrlenA((val)->u.url_ID);
ASN1PEREncAlignment(ee);
if (!ASN1PEREncBitVal(ee, 16, t - 1))
return 0;
if (!ASN1PEREncCharString(ee, t, (val)->u.url_ID, 8))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 4:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_TransportAddress(ee, &(val)->u.transportID))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 5:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
t = lstrlenA((val)->u.email_ID);
ASN1PEREncAlignment(ee);
if (!ASN1PEREncBitVal(ee, 16, t - 1))
return 0;
if (!ASN1PEREncCharString(ee, t, (val)->u.email_ID, 8))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 6:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_PartyNumber(ee, &(val)->u.partyNumber))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_AliasAddress(ASN1decoding_t dec, AliasAddress *val)
{
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 1, 2))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1PERDecU32Val(dec, 7, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.e164, 4, &AliasAddress_e164_StringTable))
return 0;
break;
case 2:
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, 8, &((val)->u.h323_ID).length))
return 0;
((val)->u.h323_ID).length += 1;
if (!ASN1PERDecChar16String(dec, ((val)->u.h323_ID).length, &((val)->u.h323_ID).value, 16))
return 0;
break;
case 3:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecU32Val(dd, 16, &l))
return 0;
l += 1;
if (!ASN1PERDecZeroCharStringNoAlloc(dd, l, (val)->u.url_ID, 8))
return 0;
ASN1_CloseDecoder(dd);
break;
case 4:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_TransportAddress(dd, &(val)->u.transportID))
return 0;
ASN1_CloseDecoder(dd);
break;
case 5:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecU32Val(dd, 16, &l))
return 0;
l += 1;
if (!ASN1PERDecZeroCharStringNoAlloc(dd, l, (val)->u.email_ID, 8))
return 0;
ASN1_CloseDecoder(dd);
break;
case 6:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_PartyNumber(dd, &(val)->u.partyNumber))
return 0;
ASN1_CloseDecoder(dd);
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_AliasAddress(AliasAddress *val)
{
if (val) {
switch ((val)->choice) {
case 1:
break;
case 2:
ASN1char16string_free(&(val)->u.h323_ID);
break;
case 3:
break;
case 4:
ASN1Free_TransportAddress(&(val)->u.transportID);
break;
case 5:
break;
case 6:
ASN1Free_PartyNumber(&(val)->u.partyNumber);
break;
}
}
}
static int ASN1CALL ASN1Enc_Endpoint(ASN1encoding_t enc, Endpoint *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 10, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_Endpoint_aliasAddress(enc, &(val)->aliasAddress))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_Endpoint_callSignalAddress(enc, &(val)->callSignalAddress))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_Endpoint_rasAddress(enc, &(val)->rasAddress))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Enc_Endpoint_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x2) {
if (!ASN1Enc_Endpoint_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x1) {
if (!ASN1PEREncBitVal(enc, 7, (val)->priority))
return 0;
}
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_Endpoint_remoteExtensionAddress(enc, &(val)->remoteExtensionAddress))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_Endpoint_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint(ASN1decoding_t dec, Endpoint *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 10, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_Endpoint_aliasAddress(dec, &(val)->aliasAddress))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_Endpoint_callSignalAddress(dec, &(val)->callSignalAddress))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_Endpoint_rasAddress(dec, &(val)->rasAddress))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Dec_Endpoint_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x2) {
if (!ASN1Dec_Endpoint_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x1) {
if (!ASN1PERDecU16Val(dec, 7, &(val)->priority))
return 0;
}
if ((val)->o[1] & 0x80) {
if (!ASN1Dec_Endpoint_remoteExtensionAddress(dec, &(val)->remoteExtensionAddress))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Dec_Endpoint_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_Endpoint(Endpoint *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[0] & 0x40) {
ASN1Free_Endpoint_aliasAddress(&(val)->aliasAddress);
}
if ((val)->o[0] & 0x20) {
ASN1Free_Endpoint_callSignalAddress(&(val)->callSignalAddress);
}
if ((val)->o[0] & 0x10) {
ASN1Free_Endpoint_rasAddress(&(val)->rasAddress);
}
if ((val)->o[0] & 0x8) {
ASN1Free_EndpointType(&(val)->endpointType);
}
if ((val)->o[0] & 0x4) {
ASN1Free_Endpoint_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x2) {
ASN1Free_Endpoint_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x80) {
ASN1Free_Endpoint_remoteExtensionAddress(&(val)->remoteExtensionAddress);
}
if ((val)->o[1] & 0x40) {
ASN1Free_Endpoint_destExtraCallInfo(&(val)->destExtraCallInfo);
}
}
}
static int ASN1CALL ASN1Enc_SupportedPrefix(ASN1encoding_t enc, SupportedPrefix *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1Enc_AliasAddress(enc, &(val)->prefix))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_SupportedPrefix(ASN1decoding_t dec, SupportedPrefix *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1Dec_AliasAddress(dec, &(val)->prefix))
return 0;
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_SupportedPrefix(SupportedPrefix *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_AliasAddress(&(val)->prefix);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest(ASN1encoding_t enc, GatekeeperRequest *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(7, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 4, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
return 0;
if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_GatekeeperRequest_endpointAlias(enc, &(val)->endpointAlias))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 7, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_GatekeeperRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_GatekeeperRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_GatekeeperRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_GatekeeperRequest_authenticationCapability(ee, &(val)->authenticationCapability))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x8) {
if (!ASN1Enc_GatekeeperRequest_algorithmOIDs(ee, &(val)->algorithmOIDs))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x4) {
if (!ASN1Enc_GatekeeperRequest_integrity(ee, &(val)->integrity))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x2) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest(ASN1decoding_t dec, GatekeeperRequest *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 4, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
return 0;
if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_GatekeeperRequest_endpointAlias(dec, &(val)->endpointAlias))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 7, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperRequest_authenticationCapability(dd, &(val)->authenticationCapability))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperRequest_algorithmOIDs(dd, &(val)->algorithmOIDs))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_GatekeeperRequest_integrity(dd, &(val)->integrity))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest(GatekeeperRequest *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_TransportAddress(&(val)->rasAddress);
ASN1Free_EndpointType(&(val)->endpointType);
if ((val)->o[0] & 0x40) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
if ((val)->o[0] & 0x10) {
ASN1Free_GatekeeperRequest_endpointAlias(&(val)->endpointAlias);
}
if ((val)->o[1] & 0x80) {
ASN1Free_GatekeeperRequest_alternateEndpoints(&(val)->alternateEndpoints);
}
if ((val)->o[1] & 0x40) {
ASN1Free_GatekeeperRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_GatekeeperRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_GatekeeperRequest_authenticationCapability(&(val)->authenticationCapability);
}
if ((val)->o[1] & 0x8) {
ASN1Free_GatekeeperRequest_algorithmOIDs(&(val)->algorithmOIDs);
}
if ((val)->o[1] & 0x4) {
ASN1Free_GatekeeperRequest_integrity(&(val)->integrity);
}
if ((val)->o[1] & 0x2) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest(ASN1encoding_t enc, RegistrationRequest *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
ASN1uint32_t l;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x4;
o[1] |= 0x1;
y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 3, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1PEREncBoolean(enc, (val)->discoveryComplete))
return 0;
if (!ASN1Enc_RegistrationRequest_callSignalAddress(enc, &(val)->callSignalAddress))
return 0;
if (!ASN1Enc_RegistrationRequest_rasAddress(enc, &(val)->rasAddress))
return 0;
if (!ASN1Enc_EndpointType(enc, &(val)->terminalType))
return 0;
if (o[0] & 0x40) {
if (!ASN1Enc_RegistrationRequest_terminalAlias(enc, &(val)->terminalAlias))
return 0;
}
if (o[0] & 0x20) {
if (!ASN1PEREncBitVal(enc, 7, ((val)->gatekeeperIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->gatekeeperIdentifier).length, ((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1Enc_VendorIdentifier(enc, &(val)->endpointVendor))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_RegistrationRequest_alternateEndpoints(ee, &(val)->alternateEndpoints))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
l = ASN1uint32_uoctets((val)->timeToLive - 1);
if (!ASN1PEREncBitVal(ee, 2, l - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncBitVal(ee, l * 8, (val)->timeToLive - 1))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_RegistrationRequest_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_RegistrationRequest_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1PEREncBoolean(ee, (val)->keepAlive))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x2) {
if (!ASN1PEREncBitVal(ee, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(ee);
if (!ASN1PEREncChar16String(ee, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x1) {
if (!ASN1PEREncBoolean(ee, (val)->willSupplyUUIEs))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest(ASN1decoding_t dec, RegistrationRequest *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t l;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 3, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1PERDecBoolean(dec, &(val)->discoveryComplete))
return 0;
if (!ASN1Dec_RegistrationRequest_callSignalAddress(dec, &(val)->callSignalAddress))
return 0;
if (!ASN1Dec_RegistrationRequest_rasAddress(dec, &(val)->rasAddress))
return 0;
if (!ASN1Dec_EndpointType(dec, &(val)->terminalType))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_RegistrationRequest_terminalAlias(dec, &(val)->terminalAlias))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1PERDecU32Val(dec, 7, &((val)->gatekeeperIdentifier).length))
return 0;
((val)->gatekeeperIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->gatekeeperIdentifier).length, &((val)->gatekeeperIdentifier).value, 16))
return 0;
}
if (!ASN1Dec_VendorIdentifier(dec, &(val)->endpointVendor))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationRequest_alternateEndpoints(dd, &(val)->alternateEndpoints))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecU32Val(dd, l * 8, &(val)->timeToLive))
return 0;
(val)->timeToLive += 1;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationRequest_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RegistrationRequest_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->keepAlive))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecU32Val(dd, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dd);
if (!ASN1PERDecChar16String(dd, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x1) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->willSupplyUUIEs))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest(RegistrationRequest *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_RegistrationRequest_callSignalAddress(&(val)->callSignalAddress);
ASN1Free_RegistrationRequest_rasAddress(&(val)->rasAddress);
ASN1Free_EndpointType(&(val)->terminalType);
if ((val)->o[0] & 0x40) {
ASN1Free_RegistrationRequest_terminalAlias(&(val)->terminalAlias);
}
if ((val)->o[0] & 0x20) {
ASN1char16string_free(&(val)->gatekeeperIdentifier);
}
ASN1Free_VendorIdentifier(&(val)->endpointVendor);
if ((val)->o[1] & 0x80) {
ASN1Free_RegistrationRequest_alternateEndpoints(&(val)->alternateEndpoints);
}
if ((val)->o[1] & 0x20) {
ASN1Free_RegistrationRequest_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_RegistrationRequest_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
if ((val)->o[1] & 0x2) {
ASN1char16string_free(&(val)->endpointIdentifier);
}
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm(ASN1encoding_t enc, AdmissionConfirm *val)
{
ASN1octet_t o[3];
ASN1uint32_t y;
ASN1uint32_t l;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 3);
o[2] |= 0x40;
o[2] |= 0x20;
y = ASN1PEREncCheckExtensions(11, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 2, o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
l = ASN1uint32_uoctets((val)->bandWidth);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->bandWidth))
return 0;
if (!ASN1Enc_CallModel(enc, &(val)->callModel))
return 0;
if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
return 0;
if (o[0] & 0x80) {
if (!ASN1PEREncUnsignedShort(enc, (val)->irrFrequency - 1))
return 0;
}
if (o[0] & 0x40) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 11, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_AdmissionConfirm_destinationInfo(ee, &(val)->destinationInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_AdmissionConfirm_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_EndpointType(ee, &(val)->destinationType))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ee, &(val)->remoteExtensionAddress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_AdmissionConfirm_alternateEndpoints(ee, &(val)->alternateEndpoints))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1Enc_AdmissionConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x2) {
if (!ASN1Enc_AdmissionConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x1) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[2] & 0x80) {
if (!ASN1Enc_TransportQOS(ee, &(val)->transportQOS))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[2] & 0x40) {
if (!ASN1PEREncBoolean(ee, (val)->willRespondToIRR))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[2] & 0x20) {
if (!ASN1Enc_UUIEsRequested(ee, &(val)->uuiesRequested))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm(ASN1decoding_t dec, AdmissionConfirm *val)
{
ASN1uint32_t y;
ASN1uint32_t l;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 2, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->bandWidth))
return 0;
if (!ASN1Dec_CallModel(dec, &(val)->callModel))
return 0;
if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecUnsignedShort(dec, &(val)->irrFrequency))
return 0;
(val)->irrFrequency += 1;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 2);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 11, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionConfirm_destinationInfo(dd, &(val)->destinationInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionConfirm_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_EndpointType(dd, &(val)->destinationType))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionConfirm_remoteExtensionAddress(dd, &(val)->remoteExtensionAddress))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionConfirm_alternateEndpoints(dd, &(val)->alternateEndpoints))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AdmissionConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x1) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[2] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_TransportQOS(dd, &(val)->transportQOS))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[2] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->willRespondToIRR))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[2] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_UUIEsRequested(dd, &(val)->uuiesRequested))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm(AdmissionConfirm *val)
{
if (val) {
ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
if ((val)->o[0] & 0x40) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_AdmissionConfirm_destinationInfo(&(val)->destinationInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_AdmissionConfirm_destExtraCallInfo(&(val)->destExtraCallInfo);
}
if ((val)->o[1] & 0x20) {
ASN1Free_EndpointType(&(val)->destinationType);
}
if ((val)->o[1] & 0x10) {
ASN1Free_AdmissionConfirm_remoteExtensionAddress(&(val)->remoteExtensionAddress);
}
if ((val)->o[1] & 0x8) {
ASN1Free_AdmissionConfirm_alternateEndpoints(&(val)->alternateEndpoints);
}
if ((val)->o[1] & 0x4) {
ASN1Free_AdmissionConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x2) {
ASN1Free_AdmissionConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x1) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_LocationConfirm(ASN1encoding_t enc, LocationConfirm *val)
{
ASN1uint32_t y;
ASN1encoding_t ee;
y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_TransportAddress(enc, &(val)->callSignalAddress))
return 0;
if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 8, (val)->o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1Enc_LocationConfirm_destinationInfo(ee, &(val)->destinationInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x40) {
if (!ASN1Enc_LocationConfirm_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x20) {
if (!ASN1Enc_EndpointType(ee, &(val)->destinationType))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x10) {
if (!ASN1Enc_LocationConfirm_remoteExtensionAddress(ee, &(val)->remoteExtensionAddress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x8) {
if (!ASN1Enc_LocationConfirm_alternateEndpoints(ee, &(val)->alternateEndpoints))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x4) {
if (!ASN1Enc_LocationConfirm_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x2) {
if (!ASN1Enc_LocationConfirm_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if ((val)->o[1] & 0x1) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm(ASN1decoding_t dec, LocationConfirm *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_TransportAddress(dec, &(val)->callSignalAddress))
return 0;
if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationConfirm_destinationInfo(dd, &(val)->destinationInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationConfirm_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_EndpointType(dd, &(val)->destinationType))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationConfirm_remoteExtensionAddress(dd, &(val)->remoteExtensionAddress))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationConfirm_alternateEndpoints(dd, &(val)->alternateEndpoints))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationConfirm_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_LocationConfirm_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x1) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm(LocationConfirm *val)
{
if (val) {
ASN1Free_TransportAddress(&(val)->callSignalAddress);
ASN1Free_TransportAddress(&(val)->rasAddress);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_LocationConfirm_destinationInfo(&(val)->destinationInfo);
}
if ((val)->o[1] & 0x40) {
ASN1Free_LocationConfirm_destExtraCallInfo(&(val)->destExtraCallInfo);
}
if ((val)->o[1] & 0x20) {
ASN1Free_EndpointType(&(val)->destinationType);
}
if ((val)->o[1] & 0x10) {
ASN1Free_LocationConfirm_remoteExtensionAddress(&(val)->remoteExtensionAddress);
}
if ((val)->o[1] & 0x8) {
ASN1Free_LocationConfirm_alternateEndpoints(&(val)->alternateEndpoints);
}
if ((val)->o[1] & 0x4) {
ASN1Free_LocationConfirm_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x2) {
ASN1Free_LocationConfirm_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x1) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse(ASN1encoding_t enc, InfoRequestResponse *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x10;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 3, o))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (!ASN1PEREncUnsignedShort(enc, (val)->requestSeqNum - 1))
return 0;
if (!ASN1Enc_EndpointType(enc, &(val)->endpointType))
return 0;
if (!ASN1PEREncBitVal(enc, 7, ((val)->endpointIdentifier).length - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncChar16String(enc, ((val)->endpointIdentifier).length, ((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1Enc_TransportAddress(enc, &(val)->rasAddress))
return 0;
if (!ASN1Enc_InfoRequestResponse_callSignalAddress(enc, &(val)->callSignalAddress))
return 0;
if (o[0] & 0x40) {
if (!ASN1Enc_InfoRequestResponse_endpointAlias(enc, &(val)->endpointAlias))
return 0;
}
if (o[0] & 0x20) {
if (!ASN1Enc_InfoRequestResponse_perCallInfo(enc, &(val)->perCallInfo))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_InfoRequestResponse_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_InfoRequestResponse_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_ICV(ee, &(val)->integrityCheckValue))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1PEREncBoolean(ee, (val)->needResponse))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse(ASN1decoding_t dec, InfoRequestResponse *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 3, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!ASN1PERDecUnsignedShort(dec, &(val)->requestSeqNum))
return 0;
(val)->requestSeqNum += 1;
if (!ASN1Dec_EndpointType(dec, &(val)->endpointType))
return 0;
if (!ASN1PERDecU32Val(dec, 7, &((val)->endpointIdentifier).length))
return 0;
((val)->endpointIdentifier).length += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecChar16String(dec, ((val)->endpointIdentifier).length, &((val)->endpointIdentifier).value, 16))
return 0;
if (!ASN1Dec_TransportAddress(dec, &(val)->rasAddress))
return 0;
if (!ASN1Dec_InfoRequestResponse_callSignalAddress(dec, &(val)->callSignalAddress))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_InfoRequestResponse_endpointAlias(dec, &(val)->endpointAlias))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_InfoRequestResponse_perCallInfo(dec, &(val)->perCallInfo))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestResponse_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestResponse_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ICV(dd, &(val)->integrityCheckValue))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->needResponse))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse(InfoRequestResponse *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
ASN1Free_EndpointType(&(val)->endpointType);
ASN1char16string_free(&(val)->endpointIdentifier);
ASN1Free_TransportAddress(&(val)->rasAddress);
ASN1Free_InfoRequestResponse_callSignalAddress(&(val)->callSignalAddress);
if ((val)->o[0] & 0x40) {
ASN1Free_InfoRequestResponse_endpointAlias(&(val)->endpointAlias);
}
if ((val)->o[0] & 0x20) {
ASN1Free_InfoRequestResponse_perCallInfo(&(val)->perCallInfo);
}
if ((val)->o[1] & 0x80) {
ASN1Free_InfoRequestResponse_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x40) {
ASN1Free_InfoRequestResponse_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x20) {
ASN1Free_ICV(&(val)->integrityCheckValue);
}
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_protocols_ElmFn);
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_protocols_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_protocols val)
{
if (!ASN1Enc_SupportedProtocols(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_protocols_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_protocols_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_protocols val)
{
if (!ASN1Dec_SupportedProtocols(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols(PResourcesAvailableIndicate_protocols *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_protocols_ElmFn);
}
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_protocols_ElmFn(PResourcesAvailableIndicate_protocols val)
{
if (val) {
ASN1Free_SupportedProtocols(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_endpointAlias_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_endpointAlias_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_endpointAlias val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_endpointAlias_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_endpointAlias_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_endpointAlias val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias(PInfoRequestResponse_endpointAlias *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_endpointAlias_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_endpointAlias_ElmFn(PInfoRequestResponse_endpointAlias val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_alternateEndpoints_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationConfirm_alternateEndpoints_ElmFn(ASN1encoding_t enc, PLocationConfirm_alternateEndpoints val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_alternateEndpoints_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationConfirm_alternateEndpoints_ElmFn(ASN1decoding_t dec, PLocationConfirm_alternateEndpoints val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints(PLocationConfirm_alternateEndpoints *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_alternateEndpoints_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationConfirm_alternateEndpoints_ElmFn(PLocationConfirm_alternateEndpoints val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_remoteExtensionAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationConfirm_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PLocationConfirm_remoteExtensionAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_remoteExtensionAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationConfirm_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PLocationConfirm_remoteExtensionAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress(PLocationConfirm_remoteExtensionAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_remoteExtensionAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationConfirm_remoteExtensionAddress_ElmFn(PLocationConfirm_remoteExtensionAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_destExtraCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationConfirm_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PLocationConfirm_destExtraCallInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_destExtraCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationConfirm_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PLocationConfirm_destExtraCallInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo(PLocationConfirm_destExtraCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_destExtraCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationConfirm_destExtraCallInfo_ElmFn(PLocationConfirm_destExtraCallInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo(ASN1encoding_t enc, PLocationConfirm_destinationInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_destinationInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationConfirm_destinationInfo_ElmFn(ASN1encoding_t enc, PLocationConfirm_destinationInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo(ASN1decoding_t dec, PLocationConfirm_destinationInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_destinationInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationConfirm_destinationInfo_ElmFn(ASN1decoding_t dec, PLocationConfirm_destinationInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo(PLocationConfirm_destinationInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_destinationInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationConfirm_destinationInfo_ElmFn(PLocationConfirm_destinationInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo(ASN1encoding_t enc, PLocationRequest_sourceInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_sourceInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationRequest_sourceInfo_ElmFn(ASN1encoding_t enc, PLocationRequest_sourceInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo(ASN1decoding_t dec, PLocationRequest_sourceInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_sourceInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationRequest_sourceInfo_ElmFn(ASN1decoding_t dec, PLocationRequest_sourceInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationRequest_sourceInfo(PLocationRequest_sourceInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_sourceInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationRequest_sourceInfo_ElmFn(PLocationRequest_sourceInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo(ASN1encoding_t enc, PLocationRequest_destinationInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_destinationInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationRequest_destinationInfo_ElmFn(ASN1encoding_t enc, PLocationRequest_destinationInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo(ASN1decoding_t dec, PLocationRequest_destinationInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_destinationInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationRequest_destinationInfo_ElmFn(ASN1decoding_t dec, PLocationRequest_destinationInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationRequest_destinationInfo(PLocationRequest_destinationInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_destinationInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationRequest_destinationInfo_ElmFn(PLocationRequest_destinationInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_alternateEndpoints_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_alternateEndpoints_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_alternateEndpoints val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_alternateEndpoints_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_alternateEndpoints_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_alternateEndpoints val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints(PAdmissionConfirm_alternateEndpoints *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_alternateEndpoints_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionConfirm_alternateEndpoints_ElmFn(PAdmissionConfirm_alternateEndpoints val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_remoteExtensionAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_remoteExtensionAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_remoteExtensionAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_remoteExtensionAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress(PAdmissionConfirm_remoteExtensionAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_remoteExtensionAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionConfirm_remoteExtensionAddress_ElmFn(PAdmissionConfirm_remoteExtensionAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_destExtraCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_destExtraCallInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_destExtraCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_destExtraCallInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo(PAdmissionConfirm_destExtraCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_destExtraCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionConfirm_destExtraCallInfo_ElmFn(PAdmissionConfirm_destExtraCallInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_destinationInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_destinationInfo_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_destinationInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_destinationInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_destinationInfo_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_destinationInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo(PAdmissionConfirm_destinationInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_destinationInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionConfirm_destinationInfo_ElmFn(PAdmissionConfirm_destinationInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives(ASN1encoding_t enc, PAdmissionRequest_destAlternatives *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destAlternatives_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_destAlternatives_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destAlternatives val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives(ASN1decoding_t dec, PAdmissionRequest_destAlternatives *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destAlternatives_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_destAlternatives_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destAlternatives val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives(PAdmissionRequest_destAlternatives *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destAlternatives_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_destAlternatives_ElmFn(PAdmissionRequest_destAlternatives val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_srcAlternatives_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_srcAlternatives_ElmFn(ASN1encoding_t enc, PAdmissionRequest_srcAlternatives val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_srcAlternatives_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_srcAlternatives_ElmFn(ASN1decoding_t dec, PAdmissionRequest_srcAlternatives val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives(PAdmissionRequest_srcAlternatives *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_srcAlternatives_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_srcAlternatives_ElmFn(PAdmissionRequest_srcAlternatives val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo(ASN1encoding_t enc, PAdmissionRequest_srcInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_srcInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_srcInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_srcInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo(ASN1decoding_t dec, PAdmissionRequest_srcInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_srcInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_srcInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_srcInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo(PAdmissionRequest_srcInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_srcInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_srcInfo_ElmFn(PAdmissionRequest_srcInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destExtraCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destExtraCallInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destExtraCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destExtraCallInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo(PAdmissionRequest_destExtraCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destExtraCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_destExtraCallInfo_ElmFn(PAdmissionRequest_destExtraCallInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo(ASN1encoding_t enc, PAdmissionRequest_destinationInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_destinationInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_destinationInfo_ElmFn(ASN1encoding_t enc, PAdmissionRequest_destinationInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo(ASN1decoding_t dec, PAdmissionRequest_destinationInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_destinationInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_destinationInfo_ElmFn(ASN1decoding_t dec, PAdmissionRequest_destinationInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo(PAdmissionRequest_destinationInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_destinationInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_destinationInfo_ElmFn(PAdmissionRequest_destinationInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_alternateEndpoints_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_alternateEndpoints val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_alternateEndpoints_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_alternateEndpoints val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints(PUnregistrationRequest_alternateEndpoints *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_alternateEndpoints_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationRequest_alternateEndpoints_ElmFn(PUnregistrationRequest_alternateEndpoints val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_endpointAlias_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_endpointAlias_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_endpointAlias val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_endpointAlias_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_endpointAlias_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_endpointAlias val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias(PUnregistrationRequest_endpointAlias *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_endpointAlias_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationRequest_endpointAlias_ElmFn(PUnregistrationRequest_endpointAlias val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRejectReason_duplicateAlias_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRejectReason_duplicateAlias_ElmFn(ASN1encoding_t enc, PRegistrationRejectReason_duplicateAlias val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRejectReason_duplicateAlias_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRejectReason_duplicateAlias_ElmFn(ASN1decoding_t dec, PRegistrationRejectReason_duplicateAlias val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias(PRegistrationRejectReason_duplicateAlias *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRejectReason_duplicateAlias_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRejectReason_duplicateAlias_ElmFn(PRegistrationRejectReason_duplicateAlias val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_terminalAlias_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_terminalAlias_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_terminalAlias val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_terminalAlias_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_terminalAlias_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_terminalAlias val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias(PRegistrationConfirm_terminalAlias *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_terminalAlias_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationConfirm_terminalAlias_ElmFn(PRegistrationConfirm_terminalAlias val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_alternateEndpoints_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PRegistrationRequest_alternateEndpoints val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_alternateEndpoints_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PRegistrationRequest_alternateEndpoints val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints(PRegistrationRequest_alternateEndpoints *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_alternateEndpoints_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRequest_alternateEndpoints_ElmFn(PRegistrationRequest_alternateEndpoints val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias(ASN1encoding_t enc, PRegistrationRequest_terminalAlias *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_terminalAlias_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRequest_terminalAlias_ElmFn(ASN1encoding_t enc, PRegistrationRequest_terminalAlias val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias(ASN1decoding_t dec, PRegistrationRequest_terminalAlias *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_terminalAlias_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRequest_terminalAlias_ElmFn(ASN1decoding_t dec, PRegistrationRequest_terminalAlias val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias(PRegistrationRequest_terminalAlias *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_terminalAlias_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRequest_terminalAlias_ElmFn(PRegistrationRequest_terminalAlias val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_alternateEndpoints_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_alternateEndpoints_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_alternateEndpoints val)
{
if (!ASN1Enc_Endpoint(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_alternateEndpoints_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_alternateEndpoints_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_alternateEndpoints val)
{
if (!ASN1Dec_Endpoint(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints(PGatekeeperRequest_alternateEndpoints *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_alternateEndpoints_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_alternateEndpoints_ElmFn(PGatekeeperRequest_alternateEndpoints val)
{
if (val) {
ASN1Free_Endpoint(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_endpointAlias_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_endpointAlias_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_endpointAlias val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_endpointAlias_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_endpointAlias_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_endpointAlias val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias(PGatekeeperRequest_endpointAlias *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_endpointAlias_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_endpointAlias_ElmFn(PGatekeeperRequest_endpointAlias val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_CryptoH323Token_cryptoEPPwdHash(ASN1encoding_t enc, CryptoH323Token_cryptoEPPwdHash *val)
{
ASN1uint32_t l;
if (!ASN1Enc_AliasAddress(enc, &(val)->alias))
return 0;
l = ASN1uint32_uoctets((val)->timeStamp - 1);
if (!ASN1PEREncBitVal(enc, 2, l - 1))
return 0;
ASN1PEREncAlignment(enc);
if (!ASN1PEREncBitVal(enc, l * 8, (val)->timeStamp - 1))
return 0;
if (!ASN1Enc_HASHED(enc, &(val)->token))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CryptoH323Token_cryptoEPPwdHash(ASN1decoding_t dec, CryptoH323Token_cryptoEPPwdHash *val)
{
ASN1uint32_t l;
if (!ASN1Dec_AliasAddress(dec, &(val)->alias))
return 0;
if (!ASN1PERDecU32Val(dec, 2, &l))
return 0;
l += 1;
ASN1PERDecAlignment(dec);
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->timeStamp))
return 0;
(val)->timeStamp += 1;
if (!ASN1Dec_HASHED(dec, &(val)->token))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CryptoH323Token_cryptoEPPwdHash(CryptoH323Token_cryptoEPPwdHash *val)
{
if (val) {
ASN1Free_AliasAddress(&(val)->alias);
ASN1Free_HASHED(&(val)->token);
}
}
static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo(ASN1encoding_t enc, PEndpoint_destExtraCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_destExtraCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PEndpoint_destExtraCallInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo(ASN1decoding_t dec, PEndpoint_destExtraCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_destExtraCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PEndpoint_destExtraCallInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo(PEndpoint_destExtraCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_destExtraCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_destExtraCallInfo_ElmFn(PEndpoint_destExtraCallInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_remoteExtensionAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_remoteExtensionAddress_ElmFn(ASN1encoding_t enc, PEndpoint_remoteExtensionAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_remoteExtensionAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_remoteExtensionAddress_ElmFn(ASN1decoding_t dec, PEndpoint_remoteExtensionAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress(PEndpoint_remoteExtensionAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_remoteExtensionAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_remoteExtensionAddress_ElmFn(PEndpoint_remoteExtensionAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Endpoint_aliasAddress(ASN1encoding_t enc, PEndpoint_aliasAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_aliasAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_aliasAddress_ElmFn(ASN1encoding_t enc, PEndpoint_aliasAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_aliasAddress(ASN1decoding_t dec, PEndpoint_aliasAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_aliasAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_aliasAddress_ElmFn(ASN1decoding_t dec, PEndpoint_aliasAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_aliasAddress(PEndpoint_aliasAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_aliasAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_aliasAddress_ElmFn(PEndpoint_aliasAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_NonStandardProtocol_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_NonStandardProtocol_supportedPrefixes_ElmFn(ASN1encoding_t enc, PNonStandardProtocol_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_NonStandardProtocol_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_NonStandardProtocol_supportedPrefixes_ElmFn(ASN1decoding_t dec, PNonStandardProtocol_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes(PNonStandardProtocol_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_NonStandardProtocol_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_NonStandardProtocol_supportedPrefixes_ElmFn(PNonStandardProtocol_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_T120OnlyCaps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_T120OnlyCaps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PT120OnlyCaps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_T120OnlyCaps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_T120OnlyCaps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PT120OnlyCaps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes(PT120OnlyCaps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_T120OnlyCaps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_T120OnlyCaps_supportedPrefixes_ElmFn(PT120OnlyCaps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_VoiceCaps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_VoiceCaps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PVoiceCaps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_VoiceCaps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_VoiceCaps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PVoiceCaps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes(PVoiceCaps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_VoiceCaps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_VoiceCaps_supportedPrefixes_ElmFn(PVoiceCaps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes(ASN1encoding_t enc, PH324Caps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H324Caps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_H324Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH324Caps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes(ASN1decoding_t dec, PH324Caps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H324Caps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H324Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH324Caps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes(PH324Caps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H324Caps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_H324Caps_supportedPrefixes_ElmFn(PH324Caps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes(ASN1encoding_t enc, PH323Caps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H323Caps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_H323Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH323Caps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes(ASN1decoding_t dec, PH323Caps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H323Caps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H323Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH323Caps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes(PH323Caps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H323Caps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_H323Caps_supportedPrefixes_ElmFn(PH323Caps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes(ASN1encoding_t enc, PH322Caps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H322Caps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_H322Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH322Caps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes(ASN1decoding_t dec, PH322Caps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H322Caps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H322Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH322Caps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes(PH322Caps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H322Caps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_H322Caps_supportedPrefixes_ElmFn(PH322Caps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes(ASN1encoding_t enc, PH321Caps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H321Caps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_H321Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH321Caps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes(ASN1decoding_t dec, PH321Caps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H321Caps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H321Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH321Caps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes(PH321Caps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H321Caps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_H321Caps_supportedPrefixes_ElmFn(PH321Caps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes(ASN1encoding_t enc, PH320Caps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H320Caps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_H320Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH320Caps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes(ASN1decoding_t dec, PH320Caps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H320Caps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H320Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH320Caps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes(PH320Caps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H320Caps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_H320Caps_supportedPrefixes_ElmFn(PH320Caps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes(ASN1encoding_t enc, PH310Caps_supportedPrefixes *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H310Caps_supportedPrefixes_ElmFn);
}
static int ASN1CALL ASN1Enc_H310Caps_supportedPrefixes_ElmFn(ASN1encoding_t enc, PH310Caps_supportedPrefixes val)
{
if (!ASN1Enc_SupportedPrefix(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes(ASN1decoding_t dec, PH310Caps_supportedPrefixes *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H310Caps_supportedPrefixes_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H310Caps_supportedPrefixes_ElmFn(ASN1decoding_t dec, PH310Caps_supportedPrefixes val)
{
if (!ASN1Dec_SupportedPrefix(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes(PH310Caps_supportedPrefixes *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H310Caps_supportedPrefixes_ElmFn);
}
}
static void ASN1CALL ASN1Free_H310Caps_supportedPrefixes_ElmFn(PH310Caps_supportedPrefixes val)
{
if (val) {
ASN1Free_SupportedPrefix(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatewayInfo_protocol(ASN1encoding_t enc, PGatewayInfo_protocol *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatewayInfo_protocol_ElmFn);
}
static int ASN1CALL ASN1Enc_GatewayInfo_protocol_ElmFn(ASN1encoding_t enc, PGatewayInfo_protocol val)
{
if (!ASN1Enc_SupportedProtocols(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatewayInfo_protocol(ASN1decoding_t dec, PGatewayInfo_protocol *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatewayInfo_protocol_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatewayInfo_protocol_ElmFn(ASN1decoding_t dec, PGatewayInfo_protocol val)
{
if (!ASN1Dec_SupportedProtocols(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatewayInfo_protocol(PGatewayInfo_protocol *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatewayInfo_protocol_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatewayInfo_protocol_ElmFn(PGatewayInfo_protocol val)
{
if (val) {
ASN1Free_SupportedProtocols(&val->value);
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_destExtraCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_Facility_UUIE_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PFacility_UUIE_destExtraCallInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_destExtraCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Facility_UUIE_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PFacility_UUIE_destExtraCallInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo(PFacility_UUIE_destExtraCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_destExtraCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_Facility_UUIE_destExtraCallInfo_ElmFn(PFacility_UUIE_destExtraCallInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_alternativeAliasAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Facility_UUIE_alternativeAliasAddress_ElmFn(ASN1encoding_t enc, PFacility_UUIE_alternativeAliasAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_alternativeAliasAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Facility_UUIE_alternativeAliasAddress_ElmFn(ASN1decoding_t dec, PFacility_UUIE_alternativeAliasAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress(PFacility_UUIE_alternativeAliasAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_alternativeAliasAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Facility_UUIE_alternativeAliasAddress_ElmFn(PFacility_UUIE_alternativeAliasAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destExtraCallInfo_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_destExtraCallInfo_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destExtraCallInfo val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destExtraCallInfo_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_destExtraCallInfo_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destExtraCallInfo val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo(PSetup_UUIE_destExtraCallInfo *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destExtraCallInfo_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_destExtraCallInfo_ElmFn(PSetup_UUIE_destExtraCallInfo val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress(ASN1encoding_t enc, PSetup_UUIE_destinationAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_destinationAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_destinationAddress_ElmFn(ASN1encoding_t enc, PSetup_UUIE_destinationAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress(ASN1decoding_t dec, PSetup_UUIE_destinationAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_destinationAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_destinationAddress_ElmFn(ASN1decoding_t dec, PSetup_UUIE_destinationAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress(PSetup_UUIE_destinationAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_destinationAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_destinationAddress_ElmFn(PSetup_UUIE_destinationAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress(ASN1encoding_t enc, PSetup_UUIE_sourceAddress *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_sourceAddress_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_sourceAddress_ElmFn(ASN1encoding_t enc, PSetup_UUIE_sourceAddress val)
{
if (!ASN1Enc_AliasAddress(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress(ASN1decoding_t dec, PSetup_UUIE_sourceAddress *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_sourceAddress_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_sourceAddress_ElmFn(ASN1decoding_t dec, PSetup_UUIE_sourceAddress val)
{
if (!ASN1Dec_AliasAddress(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress(PSetup_UUIE_sourceAddress *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_sourceAddress_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_sourceAddress_ElmFn(PSetup_UUIE_sourceAddress val)
{
if (val) {
ASN1Free_AliasAddress(&val->value);
}
}
static int ASN1CALL ASN1Enc_Alerting_UUIE(ASN1encoding_t enc, Alerting_UUIE *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_Alerting_UUIE_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_Alerting_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_Alerting_UUIE_fastStart(ee, &(val)->fastStart))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_Alerting_UUIE(ASN1decoding_t dec, Alerting_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Alerting_UUIE_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Alerting_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Alerting_UUIE_fastStart(dd, &(val)->fastStart))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_Alerting_UUIE(Alerting_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
ASN1Free_EndpointType(&(val)->destinationInfo);
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->h245Address);
}
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H245Security(&(val)->h245SecurityMode);
}
if ((val)->o[1] & 0x20) {
ASN1Free_Alerting_UUIE_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_Alerting_UUIE_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_Alerting_UUIE_fastStart(&(val)->fastStart);
}
}
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE(ASN1encoding_t enc, CallProceeding_UUIE *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_CallProceeding_UUIE_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_CallProceeding_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_CallProceeding_UUIE_fastStart(ee, &(val)->fastStart))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE(ASN1decoding_t dec, CallProceeding_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallProceeding_UUIE_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallProceeding_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallProceeding_UUIE_fastStart(dd, &(val)->fastStart))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE(CallProceeding_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
ASN1Free_EndpointType(&(val)->destinationInfo);
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->h245Address);
}
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H245Security(&(val)->h245SecurityMode);
}
if ((val)->o[1] & 0x20) {
ASN1Free_CallProceeding_UUIE_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_CallProceeding_UUIE_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_CallProceeding_UUIE_fastStart(&(val)->fastStart);
}
}
}
static int ASN1CALL ASN1Enc_Connect_UUIE(ASN1encoding_t enc, Connect_UUIE *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
y = ASN1PEREncCheckExtensions(5, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
return 0;
}
if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 5, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_H245Security(ee, &(val)->h245SecurityMode))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_Connect_UUIE_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_Connect_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_Connect_UUIE_fastStart(ee, &(val)->fastStart))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_Connect_UUIE(ASN1decoding_t dec, Connect_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
return 0;
}
if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 5, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H245Security(dd, &(val)->h245SecurityMode))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Connect_UUIE_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Connect_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Connect_UUIE_fastStart(dd, &(val)->fastStart))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_Connect_UUIE(Connect_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->h245Address);
}
ASN1Free_EndpointType(&(val)->destinationInfo);
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1Free_H245Security(&(val)->h245SecurityMode);
}
if ((val)->o[1] & 0x20) {
ASN1Free_Connect_UUIE_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x10) {
ASN1Free_Connect_UUIE_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_Connect_UUIE_fastStart(&(val)->fastStart);
}
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE(ASN1encoding_t enc, Setup_UUIE *val)
{
ASN1octet_t o[3];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 3);
o[1] |= 0x20;
o[1] |= 0x1;
o[2] |= 0x80;
y = ASN1PEREncCheckExtensions(9, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 7, o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
return 0;
}
if (o[0] & 0x40) {
if (!ASN1Enc_Setup_UUIE_sourceAddress(enc, &(val)->sourceAddress))
return 0;
}
if (!ASN1Enc_EndpointType(enc, &(val)->sourceInfo))
return 0;
if (o[0] & 0x20) {
if (!ASN1Enc_Setup_UUIE_destinationAddress(enc, &(val)->destinationAddress))
return 0;
}
if (o[0] & 0x10) {
if (!ASN1Enc_TransportAddress(enc, &(val)->destCallSignalAddress))
return 0;
}
if (o[0] & 0x8) {
if (!ASN1Enc_Setup_UUIE_destExtraCallInfo(enc, &(val)->destExtraCallInfo))
return 0;
}
if (o[0] & 0x4) {
if (!ASN1Enc_Setup_UUIE_destExtraCRV(enc, &(val)->destExtraCRV))
return 0;
}
if (!ASN1PEREncBoolean(enc, (val)->activeMC))
return 0;
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1Enc_Setup_UUIE_conferenceGoal(enc, &(val)->conferenceGoal))
return 0;
if (o[0] & 0x2) {
if (!ASN1Enc_QseriesOptions(enc, &(val)->callServices))
return 0;
}
if (!ASN1Enc_CallType(enc, &(val)->callType))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 9, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_TransportAddress(ee, &(val)->sourceCallSignalAddress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_AliasAddress(ee, &(val)->remoteExtensionAddress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_Setup_UUIE_h245SecurityCapability(ee, &(val)->h245SecurityCapability))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_Setup_UUIE_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1Enc_Setup_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x2) {
if (!ASN1Enc_Setup_UUIE_fastStart(ee, &(val)->fastStart))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x1) {
if (!ASN1PEREncBoolean(ee, (val)->mediaWaitForConnect))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[2] & 0x80) {
if (!ASN1PEREncBoolean(ee, (val)->canOverlapSend))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE(ASN1decoding_t dec, Setup_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 7, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_Setup_UUIE_sourceAddress(dec, &(val)->sourceAddress))
return 0;
}
if (!ASN1Dec_EndpointType(dec, &(val)->sourceInfo))
return 0;
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_Setup_UUIE_destinationAddress(dec, &(val)->destinationAddress))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_TransportAddress(dec, &(val)->destCallSignalAddress))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_Setup_UUIE_destExtraCallInfo(dec, &(val)->destExtraCallInfo))
return 0;
}
if ((val)->o[0] & 0x4) {
if (!ASN1Dec_Setup_UUIE_destExtraCRV(dec, &(val)->destExtraCRV))
return 0;
}
if (!ASN1PERDecBoolean(dec, &(val)->activeMC))
return 0;
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
if (!ASN1Dec_Setup_UUIE_conferenceGoal(dec, &(val)->conferenceGoal))
return 0;
if ((val)->o[0] & 0x2) {
if (!ASN1Dec_QseriesOptions(dec, &(val)->callServices))
return 0;
}
if (!ASN1Dec_CallType(dec, &(val)->callType))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 2);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 9, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_TransportAddress(dd, &(val)->sourceCallSignalAddress))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AliasAddress(dd, &(val)->remoteExtensionAddress))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Setup_UUIE_h245SecurityCapability(dd, &(val)->h245SecurityCapability))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Setup_UUIE_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Setup_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Setup_UUIE_fastStart(dd, &(val)->fastStart))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x1) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->mediaWaitForConnect))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[2] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->canOverlapSend))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE(Setup_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->h245Address);
}
if ((val)->o[0] & 0x40) {
ASN1Free_Setup_UUIE_sourceAddress(&(val)->sourceAddress);
}
ASN1Free_EndpointType(&(val)->sourceInfo);
if ((val)->o[0] & 0x20) {
ASN1Free_Setup_UUIE_destinationAddress(&(val)->destinationAddress);
}
if ((val)->o[0] & 0x10) {
ASN1Free_TransportAddress(&(val)->destCallSignalAddress);
}
if ((val)->o[0] & 0x8) {
ASN1Free_Setup_UUIE_destExtraCallInfo(&(val)->destExtraCallInfo);
}
if ((val)->o[0] & 0x4) {
ASN1Free_Setup_UUIE_destExtraCRV(&(val)->destExtraCRV);
}
if ((val)->o[1] & 0x80) {
ASN1Free_TransportAddress(&(val)->sourceCallSignalAddress);
}
if ((val)->o[1] & 0x40) {
ASN1Free_AliasAddress(&(val)->remoteExtensionAddress);
}
if ((val)->o[1] & 0x20) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x10) {
ASN1Free_Setup_UUIE_h245SecurityCapability(&(val)->h245SecurityCapability);
}
if ((val)->o[1] & 0x8) {
ASN1Free_Setup_UUIE_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x4) {
ASN1Free_Setup_UUIE_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x2) {
ASN1Free_Setup_UUIE_fastStart(&(val)->fastStart);
}
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE(ASN1encoding_t enc, Facility_UUIE *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x80;
y = ASN1PEREncCheckExtensions(8, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 3, o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->alternativeAddress))
return 0;
}
if (o[0] & 0x40) {
if (!ASN1Enc_Facility_UUIE_alternativeAliasAddress(enc, &(val)->alternativeAliasAddress))
return 0;
}
if (o[0] & 0x20) {
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
}
if (!ASN1Enc_FacilityReason(enc, &(val)->reason))
return 0;
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 8, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_CallIdentifier(ee, &(val)->callIdentifier))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1Enc_Facility_UUIE_destExtraCallInfo(ee, &(val)->destExtraCallInfo))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_AliasAddress(ee, &(val)->remoteExtensionAddress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_Facility_UUIE_tokens(ee, &(val)->tokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x8) {
if (!ASN1Enc_Facility_UUIE_cryptoTokens(ee, &(val)->cryptoTokens))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x4) {
if (!ASN1Enc_Facility_UUIE_conferences(ee, &(val)->conferences))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x2) {
if (!ASN1Enc_TransportAddress(ee, &(val)->h245Address))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x1) {
if (!ASN1Enc_Facility_UUIE_fastStart(ee, &(val)->fastStart))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE(ASN1decoding_t dec, Facility_UUIE *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 3, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->alternativeAddress))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_Facility_UUIE_alternativeAliasAddress(dec, &(val)->alternativeAliasAddress))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
}
if (!ASN1Dec_FacilityReason(dec, &(val)->reason))
return 0;
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 8, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_CallIdentifier(dd, &(val)->callIdentifier))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Facility_UUIE_destExtraCallInfo(dd, &(val)->destExtraCallInfo))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_AliasAddress(dd, &(val)->remoteExtensionAddress))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Facility_UUIE_tokens(dd, &(val)->tokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x8) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Facility_UUIE_cryptoTokens(dd, &(val)->cryptoTokens))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x4) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Facility_UUIE_conferences(dd, &(val)->conferences))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x2) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_TransportAddress(dd, &(val)->h245Address))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x1) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Facility_UUIE_fastStart(dd, &(val)->fastStart))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE(Facility_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->alternativeAddress);
}
if ((val)->o[0] & 0x40) {
ASN1Free_Facility_UUIE_alternativeAliasAddress(&(val)->alternativeAliasAddress);
}
if ((val)->o[0] & 0x20) {
}
if ((val)->o[1] & 0x80) {
ASN1Free_CallIdentifier(&(val)->callIdentifier);
}
if ((val)->o[1] & 0x40) {
ASN1Free_Facility_UUIE_destExtraCallInfo(&(val)->destExtraCallInfo);
}
if ((val)->o[1] & 0x20) {
ASN1Free_AliasAddress(&(val)->remoteExtensionAddress);
}
if ((val)->o[1] & 0x10) {
ASN1Free_Facility_UUIE_tokens(&(val)->tokens);
}
if ((val)->o[1] & 0x8) {
ASN1Free_Facility_UUIE_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[1] & 0x4) {
ASN1Free_Facility_UUIE_conferences(&(val)->conferences);
}
if ((val)->o[1] & 0x2) {
ASN1Free_TransportAddress(&(val)->h245Address);
}
if ((val)->o[1] & 0x1) {
ASN1Free_Facility_UUIE_fastStart(&(val)->fastStart);
}
}
}
static int ASN1CALL ASN1Enc_ConferenceList(ASN1encoding_t enc, ConferenceList *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 3, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_AliasAddress(enc, &(val)->conferenceAlias))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_ConferenceList(ASN1decoding_t dec, ConferenceList *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 3, (val)->o))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->conferenceID, 16))
return 0;
}
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_AliasAddress(dec, &(val)->conferenceAlias))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_ConferenceList(ConferenceList *val)
{
if (val) {
if ((val)->o[0] & 0x80) {
}
if ((val)->o[0] & 0x40) {
ASN1Free_AliasAddress(&(val)->conferenceAlias);
}
if ((val)->o[0] & 0x20) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
}
}
static int ASN1CALL ASN1Enc_Progress_UUIE(ASN1encoding_t enc, Progress_UUIE *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 5, (val)->o))
return 0;
if (!ASN1PEREncObjectIdentifier(enc, &(val)->protocolIdentifier))
return 0;
if (!ASN1Enc_EndpointType(enc, &(val)->destinationInfo))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_TransportAddress(enc, &(val)->h245Address))
return 0;
}
if (!ASN1Enc_CallIdentifier(enc, &(val)->callIdentifier))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Enc_H245Security(enc, &(val)->h245SecurityMode))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Enc_Progress_UUIE_tokens(enc, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Enc_Progress_UUIE_cryptoTokens(enc, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Enc_Progress_UUIE_fastStart(enc, &(val)->fastStart))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_Progress_UUIE(ASN1decoding_t dec, Progress_UUIE *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 5, (val)->o))
return 0;
if (!ASN1PERDecObjectIdentifier(dec, &(val)->protocolIdentifier))
return 0;
if (!ASN1Dec_EndpointType(dec, &(val)->destinationInfo))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_TransportAddress(dec, &(val)->h245Address))
return 0;
}
if (!ASN1Dec_CallIdentifier(dec, &(val)->callIdentifier))
return 0;
if ((val)->o[0] & 0x40) {
if (!ASN1Dec_H245Security(dec, &(val)->h245SecurityMode))
return 0;
}
if ((val)->o[0] & 0x20) {
if (!ASN1Dec_Progress_UUIE_tokens(dec, &(val)->tokens))
return 0;
}
if ((val)->o[0] & 0x10) {
if (!ASN1Dec_Progress_UUIE_cryptoTokens(dec, &(val)->cryptoTokens))
return 0;
}
if ((val)->o[0] & 0x8) {
if (!ASN1Dec_Progress_UUIE_fastStart(dec, &(val)->fastStart))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_Progress_UUIE(Progress_UUIE *val)
{
if (val) {
ASN1objectidentifier_free(&(val)->protocolIdentifier);
ASN1Free_EndpointType(&(val)->destinationInfo);
if ((val)->o[0] & 0x80) {
ASN1Free_TransportAddress(&(val)->h245Address);
}
ASN1Free_CallIdentifier(&(val)->callIdentifier);
if ((val)->o[0] & 0x40) {
ASN1Free_H245Security(&(val)->h245SecurityMode);
}
if ((val)->o[0] & 0x20) {
ASN1Free_Progress_UUIE_tokens(&(val)->tokens);
}
if ((val)->o[0] & 0x10) {
ASN1Free_Progress_UUIE_cryptoTokens(&(val)->cryptoTokens);
}
if ((val)->o[0] & 0x8) {
ASN1Free_Progress_UUIE_fastStart(&(val)->fastStart);
}
}
}
static int ASN1CALL ASN1Enc_CryptoH323Token(ASN1encoding_t enc, CryptoH323Token *val)
{
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_CryptoH323Token_cryptoEPPwdHash(enc, &(val)->u.cryptoEPPwdHash))
return 0;
break;
case 2:
if (!ASN1Enc_CryptoH323Token_cryptoGKPwdHash(enc, &(val)->u.cryptoGKPwdHash))
return 0;
break;
case 3:
if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoEPPwdEncr))
return 0;
break;
case 4:
if (!ASN1Enc_ENCRYPTED(enc, &(val)->u.cryptoGKPwdEncr))
return 0;
break;
case 5:
if (!ASN1Enc_SIGNED_EncodedPwdCertToken(enc, &(val)->u.cryptoEPCert))
return 0;
break;
case 6:
if (!ASN1Enc_SIGNED_EncodedPwdCertToken(enc, &(val)->u.cryptoGKCert))
return 0;
break;
case 7:
if (!ASN1Enc_SIGNED_EncodedFastStartToken(enc, &(val)->u.cryptoFastStart))
return 0;
break;
case 8:
if (!ASN1Enc_CryptoToken(enc, &(val)->u.nestedcryptoToken))
return 0;
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_CryptoH323Token(ASN1decoding_t dec, CryptoH323Token *val)
{
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_CryptoH323Token_cryptoEPPwdHash(dec, &(val)->u.cryptoEPPwdHash))
return 0;
break;
case 2:
if (!ASN1Dec_CryptoH323Token_cryptoGKPwdHash(dec, &(val)->u.cryptoGKPwdHash))
return 0;
break;
case 3:
if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoEPPwdEncr))
return 0;
break;
case 4:
if (!ASN1Dec_ENCRYPTED(dec, &(val)->u.cryptoGKPwdEncr))
return 0;
break;
case 5:
if (!ASN1Dec_SIGNED_EncodedPwdCertToken(dec, &(val)->u.cryptoEPCert))
return 0;
break;
case 6:
if (!ASN1Dec_SIGNED_EncodedPwdCertToken(dec, &(val)->u.cryptoGKCert))
return 0;
break;
case 7:
if (!ASN1Dec_SIGNED_EncodedFastStartToken(dec, &(val)->u.cryptoFastStart))
return 0;
break;
case 8:
if (!ASN1Dec_CryptoToken(dec, &(val)->u.nestedcryptoToken))
return 0;
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_CryptoH323Token(CryptoH323Token *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_CryptoH323Token_cryptoEPPwdHash(&(val)->u.cryptoEPPwdHash);
break;
case 2:
ASN1Free_CryptoH323Token_cryptoGKPwdHash(&(val)->u.cryptoGKPwdHash);
break;
case 3:
ASN1Free_ENCRYPTED(&(val)->u.cryptoEPPwdEncr);
break;
case 4:
ASN1Free_ENCRYPTED(&(val)->u.cryptoGKPwdEncr);
break;
case 5:
ASN1Free_SIGNED_EncodedPwdCertToken(&(val)->u.cryptoEPCert);
break;
case 6:
ASN1Free_SIGNED_EncodedPwdCertToken(&(val)->u.cryptoGKCert);
break;
case 7:
ASN1Free_SIGNED_EncodedFastStartToken(&(val)->u.cryptoFastStart);
break;
case 8:
ASN1Free_CryptoToken(&(val)->u.nestedcryptoToken);
break;
}
}
}
static int ASN1CALL ASN1Enc_RasMessage(ASN1encoding_t enc, RasMessage *val)
{
ASN1encoding_t ee;
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 5, 25))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_GatekeeperRequest(enc, &(val)->u.gatekeeperRequest))
return 0;
break;
case 2:
if (!ASN1Enc_GatekeeperConfirm(enc, &(val)->u.gatekeeperConfirm))
return 0;
break;
case 3:
if (!ASN1Enc_GatekeeperReject(enc, &(val)->u.gatekeeperReject))
return 0;
break;
case 4:
if (!ASN1Enc_RegistrationRequest(enc, &(val)->u.registrationRequest))
return 0;
break;
case 5:
if (!ASN1Enc_RegistrationConfirm(enc, &(val)->u.registrationConfirm))
return 0;
break;
case 6:
if (!ASN1Enc_RegistrationReject(enc, &(val)->u.registrationReject))
return 0;
break;
case 7:
if (!ASN1Enc_UnregistrationRequest(enc, &(val)->u.unregistrationRequest))
return 0;
break;
case 8:
if (!ASN1Enc_UnregistrationConfirm(enc, &(val)->u.unregistrationConfirm))
return 0;
break;
case 9:
if (!ASN1Enc_UnregistrationReject(enc, &(val)->u.unregistrationReject))
return 0;
break;
case 10:
if (!ASN1Enc_AdmissionRequest(enc, &(val)->u.admissionRequest))
return 0;
break;
case 11:
if (!ASN1Enc_AdmissionConfirm(enc, &(val)->u.admissionConfirm))
return 0;
break;
case 12:
if (!ASN1Enc_AdmissionReject(enc, &(val)->u.admissionReject))
return 0;
break;
case 13:
if (!ASN1Enc_BandwidthRequest(enc, &(val)->u.bandwidthRequest))
return 0;
break;
case 14:
if (!ASN1Enc_BandwidthConfirm(enc, &(val)->u.bandwidthConfirm))
return 0;
break;
case 15:
if (!ASN1Enc_BandwidthReject(enc, &(val)->u.bandwidthReject))
return 0;
break;
case 16:
if (!ASN1Enc_DisengageRequest(enc, &(val)->u.disengageRequest))
return 0;
break;
case 17:
if (!ASN1Enc_DisengageConfirm(enc, &(val)->u.disengageConfirm))
return 0;
break;
case 18:
if (!ASN1Enc_DisengageReject(enc, &(val)->u.disengageReject))
return 0;
break;
case 19:
if (!ASN1Enc_LocationRequest(enc, &(val)->u.locationRequest))
return 0;
break;
case 20:
if (!ASN1Enc_LocationConfirm(enc, &(val)->u.locationConfirm))
return 0;
break;
case 21:
if (!ASN1Enc_LocationReject(enc, &(val)->u.locationReject))
return 0;
break;
case 22:
if (!ASN1Enc_InfoRequest(enc, &(val)->u.infoRequest))
return 0;
break;
case 23:
if (!ASN1Enc_InfoRequestResponse(enc, &(val)->u.infoRequestResponse))
return 0;
break;
case 24:
if (!ASN1Enc_H225NonStandardMessage(enc, &(val)->u.nonStandardMessage))
return 0;
break;
case 25:
if (!ASN1Enc_UnknownMessageResponse(enc, &(val)->u.unknownMessageResponse))
return 0;
break;
case 26:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_RequestInProgress(ee, &(val)->u.requestInProgress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 27:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_ResourcesAvailableIndicate(ee, &(val)->u.resourcesAvailableIndicate))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 28:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_ResourcesAvailableConfirm(ee, &(val)->u.resourcesAvailableConfirm))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 29:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_InfoRequestAck(ee, &(val)->u.infoRequestAck))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 30:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_InfoRequestNak(ee, &(val)->u.infoRequestNak))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_RasMessage(ASN1decoding_t dec, RasMessage *val)
{
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 5, 25))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_GatekeeperRequest(dec, &(val)->u.gatekeeperRequest))
return 0;
break;
case 2:
if (!ASN1Dec_GatekeeperConfirm(dec, &(val)->u.gatekeeperConfirm))
return 0;
break;
case 3:
if (!ASN1Dec_GatekeeperReject(dec, &(val)->u.gatekeeperReject))
return 0;
break;
case 4:
if (!ASN1Dec_RegistrationRequest(dec, &(val)->u.registrationRequest))
return 0;
break;
case 5:
if (!ASN1Dec_RegistrationConfirm(dec, &(val)->u.registrationConfirm))
return 0;
break;
case 6:
if (!ASN1Dec_RegistrationReject(dec, &(val)->u.registrationReject))
return 0;
break;
case 7:
if (!ASN1Dec_UnregistrationRequest(dec, &(val)->u.unregistrationRequest))
return 0;
break;
case 8:
if (!ASN1Dec_UnregistrationConfirm(dec, &(val)->u.unregistrationConfirm))
return 0;
break;
case 9:
if (!ASN1Dec_UnregistrationReject(dec, &(val)->u.unregistrationReject))
return 0;
break;
case 10:
if (!ASN1Dec_AdmissionRequest(dec, &(val)->u.admissionRequest))
return 0;
break;
case 11:
if (!ASN1Dec_AdmissionConfirm(dec, &(val)->u.admissionConfirm))
return 0;
break;
case 12:
if (!ASN1Dec_AdmissionReject(dec, &(val)->u.admissionReject))
return 0;
break;
case 13:
if (!ASN1Dec_BandwidthRequest(dec, &(val)->u.bandwidthRequest))
return 0;
break;
case 14:
if (!ASN1Dec_BandwidthConfirm(dec, &(val)->u.bandwidthConfirm))
return 0;
break;
case 15:
if (!ASN1Dec_BandwidthReject(dec, &(val)->u.bandwidthReject))
return 0;
break;
case 16:
if (!ASN1Dec_DisengageRequest(dec, &(val)->u.disengageRequest))
return 0;
break;
case 17:
if (!ASN1Dec_DisengageConfirm(dec, &(val)->u.disengageConfirm))
return 0;
break;
case 18:
if (!ASN1Dec_DisengageReject(dec, &(val)->u.disengageReject))
return 0;
break;
case 19:
if (!ASN1Dec_LocationRequest(dec, &(val)->u.locationRequest))
return 0;
break;
case 20:
if (!ASN1Dec_LocationConfirm(dec, &(val)->u.locationConfirm))
return 0;
break;
case 21:
if (!ASN1Dec_LocationReject(dec, &(val)->u.locationReject))
return 0;
break;
case 22:
if (!ASN1Dec_InfoRequest(dec, &(val)->u.infoRequest))
return 0;
break;
case 23:
if (!ASN1Dec_InfoRequestResponse(dec, &(val)->u.infoRequestResponse))
return 0;
break;
case 24:
if (!ASN1Dec_H225NonStandardMessage(dec, &(val)->u.nonStandardMessage))
return 0;
break;
case 25:
if (!ASN1Dec_UnknownMessageResponse(dec, &(val)->u.unknownMessageResponse))
return 0;
break;
case 26:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_RequestInProgress(dd, &(val)->u.requestInProgress))
return 0;
ASN1_CloseDecoder(dd);
break;
case 27:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ResourcesAvailableIndicate(dd, &(val)->u.resourcesAvailableIndicate))
return 0;
ASN1_CloseDecoder(dd);
break;
case 28:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_ResourcesAvailableConfirm(dd, &(val)->u.resourcesAvailableConfirm))
return 0;
ASN1_CloseDecoder(dd);
break;
case 29:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestAck(dd, &(val)->u.infoRequestAck))
return 0;
ASN1_CloseDecoder(dd);
break;
case 30:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_InfoRequestNak(dd, &(val)->u.infoRequestNak))
return 0;
ASN1_CloseDecoder(dd);
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_RasMessage(RasMessage *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_GatekeeperRequest(&(val)->u.gatekeeperRequest);
break;
case 2:
ASN1Free_GatekeeperConfirm(&(val)->u.gatekeeperConfirm);
break;
case 3:
ASN1Free_GatekeeperReject(&(val)->u.gatekeeperReject);
break;
case 4:
ASN1Free_RegistrationRequest(&(val)->u.registrationRequest);
break;
case 5:
ASN1Free_RegistrationConfirm(&(val)->u.registrationConfirm);
break;
case 6:
ASN1Free_RegistrationReject(&(val)->u.registrationReject);
break;
case 7:
ASN1Free_UnregistrationRequest(&(val)->u.unregistrationRequest);
break;
case 8:
ASN1Free_UnregistrationConfirm(&(val)->u.unregistrationConfirm);
break;
case 9:
ASN1Free_UnregistrationReject(&(val)->u.unregistrationReject);
break;
case 10:
ASN1Free_AdmissionRequest(&(val)->u.admissionRequest);
break;
case 11:
ASN1Free_AdmissionConfirm(&(val)->u.admissionConfirm);
break;
case 12:
ASN1Free_AdmissionReject(&(val)->u.admissionReject);
break;
case 13:
ASN1Free_BandwidthRequest(&(val)->u.bandwidthRequest);
break;
case 14:
ASN1Free_BandwidthConfirm(&(val)->u.bandwidthConfirm);
break;
case 15:
ASN1Free_BandwidthReject(&(val)->u.bandwidthReject);
break;
case 16:
ASN1Free_DisengageRequest(&(val)->u.disengageRequest);
break;
case 17:
ASN1Free_DisengageConfirm(&(val)->u.disengageConfirm);
break;
case 18:
ASN1Free_DisengageReject(&(val)->u.disengageReject);
break;
case 19:
ASN1Free_LocationRequest(&(val)->u.locationRequest);
break;
case 20:
ASN1Free_LocationConfirm(&(val)->u.locationConfirm);
break;
case 21:
ASN1Free_LocationReject(&(val)->u.locationReject);
break;
case 22:
ASN1Free_InfoRequest(&(val)->u.infoRequest);
break;
case 23:
ASN1Free_InfoRequestResponse(&(val)->u.infoRequestResponse);
break;
case 24:
ASN1Free_H225NonStandardMessage(&(val)->u.nonStandardMessage);
break;
case 25:
ASN1Free_UnknownMessageResponse(&(val)->u.unknownMessageResponse);
break;
case 26:
ASN1Free_RequestInProgress(&(val)->u.requestInProgress);
break;
case 27:
ASN1Free_ResourcesAvailableIndicate(&(val)->u.resourcesAvailableIndicate);
break;
case 28:
ASN1Free_ResourcesAvailableConfirm(&(val)->u.resourcesAvailableConfirm);
break;
case 29:
ASN1Free_InfoRequestAck(&(val)->u.infoRequestAck);
break;
case 30:
ASN1Free_InfoRequestNak(&(val)->u.infoRequestNak);
break;
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_cryptoTokens_ElmFn(PInfoRequestResponse_perCallInfo_Seq_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_ResourcesAvailableConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_ResourcesAvailableConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens(PResourcesAvailableConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_ResourcesAvailableConfirm_cryptoTokens_ElmFn(PResourcesAvailableConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ResourcesAvailableIndicate_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_ResourcesAvailableIndicate_cryptoTokens_ElmFn(ASN1encoding_t enc, PResourcesAvailableIndicate_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ResourcesAvailableIndicate_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_ResourcesAvailableIndicate_cryptoTokens_ElmFn(ASN1decoding_t dec, PResourcesAvailableIndicate_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens(PResourcesAvailableIndicate_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ResourcesAvailableIndicate_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_ResourcesAvailableIndicate_cryptoTokens_ElmFn(PResourcesAvailableIndicate_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens(ASN1encoding_t enc, PRequestInProgress_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RequestInProgress_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RequestInProgress_cryptoTokens_ElmFn(ASN1encoding_t enc, PRequestInProgress_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens(ASN1decoding_t dec, PRequestInProgress_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RequestInProgress_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RequestInProgress_cryptoTokens_ElmFn(ASN1decoding_t dec, PRequestInProgress_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens(PRequestInProgress_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RequestInProgress_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RequestInProgress_cryptoTokens_ElmFn(PRequestInProgress_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnknownMessageResponse_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnknownMessageResponse_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnknownMessageResponse_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnknownMessageResponse_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnknownMessageResponse_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnknownMessageResponse_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens(PUnknownMessageResponse_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnknownMessageResponse_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnknownMessageResponse_cryptoTokens_ElmFn(PUnknownMessageResponse_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_H225NonStandardMessage_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_H225NonStandardMessage_cryptoTokens_ElmFn(ASN1encoding_t enc, PH225NonStandardMessage_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_H225NonStandardMessage_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_H225NonStandardMessage_cryptoTokens_ElmFn(ASN1decoding_t dec, PH225NonStandardMessage_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens(PH225NonStandardMessage_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_H225NonStandardMessage_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_H225NonStandardMessage_cryptoTokens_ElmFn(PH225NonStandardMessage_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestNak_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestNak_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestNak_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestNak_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestNak_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestNak_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens(PInfoRequestNak_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestNak_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestNak_cryptoTokens_ElmFn(PInfoRequestNak_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestAck_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestAck_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestAck_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestAck_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestAck_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestAck_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens(PInfoRequestAck_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestAck_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestAck_cryptoTokens_ElmFn(PInfoRequestAck_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens(PInfoRequestResponse_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_cryptoTokens_ElmFn(PInfoRequestResponse_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens(ASN1encoding_t enc, PInfoRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PInfoRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens(ASN1decoding_t dec, PInfoRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PInfoRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens(PInfoRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequest_cryptoTokens_ElmFn(PInfoRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens(ASN1encoding_t enc, PDisengageReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_DisengageReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens(ASN1decoding_t dec, PDisengageReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_DisengageReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens(PDisengageReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_DisengageReject_cryptoTokens_ElmFn(PDisengageReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_DisengageConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_DisengageConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens(PDisengageConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_DisengageConfirm_cryptoTokens_ElmFn(PDisengageConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens(ASN1encoding_t enc, PDisengageRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_DisengageRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_DisengageRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PDisengageRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens(ASN1decoding_t dec, PDisengageRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_DisengageRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_DisengageRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PDisengageRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens(PDisengageRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_DisengageRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_DisengageRequest_cryptoTokens_ElmFn(PDisengageRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens(ASN1encoding_t enc, PLocationReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens(ASN1decoding_t dec, PLocationReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationReject_cryptoTokens(PLocationReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationReject_cryptoTokens_ElmFn(PLocationReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens(ASN1encoding_t enc, PLocationConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens(ASN1decoding_t dec, PLocationConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens(PLocationConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationConfirm_cryptoTokens_ElmFn(PLocationConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens(ASN1encoding_t enc, PLocationRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_LocationRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_LocationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PLocationRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens(ASN1decoding_t dec, PLocationRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_LocationRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_LocationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PLocationRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens(PLocationRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_LocationRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_LocationRequest_cryptoTokens_ElmFn(PLocationRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens(ASN1encoding_t enc, PBandwidthReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_BandwidthReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens(ASN1decoding_t dec, PBandwidthReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_BandwidthReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens(PBandwidthReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_BandwidthReject_cryptoTokens_ElmFn(PBandwidthReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_BandwidthConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_BandwidthConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens(PBandwidthConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_BandwidthConfirm_cryptoTokens_ElmFn(PBandwidthConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_BandwidthRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_BandwidthRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PBandwidthRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_BandwidthRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_BandwidthRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PBandwidthRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens(PBandwidthRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_BandwidthRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_BandwidthRequest_cryptoTokens_ElmFn(PBandwidthRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens(ASN1encoding_t enc, PAdmissionReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens(ASN1decoding_t dec, PAdmissionReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens(PAdmissionReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionReject_cryptoTokens_ElmFn(PAdmissionReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens(PAdmissionConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionConfirm_cryptoTokens_ElmFn(PAdmissionConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_AdmissionRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_AdmissionRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PAdmissionRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_AdmissionRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_AdmissionRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PAdmissionRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens(PAdmissionRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_AdmissionRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_AdmissionRequest_cryptoTokens_ElmFn(PAdmissionRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens(PUnregistrationReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationReject_cryptoTokens_ElmFn(PUnregistrationReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens(PUnregistrationConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationConfirm_cryptoTokens_ElmFn(PUnregistrationConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_UnregistrationRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_UnregistrationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PUnregistrationRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_UnregistrationRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_UnregistrationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PUnregistrationRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens(PUnregistrationRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_UnregistrationRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_UnregistrationRequest_cryptoTokens_ElmFn(PUnregistrationRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens(ASN1encoding_t enc, PRegistrationReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens(ASN1decoding_t dec, PRegistrationReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens(PRegistrationReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationReject_cryptoTokens_ElmFn(PRegistrationReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens(PRegistrationConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationConfirm_cryptoTokens_ElmFn(PRegistrationConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_RegistrationRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_RegistrationRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PRegistrationRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_RegistrationRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_RegistrationRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PRegistrationRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens(PRegistrationRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_RegistrationRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_RegistrationRequest_cryptoTokens_ElmFn(PRegistrationRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperReject_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperReject_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperReject_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperReject_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperReject_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperReject_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens(PGatekeeperReject_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperReject_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperReject_cryptoTokens_ElmFn(PGatekeeperReject_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperConfirm_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperConfirm_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperConfirm_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperConfirm_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperConfirm_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperConfirm_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens(PGatekeeperConfirm_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperConfirm_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperConfirm_cryptoTokens_ElmFn(PGatekeeperConfirm_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_GatekeeperRequest_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_GatekeeperRequest_cryptoTokens_ElmFn(ASN1encoding_t enc, PGatekeeperRequest_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_GatekeeperRequest_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_GatekeeperRequest_cryptoTokens_ElmFn(ASN1decoding_t dec, PGatekeeperRequest_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens(PGatekeeperRequest_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_GatekeeperRequest_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_GatekeeperRequest_cryptoTokens_ElmFn(PGatekeeperRequest_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens(ASN1encoding_t enc, PEndpoint_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Endpoint_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Endpoint_cryptoTokens_ElmFn(ASN1encoding_t enc, PEndpoint_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens(ASN1decoding_t dec, PEndpoint_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Endpoint_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Endpoint_cryptoTokens_ElmFn(ASN1decoding_t dec, PEndpoint_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Endpoint_cryptoTokens(PEndpoint_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Endpoint_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Endpoint_cryptoTokens_ElmFn(PEndpoint_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Progress_UUIE_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Progress_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PProgress_UUIE_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Progress_UUIE_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Progress_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PProgress_UUIE_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens(PProgress_UUIE_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Progress_UUIE_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Progress_UUIE_cryptoTokens_ElmFn(PProgress_UUIE_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE_conferences(ASN1encoding_t enc, PFacility_UUIE_conferences *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_conferences_ElmFn);
}
static int ASN1CALL ASN1Enc_Facility_UUIE_conferences_ElmFn(ASN1encoding_t enc, PFacility_UUIE_conferences val)
{
if (!ASN1Enc_ConferenceList(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE_conferences(ASN1decoding_t dec, PFacility_UUIE_conferences *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_conferences_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Facility_UUIE_conferences_ElmFn(ASN1decoding_t dec, PFacility_UUIE_conferences val)
{
if (!ASN1Dec_ConferenceList(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE_conferences(PFacility_UUIE_conferences *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_conferences_ElmFn);
}
}
static void ASN1CALL ASN1Free_Facility_UUIE_conferences_ElmFn(PFacility_UUIE_conferences val)
{
if (val) {
ASN1Free_ConferenceList(&val->value);
}
}
static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Facility_UUIE_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Facility_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PFacility_UUIE_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Facility_UUIE_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Facility_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PFacility_UUIE_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens(PFacility_UUIE_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Facility_UUIE_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Facility_UUIE_cryptoTokens_ElmFn(PFacility_UUIE_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Setup_UUIE_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Setup_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PSetup_UUIE_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Setup_UUIE_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Setup_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PSetup_UUIE_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens(PSetup_UUIE_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Setup_UUIE_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Setup_UUIE_cryptoTokens_ElmFn(PSetup_UUIE_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Connect_UUIE_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Connect_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PConnect_UUIE_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Connect_UUIE_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Connect_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PConnect_UUIE_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens(PConnect_UUIE_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Connect_UUIE_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Connect_UUIE_cryptoTokens_ElmFn(PConnect_UUIE_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_CallProceeding_UUIE_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_CallProceeding_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PCallProceeding_UUIE_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_CallProceeding_UUIE_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_CallProceeding_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PCallProceeding_UUIE_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens(PCallProceeding_UUIE_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_CallProceeding_UUIE_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_CallProceeding_UUIE_cryptoTokens_ElmFn(PCallProceeding_UUIE_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_Alerting_UUIE_cryptoTokens_ElmFn);
}
static int ASN1CALL ASN1Enc_Alerting_UUIE_cryptoTokens_ElmFn(ASN1encoding_t enc, PAlerting_UUIE_cryptoTokens val)
{
if (!ASN1Enc_CryptoH323Token(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_Alerting_UUIE_cryptoTokens_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_Alerting_UUIE_cryptoTokens_ElmFn(ASN1decoding_t dec, PAlerting_UUIE_cryptoTokens val)
{
if (!ASN1Dec_CryptoH323Token(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens(PAlerting_UUIE_cryptoTokens *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_Alerting_UUIE_cryptoTokens_ElmFn);
}
}
static void ASN1CALL ASN1Free_Alerting_UUIE_cryptoTokens_ElmFn(PAlerting_UUIE_cryptoTokens val)
{
if (val) {
ASN1Free_CryptoH323Token(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323_UU_PDU_h323_message_body(ASN1encoding_t enc, H323_UU_PDU_h323_message_body *val)
{
ASN1encoding_t ee;
if (!ASN1PEREncComplexChoice(enc, (val)->choice, 3, 7))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Enc_Setup_UUIE(enc, &(val)->u.setup))
return 0;
break;
case 2:
if (!ASN1Enc_CallProceeding_UUIE(enc, &(val)->u.callProceeding))
return 0;
break;
case 3:
if (!ASN1Enc_Connect_UUIE(enc, &(val)->u.connect))
return 0;
break;
case 4:
if (!ASN1Enc_Alerting_UUIE(enc, &(val)->u.alerting))
return 0;
break;
case 5:
if (!ASN1Enc_Information_UUIE(enc, &(val)->u.information))
return 0;
break;
case 6:
if (!ASN1Enc_ReleaseComplete_UUIE(enc, &(val)->u.releaseComplete))
return 0;
break;
case 7:
if (!ASN1Enc_Facility_UUIE(enc, &(val)->u.facility))
return 0;
break;
case 8:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1Enc_Progress_UUIE(ee, &(val)->u.progress))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
case 9:
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
ASN1_CloseEncoder2(ee);
break;
default:
/* impossible */
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_H323_UU_PDU_h323_message_body(ASN1decoding_t dec, H323_UU_PDU_h323_message_body *val)
{
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
if (!ASN1PERDecComplexChoice(dec, &(val)->choice, 3, 7))
return 0;
switch ((val)->choice) {
case 1:
if (!ASN1Dec_Setup_UUIE(dec, &(val)->u.setup))
return 0;
break;
case 2:
if (!ASN1Dec_CallProceeding_UUIE(dec, &(val)->u.callProceeding))
return 0;
break;
case 3:
if (!ASN1Dec_Connect_UUIE(dec, &(val)->u.connect))
return 0;
break;
case 4:
if (!ASN1Dec_Alerting_UUIE(dec, &(val)->u.alerting))
return 0;
break;
case 5:
if (!ASN1Dec_Information_UUIE(dec, &(val)->u.information))
return 0;
break;
case 6:
if (!ASN1Dec_ReleaseComplete_UUIE(dec, &(val)->u.releaseComplete))
return 0;
break;
case 7:
if (!ASN1Dec_Facility_UUIE(dec, &(val)->u.facility))
return 0;
break;
case 8:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_Progress_UUIE(dd, &(val)->u.progress))
return 0;
ASN1_CloseDecoder(dd);
break;
case 9:
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
ASN1_CloseDecoder(dd);
break;
case 0:
/* extension case */
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
break;
default:
/* impossible */
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_H323_UU_PDU_h323_message_body(H323_UU_PDU_h323_message_body *val)
{
if (val) {
switch ((val)->choice) {
case 1:
ASN1Free_Setup_UUIE(&(val)->u.setup);
break;
case 2:
ASN1Free_CallProceeding_UUIE(&(val)->u.callProceeding);
break;
case 3:
ASN1Free_Connect_UUIE(&(val)->u.connect);
break;
case 4:
ASN1Free_Alerting_UUIE(&(val)->u.alerting);
break;
case 5:
ASN1Free_Information_UUIE(&(val)->u.information);
break;
case 6:
ASN1Free_ReleaseComplete_UUIE(&(val)->u.releaseComplete);
break;
case 7:
ASN1Free_Facility_UUIE(&(val)->u.facility);
break;
case 8:
ASN1Free_Progress_UUIE(&(val)->u.progress);
break;
}
}
}
static int ASN1CALL ASN1Enc_H323_UU_PDU(ASN1encoding_t enc, H323_UU_PDU *val)
{
ASN1octet_t o[2];
ASN1uint32_t y;
ASN1encoding_t ee;
CopyMemory(o, (val)->o, 2);
o[1] |= 0x40;
y = ASN1PEREncCheckExtensions(4, (val)->o + 1);
if (!ASN1PEREncBitVal(enc, 1, y))
return 0;
if (!ASN1PEREncBits(enc, 1, o))
return 0;
if (!ASN1Enc_H323_UU_PDU_h323_message_body(enc, &(val)->h323_message_body))
return 0;
if (o[0] & 0x80) {
if (!ASN1Enc_H225NonStandardParameter(enc, &(val)->nonStandardData))
return 0;
}
if (y) {
if (!ASN1PEREncNormallySmallBits(enc, 4, o + 1))
return 0;
if (ASN1_CreateEncoder(enc->module, &ee, NULL, 0, enc) < 0)
return 0;
if (o[1] & 0x80) {
if (!ASN1Enc_H323_UU_PDU_h4501SupplementaryService(ee, &(val)->h4501SupplementaryService))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x40) {
if (!ASN1PEREncBoolean(ee, (val)->h245Tunneling))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x20) {
if (!ASN1Enc_H323_UU_PDU_h245Control(ee, &(val)->h245Control))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
if (o[1] & 0x10) {
if (!ASN1Enc_H323_UU_PDU_nonStandardControl(ee, &(val)->nonStandardControl))
return 0;
if (!ASN1PEREncFlushFragmentedToParent(ee))
return 0;
}
ASN1_CloseEncoder2(ee);
}
return 1;
}
static int ASN1CALL ASN1Dec_H323_UU_PDU(ASN1decoding_t dec, H323_UU_PDU *val)
{
ASN1uint32_t y;
ASN1decoding_t dd;
ASN1octet_t *db;
ASN1uint32_t ds;
ASN1uint32_t i;
ASN1uint32_t e;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1Dec_H323_UU_PDU_h323_message_body(dec, &(val)->h323_message_body))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H225NonStandardParameter(dec, &(val)->nonStandardData))
return 0;
}
if (!y) {
ZeroMemory((val)->o + 1, 1);
} else {
if (!ASN1PERDecNormallySmallExtension(dec, &e, 4, (val)->o + 1))
return 0;
if ((val)->o[1] & 0x80) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H323_UU_PDU_h4501SupplementaryService(dd, &(val)->h4501SupplementaryService))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x40) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1PERDecBoolean(dd, &(val)->h245Tunneling))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x20) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H323_UU_PDU_h245Control(dd, &(val)->h245Control))
return 0;
ASN1_CloseDecoder(dd);
}
if ((val)->o[1] & 0x10) {
if (!ASN1PERDecFragmented(dec, &ds, &db, 8))
return 0;
if (ASN1_CreateDecoderEx(dec->module, &dd, db, ds, dec, ASN1DECODE_AUTOFREEBUFFER) < 0)
return 0;
if (!ASN1Dec_H323_UU_PDU_nonStandardControl(dd, &(val)->nonStandardControl))
return 0;
ASN1_CloseDecoder(dd);
}
for (i = 0; i < e; i++) {
if (!ASN1PERDecSkipFragmented(dec, 8))
return 0;
}
}
return 1;
}
static void ASN1CALL ASN1Free_H323_UU_PDU(H323_UU_PDU *val)
{
if (val) {
ASN1Free_H323_UU_PDU_h323_message_body(&(val)->h323_message_body);
if ((val)->o[0] & 0x80) {
ASN1Free_H225NonStandardParameter(&(val)->nonStandardData);
}
if ((val)->o[1] & 0x80) {
ASN1Free_H323_UU_PDU_h4501SupplementaryService(&(val)->h4501SupplementaryService);
}
if ((val)->o[1] & 0x20) {
ASN1Free_H323_UU_PDU_h245Control(&(val)->h245Control);
}
if ((val)->o[1] & 0x10) {
ASN1Free_H323_UU_PDU_nonStandardControl(&(val)->nonStandardControl);
}
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1encoding_t enc, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
{
if (!ASN1Enc_H323_UU_PDU(enc, &(val)->h323pdu))
return 0;
if (!ASN1PEREncBoolean(enc, (val)->sent))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(ASN1decoding_t dec, InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
{
if (!ASN1Dec_H323_UU_PDU(dec, &(val)->h323pdu))
return 0;
if (!ASN1PERDecBoolean(dec, &(val)->sent))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(InfoRequestResponse_perCallInfo_Seq_pdu_Seq *val)
{
if (val) {
ASN1Free_H323_UU_PDU(&(val)->h323pdu);
}
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu *val)
{
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn);
}
static int ASN1CALL ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(ASN1encoding_t enc, PInfoRequestResponse_perCallInfo_Seq_pdu val)
{
if (!ASN1Enc_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(enc, &val->value))
return 0;
return 1;
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu *val)
{
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn, sizeof(**val));
}
static int ASN1CALL ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(ASN1decoding_t dec, PInfoRequestResponse_perCallInfo_Seq_pdu val)
{
if (!ASN1Dec_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(dec, &val->value))
return 0;
return 1;
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu(PInfoRequestResponse_perCallInfo_Seq_pdu *val)
{
if (val) {
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn);
}
}
static void ASN1CALL ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_ElmFn(PInfoRequestResponse_perCallInfo_Seq_pdu val)
{
if (val) {
ASN1Free_InfoRequestResponse_perCallInfo_Seq_pdu_Seq(&val->value);
}
}
static int ASN1CALL ASN1Enc_H323_UserInformation(ASN1encoding_t enc, H323_UserInformation *val)
{
if (!ASN1PEREncExtensionBitClear(enc))
return 0;
if (!ASN1PEREncBits(enc, 1, (val)->o))
return 0;
if (!ASN1Enc_H323_UU_PDU(enc, &(val)->h323_uu_pdu))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Enc_H323_UserInformation_user_data(enc, &(val)->user_data))
return 0;
}
return 1;
}
static int ASN1CALL ASN1Dec_H323_UserInformation(ASN1decoding_t dec, H323_UserInformation *val)
{
ASN1uint32_t y;
if (!ASN1PERDecExtensionBit(dec, &y))
return 0;
if (!ASN1PERDecExtension(dec, 1, (val)->o))
return 0;
if (!ASN1Dec_H323_UU_PDU(dec, &(val)->h323_uu_pdu))
return 0;
if ((val)->o[0] & 0x80) {
if (!ASN1Dec_H323_UserInformation_user_data(dec, &(val)->user_data))
return 0;
}
if (y) {
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
return 0;
}
return 1;
}
static void ASN1CALL ASN1Free_H323_UserInformation(H323_UserInformation *val)
{
if (val) {
ASN1Free_H323_UU_PDU(&(val)->h323_uu_pdu);
if ((val)->o[0] & 0x80) {
ASN1Free_H323_UserInformation_user_data(&(val)->user_data);
}
}
}