diff --git a/lib/kadm5/marshall.c b/lib/kadm5/marshall.c index 2249f8193..6da4ea9af 100644 --- a/lib/kadm5/marshall.c +++ b/lib/kadm5/marshall.c @@ -300,3 +300,36 @@ kadm5_ret_principal_ent_mask(krb5_storage *sp, *mask = tmp; return ret_principal_ent (sp, princ, *mask); } + +kadm5_ret_t +_kadm5_marshal_params(krb5_context context, + kadm5_config_params *params, + krb5_data *out) +{ + krb5_storage *sp = krb5_storage_emem(); + + krb5_store_int32(sp, params->mask & (KADM5_CONFIG_REALM)); + + if(params->mask & KADM5_CONFIG_REALM) + krb5_store_string(sp, params->realm); + krb5_storage_to_data(sp, out); + krb5_storage_free(sp); + + return 0; +} + +kadm5_ret_t +_kadm5_unmarshal_params(krb5_context context, + krb5_data *in, + kadm5_config_params *params) +{ + krb5_storage *sp = krb5_storage_from_data(in); + + krb5_ret_int32(sp, ¶ms->mask); + + if(params->mask & KADM5_CONFIG_REALM) + krb5_ret_string(sp, ¶ms->realm); + krb5_storage_free(sp); + + return 0; +}