1/* ldap-tls.h - TLS defines & prototypes internal to the LDAP library */ 2/* $OpenLDAP$ */ 3/* This work is part of OpenLDAP Software <http://www.openldap.org/>. 4 * 5 * Copyright 2008-2011 The OpenLDAP Foundation. 6 * All rights reserved. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted only as authorized by the OpenLDAP 10 * Public License. 11 * 12 * A copy of this license is available in the file LICENSE in the 13 * top-level directory of the distribution or, alternatively, at 14 * <http://www.OpenLDAP.org/license.html>. 15 */ 16 17#ifndef _LDAP_TLS_H 18#define _LDAP_TLS_H 1 19 20struct tls_impl; 21 22struct tls_ctx; 23struct tls_session; 24 25typedef struct tls_ctx tls_ctx; 26typedef struct tls_session tls_session; 27 28typedef int (TI_tls_init)(void); 29typedef void (TI_tls_destroy)(void); 30 31typedef tls_ctx *(TI_ctx_new)(struct ldapoptions *lo); 32typedef void (TI_ctx_ref)(tls_ctx *ctx); 33typedef void (TI_ctx_free)(tls_ctx *ctx); 34typedef int (TI_ctx_init)(struct ldapoptions *lo, struct ldaptls *lt, int is_server); 35 36typedef tls_session *(TI_session_new)(tls_ctx *ctx, int is_server); 37typedef int (TI_session_connect)(LDAP *ld, tls_session *s); 38typedef int (TI_session_accept)(tls_session *s); 39typedef int (TI_session_upflags)(Sockbuf *sb, tls_session *s, int rc); 40typedef char *(TI_session_errmsg)(tls_session *s, int rc, char *buf, size_t len ); 41typedef int (TI_session_dn)(tls_session *sess, struct berval *dn); 42typedef int (TI_session_chkhost)(LDAP *ld, tls_session *s, const char *name_in); 43typedef int (TI_session_strength)(tls_session *sess); 44 45typedef void (TI_thr_init)(void); 46 47typedef struct tls_impl { 48 const char *ti_name; 49 50 TI_tls_init *ti_tls_init; /* library initialization */ 51 TI_tls_destroy *ti_tls_destroy; 52 53 TI_ctx_new *ti_ctx_new; 54 TI_ctx_ref *ti_ctx_ref; 55 TI_ctx_free *ti_ctx_free; 56 TI_ctx_init *ti_ctx_init; 57 58 TI_session_new *ti_session_new; 59 TI_session_connect *ti_session_connect; 60 TI_session_accept *ti_session_accept; 61 TI_session_upflags *ti_session_upflags; 62 TI_session_errmsg *ti_session_errmsg; 63 TI_session_dn *ti_session_my_dn; 64 TI_session_dn *ti_session_peer_dn; 65 TI_session_chkhost *ti_session_chkhost; 66 TI_session_strength *ti_session_strength; 67 68 Sockbuf_IO *ti_sbio; 69 70 TI_thr_init *ti_thr_init; 71 72 int ti_inited; 73} tls_impl; 74 75extern tls_impl ldap_int_tls_impl; 76 77#endif /* _LDAP_TLS_H */ 78