1 /*-------------------------------------------------------------------------
2  *
3  * fe-auth.h
4  *
5  *	  Definitions for network authentication routines
6  *
7  * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group
8  * Portions Copyright (c) 1994, Regents of the University of California
9  *
10  * src/interfaces/libpq/fe-auth.h
11  *
12  *-------------------------------------------------------------------------
13  */
14 #ifndef FE_AUTH_H
15 #define FE_AUTH_H
16 
17 #include "libpq-fe.h"
18 #include "libpq-int.h"
19 
20 
21 /* Prototypes for functions in fe-auth.c */
22 extern int	pg_fe_sendauth(AuthRequest areq, int payloadlen, PGconn *conn);
23 extern char *pg_fe_getauthname(PQExpBuffer errorMessage);
24 
25 /* Prototypes for functions in fe-auth-scram.c */
26 extern void *pg_fe_scram_init(PGconn *conn,
27 							  const char *password,
28 							  const char *sasl_mechanism);
29 extern bool pg_fe_scram_channel_bound(void *opaq);
30 extern void pg_fe_scram_free(void *opaq);
31 extern void pg_fe_scram_exchange(void *opaq, char *input, int inputlen,
32 								 char **output, int *outputlen,
33 								 bool *done, bool *success);
34 extern char *pg_fe_scram_build_secret(const char *password);
35 
36 #endif							/* FE_AUTH_H */
37