Genivia Home Documentation
wsseapi-lite.c File Reference

updated Fri Jul 17 2020 by Robert van Engelen
 
Macros | Functions | Variables
wsseapi-lite.c File Reference
#include "wsseapi-lite.h"
Include dependency graph for wsseapi-lite.c:

Macros

#define SOAP_WSSE_CLKSKEW   (300)
 

Functions

SOAP_FMAC1 struct _wsse__Security *SOAP_FMAC2 soap_wsse_add_Security (struct soap *soap)
 Adds Security header element. More...
 
SOAP_FMAC1 struct _wsse__Security *SOAP_FMAC2 soap_wsse_add_Security_actor (struct soap *soap, const char *actor)
 Adds Security header element with actor or role attribute. More...
 
SOAP_FMAC1 void SOAP_FMAC2 soap_wsse_delete_Security (struct soap *soap)
 Deletes Security header element. More...
 
SOAP_FMAC1 struct _wsse__Security *SOAP_FMAC2 soap_wsse_Security (struct soap *soap)
 Returns Security header element if present. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_add_Timestamp (struct soap *soap, const char *id, time_t lifetime)
 Adds Timestamp element with optional expiration date+time (lifetime). More...
 
SOAP_FMAC1 struct _wsu__Timestamp *SOAP_FMAC2 soap_wsse_Timestamp (struct soap *soap)
 Returns Timestamp element if present. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_verify_Timestamp (struct soap *soap)
 Verifies the Timestamp/Expires element against the current time. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_add_UsernameTokenText (struct soap *soap, const char *id, const char *username, const char *password)
 Adds UsernameToken element with optional clear-text password. More...
 
SOAP_FMAC1 struct _wsse__UsernameToken *SOAP_FMAC2 soap_wsse_UsernameToken (struct soap *soap, const char *id)
 Returns UsernameToken element if present. More...
 
