Wyllys Ingersoll wrote:
> I am sponsoring the following fast track for Glenn Barry.
>
>
> Template Version: @(#)sac_nextcase 1.68 02/23/09 SMI
> This information is Copyright 2009 Sun Microsystems
> 1. Introduction
>     1.1. Project/Component Working Name:
>        Kerberos V5 PAC API
>     1.2. Name of Document Author/Supplier:
>        Author:  Glenn Barry
>     1.3  Date of This Document:
>       28 July, 2009
> 4. Technical Description
> Template Version: @(#)sac_nextcase 1.55 08/11/04 SMI
>
> 1. Introduction
>     1.1. Project/Component Working Name:
>        Kerberos V5 PAC API
>     1.2. Name of Document Author/Supplier:
>        Author:  Glenn Barry
>     1.3  Date of This Document:
>        July, 2009
> 4. Technical Description
>
> ABSTRACT
> --------
>
> This case will expose the Kerberos V5 (aka krb5) PAC (Privilege
> Attribute Certificate) API via a resync with MIT Kerberos 1.7.  This
> will allow native krb5 applications to decode and access the PAC part
> of the Kerberos ticket used by Windows-based protocols and systems.
>
> This case introduces several new entry points into the libkrb5 and
> libgss libraries and additions to header files krb5.h and
> gssapi_ext.h.  Also, man page updates will be provided.
>
> BACKGROUND
> ----------
>
> The OpenSolaris Kerberos functionality is currently based on MIT
> Kerberos V5 1.6.3 and is available to applications via libkrb5(3LIB)
> and libgss(3LIB).  The MIT Kerberos team recently released v1.7 which
> contains support for the PAC which is a Microsoft Kerberos extension
> to include authorization data (i.e. global group membership).  This
> PAC API facilitates interopability with Windows networking protocols
> such as CIFS (Common Internet File System) which is a protocol for
> remote file access.
>
>
> CONSUMERS
> ---------
>
>   - OpenSolaris CIFS
>
> PROPOSAL
> --------
>
> We propose:
>
>   - the following additions to libkrb5(3LIB):
>
> struct krb5_pac_data;
> typedef struct krb5_pac_data *krb5_pac;
>
> krb5_error_code KRB5_CALLCONV
> krb5_pac_add_buffer
> (krb5_context context,
>                 krb5_pac pac,
>                 krb5_ui_4 type,
>                 const krb5_data *data);
>
> void KRB5_CALLCONV
> krb5_pac_free
> (krb5_context context,
>                 krb5_pac pac);
>
> krb5_error_code KRB5_CALLCONV
> krb5_pac_get_buffer
> (krb5_context context,
>                 krb5_pac pac,
>                 krb5_ui_4 type,
>                 krb5_data *data);
>
> krb5_error_code KRB5_CALLCONV
> krb5_pac_get_types
> (krb5_context context,
>                 krb5_pac pac,
>                 size_t *len,
>                 krb5_ui_4 **types);
>
> krb5_error_code KRB5_CALLCONV
> krb5_pac_init
> (krb5_context context,
>                 krb5_pac *pac);
>
> krb5_error_code KRB5_CALLCONV
> krb5_pac_parse
> (krb5_context context,
>                 const void *ptr,
>                 size_t len,
>                 krb5_pac *pac);
>
> krb5_error_code KRB5_CALLCONV
> krb5_pac_verify
> (krb5_context context,
>                 const krb5_pac pac,
>                 krb5_timestamp authtime,
>                 krb5_const_principal principal,
>                 const krb5_keyblock *server,
>                 const krb5_keyblock *privsvr);
>
>
> #define KRB5_AUTHDATA_WIN2K_PAC 128
>
> krb5_error_code KRB5_CALLCONV
> krb5_decode_authdata_container(krb5_context context,
>     krb5_authdatatype type,
>     const krb5_authdata *container,
>     krb5_authdata ***authdata);
> krb5_error_code KRB5_CALLCONV
> krb5_encode_authdata_container(krb5_context context,
>     krb5_authdatatype type,
>     krb5_authdata * const*authdata,
>     krb5_authdata ***container);
>
>
>   - the following new GSS-API extensions to libgss(3LIB):
>
> /*
>  * GGF (Global Grid Forum) extensions
>  */
> typedef struct gss_buffer_set_desc_struct {
>     size_t count;
>     gss_buffer_desc *elements;
> } gss_buffer_set_desc, *gss_buffer_set_t;
>
> #define GSS_C_NO_BUFFER_SET ((gss_buffer_set_t) 0)
>
> OM_uint32  gss_create_empty_buffer_set
>       (OM_uint32 * /*minor_status*/,
>        gss_buffer_set_t * /*buffer_set*/);
>
> OM_uint32  gss_add_buffer_set_member
>       (OM_uint32 * /*minor_status*/,
>        const gss_buffer_t /*member_buffer*/,
>        gss_buffer_set_t * /*buffer_set*/);
>
> OM_uint32  gss_release_buffer_set
>       (OM_uint32 * /*minor_status*/,
>        gss_buffer_set_t * /*buffer_set*/);
>
> OM_uint32  gss_inquire_sec_context_by_oid
>       (OM_uint32 * /*minor_status*/,
>        const gss_ctx_id_t /*context_handle*/,
>        const gss_OID /*desired_object*/,
>        gss_buffer_set_t * /*data_set*/);
>
> Desired Object OIds:
> extern const gss_OID GSS_C_INQ_SSPI_SESSION_KEY;
>   Returns a buffer set with the first member containing the
>   session key for SSPI compatibility. The optional second
>   member contains an OID identifying the session key type.
>
>
> DOCUMENTATION
> -------------
>
>  - We will provide updates to man pages libkrb5(3LIB) and libgss(3LIB).
>
>  - We will not provide detailed documentation of this new API but will
>    provide a pointer to it at MIT as it becomes available.
>
>
> NOTES
> -----
>
>  -  MIT Kerberos PAC project page
>     http://k5wiki.kerberos.org/wiki/Projects/PAC_and_principal_APIs
>
>  -  Windows 2000 PAC Information Internet Draft
>     http://ietfreport.isoc.org/idref/draft-brezak-win2k-krb-authz/
>
> INTERFACE STABILITY AND RELEASE BINDINGS
> ----------------------------------------
>
> Interface                  Stability    Release Binding
>
> New API in libkrb5(3LIB)   External     micro/patch
> New API in libgss(3LIB)    External     micro/patch
>   

External is no longer a valid stability classification.  Please choose from:

    Volatile, Uncommitted, Committed.

I suspect Uncommitted is what you really want. But that depends on how 
much change is happening.  Its also hard to justify Uncommitted (IMO) 
without having at least *some* documentation for the interfaces.

    - Garrett
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               ON
>     6.5. ARC review type: FastTrack
>
>
> 6. Resources and Schedule
>     6.4. Steering Committee requested information
>       6.4.1. Consolidation C-team Name:
>               ON
>     6.5. ARC review type: FastTrack
>     6.6. ARC Exposure: open
>
>   


Reply via email to