CONTRACT FOR CONTRACT PRIVATE INTERFACES 0. Number: PSARC_2009_418-01 1. This contract is between a SUPPLIER of INTERFACES and a CONSUMER of those INTERFACES, both of whom are entities within Sun Microsystems, Incorporated. 2. The SUPPLIER (definer and/or implementor) is identified by the following: Product or Bundle: Solaris Consolidation: ON Department or Group: 1103534262 Bugtraq Category/SubCategory: kerberos5_bundled/other Responsible Manager: Anup Sekhar (anup.sekhar@sun.com) 3. The CONSUMER is identified by the following: Product or Bundle: Solaris (SUNWsmbsu) Consolidation: ON Department or Group: CIFS Server [PSARC 2006/715] Bugtraq Category/SubCategory: snas/cifs-utility Responsible Manager: Barry Greenberg (barry.greenberg@sun.com) 4. The INTERFACES are: 1) With PSARC 2009/418 Kerberos V5 PAC API integration into ON, the following private API is provided by mech_krb5.so: OM_uint32 KRB5_CALLCONV gsskrb5_extract_authz_data_from_sec_context(OM_uint32 *minor_status, const gss_ctx_id_t context_handle, int ad_type, gss_buffer_t ad_data); CIFS server will consume the above private API until the following CR is fixed: 6897463 kerberosv5_b/other libgssapi_krb5.so needed 2) CIFS server will set a private environment variable 'MS_INTEROP' to instruct mech_krb5.so.1 to work in MS interoperability mode. MS Interop requires the following: a) case insensitive comparisons of service and host components are performed for key table lookup, etc. b) mapping KRB5KRB_AP_ERR_BAD_INTEGRITY, KRB5KRB_AP_ERR_NOKEY, KRB5KRB_AP_ERR_BADKEYVER to KRB5KRB_AP_ERR_MODIFIED in order for Windows client to purge old service tickets/session keys. c) MS e-data must be sent in the error token duirng KRB5KRB_AP_ERR_SKEW. CIFS server will consume the above private environment variable until the following RFE is integrated: 6904063 Should provide a GSS-API function to change specific mechanism behavior 5. The ARC controlling these INTERFACES is: PSARC 6. The CASE describing these INTERFACES is: 2009/418 7. Changes to INTERFACES requires ARC approval. If SUPPLIER decides to change (including replace or remove) any portion of the INTERFACES, SUPPLIER will notify CONSUMER of the proposed new version, no later than the application for ARC approval of the new version. If SUPPLIER and CONSUMER are contained in the same bundle, they have the option of arranging for simultaneous conversion to the new interfaces. If this is not possible, or if they are not in the same bundle, then SUPPLIER will either make best effort to work with CONSUMER so that CONSUMER can detect which version of INTERFACES is being supplied, or else SUPPLIER will make best effort to supply both old and new versions of INTERFACES. If SUPPLIER cannot make both versions of INTERFACES available, and SUPPLIER and CONSUMER cannot devise a method whereby CONSUMER can detect which version of INTERFACES is being supplied, and the old version of CONSUMER will not run with the new version of SUPPLIER, then either the EOL process must be followed by SUPPLIER, or else a major release of SUPPLIER will be required. 8. If CONSUMER requires changes in INTERFACES, SUPPLIER will make best effort to accommodate such changes, which shall then be treated in accordance with paragraph 7 above. 9. Notwithstanding paragraphs 7 and 8, a change to any portion of the INTERFACES shall be regarded as a completely new set of INTERFACES, and requires execution of a new contract. 10. SUPPLIER and CONSUMER agree that evolution of INTERFACES shall be handled as follows: SUPPLIER shall inform CONSUMER of changes to these interfaces. If a specified interface is changed, SUPPLIER shall first obtain the approval of CONSUMER. If said interface is changed, SUPPLIER shall provide a means of assuring backward compatibility and shall allow CONSUMER adequate time to adapt to the change. 11. SUPPLIER and CONSUMER agree that INTERFACES will be supported as follows: CONSUMER will file bugs against these interfaces through category sysadmin, subcategory patch_utility. Standard bug correction protocols apply. 12. SUPPLIER and CONSUMER agree that INTERFACES will be documented as follows: In this contract, section 4. 13. SUPPLIER and CONSUMER agree that changes to the INTERFACES will be tested as follows: SUPPLIER shall test the interface per ON standard procedure. 14. SUPPLIER and CONSUMER agree that this contract can be terminated as follows: SUPPLIER or CONSUMER may terminate this contract by providing thirty days E-Mail notice. 15. This contract is not valid until "signed" via agreement from the SUPPLIER and CONSUMER, and approved by the ARC CASE referenced by this contract. E-mail agreement to the contract should be archived in the mail archive of CASE; verbal agreement to the contract should be noted in the meeting minutes. This contract remains valid until superseded or invalidated. For SUPPLIER: Anup Sekhar Date: For CONSUMER: Barry Greenberg Date: For ARC: PSARC Date: A copy of this contract shall be deposited in the CASE directory as "PSARC_2009_418-01" or in a "contracts" subdirectory. An e-mail alias "PSARC_2009_418-01@sun.com" shall be created via netadmin for notification of any desired changes. The SUPPLIER shall be the alias owner. 16. (Not to be filled in until superseded or invalidated.) This contract was superseded or invalidated by CASE: For ARC: Date: