diff --git a/lib/krb5/digest.c b/lib/krb5/digest.c index f6a791453..6b3356e9b 100644 --- a/lib/krb5/digest.c +++ b/lib/krb5/digest.c @@ -489,6 +489,30 @@ krb5_digest_set_username(krb5_context context, return 0; } +krb5_error_code +krb5_digest_set_authid(krb5_context context, + krb5_digest digest, + const char *authid) +{ + if (digest->request.authid) { + krb5_set_error_string(context, "authid already set"); + return EINVAL; + } + digest->request.authid = malloc(sizeof(*digest->request.authid)); + if (digest->request.authid == NULL) { + krb5_set_error_string(context, "out of memory"); + return ENOMEM; + } + *digest->request.authid = strdup(authid); + if (*digest->request.authid == NULL) { + krb5_set_error_string(context, "out of memory"); + free(digest->request.authid); + digest->request.authid = NULL; + return ENOMEM; + } + return 0; +} + krb5_error_code krb5_digest_set_authentication_user(krb5_context context, krb5_digest digest, @@ -512,8 +536,8 @@ krb5_digest_set_authentication_user(krb5_context context, krb5_error_code krb5_digest_set_realm(krb5_context context, - krb5_digest digest, - const char *realm) + krb5_digest digest, + const char *realm) { if (digest->request.realm) { krb5_set_error_string(context, "realm already set");