SOAP_FMAC1 const char *SOAP_FMAC2 soap_wsse_get_Username (struct soap *soap)
 Returns UsernameToken/username string or wsse:FailedAuthentication fault. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_verify_Password (struct soap *soap, const char *password)
 Verifies the supplied password or sets wsse:FailedAuthentication fault. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_sender_fault_subcode (struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
 Sets sender SOAP Fault (sub)code for server fault response. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_receiver_fault_subcode (struct soap *soap, const char *faultsubcode, const char *faultstring, const char *faultdetail)
 Sets receiver SOAP Fault (sub)code for server fault response. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_sender_fault (struct soap *soap, const char *faultstring, const char *faultdetail)
 Sets sender SOAP Fault for server fault response. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_receiver_fault (struct soap *soap, const char *faultstring, const char *faultdetail)
 Sets receiver SOAP Fault for server fault response. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_fault (struct soap *soap, wsse__FaultcodeEnum fault, const char *detail)
 Sets SOAP Fault (sub)code for server response. More...
 
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_set_wsu_id (struct soap *soap, const char *tags)
 Sets the elements that are to be extended with wsu:Id attributes. The wsu:Id attribute values are set to the string value of the tag's QName by replacing colons with hyphens to produce an xsd:ID value. More...
 

Variables

const char * wsse_PasswordTextURI = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"
 

Macro Definition Documentation

#define SOAP_WSSE_CLKSKEW   (300)

Clock skew between machines (in sec) to fit message expiration in window

Function Documentation

SOAP_FMAC1 struct _wsse__Security* SOAP_FMAC2 soap_wsse_add_Security ( struct soap *  soap)

Adds Security header element.

Parameters
soapcontext
Returns
_wsse__Security object
SOAP_FMAC1 struct _wsse__Security* SOAP_FMAC2 soap_wsse_add_Security_actor ( struct soap *  soap,
const char *  actor 
)

Adds Security header element with actor or role attribute.

Parameters
soapcontext
actorstring
Returns
_wsse__Security object
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_add_Timestamp ( struct soap *  soap,
const char *  id,
time_t  lifetime 
)

Adds Timestamp element with optional expiration date+time (lifetime).

Parameters
[in]soapcontext
[in]idfor signature referencing or NULL
[in]lifetimeexpressed in time_t units, or 0 for no expiration
Returns
SOAP_OK
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_add_UsernameTokenText ( struct soap *  soap,
const char *  id,
const char *  username,
const char *  password 
)

Adds UsernameToken element with optional clear-text password.

Parameters
soapcontext
[in]idstring for signature referencing or NULL
[in]usernamestring
[in]passwordstring or NULL to omit the password
Returns
SOAP_OK

Passwords are sent in the clear, so transport-level encryption is required.

Note
This release supports the use of at most one UsernameToken in the header.
SOAP_FMAC1 void SOAP_FMAC2 soap_wsse_delete_Security ( struct soap *  soap)

Deletes Security header element.

Parameters
soapcontext
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_fault ( struct soap *  soap,
wsse__FaultcodeEnum  fault,
const char *  detail 
)

Sets SOAP Fault (sub)code for server response.

Parameters
soapcontext
[in]faultis one of wsse:FaultcodeEnum
[in]detailstring with optional text message
Returns
SOAP_FAULT
SOAP_FMAC1 const char* SOAP_FMAC2 soap_wsse_get_Username ( struct soap *  soap)

Returns UsernameToken/username string or wsse:FailedAuthentication fault.

Parameters
soapcontext
Returns
UsernameToken/username string or NULL with wsse:FailedAuthentication fault error set
See also
soap_wsse_verify_Password

The returned username should be used to lookup the user's password in a dictionary or database for server-side authentication with soap_wsse_verify_Password.

SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_receiver_fault ( struct soap *  soap,
const char *  faultstring,
const char *  faultdetail 
)

Sets receiver SOAP Fault for server fault response.

Parameters
soapcontext
[in]faultstringfault string
[in]faultdetaildetail string
Returns
SOAP_FAULT
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_receiver_fault_subcode ( struct soap *  soap,
const char *  faultsubcode,
const char *  faultstring,
const char *  faultdetail 
)

Sets receiver SOAP Fault (sub)code for server fault response.

Parameters
soapcontext
[in]faultsubcodesub code string
[in]faultstringfault string
[in]faultdetaildetail string
Returns
SOAP_FAULT
SOAP_FMAC1 struct _wsse__Security* SOAP_FMAC2 soap_wsse_Security ( struct soap *  soap)

Returns Security header element if present.

Parameters
soapcontext
Returns
_wsse__Security object or NULL
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_sender_fault ( struct soap *  soap,
const char *  faultstring,
const char *  faultdetail 
)

Sets sender SOAP Fault for server fault response.

Parameters
soapcontext
[in]faultstringfault string
[in]faultdetaildetail string
Returns
SOAP_FAULT
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_sender_fault_subcode ( struct soap *  soap,
const char *  faultsubcode,
const char *  faultstring,
const char *  faultdetail 
)

Sets sender SOAP Fault (sub)code for server fault response.

Parameters
soapcontext
[in]faultsubcodesub code string
[in]faultstringfault string
[in]faultdetaildetail string
Returns
SOAP_FAULT
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_set_wsu_id ( struct soap *  soap,
const char *  tags 
)

Sets the elements that are to be extended with wsu:Id attributes. The wsu:Id attribute values are set to the string value of the tag's QName by replacing colons with hyphens to produce an xsd:ID value.

Parameters
soapcontext
[in]tagsstring of space-separated qualified and unqualified element tag names
Returns
SOAP_OK
SOAP_FMAC1 struct _wsu__Timestamp* SOAP_FMAC2 soap_wsse_Timestamp ( struct soap *  soap)

Returns Timestamp element if present.

Parameters
soapcontext
Returns
_wsu__Timestamp object or NULL
SOAP_FMAC1 struct _wsse__UsernameToken* SOAP_FMAC2 soap_wsse_UsernameToken ( struct soap *  soap,
const char *  id 
)

Returns UsernameToken element if present.

Parameters
soapcontext
[in]idstring of UsernameToken or NULL
Returns
_wsse__UsernameToken object or NULL
Note
This release supports the use of at most one UsernameToken in the header.
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_verify_Password ( struct soap *  soap,
const char *  password 
)

Verifies the supplied password or sets wsse:FailedAuthentication fault.

Parameters
soapcontext
[in]passwordstring to verify against
Returns
SOAP_OK (authorized) or SOAP_FAULT with wsse:FailedAuthentication fault

The verification supports both clear-text password verification only.

Note
This release supports the use of at most one UsernameToken in the header.
SOAP_FMAC1 int SOAP_FMAC2 soap_wsse_verify_Timestamp ( struct soap *  soap)

Verifies the Timestamp/Expires element against the current time.

Parameters
soapcontext
Returns
SOAP_OK or SOAP_FAULT with wsu:MessageExpired fault

Sets wsu:MessageExpired fault if wsu:Timestamp is expired. The SOAP_WSSE_CLKSKEW value is used as a margin to mitigate clock skew. Keeps silent when no timestamp is supplied or no expiration date is included in the wsu:Timestamp element.

Variable Documentation

const char* wsse_PasswordTextURI = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"