wrapped_sasl.c revision 362181
1/*
2 * wrapped_sasl.c :  wrapped SASL API
3 *
4 * ====================================================================
5 *    Licensed to the Apache Software Foundation (ASF) under one
6 *    or more contributor license agreements.  See the NOTICE file
7 *    distributed with this work for additional information
8 *    regarding copyright ownership.  The ASF licenses this file
9 *    to you under the Apache License, Version 2.0 (the
10 *    "License"); you may not use this file except in compliance
11 *    with the License.  You may obtain a copy of the License at
12 *
13 *      http://www.apache.org/licenses/LICENSE-2.0
14 *
15 *    Unless required by applicable law or agreed to in writing,
16 *    software distributed under the License is distributed on an
17 *    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18 *    KIND, either express or implied.  See the License for the
19 *    specific language governing permissions and limitations
20 *    under the License.
21 * ====================================================================
22 */
23
24#include "svn_private_config.h"
25#ifdef SVN_HAVE_SASL
26
27#include "private/ra_svn_wrapped_sasl.h"
28
29/* See the comment at the top of svn_wrapped_sasl.h */
30#ifdef __APPLE__
31#  if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2)
32#    pragma GCC diagnostic ignored "-Wdeprecated-declarations"
33#  endif
34#endif /* __APPLE__ */
35
36void
37svn_sasl__set_mutex(sasl_mutex_alloc_t *alloc,
38                    sasl_mutex_lock_t *lock,
39                    sasl_mutex_unlock_t *unlock,
40                    sasl_mutex_free_t *free)
41{
42  sasl_set_mutex(alloc, lock, unlock, free);
43}
44
45void
46svn_sasl__done(void)
47{
48  sasl_done();
49}
50
51void
52svn_sasl__dispose(sasl_conn_t **pconn)
53{
54  sasl_dispose(pconn);
55}
56
57const char *
58svn_sasl__errstring(int saslerr, const char *langlist, const char **outlang)
59{
60  return sasl_errstring(saslerr, langlist, outlang);
61}
62
63const char *
64svn_sasl__errdetail(sasl_conn_t *conn)
65{
66  return sasl_errdetail(conn);
67}
68
69int
70svn_sasl__getprop(sasl_conn_t *conn, int propnum, const void **pvalue)
71{
72  return sasl_getprop(conn, propnum, pvalue);
73}
74
75int
76svn_sasl__setprop(sasl_conn_t *conn, int propnum, const void *value)
77{
78  return sasl_setprop(conn, propnum, value);
79}
80
81int
82svn_sasl__client_init(const sasl_callback_t *callbacks)
83{
84  return sasl_client_init(callbacks);
85}
86
87int
88svn_sasl__client_new(const char *service,
89                     const char *serverFQDN,
90                     const char *iplocalport,
91                     const char *ipremoteport,
92                     const sasl_callback_t *prompt_supp,
93                     unsigned flags,
94                     sasl_conn_t **pconn)
95{
96  return sasl_client_new(service, serverFQDN, iplocalport, ipremoteport,
97                         prompt_supp, flags, pconn);
98}
99
100int
101svn_sasl__client_start(sasl_conn_t *conn,
102                       const char *mechlist,
103                       sasl_interact_t **prompt_need,
104                       const char **clientout,
105                       unsigned *clientoutlen,
106                       const char **mech)
107{
108  return sasl_client_start(conn, mechlist, prompt_need,
109                           clientout, clientoutlen, mech);
110}
111
112int
113svn_sasl__client_step(sasl_conn_t *conn,
114                      const char *serverin,
115                      unsigned serverinlen,
116                      sasl_interact_t **prompt_need,
117                      const char **clientout,
118                      unsigned *clientoutlen)
119{
120  return sasl_client_step(conn, serverin, serverinlen, prompt_need,
121                          clientout, clientoutlen);
122}
123
124int
125svn_sasl__server_init(const sasl_callback_t *callbacks,
126                      const char *appname)
127{
128  return sasl_server_init(callbacks, appname);
129}
130
131int
132svn_sasl__server_new(const char *service,
133                     const char *serverFQDN,
134                     const char *user_realm,
135                     const char *iplocalport,
136                     const char *ipremoteport,
137                     const sasl_callback_t *callbacks,
138                     unsigned flags,
139                     sasl_conn_t **pconn)
140{
141  return sasl_server_new(service, serverFQDN, user_realm,
142                         iplocalport, ipremoteport, callbacks, flags, pconn);
143}
144
145int
146svn_sasl__listmech(sasl_conn_t *conn,
147                   const char *user,
148                   const char *prefix,
149                   const char *sep,
150                   const char *suffix,
151                   const char **result,
152                   unsigned *plen,
153                   int *pcount)
154{
155  return sasl_listmech(conn, user, prefix, sep, suffix, result, plen, pcount);
156}
157
158int
159svn_sasl__server_start(sasl_conn_t *conn,
160                       const char *mech,
161                       const char *clientin,
162                       unsigned clientinlen,
163                       const char **serverout,
164                       unsigned *serveroutlen)
165{
166  return sasl_server_start(conn, mech, clientin, clientinlen,
167                           serverout, serveroutlen);
168}
169
170int
171svn_sasl__server_step(sasl_conn_t *conn,
172                      const char *clientin,
173                      unsigned clientinlen,
174                      const char **serverout,
175                      unsigned *serveroutlen)
176{
177  return sasl_server_step(conn, clientin, clientinlen,
178                          serverout, serveroutlen);
179}
180
181int
182svn_sasl__encode(sasl_conn_t *conn,
183                 const char *input, unsigned inputlen,
184                 const char **output, unsigned *outputlen)
185{
186  return sasl_encode(conn, input, inputlen, output, outputlen);
187}
188
189int
190svn_sasl__decode(sasl_conn_t *conn,
191                 const char *input, unsigned inputlen,
192                 const char **output, unsigned *outputlen)
193{
194  return sasl_decode(conn, input, inputlen, output, outputlen);
195}
196
197#endif /* SVN_HAVE_SASL */
198