1 /* $NetBSD: saslc_private.h,v 1.5 2025/12/16 12:03:39 nia 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. Neither the name of The NetBSD Foundation nor the names of its 18 * contributors may be used to endorse or promote products derived 19 * from this software without specific prior written permission. 20 * 21 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 22 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 23 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 24 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 31 * POSSIBILITY OF SUCH DAMAGE. 32 */ 33 34 #ifndef _SASLC_PRIVATE_H_ 35 #define _SASLC_PRIVATE_H_ 36 37 #include <saslc.h> 38 #include <stdint.h> 39 40 #include "dict.h" 41 #include "error.h" 42 #include "mech.h" 43 44 /** library context structure */ 45 struct saslc_t { 46 char *appname; /* application name */ 47 char *pathname; /* location of config files */ 48 saslc__dict_t *prop; /* configuration options */ 49 saslc__mech_list_t *mechanisms; /* avaiable mechanisms */ 50 uint32_t refcnt; /* reference count */ 51 saslc__error_t err; /* error */ 52 }; 53 54 /** session context structure */ 55 struct saslc_sess_t { 56 saslc_t *context; /* library context */ 57 const saslc__mech_t *mech; /* mechanism */ 58 void *mech_sess; /* mechanism session */ 59 saslc__dict_t *prop; /* session properties */ 60 saslc__error_t err; /* error info */ 61 uint32_t flags; /* session flags */ 62 #define SASLC_FLAGS_BASE64_IN 0x0001 63 #define SASLC_FLAGS_BASE64_OUT 0x0002 64 #define SASLC_FLAGS_BASE64 \ 65 (SASLC_FLAGS_BASE64_IN | SASLC_FLAGS_BASE64_OUT) 66 #define SASLC_FLAGS_DEFAULT SASLC_FLAGS_BASE64 67 }; 68 69 #endif /* ! _SASLC_PRIVATE_H_ */ 70