projects
/
openssh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
merge key exchange patch without rekeying support
[openssh.git]
/
auth-krb5.c
diff --git
a/auth-krb5.c
b/auth-krb5.c
index
d019fe2
..
8219133
100644
(file)
--- a/
auth-krb5.c
+++ b/
auth-krb5.c
@@
-170,8
+170,13
@@
auth_krb5_password(Authctxt *authctxt, const char *password)
len = strlen(authctxt->krb5_ticket_file) + 6;
authctxt->krb5_ccname = xmalloc(len);
len = strlen(authctxt->krb5_ticket_file) + 6;
authctxt->krb5_ccname = xmalloc(len);
+#ifdef USE_CCAPI
+ snprintf(authctxt->krb5_ccname, len, "API:%s",
+ authctxt->krb5_ticket_file);
+#else
snprintf(authctxt->krb5_ccname, len, "FILE:%s",
authctxt->krb5_ticket_file);
snprintf(authctxt->krb5_ccname, len, "FILE:%s",
authctxt->krb5_ticket_file);
+#endif
#ifdef USE_PAM
if (options.use_pam)
#ifdef USE_PAM
if (options.use_pam)
@@
-226,15
+231,22
@@
krb5_cleanup_proc(Authctxt *authctxt)
#ifndef HEIMDAL
krb5_error_code
ssh_krb5_cc_gen(krb5_context ctx, krb5_ccache *ccache) {
#ifndef HEIMDAL
krb5_error_code
ssh_krb5_cc_gen(krb5_context ctx, krb5_ccache *ccache) {
- int
tmpfd,
ret;
+ int ret;
char ccname[40];
mode_t old_umask;
char ccname[40];
mode_t old_umask;
+#ifdef USE_CCAPI
+ char cctemplate[] = "API:krb5cc_%d";
+#else
+ char cctemplate[] = "FILE:/tmp/krb5cc_%d_XXXXXXXXXX";
+ int tmpfd;
+#endif
ret = snprintf(ccname, sizeof(ccname),
ret = snprintf(ccname, sizeof(ccname),
-
"FILE:/tmp/krb5cc_%d_XXXXXXXXXX"
, geteuid());
+
cctemplate
, geteuid());
if (ret < 0 || (size_t)ret >= sizeof(ccname))
return ENOMEM;
if (ret < 0 || (size_t)ret >= sizeof(ccname))
return ENOMEM;
+#ifndef USE_CCAPI
old_umask = umask(0177);
tmpfd = mkstemp(ccname + strlen("FILE:"));
umask(old_umask);
old_umask = umask(0177);
tmpfd = mkstemp(ccname + strlen("FILE:"));
umask(old_umask);
@@
-249,6
+261,7
@@
ssh_krb5_cc_gen(krb5_context ctx, krb5_ccache *ccache) {
return errno;
}
close(tmpfd);
return errno;
}
close(tmpfd);
+#endif
return (krb5_cc_resolve(ctx, ccname, ccache));
}
return (krb5_cc_resolve(ctx, ccname, ccache));
}