proton  0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Typedefs | Enumerations | Functions
sasl.h File Reference

API for the SASL Secure Transport Layer. More...

#include <proton/import_export.h>
#include <sys/types.h>
#include <proton/type_compat.h>
#include <proton/engine.h>

Go to the source code of this file.

Typedefs

typedef struct pn_sasl_t pn_sasl_t
 

Enumerations

enum  pn_sasl_outcome_t {
  PN_SASL_NONE =-1, PN_SASL_OK =0, PN_SASL_AUTH =1, PN_SASL_SYS =2,
  PN_SASL_PERM =3, PN_SASL_TEMP =4
}
 The result of the SASL negotiation. More...
 
enum  pn_sasl_state_t {
  PN_SASL_CONF, PN_SASL_IDLE, PN_SASL_STEP, PN_SASL_PASS,
  PN_SASL_FAIL
}
 The state of the SASL negotiation process. More...
 

Functions

PN_EXTERN pn_sasl_tpn_sasl (pn_transport_t *transport)
 Construct an Authentication and Security Layer object. More...
 
PN_EXTERN pn_sasl_state_t pn_sasl_state (pn_sasl_t *sasl)
 Access the current state of the layer. More...
 
PN_EXTERN void pn_sasl_mechanisms (pn_sasl_t *sasl, const char *mechanisms)
 Set the acceptable SASL mechanisms for the layer. More...
 
PN_EXTERN const char * pn_sasl_remote_mechanisms (pn_sasl_t *sasl)
 Retrieve the list of SASL mechanisms provided by the remote. More...
 
PN_EXTERN void pn_sasl_client (pn_sasl_t *sasl)
 Configure the SASL layer to act as a SASL client. More...
 
PN_EXTERN void pn_sasl_server (pn_sasl_t *sasl)
 Configure the SASL layer to act as a server. More...
 
PN_EXTERN void pn_sasl_plain (pn_sasl_t *sasl, const char *username, const char *password)
 Configure the SASL layer to use the "PLAIN" mechanism. More...
 
PN_EXTERN size_t pn_sasl_pending (pn_sasl_t *sasl)
 Determine the size of the bytes available via pn_sasl_recv(). More...
 
PN_EXTERN ssize_t pn_sasl_recv (pn_sasl_t *sasl, char *bytes, size_t size)
 Read challenge/response data sent from the peer. More...
 
PN_EXTERN ssize_t pn_sasl_send (pn_sasl_t *sasl, const char *bytes, size_t size)
 Send challenge or response data to the peer. More...
 
PN_EXTERN void pn_sasl_done (pn_sasl_t *sasl, pn_sasl_outcome_t outcome)
 Set the outcome of SASL negotiation. More...
 
PN_EXTERN pn_sasl_outcome_t pn_sasl_outcome (pn_sasl_t *sasl)
 Retrieve the outcome of SASL negotiation. More...
 

Detailed Description

API for the SASL Secure Transport Layer.

The SASL layer is responsible for establishing an authenticated and/or encrypted tunnel over which AMQP frames are passed between peers. The peer acting as the SASL Client must provide authentication credentials. The peer acting as the SASL Server must provide authentication against the received credentials.