mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7084 lines
222 KiB
7084 lines
222 KiB
#include <windows.h>
|
|
#include "gccpdu.h"
|
|
|
|
ASN1module_t GCCPDU_Module = NULL;
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationCapabilitiesList(ASN1encoding_t enc, ApplicationCapabilitiesList *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationRecordList(ASN1encoding_t enc, ApplicationRecordList *val);
|
|
static int ASN1CALL ASN1Enc_HighLayerCompatibility(ASN1encoding_t enc, HighLayerCompatibility *val);
|
|
static int ASN1CALL ASN1Enc_TransferModes(ASN1encoding_t enc, TransferModes *val);
|
|
static int ASN1CALL ASN1Enc_TransportConnectionType(ASN1encoding_t enc, TransportConnectionType *val);
|
|
static int ASN1CALL ASN1Enc_AggregateChannel(ASN1encoding_t enc, AggregateChannel *val);
|
|
static int ASN1CALL ASN1Enc_NodeRecordList(ASN1encoding_t enc, NodeRecordList *val);
|
|
static int ASN1CALL ASN1Enc_WaitingList(ASN1encoding_t enc, PWaitingList *val);
|
|
static int ASN1CALL ASN1Enc_PermissionList(ASN1encoding_t enc, PPermissionList *val);
|
|
static int ASN1CALL ASN1Enc_SetOfDestinationNodes(ASN1encoding_t enc, PSetOfDestinationNodes *val);
|
|
static int ASN1CALL ASN1Enc_NodeInformation(ASN1encoding_t enc, NodeInformation *val);
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesIn(ASN1encoding_t enc, PSetOfTransferringNodesIn *val);
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesRs(ASN1encoding_t enc, PSetOfTransferringNodesRs *val);
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesRq(ASN1encoding_t enc, PSetOfTransferringNodesRq *val);
|
|
static int ASN1CALL ASN1Enc_RegistryEntryOwnerOwned(ASN1encoding_t enc, RegistryEntryOwnerOwned *val);
|
|
static int ASN1CALL ASN1Enc_ParticipantsList(ASN1encoding_t enc, PParticipantsList *val);
|
|
static int ASN1CALL ASN1Enc_Key(ASN1encoding_t enc, Key *val);
|
|
static int ASN1CALL ASN1Enc_NonStandardParameter(ASN1encoding_t enc, NonStandardParameter *val);
|
|
static int ASN1CALL ASN1Enc_Password(ASN1encoding_t enc, Password *val);
|
|
static int ASN1CALL ASN1Enc_PasswordSelector(ASN1encoding_t enc, PasswordSelector *val);
|
|
static int ASN1CALL ASN1Enc_ChallengeResponseItem(ASN1encoding_t enc, ChallengeResponseItem *val);
|
|
static int ASN1CALL ASN1Enc_ChallengeResponseAlgorithm(ASN1encoding_t enc, ChallengeResponseAlgorithm *val);
|
|
static int ASN1CALL ASN1Enc_ChallengeItem(ASN1encoding_t enc, ChallengeItem *val);
|
|
static int ASN1CALL ASN1Enc_ChallengeRequest(ASN1encoding_t enc, ChallengeRequest *val);
|
|
static int ASN1CALL ASN1Enc_ChallengeResponse(ASN1encoding_t enc, ChallengeResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceName(ASN1encoding_t enc, ConferenceName *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceNameSelector(ASN1encoding_t enc, ConferenceNameSelector *val);
|
|
static int ASN1CALL ASN1Enc_NodeProperties(ASN1encoding_t enc, NodeProperties *val);
|
|
static int ASN1CALL ASN1Enc_AsymmetryIndicator(ASN1encoding_t enc, AsymmetryIndicator *val);
|
|
static int ASN1CALL ASN1Enc_AlternativeNodeID(ASN1encoding_t enc, AlternativeNodeID *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceDescriptor(ASN1encoding_t enc, ConferenceDescriptor *val);
|
|
static int ASN1CALL ASN1Enc_NodeRecord(ASN1encoding_t enc, NodeRecord *val);
|
|
static int ASN1CALL ASN1Enc_SessionKey(ASN1encoding_t enc, SessionKey *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationRecord(ASN1encoding_t enc, ApplicationRecord *val);
|
|
static int ASN1CALL ASN1Enc_CapabilityID(ASN1encoding_t enc, CapabilityID *val);
|
|
static int ASN1CALL ASN1Enc_CapabilityClass(ASN1encoding_t enc, CapabilityClass *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationInvokeSpecifier(ASN1encoding_t enc, ApplicationInvokeSpecifier *val);
|
|
static int ASN1CALL ASN1Enc_RegistryKey(ASN1encoding_t enc, RegistryKey *val);
|
|
static int ASN1CALL ASN1Enc_RegistryItem(ASN1encoding_t enc, RegistryItem *val);
|
|
static int ASN1CALL ASN1Enc_RegistryEntryOwner(ASN1encoding_t enc, RegistryEntryOwner *val);
|
|
static int ASN1CALL ASN1Enc_UserIDIndication(ASN1encoding_t enc, UserIDIndication *val);
|
|
static int ASN1CALL ASN1Enc_SetOfPrivileges(ASN1encoding_t enc, PSetOfPrivileges *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceCreateRequest(ASN1encoding_t enc, ConferenceCreateRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceCreateResponse(ASN1encoding_t enc, ConferenceCreateResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceQueryRequest(ASN1encoding_t enc, ConferenceQueryRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceQueryResponse(ASN1encoding_t enc, ConferenceQueryResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceInviteRequest(ASN1encoding_t enc, ConferenceInviteRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceInviteResponse(ASN1encoding_t enc, ConferenceInviteResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceAddRequest(ASN1encoding_t enc, ConferenceAddRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceAddResponse(ASN1encoding_t enc, ConferenceAddResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceLockRequest(ASN1encoding_t enc, ConferenceLockRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceLockResponse(ASN1encoding_t enc, ConferenceLockResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceLockIndication(ASN1encoding_t enc, ConferenceLockIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceUnlockRequest(ASN1encoding_t enc, ConferenceUnlockRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceUnlockResponse(ASN1encoding_t enc, ConferenceUnlockResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceUnlockIndication(ASN1encoding_t enc, ConferenceUnlockIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTerminateRequest(ASN1encoding_t enc, ConferenceTerminateRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTerminateResponse(ASN1encoding_t enc, ConferenceTerminateResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTerminateIndication(ASN1encoding_t enc, ConferenceTerminateIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceEjectUserRequest(ASN1encoding_t enc, ConferenceEjectUserRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceEjectUserResponse(ASN1encoding_t enc, ConferenceEjectUserResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceEjectUserIndication(ASN1encoding_t enc, ConferenceEjectUserIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTransferRequest(ASN1encoding_t enc, ConferenceTransferRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTransferResponse(ASN1encoding_t enc, ConferenceTransferResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTransferIndication(ASN1encoding_t enc, ConferenceTransferIndication *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication(ASN1encoding_t enc, RosterUpdateIndication *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationInvokeIndication(ASN1encoding_t enc, ApplicationInvokeIndication *val);
|
|
static int ASN1CALL ASN1Enc_RegistryRegisterChannelRequest(ASN1encoding_t enc, RegistryRegisterChannelRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistryAssignTokenRequest(ASN1encoding_t enc, RegistryAssignTokenRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistrySetParameterRequest(ASN1encoding_t enc, RegistrySetParameterRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistryRetrieveEntryRequest(ASN1encoding_t enc, RegistryRetrieveEntryRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistryDeleteEntryRequest(ASN1encoding_t enc, RegistryDeleteEntryRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistryMonitorEntryRequest(ASN1encoding_t enc, RegistryMonitorEntryRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistryMonitorEntryIndication(ASN1encoding_t enc, RegistryMonitorEntryIndication *val);
|
|
static int ASN1CALL ASN1Enc_RegistryAllocateHandleRequest(ASN1encoding_t enc, RegistryAllocateHandleRequest *val);
|
|
static int ASN1CALL ASN1Enc_RegistryAllocateHandleResponse(ASN1encoding_t enc, RegistryAllocateHandleResponse *val);
|
|
static int ASN1CALL ASN1Enc_RegistryResponse(ASN1encoding_t enc, RegistryResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConductorAssignIndication(ASN1encoding_t enc, ConductorAssignIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConductorReleaseIndication(ASN1encoding_t enc, ConductorReleaseIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConductorPermissionAskIndication(ASN1encoding_t enc, ConductorPermissionAskIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConductorPermissionGrantIndication(ASN1encoding_t enc, ConductorPermissionGrantIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTimeRemainingIndication(ASN1encoding_t enc, ConferenceTimeRemainingIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTimeInquireIndication(ASN1encoding_t enc, ConferenceTimeInquireIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceTimeExtendIndication(ASN1encoding_t enc, ConferenceTimeExtendIndication *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceAssistanceIndication(ASN1encoding_t enc, ConferenceAssistanceIndication *val);
|
|
static int ASN1CALL ASN1Enc_TextMessageIndication(ASN1encoding_t enc, TextMessageIndication *val);
|
|
static int ASN1CALL ASN1Enc_NonStandardPDU(ASN1encoding_t enc, NonStandardPDU *val);
|
|
static int ASN1CALL ASN1Enc_ConnectData(ASN1encoding_t enc, ConnectData *val);
|
|
static int ASN1CALL ASN1Enc_IndicationPDU(ASN1encoding_t enc, IndicationPDU *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationUpdate(ASN1encoding_t enc, ApplicationUpdate *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set *val);
|
|
static int ASN1CALL ASN1Enc_NodeUpdate(ASN1encoding_t enc, NodeUpdate *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(ASN1encoding_t enc, RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(ASN1encoding_t enc, RosterUpdateIndication_node_information_node_record_list_node_record_update_Set *val);
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationRecordUpdates(ASN1encoding_t enc, PSetOfApplicationRecordUpdates *val);
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationRecordRefreshes(ASN1encoding_t enc, PSetOfApplicationRecordRefreshes *val);
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationCapabilityRefreshes(ASN1encoding_t enc, PSetOfApplicationCapabilityRefreshes *val);
|
|
static int ASN1CALL ASN1Enc_SetOfNodeRecordUpdates(ASN1encoding_t enc, PSetOfNodeRecordUpdates *val);
|
|
static int ASN1CALL ASN1Enc_SetOfNodeRecordRefreshes(ASN1encoding_t enc, PSetOfNodeRecordRefreshes *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationRecord_non_collapsing_capabilities_Set(ASN1encoding_t enc, ApplicationRecord_non_collapsing_capabilities_Set *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationInvokeSpecifier_expected_capability_set_Set(ASN1encoding_t enc, ApplicationInvokeSpecifier_expected_capability_set_Set *val);
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set *val);
|
|
static int ASN1CALL ASN1Enc_ApplicationProtocolEntityList(ASN1encoding_t enc, PApplicationProtocolEntityList *val);
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationInformation(ASN1encoding_t enc, PSetOfApplicationInformation *val);
|
|
static int ASN1CALL ASN1Enc_SetOfConferenceDescriptors(ASN1encoding_t enc, PSetOfConferenceDescriptors *val);
|
|
static int ASN1CALL ASN1Enc_SetOfExpectedCapabilities(ASN1encoding_t enc, PSetOfExpectedCapabilities *val);
|
|
static int ASN1CALL ASN1Enc_SetOfNonCollapsingCapabilities(ASN1encoding_t enc, PSetOfNonCollapsingCapabilities *val);
|
|
static int ASN1CALL ASN1Enc_NetworkAddress(ASN1encoding_t enc, NetworkAddress *val);
|
|
static int ASN1CALL ASN1Enc_ChallengeRequestResponse(ASN1encoding_t enc, ChallengeRequestResponse *val);
|
|
static int ASN1CALL ASN1Enc_SetOfChallengeItems(ASN1encoding_t enc, PSetOfChallengeItems *val);
|
|
static int ASN1CALL ASN1Enc_UserData_Set(ASN1encoding_t enc, UserData_Set *val);
|
|
static int ASN1CALL ASN1Enc_SetOfUserData(ASN1encoding_t enc, PSetOfUserData *val);
|
|
static int ASN1CALL ASN1Enc_PasswordChallengeRequestResponse(ASN1encoding_t enc, PasswordChallengeRequestResponse *val);
|
|
static int ASN1CALL ASN1Enc_SetOfNetworkAddresses(ASN1encoding_t enc, PSetOfNetworkAddresses *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceJoinRequest(ASN1encoding_t enc, ConferenceJoinRequest *val);
|
|
static int ASN1CALL ASN1Enc_ConferenceJoinResponse(ASN1encoding_t enc, ConferenceJoinResponse *val);
|
|
static int ASN1CALL ASN1Enc_ConnectGCCPDU(ASN1encoding_t enc, ConnectGCCPDU *val);
|
|
static int ASN1CALL ASN1Enc_RequestPDU(ASN1encoding_t enc, RequestPDU *val);
|
|
static int ASN1CALL ASN1Enc_FunctionNotSupportedResponse(ASN1encoding_t enc, FunctionNotSupportedResponse *val);
|
|
static int ASN1CALL ASN1Enc_ResponsePDU(ASN1encoding_t enc, ResponsePDU *val);
|
|
static int ASN1CALL ASN1Enc_GCCPDU(ASN1encoding_t enc, GCCPDU *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationCapabilitiesList(ASN1decoding_t dec, ApplicationCapabilitiesList *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationRecordList(ASN1decoding_t dec, ApplicationRecordList *val);
|
|
static int ASN1CALL ASN1Dec_HighLayerCompatibility(ASN1decoding_t dec, HighLayerCompatibility *val);
|
|
static int ASN1CALL ASN1Dec_TransferModes(ASN1decoding_t dec, TransferModes *val);
|
|
static int ASN1CALL ASN1Dec_TransportConnectionType(ASN1decoding_t dec, TransportConnectionType *val);
|
|
static int ASN1CALL ASN1Dec_AggregateChannel(ASN1decoding_t dec, AggregateChannel *val);
|
|
static int ASN1CALL ASN1Dec_NodeRecordList(ASN1decoding_t dec, NodeRecordList *val);
|
|
static int ASN1CALL ASN1Dec_WaitingList(ASN1decoding_t dec, PWaitingList *val);
|
|
static int ASN1CALL ASN1Dec_PermissionList(ASN1decoding_t dec, PPermissionList *val);
|
|
static int ASN1CALL ASN1Dec_SetOfDestinationNodes(ASN1decoding_t dec, PSetOfDestinationNodes *val);
|
|
static int ASN1CALL ASN1Dec_NodeInformation(ASN1decoding_t dec, NodeInformation *val);
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesIn(ASN1decoding_t dec, PSetOfTransferringNodesIn *val);
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesRs(ASN1decoding_t dec, PSetOfTransferringNodesRs *val);
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesRq(ASN1decoding_t dec, PSetOfTransferringNodesRq *val);
|
|
static int ASN1CALL ASN1Dec_RegistryEntryOwnerOwned(ASN1decoding_t dec, RegistryEntryOwnerOwned *val);
|
|
static int ASN1CALL ASN1Dec_ParticipantsList(ASN1decoding_t dec, PParticipantsList *val);
|
|
static int ASN1CALL ASN1Dec_Key(ASN1decoding_t dec, Key *val);
|
|
static int ASN1CALL ASN1Dec_NonStandardParameter(ASN1decoding_t dec, NonStandardParameter *val);
|
|
static int ASN1CALL ASN1Dec_Password(ASN1decoding_t dec, Password *val);
|
|
static int ASN1CALL ASN1Dec_PasswordSelector(ASN1decoding_t dec, PasswordSelector *val);
|
|
static int ASN1CALL ASN1Dec_ChallengeResponseItem(ASN1decoding_t dec, ChallengeResponseItem *val);
|
|
static int ASN1CALL ASN1Dec_ChallengeResponseAlgorithm(ASN1decoding_t dec, ChallengeResponseAlgorithm *val);
|
|
static int ASN1CALL ASN1Dec_ChallengeItem(ASN1decoding_t dec, ChallengeItem *val);
|
|
static int ASN1CALL ASN1Dec_ChallengeRequest(ASN1decoding_t dec, ChallengeRequest *val);
|
|
static int ASN1CALL ASN1Dec_ChallengeResponse(ASN1decoding_t dec, ChallengeResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceName(ASN1decoding_t dec, ConferenceName *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceNameSelector(ASN1decoding_t dec, ConferenceNameSelector *val);
|
|
static int ASN1CALL ASN1Dec_NodeProperties(ASN1decoding_t dec, NodeProperties *val);
|
|
static int ASN1CALL ASN1Dec_AsymmetryIndicator(ASN1decoding_t dec, AsymmetryIndicator *val);
|
|
static int ASN1CALL ASN1Dec_AlternativeNodeID(ASN1decoding_t dec, AlternativeNodeID *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceDescriptor(ASN1decoding_t dec, ConferenceDescriptor *val);
|
|
static int ASN1CALL ASN1Dec_NodeRecord(ASN1decoding_t dec, NodeRecord *val);
|
|
static int ASN1CALL ASN1Dec_SessionKey(ASN1decoding_t dec, SessionKey *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationRecord(ASN1decoding_t dec, ApplicationRecord *val);
|
|
static int ASN1CALL ASN1Dec_CapabilityID(ASN1decoding_t dec, CapabilityID *val);
|
|
static int ASN1CALL ASN1Dec_CapabilityClass(ASN1decoding_t dec, CapabilityClass *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationInvokeSpecifier(ASN1decoding_t dec, ApplicationInvokeSpecifier *val);
|
|
static int ASN1CALL ASN1Dec_RegistryKey(ASN1decoding_t dec, RegistryKey *val);
|
|
static int ASN1CALL ASN1Dec_RegistryItem(ASN1decoding_t dec, RegistryItem *val);
|
|
static int ASN1CALL ASN1Dec_RegistryEntryOwner(ASN1decoding_t dec, RegistryEntryOwner *val);
|
|
static int ASN1CALL ASN1Dec_UserIDIndication(ASN1decoding_t dec, UserIDIndication *val);
|
|
static int ASN1CALL ASN1Dec_SetOfPrivileges(ASN1decoding_t dec, PSetOfPrivileges *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceCreateRequest(ASN1decoding_t dec, ConferenceCreateRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceCreateResponse(ASN1decoding_t dec, ConferenceCreateResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceQueryRequest(ASN1decoding_t dec, ConferenceQueryRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceQueryResponse(ASN1decoding_t dec, ConferenceQueryResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceInviteRequest(ASN1decoding_t dec, ConferenceInviteRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceInviteResponse(ASN1decoding_t dec, ConferenceInviteResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceAddRequest(ASN1decoding_t dec, ConferenceAddRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceAddResponse(ASN1decoding_t dec, ConferenceAddResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceLockRequest(ASN1decoding_t dec, ConferenceLockRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceLockResponse(ASN1decoding_t dec, ConferenceLockResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceLockIndication(ASN1decoding_t dec, ConferenceLockIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceUnlockRequest(ASN1decoding_t dec, ConferenceUnlockRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceUnlockResponse(ASN1decoding_t dec, ConferenceUnlockResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceUnlockIndication(ASN1decoding_t dec, ConferenceUnlockIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTerminateRequest(ASN1decoding_t dec, ConferenceTerminateRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTerminateResponse(ASN1decoding_t dec, ConferenceTerminateResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTerminateIndication(ASN1decoding_t dec, ConferenceTerminateIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceEjectUserRequest(ASN1decoding_t dec, ConferenceEjectUserRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceEjectUserResponse(ASN1decoding_t dec, ConferenceEjectUserResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceEjectUserIndication(ASN1decoding_t dec, ConferenceEjectUserIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTransferRequest(ASN1decoding_t dec, ConferenceTransferRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTransferResponse(ASN1decoding_t dec, ConferenceTransferResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTransferIndication(ASN1decoding_t dec, ConferenceTransferIndication *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication(ASN1decoding_t dec, RosterUpdateIndication *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationInvokeIndication(ASN1decoding_t dec, ApplicationInvokeIndication *val);
|
|
static int ASN1CALL ASN1Dec_RegistryRegisterChannelRequest(ASN1decoding_t dec, RegistryRegisterChannelRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistryAssignTokenRequest(ASN1decoding_t dec, RegistryAssignTokenRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistrySetParameterRequest(ASN1decoding_t dec, RegistrySetParameterRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistryRetrieveEntryRequest(ASN1decoding_t dec, RegistryRetrieveEntryRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistryDeleteEntryRequest(ASN1decoding_t dec, RegistryDeleteEntryRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistryMonitorEntryRequest(ASN1decoding_t dec, RegistryMonitorEntryRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistryMonitorEntryIndication(ASN1decoding_t dec, RegistryMonitorEntryIndication *val);
|
|
static int ASN1CALL ASN1Dec_RegistryAllocateHandleRequest(ASN1decoding_t dec, RegistryAllocateHandleRequest *val);
|
|
static int ASN1CALL ASN1Dec_RegistryAllocateHandleResponse(ASN1decoding_t dec, RegistryAllocateHandleResponse *val);
|
|
static int ASN1CALL ASN1Dec_RegistryResponse(ASN1decoding_t dec, RegistryResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConductorAssignIndication(ASN1decoding_t dec, ConductorAssignIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConductorReleaseIndication(ASN1decoding_t dec, ConductorReleaseIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConductorPermissionAskIndication(ASN1decoding_t dec, ConductorPermissionAskIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConductorPermissionGrantIndication(ASN1decoding_t dec, ConductorPermissionGrantIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTimeRemainingIndication(ASN1decoding_t dec, ConferenceTimeRemainingIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTimeInquireIndication(ASN1decoding_t dec, ConferenceTimeInquireIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceTimeExtendIndication(ASN1decoding_t dec, ConferenceTimeExtendIndication *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceAssistanceIndication(ASN1decoding_t dec, ConferenceAssistanceIndication *val);
|
|
static int ASN1CALL ASN1Dec_TextMessageIndication(ASN1decoding_t dec, TextMessageIndication *val);
|
|
static int ASN1CALL ASN1Dec_NonStandardPDU(ASN1decoding_t dec, NonStandardPDU *val);
|
|
static int ASN1CALL ASN1Dec_ConnectData(ASN1decoding_t dec, ConnectData *val);
|
|
static int ASN1CALL ASN1Dec_IndicationPDU(ASN1decoding_t dec, IndicationPDU *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationUpdate(ASN1decoding_t dec, ApplicationUpdate *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set *val);
|
|
static int ASN1CALL ASN1Dec_NodeUpdate(ASN1decoding_t dec, NodeUpdate *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(ASN1decoding_t dec, RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(ASN1decoding_t dec, RosterUpdateIndication_node_information_node_record_list_node_record_update_Set *val);
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationRecordUpdates(ASN1decoding_t dec, PSetOfApplicationRecordUpdates *val);
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationRecordRefreshes(ASN1decoding_t dec, PSetOfApplicationRecordRefreshes *val);
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationCapabilityRefreshes(ASN1decoding_t dec, PSetOfApplicationCapabilityRefreshes *val);
|
|
static int ASN1CALL ASN1Dec_SetOfNodeRecordUpdates(ASN1decoding_t dec, PSetOfNodeRecordUpdates *val);
|
|
static int ASN1CALL ASN1Dec_SetOfNodeRecordRefreshes(ASN1decoding_t dec, PSetOfNodeRecordRefreshes *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationRecord_non_collapsing_capabilities_Set(ASN1decoding_t dec, ApplicationRecord_non_collapsing_capabilities_Set *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationInvokeSpecifier_expected_capability_set_Set(ASN1decoding_t dec, ApplicationInvokeSpecifier_expected_capability_set_Set *val);
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set *val);
|
|
static int ASN1CALL ASN1Dec_ApplicationProtocolEntityList(ASN1decoding_t dec, PApplicationProtocolEntityList *val);
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationInformation(ASN1decoding_t dec, PSetOfApplicationInformation *val);
|
|
static int ASN1CALL ASN1Dec_SetOfConferenceDescriptors(ASN1decoding_t dec, PSetOfConferenceDescriptors *val);
|
|
static int ASN1CALL ASN1Dec_SetOfExpectedCapabilities(ASN1decoding_t dec, PSetOfExpectedCapabilities *val);
|
|
static int ASN1CALL ASN1Dec_SetOfNonCollapsingCapabilities(ASN1decoding_t dec, PSetOfNonCollapsingCapabilities *val);
|
|
static int ASN1CALL ASN1Dec_NetworkAddress(ASN1decoding_t dec, NetworkAddress *val);
|
|
static int ASN1CALL ASN1Dec_ChallengeRequestResponse(ASN1decoding_t dec, ChallengeRequestResponse *val);
|
|
static int ASN1CALL ASN1Dec_SetOfChallengeItems(ASN1decoding_t dec, PSetOfChallengeItems *val);
|
|
static int ASN1CALL ASN1Dec_UserData_Set(ASN1decoding_t dec, UserData_Set *val);
|
|
static int ASN1CALL ASN1Dec_SetOfUserData(ASN1decoding_t dec, PSetOfUserData *val);
|
|
static int ASN1CALL ASN1Dec_PasswordChallengeRequestResponse(ASN1decoding_t dec, PasswordChallengeRequestResponse *val);
|
|
static int ASN1CALL ASN1Dec_SetOfNetworkAddresses(ASN1decoding_t dec, PSetOfNetworkAddresses *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceJoinRequest(ASN1decoding_t dec, ConferenceJoinRequest *val);
|
|
static int ASN1CALL ASN1Dec_ConferenceJoinResponse(ASN1decoding_t dec, ConferenceJoinResponse *val);
|
|
static int ASN1CALL ASN1Dec_ConnectGCCPDU(ASN1decoding_t dec, ConnectGCCPDU *val);
|
|
static int ASN1CALL ASN1Dec_RequestPDU(ASN1decoding_t dec, RequestPDU *val);
|
|
static int ASN1CALL ASN1Dec_FunctionNotSupportedResponse(ASN1decoding_t dec, FunctionNotSupportedResponse *val);
|
|
static int ASN1CALL ASN1Dec_ResponsePDU(ASN1decoding_t dec, ResponsePDU *val);
|
|
static int ASN1CALL ASN1Dec_GCCPDU(ASN1decoding_t dec, GCCPDU *val);
|
|
static void ASN1CALL ASN1Free_ApplicationCapabilitiesList(ApplicationCapabilitiesList *val);
|
|
static void ASN1CALL ASN1Free_ApplicationRecordList(ApplicationRecordList *val);
|
|
static void ASN1CALL ASN1Free_TransportConnectionType(TransportConnectionType *val);
|
|
static void ASN1CALL ASN1Free_AggregateChannel(AggregateChannel *val);
|
|
static void ASN1CALL ASN1Free_NodeRecordList(NodeRecordList *val);
|
|
static void ASN1CALL ASN1Free_WaitingList(PWaitingList *val);
|
|
static void ASN1CALL ASN1Free_PermissionList(PPermissionList *val);
|
|
static void ASN1CALL ASN1Free_SetOfDestinationNodes(PSetOfDestinationNodes *val);
|
|
static void ASN1CALL ASN1Free_NodeInformation(NodeInformation *val);
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesIn(PSetOfTransferringNodesIn *val);
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesRs(PSetOfTransferringNodesRs *val);
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesRq(PSetOfTransferringNodesRq *val);
|
|
static void ASN1CALL ASN1Free_ParticipantsList(PParticipantsList *val);
|
|
static void ASN1CALL ASN1Free_Key(Key *val);
|
|
static void ASN1CALL ASN1Free_NonStandardParameter(NonStandardParameter *val);
|
|
static void ASN1CALL ASN1Free_Password(Password *val);
|
|
static void ASN1CALL ASN1Free_PasswordSelector(PasswordSelector *val);
|
|
static void ASN1CALL ASN1Free_ChallengeResponseItem(ChallengeResponseItem *val);
|
|
static void ASN1CALL ASN1Free_ChallengeResponseAlgorithm(ChallengeResponseAlgorithm *val);
|
|
static void ASN1CALL ASN1Free_ChallengeItem(ChallengeItem *val);
|
|
static void ASN1CALL ASN1Free_ChallengeRequest(ChallengeRequest *val);
|
|
static void ASN1CALL ASN1Free_ChallengeResponse(ChallengeResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceName(ConferenceName *val);
|
|
static void ASN1CALL ASN1Free_ConferenceNameSelector(ConferenceNameSelector *val);
|
|
static void ASN1CALL ASN1Free_AlternativeNodeID(AlternativeNodeID *val);
|
|
static void ASN1CALL ASN1Free_ConferenceDescriptor(ConferenceDescriptor *val);
|
|
static void ASN1CALL ASN1Free_NodeRecord(NodeRecord *val);
|
|
static void ASN1CALL ASN1Free_SessionKey(SessionKey *val);
|
|
static void ASN1CALL ASN1Free_ApplicationRecord(ApplicationRecord *val);
|
|
static void ASN1CALL ASN1Free_CapabilityID(CapabilityID *val);
|
|
static void ASN1CALL ASN1Free_ApplicationInvokeSpecifier(ApplicationInvokeSpecifier *val);
|
|
static void ASN1CALL ASN1Free_RegistryKey(RegistryKey *val);
|
|
static void ASN1CALL ASN1Free_RegistryItem(RegistryItem *val);
|
|
static void ASN1CALL ASN1Free_SetOfPrivileges(PSetOfPrivileges *val);
|
|
static void ASN1CALL ASN1Free_ConferenceCreateRequest(ConferenceCreateRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceCreateResponse(ConferenceCreateResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceQueryRequest(ConferenceQueryRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceQueryResponse(ConferenceQueryResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceInviteRequest(ConferenceInviteRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceInviteResponse(ConferenceInviteResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceAddRequest(ConferenceAddRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceAddResponse(ConferenceAddResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceTransferRequest(ConferenceTransferRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceTransferResponse(ConferenceTransferResponse *val);
|
|
static void ASN1CALL ASN1Free_ConferenceTransferIndication(ConferenceTransferIndication *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication(RosterUpdateIndication *val);
|
|
static void ASN1CALL ASN1Free_ApplicationInvokeIndication(ApplicationInvokeIndication *val);
|
|
static void ASN1CALL ASN1Free_RegistryRegisterChannelRequest(RegistryRegisterChannelRequest *val);
|
|
static void ASN1CALL ASN1Free_RegistryAssignTokenRequest(RegistryAssignTokenRequest *val);
|
|
static void ASN1CALL ASN1Free_RegistrySetParameterRequest(RegistrySetParameterRequest *val);
|
|
static void ASN1CALL ASN1Free_RegistryRetrieveEntryRequest(RegistryRetrieveEntryRequest *val);
|
|
static void ASN1CALL ASN1Free_RegistryDeleteEntryRequest(RegistryDeleteEntryRequest *val);
|
|
static void ASN1CALL ASN1Free_RegistryMonitorEntryRequest(RegistryMonitorEntryRequest *val);
|
|
static void ASN1CALL ASN1Free_RegistryMonitorEntryIndication(RegistryMonitorEntryIndication *val);
|
|
static void ASN1CALL ASN1Free_RegistryResponse(RegistryResponse *val);
|
|
static void ASN1CALL ASN1Free_ConductorPermissionGrantIndication(ConductorPermissionGrantIndication *val);
|
|
static void ASN1CALL ASN1Free_ConferenceAssistanceIndication(ConferenceAssistanceIndication *val);
|
|
static void ASN1CALL ASN1Free_TextMessageIndication(TextMessageIndication *val);
|
|
static void ASN1CALL ASN1Free_NonStandardPDU(NonStandardPDU *val);
|
|
static void ASN1CALL ASN1Free_ConnectData(ConnectData *val);
|
|
static void ASN1CALL ASN1Free_IndicationPDU(IndicationPDU *val);
|
|
static void ASN1CALL ASN1Free_ApplicationUpdate(ApplicationUpdate *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set *val);
|
|
static void ASN1CALL ASN1Free_NodeUpdate(NodeUpdate *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(RosterUpdateIndication_node_information_node_record_list_node_record_update_Set *val);
|
|
static void ASN1CALL ASN1Free_SetOfApplicationRecordUpdates(PSetOfApplicationRecordUpdates *val);
|
|
static void ASN1CALL ASN1Free_SetOfApplicationRecordRefreshes(PSetOfApplicationRecordRefreshes *val);
|
|
static void ASN1CALL ASN1Free_SetOfApplicationCapabilityRefreshes(PSetOfApplicationCapabilityRefreshes *val);
|
|
static void ASN1CALL ASN1Free_SetOfNodeRecordUpdates(PSetOfNodeRecordUpdates *val);
|
|
static void ASN1CALL ASN1Free_SetOfNodeRecordRefreshes(PSetOfNodeRecordRefreshes *val);
|
|
static void ASN1CALL ASN1Free_ApplicationRecord_non_collapsing_capabilities_Set(ApplicationRecord_non_collapsing_capabilities_Set *val);
|
|
static void ASN1CALL ASN1Free_ApplicationInvokeSpecifier_expected_capability_set_Set(ApplicationInvokeSpecifier_expected_capability_set_Set *val);
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set(RosterUpdateIndication_application_information_Set *val);
|
|
static void ASN1CALL ASN1Free_ApplicationProtocolEntityList(PApplicationProtocolEntityList *val);
|
|
static void ASN1CALL ASN1Free_SetOfApplicationInformation(PSetOfApplicationInformation *val);
|
|
static void ASN1CALL ASN1Free_SetOfConferenceDescriptors(PSetOfConferenceDescriptors *val);
|
|
static void ASN1CALL ASN1Free_SetOfExpectedCapabilities(PSetOfExpectedCapabilities *val);
|
|
static void ASN1CALL ASN1Free_SetOfNonCollapsingCapabilities(PSetOfNonCollapsingCapabilities *val);
|
|
static void ASN1CALL ASN1Free_NetworkAddress(NetworkAddress *val);
|
|
static void ASN1CALL ASN1Free_ChallengeRequestResponse(ChallengeRequestResponse *val);
|
|
static void ASN1CALL ASN1Free_SetOfChallengeItems(PSetOfChallengeItems *val);
|
|
static void ASN1CALL ASN1Free_UserData_Set(UserData_Set *val);
|
|
static void ASN1CALL ASN1Free_SetOfUserData(PSetOfUserData *val);
|
|
static void ASN1CALL ASN1Free_PasswordChallengeRequestResponse(PasswordChallengeRequestResponse *val);
|
|
static void ASN1CALL ASN1Free_SetOfNetworkAddresses(PSetOfNetworkAddresses *val);
|
|
static void ASN1CALL ASN1Free_ConferenceJoinRequest(ConferenceJoinRequest *val);
|
|
static void ASN1CALL ASN1Free_ConferenceJoinResponse(ConferenceJoinResponse *val);
|
|
static void ASN1CALL ASN1Free_ConnectGCCPDU(ConnectGCCPDU *val);
|
|
static void ASN1CALL ASN1Free_RequestPDU(RequestPDU *val);
|
|
static void ASN1CALL ASN1Free_FunctionNotSupportedResponse(FunctionNotSupportedResponse *val);
|
|
static void ASN1CALL ASN1Free_ResponsePDU(ResponsePDU *val);
|
|
static void ASN1CALL ASN1Free_GCCPDU(GCCPDU *val);
|
|
|
|
typedef ASN1PerEncFun_t ASN1EncFun_t;
|
|
static const ASN1EncFun_t encfntab[3] = {
|
|
(ASN1EncFun_t) ASN1Enc_ConnectData,
|
|
(ASN1EncFun_t) ASN1Enc_ConnectGCCPDU,
|
|
(ASN1EncFun_t) ASN1Enc_GCCPDU,
|
|
};
|
|
typedef ASN1PerDecFun_t ASN1DecFun_t;
|
|
static const ASN1DecFun_t decfntab[3] = {
|
|
(ASN1DecFun_t) ASN1Dec_ConnectData,
|
|
(ASN1DecFun_t) ASN1Dec_ConnectGCCPDU,
|
|
(ASN1DecFun_t) ASN1Dec_GCCPDU,
|
|
};
|
|
static const ASN1FreeFun_t freefntab[3] = {
|
|
(ASN1FreeFun_t) ASN1Free_ConnectData,
|
|
(ASN1FreeFun_t) ASN1Free_ConnectGCCPDU,
|
|
(ASN1FreeFun_t) ASN1Free_GCCPDU,
|
|
};
|
|
static const ULONG sizetab[3] = {
|
|
SIZE_GCCPDU_Module_PDU_0,
|
|
SIZE_GCCPDU_Module_PDU_1,
|
|
SIZE_GCCPDU_Module_PDU_2,
|
|
};
|
|
|
|
/* forward declarations of values: */
|
|
extern ASN1char32_t simpleTextFirstCharacter_chars[1];
|
|
extern ASN1char32_t simpleTextLastCharacter_chars[1];
|
|
/* definitions of value components: */
|
|
static const struct ASN1objectidentifier_s t124identifier_object_list[6] = {
|
|
{ (ASN1objectidentifier_t) &(t124identifier_object_list[1]), 0 },
|
|
{ (ASN1objectidentifier_t) &(t124identifier_object_list[2]), 0 },
|
|
{ (ASN1objectidentifier_t) &(t124identifier_object_list[3]), 20 },
|
|
{ (ASN1objectidentifier_t) &(t124identifier_object_list[4]), 124 },
|
|
{ (ASN1objectidentifier_t) &(t124identifier_object_list[5]), 0 },
|
|
{ NULL, 1 }
|
|
};
|
|
static ASN1objectidentifier_t t124identifier_object = (ASN1objectidentifier_t) t124identifier_object_list;
|
|
static ASN1char32_t simpleTextFirstCharacter_chars[1] = { 0x0 };
|
|
static ASN1char32_t simpleTextLastCharacter_chars[1] = { 0xff };
|
|
/* definitions of values: */
|
|
Key t124identifier = { 1 };
|
|
ASN1char32string_t simpleTextFirstCharacter = { 1, simpleTextFirstCharacter_chars };
|
|
ASN1char32string_t simpleTextLastCharacter = { 1, simpleTextLastCharacter_chars };
|
|
|
|
void ASN1CALL GCCPDU_Module_Startup(void)
|
|
{
|
|
GCCPDU_Module = ASN1_CreateModule(0x10000, ASN1_PER_RULE_ALIGNED, ASN1FLAGS_NONE, 3, (const ASN1GenericFun_t *) encfntab, (const ASN1GenericFun_t *) decfntab, freefntab, sizetab, 0x636367);
|
|
t124identifier.u.object = t124identifier_object;
|
|
}
|
|
|
|
void ASN1CALL GCCPDU_Module_Cleanup(void)
|
|
{
|
|
ASN1_CloseModule(GCCPDU_Module);
|
|
GCCPDU_Module = NULL;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationCapabilitiesList(ASN1encoding_t enc, ApplicationCapabilitiesList *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_SetOfApplicationCapabilityRefreshes(enc, &(val)->u.application_capability_refresh))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationCapabilitiesList(ASN1decoding_t dec, ApplicationCapabilitiesList *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_SetOfApplicationCapabilityRefreshes(dec, &(val)->u.application_capability_refresh))
|
|
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_ApplicationCapabilitiesList(ApplicationCapabilitiesList *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_SetOfApplicationCapabilityRefreshes(&(val)->u.application_capability_refresh);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationRecordList(ASN1encoding_t enc, ApplicationRecordList *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_SetOfApplicationRecordRefreshes(enc, &(val)->u.application_record_refresh))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_SetOfApplicationRecordUpdates(enc, &(val)->u.application_record_update))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationRecordList(ASN1decoding_t dec, ApplicationRecordList *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_SetOfApplicationRecordRefreshes(dec, &(val)->u.application_record_refresh))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_SetOfApplicationRecordUpdates(dec, &(val)->u.application_record_update))
|
|
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_ApplicationRecordList(ApplicationRecordList *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_SetOfApplicationRecordRefreshes(&(val)->u.application_record_refresh);
|
|
break;
|
|
case 3:
|
|
ASN1Free_SetOfApplicationRecordUpdates(&(val)->u.application_record_update);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_HighLayerCompatibility(ASN1encoding_t enc, HighLayerCompatibility *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->telephony3kHz))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->telephony7kHz))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videotelephony))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->videoconference))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audiographic))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->audiovisual))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->multimedia))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_HighLayerCompatibility(ASN1decoding_t dec, HighLayerCompatibility *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->telephony3kHz))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->telephony7kHz))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videotelephony))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->videoconference))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audiographic))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->audiovisual))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->multimedia))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransferModes(ASN1encoding_t enc, TransferModes *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->speech))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->voice_band))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_56k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_64k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_128k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_192k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_256k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_320k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_384k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_512k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_768k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_1152k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_1472k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_1536k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->digital_1920k))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->packet_mode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->frame_mode))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->atm))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransferModes(ASN1decoding_t dec, TransferModes *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->speech))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->voice_band))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_56k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_64k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_128k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_192k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_256k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_320k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_384k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_512k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_768k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_1152k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_1472k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_1536k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->digital_1920k))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->packet_mode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->frame_mode))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->atm))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TransportConnectionType(ASN1encoding_t enc, TransportConnectionType *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->nsap_address, 1, 20, 5))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->transport_selector))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TransportConnectionType(ASN1decoding_t dec, TransportConnectionType *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->nsap_address, 1, 20, 5))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->transport_selector))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TransportConnectionType(TransportConnectionType *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1octetstring_free(&(val)->transport_selector);
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t AggregateChannel_international_number_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t AggregateChannel_international_number_StringTable = {
|
|
1, AggregateChannel_international_number_StringTableEntries
|
|
};
|
|
|
|
static ASN1stringtableentry_t AggregateChannel_sub_address_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t AggregateChannel_sub_address_StringTable = {
|
|
1, AggregateChannel_sub_address_StringTableEntries
|
|
};
|
|
|
|
static ASN1stringtableentry_t AggregateChannel_extra_dialing_string_StringTableEntries[] = {
|
|
{ 35, 35, 0 }, { 42, 42, 1 }, { 44, 44, 2 },
|
|
{ 48, 57, 3 },
|
|
};
|
|
|
|
static ASN1stringtable_t AggregateChannel_extra_dialing_string_StringTable = {
|
|
4, AggregateChannel_extra_dialing_string_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_AggregateChannel(ASN1encoding_t enc, AggregateChannel *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_TransferModes(enc, &(val)->transfer_modes))
|
|
return 0;
|
|
t = lstrlenA((val)->international_number);
|
|
if (!ASN1PEREncBitVal(enc, 4, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->international_number, 4, &AggregateChannel_international_number_StringTable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
t = lstrlenA((val)->sub_address);
|
|
if (!ASN1PEREncBitVal(enc, 6, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->sub_address, 4, &AggregateChannel_sub_address_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->extra_dialing_string).length - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableChar16String(enc, ((val)->extra_dialing_string).length, ((val)->extra_dialing_string).value, 4, &AggregateChannel_extra_dialing_string_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_HighLayerCompatibility(enc, &(val)->high_layer_compatibility))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AggregateChannel(ASN1decoding_t dec, AggregateChannel *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_TransferModes(dec, &(val)->transfer_modes))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 4, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->international_number, 4, &AggregateChannel_international_number_StringTable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 6, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->sub_address, 4, &AggregateChannel_sub_address_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->extra_dialing_string).length))
|
|
return 0;
|
|
((val)->extra_dialing_string).length += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecTableChar16String(dec, ((val)->extra_dialing_string).length, &((val)->extra_dialing_string).value, 4, &AggregateChannel_extra_dialing_string_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_HighLayerCompatibility(dec, &(val)->high_layer_compatibility))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_AggregateChannel(AggregateChannel *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1char16string_free(&(val)->extra_dialing_string);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NodeRecordList(ASN1encoding_t enc, NodeRecordList *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_SetOfNodeRecordRefreshes(enc, &(val)->u.node_record_refresh))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_SetOfNodeRecordUpdates(enc, &(val)->u.node_record_update))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NodeRecordList(ASN1decoding_t dec, NodeRecordList *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_SetOfNodeRecordRefreshes(dec, &(val)->u.node_record_refresh))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_SetOfNodeRecordUpdates(dec, &(val)->u.node_record_update))
|
|
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_NodeRecordList(NodeRecordList *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_SetOfNodeRecordRefreshes(&(val)->u.node_record_refresh);
|
|
break;
|
|
case 3:
|
|
ASN1Free_SetOfNodeRecordUpdates(&(val)->u.node_record_update);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_WaitingList(ASN1encoding_t enc, PWaitingList *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_WaitingList_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_WaitingList_ElmFn(ASN1encoding_t enc, PWaitingList val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_WaitingList(ASN1decoding_t dec, PWaitingList *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_WaitingList_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_WaitingList_ElmFn(ASN1decoding_t dec, PWaitingList val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1001;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_WaitingList(PWaitingList *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_WaitingList_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_WaitingList_ElmFn(PWaitingList val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_PermissionList(ASN1encoding_t enc, PPermissionList *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_PermissionList_ElmFn, 0, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_PermissionList_ElmFn(ASN1encoding_t enc, PPermissionList val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_PermissionList(ASN1decoding_t dec, PPermissionList *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_PermissionList_ElmFn, sizeof(**val), 0, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_PermissionList_ElmFn(ASN1decoding_t dec, PPermissionList val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1001;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_PermissionList(PPermissionList *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_PermissionList_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_PermissionList_ElmFn(PPermissionList val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfDestinationNodes(ASN1encoding_t enc, PSetOfDestinationNodes *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfDestinationNodes_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfDestinationNodes_ElmFn(ASN1encoding_t enc, PSetOfDestinationNodes val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfDestinationNodes(ASN1decoding_t dec, PSetOfDestinationNodes *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfDestinationNodes_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfDestinationNodes_ElmFn(ASN1decoding_t dec, PSetOfDestinationNodes val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1001;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfDestinationNodes(PSetOfDestinationNodes *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfDestinationNodes_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfDestinationNodes_ElmFn(PSetOfDestinationNodes val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NodeInformation(ASN1encoding_t enc, NodeInformation *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_NodeRecordList(enc, &(val)->node_record_list))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->roster_instance_number))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->nodes_are_added))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->nodes_are_removed))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NodeInformation(ASN1decoding_t dec, NodeInformation *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_NodeRecordList(dec, &(val)->node_record_list))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->roster_instance_number))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->nodes_are_added))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->nodes_are_removed))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NodeInformation(NodeInformation *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NodeRecordList(&(val)->node_record_list);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesIn(ASN1encoding_t enc, PSetOfTransferringNodesIn *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfTransferringNodesIn_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesIn_ElmFn(ASN1encoding_t enc, PSetOfTransferringNodesIn val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesIn(ASN1decoding_t dec, PSetOfTransferringNodesIn *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfTransferringNodesIn_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesIn_ElmFn(ASN1decoding_t dec, PSetOfTransferringNodesIn val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1001;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesIn(PSetOfTransferringNodesIn *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfTransferringNodesIn_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesIn_ElmFn(PSetOfTransferringNodesIn val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesRs(ASN1encoding_t enc, PSetOfTransferringNodesRs *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfTransferringNodesRs_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesRs_ElmFn(ASN1encoding_t enc, PSetOfTransferringNodesRs val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesRs(ASN1decoding_t dec, PSetOfTransferringNodesRs *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfTransferringNodesRs_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesRs_ElmFn(ASN1decoding_t dec, PSetOfTransferringNodesRs val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1001;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesRs(PSetOfTransferringNodesRs *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfTransferringNodesRs_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesRs_ElmFn(PSetOfTransferringNodesRs val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesRq(ASN1encoding_t enc, PSetOfTransferringNodesRq *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfTransferringNodesRq_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfTransferringNodesRq_ElmFn(ASN1encoding_t enc, PSetOfTransferringNodesRq val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, val->value - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesRq(ASN1decoding_t dec, PSetOfTransferringNodesRq *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfTransferringNodesRq_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfTransferringNodesRq_ElmFn(ASN1decoding_t dec, PSetOfTransferringNodesRq val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &val->value))
|
|
return 0;
|
|
val->value += 1001;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesRq(PSetOfTransferringNodesRq *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfTransferringNodesRq_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfTransferringNodesRq_ElmFn(PSetOfTransferringNodesRq val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryEntryOwnerOwned(ASN1encoding_t enc, RegistryEntryOwnerOwned *val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryEntryOwnerOwned(ASN1decoding_t dec, RegistryEntryOwnerOwned *val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ParticipantsList(ASN1encoding_t enc, PParticipantsList *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ParticipantsList_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ParticipantsList_ElmFn(ASN1encoding_t enc, PParticipantsList val)
|
|
{
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, (val->value).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, (val->value).length, (val->value).value, 16))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ParticipantsList(ASN1decoding_t dec, PParticipantsList *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ParticipantsList_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ParticipantsList_ElmFn(ASN1decoding_t dec, PParticipantsList val)
|
|
{
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &(val->value).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, (val->value).length, &(val->value).value, 16))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ParticipantsList(PParticipantsList *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ParticipantsList_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ParticipantsList_ElmFn(PParticipantsList val)
|
|
{
|
|
if (val) {
|
|
ASN1char16string_free(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_Key(ASN1encoding_t enc, Key *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncObjectIdentifier(enc, &(val)->u.object))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->u.h221_non_standard, 4, 255, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Key(ASN1decoding_t dec, Key *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecObjectIdentifier(dec, &(val)->u.object))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->u.h221_non_standard, 4, 255, 8))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_Key(Key *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1objectidentifier_free(&(val)->u.object);
|
|
break;
|
|
case 2:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NonStandardParameter(ASN1encoding_t enc, NonStandardParameter *val)
|
|
{
|
|
if (!ASN1Enc_Key(enc, &(val)->key))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->data))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NonStandardParameter(ASN1decoding_t dec, NonStandardParameter *val)
|
|
{
|
|
if (!ASN1Dec_Key(dec, &(val)->key))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->data))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NonStandardParameter(NonStandardParameter *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_Key(&(val)->key);
|
|
ASN1octetstring_free(&(val)->data);
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t Password_numeric_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t Password_numeric_StringTable = {
|
|
1, Password_numeric_StringTableEntries
|
|
};
|
|
|
|
static ASN1stringtableentry_t Password_password_text_StringTableEntries[] = {
|
|
{ 0, 255, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t Password_password_text_StringTable = {
|
|
1, Password_password_text_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_Password(ASN1encoding_t enc, Password *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
t = lstrlenA((val)->numeric);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->numeric, 4, &Password_numeric_StringTable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->password_text).length))
|
|
return 0;
|
|
if (!ASN1PEREncTableChar16String(enc, ((val)->password_text).length, ((val)->password_text).value, 8, &Password_password_text_StringTable))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_Password(ASN1decoding_t dec, Password *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->numeric, 4, &Password_numeric_StringTable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->password_text).length))
|
|
return 0;
|
|
if (!ASN1PERDecTableChar16String(dec, ((val)->password_text).length, &((val)->password_text).value, 8, &Password_password_text_StringTable))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_Password(Password *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1char16string_free(&(val)->password_text);
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t PasswordSelector_password_selector_numeric_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t PasswordSelector_password_selector_numeric_StringTable = {
|
|
1, PasswordSelector_password_selector_numeric_StringTableEntries
|
|
};
|
|
|
|
static ASN1stringtableentry_t PasswordSelector_password_selector_text_StringTableEntries[] = {
|
|
{ 0, 255, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t PasswordSelector_password_selector_text_StringTable = {
|
|
1, PasswordSelector_password_selector_text_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_PasswordSelector(ASN1encoding_t enc, PasswordSelector *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
t = lstrlenA((val)->u.password_selector_numeric);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->u.password_selector_numeric, 4, &PasswordSelector_password_selector_numeric_StringTable))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->u.password_selector_text).length))
|
|
return 0;
|
|
if (!ASN1PEREncTableChar16String(enc, ((val)->u.password_selector_text).length, ((val)->u.password_selector_text).value, 8, &PasswordSelector_password_selector_text_StringTable))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_PasswordSelector(ASN1decoding_t dec, PasswordSelector *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.password_selector_numeric, 4, &PasswordSelector_password_selector_numeric_StringTable))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->u.password_selector_text).length))
|
|
return 0;
|
|
if (!ASN1PERDecTableChar16String(dec, ((val)->u.password_selector_text).length, &((val)->u.password_selector_text).value, 8, &PasswordSelector_password_selector_text_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_PasswordSelector(PasswordSelector *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
ASN1char16string_free(&(val)->u.password_selector_text);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ChallengeResponseItem(ASN1encoding_t enc, ChallengeResponseItem *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_PasswordSelector(enc, &(val)->u.password_string))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->u.set_of_response_data))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ChallengeResponseItem(ASN1decoding_t dec, ChallengeResponseItem *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_PasswordSelector(dec, &(val)->u.password_string))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->u.set_of_response_data))
|
|
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_ChallengeResponseItem(ChallengeResponseItem *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_PasswordSelector(&(val)->u.password_string);
|
|
break;
|
|
case 2:
|
|
ASN1Free_SetOfUserData(&(val)->u.set_of_response_data);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ChallengeResponseAlgorithm(ASN1encoding_t enc, ChallengeResponseAlgorithm *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.non_standard_algorithm))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ChallengeResponseAlgorithm(ASN1decoding_t dec, ChallengeResponseAlgorithm *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.non_standard_algorithm))
|
|
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_ChallengeResponseAlgorithm(ChallengeResponseAlgorithm *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_NonStandardParameter(&(val)->u.non_standard_algorithm);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ChallengeItem(ASN1encoding_t enc, ChallengeItem *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_ChallengeResponseAlgorithm(enc, &(val)->response_algorithm))
|
|
return 0;
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->set_of_challenge_data))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ChallengeItem(ASN1decoding_t dec, ChallengeItem *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_ChallengeResponseAlgorithm(dec, &(val)->response_algorithm))
|
|
return 0;
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->set_of_challenge_data))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ChallengeItem(ChallengeItem *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ChallengeResponseAlgorithm(&(val)->response_algorithm);
|
|
ASN1Free_SetOfUserData(&(val)->set_of_challenge_data);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ChallengeRequest(ASN1encoding_t enc, ChallengeRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncInteger(enc, (val)->challenge_tag))
|
|
return 0;
|
|
if (!ASN1Enc_SetOfChallengeItems(enc, &(val)->set_of_challenge_items))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ChallengeRequest(ASN1decoding_t dec, ChallengeRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecInteger(dec, &(val)->challenge_tag))
|
|
return 0;
|
|
if (!ASN1Dec_SetOfChallengeItems(dec, &(val)->set_of_challenge_items))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ChallengeRequest(ChallengeRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_SetOfChallengeItems(&(val)->set_of_challenge_items);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ChallengeResponse(ASN1encoding_t enc, ChallengeResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncInteger(enc, (val)->challenge_tag))
|
|
return 0;
|
|
if (!ASN1Enc_ChallengeResponseAlgorithm(enc, &(val)->response_algorithm))
|
|
return 0;
|
|
if (!ASN1Enc_ChallengeResponseItem(enc, &(val)->response_item))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ChallengeResponse(ASN1decoding_t dec, ChallengeResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecInteger(dec, &(val)->challenge_tag))
|
|
return 0;
|
|
if (!ASN1Dec_ChallengeResponseAlgorithm(dec, &(val)->response_algorithm))
|
|
return 0;
|
|
if (!ASN1Dec_ChallengeResponseItem(dec, &(val)->response_item))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ChallengeResponse(ChallengeResponse *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ChallengeResponseAlgorithm(&(val)->response_algorithm);
|
|
ASN1Free_ChallengeResponseItem(&(val)->response_item);
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceName_numeric_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceName_numeric_StringTable = {
|
|
1, ConferenceName_numeric_StringTableEntries
|
|
};
|
|
|
|
static ASN1stringtableentry_t ConferenceName_conference_name_text_StringTableEntries[] = {
|
|
{ 0, 255, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceName_conference_name_text_StringTable = {
|
|
1, ConferenceName_conference_name_text_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceName(ASN1encoding_t enc, ConferenceName *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
t = lstrlenA((val)->numeric);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->numeric, 4, &ConferenceName_numeric_StringTable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->conference_name_text).length))
|
|
return 0;
|
|
if (!ASN1PEREncTableChar16String(enc, ((val)->conference_name_text).length, ((val)->conference_name_text).value, 8, &ConferenceName_conference_name_text_StringTable))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceName(ASN1decoding_t dec, ConferenceName *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->numeric, 4, &ConferenceName_numeric_StringTable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->conference_name_text).length))
|
|
return 0;
|
|
if (!ASN1PERDecTableChar16String(dec, ((val)->conference_name_text).length, &((val)->conference_name_text).value, 8, &ConferenceName_conference_name_text_StringTable))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceName(ConferenceName *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1char16string_free(&(val)->conference_name_text);
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceNameSelector_name_selector_numeric_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceNameSelector_name_selector_numeric_StringTable = {
|
|
1, ConferenceNameSelector_name_selector_numeric_StringTableEntries
|
|
};
|
|
|
|
static ASN1stringtableentry_t ConferenceNameSelector_name_selector_text_StringTableEntries[] = {
|
|
{ 0, 255, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceNameSelector_name_selector_text_StringTable = {
|
|
1, ConferenceNameSelector_name_selector_text_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceNameSelector(ASN1encoding_t enc, ConferenceNameSelector *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
t = lstrlenA((val)->u.name_selector_numeric);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->u.name_selector_numeric, 4, &ConferenceNameSelector_name_selector_numeric_StringTable))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->u.name_selector_text).length))
|
|
return 0;
|
|
if (!ASN1PEREncTableChar16String(enc, ((val)->u.name_selector_text).length, ((val)->u.name_selector_text).value, 8, &ConferenceNameSelector_name_selector_text_StringTable))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceNameSelector(ASN1decoding_t dec, ConferenceNameSelector *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->u.name_selector_numeric, 4, &ConferenceNameSelector_name_selector_numeric_StringTable))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->u.name_selector_text).length))
|
|
return 0;
|
|
if (!ASN1PERDecTableChar16String(dec, ((val)->u.name_selector_text).length, &((val)->u.name_selector_text).value, 8, &ConferenceNameSelector_name_selector_text_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_ConferenceNameSelector(ConferenceNameSelector *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
ASN1char16string_free(&(val)->u.name_selector_text);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NodeProperties(ASN1encoding_t enc, NodeProperties *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->device_is_manager))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->device_is_peripheral))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NodeProperties(ASN1decoding_t dec, NodeProperties *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->device_is_manager))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->device_is_peripheral))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AsymmetryIndicator(ASN1encoding_t enc, AsymmetryIndicator *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
l = ASN1uint32_uoctets((val)->u.unknown);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->u.unknown))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AsymmetryIndicator(ASN1decoding_t dec, AsymmetryIndicator *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->u.unknown))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_AlternativeNodeID(ASN1encoding_t enc, AlternativeNodeID *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncOctetString_FixedSize(enc, (ASN1octetstring2_t *) &(val)->u.h243_node_id, 2))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_AlternativeNodeID(ASN1decoding_t dec, AlternativeNodeID *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 0))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecOctetString_FixedSize(dec, (ASN1octetstring2_t *) &(val)->u.h243_node_id, 2))
|
|
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_AlternativeNodeID(AlternativeNodeID *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceDescriptor_conference_name_modifier_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceDescriptor_conference_name_modifier_StringTable = {
|
|
1, ConferenceDescriptor_conference_name_modifier_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceDescriptor(ASN1encoding_t enc, ConferenceDescriptor *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceName(enc, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
t = lstrlenA((val)->conference_name_modifier);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->conference_name_modifier, 4, &ConferenceDescriptor_conference_name_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->conference_description).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->conference_description).length, ((val)->conference_description).value, 16))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->clear_password_required))
|
|
return 0;
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfNetworkAddresses(enc, &(val)->descriptor_net_address))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceDescriptor(ASN1decoding_t dec, ConferenceDescriptor *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceName(dec, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->conference_name_modifier, 4, &ConferenceDescriptor_conference_name_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->conference_description).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->conference_description).length, &((val)->conference_description).value, 16))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->clear_password_required))
|
|
return 0;
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfNetworkAddresses(dec, &(val)->descriptor_net_address))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceDescriptor(ConferenceDescriptor *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceName(&(val)->conference_name);
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1char16string_free(&(val)->conference_description);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfNetworkAddresses(&(val)->descriptor_net_address);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NodeRecord(ASN1encoding_t enc, NodeRecord *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->superior_node - 1001))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->node_type))
|
|
return 0;
|
|
if (!ASN1Enc_NodeProperties(enc, &(val)->node_properties))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->node_name).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->node_name).length, ((val)->node_name).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_ParticipantsList(enc, &(val)->participants_list))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->site_information).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->site_information).length, ((val)->site_information).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Enc_SetOfNetworkAddresses(enc, &(val)->record_net_address))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1Enc_AlternativeNodeID(enc, &(val)->alternative_node_id))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->record_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NodeRecord(ASN1decoding_t dec, NodeRecord *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->superior_node))
|
|
return 0;
|
|
(val)->superior_node += 1001;
|
|
}
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->node_type))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (!ASN1Dec_NodeProperties(dec, &(val)->node_properties))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->node_name).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->node_name).length, &((val)->node_name).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_ParticipantsList(dec, &(val)->participants_list))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->site_information).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->site_information).length, &((val)->site_information).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Dec_SetOfNetworkAddresses(dec, &(val)->record_net_address))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1Dec_AlternativeNodeID(dec, &(val)->alternative_node_id))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->record_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NodeRecord(NodeRecord *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1char16string_free(&(val)->node_name);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_ParticipantsList(&(val)->participants_list);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1char16string_free(&(val)->site_information);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1Free_SetOfNetworkAddresses(&(val)->record_net_address);
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1Free_AlternativeNodeID(&(val)->alternative_node_id);
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
ASN1Free_SetOfUserData(&(val)->record_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SessionKey(ASN1encoding_t enc, SessionKey *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_Key(enc, &(val)->application_protocol_key))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->session_id - 1))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SessionKey(ASN1decoding_t dec, SessionKey *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_Key(dec, &(val)->application_protocol_key))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->session_id))
|
|
return 0;
|
|
(val)->session_id += 1;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SessionKey(SessionKey *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_Key(&(val)->application_protocol_key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationRecord(ASN1encoding_t enc, ApplicationRecord *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->application_is_active))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->is_conducting_capable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->record_startup_channel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->application_user_id - 1001))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfNonCollapsingCapabilities(enc, &(val)->non_collapsing_capabilities))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationRecord(ASN1decoding_t dec, ApplicationRecord *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 3, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->application_is_active))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->is_conducting_capable))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->record_startup_channel))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->application_user_id))
|
|
return 0;
|
|
(val)->application_user_id += 1001;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfNonCollapsingCapabilities(dec, &(val)->non_collapsing_capabilities))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationRecord(ApplicationRecord *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfNonCollapsingCapabilities(&(val)->non_collapsing_capabilities);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CapabilityID(ASN1encoding_t enc, CapabilityID *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.standard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_Key(enc, &(val)->u.capability_non_standard))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CapabilityID(ASN1decoding_t dec, CapabilityID *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.standard))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_Key(dec, &(val)->u.capability_non_standard))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_CapabilityID(CapabilityID *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 2:
|
|
ASN1Free_Key(&(val)->u.capability_non_standard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_CapabilityClass(ASN1encoding_t enc, CapabilityClass *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedInteger(enc, (val)->u.unsigned_minimum))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PEREncUnsignedInteger(enc, (val)->u.unsigned_maximum))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_CapabilityClass(ASN1decoding_t dec, CapabilityClass *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedInteger(dec, &(val)->u.unsigned_minimum))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecUnsignedInteger(dec, &(val)->u.unsigned_maximum))
|
|
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 int ASN1CALL ASN1Enc_ApplicationInvokeSpecifier(ASN1encoding_t enc, ApplicationInvokeSpecifier *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_SessionKey(enc, &(val)->session_key))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfExpectedCapabilities(enc, &(val)->expected_capability_set))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->invoke_startup_channel))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->invoke_is_mandatory))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationInvokeSpecifier(ASN1decoding_t dec, ApplicationInvokeSpecifier *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_SessionKey(dec, &(val)->session_key))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SetOfExpectedCapabilities(dec, &(val)->expected_capability_set))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->invoke_startup_channel))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->invoke_is_mandatory))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationInvokeSpecifier(ApplicationInvokeSpecifier *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_SessionKey(&(val)->session_key);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfExpectedCapabilities(&(val)->expected_capability_set);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryKey(ASN1encoding_t enc, RegistryKey *val)
|
|
{
|
|
if (!ASN1Enc_SessionKey(enc, &(val)->session_key))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->resource_id, 0, 64, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryKey(ASN1decoding_t dec, RegistryKey *val)
|
|
{
|
|
if (!ASN1Dec_SessionKey(dec, &(val)->session_key))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->resource_id, 0, 64, 7))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryKey(RegistryKey *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_SessionKey(&(val)->session_key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryItem(ASN1encoding_t enc, RegistryItem *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.channel_id - 1001))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->u.token_id - 16384))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->u.parameter, 0, 64, 7))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryItem(ASN1decoding_t dec, RegistryItem *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.channel_id))
|
|
return 0;
|
|
(val)->u.channel_id += 1001;
|
|
break;
|
|
case 2:
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->u.token_id))
|
|
return 0;
|
|
(val)->u.token_id += 16384;
|
|
break;
|
|
case 3:
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->u.parameter, 0, 64, 7))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
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_RegistryItem(RegistryItem *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 3:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryEntryOwner(ASN1encoding_t enc, RegistryEntryOwner *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_RegistryEntryOwnerOwned(enc, &(val)->u.owned))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryEntryOwner(ASN1decoding_t dec, RegistryEntryOwner *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_RegistryEntryOwnerOwned(dec, &(val)->u.owned))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserIDIndication(ASN1encoding_t enc, UserIDIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserIDIndication(ASN1decoding_t dec, UserIDIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfPrivileges(ASN1encoding_t enc, PSetOfPrivileges *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfPrivileges_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfPrivileges_ElmFn(ASN1encoding_t enc, PSetOfPrivileges val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfPrivileges(ASN1decoding_t dec, PSetOfPrivileges *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfPrivileges_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfPrivileges_ElmFn(ASN1decoding_t dec, PSetOfPrivileges val)
|
|
{
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &val->value))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfPrivileges(PSetOfPrivileges *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfPrivileges_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfPrivileges_ElmFn(PSetOfPrivileges val)
|
|
{
|
|
if (val) {
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceCreateRequest(ASN1encoding_t enc, ConferenceCreateRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 8, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceName(enc, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_Password(enc, &(val)->ccrq_convener_password))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_Password(enc, &(val)->ccrq_password))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_listed))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_conductible))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->termination_method))
|
|
return 0;
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->ccrq_conductor_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->ccrq_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->ccrq_non_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->ccrq_description).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->ccrq_description).length, ((val)->ccrq_description).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->ccrq_caller_id).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->ccrq_caller_id).length, ((val)->ccrq_caller_id).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->ccrq_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceCreateRequest(ASN1decoding_t dec, ConferenceCreateRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 8, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceName(dec, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_Password(dec, &(val)->ccrq_convener_password))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_Password(dec, &(val)->ccrq_password))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_listed))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_conductible))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->termination_method))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->ccrq_conductor_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->ccrq_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->ccrq_non_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->ccrq_description).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->ccrq_description).length, &((val)->ccrq_description).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->ccrq_caller_id).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->ccrq_caller_id).length, &((val)->ccrq_caller_id).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->ccrq_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceCreateRequest(ConferenceCreateRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceName(&(val)->conference_name);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_Password(&(val)->ccrq_convener_password);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_Password(&(val)->ccrq_password);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfPrivileges(&(val)->ccrq_conductor_privs);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_SetOfPrivileges(&(val)->ccrq_conducted_privs);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1Free_SetOfPrivileges(&(val)->ccrq_non_conducted_privs);
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1char16string_free(&(val)->ccrq_description);
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
ASN1char16string_free(&(val)->ccrq_caller_id);
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
ASN1Free_SetOfUserData(&(val)->ccrq_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceCreateResponse(ASN1encoding_t enc, ConferenceCreateResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, (val)->result))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->ccrs_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceCreateResponse(ASN1decoding_t dec, ConferenceCreateResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->ccrs_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceCreateResponse(ConferenceCreateResponse *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfUserData(&(val)->ccrs_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceQueryRequest(ASN1encoding_t enc, ConferenceQueryRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->node_type))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_AsymmetryIndicator(enc, &(val)->cqrq_asymmetry_indicator))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cqrq_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceQueryRequest(ASN1decoding_t dec, ConferenceQueryRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->node_type))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_AsymmetryIndicator(dec, &(val)->cqrq_asymmetry_indicator))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cqrq_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceQueryRequest(ConferenceQueryRequest *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfUserData(&(val)->cqrq_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceQueryResponse(ASN1encoding_t enc, ConferenceQueryResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->node_type))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_AsymmetryIndicator(enc, &(val)->cqrs_asymmetry_indicator))
|
|
return 0;
|
|
}
|
|
if (!ASN1Enc_SetOfConferenceDescriptors(enc, &(val)->conference_list))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->result))
|
|
return 0;
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cqrs_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceQueryResponse(ASN1decoding_t dec, ConferenceQueryResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->node_type))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_AsymmetryIndicator(dec, &(val)->cqrs_asymmetry_indicator))
|
|
return 0;
|
|
}
|
|
if (!ASN1Dec_SetOfConferenceDescriptors(dec, &(val)->conference_list))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cqrs_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceQueryResponse(ConferenceQueryResponse *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_SetOfConferenceDescriptors(&(val)->conference_list);
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfUserData(&(val)->cqrs_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceInviteRequest(ASN1encoding_t enc, ConferenceInviteRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceName(enc, &(val)->conference_name))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->top_node_id - 1001))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (!ASN1PEREncBoolean(enc, (val)->clear_password_required))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_listed))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_conductible))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->termination_method))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->cirq_conductor_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->cirq_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->cirq_non_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->cirq_description).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->cirq_description).length, ((val)->cirq_description).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->cirq_caller_id).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->cirq_caller_id).length, ((val)->cirq_caller_id).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cirq_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceInviteRequest(ASN1decoding_t dec, ConferenceInviteRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 6, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceName(dec, &(val)->conference_name))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->top_node_id))
|
|
return 0;
|
|
(val)->top_node_id += 1001;
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (!ASN1PERDecBoolean(dec, &(val)->clear_password_required))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_listed))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_conductible))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->termination_method))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->cirq_conductor_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->cirq_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->cirq_non_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->cirq_description).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->cirq_description).length, &((val)->cirq_description).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->cirq_caller_id).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->cirq_caller_id).length, &((val)->cirq_caller_id).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cirq_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceInviteRequest(ConferenceInviteRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceName(&(val)->conference_name);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfPrivileges(&(val)->cirq_conductor_privs);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfPrivileges(&(val)->cirq_conducted_privs);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfPrivileges(&(val)->cirq_non_conducted_privs);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1char16string_free(&(val)->cirq_description);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1char16string_free(&(val)->cirq_caller_id);
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1Free_SetOfUserData(&(val)->cirq_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceInviteResponse(ASN1encoding_t enc, ConferenceInviteResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->result))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cirs_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceInviteResponse(ASN1decoding_t dec, ConferenceInviteResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cirs_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceInviteResponse(ConferenceInviteResponse *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfUserData(&(val)->cirs_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceAddRequest(ASN1encoding_t enc, ConferenceAddRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_SetOfNetworkAddresses(enc, &(val)->add_request_net_address))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->requesting_node - 1001))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->adding_mcu - 1001))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->carq_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceAddRequest(ASN1decoding_t dec, ConferenceAddRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_SetOfNetworkAddresses(dec, &(val)->add_request_net_address))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->requesting_node))
|
|
return 0;
|
|
(val)->requesting_node += 1001;
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->adding_mcu))
|
|
return 0;
|
|
(val)->adding_mcu += 1001;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->carq_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceAddRequest(ConferenceAddRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_SetOfNetworkAddresses(&(val)->add_request_net_address);
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfUserData(&(val)->carq_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceAddResponse(ASN1encoding_t enc, ConferenceAddResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, (val)->result))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cars_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceAddResponse(ASN1decoding_t dec, ConferenceAddResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cars_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceAddResponse(ConferenceAddResponse *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfUserData(&(val)->cars_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceLockRequest(ASN1encoding_t enc, ConferenceLockRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceLockRequest(ASN1decoding_t dec, ConferenceLockRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceLockResponse(ASN1encoding_t enc, ConferenceLockResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceLockResponse(ASN1decoding_t dec, ConferenceLockResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceLockIndication(ASN1encoding_t enc, ConferenceLockIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceLockIndication(ASN1decoding_t dec, ConferenceLockIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceUnlockRequest(ASN1encoding_t enc, ConferenceUnlockRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceUnlockRequest(ASN1decoding_t dec, ConferenceUnlockRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceUnlockResponse(ASN1encoding_t enc, ConferenceUnlockResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceUnlockResponse(ASN1decoding_t dec, ConferenceUnlockResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceUnlockIndication(ASN1encoding_t enc, ConferenceUnlockIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceUnlockIndication(ASN1decoding_t dec, ConferenceUnlockIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTerminateRequest(ASN1encoding_t enc, ConferenceTerminateRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->reason))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTerminateRequest(ASN1decoding_t dec, ConferenceTerminateRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->reason))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTerminateResponse(ASN1encoding_t enc, ConferenceTerminateResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTerminateResponse(ASN1decoding_t dec, ConferenceTerminateResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTerminateIndication(ASN1encoding_t enc, ConferenceTerminateIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->reason))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTerminateIndication(ASN1decoding_t dec, ConferenceTerminateIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->reason))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceEjectUserRequest(ASN1encoding_t enc, ConferenceEjectUserRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_to_eject - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceEjectUserRequest(ASN1decoding_t dec, ConferenceEjectUserRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_to_eject))
|
|
return 0;
|
|
(val)->node_to_eject += 1001;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
(val)->reason = 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceEjectUserResponse(ASN1encoding_t enc, ConferenceEjectUserResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_to_eject - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceEjectUserResponse(ASN1decoding_t dec, ConferenceEjectUserResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_to_eject))
|
|
return 0;
|
|
(val)->node_to_eject += 1001;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceEjectUserIndication(ASN1encoding_t enc, ConferenceEjectUserIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_to_eject - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->reason))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceEjectUserIndication(ASN1decoding_t dec, ConferenceEjectUserIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_to_eject))
|
|
return 0;
|
|
(val)->node_to_eject += 1001;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->reason))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceTransferRequest_ctrq_conference_modifier_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceTransferRequest_ctrq_conference_modifier_StringTable = {
|
|
1, ConferenceTransferRequest_ctrq_conference_modifier_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTransferRequest(ASN1encoding_t enc, ConferenceTransferRequest *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 4, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceNameSelector(enc, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
t = lstrlenA((val)->ctrq_conference_modifier);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->ctrq_conference_modifier, 4, &ConferenceTransferRequest_ctrq_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfNetworkAddresses(enc, &(val)->ctrq_net_address))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfTransferringNodesRq(enc, &(val)->ctrq_transferring_nodes))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_PasswordSelector(enc, &(val)->ctrq_password))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTransferRequest(ASN1decoding_t dec, ConferenceTransferRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 4, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceNameSelector(dec, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->ctrq_conference_modifier, 4, &ConferenceTransferRequest_ctrq_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfNetworkAddresses(dec, &(val)->ctrq_net_address))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfTransferringNodesRq(dec, &(val)->ctrq_transferring_nodes))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_PasswordSelector(dec, &(val)->ctrq_password))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceTransferRequest(ConferenceTransferRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceNameSelector(&(val)->conference_name);
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfNetworkAddresses(&(val)->ctrq_net_address);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfTransferringNodesRq(&(val)->ctrq_transferring_nodes);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_PasswordSelector(&(val)->ctrq_password);
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceTransferResponse_ctrs_conference_modifier_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceTransferResponse_ctrs_conference_modifier_StringTable = {
|
|
1, ConferenceTransferResponse_ctrs_conference_modifier_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTransferResponse(ASN1encoding_t enc, ConferenceTransferResponse *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceNameSelector(enc, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
t = lstrlenA((val)->ctrs_conference_modifier);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->ctrs_conference_modifier, 4, &ConferenceTransferResponse_ctrs_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfTransferringNodesRs(enc, &(val)->ctrs_transferring_nodes))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTransferResponse(ASN1decoding_t dec, ConferenceTransferResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 2, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceNameSelector(dec, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->ctrs_conference_modifier, 4, &ConferenceTransferResponse_ctrs_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfTransferringNodesRs(dec, &(val)->ctrs_transferring_nodes))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceTransferResponse(ConferenceTransferResponse *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceNameSelector(&(val)->conference_name);
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfTransferringNodesRs(&(val)->ctrs_transferring_nodes);
|
|
}
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceTransferIndication_ctin_conference_modifier_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceTransferIndication_ctin_conference_modifier_StringTable = {
|
|
1, ConferenceTransferIndication_ctin_conference_modifier_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTransferIndication(ASN1encoding_t enc, ConferenceTransferIndication *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 4, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ConferenceNameSelector(enc, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
t = lstrlenA((val)->ctin_conference_modifier);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->ctin_conference_modifier, 4, &ConferenceTransferIndication_ctin_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_SetOfNetworkAddresses(enc, &(val)->ctin_net_address))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfTransferringNodesIn(enc, &(val)->ctin_transferring_nodes))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_PasswordSelector(enc, &(val)->ctin_password))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTransferIndication(ASN1decoding_t dec, ConferenceTransferIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 4, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ConferenceNameSelector(dec, &(val)->conference_name))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->ctin_conference_modifier, 4, &ConferenceTransferIndication_ctin_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_SetOfNetworkAddresses(dec, &(val)->ctin_net_address))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfTransferringNodesIn(dec, &(val)->ctin_transferring_nodes))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_PasswordSelector(dec, &(val)->ctin_password))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceTransferIndication(ConferenceTransferIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceNameSelector(&(val)->conference_name);
|
|
if ((val)->o[0] & 0x80) {
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_SetOfNetworkAddresses(&(val)->ctin_net_address);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfTransferringNodesIn(&(val)->ctin_transferring_nodes);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_PasswordSelector(&(val)->ctin_password);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication(ASN1encoding_t enc, RosterUpdateIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->refresh_is_full))
|
|
return 0;
|
|
if (!ASN1Enc_NodeInformation(enc, &(val)->node_information))
|
|
return 0;
|
|
if (!ASN1Enc_SetOfApplicationInformation(enc, &(val)->application_information))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication(ASN1decoding_t dec, RosterUpdateIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->refresh_is_full))
|
|
return 0;
|
|
if (!ASN1Dec_NodeInformation(dec, &(val)->node_information))
|
|
return 0;
|
|
if (!ASN1Dec_SetOfApplicationInformation(dec, &(val)->application_information))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication(RosterUpdateIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NodeInformation(&(val)->node_information);
|
|
ASN1Free_SetOfApplicationInformation(&(val)->application_information);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationInvokeIndication(ASN1encoding_t enc, ApplicationInvokeIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_ApplicationProtocolEntityList(enc, &(val)->application_protocol_entity_list))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfDestinationNodes(enc, &(val)->destination_nodes))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationInvokeIndication(ASN1decoding_t dec, ApplicationInvokeIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_ApplicationProtocolEntityList(dec, &(val)->application_protocol_entity_list))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_SetOfDestinationNodes(dec, &(val)->destination_nodes))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationInvokeIndication(ApplicationInvokeIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ApplicationProtocolEntityList(&(val)->application_protocol_entity_list);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfDestinationNodes(&(val)->destination_nodes);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryRegisterChannelRequest(ASN1encoding_t enc, RegistryRegisterChannelRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->channel_id - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryRegisterChannelRequest(ASN1decoding_t dec, RegistryRegisterChannelRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->channel_id))
|
|
return 0;
|
|
(val)->channel_id += 1001;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryRegisterChannelRequest(RegistryRegisterChannelRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryAssignTokenRequest(ASN1encoding_t enc, RegistryAssignTokenRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->registry_key))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryAssignTokenRequest(ASN1decoding_t dec, RegistryAssignTokenRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->registry_key))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryAssignTokenRequest(RegistryAssignTokenRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->registry_key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistrySetParameterRequest(ASN1encoding_t enc, RegistrySetParameterRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_VarSize(enc, (ASN1octetstring2_t *) &(val)->registry_set_parameter, 0, 64, 7))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->parameter_modify_rights))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistrySetParameterRequest(ASN1decoding_t dec, RegistrySetParameterRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_VarSize(dec, (ASN1octetstring2_t *) &(val)->registry_set_parameter, 0, 64, 7))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->parameter_modify_rights))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistrySetParameterRequest(RegistrySetParameterRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryRetrieveEntryRequest(ASN1encoding_t enc, RegistryRetrieveEntryRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryRetrieveEntryRequest(ASN1decoding_t dec, RegistryRetrieveEntryRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryRetrieveEntryRequest(RegistryRetrieveEntryRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryDeleteEntryRequest(ASN1encoding_t enc, RegistryDeleteEntryRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryDeleteEntryRequest(ASN1decoding_t dec, RegistryDeleteEntryRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryDeleteEntryRequest(RegistryDeleteEntryRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryMonitorEntryRequest(ASN1encoding_t enc, RegistryMonitorEntryRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryMonitorEntryRequest(ASN1decoding_t dec, RegistryMonitorEntryRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryMonitorEntryRequest(RegistryMonitorEntryRequest *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryMonitorEntryIndication(ASN1encoding_t enc, RegistryMonitorEntryIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryItem(enc, &(val)->item))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryEntryOwner(enc, &(val)->owner))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->entry_modify_rights))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryMonitorEntryIndication(ASN1decoding_t dec, RegistryMonitorEntryIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryItem(dec, &(val)->item))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryEntryOwner(dec, &(val)->owner))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->entry_modify_rights))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryMonitorEntryIndication(RegistryMonitorEntryIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
ASN1Free_RegistryItem(&(val)->item);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryAllocateHandleRequest(ASN1encoding_t enc, RegistryAllocateHandleRequest *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->number_of_handles - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryAllocateHandleRequest(ASN1decoding_t dec, RegistryAllocateHandleRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->number_of_handles))
|
|
return 0;
|
|
(val)->number_of_handles += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryAllocateHandleResponse(ASN1encoding_t enc, RegistryAllocateHandleResponse *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->number_of_handles - 1))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->first_handle);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->first_handle))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryAllocateHandleResponse(ASN1decoding_t dec, RegistryAllocateHandleResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->number_of_handles))
|
|
return 0;
|
|
(val)->number_of_handles += 1;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->first_handle))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RegistryResponse(ASN1encoding_t enc, RegistryResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, (val)->primitive_type))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryKey(enc, &(val)->key))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryItem(enc, &(val)->item))
|
|
return 0;
|
|
if (!ASN1Enc_RegistryEntryOwner(enc, &(val)->owner))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncBitVal(enc, 2, (val)->response_modify_rights))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, (val)->result))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RegistryResponse(ASN1decoding_t dec, RegistryResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->primitive_type))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (!ASN1Dec_RegistryKey(dec, &(val)->key))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryItem(dec, &(val)->item))
|
|
return 0;
|
|
if (!ASN1Dec_RegistryEntryOwner(dec, &(val)->owner))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecU32Val(dec, 2, (ASN1uint32_t *) &(val)->response_modify_rights))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RegistryResponse(RegistryResponse *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RegistryKey(&(val)->key);
|
|
ASN1Free_RegistryItem(&(val)->item);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConductorAssignIndication(ASN1encoding_t enc, ConductorAssignIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->user_id - 1001))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConductorAssignIndication(ASN1decoding_t dec, ConductorAssignIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->user_id))
|
|
return 0;
|
|
(val)->user_id += 1001;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConductorReleaseIndication(ASN1encoding_t enc, ConductorReleaseIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConductorReleaseIndication(ASN1decoding_t dec, ConductorReleaseIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConductorPermissionAskIndication(ASN1encoding_t enc, ConductorPermissionAskIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->permission_is_granted))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConductorPermissionAskIndication(ASN1decoding_t dec, ConductorPermissionAskIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->permission_is_granted))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConductorPermissionGrantIndication(ASN1encoding_t enc, ConductorPermissionGrantIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_PermissionList(enc, &(val)->permission_list))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_WaitingList(enc, &(val)->waiting_list))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConductorPermissionGrantIndication(ASN1decoding_t dec, ConductorPermissionGrantIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_PermissionList(dec, &(val)->permission_list))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_WaitingList(dec, &(val)->waiting_list))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConductorPermissionGrantIndication(ConductorPermissionGrantIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_PermissionList(&(val)->permission_list);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_WaitingList(&(val)->waiting_list);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTimeRemainingIndication(ASN1encoding_t enc, ConferenceTimeRemainingIndication *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->time_remaining + 2147483648);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->time_remaining + 2147483648))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->time_remaining_node_id - 1001))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTimeRemainingIndication(ASN1decoding_t dec, ConferenceTimeRemainingIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->time_remaining))
|
|
return 0;
|
|
(val)->time_remaining += 0 - 2147483648;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->time_remaining_node_id))
|
|
return 0;
|
|
(val)->time_remaining_node_id += 1001;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTimeInquireIndication(ASN1encoding_t enc, ConferenceTimeInquireIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->time_is_node_specific))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTimeInquireIndication(ASN1decoding_t dec, ConferenceTimeInquireIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->time_is_node_specific))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceTimeExtendIndication(ASN1encoding_t enc, ConferenceTimeExtendIndication *val)
|
|
{
|
|
ASN1uint32_t l;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
l = ASN1uint32_uoctets((val)->time_to_extend + 2147483648);
|
|
if (!ASN1PEREncBitVal(enc, 2, l - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, l * 8, (val)->time_to_extend + 2147483648))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->time_is_node_specific))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceTimeExtendIndication(ASN1decoding_t dec, ConferenceTimeExtendIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecU32Val(dec, 2, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, l * 8, &(val)->time_to_extend))
|
|
return 0;
|
|
(val)->time_to_extend += 0 - 2147483648;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->time_is_node_specific))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceAssistanceIndication(ASN1encoding_t enc, ConferenceAssistanceIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cain_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceAssistanceIndication(ASN1decoding_t dec, ConferenceAssistanceIndication *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_SetOfUserData(dec, &(val)->cain_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceAssistanceIndication(ConferenceAssistanceIndication *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_SetOfUserData(&(val)->cain_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_TextMessageIndication(ASN1encoding_t enc, TextMessageIndication *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->message).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->message).length, ((val)->message).value, 16))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_TextMessageIndication(ASN1decoding_t dec, TextMessageIndication *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->message).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->message).length, &((val)->message).value, 16))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_TextMessageIndication(TextMessageIndication *val)
|
|
{
|
|
if (val) {
|
|
ASN1char16string_free(&(val)->message);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NonStandardPDU(ASN1encoding_t enc, NonStandardPDU *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->data))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NonStandardPDU(ASN1decoding_t dec, NonStandardPDU *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->data))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_NonStandardPDU(NonStandardPDU *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NonStandardParameter(&(val)->data);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConnectData(ASN1encoding_t enc, ConnectData *val)
|
|
{
|
|
if (!ASN1Enc_Key(enc, &(val)->t124_identifier))
|
|
return 0;
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->connect_pdu))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConnectData(ASN1decoding_t dec, ConnectData *val)
|
|
{
|
|
if (!ASN1Dec_Key(dec, &(val)->t124_identifier))
|
|
return 0;
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->connect_pdu))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConnectData(ConnectData *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_Key(&(val)->t124_identifier);
|
|
ASN1octetstring_free(&(val)->connect_pdu);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_IndicationPDU(ASN1encoding_t enc, IndicationPDU *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 5))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_UserIDIndication(enc, &(val)->u.user_id_indication))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ConferenceLockIndication(enc, &(val)->u.conference_lock_indication))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_ConferenceUnlockIndication(enc, &(val)->u.conference_unlock_indication))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_ConferenceTerminateIndication(enc, &(val)->u.conference_terminate_indication))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_ConferenceEjectUserIndication(enc, &(val)->u.conference_eject_user_indication))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_ConferenceTransferIndication(enc, &(val)->u.conference_transfer_indication))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_RosterUpdateIndication(enc, &(val)->u.roster_update_indication))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_ApplicationInvokeIndication(enc, &(val)->u.application_invoke_indication))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_RegistryMonitorEntryIndication(enc, &(val)->u.registry_monitor_entry_indication))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_ConductorAssignIndication(enc, &(val)->u.conductor_assign_indication))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Enc_ConductorReleaseIndication(enc, &(val)->u.conductor_release_indication))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Enc_ConductorPermissionAskIndication(enc, &(val)->u.conductor_permission_ask_indication))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Enc_ConductorPermissionGrantIndication(enc, &(val)->u.conductor_permission_grant_indication))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Enc_ConferenceTimeRemainingIndication(enc, &(val)->u.conference_time_remaining_indication))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1Enc_ConferenceTimeInquireIndication(enc, &(val)->u.conference_time_inquire_indication))
|
|
return 0;
|
|
break;
|
|
case 16:
|
|
if (!ASN1Enc_ConferenceTimeExtendIndication(enc, &(val)->u.conference_time_extend_indication))
|
|
return 0;
|
|
break;
|
|
case 17:
|
|
if (!ASN1Enc_ConferenceAssistanceIndication(enc, &(val)->u.conference_assistance_indication))
|
|
return 0;
|
|
break;
|
|
case 18:
|
|
if (!ASN1Enc_TextMessageIndication(enc, &(val)->u.text_message_indication))
|
|
return 0;
|
|
break;
|
|
case 19:
|
|
if (!ASN1Enc_NonStandardPDU(enc, &(val)->u.non_standard_indication))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_IndicationPDU(ASN1decoding_t dec, IndicationPDU *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 5))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_UserIDIndication(dec, &(val)->u.user_id_indication))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ConferenceLockIndication(dec, &(val)->u.conference_lock_indication))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_ConferenceUnlockIndication(dec, &(val)->u.conference_unlock_indication))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_ConferenceTerminateIndication(dec, &(val)->u.conference_terminate_indication))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_ConferenceEjectUserIndication(dec, &(val)->u.conference_eject_user_indication))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_ConferenceTransferIndication(dec, &(val)->u.conference_transfer_indication))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_RosterUpdateIndication(dec, &(val)->u.roster_update_indication))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_ApplicationInvokeIndication(dec, &(val)->u.application_invoke_indication))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_RegistryMonitorEntryIndication(dec, &(val)->u.registry_monitor_entry_indication))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_ConductorAssignIndication(dec, &(val)->u.conductor_assign_indication))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Dec_ConductorReleaseIndication(dec, &(val)->u.conductor_release_indication))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Dec_ConductorPermissionAskIndication(dec, &(val)->u.conductor_permission_ask_indication))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Dec_ConductorPermissionGrantIndication(dec, &(val)->u.conductor_permission_grant_indication))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Dec_ConferenceTimeRemainingIndication(dec, &(val)->u.conference_time_remaining_indication))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1Dec_ConferenceTimeInquireIndication(dec, &(val)->u.conference_time_inquire_indication))
|
|
return 0;
|
|
break;
|
|
case 16:
|
|
if (!ASN1Dec_ConferenceTimeExtendIndication(dec, &(val)->u.conference_time_extend_indication))
|
|
return 0;
|
|
break;
|
|
case 17:
|
|
if (!ASN1Dec_ConferenceAssistanceIndication(dec, &(val)->u.conference_assistance_indication))
|
|
return 0;
|
|
break;
|
|
case 18:
|
|
if (!ASN1Dec_TextMessageIndication(dec, &(val)->u.text_message_indication))
|
|
return 0;
|
|
break;
|
|
case 19:
|
|
if (!ASN1Dec_NonStandardPDU(dec, &(val)->u.non_standard_indication))
|
|
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_IndicationPDU(IndicationPDU *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 6:
|
|
ASN1Free_ConferenceTransferIndication(&(val)->u.conference_transfer_indication);
|
|
break;
|
|
case 7:
|
|
ASN1Free_RosterUpdateIndication(&(val)->u.roster_update_indication);
|
|
break;
|
|
case 8:
|
|
ASN1Free_ApplicationInvokeIndication(&(val)->u.application_invoke_indication);
|
|
break;
|
|
case 9:
|
|
ASN1Free_RegistryMonitorEntryIndication(&(val)->u.registry_monitor_entry_indication);
|
|
break;
|
|
case 13:
|
|
ASN1Free_ConductorPermissionGrantIndication(&(val)->u.conductor_permission_grant_indication);
|
|
break;
|
|
case 17:
|
|
ASN1Free_ConferenceAssistanceIndication(&(val)->u.conference_assistance_indication);
|
|
break;
|
|
case 18:
|
|
ASN1Free_TextMessageIndication(&(val)->u.text_message_indication);
|
|
break;
|
|
case 19:
|
|
ASN1Free_NonStandardPDU(&(val)->u.non_standard_indication);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationUpdate(ASN1encoding_t enc, ApplicationUpdate *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_ApplicationRecord(enc, &(val)->u.application_add_record))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ApplicationRecord(enc, &(val)->u.application_replace_record))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationUpdate(ASN1decoding_t dec, ApplicationUpdate *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_ApplicationRecord(dec, &(val)->u.application_add_record))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ApplicationRecord(dec, &(val)->u.application_replace_record))
|
|
return 0;
|
|
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_ApplicationUpdate(ApplicationUpdate *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_ApplicationRecord(&(val)->u.application_add_record);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ApplicationRecord(&(val)->u.application_replace_record);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_CapabilityID(enc, &(val)->capability_id))
|
|
return 0;
|
|
if (!ASN1Enc_CapabilityClass(enc, &(val)->capability_class))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 16, (val)->number_of_entities - 1))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_CapabilityID(dec, &(val)->capability_id))
|
|
return 0;
|
|
if (!ASN1Dec_CapabilityClass(dec, &(val)->capability_class))
|
|
return 0;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 16, &(val)->number_of_entities))
|
|
return 0;
|
|
(val)->number_of_entities += 1;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CapabilityID(&(val)->capability_id);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set *val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_ApplicationRecord(enc, &(val)->application_record))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set *val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_ApplicationRecord(dec, &(val)->application_record))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ApplicationRecord(&(val)->application_record);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set *val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Enc_ApplicationUpdate(enc, &(val)->application_update))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set *val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->entity_id))
|
|
return 0;
|
|
if (!ASN1Dec_ApplicationUpdate(dec, &(val)->application_update))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ApplicationUpdate(&(val)->application_update);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NodeUpdate(ASN1encoding_t enc, NodeUpdate *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_NodeRecord(enc, &(val)->u.node_add_record))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_NodeRecord(enc, &(val)->u.node_replace_record))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NodeUpdate(ASN1decoding_t dec, NodeUpdate *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_NodeRecord(dec, &(val)->u.node_add_record))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_NodeRecord(dec, &(val)->u.node_replace_record))
|
|
return 0;
|
|
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_NodeUpdate(NodeUpdate *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_NodeRecord(&(val)->u.node_add_record);
|
|
break;
|
|
case 2:
|
|
ASN1Free_NodeRecord(&(val)->u.node_replace_record);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(ASN1encoding_t enc, RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set *val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
if (!ASN1Enc_NodeRecord(enc, &(val)->node_record))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(ASN1decoding_t dec, RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set *val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
if (!ASN1Dec_NodeRecord(dec, &(val)->node_record))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NodeRecord(&(val)->node_record);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(ASN1encoding_t enc, RosterUpdateIndication_node_information_node_record_list_node_record_update_Set *val)
|
|
{
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->node_id - 1001))
|
|
return 0;
|
|
if (!ASN1Enc_NodeUpdate(enc, &(val)->node_update))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(ASN1decoding_t dec, RosterUpdateIndication_node_information_node_record_list_node_record_update_Set *val)
|
|
{
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->node_id))
|
|
return 0;
|
|
(val)->node_id += 1001;
|
|
if (!ASN1Dec_NodeUpdate(dec, &(val)->node_update))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(RosterUpdateIndication_node_information_node_record_list_node_record_update_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NodeUpdate(&(val)->node_update);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationRecordUpdates(ASN1encoding_t enc, PSetOfApplicationRecordUpdates *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfApplicationRecordUpdates_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationRecordUpdates_ElmFn(ASN1encoding_t enc, PSetOfApplicationRecordUpdates val)
|
|
{
|
|
if (!ASN1Enc_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationRecordUpdates(ASN1decoding_t dec, PSetOfApplicationRecordUpdates *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfApplicationRecordUpdates_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationRecordUpdates_ElmFn(ASN1decoding_t dec, PSetOfApplicationRecordUpdates val)
|
|
{
|
|
if (!ASN1Dec_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationRecordUpdates(PSetOfApplicationRecordUpdates *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfApplicationRecordUpdates_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationRecordUpdates_ElmFn(PSetOfApplicationRecordUpdates val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RosterUpdateIndication_application_information_Set_application_record_list_application_record_update_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationRecordRefreshes(ASN1encoding_t enc, PSetOfApplicationRecordRefreshes *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfApplicationRecordRefreshes_ElmFn, 0, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationRecordRefreshes_ElmFn(ASN1encoding_t enc, PSetOfApplicationRecordRefreshes val)
|
|
{
|
|
if (!ASN1Enc_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationRecordRefreshes(ASN1decoding_t dec, PSetOfApplicationRecordRefreshes *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfApplicationRecordRefreshes_ElmFn, sizeof(**val), 0, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationRecordRefreshes_ElmFn(ASN1decoding_t dec, PSetOfApplicationRecordRefreshes val)
|
|
{
|
|
if (!ASN1Dec_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationRecordRefreshes(PSetOfApplicationRecordRefreshes *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfApplicationRecordRefreshes_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationRecordRefreshes_ElmFn(PSetOfApplicationRecordRefreshes val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RosterUpdateIndication_application_information_Set_application_record_list_application_record_refresh_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationCapabilityRefreshes(ASN1encoding_t enc, PSetOfApplicationCapabilityRefreshes *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfApplicationCapabilityRefreshes_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationCapabilityRefreshes_ElmFn(ASN1encoding_t enc, PSetOfApplicationCapabilityRefreshes val)
|
|
{
|
|
if (!ASN1Enc_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationCapabilityRefreshes(ASN1decoding_t dec, PSetOfApplicationCapabilityRefreshes *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfApplicationCapabilityRefreshes_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationCapabilityRefreshes_ElmFn(ASN1decoding_t dec, PSetOfApplicationCapabilityRefreshes val)
|
|
{
|
|
if (!ASN1Dec_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationCapabilityRefreshes(PSetOfApplicationCapabilityRefreshes *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfApplicationCapabilityRefreshes_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationCapabilityRefreshes_ElmFn(PSetOfApplicationCapabilityRefreshes val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RosterUpdateIndication_application_information_Set_application_capabilities_list_application_capability_refresh_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNodeRecordUpdates(ASN1encoding_t enc, PSetOfNodeRecordUpdates *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfNodeRecordUpdates_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNodeRecordUpdates_ElmFn(ASN1encoding_t enc, PSetOfNodeRecordUpdates val)
|
|
{
|
|
if (!ASN1Enc_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNodeRecordUpdates(ASN1decoding_t dec, PSetOfNodeRecordUpdates *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfNodeRecordUpdates_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNodeRecordUpdates_ElmFn(ASN1decoding_t dec, PSetOfNodeRecordUpdates val)
|
|
{
|
|
if (!ASN1Dec_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNodeRecordUpdates(PSetOfNodeRecordUpdates *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfNodeRecordUpdates_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNodeRecordUpdates_ElmFn(PSetOfNodeRecordUpdates val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RosterUpdateIndication_node_information_node_record_list_node_record_update_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNodeRecordRefreshes(ASN1encoding_t enc, PSetOfNodeRecordRefreshes *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfNodeRecordRefreshes_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNodeRecordRefreshes_ElmFn(ASN1encoding_t enc, PSetOfNodeRecordRefreshes val)
|
|
{
|
|
if (!ASN1Enc_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNodeRecordRefreshes(ASN1decoding_t dec, PSetOfNodeRecordRefreshes *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfNodeRecordRefreshes_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNodeRecordRefreshes_ElmFn(ASN1decoding_t dec, PSetOfNodeRecordRefreshes val)
|
|
{
|
|
if (!ASN1Dec_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNodeRecordRefreshes(PSetOfNodeRecordRefreshes *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfNodeRecordRefreshes_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNodeRecordRefreshes_ElmFn(PSetOfNodeRecordRefreshes val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RosterUpdateIndication_node_information_node_record_list_node_record_refresh_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationRecord_non_collapsing_capabilities_Set(ASN1encoding_t enc, ApplicationRecord_non_collapsing_capabilities_Set *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_CapabilityID(enc, &(val)->capability_id))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->application_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationRecord_non_collapsing_capabilities_Set(ASN1decoding_t dec, ApplicationRecord_non_collapsing_capabilities_Set *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_CapabilityID(dec, &(val)->capability_id))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->application_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationRecord_non_collapsing_capabilities_Set(ApplicationRecord_non_collapsing_capabilities_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CapabilityID(&(val)->capability_id);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1octetstring_free(&(val)->application_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationInvokeSpecifier_expected_capability_set_Set(ASN1encoding_t enc, ApplicationInvokeSpecifier_expected_capability_set_Set *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_CapabilityID(enc, &(val)->capability_id))
|
|
return 0;
|
|
if (!ASN1Enc_CapabilityClass(enc, &(val)->capability_class))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationInvokeSpecifier_expected_capability_set_Set(ASN1decoding_t dec, ApplicationInvokeSpecifier_expected_capability_set_Set *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_CapabilityID(dec, &(val)->capability_id))
|
|
return 0;
|
|
if (!ASN1Dec_CapabilityClass(dec, &(val)->capability_class))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationInvokeSpecifier_expected_capability_set_Set(ApplicationInvokeSpecifier_expected_capability_set_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_CapabilityID(&(val)->capability_id);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RosterUpdateIndication_application_information_Set(ASN1encoding_t enc, RosterUpdateIndication_application_information_Set *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1Enc_SessionKey(enc, &(val)->session_key))
|
|
return 0;
|
|
if (!ASN1Enc_ApplicationRecordList(enc, &(val)->application_record_list))
|
|
return 0;
|
|
if (!ASN1Enc_ApplicationCapabilitiesList(enc, &(val)->application_capabilities_list))
|
|
return 0;
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->roster_instance_number))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->peer_entities_are_added))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->peer_entities_are_removed))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RosterUpdateIndication_application_information_Set(ASN1decoding_t dec, RosterUpdateIndication_application_information_Set *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1Dec_SessionKey(dec, &(val)->session_key))
|
|
return 0;
|
|
if (!ASN1Dec_ApplicationRecordList(dec, &(val)->application_record_list))
|
|
return 0;
|
|
if (!ASN1Dec_ApplicationCapabilitiesList(dec, &(val)->application_capabilities_list))
|
|
return 0;
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->roster_instance_number))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->peer_entities_are_added))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->peer_entities_are_removed))
|
|
return 0;
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_RosterUpdateIndication_application_information_Set(RosterUpdateIndication_application_information_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_SessionKey(&(val)->session_key);
|
|
ASN1Free_ApplicationRecordList(&(val)->application_record_list);
|
|
ASN1Free_ApplicationCapabilitiesList(&(val)->application_capabilities_list);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationProtocolEntityList(ASN1encoding_t enc, PApplicationProtocolEntityList *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_ApplicationProtocolEntityList_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ApplicationProtocolEntityList_ElmFn(ASN1encoding_t enc, PApplicationProtocolEntityList val)
|
|
{
|
|
if (!ASN1Enc_ApplicationInvokeSpecifier(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationProtocolEntityList(ASN1decoding_t dec, PApplicationProtocolEntityList *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_ApplicationProtocolEntityList_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ApplicationProtocolEntityList_ElmFn(ASN1decoding_t dec, PApplicationProtocolEntityList val)
|
|
{
|
|
if (!ASN1Dec_ApplicationInvokeSpecifier(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationProtocolEntityList(PApplicationProtocolEntityList *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_ApplicationProtocolEntityList_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ApplicationProtocolEntityList_ElmFn(PApplicationProtocolEntityList val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ApplicationInvokeSpecifier(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationInformation(ASN1encoding_t enc, PSetOfApplicationInformation *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfApplicationInformation_ElmFn, 0, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfApplicationInformation_ElmFn(ASN1encoding_t enc, PSetOfApplicationInformation val)
|
|
{
|
|
if (!ASN1Enc_RosterUpdateIndication_application_information_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationInformation(ASN1decoding_t dec, PSetOfApplicationInformation *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfApplicationInformation_ElmFn, sizeof(**val), 0, 65535, 16);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfApplicationInformation_ElmFn(ASN1decoding_t dec, PSetOfApplicationInformation val)
|
|
{
|
|
if (!ASN1Dec_RosterUpdateIndication_application_information_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationInformation(PSetOfApplicationInformation *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfApplicationInformation_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfApplicationInformation_ElmFn(PSetOfApplicationInformation val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RosterUpdateIndication_application_information_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfConferenceDescriptors(ASN1encoding_t enc, PSetOfConferenceDescriptors *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfConferenceDescriptors_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfConferenceDescriptors_ElmFn(ASN1encoding_t enc, PSetOfConferenceDescriptors val)
|
|
{
|
|
if (!ASN1Enc_ConferenceDescriptor(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfConferenceDescriptors(ASN1decoding_t dec, PSetOfConferenceDescriptors *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfConferenceDescriptors_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfConferenceDescriptors_ElmFn(ASN1decoding_t dec, PSetOfConferenceDescriptors val)
|
|
{
|
|
if (!ASN1Dec_ConferenceDescriptor(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfConferenceDescriptors(PSetOfConferenceDescriptors *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfConferenceDescriptors_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfConferenceDescriptors_ElmFn(PSetOfConferenceDescriptors val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ConferenceDescriptor(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfExpectedCapabilities(ASN1encoding_t enc, PSetOfExpectedCapabilities *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfExpectedCapabilities_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfExpectedCapabilities_ElmFn(ASN1encoding_t enc, PSetOfExpectedCapabilities val)
|
|
{
|
|
if (!ASN1Enc_ApplicationInvokeSpecifier_expected_capability_set_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfExpectedCapabilities(ASN1decoding_t dec, PSetOfExpectedCapabilities *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfExpectedCapabilities_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfExpectedCapabilities_ElmFn(ASN1decoding_t dec, PSetOfExpectedCapabilities val)
|
|
{
|
|
if (!ASN1Dec_ApplicationInvokeSpecifier_expected_capability_set_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfExpectedCapabilities(PSetOfExpectedCapabilities *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfExpectedCapabilities_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfExpectedCapabilities_ElmFn(PSetOfExpectedCapabilities val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ApplicationInvokeSpecifier_expected_capability_set_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNonCollapsingCapabilities(ASN1encoding_t enc, PSetOfNonCollapsingCapabilities *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfNonCollapsingCapabilities_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNonCollapsingCapabilities_ElmFn(ASN1encoding_t enc, PSetOfNonCollapsingCapabilities val)
|
|
{
|
|
if (!ASN1Enc_ApplicationRecord_non_collapsing_capabilities_Set(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNonCollapsingCapabilities(ASN1decoding_t dec, PSetOfNonCollapsingCapabilities *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfNonCollapsingCapabilities_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNonCollapsingCapabilities_ElmFn(ASN1decoding_t dec, PSetOfNonCollapsingCapabilities val)
|
|
{
|
|
if (!ASN1Dec_ApplicationRecord_non_collapsing_capabilities_Set(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNonCollapsingCapabilities(PSetOfNonCollapsingCapabilities *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfNonCollapsingCapabilities_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNonCollapsingCapabilities_ElmFn(PSetOfNonCollapsingCapabilities val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ApplicationRecord_non_collapsing_capabilities_Set(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_NetworkAddress(ASN1encoding_t enc, NetworkAddress *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_AggregateChannel(enc, &(val)->u.aggregated_channel))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_TransportConnectionType(enc, &(val)->u.transport_connection))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_NonStandardParameter(enc, &(val)->u.address_non_standard))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_NetworkAddress(ASN1decoding_t dec, NetworkAddress *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_AggregateChannel(dec, &(val)->u.aggregated_channel))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_TransportConnectionType(dec, &(val)->u.transport_connection))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_NonStandardParameter(dec, &(val)->u.address_non_standard))
|
|
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_NetworkAddress(NetworkAddress *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_AggregateChannel(&(val)->u.aggregated_channel);
|
|
break;
|
|
case 2:
|
|
ASN1Free_TransportConnectionType(&(val)->u.transport_connection);
|
|
break;
|
|
case 3:
|
|
ASN1Free_NonStandardParameter(&(val)->u.address_non_standard);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ChallengeRequestResponse(ASN1encoding_t enc, ChallengeRequestResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 2, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_ChallengeRequest(enc, &(val)->challenge_request))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_ChallengeResponse(enc, &(val)->challenge_response))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ChallengeRequestResponse(ASN1decoding_t dec, ChallengeRequestResponse *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_ChallengeRequest(dec, &(val)->challenge_request))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_ChallengeResponse(dec, &(val)->challenge_response))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ChallengeRequestResponse(ChallengeRequestResponse *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_ChallengeRequest(&(val)->challenge_request);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_ChallengeResponse(&(val)->challenge_response);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfChallengeItems(ASN1encoding_t enc, PSetOfChallengeItems *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfChallengeItems_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfChallengeItems_ElmFn(ASN1encoding_t enc, PSetOfChallengeItems val)
|
|
{
|
|
if (!ASN1Enc_ChallengeItem(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfChallengeItems(ASN1decoding_t dec, PSetOfChallengeItems *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfChallengeItems_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfChallengeItems_ElmFn(ASN1decoding_t dec, PSetOfChallengeItems val)
|
|
{
|
|
if (!ASN1Dec_ChallengeItem(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfChallengeItems(PSetOfChallengeItems *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfChallengeItems_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfChallengeItems_ElmFn(PSetOfChallengeItems val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_ChallengeItem(&val->value);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_UserData_Set(ASN1encoding_t enc, UserData_Set *val)
|
|
{
|
|
if (!ASN1PEREncBits(enc, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Enc_Key(enc, &(val)->key))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncOctetString_NoSize(enc, &(val)->user_data_field))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_UserData_Set(ASN1decoding_t dec, UserData_Set *val)
|
|
{
|
|
if (!ASN1PERDecExtension(dec, 1, (val)->o))
|
|
return 0;
|
|
if (!ASN1Dec_Key(dec, &(val)->key))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecOctetString_NoSize(dec, &(val)->user_data_field))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_UserData_Set(UserData_Set *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_Key(&(val)->key);
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1octetstring_free(&(val)->user_data_field);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfUserData(ASN1encoding_t enc, PSetOfUserData *val)
|
|
{
|
|
return ASN1PEREncSeqOf_NoSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfUserData_ElmFn);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfUserData_ElmFn(ASN1encoding_t enc, PSetOfUserData val)
|
|
{
|
|
if (!ASN1Enc_UserData_Set(enc, &val->user_data_element))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfUserData(ASN1decoding_t dec, PSetOfUserData *val)
|
|
{
|
|
return ASN1PERDecSeqOf_NoSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfUserData_ElmFn, sizeof(**val));
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfUserData_ElmFn(ASN1decoding_t dec, PSetOfUserData val)
|
|
{
|
|
if (!ASN1Dec_UserData_Set(dec, &val->user_data_element))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfUserData(PSetOfUserData *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfUserData_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfUserData_ElmFn(PSetOfUserData val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_UserData_Set(&val->user_data_element);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_PasswordChallengeRequestResponse(ASN1encoding_t enc, PasswordChallengeRequestResponse *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_PasswordSelector(enc, &(val)->u.challenge_clear_password))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ChallengeRequestResponse(enc, &(val)->u.challenge_request_response))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_PasswordChallengeRequestResponse(ASN1decoding_t dec, PasswordChallengeRequestResponse *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 1))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_PasswordSelector(dec, &(val)->u.challenge_clear_password))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ChallengeRequestResponse(dec, &(val)->u.challenge_request_response))
|
|
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_PasswordChallengeRequestResponse(PasswordChallengeRequestResponse *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_PasswordSelector(&(val)->u.challenge_clear_password);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ChallengeRequestResponse(&(val)->u.challenge_request_response);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNetworkAddresses(ASN1encoding_t enc, PSetOfNetworkAddresses *val)
|
|
{
|
|
return ASN1PEREncSeqOf_VarSize(enc, (ASN1iterator_t **) val, (ASN1iterator_encfn) ASN1Enc_SetOfNetworkAddresses_ElmFn, 1, 64, 6);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_SetOfNetworkAddresses_ElmFn(ASN1encoding_t enc, PSetOfNetworkAddresses val)
|
|
{
|
|
if (!ASN1Enc_NetworkAddress(enc, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNetworkAddresses(ASN1decoding_t dec, PSetOfNetworkAddresses *val)
|
|
{
|
|
return ASN1PERDecSeqOf_VarSize(dec, (ASN1iterator_t **) val, (ASN1iterator_decfn) ASN1Dec_SetOfNetworkAddresses_ElmFn, sizeof(**val), 1, 64, 6);
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_SetOfNetworkAddresses_ElmFn(ASN1decoding_t dec, PSetOfNetworkAddresses val)
|
|
{
|
|
if (!ASN1Dec_NetworkAddress(dec, &val->value))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNetworkAddresses(PSetOfNetworkAddresses *val)
|
|
{
|
|
if (val) {
|
|
ASN1PERFreeSeqOf((ASN1iterator_t **) val, (ASN1iterator_freefn) ASN1Free_SetOfNetworkAddresses_ElmFn);
|
|
}
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_SetOfNetworkAddresses_ElmFn(PSetOfNetworkAddresses val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_NetworkAddress(&val->value);
|
|
}
|
|
}
|
|
|
|
static ASN1stringtableentry_t ConferenceJoinRequest_cjrq_conference_modifier_StringTableEntries[] = {
|
|
{ 48, 57, 0 },
|
|
};
|
|
|
|
static ASN1stringtable_t ConferenceJoinRequest_cjrq_conference_modifier_StringTable = {
|
|
1, ConferenceJoinRequest_cjrq_conference_modifier_StringTableEntries
|
|
};
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceJoinRequest(ASN1encoding_t enc, ConferenceJoinRequest *val)
|
|
{
|
|
ASN1uint32_t t;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Enc_ConferenceNameSelector(enc, &(val)->conference_name))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
t = lstrlenA((val)->cjrq_conference_modifier);
|
|
if (!ASN1PEREncBitVal(enc, 8, t - 1))
|
|
return 0;
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncTableCharString(enc, t, (val)->cjrq_conference_modifier, 4, &ConferenceJoinRequest_cjrq_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_PasswordChallengeRequestResponse(enc, &(val)->cjrq_password))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Enc_PasswordSelector(enc, &(val)->cjrq_convener_password))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->cjrq_caller_id).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->cjrq_caller_id).length, ((val)->cjrq_caller_id).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cjrq_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceJoinRequest(ASN1decoding_t dec, ConferenceJoinRequest *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t l;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 7, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1Dec_ConferenceNameSelector(dec, &(val)->conference_name))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1PERDecU32Val(dec, 8, &l))
|
|
return 0;
|
|
l += 1;
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecZeroTableCharStringNoAlloc(dec, l, (val)->cjrq_conference_modifier, 4, &ConferenceJoinRequest_cjrq_conference_modifier_StringTable))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_PasswordChallengeRequestResponse(dec, &(val)->cjrq_password))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Dec_PasswordSelector(dec, &(val)->cjrq_convener_password))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->cjrq_caller_id).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->cjrq_caller_id).length, &((val)->cjrq_caller_id).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cjrq_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceJoinRequest(ConferenceJoinRequest *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x80) {
|
|
ASN1Free_ConferenceNameSelector(&(val)->conference_name);
|
|
}
|
|
if ((val)->o[0] & 0x40) {
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_PasswordChallengeRequestResponse(&(val)->cjrq_password);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1Free_PasswordSelector(&(val)->cjrq_convener_password);
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1char16string_free(&(val)->cjrq_caller_id);
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
ASN1Free_SetOfUserData(&(val)->cjrq_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConferenceJoinResponse(ASN1encoding_t enc, ConferenceJoinResponse *val)
|
|
{
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBits(enc, 8, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->cjrs_node_id - 1001))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncUnsignedShort(enc, (val)->top_node_id - 1001))
|
|
return 0;
|
|
#ifndef _WIN64
|
|
if (!ASN1PEREncInteger(enc, (val)->tag))
|
|
return 0;
|
|
#endif
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Enc_ConferenceNameSelector(enc, &(val)->conference_name_alias))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncBoolean(enc, (val)->clear_password_required))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_listed))
|
|
return 0;
|
|
if (!ASN1PEREncBoolean(enc, (val)->conference_is_conductible))
|
|
return 0;
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 1, (val)->termination_method))
|
|
return 0;
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->cjrs_conductor_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->cjrs_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Enc_SetOfPrivileges(enc, &(val)->cjrs_non_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PEREncAlignment(enc);
|
|
if (!ASN1PEREncBitVal(enc, 8, ((val)->cjrs_description).length))
|
|
return 0;
|
|
if (!ASN1PEREncChar16String(enc, ((val)->cjrs_description).length, ((val)->cjrs_description).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1Enc_PasswordChallengeRequestResponse(enc, &(val)->cjrs_password))
|
|
return 0;
|
|
}
|
|
if (!ASN1PEREncExtensionBitClear(enc))
|
|
return 0;
|
|
if (!ASN1PEREncBitVal(enc, 3, (val)->result))
|
|
return 0;
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1Enc_SetOfUserData(enc, &(val)->cjrs_user_data))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConferenceJoinResponse(ASN1decoding_t dec, ConferenceJoinResponse *val)
|
|
{
|
|
ASN1uint32_t y;
|
|
ASN1uint32_t x;
|
|
if (!ASN1PERDecExtensionBit(dec, &y))
|
|
return 0;
|
|
if (!ASN1PERDecExtension(dec, 8, (val)->o))
|
|
return 0;
|
|
if ((val)->o[0] & 0x80) {
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->cjrs_node_id))
|
|
return 0;
|
|
(val)->cjrs_node_id += 1001;
|
|
}
|
|
if (!ASN1PERDecUnsignedShort(dec, &(val)->top_node_id))
|
|
return 0;
|
|
(val)->top_node_id += 1001;
|
|
#ifndef _WIN64
|
|
if (!ASN1PERDecInteger(dec, &(val)->tag))
|
|
return 0;
|
|
#endif
|
|
if ((val)->o[0] & 0x40) {
|
|
if (!ASN1Dec_ConferenceNameSelector(dec, &(val)->conference_name_alias))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecBoolean(dec, &(val)->clear_password_required))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_locked))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_listed))
|
|
return 0;
|
|
if (!ASN1PERDecBoolean(dec, &(val)->conference_is_conductible))
|
|
return 0;
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 1, (ASN1uint32_t *) &(val)->termination_method))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->cjrs_conductor_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->cjrs_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
if (!ASN1Dec_SetOfPrivileges(dec, &(val)->cjrs_non_conducted_privs))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1PERDecAlignment(dec);
|
|
if (!ASN1PERDecU32Val(dec, 8, &((val)->cjrs_description).length))
|
|
return 0;
|
|
if (!ASN1PERDecChar16String(dec, ((val)->cjrs_description).length, &((val)->cjrs_description).value, 16))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
if (!ASN1Dec_PasswordChallengeRequestResponse(dec, &(val)->cjrs_password))
|
|
return 0;
|
|
}
|
|
if (!ASN1PERDecExtensionBit(dec, &x))
|
|
return 0;
|
|
if (!x) {
|
|
if (!ASN1PERDecU32Val(dec, 3, (ASN1uint32_t *) &(val)->result))
|
|
return 0;
|
|
} else {
|
|
if (!ASN1PERDecSkipNormallySmall(dec))
|
|
return 0;
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
if (!ASN1Dec_SetOfUserData(dec, &(val)->cjrs_user_data))
|
|
return 0;
|
|
}
|
|
if (y) {
|
|
if (!ASN1PERDecSkipNormallySmallExtensionFragmented(dec))
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_ConferenceJoinResponse(ConferenceJoinResponse *val)
|
|
{
|
|
if (val) {
|
|
if ((val)->o[0] & 0x40) {
|
|
ASN1Free_ConferenceNameSelector(&(val)->conference_name_alias);
|
|
}
|
|
if ((val)->o[0] & 0x20) {
|
|
ASN1Free_SetOfPrivileges(&(val)->cjrs_conductor_privs);
|
|
}
|
|
if ((val)->o[0] & 0x10) {
|
|
ASN1Free_SetOfPrivileges(&(val)->cjrs_conducted_privs);
|
|
}
|
|
if ((val)->o[0] & 0x8) {
|
|
ASN1Free_SetOfPrivileges(&(val)->cjrs_non_conducted_privs);
|
|
}
|
|
if ((val)->o[0] & 0x4) {
|
|
ASN1char16string_free(&(val)->cjrs_description);
|
|
}
|
|
if ((val)->o[0] & 0x2) {
|
|
ASN1Free_PasswordChallengeRequestResponse(&(val)->cjrs_password);
|
|
}
|
|
if ((val)->o[0] & 0x1) {
|
|
ASN1Free_SetOfUserData(&(val)->cjrs_user_data);
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ConnectGCCPDU(ASN1encoding_t enc, ConnectGCCPDU *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_ConferenceCreateRequest(enc, &(val)->u.conference_create_request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ConferenceCreateResponse(enc, &(val)->u.conference_create_response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_ConferenceQueryRequest(enc, &(val)->u.conference_query_request))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_ConferenceQueryResponse(enc, &(val)->u.conference_query_response))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_ConferenceJoinRequest(enc, &(val)->u.connect_join_request))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_ConferenceJoinResponse(enc, &(val)->u.connect_join_response))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_ConferenceInviteRequest(enc, &(val)->u.conference_invite_request))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_ConferenceInviteResponse(enc, &(val)->u.conference_invite_response))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ConnectGCCPDU(ASN1decoding_t dec, ConnectGCCPDU *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 3))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_ConferenceCreateRequest(dec, &(val)->u.conference_create_request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ConferenceCreateResponse(dec, &(val)->u.conference_create_response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_ConferenceQueryRequest(dec, &(val)->u.conference_query_request))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_ConferenceQueryResponse(dec, &(val)->u.conference_query_response))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_ConferenceJoinRequest(dec, &(val)->u.connect_join_request))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_ConferenceJoinResponse(dec, &(val)->u.connect_join_response))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_ConferenceInviteRequest(dec, &(val)->u.conference_invite_request))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_ConferenceInviteResponse(dec, &(val)->u.conference_invite_response))
|
|
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_ConnectGCCPDU(ConnectGCCPDU *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_ConferenceCreateRequest(&(val)->u.conference_create_request);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ConferenceCreateResponse(&(val)->u.conference_create_response);
|
|
break;
|
|
case 3:
|
|
ASN1Free_ConferenceQueryRequest(&(val)->u.conference_query_request);
|
|
break;
|
|
case 4:
|
|
ASN1Free_ConferenceQueryResponse(&(val)->u.conference_query_response);
|
|
break;
|
|
case 5:
|
|
ASN1Free_ConferenceJoinRequest(&(val)->u.connect_join_request);
|
|
break;
|
|
case 6:
|
|
ASN1Free_ConferenceJoinResponse(&(val)->u.connect_join_response);
|
|
break;
|
|
case 7:
|
|
ASN1Free_ConferenceInviteRequest(&(val)->u.conference_invite_request);
|
|
break;
|
|
case 8:
|
|
ASN1Free_ConferenceInviteResponse(&(val)->u.conference_invite_response);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_RequestPDU(ASN1encoding_t enc, RequestPDU *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 4))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_ConferenceJoinRequest(enc, &(val)->u.conference_join_request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ConferenceAddRequest(enc, &(val)->u.conference_add_request))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_ConferenceLockRequest(enc, &(val)->u.conference_lock_request))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_ConferenceUnlockRequest(enc, &(val)->u.conference_unlock_request))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_ConferenceTerminateRequest(enc, &(val)->u.conference_terminate_request))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_ConferenceEjectUserRequest(enc, &(val)->u.conference_eject_user_request))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_ConferenceTransferRequest(enc, &(val)->u.conference_transfer_request))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_RegistryRegisterChannelRequest(enc, &(val)->u.registry_register_channel_request))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_RegistryAssignTokenRequest(enc, &(val)->u.registry_assign_token_request))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_RegistrySetParameterRequest(enc, &(val)->u.registry_set_parameter_request))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Enc_RegistryRetrieveEntryRequest(enc, &(val)->u.registry_retrieve_entry_request))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Enc_RegistryDeleteEntryRequest(enc, &(val)->u.registry_delete_entry_request))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Enc_RegistryMonitorEntryRequest(enc, &(val)->u.registry_monitor_entry_request))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Enc_RegistryAllocateHandleRequest(enc, &(val)->u.registry_allocate_handle_request))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1Enc_NonStandardPDU(enc, &(val)->u.non_standard_request))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_RequestPDU(ASN1decoding_t dec, RequestPDU *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 4))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_ConferenceJoinRequest(dec, &(val)->u.conference_join_request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ConferenceAddRequest(dec, &(val)->u.conference_add_request))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_ConferenceLockRequest(dec, &(val)->u.conference_lock_request))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_ConferenceUnlockRequest(dec, &(val)->u.conference_unlock_request))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_ConferenceTerminateRequest(dec, &(val)->u.conference_terminate_request))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_ConferenceEjectUserRequest(dec, &(val)->u.conference_eject_user_request))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_ConferenceTransferRequest(dec, &(val)->u.conference_transfer_request))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_RegistryRegisterChannelRequest(dec, &(val)->u.registry_register_channel_request))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_RegistryAssignTokenRequest(dec, &(val)->u.registry_assign_token_request))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_RegistrySetParameterRequest(dec, &(val)->u.registry_set_parameter_request))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Dec_RegistryRetrieveEntryRequest(dec, &(val)->u.registry_retrieve_entry_request))
|
|
return 0;
|
|
break;
|
|
case 12:
|
|
if (!ASN1Dec_RegistryDeleteEntryRequest(dec, &(val)->u.registry_delete_entry_request))
|
|
return 0;
|
|
break;
|
|
case 13:
|
|
if (!ASN1Dec_RegistryMonitorEntryRequest(dec, &(val)->u.registry_monitor_entry_request))
|
|
return 0;
|
|
break;
|
|
case 14:
|
|
if (!ASN1Dec_RegistryAllocateHandleRequest(dec, &(val)->u.registry_allocate_handle_request))
|
|
return 0;
|
|
break;
|
|
case 15:
|
|
if (!ASN1Dec_NonStandardPDU(dec, &(val)->u.non_standard_request))
|
|
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_RequestPDU(RequestPDU *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_ConferenceJoinRequest(&(val)->u.conference_join_request);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ConferenceAddRequest(&(val)->u.conference_add_request);
|
|
break;
|
|
case 7:
|
|
ASN1Free_ConferenceTransferRequest(&(val)->u.conference_transfer_request);
|
|
break;
|
|
case 8:
|
|
ASN1Free_RegistryRegisterChannelRequest(&(val)->u.registry_register_channel_request);
|
|
break;
|
|
case 9:
|
|
ASN1Free_RegistryAssignTokenRequest(&(val)->u.registry_assign_token_request);
|
|
break;
|
|
case 10:
|
|
ASN1Free_RegistrySetParameterRequest(&(val)->u.registry_set_parameter_request);
|
|
break;
|
|
case 11:
|
|
ASN1Free_RegistryRetrieveEntryRequest(&(val)->u.registry_retrieve_entry_request);
|
|
break;
|
|
case 12:
|
|
ASN1Free_RegistryDeleteEntryRequest(&(val)->u.registry_delete_entry_request);
|
|
break;
|
|
case 13:
|
|
ASN1Free_RegistryMonitorEntryRequest(&(val)->u.registry_monitor_entry_request);
|
|
break;
|
|
case 15:
|
|
ASN1Free_NonStandardPDU(&(val)->u.non_standard_request);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_FunctionNotSupportedResponse(ASN1encoding_t enc, FunctionNotSupportedResponse *val)
|
|
{
|
|
if (!ASN1Enc_RequestPDU(enc, &(val)->request))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_FunctionNotSupportedResponse(ASN1decoding_t dec, FunctionNotSupportedResponse *val)
|
|
{
|
|
if (!ASN1Dec_RequestPDU(dec, &(val)->request))
|
|
return 0;
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_FunctionNotSupportedResponse(FunctionNotSupportedResponse *val)
|
|
{
|
|
if (val) {
|
|
ASN1Free_RequestPDU(&(val)->request);
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_ResponsePDU(ASN1encoding_t enc, ResponsePDU *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoiceEx(enc, (val)->choice, 4))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_ConferenceJoinResponse(enc, &(val)->u.conference_join_response))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ConferenceAddResponse(enc, &(val)->u.conference_add_response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_ConferenceLockResponse(enc, &(val)->u.conference_lock_response))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Enc_ConferenceUnlockResponse(enc, &(val)->u.conference_unlock_response))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Enc_ConferenceTerminateResponse(enc, &(val)->u.conference_terminate_response))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Enc_ConferenceEjectUserResponse(enc, &(val)->u.conference_eject_user_response))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Enc_ConferenceTransferResponse(enc, &(val)->u.conference_transfer_response))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Enc_RegistryResponse(enc, &(val)->u.registry_response))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Enc_RegistryAllocateHandleResponse(enc, &(val)->u.registry_allocate_handle_response))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Enc_FunctionNotSupportedResponse(enc, &(val)->u.function_not_supported_response))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Enc_NonStandardPDU(enc, &(val)->u.non_standard_response))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_ResponsePDU(ASN1decoding_t dec, ResponsePDU *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoiceEx(dec, &(val)->choice, 4))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_ConferenceJoinResponse(dec, &(val)->u.conference_join_response))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ConferenceAddResponse(dec, &(val)->u.conference_add_response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_ConferenceLockResponse(dec, &(val)->u.conference_lock_response))
|
|
return 0;
|
|
break;
|
|
case 4:
|
|
if (!ASN1Dec_ConferenceUnlockResponse(dec, &(val)->u.conference_unlock_response))
|
|
return 0;
|
|
break;
|
|
case 5:
|
|
if (!ASN1Dec_ConferenceTerminateResponse(dec, &(val)->u.conference_terminate_response))
|
|
return 0;
|
|
break;
|
|
case 6:
|
|
if (!ASN1Dec_ConferenceEjectUserResponse(dec, &(val)->u.conference_eject_user_response))
|
|
return 0;
|
|
break;
|
|
case 7:
|
|
if (!ASN1Dec_ConferenceTransferResponse(dec, &(val)->u.conference_transfer_response))
|
|
return 0;
|
|
break;
|
|
case 8:
|
|
if (!ASN1Dec_RegistryResponse(dec, &(val)->u.registry_response))
|
|
return 0;
|
|
break;
|
|
case 9:
|
|
if (!ASN1Dec_RegistryAllocateHandleResponse(dec, &(val)->u.registry_allocate_handle_response))
|
|
return 0;
|
|
break;
|
|
case 10:
|
|
if (!ASN1Dec_FunctionNotSupportedResponse(dec, &(val)->u.function_not_supported_response))
|
|
return 0;
|
|
break;
|
|
case 11:
|
|
if (!ASN1Dec_NonStandardPDU(dec, &(val)->u.non_standard_response))
|
|
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_ResponsePDU(ResponsePDU *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_ConferenceJoinResponse(&(val)->u.conference_join_response);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ConferenceAddResponse(&(val)->u.conference_add_response);
|
|
break;
|
|
case 7:
|
|
ASN1Free_ConferenceTransferResponse(&(val)->u.conference_transfer_response);
|
|
break;
|
|
case 8:
|
|
ASN1Free_RegistryResponse(&(val)->u.registry_response);
|
|
break;
|
|
case 10:
|
|
ASN1Free_FunctionNotSupportedResponse(&(val)->u.function_not_supported_response);
|
|
break;
|
|
case 11:
|
|
ASN1Free_NonStandardPDU(&(val)->u.non_standard_response);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
static int ASN1CALL ASN1Enc_GCCPDU(ASN1encoding_t enc, GCCPDU *val)
|
|
{
|
|
if (!ASN1PEREncSimpleChoice(enc, (val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Enc_RequestPDU(enc, &(val)->u.request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Enc_ResponsePDU(enc, &(val)->u.response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Enc_IndicationPDU(enc, &(val)->u.indication))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1EncSetError(enc, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static int ASN1CALL ASN1Dec_GCCPDU(ASN1decoding_t dec, GCCPDU *val)
|
|
{
|
|
if (!ASN1PERDecSimpleChoice(dec, &(val)->choice, 2))
|
|
return 0;
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
if (!ASN1Dec_RequestPDU(dec, &(val)->u.request))
|
|
return 0;
|
|
break;
|
|
case 2:
|
|
if (!ASN1Dec_ResponsePDU(dec, &(val)->u.response))
|
|
return 0;
|
|
break;
|
|
case 3:
|
|
if (!ASN1Dec_IndicationPDU(dec, &(val)->u.indication))
|
|
return 0;
|
|
break;
|
|
default:
|
|
/* impossible */
|
|
ASN1DecSetError(dec, ASN1_ERR_CHOICE);
|
|
return 0;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
static void ASN1CALL ASN1Free_GCCPDU(GCCPDU *val)
|
|
{
|
|
if (val) {
|
|
switch ((val)->choice) {
|
|
case 1:
|
|
ASN1Free_RequestPDU(&(val)->u.request);
|
|
break;
|
|
case 2:
|
|
ASN1Free_ResponsePDU(&(val)->u.response);
|
|
break;
|
|
case 3:
|
|
ASN1Free_IndicationPDU(&(val)->u.indication);
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|