Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / saslc.h @ 14

History | View | Annotate | Download (3.54 KB)

1
/*        $NetBSD: saslc.h,v 1.5 2011/02/16 02:14:22 christos Exp $        */
2

    
3
/* Copyright (c) 2010 The NetBSD Foundation, Inc.
4
 * All rights reserved.
5
 *
6
 * This code is derived from software contributed to The NetBSD Foundation
7
 * by Mateusz Kocielski.
8
 *
9
 * Redistribution and use in source and binary forms, with or without
10
 * modification, are permitted provided that the following conditions
11
 * are met:
12
 * 1. Redistributions of source code must retain the above copyright
13
 *          notice, this list of conditions and the following disclaimer.
14
 * 2. Redistributions in binary form must reproduce the above copyright
15
 *          notice, this list of conditions and the following disclaimer in the
16
 *          documentation and/or other materials provided with the distribution.
17
 * 3. All advertising materials mentioning features or use of this software
18
 *          must display the following acknowledgement:
19
 *                  This product includes software developed by the NetBSD
20
 *                  Foundation, Inc. and its contributors.
21
 * 4. Neither the name of The NetBSD Foundation nor the names of its
22
 *          contributors may be used to endorse or promote products derived
23
 *          from this software without specific prior written permission.
24
 *
25
 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
26
 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
27
 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
 * PURPOSE ARE DISCLAIMED.        IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
29
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35
 * POSSIBILITY OF SUCH DAMAGE.
36
 */
37

    
38
#ifndef _SASLC_H_
39
#define _SASLC_H_
40

    
41
#include <sys/types.h>
42

    
43
/* properties */
44
#define        SASLC_PROP_AUTHCID        "AUTHCID"
45
#define SASLC_PROP_AUTHZID        "AUTHZID"
46
#define SASLC_PROP_BASE64IO        "BASE64IO"
47
#define SASLC_PROP_CIPHERMASK        "CIPHERMASK"
48
#define SASLC_PROP_DEBUG        "DEBUG"
49
#define SASLC_PROP_HOSTNAME        "HOSTNAME"
50
#define SASLC_PROP_MAXBUF        "MAXBUF"
51
#define SASLC_PROP_PASSWD        "PASSWD"
52
#define SASLC_PROP_QOPMASK        "QOPMASK"
53
#define SASLC_PROP_REALM        "REALM"
54
#define SASLC_PROP_SECURITY        "SECURITY"
55
#define SASLC_PROP_SERVICE        "SERVICE"
56
#define SASLC_PROP_SERVNAME        "SERVNAME"
57

    
58
/* environment variables */
59
#define SASLC_ENV_CONFIG        "SASLC_CONFIG"
60
#define SASLC_ENV_DEBUG                "SASLC_DEBUG"
61

    
62
/* opaque types */
63
typedef struct saslc_t saslc_t;
64
typedef struct saslc_sess_t saslc_sess_t;
65

    
66
/* begin and end */
67
saslc_t *saslc_alloc(void);
68
int saslc_init(saslc_t *, const char *, const char *);
69
int saslc_end(saslc_t *);
70

    
71
/* error */
72
const char *saslc_strerror(saslc_t *);
73
const char *saslc_sess_strerror(saslc_sess_t *);
74

    
75
/* session begin and end */
76
saslc_sess_t *saslc_sess_init(saslc_t *, const char *, const char *);
77
void saslc_sess_end(saslc_sess_t *);
78

    
79
/* session properties */
80
int saslc_sess_setprop(saslc_sess_t *, const char *, const char *);
81
const char *saslc_sess_getprop(saslc_sess_t *, const char *);
82
const char *saslc_sess_getmech(saslc_sess_t *);
83

    
84
/* session management */
85
int saslc_sess_cont(saslc_sess_t *, const void *, size_t, void **, size_t *);
86
ssize_t saslc_sess_encode(saslc_sess_t *, const void *, size_t, void **,
87
    size_t *);
88
ssize_t saslc_sess_decode(saslc_sess_t *, const void *, size_t, void **,
89
    size_t *);
90

    
91
#endif /* ! _SASLC_H_ */