summaryrefslogtreecommitdiffstats
path: root/src/lib/gssapi/generic/gssapi_generic.c
diff options
context:
space:
mode:
authorLuke Howard <lukeh@padl.com>2012-08-29 09:47:24 +1000
committerGreg Hudson <ghudson@mit.edu>2012-08-31 12:03:49 -0400
commit8626fe9fb6cb14e92b84a68fca5209d0ee656f74 (patch)
tree3ee89b0c1713b7904366ba86b3e2aa6ff3765794 /src/lib/gssapi/generic/gssapi_generic.c
parent79b78773ee4e9219185c71907256a92e06ec5b57 (diff)
downloadkrb5-8626fe9fb6cb14e92b84a68fca5209d0ee656f74.tar.gz
krb5-8626fe9fb6cb14e92b84a68fca5209d0ee656f74.tar.xz
krb5-8626fe9fb6cb14e92b84a68fca5209d0ee656f74.zip
Add support for GSS_C_NT_COMPOSITE_EXPORT
ticket: 7347 (new)
Diffstat (limited to 'src/lib/gssapi/generic/gssapi_generic.c')
-rw-r--r--src/lib/gssapi/generic/gssapi_generic.c126
1 files changed, 67 insertions, 59 deletions
diff --git a/src/lib/gssapi/generic/gssapi_generic.c b/src/lib/gssapi/generic/gssapi_generic.c
index 4718ac73a..4759cdef8 100644
--- a/src/lib/gssapi/generic/gssapi_generic.c
+++ b/src/lib/gssapi/generic/gssapi_generic.c
@@ -119,7 +119,13 @@ static const gss_OID_desc const_oids[] = {
* GSS_C_NT_EXPORT_NAME should be initialized to point
* to that gss_OID_desc.
*/
-
+ {6, (void *)"\x2b\x06\x01\x05\x06\x06"},
+ /* corresponding to an object-identifier value of
+ * {1(iso), 3(org), 6(dod), 1(internet), 5(security),
+ * 6(nametypes), 6(gss-composite-export)}. The constant
+ * GSS_C_NT_COMPOSITE_EXPORT should be initialized to point
+ * to that gss_OID_desc.
+ */
/* GSS_C_INQ_SSPI_SESSION_KEY 1.2.840.113554.1.2.2.5.5 */
{11, (void *)"\x2a\x86\x48\x86\xf7\x12\x01\x02\x02\x05\x05"},
@@ -180,37 +186,39 @@ GSS_DLLIMP gss_OID GSS_C_NT_ANONYMOUS = oids+5;
GSS_DLLIMP gss_OID GSS_C_NT_EXPORT_NAME = oids+6;
gss_OID gss_nt_exported_name = oids+6;
-GSS_DLLIMP gss_OID GSS_C_INQ_SSPI_SESSION_KEY = oids+7;
-
-GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_CONCRETE = oids+8;
-GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_PSEUDO = oids+9;
-GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_COMPOSITE = oids+10;
-GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_NEGO = oids+11;
-GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_GLUE = oids+12;
-GSS_DLLIMP gss_const_OID GSS_C_MA_NOT_MECH = oids+13;
-GSS_DLLIMP gss_const_OID GSS_C_MA_DEPRECATED = oids+14;
-GSS_DLLIMP gss_const_OID GSS_C_MA_NOT_DFLT_MECH = oids+15;
-GSS_DLLIMP gss_const_OID GSS_C_MA_ITOK_FRAMED = oids+16;
-GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_INIT = oids+17;
-GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_TARG = oids+18;
-GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_INIT_INIT = oids+19;
-GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_TARG_INIT = oids+20;
-GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_INIT_ANON = oids+21;
-GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_TARG_ANON = oids+22;
-GSS_DLLIMP gss_const_OID GSS_C_MA_DELEG_CRED = oids+23;
-GSS_DLLIMP gss_const_OID GSS_C_MA_INTEG_PROT = oids+24;
-GSS_DLLIMP gss_const_OID GSS_C_MA_CONF_PROT = oids+25;
-GSS_DLLIMP gss_const_OID GSS_C_MA_MIC = oids+26;
-GSS_DLLIMP gss_const_OID GSS_C_MA_WRAP = oids+27;
-GSS_DLLIMP gss_const_OID GSS_C_MA_PROT_READY = oids+28;
-GSS_DLLIMP gss_const_OID GSS_C_MA_REPLAY_DET = oids+29;
-GSS_DLLIMP gss_const_OID GSS_C_MA_OOS_DET = oids+30;
-GSS_DLLIMP gss_const_OID GSS_C_MA_CBINDINGS = oids+31;
-GSS_DLLIMP gss_const_OID GSS_C_MA_PFS = oids+32;
-GSS_DLLIMP gss_const_OID GSS_C_MA_COMPRESS = oids+33;
-GSS_DLLIMP gss_const_OID GSS_C_MA_CTX_TRANS = oids+34;
-
-static gss_OID_set_desc gss_ma_known_attrs_desc = { 27, oids+8 };
+GSS_DLLIMP gss_OID GSS_C_NT_COMPOSITE_EXPORT = oids+7;
+
+GSS_DLLIMP gss_OID GSS_C_INQ_SSPI_SESSION_KEY = oids+8;
+
+GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_CONCRETE = oids+9;
+GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_PSEUDO = oids+10;
+GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_COMPOSITE = oids+11;
+GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_NEGO = oids+12;
+GSS_DLLIMP gss_const_OID GSS_C_MA_MECH_GLUE = oids+13;
+GSS_DLLIMP gss_const_OID GSS_C_MA_NOT_MECH = oids+14;
+GSS_DLLIMP gss_const_OID GSS_C_MA_DEPRECATED = oids+15;
+GSS_DLLIMP gss_const_OID GSS_C_MA_NOT_DFLT_MECH = oids+16;
+GSS_DLLIMP gss_const_OID GSS_C_MA_ITOK_FRAMED = oids+17;
+GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_INIT = oids+18;
+GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_TARG = oids+19;
+GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_INIT_INIT = oids+20;
+GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_TARG_INIT = oids+21;
+GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_INIT_ANON = oids+22;
+GSS_DLLIMP gss_const_OID GSS_C_MA_AUTH_TARG_ANON = oids+23;
+GSS_DLLIMP gss_const_OID GSS_C_MA_DELEG_CRED = oids+24;
+GSS_DLLIMP gss_const_OID GSS_C_MA_INTEG_PROT = oids+25;
+GSS_DLLIMP gss_const_OID GSS_C_MA_CONF_PROT = oids+26;
+GSS_DLLIMP gss_const_OID GSS_C_MA_MIC = oids+27;
+GSS_DLLIMP gss_const_OID GSS_C_MA_WRAP = oids+28;
+GSS_DLLIMP gss_const_OID GSS_C_MA_PROT_READY = oids+29;
+GSS_DLLIMP gss_const_OID GSS_C_MA_REPLAY_DET = oids+30;
+GSS_DLLIMP gss_const_OID GSS_C_MA_OOS_DET = oids+31;
+GSS_DLLIMP gss_const_OID GSS_C_MA_CBINDINGS = oids+32;
+GSS_DLLIMP gss_const_OID GSS_C_MA_PFS = oids+33;
+GSS_DLLIMP gss_const_OID GSS_C_MA_COMPRESS = oids+34;
+GSS_DLLIMP gss_const_OID GSS_C_MA_CTX_TRANS = oids+35;
+
+static gss_OID_set_desc gss_ma_known_attrs_desc = { 27, oids+9 };
gss_OID_set gss_ma_known_attrs = &gss_ma_known_attrs_desc;
#define STRING_BUFFER(x) { sizeof((x) - 1), (x) }
@@ -222,174 +230,174 @@ static struct mech_attr_info_desc {
gss_buffer_desc long_desc;
} mech_attr_info[] = {
{
- oids+8,
+ oids+9,
STRING_BUFFER("GSS_C_MA_MECH_CONCRETE"),
STRING_BUFFER("concrete-mech"),
STRING_BUFFER("Mechanism is neither a pseudo-mechanism nor a "
"composite mechanism."),
},
{
- oids+9,
+ oids+10,
STRING_BUFFER("GSS_C_MA_MECH_PSEUDO"),
STRING_BUFFER("pseudo-mech"),
STRING_BUFFER("Mechanism is a pseudo-mechanism."),
},
{
- oids+10,
+ oids+11,
STRING_BUFFER("GSS_C_MA_MECH_COMPOSITE"),
STRING_BUFFER("composite-mech"),
STRING_BUFFER("Mechanism is a composite of other mechanisms."),
},
{
- oids+11,
+ oids+12,
STRING_BUFFER("GSS_C_MA_MECH_NEGO"),
STRING_BUFFER("mech-negotiation-mech"),
STRING_BUFFER("Mechanism negotiates other mechanisms."),
},
{
- oids+12,
+ oids+13,
STRING_BUFFER("GSS_C_MA_MECH_GLUE"),
STRING_BUFFER("mech-glue"),
STRING_BUFFER("OID is not a mechanism but the GSS-API itself."),
},
{
- oids+13,
+ oids+14,
STRING_BUFFER("GSS_C_MA_NOT_MECH"),
STRING_BUFFER("not-mech"),
STRING_BUFFER("Known OID but not a mechanism OID."),
},
{
- oids+14,
+ oids+15,
STRING_BUFFER("GSS_C_MA_DEPRECATED"),
STRING_BUFFER("mech-deprecated"),
STRING_BUFFER("Mechanism is deprecated."),
},
{
- oids+15,
+ oids+16,
STRING_BUFFER("GSS_C_MA_NOT_DFLT_MECH"),
STRING_BUFFER("mech-not-default"),
STRING_BUFFER("Mechanism must not be used as a default mechanism."),
},
{
- oids+16,
+ oids+17,
STRING_BUFFER("GSS_C_MA_ITOK_FRAMED"),
STRING_BUFFER("initial-is-framed"),
STRING_BUFFER("Mechanism's initial contexts are properly framed."),
},
{
- oids+17,
+ oids+18,
STRING_BUFFER("GSS_C_MA_AUTH_INIT"),
STRING_BUFFER("auth-init-princ"),
STRING_BUFFER("Mechanism supports authentication of initiator to "
"acceptor."),
},
{
- oids+18,
+ oids+19,
STRING_BUFFER("GSS_C_MA_AUTH_TARG"),
STRING_BUFFER("auth-targ-princ"),
STRING_BUFFER("Mechanism supports authentication of acceptor to "
"initiator."),
},
{
- oids+19,
+ oids+20,
STRING_BUFFER("GSS_C_MA_AUTH_INIT_INIT"),
STRING_BUFFER("auth-init-princ-initial"),
STRING_BUFFER("Mechanism supports authentication of initiator using "
"initial credentials."),
},
{
- oids+20,
+ oids+21,
STRING_BUFFER("GSS_C_MA_AUTH_TARG_INIT"),
STRING_BUFFER("auth-target-princ-initial"),
STRING_BUFFER("Mechanism supports authentication of acceptor using "
"initial credentials."),
},
{
- oids+21,
+ oids+22,
STRING_BUFFER("GSS_C_MA_AUTH_INIT_ANON"),
STRING_BUFFER("auth-init-princ-anon"),
STRING_BUFFER("Mechanism supports GSS_C_NT_ANONYMOUS as an initiator "
"name."),
},
{
- oids+22,
+ oids+23,
STRING_BUFFER("GSS_C_MA_AUTH_TARG_ANON"),
STRING_BUFFER("auth-targ-princ-anon"),
STRING_BUFFER("Mechanism supports GSS_C_NT_ANONYMOUS as an acceptor "
"name."),
},
{
- oids+23,
+ oids+24,
STRING_BUFFER("GSS_C_MA_DELEG_CRED"),
STRING_BUFFER("deleg-cred"),
STRING_BUFFER("Mechanism supports credential delegation."),
},
{
- oids+24,
+ oids+25,
STRING_BUFFER("GSS_C_MA_INTEG_PROT"),
STRING_BUFFER("integ-prot"),
STRING_BUFFER("Mechanism supports per-message integrity protection."),
},
{
- oids+25,
+ oids+26,
STRING_BUFFER("GSS_C_MA_CONF_PROT"),
STRING_BUFFER("conf-prot"),
STRING_BUFFER("Mechanism supports per-message confidentiality "
"protection."),
},
{
- oids+26,
+ oids+27,
STRING_BUFFER("GSS_C_MA_MIC"),
STRING_BUFFER("mic"),
STRING_BUFFER("Mechanism supports Message Integrity Code (MIC) "
"tokens."),
},
{
- oids+27,
+ oids+28,
STRING_BUFFER("GSS_C_MA_WRAP"),
STRING_BUFFER("wrap"),
STRING_BUFFER("Mechanism supports wrap tokens."),
},
{
- oids+28,
+ oids+29,
STRING_BUFFER("GSS_C_MA_PROT_READY"),
STRING_BUFFER("prot-ready"),
STRING_BUFFER("Mechanism supports per-message proteciton prior to "
"full context establishment."),
},
{
- oids+29,
+ oids+30,
STRING_BUFFER("GSS_C_MA_REPLAY_DET"),
STRING_BUFFER("replay-detection"),
STRING_BUFFER("Mechanism supports replay detection."),
},
{
- oids+30,
+ oids+31,
STRING_BUFFER("GSS_C_MA_OOS_DET"),
STRING_BUFFER("oos-detection"),
STRING_BUFFER("Mechanism supports out-of-sequence detection."),
},
{
- oids+31,
+ oids+32,
STRING_BUFFER("GSS_C_MA_CBINDINGS"),
STRING_BUFFER("channel-bindings"),
STRING_BUFFER("Mechanism supports channel bindings."),
},
{
- oids+32,
+ oids+33,
STRING_BUFFER("GSS_C_MA_PFS"),
STRING_BUFFER("pfs"),
STRING_BUFFER("Mechanism supports Perfect Forward Security."),
},
{
- oids+33,
+ oids+34,
STRING_BUFFER("GSS_C_MA_COMPRESS"),
STRING_BUFFER("compress"),
STRING_BUFFER("Mechanism supports compression of data inputs to "
"gss_wrap()."),
},
{
- oids+34,
+ oids+35,
STRING_BUFFER("GSS_C_MA_CTX_TRANS"),
STRING_BUFFER("context-transfer"),
STRING_BUFFER("Mechanism supports security context export/import."),