From e1f98fdbaa1debf932c874af47b5d635f2ab0531 Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@paquier.xyz>
Date: Fri, 1 Dec 2017 09:59:35 +0900
Subject: [PATCH 1/3] Move SCRAM-related name definitions to scram-common.h

Mechanism names for SCRAM and channel binding names have been included
in scram.h by the libpq frontend code, and this header references a set
of routines which are only used by the backend. scram-common.h is on the
contrary usable by both the backend and libpq, so referencing those
names there is more adapted.
---
 src/backend/libpq/auth.c             | 1 +
 src/include/common/scram-common.h    | 7 +++++++
 src/include/libpq/scram.h            | 7 -------
 src/interfaces/libpq/fe-auth-scram.c | 1 -
 src/interfaces/libpq/fe-auth.c       | 2 +-
 5 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index 19a91ca67d..b7f9bb1669 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -26,6 +26,7 @@
 #include "commands/user.h"
 #include "common/ip.h"
 #include "common/md5.h"
+#include "common/scram-common.h"
 #include "libpq/auth.h"
 #include "libpq/crypt.h"
 #include "libpq/libpq.h"
diff --git a/src/include/common/scram-common.h b/src/include/common/scram-common.h
index 0c5ee04f26..857a60e71f 100644
--- a/src/include/common/scram-common.h
+++ b/src/include/common/scram-common.h
@@ -15,6 +15,13 @@
 
 #include "common/sha2.h"
 
+/* Name of SCRAM mechanisms per IANA */
+#define SCRAM_SHA256_NAME "SCRAM-SHA-256"
+#define SCRAM_SHA256_PLUS_NAME "SCRAM-SHA-256-PLUS" /* with channel binding */
+
+/* Channel binding types */
+#define SCRAM_CHANNEL_BINDING_TLS_UNIQUE    "tls-unique"
+
 /* Length of SCRAM keys (client and server) */
 #define SCRAM_KEY_LEN				PG_SHA256_DIGEST_LENGTH
 
diff --git a/src/include/libpq/scram.h b/src/include/libpq/scram.h
index 91f1e0f2c7..2c245813d6 100644
--- a/src/include/libpq/scram.h
+++ b/src/include/libpq/scram.h
@@ -13,13 +13,6 @@
 #ifndef PG_SCRAM_H
 #define PG_SCRAM_H
 
-/* Name of SCRAM mechanisms per IANA */
-#define SCRAM_SHA256_NAME "SCRAM-SHA-256"
-#define SCRAM_SHA256_PLUS_NAME "SCRAM-SHA-256-PLUS" /* with channel binding */
-
-/* Channel binding types */
-#define SCRAM_CHANNEL_BINDING_TLS_UNIQUE	"tls-unique"
-
 /* Status codes for message exchange */
 #define SASL_EXCHANGE_CONTINUE		0
 #define SASL_EXCHANGE_SUCCESS		1
diff --git a/src/interfaces/libpq/fe-auth-scram.c b/src/interfaces/libpq/fe-auth-scram.c
index 97db0b1faa..8acad6f150 100644
--- a/src/interfaces/libpq/fe-auth-scram.c
+++ b/src/interfaces/libpq/fe-auth-scram.c
@@ -17,7 +17,6 @@
 #include "common/base64.h"
 #include "common/saslprep.h"
 #include "common/scram-common.h"
-#include "libpq/scram.h"
 #include "fe-auth.h"
 
 /* These are needed for getpid(), in the fallback implementation */
diff --git a/src/interfaces/libpq/fe-auth.c b/src/interfaces/libpq/fe-auth.c
index f54ad8e0cc..2cfdb7c125 100644
--- a/src/interfaces/libpq/fe-auth.c
+++ b/src/interfaces/libpq/fe-auth.c
@@ -39,8 +39,8 @@
 #endif
 
 #include "common/md5.h"
+#include "common/scram-common.h"
 #include "libpq-fe.h"
-#include "libpq/scram.h"
 #include "fe-auth.h"
 
 
-- 
2.15.0

