rpms/python-kerberos/F-9 PyKerberos-delegation.patch, 1.1, 1.2 python-kerberos.spec, 1.7, 1.8 PyKerberos-includes.patch, 1.1, NONE
Simo Sorce
simo at fedoraproject.org
Mon Dec 15 18:58:57 UTC 2008
Author: simo
Update of /cvs/pkgs/rpms/python-kerberos/F-9
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10907
Modified Files:
PyKerberos-delegation.patch python-kerberos.spec
Removed Files:
PyKerberos-includes.patch
Log Message:
* Fri Dec 12 2008 Simo Sorce <ssorce at redhat.com> - 1.1-3
- Add delegation patch
PyKerberos-delegation.patch:
Index: PyKerberos-delegation.patch
===================================================================
RCS file: /cvs/pkgs/rpms/python-kerberos/F-9/PyKerberos-delegation.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PyKerberos-delegation.patch 7 Jan 2008 19:38:03 -0000 1.1
+++ PyKerberos-delegation.patch 15 Dec 2008 18:58:27 -0000 1.2
@@ -1,13 +1,136 @@
-Index: kerberosgss.c
-===================================================================
---- src/kerberosgss.c (revision 1541)
-+++ src/kerberosgss.c (working copy)
-@@ -188,7 +188,7 @@
- &state->context,
- state->server_name,
- GSS_C_NO_OID,
-- GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG,
-+ GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG | GSS_C_DELEG_FLAG,
- 0,
- GSS_C_NO_CHANNEL_BINDINGS,
- &input_token,
+diff -uPr python-kerberos-1.1/pysrc/kerberos.py python-kerberos-1.1-gssflags/pysrc/kerberos.py
+--- python-kerberos-1.1/pysrc/kerberos.py 2008-09-17 07:17:15.000000000 -0400
++++ python-kerberos-1.1-gssflags/pysrc/kerberos.py 2008-12-15 09:21:42.000000000 -0500
+@@ -90,7 +90,18 @@
+ AUTH_GSS_CONTINUE=0
+ AUTH_GSS_COMPLETE=1
+
+-def authGSSClientInit(service):
++#Some useful gss flags
++GSS_C_DELEG_FLAG=1
++GSS_C_MUTUAL_FLAG=2
++GSS_C_REPLAY_FLAG=4
++GSS_C_SEQUENCE_FLAG=8
++GSS_C_CONF_FLAG=16
++GSS_C_INTEG_FLAG=32
++GSS_C_ANON_FLAG=64
++GSS_C_PROT_READY_FLAG=128
++GSS_C_TRANS_FLAG=256
++
++def authGSSClientInit(service, gssflags=GSS_C_MUTUAL_FLAG|GSS_C_SEQUENCE_FLAG):
+ """
+ Initializes a context for GSSAPI client-side authentication with the given service principal.
+ authGSSClientClean must be called after this function returns an OK result to dispose of
+@@ -98,6 +109,9 @@
+
+ @param service: a string containing the service principal in the form 'type at fqdn'
+ (e.g. 'imap at mail.apple.com').
++ @param gssflags: optional integer used to set GSS flags.
++ (e.g. GSS_C_DELEG_FLAG|GSS_C_MUTUAL_FLAG|GSS_C_SEQUENCE_FLAG will allow
++ to forward credentials to the remote host)
+ @return: a tuple of (result, context) where result is the result code (see above) and
+ context is an opaque value that will need to be passed to subsequent functions.
+ """
+diff -uPr python-kerberos-1.1/src/kerberos.c python-kerberos-1.1-gssflags/src/kerberos.c
+--- python-kerberos-1.1/src/kerberos.c 2008-09-17 05:38:55.000000000 -0400
++++ python-kerberos-1.1-gssflags/src/kerberos.c 2008-12-15 09:26:39.000000000 -0500
+@@ -84,20 +84,22 @@
+ return NULL;
+ }
+
+-static PyObject* authGSSClientInit(PyObject* self, PyObject* args)
++static PyObject* authGSSClientInit(PyObject* self, PyObject* args, PyObject* keywds)
+ {
+ const char *service;
+ gss_client_state *state;
+ PyObject *pystate;
++ static char *kwlist[] = {"service", "gssflags", NULL};
++ long int gss_flags = 0;
+ int result = 0;
+
+- if (!PyArg_ParseTuple(args, "s", &service))
++ if (!PyArg_ParseTupleAndKeywords(args, keywds, "s|l", kwlist, &service, &gss_flags))
+ return NULL;
+
+ state = (gss_client_state *) malloc(sizeof(gss_client_state));
+ pystate = PyCObject_FromVoidPtr(state, NULL);
+
+- result = authenticate_gss_client_init(service, state);
++ result = authenticate_gss_client_init(service, gss_flags, state);
+ if (result == AUTH_GSS_ERROR)
+ return NULL;
+
+@@ -367,7 +369,7 @@
+ "Change the user password."},
+ {"getServerPrincipalDetails", getServerPrincipalDetails, METH_VARARGS,
+ "Return the service principal for a given service and hostname."},
+- {"authGSSClientInit", authGSSClientInit, METH_VARARGS,
++ {"authGSSClientInit", (PyCFunction)authGSSClientInit, METH_VARARGS|METH_KEYWORDS,
+ "Initialize client-side GSSAPI operations."},
+ {"authGSSClientClean", authGSSClientClean, METH_VARARGS,
+ "Terminate client-side GSSAPI operations."},
+@@ -427,6 +429,15 @@
+ PyDict_SetItemString(d, "AUTH_GSS_COMPLETE", PyInt_FromLong(AUTH_GSS_COMPLETE));
+ PyDict_SetItemString(d, "AUTH_GSS_CONTINUE", PyInt_FromLong(AUTH_GSS_CONTINUE));
+
++ PyDict_SetItemString(d, "GSS_C_DELEG_FLAG", PyInt_FromLong(GSS_C_DELEG_FLAG));
++ PyDict_SetItemString(d, "GSS_C_MUTUAL_FLAG", PyInt_FromLong(GSS_C_MUTUAL_FLAG));
++ PyDict_SetItemString(d, "GSS_C_REPLAY_FLAG", PyInt_FromLong(GSS_C_REPLAY_FLAG));
++ PyDict_SetItemString(d, "GSS_C_SEQUENCE_FLAG", PyInt_FromLong(GSS_C_SEQUENCE_FLAG));
++ PyDict_SetItemString(d, "GSS_C_CONF_FLAG", PyInt_FromLong(GSS_C_CONF_FLAG));
++ PyDict_SetItemString(d, "GSS_C_INTEG_FLAG", PyInt_FromLong(GSS_C_INTEG_FLAG));
++ PyDict_SetItemString(d, "GSS_C_ANON_FLAG", PyInt_FromLong(GSS_C_ANON_FLAG));
++ PyDict_SetItemString(d, "GSS_C_PROT_READY_FLAG", PyInt_FromLong(GSS_C_PROT_READY_FLAG));
++ PyDict_SetItemString(d, "GSS_C_TRANS_FLAG", PyInt_FromLong(GSS_C_TRANS_FLAG));
+ error:
+ if (PyErr_Occurred())
+ PyErr_SetString(PyExc_ImportError, "kerberos: init failed");
+diff -uPr python-kerberos-1.1/src/kerberosgss.c python-kerberos-1.1-gssflags/src/kerberosgss.c
+--- python-kerberos-1.1/src/kerberosgss.c 2008-09-17 06:35:15.000000000 -0400
++++ python-kerberos-1.1-gssflags/src/kerberosgss.c 2008-12-15 09:21:42.000000000 -0500
+@@ -108,7 +108,7 @@
+ return result;
+ }
+
+-int authenticate_gss_client_init(const char* service, gss_client_state* state)
++int authenticate_gss_client_init(const char* service, long int gss_flags, gss_client_state* state)
+ {
+ OM_uint32 maj_stat;
+ OM_uint32 min_stat;
+@@ -119,6 +119,7 @@
+ state->context = GSS_C_NO_CONTEXT;
+ state->username = NULL;
+ state->response = NULL;
++ state->gss_flags = gss_flags;
+
+ // Import server name first
+ name_token.length = strlen(service);
+@@ -190,7 +191,7 @@
+ &state->context,
+ state->server_name,
+ GSS_C_NO_OID,
+- GSS_C_MUTUAL_FLAG | GSS_C_SEQUENCE_FLAG,
++ (OM_uint32)state->gss_flags,
+ 0,
+ GSS_C_NO_CHANNEL_BINDINGS,
+ &input_token,
+diff -uPr python-kerberos-1.1/src/kerberosgss.h python-kerberos-1.1-gssflags/src/kerberosgss.h
+--- python-kerberos-1.1/src/kerberosgss.h 2008-05-23 12:40:38.000000000 -0400
++++ python-kerberos-1.1-gssflags/src/kerberosgss.h 2008-12-15 09:21:42.000000000 -0500
+@@ -33,6 +33,7 @@
+ typedef struct {
+ gss_ctx_id_t context;
+ gss_name_t server_name;
++ long int gss_flags;
+ char* username;
+ char* response;
+ } gss_client_state;
+@@ -49,7 +50,7 @@
+
+ char* server_principal_details(const char* service, const char* hostname);
+
+-int authenticate_gss_client_init(const char* service, gss_client_state* state);
++int authenticate_gss_client_init(const char* service, long int gss_flags, gss_client_state* state);
+ int authenticate_gss_client_clean(gss_client_state *state);
+ int authenticate_gss_client_step(gss_client_state *state, const char *challenge);
+ int authenticate_gss_client_unwrap(gss_client_state* state, const char* challenge);
Index: python-kerberos.spec
===================================================================
RCS file: /cvs/pkgs/rpms/python-kerberos/F-9/python-kerberos.spec,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- python-kerberos.spec 28 Nov 2008 09:10:55 -0000 1.7
+++ python-kerberos.spec 15 Dec 2008 18:58:27 -0000 1.8
@@ -2,7 +2,7 @@
%{!?python_sitearch: %define python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
Name: python-kerberos
Version: 1.1
-Release: 1%{?dist}
+Release: 3%{?dist}
Summary: A high-level wrapper for Kerberos (GSSAPI) operations
Group: System Environment/Libraries
@@ -18,6 +18,8 @@
BuildRequires: krb5-devel
BuildRequires: python-setuptools
+Patch0: PyKerberos-delegation.patch
+
%description
This Python package is a high-level wrapper for Kerberos (GSSAPI) operations.
The goal is to avoid having to build a module that wraps the entire
@@ -31,6 +33,8 @@
%prep
%setup -q
+%patch0 -p1 -b .delegation
+
%build
%{__python} setup.py build
@@ -49,6 +53,9 @@
%changelog
+* Fri Dec 12 2008 Simo Sorce <ssorce at redhat.com> - 1.1-3
+- Add delegation patch
+
* Thu Nov 27 2008 Simo Sorce <ssorce at redhat.com> - 1.1-1
- New Upstream Release
- Remove patches as this version has them included already
--- PyKerberos-includes.patch DELETED ---
More information about the fedora-extras-commits
mailing list