GSSAPI keytab location per application

Daniel Kahn Gillmor dkg-mit.edu at fifthhorseman.net
Fri Feb 16 11:13:14 EST 2007


At 2007-02-16 10:30, dpeger at cosa.de said:

> Otherwise I think setting KRB5_KTNAME in some kind of startup script
> as mentioned by Daniel and Simon in the two other responses is an
> adequate solution.

you also can set the variable directly within your code with putenv(),
if you want to read the value from a config file or the command line.

For example, here's testkrb5kt.c:

#include <stdio.h>
#include <stdlib.h>
#include <krb5.h>

/* 
  testkrb5kt.c: a demonstration of choosing the default keytab name.
  build with:
    gcc -g -Wall --pedantic -o testkrb5kt testkrb5kt.c -lkrb5
*/

int main(int argc, char* argv[]) {
  char inp[1024];
  char buf[1024];
  int ret;
  krb5_context context;

  if (argc > 1) {
    snprintf(inp, sizeof(inp), "KRB5_KTNAME=FILE:%s", argv[1]);
    putenv(inp);
  }

  krb5_init_context(&context);
  ret = krb5_kt_default_name(context, buf, sizeof(buf));
  printf("%s\n", buf);
  krb5_free_context(context);
  return ret;
}



hth,

	--dkg



More information about the Kerberos mailing list