summaryrefslogtreecommitdiff
path: root/source4
diff options
context:
space:
mode:
authorAndrew Bartlett <abartlet@samba.org>2010-02-25 20:22:52 +1100
committerAndrew Bartlett <abartlet@samba.org>2010-02-26 21:38:42 +1100
commit25723914c5f5b18a25f758f1098ddded3c5aa074 (patch)
tree7c636a7cfa580c45bc1c05e3125a881e2bdf2123 /source4
parentee547e715eff60fd26fa65655b00b80202088319 (diff)
downloadsamba-25723914c5f5b18a25f758f1098ddded3c5aa074.tar.gz
samba-25723914c5f5b18a25f758f1098ddded3c5aa074.tar.bz2
samba-25723914c5f5b18a25f758f1098ddded3c5aa074.zip
s4:python Add bindings to set GENSEC flags on credentials in python
This should allow these to be manipulated by python scripts that need encrypted connections. Andrew Bartlett
Diffstat (limited to 'source4')
-rw-r--r--source4/auth/credentials/pycredentials.c23
-rw-r--r--source4/auth/gensec/pygensec.c9
2 files changed, 32 insertions, 0 deletions
diff --git a/source4/auth/credentials/pycredentials.c b/source4/auth/credentials/pycredentials.c
index 8602be8060..f5e802958b 100644
--- a/source4/auth/credentials/pycredentials.c
+++ b/source4/auth/credentials/pycredentials.c
@@ -278,6 +278,27 @@ static PyObject *py_creds_get_named_ccache(py_talloc_Object *self, PyObject *arg
return NULL;
}
+static PyObject *py_creds_set_gensec_features(py_talloc_Object *self, PyObject *args)
+{
+ unsigned int gensec_features;
+
+ if (!PyArg_ParseTuple(args, "I", &gensec_features))
+ return NULL;
+
+ cli_credentials_set_gensec_features(PyCredentials_AsCliCredentials(self), gensec_features);
+
+ Py_RETURN_NONE;
+}
+
+static PyObject *py_creds_get_gensec_features(py_talloc_Object *self, PyObject *args)
+{
+ unsigned int gensec_features;
+
+ gensec_features = cli_credentials_get_gensec_features(PyCredentials_AsCliCredentials(self));
+ return PyInt_FromLong(gensec_features);
+}
+
+
static PyMethodDef py_creds_methods[] = {
{ "get_username", (PyCFunction)py_creds_get_username, METH_NOARGS,
"S.get_username() -> username\nObtain username." },
@@ -335,6 +356,8 @@ static PyMethodDef py_creds_methods[] = {
{ "guess", (PyCFunction)py_creds_guess, METH_VARARGS, NULL },
{ "set_machine_account", (PyCFunction)py_creds_set_machine_account, METH_VARARGS, NULL },
{ "get_named_ccache", (PyCFunction)py_creds_get_named_ccache, METH_VARARGS, NULL },
+ { "set_gensec_features", (PyCFunction)py_creds_set_gensec_features, METH_VARARGS, NULL },
+ { "get_gensec_features", (PyCFunction)py_creds_get_gensec_features, METH_NOARGS, NULL },
{ NULL }
};
diff --git a/source4/auth/gensec/pygensec.c b/source4/auth/gensec/pygensec.c
index 1c2bd20dde..21acff8136 100644
--- a/source4/auth/gensec/pygensec.c
+++ b/source4/auth/gensec/pygensec.c
@@ -177,6 +177,15 @@ void initgensec(void)
if (m == NULL)
return;
+ PyModule_AddObject(m, "FEATURE_SESSION_KEY", PyInt_FromLong(GENSEC_FEATURE_SESSION_KEY));
+ PyModule_AddObject(m, "FEATURE_SIGN", PyInt_FromLong(GENSEC_FEATURE_SIGN));
+ PyModule_AddObject(m, "FEATURE_SEAL", PyInt_FromLong(GENSEC_FEATURE_SEAL));
+ PyModule_AddObject(m, "FEATURE_DCE_STYLE", PyInt_FromLong(GENSEC_FEATURE_DCE_STYLE));
+ PyModule_AddObject(m, "FEATURE_ASYNC_REPLIES", PyInt_FromLong(GENSEC_FEATURE_ASYNC_REPLIES));
+ PyModule_AddObject(m, "FEATURE_DATAGRAM_MODE", PyInt_FromLong(GENSEC_FEATURE_DATAGRAM_MODE));
+ PyModule_AddObject(m, "FEATURE_SIGN_PKT_HEADER", PyInt_FromLong(GENSEC_FEATURE_SIGN_PKT_HEADER));
+ PyModule_AddObject(m, "FEATURE_NEW_SPNEGO", PyInt_FromLong(GENSEC_FEATURE_NEW_SPNEGO));
+
Py_INCREF(&Py_Security);
PyModule_AddObject(m, "Security", (PyObject *)&Py_Security);
}