Initial release, version 0.0.0.
[gsasl.git] / lib / plain.h
blob6c674336aa52ec58913e4dad344babe682e5aa17
1 /* plain.h header file for SASL mechanism PLAIN as defined in RFC 2595
2 * Copyright (C) 2002 Simon Josefsson
4 * This file is part of libgsasl.
6 * Libgsasl is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * Libgsasl is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with libgsasl; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 #ifndef _PLAIN_H
23 #define _PLAIN_H
25 #define _GSASL_PLAIN_NAME "PLAIN"
27 extern int _gsasl_plain_client_init (Gsasl_ctx *ctx);
28 extern void _gsasl_plain_client_done (Gsasl_ctx *ctx);
29 extern int _gsasl_plain_client_start (Gsasl_session_ctx *cctx,
30 void **mech_data);
31 extern int _gsasl_plain_client_step (Gsasl_session_ctx *cctx,
32 void *mech_data,
33 const char *input,
34 size_t input_len,
35 char *output,
36 size_t *output_len);
37 extern int _gsasl_plain_client_finish (Gsasl_session_ctx *cctx,
38 void *mech_data);
40 extern int _gsasl_plain_server_init (Gsasl_ctx *ctx);
41 extern void _gsasl_plain_server_done (Gsasl_ctx *ctx);
42 extern int _gsasl_plain_server_start (Gsasl_session_ctx *sctx,
43 void **mech_data);
44 extern int _gsasl_plain_server_step (Gsasl_session_ctx *sctx,
45 void *mech_data,
46 const char *input,
47 size_t input_len,
48 char *output,
49 size_t *output_len);
50 extern int _gsasl_plain_server_finish (Gsasl_session_ctx *sctx,
51 void *mech_data);
53 #endif /* _PLAIN_H */