X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=util.h;h=0fceafecdfdc9adeb7b3a27cb81bb859e491e9d4;hb=c782e76527626566bb4d6fddf38f83beea0aa72a;hp=5be9538891a22afd4aacffe8b4c6c15aa0b80f17;hpb=5501c782934834e459272cf8c467c7b86caeb1e0;p=mech_eap.git diff --git a/util.h b/util.h index 5be9538..0fceafe 100644 --- a/util.h +++ b/util.h @@ -76,6 +76,23 @@ enum gss_eap_token_type { TOK_TYPE_GSS_CHANNEL_BINDINGS = 0x0603, /* draft-howlett-eap-gss */ }; +/* util_buffer.c */ +OM_uint32 +makeStringBuffer(OM_uint32 *minor, + const char *string, + gss_buffer_t buffer); + +OM_uint32 +bufferToString(OM_uint32 *minor, + const gss_buffer_t buffer, + char **pString); + +OM_uint32 +duplicateBuffer(OM_uint32 *minor, + const gss_buffer_t src, + gss_buffer_t dst); + +/* util_cksum.c */ int gssEapSign(krb5_context context, krb5_cksumtype type, @@ -206,6 +223,9 @@ gssEapOidToEnctype(OM_uint32 *minor, int gssEapIsMechanismOid(const gss_OID oid); +int +gssEapIsConcreteMechanismOid(const gss_OID oid); + OM_uint32 gssEapValidateMechs(OM_uint32 *minor, const gss_OID_set mechs); @@ -312,7 +332,7 @@ makeTokenHeader(const gss_OID_desc *mech, enum gss_eap_token_type tok_type); int -verifyTokenHeader(const gss_OID_desc * mech, +verifyTokenHeader(gss_OID mech, size_t *body_size, unsigned char **buf_in, size_t toksize_in, @@ -411,70 +431,4 @@ load_uint64_be(const void *cvp) return ((uint64_t)load_uint32_be(p) << 32) | load_uint32_be(p + 4); } -static OM_uint32 -makeStringBuffer(OM_uint32 *minor, - const char *string, - gss_buffer_t buffer) -{ - size_t len = strlen(string); - - buffer->value = GSSEAP_MALLOC(len + 1); - if (buffer->value == NULL) { - *minor = ENOMEM; - return GSS_S_FAILURE; - } - memcpy(buffer->value, string, len + 1); - buffer->length = len; - - *minor = 0; - return GSS_S_COMPLETE; -} - -static OM_uint32 -bufferToString(OM_uint32 *minor, - const gss_buffer_t buffer, - char **pString) -{ - char *s; - - s = GSSEAP_MALLOC(buffer->length + 1); - if (s == NULL) { - *minor = ENOMEM; - return GSS_S_FAILURE; - } - memcpy(s, buffer->value, buffer->length); - s[buffer->length] = '\0'; - - *pString = s; - - *minor = 0; - return GSS_S_COMPLETE; -} - -static OM_uint32 -duplicateBuffer(OM_uint32 *minor, - const gss_buffer_t src, - gss_buffer_t dst) -{ - dst->length = 0; - dst->value = NULL; - - if (src == GSS_C_NO_BUFFER) - return GSS_S_COMPLETE; - - dst->value = GSSEAP_MALLOC(src->length + 1); - if (dst->value == NULL) { - *minor = ENOMEM; - return GSS_S_FAILURE; - } - - dst->length = src->length; - memcpy(dst->value, src->value, dst->length); - - ((unsigned char *)dst->value)[dst->length] = '\0'; - - *minor = 0; - return GSS_S_COMPLETE; -} - #endif /* _UTIL_H_ */