diff --git a/lib/gssapi/8003.c b/lib/gssapi/8003.c index 5e930a499..8b5b4519f 100644 --- a/lib/gssapi/8003.c +++ b/lib/gssapi/8003.c @@ -45,6 +45,16 @@ gssapi_encode_om_uint32(OM_uint32 n, u_char *p) return 0; } +krb5_error_code +gssapi_encode_be_om_uint32(OM_uint32 n, u_char *p) +{ + p[0] = (n >> 24) & 0xFF; + p[1] = (n >> 16) & 0xFF; + p[2] = (n >> 8) & 0xFF; + p[3] = (n >> 0) & 0xFF; + return 0; +} + krb5_error_code gssapi_decode_om_uint32(u_char *p, OM_uint32 *n) { @@ -52,6 +62,13 @@ gssapi_decode_om_uint32(u_char *p, OM_uint32 *n) return 0; } +krb5_error_code +gssapi_decode_be_om_uint32(u_char *p, OM_uint32 *n) +{ + *n = (p[0] <<24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + return 0; +} + static krb5_error_code hash_input_chan_bindings (const gss_channel_bindings_t b, u_char *p) diff --git a/lib/gssapi/gssapi_locl.h b/lib/gssapi/gssapi_locl.h index f928e2510..df68acdf0 100644 --- a/lib/gssapi/gssapi_locl.h +++ b/lib/gssapi/gssapi_locl.h @@ -250,7 +250,13 @@ gssapi_msg_order_f(OM_uint32); krb5_error_code gssapi_encode_om_uint32(OM_uint32, u_char *); +krb5_error_code +gssapi_encode_be_om_uint32(OM_uint32, u_char *); + krb5_error_code gssapi_decode_om_uint32(u_char *, OM_uint32 *); +krb5_error_code +gssapi_decode_be_om_uint32(u_char *, OM_uint32 *); + #endif diff --git a/lib/gssapi/krb5/8003.c b/lib/gssapi/krb5/8003.c index 5e930a499..8b5b4519f 100644 --- a/lib/gssapi/krb5/8003.c +++ b/lib/gssapi/krb5/8003.c @@ -45,6 +45,16 @@ gssapi_encode_om_uint32(OM_uint32 n, u_char *p) return 0; } +krb5_error_code +gssapi_encode_be_om_uint32(OM_uint32 n, u_char *p) +{ + p[0] = (n >> 24) & 0xFF; + p[1] = (n >> 16) & 0xFF; + p[2] = (n >> 8) & 0xFF; + p[3] = (n >> 0) & 0xFF; + return 0; +} + krb5_error_code gssapi_decode_om_uint32(u_char *p, OM_uint32 *n) { @@ -52,6 +62,13 @@ gssapi_decode_om_uint32(u_char *p, OM_uint32 *n) return 0; } +krb5_error_code +gssapi_decode_be_om_uint32(u_char *p, OM_uint32 *n) +{ + *n = (p[0] <<24) | (p[1] << 16) | (p[2] << 8) | (p[3] << 0); + return 0; +} + static krb5_error_code hash_input_chan_bindings (const gss_channel_bindings_t b, u_char *p) diff --git a/lib/gssapi/krb5/gssapi_locl.h b/lib/gssapi/krb5/gssapi_locl.h index f928e2510..df68acdf0 100644 --- a/lib/gssapi/krb5/gssapi_locl.h +++ b/lib/gssapi/krb5/gssapi_locl.h @@ -250,7 +250,13 @@ gssapi_msg_order_f(OM_uint32); krb5_error_code gssapi_encode_om_uint32(OM_uint32, u_char *); +krb5_error_code +gssapi_encode_be_om_uint32(OM_uint32, u_char *); + krb5_error_code gssapi_decode_om_uint32(u_char *, OM_uint32 *); +krb5_error_code +gssapi_decode_be_om_uint32(u_char *, OM_uint32 *); + #endif