2
#include <lasso/saml-2.0/profile.h>
1
5
#define LASSO_SAML2_SUPPORT 1
7
/* Utility functions */
10
%rename(lasso_isSamlQuery) lasso_profile_is_saml_query;
12
%rename(isSamlQuery) lasso_profile_is_saml_query;
14
gboolean lasso_profile_is_saml_query(char *query);
5
19
%rename(SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT) LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT;
6
20
%rename(SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT) LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT;
21
%rename(SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED) LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED;
8
23
#define LASSO_SAML2_NAME_IDENTIFIER_FORMAT_PERSISTENT \
9
24
"urn:oasis:names:tc:SAML:2.0:nameid-format:persistent"
10
25
#define LASSO_SAML2_NAME_IDENTIFIER_FORMAT_TRANSIENT \
11
26
"urn:oasis:names:tc:SAML:2.0:nameid-format:transient"
27
#define LASSO_SAML2_NAME_IDENTIFIER_FORMAT_ENCRYPTED \
28
"urn:oasis:names:tc:SAML:2.0:nameid-format:encrypted"
30
/* Protocol Bindings */
32
%rename(SAML2_METADATA_BINDING_SOAP) LASSO_SAML2_METADATA_BINDING_SOAP;
33
%rename(SAML2_METADATA_BINDING_REDIRECT) LASSO_SAML2_METADATA_BINDING_REDIRECT;
34
%rename(SAML2_METADATA_BINDING_POST) LASSO_SAML2_METADATA_BINDING_POST;
35
%rename(SAML2_METADATA_BINDING_ARTIFACT) LASSO_SAML2_METADATA_BINDING_ARTIFACT;
36
%rename(SAML2_METADATA_BINDING_PAOS) LASSO_SAML2_METADATA_BINDING_PAOS;
38
#define LASSO_SAML2_METADATA_BINDING_SOAP "urn:oasis:names:tc:SAML:2.0:bindings:SOAP"
39
#define LASSO_SAML2_METADATA_BINDING_REDIRECT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect"
40
#define LASSO_SAML2_METADATA_BINDING_POST "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
41
#define LASSO_SAML2_METADATA_BINDING_ARTIFACT "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact"
42
#define LASSO_SAML2_METADATA_BINDING_PAOS "urn:oasis:names:tc:SAML:2.0:bindings:PAOS"
47
%rename(SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY) \
48
LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY;
49
%rename(SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL) \
50
LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL;
51
%rename(SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD) \
52
LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD;
53
%rename(SAML2_AUTHN_CONTEXT_KERBEROS) \
54
LASSO_SAML2_AUTHN_CONTEXT_KERBEROS;
55
%rename(SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT) \
56
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT;
57
%rename(SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED) \
58
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED;
59
%rename(SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT) \
60
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT;
61
%rename(SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED) \
62
LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED;
63
%rename(SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY) \
64
LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY;
65
%rename(SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY) \
66
LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY;
67
%rename(SAML2_AUTHN_CONTEXT_PGP) \
68
LASSO_SAML2_AUTHN_CONTEXT_PGP;
69
%rename(SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT) \
70
LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT;
71
%rename(SAML2_AUTHN_CONTEXT_PASSWORD) \
72
LASSO_SAML2_AUTHN_CONTEXT_PASSWORD;
73
%rename(SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION) \
74
LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION;
75
%rename(SAML2_AUTHN_CONTEXT_SMARTCARD) \
76
LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD;
77
%rename(SAML2_AUTHN_CONTEXT_SMARTCARD_PKI) \
78
LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI;
79
%rename(SAML2_AUTHN_CONTEXT_SOFTWARE_PKI) \
80
LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI;
81
%rename(SAML2_AUTHN_CONTEXT_SPKI) \
82
LASSO_SAML2_AUTHN_CONTEXT_SPKI;
83
%rename(SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD) \
84
LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD;
85
%rename(SAML2_AUTHN_CONTEXT_TLS_CLIENT) \
86
LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT;
87
%rename(SAML2_AUTHN_CONTEXT_X509) \
88
LASSO_SAML2_AUTHN_CONTEXT_X509;
89
%rename(SAML2_AUTHN_CONTEXT_TELEPHONY) \
90
LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY;
91
%rename(SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN) \
92
LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN;
93
%rename(SAML2_AUTHN_CONTEXT_XMLDSIG) \
94
LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG;
96
#define LASSO_SAML2_AUTHN_CONTEXT_AUTHENTICATED_TELEPHONY \
97
"urn:oasis:names:tc:SAML:2.0:ac:classes:AuthenticatedTelephony"
98
#define LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL \
99
"urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocol"
100
#define LASSO_SAML2_AUTHN_CONTEXT_INTERNET_PROTOCOL_PASSWORD \
101
"urn:oasis:names:tc:SAML:2.0:ac:classes:InternetProtocolPassword"
102
#define LASSO_SAML2_AUTHN_CONTEXT_KERBEROS \
103
"urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos"
104
#define LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_CONTRACT \
105
"urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorContract"
106
#define LASSO_SAML2_AUTHN_CONTEXT_MOBILE_ONE_FACTOR_UNREGISTERED \
107
"urn:oasis:names:tc:SAML:2.0:ac:classes:MobileOneFactorUnregistered"
108
#define LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_CONTRACT \
109
"urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorContract"
110
#define LASSO_SAML2_AUTHN_CONTEXT_MOBILE_TWO_FACTOR_UNREGISTERED \
111
"urn:oasis:names:tc:SAML:2.0:ac:classes:MobileTwoFactorUnregistered"
112
#define LASSO_SAML2_AUTHN_CONTEXT_NOMAD_TELEPHONY \
113
"urn:oasis:names:tc:SAML:2.0:ac:classes:NomadTelephony"
114
#define LASSO_SAML2_AUTHN_CONTEXT_PERSONALIZED_TELEPHONY \
115
"urn:oasis:names:tc:SAML:2.0:ac:classes:PersonalizedTelephony"
116
#define LASSO_SAML2_AUTHN_CONTEXT_PGP \
117
"urn:oasis:names:tc:SAML:2.0:ac:classes:PGP"
118
#define LASSO_SAML2_AUTHN_CONTEXT_PASSWORD_PROTECTED_TRANSPORT \
119
"urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"
120
#define LASSO_SAML2_AUTHN_CONTEXT_PASSWORD \
121
"urn:oasis:names:tc:SAML:2.0:ac:classes:Password"
122
#define LASSO_SAML2_AUTHN_CONTEXT_PREVIOUS_SESSION \
123
"urn:oasis:names:tc:SAML:2.0:ac:classes:PreviousSession"
124
#define LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD \
125
"urn:oasis:names:tc:SAML:2.0:ac:classes:Smartcard"
126
#define LASSO_SAML2_AUTHN_CONTEXT_SMARTCARD_PKI \
127
"urn:oasis:names:tc:SAML:2.0:ac:classes:SmartcardPKI"
128
#define LASSO_SAML2_AUTHN_CONTEXT_SOFTWARE_PKI \
129
"urn:oasis:names:tc:SAML:2.0:ac:classes:SoftwarePKI"
130
#define LASSO_SAML2_AUTHN_CONTEXT_SPKI \
131
"urn:oasis:names:tc:SAML:2.0:ac:classes:SPKI"
132
#define LASSO_SAML2_AUTHN_CONTEXT_SECURE_REMOTE_PASSWORD \
133
"urn:oasis:names:tc:SAML:2.0:ac:classes:SecureRemotePassword"
134
#define LASSO_SAML2_AUTHN_CONTEXT_TLS_CLIENT \
135
"urn:oasis:names:tc:SAML:2.0:ac:classes:TLSClient"
136
#define LASSO_SAML2_AUTHN_CONTEXT_X509 \
137
"urn:oasis:names:tc:SAML:2.0:ac:classes:X509"
138
#define LASSO_SAML2_AUTHN_CONTEXT_TELEPHONY \
139
"urn:oasis:names:tc:SAML:2.0:ac:classes:Telephony"
140
#define LASSO_SAML2_AUTHN_CONTEXT_TIME_SYNC_TOKEN \
141
"urn:oasis:names:tc:SAML:2.0:ac:classes:TimeSyncToken"
142
#define LASSO_SAML2_AUTHN_CONTEXT_XMLDSIG \
143
"urn:oasis:names:tc:SAML:2.0:ac:classes:XMLDSig"
145
/***********************************************************************
146
* lasso:NameIdManagement
147
***********************************************************************/
151
%rename(NameIdManagement) LassoNameIdManagement;
154
} LassoNameIdManagement;
155
%extend LassoNameIdManagement {
156
/* Attributes inherited from Profile */
160
char *artifactMessage;
162
%newobject identity_get;
163
LassoIdentity *identity;
165
%immutable isIdentityDirty;
166
gboolean isIdentityDirty;
168
%immutable isSessionDirty;
169
gboolean isSessionDirty;
174
%immutable msgRelayState;
180
%newobject nameIdentifier_get;
181
LassoNode *nameIdentifier;
183
char *remoteProviderId;
185
%newobject request_get;
188
%newobject response_get;
191
%newobject server_get;
194
%newobject session_get;
195
LassoSession *session;
197
/* Constructor, Destructor & Static Methods */
199
LassoNameIdManagement(LassoServer *server);
201
~LassoNameIdManagement();
203
%newobject newFromDump;
204
static LassoNameIdManagement *newFromDump(LassoServer *server, char *dump);
206
/* Methods inherited from Profile */
209
int setIdentityFromDump(char *dump);
213
int setSessionFromDump(char *dump);
219
int buildRequestMsg();
223
int buildResponseMsg();
230
int initRequest(char *remoteProviderId = NULL,
231
char *new_name_id = NULL,
232
LassoHttpMethod httpMethod = LASSO_HTTP_METHOD_ANY);
236
int processRequestMsg(char *requestMsg);
240
int processResponseMsg(char *responseMsg);
244
int validateRequest();
250
/* Implementations of attributes inherited from Profile */
253
#define LassoNameIdManagement_get_identity(self) lasso_profile_get_identity(LASSO_PROFILE(self))
254
#define LassoNameIdManagement_identity_get(self) lasso_profile_get_identity(LASSO_PROFILE(self))
255
#define LassoNameIdManagement_set_identity(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->identity, (value))
256
#define LassoNameIdManagement_identity_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->identity, (value))
259
#define LassoNameIdManagement_get_artifact(self) lasso_profile_get_artifact(LASSO_PROFILE(self))
260
#define LassoNameIdManagement_artifact_get(self) lasso_profile_get_artifact(LASSO_PROFILE(self))
262
/* artifactMessage */
263
#define LassoNameIdManagement_get_artifactMessage(self) lasso_profile_get_artifact_message(LASSO_PROFILE(self))
264
#define LassoNameIdManagement_artifactMessage_get(self) lasso_profile_get_artifact_message(LASSO_PROFILE(self))
265
#define LassoNameIdManagement_set_artifactMessage(self, value) lasso_profile_set_artifact_message(LASSO_PROFILE(self), value)
266
#define LassoNameIdManagement_artifactMessage_set(self, value) lasso_profile_set_artifact_message(LASSO_PROFILE(self), value)
268
/* isIdentityDirty */
269
#define LassoNameIdManagement_get_isIdentityDirty(self) lasso_profile_is_identity_dirty(LASSO_PROFILE(self))
270
#define LassoNameIdManagement_isIdentityDirty_get(self) lasso_profile_is_identity_dirty(LASSO_PROFILE(self))
273
#define LassoNameIdManagement_get_isSessionDirty(self) lasso_profile_is_session_dirty(LASSO_PROFILE(self))
274
#define LassoNameIdManagement_isSessionDirty_get(self) lasso_profile_is_session_dirty(LASSO_PROFILE(self))
277
#define LassoNameIdManagement_get_msgBody(self) LASSO_PROFILE(self)->msg_body
278
#define LassoNameIdManagement_msgBody_get(self) LASSO_PROFILE(self)->msg_body
281
#define LassoNameIdManagement_get_msgRelayState(self) LASSO_PROFILE(self)->msg_relayState
282
#define LassoNameIdManagement_msgRelayState_get(self) LASSO_PROFILE(self)->msg_relayState
285
#define LassoNameIdManagement_get_msgUrl(self) LASSO_PROFILE(self)->msg_url
286
#define LassoNameIdManagement_msgUrl_get(self) LASSO_PROFILE(self)->msg_url
289
#define LassoNameIdManagement_get_nameIdentifier(self) get_node(LASSO_PROFILE(self)->nameIdentifier)
290
#define LassoNameIdManagement_nameIdentifier_get(self) get_node(LASSO_PROFILE(self)->nameIdentifier)
291
#define LassoNameIdManagement_set_nameIdentifier(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->nameIdentifier, (value))
292
#define LassoNameIdManagement_nameIdentifier_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->nameIdentifier, (value))
294
/* remoteProviderId */
295
#define LassoNameIdManagement_get_remoteProviderId(self) LASSO_PROFILE(self)->remote_providerID
296
#define LassoNameIdManagement_remoteProviderId_get(self) LASSO_PROFILE(self)->remote_providerID
297
#define LassoNameIdManagement_set_remoteProviderId(self, value) set_string(&LASSO_PROFILE(self)->remote_providerID, (value))
298
#define LassoNameIdManagement_remoteProviderId_set(self, value) set_string(&LASSO_PROFILE(self)->remote_providerID, (value))
301
#define LassoNameIdManagement_get_request(self) get_node(LASSO_PROFILE(self)->request)
302
#define LassoNameIdManagement_request_get(self) get_node(LASSO_PROFILE(self)->request)
303
#define LassoNameIdManagement_set_request(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->request, (value))
304
#define LassoNameIdManagement_request_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->request, (value))
307
#define LassoNameIdManagement_get_response(self) get_node(LASSO_PROFILE(self)->response)
308
#define LassoNameIdManagement_response_get(self) get_node(LASSO_PROFILE(self)->response)
309
#define LassoNameIdManagement_set_response(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->response, (value))
310
#define LassoNameIdManagement_response_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->response, (value))
313
#define LassoNameIdManagement_get_server(self) get_node(LASSO_PROFILE(self)->server)
314
#define LassoNameIdManagement_server_get(self) get_node(LASSO_PROFILE(self)->server)
315
#define LassoNameIdManagement_set_server(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->server, (value))
316
#define LassoNameIdManagement_server_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->server, (value))
319
#define LassoNameIdManagement_get_session(self) lasso_profile_get_session(LASSO_PROFILE(self))
320
#define LassoNameIdManagement_session_get(self) lasso_profile_get_session(LASSO_PROFILE(self))
321
#define LassoNameIdManagement_set_session(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->session, (value))
322
#define LassoNameIdManagement_session_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->session, (value))
324
/* Constructors, destructors & static methods implementations */
326
#define new_LassoNameIdManagement lasso_name_id_management_new
327
#define delete_LassoNameIdManagement(self) lasso_node_destroy(LASSO_NODE(self))
328
#define LassoNameIdManagement_newFromDump lasso_name_id_management_new_from_dump
330
/* Implementations of methods inherited from Profile */
332
int LassoNameIdManagement_setIdentityFromDump(LassoNameIdManagement *self, char *dump) {
333
return lasso_profile_set_identity_from_dump(LASSO_PROFILE(self), dump);
336
int LassoNameIdManagement_setSessionFromDump(LassoNameIdManagement *self, char *dump) {
337
return lasso_profile_set_session_from_dump(LASSO_PROFILE(self), dump);
340
/* Methods implementations */
342
#define LassoNameIdManagement_buildRequestMsg lasso_name_id_management_build_request_msg
343
#define LassoNameIdManagement_buildResponseMsg lasso_name_id_management_build_response_msg
344
#define LassoNameIdManagement_dump lasso_name_id_management_dump
345
#define LassoNameIdManagement_getNextProviderId lasso_name_id_management_get_next_providerID
346
#define LassoNameIdManagement_initRequest lasso_name_id_management_init_request
347
#define LassoNameIdManagement_processRequestMsg lasso_name_id_management_process_request_msg
348
#define LassoNameIdManagement_processResponseMsg lasso_name_id_management_process_response_msg
349
#define LassoNameIdManagement_resetProviderIdIndex lasso_name_id_management_reset_providerID_index
350
#define LassoNameIdManagement_validateRequest lasso_name_id_management_validate_request
354
/***********************************************************************
356
***********************************************************************/
360
%rename(Ecp) LassoEcp;
368
%immutable msgRelayState;
374
%newobject request_get;
377
%newobject response_get;
380
%immutable assertionConsumerURL;
381
char *assertionConsumerURL;
383
/* Constructor, Destructor & Static Methods */
385
LassoEcp(LassoServer *server);
389
/* Methods inherited from Profile */
394
int processAuthnRequestMsg(char *authnRequestMsg);
398
int processResponseMsg(char *responseMsg);
405
/* Implementations of attributes inherited from Profile */
408
#define LassoEcp_get_msgBody(self) LASSO_PROFILE(self)->msg_body
409
#define LassoEcp_msgBody_get(self) LASSO_PROFILE(self)->msg_body
412
#define LassoEcp_get_msgRelayState(self) LASSO_PROFILE(self)->msg_relayState
413
#define LassoEcp_msgRelayState_get(self) LASSO_PROFILE(self)->msg_relayState
416
#define LassoEcp_get_msgUrl(self) LASSO_PROFILE(self)->msg_url
417
#define LassoEcp_msgUrl_get(self) LASSO_PROFILE(self)->msg_url
420
#define LassoEcp_get_request(self) get_node(LASSO_PROFILE(self)->request)
421
#define LassoEcp_request_get(self) get_node(LASSO_PROFILE(self)->request)
422
#define LassoEcp_set_request(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->request, (value))
423
#define LassoEcp_request_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->request, (value))
426
#define LassoEcp_get_response(self) get_node(LASSO_PROFILE(self)->response)
427
#define LassoEcp_response_get(self) get_node(LASSO_PROFILE(self)->response)
428
#define LassoEcp_set_response(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->response, (value))
429
#define LassoEcp_response_set(self, value) set_node((gpointer *) &LASSO_PROFILE(self)->response, (value))
431
/* assertionConsumerURL */
432
#define LassoEcp_get_assertionConsumerURL(self) self->assertionConsumerURL
433
#define LassoEcp_assertionConsumerURL_get(self) self->assertionConsumerURL
435
/* Constructors, destructors & static methods implementations */
437
#define new_LassoEcp lasso_ecp_new
438
#define delete_LassoEcp(self) lasso_node_destroy(LASSO_NODE(self))
440
/* Implementations of methods inherited from Profile */
442
/* Methods implementations */
443
#define LassoEcp_processAuthnRequestMsg lasso_ecp_process_authn_request_msg
444
#define LassoEcp_processResponseMsg lasso_ecp_process_response_msg