tlssep

tlssep

Functions

Types and Values

Description

Functions

tlssep_init ()

tlssep_status_t
tlssep_init (tlssep_context_t *context);

Returns


tlssep_connect ()

tlssep_status_t
tlssep_connect (tlssep_context_t *context,
                int file_descriptor,
                const char *expected_common_name,
                char **common_name,
                tlssep_desc_t *desc);

Returns


tlssep_accept ()

tlssep_status_t
tlssep_accept (tlssep_context_t *context,
               int file_descriptor,
               const char *expected_common_name,
               char **common_name,
               tlssep_desc_t *desc);

Returns


tlssep_write ()

tlssep_status_t
tlssep_write (tlssep_desc_t *desc,
              const void *buf,
              size_t buf_size,
              size_t *bytes_written);

Returns


tlssep_read ()

tlssep_status_t
tlssep_read (tlssep_desc_t *desc,
             void *buf,
             size_t buf_size,
             size_t *num_read);

Returns


tlssep_peek ()

tlssep_status_t
tlssep_peek (tlssep_desc_t *desc,
             void *buf,
             size_t buf_size,
             size_t *num_read);

Returns


tlssep_poll ()

tlssep_status_t
tlssep_poll (tlssep_desc_t *desc,
             unsigned int timeout);

Returns


tlssep_setnonblock ()

tlssep_status_t
tlssep_setnonblock (tlssep_desc_t *desc);

Returns


tlssep_close ()

tlssep_status_t
tlssep_close (tlssep_desc_t *desc);

Returns


tlssep_terminate ()

tlssep_status_t
tlssep_terminate (tlssep_context_t *context);

Returns


tlssep_strerror ()

char *
tlssep_strerror (tlssep_status_t error);

Returns

Types and Values

enum tlssep_verification_engine_t

Members

TLSSEP_VERIFICATION_ENGINE_CA

   

TLSSEP_VERIFICATION_ENGINE_SELF_SIGNED

   

TLSSEP_VERIFICATION_ENGINE_UNSAFE

   

enum tlssep_status_t

Members

TLSSEP_STATUS_OK

   

TLSSEP_STATUS_AGAIN

   

TLSSEP_STATUS_ERROR

   

TLSSEP_STATUS_ERROR_TLS

   

TLSSEP_STATUS_ERROR_TLS_CONNECT

   

TLSSEP_STATUS_ERROR_TLS_ACCEPT

   

TLSSEP_STATUS_ERROR_TLS_WRITE

   

TLSSEP_STATUS_ERROR_TLS_READ

   

TLSSEP_STATUS_ERROR_RPC_FAILURE

   

TLSSEP_STATUS_ERROR_ALLOCATION_FAILED

   

TLSSEP_STATUS_ERROR_POLL_FAILED

   

TLSSEP_STATUS_ERROR_SOCKET_FAILED

   

TLSSEP_STATUS_ERROR_DECORATOR_READY_FAILED

   

TLSSEP_STATUS_ERROR_DECORATOR_BAD_EXIT

   

TLSSEP_STATUS_ERROR_DECORATOR_FORK

   

TLSSEP_STATUS_ERROR_DECORATOR_EXEC

   

TLSSEP_STATUS_ERROR_DECORATOR_MISSING

   

TLSSEP_STATUS_ERROR_DESCRIPTORS_EXHAUSTED

   

TLSSEP_STATUS_ERROR_TRANSMITTING_FILE_DESCRIPTOR

   

TLSSEP_STATUS_ERROR_DECORATOR_RPC_INIT

   

TLSSEP_STATUS_ERROR_DECORATOR_ACCEPT

   

TLSSEP_STATUS_ERROR_DECORATOR_CONNECT

   

TLSSEP_STATUS_ERROR_DECORATOR_BAD_CERT_PATH

   

TLSSEP_STATUS_ERROR_DECORATOR_BAD_PRIVKEY_PATH

   

TLSSEP_STATUS_ERROR_DECORATOR_BAD_CA_PATH

   

TLSSEP_STATUS_ERROR_DECORATOR_BAD_VERIFICATION_ENGINE

   

TLSSEP_STATUS_ERROR_DECORATOR_BAD_CERTIFICATE

   

TLSSEP_STATUS_ERROR_DECORATOR_CERTIFICATE_MISMATCH

   

TLSSEP_STATUS_ERROR_DECORATOR_MISSING_CERTIFICATE

   

TLSSEP_STATUS_NOT_IMPLEMENTED

   

TLSSEP_STATUS_LAST

   

enum tlssep_op_t

Members

TLSSEP_OP_INIT

   

TLSSEP_OP_ACCEPT

   

TLSSEP_OP_CONNECT

   

TLSSEP_OP_WRITE

   

TLSSEP_OP_READ

   

TLSSEP_OP_PEEK

   

TLSSEP_OP_SETNONBLOCK

   

TLSSEP_OP_CLOSE

   

TLSSEP_OP_TERMINATE

   

tlssep_connect_args_t

typedef struct {
	char expected_common_name[MAXHOSTNAMELEN];
	char path[PATH_MAX];
} tlssep_connect_args_t;


tlssep_id_t

typedef unsigned int tlssep_id_t;


tlssep_write_args_t

typedef struct {
	tlssep_id_t  id;
	size_t       size;
} tlssep_write_args_t;


tlssep_read_args_t

typedef struct {
	tlssep_id_t id;
	size_t      size;
} tlssep_read_args_t;


tlssep_connect_ret_t

typedef struct {
	tlssep_status_t status;
	tlssep_id_t     id;
	size_t          common_name_size;
} tlssep_connect_ret_t;


tlssep_write_ret_t

typedef struct {
	tlssep_status_t status;
	size_t          size;
} tlssep_write_ret_t;


tlssep_read_ret_t

typedef struct {
	tlssep_status_t status;
	bool            more;
	size_t          size;
} tlssep_read_ret_t;


tlssep_context_t

typedef struct {
	char   *opSocketPath;
	int     opSocket;
	char   *fdTransferSocketPath;
	int     fdTransferSocket;
	pid_t   decoratorPid;
} tlssep_context_t;


tlssep_desc_t

typedef struct {
	tlssep_context_t *context;
	char *            notificationSocketPath;
	int               notificationSocket;
	tlssep_id_t       id;
} tlssep_desc_t;