projects
/
mech_eap.orig
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add GSS_EAP_CRED_SET_CRED_PASSWORD cred option
[mech_eap.orig]
/
mech_eap
/
set_cred_option.c
diff --git
a/mech_eap/set_cred_option.c
b/mech_eap/set_cred_option.c
index
bfffa1f
..
7bb9b7b
100644
(file)
--- a/
mech_eap/set_cred_option.c
+++ b/
mech_eap/set_cred_option.c
@@
-42,7
+42,7
@@
setCredRadiusConfigFile(OM_uint32 *minor,
const gss_OID oid GSSEAP_UNUSED,
const gss_buffer_t buffer)
{
const gss_OID oid GSSEAP_UNUSED,
const gss_buffer_t buffer)
{
- OM_uint32 major;
+ OM_uint32 major
, tmpMinor
;
gss_buffer_desc configFileBuffer = GSS_C_EMPTY_BUFFER;
if (buffer != GSS_C_NO_BUFFER && buffer->length != 0) {
gss_buffer_desc configFileBuffer = GSS_C_EMPTY_BUFFER;
if (buffer != GSS_C_NO_BUFFER && buffer->length != 0) {
@@
-51,10
+51,8
@@
setCredRadiusConfigFile(OM_uint32 *minor,
return major;
}
return major;
}
- if (cred->radiusConfigFile != NULL)
- GSSEAP_FREE(cred->radiusConfigFile);
-
- cred->radiusConfigFile = (char *)configFileBuffer.value;
+ gss_release_buffer(&tmpMinor, &cred->radiusConfigFile);
+ cred->radiusConfigFile = configFileBuffer;
*minor = 0;
return GSS_S_COMPLETE;
*minor = 0;
return GSS_S_COMPLETE;
@@
-66,7
+64,7
@@
setCredRadiusConfigStanza(OM_uint32 *minor,
const gss_OID oid GSSEAP_UNUSED,
const gss_buffer_t buffer)
{
const gss_OID oid GSSEAP_UNUSED,
const gss_buffer_t buffer)
{
- OM_uint32 major;
+ OM_uint32 major
, tmpMinor
;
gss_buffer_desc configStanzaBuffer = GSS_C_EMPTY_BUFFER;
if (buffer != GSS_C_NO_BUFFER && buffer->length != 0) {
gss_buffer_desc configStanzaBuffer = GSS_C_EMPTY_BUFFER;
if (buffer != GSS_C_NO_BUFFER && buffer->length != 0) {
@@
-75,10
+73,8
@@
setCredRadiusConfigStanza(OM_uint32 *minor,
return major;
}
return major;
}
- if (cred->radiusConfigStanza != NULL)
- GSSEAP_FREE(cred->radiusConfigStanza);
-
- cred->radiusConfigStanza = (char *)configStanzaBuffer.value;
+ gss_release_buffer(&tmpMinor, &cred->radiusConfigStanza);
+ cred->radiusConfigStanza = configStanzaBuffer;
*minor = 0;
return GSS_S_COMPLETE;
*minor = 0;
return GSS_S_COMPLETE;
@@
-116,6
+112,15
@@
setCredFlag(OM_uint32 *minor,
return GSS_S_COMPLETE;
}
return GSS_S_COMPLETE;
}
+static OM_uint32
+setCredPassword(OM_uint32 *minor,
+ gss_cred_id_t cred,
+ const gss_OID oid GSSEAP_UNUSED,
+ const gss_buffer_t buffer)
+{
+ return gssEapSetCredPassword(minor, cred, buffer);
+}
+
static struct {
gss_OID_desc oid;
OM_uint32 (*setOption)(OM_uint32 *, gss_cred_id_t cred,
static struct {
gss_OID_desc oid;
OM_uint32 (*setOption)(OM_uint32 *, gss_cred_id_t cred,
@@
-136,13
+141,19
@@
static struct {
{ 11, "\x2B\x06\x01\x04\x01\xA9\x4A\x16\x03\x03\x03" },
setCredFlag,
},
{ 11, "\x2B\x06\x01\x04\x01\xA9\x4A\x16\x03\x03\x03" },
setCredFlag,
},
+ /* 1.3.6.1.4.1.5322.22.3.3.4 */
+ {
+ { 11, "\x2B\x06\x01\x04\x01\xA9\x4A\x16\x03\x03\x04" },
+ setCredPassword,
+ },
};
gss_OID GSS_EAP_CRED_SET_RADIUS_CONFIG_FILE = &setCredOps[0].oid;
gss_OID GSS_EAP_CRED_SET_RADIUS_CONFIG_STANZA = &setCredOps[1].oid;
gss_OID GSS_EAP_CRED_SET_CRED_FLAG = &setCredOps[2].oid;
};
gss_OID GSS_EAP_CRED_SET_RADIUS_CONFIG_FILE = &setCredOps[0].oid;
gss_OID GSS_EAP_CRED_SET_RADIUS_CONFIG_STANZA = &setCredOps[1].oid;
gss_OID GSS_EAP_CRED_SET_CRED_FLAG = &setCredOps[2].oid;
+gss_OID GSS_EAP_CRED_SET_CRED_PASSWORD = &setCredOps[3].oid;
-OM_uint32
+OM_uint32
GSSAPI_CALLCONV
gssspi_set_cred_option(OM_uint32 *minor,
gss_cred_id_t *pCred,
const gss_OID desired_object,
gssspi_set_cred_option(OM_uint32 *minor,
gss_cred_id_t *pCred,
const gss_OID desired_object,