components/krb5/patches/010-qop.patch
author Niveditha Rau <Niveditha.Rau@Oracle.COM>
Sun, 23 Oct 2016 23:54:15 -0700
changeset 7198 337a99283a60
parent 6978 14cbeb78966a
permissions -rw-r--r--
23245360 Move vino to Userland and update to 3.18.0 22144547 problem in GNOME/REMOTE-DESKTOP PSARC/2016/483 Vino v.3.18

#
# This patch patches in g_utils.c with /etc/gss/qop related interfaces.
#
# These functions were removed from MIT code, but are referenced by Solaris
# rpcsec_gss wrappers.
#
# This is a Solaris specific patch not intended for upstream contribution.
# Patch source: in-house
#
--- a/src/lib/gssapi/libgssapi_krb5.exports
+++ b/src/lib/gssapi/libgssapi_krb5.exports
@@ -37,6 +37,9 @@ GSS_C_MA_CBINDINGS
 GSS_C_MA_PFS
 GSS_C_MA_COMPRESS
 GSS_C_MA_CTX_TRANS
+gssint_qop_to_num
+gssint_num_to_qop
+gssint_get_mech_info
 gss_accept_sec_context
 gss_acquire_cred
 gss_acquire_cred_with_password
--- a/src/lib/gssapi/mechglue/Makefile.in
+++ b/src/lib/gssapi/mechglue/Makefile.in
@@ -66,6 +66,7 @@ SRCS = \
 	$(srcdir)/g_sign.c \
 	$(srcdir)/g_store_cred.c \
 	$(srcdir)/g_unseal.c \
+	$(srcdir)/g_utils.c \
 	$(srcdir)/g_unwrap_aead.c \
 	$(srcdir)/g_unwrap_iov.c \
 	$(srcdir)/g_verify.c \
@@ -130,6 +131,7 @@ OBJS = \
 	$(OUTPRE)g_sign.$(OBJEXT) \
 	$(OUTPRE)g_store_cred.$(OBJEXT) \
 	$(OUTPRE)g_unseal.$(OBJEXT) \
+	$(OUTPRE)g_utils.$(OBJEXT) \
 	$(OUTPRE)g_unwrap_aead.$(OBJEXT) \
 	$(OUTPRE)g_unwrap_iov.$(OBJEXT) \
 	$(OUTPRE)g_verify.$(OBJEXT) \
@@ -194,6 +196,7 @@ STLIBOBJS = \
 	g_sign.o \
 	g_store_cred.o \
 	g_unseal.o \
+	g_utils.o \
 	g_unwrap_aead.o \
 	g_unwrap_iov.o \
 	g_verify.o \
--- a/src/lib/gssapi/mechglue/mglueP.h
+++ b/src/lib/gssapi/mechglue/mglueP.h
@@ -65,6 +65,38 @@ typedef struct gss_cred_id_struct {
 } gss_union_cred_desc, *gss_union_cred_t;
 
 /*
+ * qop configuration file handling.
+ */
+#define	MAX_QOP_NUM_PAIRS	128
+#define	MAX_QOPS_PER_MECH	128
+
+typedef struct _qop_num {
+	char *qop;
+	OM_uint32 num;
+	char *mech;
+} qop_num;
+
+OM_uint32
+gssint_qop_to_num(
+	char		*qop,		/* input qop string */
+	char		*mech,		/* input mech string */
+	OM_uint32	*num		/* output qop num */
+);
+
+OM_uint32
+gssint_num_to_qop(
+	char		*mech,		/* input mech string */
+	OM_uint32	num,		/* input qop num */
+	char		**qop		/* output qop name */
+);
+
+OM_uint32
+gssint_get_mech_info(
+	char		*mech,		/* input mech string */
+	char		**qops		/* buffer for return qops */
+);
+
+/*
  * Rudimentary pointer validation macro to check whether the
  * "loopback" field of an opaque struct points back to itself.  This
  * field also catches some programming errors where an opaque pointer