krb5_build_principal_va()--Build a Kerberos Principal With Variable Argument List


  Syntax
 #include <stdarg.h>
 #include <krb5.h>

 krb5_error_code krb5_build_principal_va(
     krb5_context   context,
     krb5_principal *   ret_principal,  
     int    realm_length,
     krb5_const char *   realm,
     va_list    ap); 
  Service Program Name: QSYS/QKRBGSS

  Default Public Authority: *USE

  Threadsafe: Yes

The krb5_build_principal_va() function builds a Kerberos principal from its component strings. It is similar to the krb5_build_principal() routine, except the name components are specified as a variable argument list instead of as discrete parameters on the function call.


Authorities

No authorities are required.


Parameters

context  (Input)
The Kerberos context.

ret_principal  (Output)
Tthe Kerberos principal. The krb5_free_principal() routine should be called to release the principal when it is no longer needed.

realm_length  (Input)
The length of the realm name.

realm  (Input)
The realm name.

ap  (Input)
A variable argument list consisting of character pointers that specify one or more name components. The end of the components is indicated by specifying NULL for the parameter.

Return Value

If no errors occur, the return value is 0. Otherwise, a Kerberos error code is returned.


Error Messages

CPE3418 E Possible APAR condition or hardware failure.


Example

Assume we have a function my_func that is called with a list of names. It could generate a Kerberos principal from these names as follows.

Note: By using the code examples, you agree to the terms of the Code license and disclaimer information.

#include <stdarg.h>
#include <krb5.h>

krb5_error_code my_func(char *realm, ...) {
    va_list ap;
    krb5_error_code retval;

    va_start(ap, realm);

    retval = krb5_build_principal_va(context, &princ,strlen(realm), realm, ap);

    va_end(ap);

    return retval;
}

int main(int argc, char *argv[]) {

    my_func(6, "forest", "bambi", "admin", NULL);

    return 0;
}



API introduced: V5R1

[ Back to top | Security APIs | UNIX-Type APIs | APIs by category ]