Re: KITTEN: IETF 75 - 76

Nicolas Williams <Nicolas.Williams@sun.com> Mon, 17 August 2009 22:35 UTC

Return-Path: <Nicolas.Williams@sun.com>
X-Original-To: kitten@core3.amsl.com
Delivered-To: kitten@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 3E0AF3A6CDE for <kitten@core3.amsl.com>; Mon, 17 Aug 2009 15:35:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.895
X-Spam-Level:
X-Spam-Status: No, score=-5.895 tagged_above=-999 required=5 tests=[AWL=0.151, BAYES_00=-2.599, HELO_MISMATCH_COM=0.553, RCVD_IN_DNSWL_MED=-4]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id eih7MJhtq-Vo for <kitten@core3.amsl.com>; Mon, 17 Aug 2009 15:35:49 -0700 (PDT)
Received: from sca-ea-mail-3.sun.com (sca-ea-mail-3.Sun.COM [192.18.43.21]) by core3.amsl.com (Postfix) with ESMTP id 83B273A6ACE for <kitten@ietf.org>; Mon, 17 Aug 2009 15:35:49 -0700 (PDT)
Received: from dm-central-01.central.sun.com ([129.147.62.4]) by sca-ea-mail-3.sun.com (8.13.6+Sun/8.12.9) with ESMTP id n7HMZm2K003188 for <kitten@ietf.org>; Mon, 17 Aug 2009 22:35:49 GMT
Received: from binky.Central.Sun.COM (binky.Central.Sun.COM [129.153.128.104]) by dm-central-01.central.sun.com (8.13.8+Sun/8.13.8/ENSMAIL, v2.2) with ESMTP id n7HMZmFv024415 for <kitten@ietf.org>; Mon, 17 Aug 2009 16:35:48 -0600 (MDT)
Received: from binky.Central.Sun.COM (localhost [127.0.0.1]) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3) with ESMTP id n7HMP4LN003234; Mon, 17 Aug 2009 17:25:04 -0500 (CDT)
Received: (from nw141292@localhost) by binky.Central.Sun.COM (8.14.3+Sun/8.14.3/Submit) id n7HMP1QM003233; Mon, 17 Aug 2009 17:25:01 -0500 (CDT)
X-Authentication-Warning: binky.Central.Sun.COM: nw141292 set sender to Nicolas.Williams@sun.com using -f
Date: Mon, 17 Aug 2009 17:25:01 -0500
From: Nicolas Williams <Nicolas.Williams@sun.com>
To: Leif Johansson <leifj@mnt.se>
Subject: Re: KITTEN: IETF 75 - 76
Message-ID: <20090817222500.GC1043@Sun.COM>
References: <4A87A69A.3050408@sun.com> <4A87E02D.7030503@isode.com> <200908180013.29152.leifj@mnt.se>
Mime-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <200908180013.29152.leifj@mnt.se>
User-Agent: Mutt/1.5.7i
Cc: kitten@ietf.org, Shawn M Emery <Shawn.Emery@sun.com>
X-BeenThere: kitten@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Common Authentication Technologies - Next Generation <kitten.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/kitten>
List-Post: <mailto:kitten@ietf.org>
List-Help: <mailto:kitten-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/kitten>, <mailto:kitten-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Aug 2009 22:35:50 -0000

On Tue, Aug 18, 2009 at 12:13:28AM +0200, Leif Johansson wrote:
> > I think Leif has expressed interest in (3) before.
> 
> That was exporting unfinished contexts actually - slightly different.

Oh yes, that too (that's trivial, of course, though exporting non-fully
established contexts has to be allowed to fail).

> > >    4. error message reporting
> > >    5. asynchronous calls
> >
> > The last 2 are generally required for use by modern applications.
> 
> hmm, is asynchronous calls related to exportable contexts perhaps...?

No.  Think of how gss_init_sec_context() and gss_accept_sec_context()
can go off and do things like: DNS lookups, TGS exchanges, certificate
validation (including OSCP and/or CRL checking), ...  All those tasks
must complete before those functions can return, but each of those tasks
can take a long time to complete or fail to complete.

I.e., we want versions of gss_init/accept_sec_context() that will do as
much work as they can, then return without necessarily completing their
work, instead returning some completion event object so the application
can wait for completion in its event loop.

The basic problem here are is that async APIs tend to be very
OS-specific.  But I think we can still have an OS-agnostic design IF we
can rely on background threads (i.e., on a multi-threaded process
model).  Relying on bg-threads might not be feasible on systems where a
multi-threaded process model can't be relied upon (well, on such systems
the async functions can just always operate synchronously when called in
a single-threaded process).

Nico
--