New extensible GSSAPI implementation
Doug Rabson
dfr at nlsystems.com
Sat Nov 12 02:42:59 PST 2005
For quite a while now (far too long in fact), I've been slowly working
on an extension framework for GSS-API. This was partly prompted by an
interest in NFSv4 which requires both LIPKEY [RFC2847] as well as
Kerberosv5 as security providers. The existing FreeBSD GSS-API library
comes from Heimdal and only provides Kerberosv5. It is also a necessary
pre-requisite for an implementation of RPCSEC_GSS which I'm not quite
ready to commit.
The new GSS-API code acts as a plugin framework which can use any shared
library GSS-API implementation that conforms to the C-bindings set out
in RFC2744. I have changed the heimdal build process to build its
GSS-API implementation as a plugin. I have not implemented any new
GSS-API mechanisms.
One clear advantage to this system is that the GSS-API framework itself
is tiny (20k of code on i386) and includes no crypto code. It also has
no dependencies so applications don't have to supply a random list of
heimdal implementation details when they link with it.
In an attempt to move us closer to the de-facto standard for GSS-API,
I've moved the gssapi header file to /usr/include/gssapi. This is where
it lives on every non-BSD system that I've looked at, including OS X. I
have also included a complete set of manpages for the api with text
culled from the RFC (markup by me - mandoc police take note). It is
currently missing manpages for two new config files, /etc/gss/mech
and /etc/gss/qop. You can read the Solaris manpages for these files at
http://docs.sun.com/app/docs/doc/816-5174/6mbb98uh0?a=view.
The patch is too large to post here but you can find it at
http://people.freebsd.org/~dfr/gss-12112005.diff. It has survived
limited buildworld testing on one architecture and limited testing on a
newly install FreeBSD-current machine. I have not attempted to build
any GSS-API using ports and I expect there to be problems in that area
due to the moved header file and changed linking requirements.
Any comments, feedback, patches welcome...
More information about the freebsd-arch
mailing list