[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

cvs and heimdal



Hello,

Has anyone got CVS GSSAPI support to work with heimdal?

This is what I get:

./cvs -a -x -d :gserver:snoopy.apana.org.au:/usr/local/cvsroot history
cvs [history aborted]: GSSAPI authentication failed:  unknown routine error

(Note: I saw a similar problem caused because the ticket file was not
valid. However, mine is valid, cvs can find it (from strace output) and
telnet works OK.)

I believe the problem is because decode_TGS_REP is failing, which
is called by get_cred_kdc deep inside the kerberos library (as seen
by gdb. At this point I get totally lost... 

Anyway, here is the last bit of the gdb output (in case this helps):

(gdb) s
get_cred_kdc (context=0x140032940, id=0x140035600, flags={b = {reserved = 0, 
        forwardable = 0, forwarded = 0, proxiable = 0, proxy = 0, 
        allow_postdate = 0, postdated = 0, unused7 = 0, renewable = 0, 
        unused9 = 0, unused10 = 0, unused11 = 0, request_anonymous = 0, 
        disable_transited_check = 0, renewable_ok = 0, enc_tkt_in_skey = 0, 
        renew = 0, validate = 0}, i = 0}, addresses=0x11fffede0, 
    in_creds=0x140035600, krbtgt=0x30000819124, out_creds=0x1400329e0)
    at get_cred.c:385
385         krb5_generate_random_block(&nonce, sizeof(nonce));
(gdb) n
371     {
(gdb) n
385         krb5_generate_random_block(&nonce, sizeof(nonce));
(gdb) n
379         krb5_keyblock *subkey = NULL;
(gdb) n
371     {
(gdb) n
385         krb5_generate_random_block(&nonce, sizeof(nonce));
(gdb) n
388         if(flags.b.enc_tkt_in_skey){
(gdb) n
380         u_char *buf = NULL;
(gdb) n
388         if(flags.b.enc_tkt_in_skey){
(gdb) 
396         ret = init_tgs_req (context,
(gdb) 
406         if(flags.b.enc_tkt_in_skey)
(gdb) 
408         if (ret)
(gdb) 
411         buf_size = 1024;
(gdb) 
412         buf = malloc (buf_size);
(gdb) 
413         if (buf == NULL) {
(gdb) 
418         do {
(gdb) 
419             ret = encode_TGS_REQ  (buf + buf_size - 1, buf_size,
(gdb) 
421             if (ret) {
(gdb) 
436         } while (ret == ASN1_OVERFLOW);
(gdb) 
440         free_TGS_REQ(&req);
(gdb) 
439         req.req_body.addresses = NULL;
(gdb) 
440         free_TGS_REQ(&req);
(gdb) 
442         enc.data = buf + buf_size - enc.length;
(gdb) 
443         if (ret)
(gdb) 
450         ret = krb5_sendto_kdc (context, &enc, 
(gdb) 
452         if(ret)
(gdb) 
455         memset(&rep, 0, sizeof(rep));
(gdb) 
456         if(decode_TGS_REP(resp.data, resp.length, &rep.kdc_rep, &len) == 0){
(gdb) 
486             free_KRB_ERROR(&error);
(gdb) 
485             ret = error.error_code;
(gdb) 
486             free_KRB_ERROR(&error);
(gdb) b 456
Breakpoint 5 at 0x30000818ef4: file get_cred.c, line 456.
(gdb) c
Continuing.
cvs [history aborted]: GSSAPI authentication failed:  unknown routine error

Program exited with code 01.

-- 
Brian May <bmay@csse.monash.edu.au>

PGP signature