1
2 CDDL HEADER START
3
4 The contents of this file are subject to the terms of the
5 Common Development and Distribution License, Version 1.0 only
6 (the "License"). You may not use this file except in compliance
7 with the License.
8
9 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 or http://www.opensolaris.org/os/licensing.
11 See the License for the specific language governing permissions
12 and limitations under the License.
13
14 When distributing Covered Code, include this CDDL HEADER in each
15 file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 If applicable, add the following below this CDDL HEADER, with the
17 fields enclosed by brackets "[]" replaced with your own identifying
18 information: Portions Copyright [yyyy] [name of copyright owner]
19
20 CDDL HEADER END
21
22 Copyright 2005 Sun Microsystems, Inc. All rights reserved.
23 Use is subject to license terms.
24
25 #ident "%Z%%M% %I% %E% SMI"
26
27
28 The Service Provider Interface for libgss and its Mechanisms
29 ------------------------------------------------------------
30
31 /* CRYPT DELETE START */
32
33 1. The libgss SPI upto 11/2004
34
35 Prior to PSARC 2004/810 the libgss SPI consisted of a function
36 provided by each mechanism whose return value is a pointer to a
37 structure full of references to the mechanism's entry points
38 (hereinafter: methods).
39
40 This structure does not include any hooks for versioning, which
41 means that additions of any mechanism methods at micro/patch
42 releases require patching libgss.so.1 and all the GSS mechanisms
43 shipped with Solaris (Kerberos V, DH, SPNEGO).
44
45 2. The libgss SPI after PSARC 2004/810
46
47 In order to avoid changing the gss_config struct and patching all
48 three mechanisms (four, if the dummy mech counts) and libgss
49 together and in anticipation of a cleaner SPI in the future (see
50 next section) the SPI after PSARC 2004/810 will be as before but
51 supplemented as follows:
52
98 party implementations of SPKM and LIPKEY (assuming any ever exist --
99 SPKM's is a very problematic specification).
100
101 Third party mechanisms should just export all the symbols for the
102 GSS-API functions, like MIT krb5 does, but functions which libgss
103 won't call (e.g., gss_release_buffer(3GSS)) should either not be
104 implemented or should be weak symbols.
105
106 Solaris native mechanisms may still provide the mechanism method
107 registration function as usual for optimization purposes -- to
108 reduce the number of calls to dlsym().
109
110 Mechanisms that do not provide the old method registration function
111 will be loaded as follows:
112
113 - libgss will look for and find the mechanism's
114 GSS_Indicate_mechs() method and will call it to discover the
115 mechanism provider's mechanism OIDs.
116
117 - libgss will dlsym() each mechanism provider SPI method.
118
119 /* CRYPT DELETE END */
|
1
2 CDDL HEADER START
3
4 The contents of this file are subject to the terms of the
5 Common Development and Distribution License (the "License").
6 You may not use this file except in compliance with the License.
7
8 You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 or http://www.opensolaris.org/os/licensing.
10 See the License for the specific language governing permissions
11 and limitations under the License.
12
13 When distributing Covered Code, include this CDDL HEADER in each
14 file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 If applicable, add the following below this CDDL HEADER, with the
16 fields enclosed by brackets "[]" replaced with your own identifying
17 information: Portions Copyright [yyyy] [name of copyright owner]
18
19 CDDL HEADER END
20
21 Copyright 2010 Sun Microsystems, Inc. All rights reserved.
22 Use is subject to license terms.
23
24
25 The Service Provider Interface for libgss and its Mechanisms
26 ------------------------------------------------------------
27
28 1. The libgss SPI upto 11/2004
29
30 Prior to PSARC 2004/810 the libgss SPI consisted of a function
31 provided by each mechanism whose return value is a pointer to a
32 structure full of references to the mechanism's entry points
33 (hereinafter: methods).
34
35 This structure does not include any hooks for versioning, which
36 means that additions of any mechanism methods at micro/patch
37 releases require patching libgss.so.1 and all the GSS mechanisms
38 shipped with Solaris (Kerberos V, DH, SPNEGO).
39
40 2. The libgss SPI after PSARC 2004/810
41
42 In order to avoid changing the gss_config struct and patching all
43 three mechanisms (four, if the dummy mech counts) and libgss
44 together and in anticipation of a cleaner SPI in the future (see
45 next section) the SPI after PSARC 2004/810 will be as before but
46 supplemented as follows:
47
93 party implementations of SPKM and LIPKEY (assuming any ever exist --
94 SPKM's is a very problematic specification).
95
96 Third party mechanisms should just export all the symbols for the
97 GSS-API functions, like MIT krb5 does, but functions which libgss
98 won't call (e.g., gss_release_buffer(3GSS)) should either not be
99 implemented or should be weak symbols.
100
101 Solaris native mechanisms may still provide the mechanism method
102 registration function as usual for optimization purposes -- to
103 reduce the number of calls to dlsym().
104
105 Mechanisms that do not provide the old method registration function
106 will be loaded as follows:
107
108 - libgss will look for and find the mechanism's
109 GSS_Indicate_mechs() method and will call it to discover the
110 mechanism provider's mechanism OIDs.
111
112 - libgss will dlsym() each mechanism provider SPI method.
|