libIEC61850  1.1.2
Open-source IEC 61850 MMS/GOOSE/SV server and client library
iso_connection_parameters.h
Go to the documentation of this file.
1 /*
2  * iso_connection_parameters.h
3  *
4  * Copyright 2013, 2014 Michael Zillgith
5  *
6  * This file is part of libIEC61850.
7  *
8  * libIEC61850 is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * libIEC61850 is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with libIEC61850. If not, see <http://www.gnu.org/licenses/>.
20  *
21  * See COPYING file for the complete license text.
22  */
23 
24 #ifndef ISO_CONNECTION_PARAMETERS_H_
25 #define ISO_CONNECTION_PARAMETERS_H_
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
40 typedef enum
41 {
45 
49 
50 
51 typedef struct sAcseAuthenticationParameter* AcseAuthenticationParameter;
52 
54 {
56  union
57  {
58  struct
59  {
60  uint8_t* octetString;
62  } password;
63 
64  struct
65  {
66  uint8_t* buf;
67  int length;
68  } certificate;
69 
70  } value;
71 };
72 
73 AcseAuthenticationParameter
75 
76 void
77 AcseAuthenticationParameter_destroy(AcseAuthenticationParameter self);
78 
79 void
81 
82 void
83 AcseAuthenticationParameter_setPassword(AcseAuthenticationParameter self, char* password);
84 
85 
96 typedef bool
97 (*AcseAuthenticator)(void* parameter, AcseAuthenticationParameter authParameter, void** securityToken, IsoApplicationReference* appReference);
98 
104 typedef struct {
105  uint8_t size;
106  uint8_t value[4];
107 } TSelector;
108 
109 typedef struct {
110  uint8_t size;
111  uint8_t value[16];
112 } SSelector;
113 
115 {
116  AcseAuthenticationParameter acseAuthParameter;
117 
118  const char* hostname;
119  int tcpPort;
120 
121  uint8_t remoteApTitle[10];
124  uint32_t remotePSelector;
127 
128  uint8_t localApTitle[10];
131  uint32_t localPSelector;
134 
135 };
136 
137 typedef struct sIsoConnectionParameters* IsoConnectionParameters;
138 
147 IsoConnectionParameters
149 
158 void
159 IsoConnectionParameters_destroy(IsoConnectionParameters self);
160 
169 void
170 IsoConnectionParameters_setAcseAuthenticationParameter(IsoConnectionParameters self,
171  AcseAuthenticationParameter acseAuthParameter);
172 
183 void
184 IsoConnectionParameters_setTcpParameters(IsoConnectionParameters self, const char* hostname, int tcpPort);
185 
198 void
199 IsoConnectionParameters_setRemoteApTitle(IsoConnectionParameters self, const char* apTitle, int aeQualifier);
200 
213 void
214 IsoConnectionParameters_setRemoteAddresses(IsoConnectionParameters self, uint32_t pSelector, SSelector sSelector, TSelector tSelector);
215 
228 void
229 IsoConnectionParameters_setLocalApTitle(IsoConnectionParameters self, char* apTitle, int aeQualifier);
230 
243 void
244 IsoConnectionParameters_setLocalAddresses(IsoConnectionParameters self, uint32_t pSelector, SSelector sSelector, TSelector tSelector);
245 
248 #ifdef __cplusplus
249 }
250 #endif
251 
252 #endif /* ISO_CONNECTION_PARAMETERS_H_ */
Definition: iso_connection_parameters.h:44
TSelector localTSelector
Definition: iso_connection_parameters.h:133
AcseAuthenticationParameter acseAuthParameter
Definition: iso_connection_parameters.h:116
uint32_t localPSelector
Definition: iso_connection_parameters.h:131
uint8_t * octetString
Definition: iso_connection_parameters.h:60
struct sAcseAuthenticationParameter::@0::@2 certificate
uint8_t size
Definition: iso_connection_parameters.h:105
void IsoConnectionParameters_setLocalAddresses(IsoConnectionParameters self, uint32_t pSelector, SSelector sSelector, TSelector tSelector)
set local addresses for the lower layers
int remoteApTitleLen
Definition: iso_connection_parameters.h:122
Definition: iso_connection_parameters.h:43
uint8_t * buf
Definition: iso_connection_parameters.h:66
AcseAuthenticationParameter AcseAuthenticationParameter_create(void)
const char * hostname
Definition: iso_connection_parameters.h:118
Definition: iso_connection_parameters.h:114
bool(* AcseAuthenticator)(void *parameter, AcseAuthenticationParameter authParameter, void **securityToken, IsoApplicationReference *appReference)
Callback function to authenticate a client.
Definition: iso_connection_parameters.h:97
int passwordLength
Definition: iso_connection_parameters.h:61
struct sAcseAuthenticationParameter::@0::@1 password
TSelector remoteTSelector
Definition: iso_connection_parameters.h:126
AcseAuthenticationMechanism mechanism
Definition: iso_connection_parameters.h:55
void AcseAuthenticationParameter_setAuthMechanism(AcseAuthenticationParameter self, AcseAuthenticationMechanism mechanism)
void IsoConnectionParameters_setTcpParameters(IsoConnectionParameters self, const char *hostname, int tcpPort)
Set TCP parameters (FOR LIBRARY INTERNAL USE)
void IsoConnectionParameters_setLocalApTitle(IsoConnectionParameters self, char *apTitle, int aeQualifier)
set the local AP-Title and AE-Qualifier
Definition: iso_connection_parameters.h:47
Definition: iso_connection_parameters.h:53
AcseAuthenticationMechanism
authentication mechanism úsed by AcseAuthenticator
Definition: iso_connection_parameters.h:40
uint8_t size
Definition: iso_connection_parameters.h:110
void AcseAuthenticationParameter_setPassword(AcseAuthenticationParameter self, char *password)
void IsoConnectionParameters_setRemoteAddresses(IsoConnectionParameters self, uint32_t pSelector, SSelector sSelector, TSelector tSelector)
set remote addresses for the lower layers
int localApTitleLen
Definition: iso_connection_parameters.h:129
SSelector remoteSSelector
Definition: iso_connection_parameters.h:125
void IsoConnectionParameters_destroy(IsoConnectionParameters self)
Destroy an IsoConnectionParameters instance (FOR LIBRARY INTERNAL USE)
void IsoConnectionParameters_setAcseAuthenticationParameter(IsoConnectionParameters self, AcseAuthenticationParameter acseAuthParameter)
set the authentication parameter
union sAcseAuthenticationParameter::@0 value
void AcseAuthenticationParameter_destroy(AcseAuthenticationParameter self)
Definition: mms_common.h:164
COTP T selector.
Definition: iso_connection_parameters.h:104
Definition: iso_connection_parameters.h:109
IsoConnectionParameters IsoConnectionParameters_create(void)
create a new IsoConnectionParameters instance (FOR LIBRARY INTERNAL USE)
int tcpPort
Definition: iso_connection_parameters.h:119
Definition: iso_connection_parameters.h:42
int localAEQualifier
Definition: iso_connection_parameters.h:130
SSelector localSSelector
Definition: iso_connection_parameters.h:132
int length
Definition: iso_connection_parameters.h:67
uint32_t remotePSelector
Definition: iso_connection_parameters.h:124
int remoteAEQualifier
Definition: iso_connection_parameters.h:123
void IsoConnectionParameters_setRemoteApTitle(IsoConnectionParameters self, const char *apTitle, int aeQualifier)
set the remote AP-Title and AE-Qualifier