#ifndef _LIB_OPENBSD_H_
#define _LIB_OPENBSD_H_
+#include <stdarg.h>
#include <sys/types.h>
+#include <sys/cdefs.h>
-/* API definitions lifted from OpenBSD src/include */
+#include "readpassphrase.h"
-/* bsd_auth.h */
-int auth_userokay(char *, char *, char *, char *);
+/* API definitions lifted from OpenBSD src/include */
/* login_cap.h */
+#ifndef HAVE_LOGIN_CAP_H
#define LOGIN_SETGROUP 0x0001 /* Set group */
#define LOGIN_SETLOGIN 0x0002 /* Set login */
#define LOGIN_SETPATH 0x0004 /* Set path */
typedef struct login_cap login_cap_t;
struct passwd;
int setusercontext(login_cap_t *, struct passwd *, uid_t, unsigned int);
+#endif /* !HAVE_LOGIN_CAP_H */
/* pwd.h */
#define _PW_NAME_LEN 63
/* stdlib.h */
+#ifndef HAVE_REALLOCARRAY
void * reallocarray(void *optr, size_t nmemb, size_t size);
+#endif /* HAVE_REALLOCARRAY */
+#ifndef HAVE_STRTONUM
long long strtonum(const char *numstr, long long minval,
long long maxval, const char **errstrp);
+#endif /* !HAVE_STRTONUM */
/* string.h */
+#ifndef HAVE_EXPLICIT_BZERO
void explicit_bzero(void *, size_t);
+#endif
+#ifndef HAVE_STRLCAT
+size_t strlcat(char *dst, const char *src, size_t dsize);
+#endif /* !HAVE_STRLCAT */
+#ifndef HAVE_STRLCPY
+size_t strlcpy(char *dst, const char *src, size_t dsize);
+#endif /* !HAVE_STRLCPY */
/* unistd.h */
+#ifndef HAVE_EXECVPE
int execvpe(const char *, char *const *, char *const *);
+#endif /* !HAVE_EXECVPE */
+#ifndef HAVE_SETRESUID
int setresuid(uid_t, uid_t, uid_t);
+#endif /* !HAVE_SETRESUID */
+#ifndef HAVE_PLEDGE
+int pledge(const char *promises, const char *paths[]);
+#endif /* !HAVE_PLEDGE */
-#endif
+/* err.h */
+#ifndef HAVE_VERRC
+void verrc(int eval, int code, const char *fmt, va_list ap);
+#endif /* !HAVE_VERRC */
+#ifndef HAVE_ERRC
+void errc(int eval, int code, const char *fmt, ...);
+#endif /* !HAVE_ERRC */
+
+#ifndef HAVE_SETPROGNAME
+const char * getprogname(void);
+void setprogname(const char *progname);
+#endif /* !HAVE_SETPROGNAME */
+
+#endif /* _LIB_OPENBSD_H_ */