2 KRB5_KEYTAB(3) UNIX Programmer's Manual KRB5_KEYTAB(3)
5 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_o
\bop
\bps
\bs, k
\bkr
\brb
\bb5
\b5_
\b_k
\bke
\bey
\byt
\bta
\bab
\bb_
\b_e
\ben
\bnt
\btr
\bry
\by, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bcu
\bur
\brs
\bso
\bor
\br, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_a
\bad
\bdd
\bd_
\b_e
\ben
\bnt
\btr
\bry
\by,
6 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bcl
\blo
\bos
\bse
\be, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bco
\bom
\bmp
\bpa
\bar
\bre
\be, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bco
\bop
\bpy
\by_
\b_e
\ben
\bnt
\btr
\bry
\by_
\b_c
\bco
\bon
\bnt
\bte
\ben
\bnt
\bts
\bs,
7 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt_
\b_n
\bna
\bam
\bme
\be, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_e
\ben
\bnd
\bd_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt,
8 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_f
\bfr
\bre
\bee
\be_
\b_e
\ben
\bnt
\btr
\bry
\by, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_n
\bna
\bam
\bme
\be,
9 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_t
\bty
\byp
\bpe
\be, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_n
\bne
\bex
\bxt
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bea
\bad
\bd_
\b_s
\bse
\ber
\brv
\bvi
\bic
\bce
\be_
\b_k
\bke
\bey
\by,
10 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\beg
\bgi
\bis
\bst
\bte
\ber
\br, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bem
\bmo
\bov
\bve
\be_
\b_e
\ben
\bnt
\btr
\bry
\by, k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bes
\bso
\bol
\blv
\bve
\be,
11 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_s
\bst
\bta
\bar
\brt
\bt_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt - manage keytab (key storage) files
13 L
\bLI
\bIB
\bBR
\bRA
\bAR
\bRY
\bY
14 Kerberos 5 Library (libkrb5, -lkrb5)
16 S
\bSY
\bYN
\bNO
\bOP
\bPS
\bSI
\bIS
\bS
17 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
18 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_a
\bad
\bdd
\bd_
\b_e
\ben
\bnt
\btr
\bry
\by(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd,
19 _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\be_
\bn_
\bt_
\br_
\by)
21 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
22 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bcl
\blo
\bos
\bse
\be(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd)
24 _
\bk_
\br_
\bb_
\b5_
\b__
\bb_
\bo_
\bo_
\bl_
\be_
\ba_
\bn
25 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bco
\bom
\bmp
\bpa
\bar
\bre
\be(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\be_
\bn_
\bt_
\br_
\by,
26 _
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bs_
\bt_
\b__
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl _
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bv_
\bn_
\bo _
\bv_
\bn_
\bo,
27 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be)
29 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
30 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bco
\bop
\bpy
\by_
\b_e
\ben
\bnt
\btr
\bry
\by_
\b_c
\bco
\bon
\bnt
\bte
\ben
\bnt
\bts
\bs(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt,
31 _
\bc_
\bo_
\bn_
\bs_
\bt _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\bi_
\bn, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\bo_
\bu_
\bt)
33 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
34 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\b*_
\bi_
\bd)
36 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
37 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt_
\b_n
\bna
\bam
\bme
\be(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bc_
\bh_
\ba_
\br _
\b*_
\bn_
\ba_
\bm_
\be, _
\bs_
\bi_
\bz_
\be_
\b__
\bt _
\bn_
\ba_
\bm_
\be_
\bs_
\bi_
\bz_
\be)
39 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
40 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_e
\ben
\bnd
\bd_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd,
41 _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bt_
\b__
\bc_
\bu_
\br_
\bs_
\bo_
\br _
\b*_
\bc_
\bu_
\br_
\bs_
\bo_
\br)
43 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
44 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_f
\bfr
\bre
\bee
\be_
\b_e
\ben
\bnt
\btr
\bry
\by(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\be_
\bn_
\bt_
\br_
\by)
46 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
47 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd,
48 _
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bs_
\bt_
\b__
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl _
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bv_
\bn_
\bo _
\bk_
\bv_
\bn_
\bo,
49 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\be_
\bn_
\bt_
\br_
\by)
51 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
52 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_n
\bna
\bam
\bme
\be(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bk_
\be_
\by_
\bt_
\ba_
\bb, _
\bc_
\bh_
\ba_
\br _
\b*_
\bn_
\ba_
\bm_
\be,
53 _
\bs_
\bi_
\bz_
\be_
\b__
\bt _
\bn_
\ba_
\bm_
\be_
\bs_
\bi_
\bz_
\be)
55 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
56 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_t
\bty
\byp
\bpe
\be(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bk_
\be_
\by_
\bt_
\ba_
\bb, _
\bc_
\bh_
\ba_
\br _
\b*_
\bp_
\br_
\be_
\bf_
\bi_
\bx,
57 _
\bs_
\bi_
\bz_
\be_
\b__
\bt _
\bp_
\br_
\be_
\bf_
\bi_
\bx_
\bs_
\bi_
\bz_
\be)
59 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
60 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_n
\bne
\bex
\bxt
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd,
61 _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\be_
\bn_
\bt_
\br_
\by, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bt_
\b__
\bc_
\bu_
\br_
\bs_
\bo_
\br _
\b*_
\bc_
\bu_
\br_
\bs_
\bo_
\br)
63 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
64 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bea
\bad
\bd_
\b_s
\bse
\ber
\brv
\bvi
\bic
\bce
\be_
\b_k
\bke
\bey
\by(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bp_
\bo_
\bi_
\bn_
\bt_
\be_
\br _
\bk_
\be_
\by_
\bp_
\br_
\bo_
\bc_
\ba_
\br_
\bg,
65 _
\bk_
\br_
\bb_
\b5_
\b__
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl _
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bv_
\bn_
\bo _
\bv_
\bn_
\bo, _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be,
66 _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bb_
\bl_
\bo_
\bc_
\bk _
\b*_
\b*_
\bk_
\be_
\by)
68 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
69 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\beg
\bgi
\bis
\bst
\bte
\ber
\br(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bc_
\bo_
\bn_
\bs_
\bt _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bt_
\b__
\bo_
\bp_
\bs _
\b*_
\bo_
\bp_
\bs)
71 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
72 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bem
\bmo
\bov
\bve
\be_
\b_e
\ben
\bnt
\btr
\bry
\by(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd,
73 _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb_
\b__
\be_
\bn_
\bt_
\br_
\by _
\b*_
\be_
\bn_
\bt_
\br_
\by)
75 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
76 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bes
\bso
\bol
\blv
\bve
\be(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bc_
\bo_
\bn_
\bs_
\bt _
\bc_
\bh_
\ba_
\br _
\b*_
\bn_
\ba_
\bm_
\be, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\b*_
\bi_
\bd)
78 _
\bk_
\br_
\bb_
\b5_
\b__
\be_
\br_
\br_
\bo_
\br_
\b__
\bc_
\bo_
\bd_
\be
79 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_s
\bst
\bta
\bar
\brt
\bt_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt(_
\bk_
\br_
\bb_
\b5_
\b__
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt _
\bc_
\bo_
\bn_
\bt_
\be_
\bx_
\bt, _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\be_
\by_
\bt_
\ba_
\bb _
\bi_
\bd,
80 _
\bk_
\br_
\bb_
\b5_
\b__
\bk_
\bt_
\b__
\bc_
\bu_
\br_
\bs_
\bo_
\br _
\b*_
\bc_
\bu_
\br_
\bs_
\bo_
\br)
82 D
\bDE
\bES
\bSC
\bCR
\bRI
\bIP
\bPT
\bTI
\bIO
\bON
\bN
83 A keytab name is on the form type:residual. The residual part is specific
86 When a keytab-name is resolved, the type is matched with an internal list
87 of keytab types. If there is no matching keytab type, the default keytab
88 is used. The current default type is f
\bfi
\bil
\ble
\be. The default value can be
89 changed in the configuration file _
\b/_
\be_
\bt_
\bc_
\b/_
\bk_
\br_
\bb_
\b5_
\b._
\bc_
\bo_
\bn_
\bf by setting the variable
90 [defaults]default_keytab_name.
92 The keytab types that are implemented in Heimdal are:
94 f
\bfi
\bil
\ble
\be store the keytab in a file, the type's name is KEYFILE. The
95 residual part is a filename.
97 k
\bke
\bey
\byf
\bfi
\bil
\ble
\be
98 store the keytab in a AFS keyfile (usually _
\b/_
\bu_
\bs_
\br_
\b/_
\ba_
\bf_
\bs_
\b/_
\be_
\bt_
\bc_
\b/_
\bK_
\be_
\by_
\bF_
\bi_
\bl_
\be),
99 the type's name is AFSKEYFILE. The residual part is a filename.
101 k
\bkr
\brb
\bb4
\b4 the keytab is a Kerberos 4 _
\bs_
\br_
\bv_
\bt_
\ba_
\bb that is on-the-fly converted to
102 a keytab. The type's name is krb4. The residual part is a file-
105 m
\bme
\bem
\bmo
\bor
\bry
\by The keytab is stored in a memory segment. This allows sensitive
106 and/or temporary data not to be stored on disk. The type's name
107 is MEMORY. There are no residual part, the only pointer back to
108 the keytab is the _
\bi_
\bd returned by k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bes
\bso
\bol
\blv
\bve
\be().
110 k
\bkr
\brb
\bb5
\b5_
\b_k
\bke
\bey
\byt
\bta
\bab
\bb_
\b_e
\ben
\bnt
\btr
\bry
\by holds all data for an entry in a keytab file, like
111 principal name, key-type, key, key-version number, etc. k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bcu
\bur
\brs
\bso
\bor
\br
112 holds the current position that is used when iterating through a keytab
113 entry with k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_s
\bst
\bta
\bar
\brt
\bt_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt(), k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_n
\bne
\bex
\bxt
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by(), and
114 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_e
\ben
\bnd
\bd_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt().
116 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_o
\bop
\bps
\bs contains the different operations that can be done to a
117 keytab. This structure is normally only used when doing a new keytab-type
120 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bes
\bso
\bol
\blv
\bve
\be() is the equivalent of an open(2) on keytab. Resolve the
121 keytab name in _
\bn_
\ba_
\bm_
\be into a keytab in _
\bi_
\bd. Returns 0 or an error. The oppo-
122 site of k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bes
\bso
\bol
\blv
\bve
\be() is k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bcl
\blo
\bos
\bse
\be(). k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bcl
\blo
\bos
\bse
\be() frees all
123 resources allocated to the keytab.
125 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt() sets the argument _
\bi_
\bd to the default keytab. Returns 0
128 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_d
\bde
\bef
\bfa
\bau
\bul
\blt
\bt_
\b_n
\bna
\bam
\bme
\be() copy the name of the default keytab into _
\bn_
\ba_
\bm_
\be. Re-
129 turn 0 or KRB5_CONFIG_NOTENUFSPACE if _
\bn_
\ba_
\bm_
\be_
\bs_
\bi_
\bz_
\be is too short.
132 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_a
\bad
\bdd
\bd_
\b_e
\ben
\bnt
\btr
\bry
\by() Add a new _
\be_
\bn_
\bt_
\br_
\by to the keytab _
\bi_
\bd. KRB5_KT_NOWRITE is
133 returned if the keytab is a readonly keytab.
135 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bco
\bom
\bmp
\bpa
\bar
\bre
\be() compares the passed in _
\be_
\bn_
\bt_
\br_
\by against _
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bv_
\bn_
\bo,
136 and _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be. Any of _
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bv_
\bn_
\bo or _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be might be 0 which acts as a
137 wildcard. Return TRUE if they compare the same, FALSE otherwise.
139 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_c
\bco
\bop
\bpy
\by_
\b_e
\ben
\bnt
\btr
\bry
\by_
\b_c
\bco
\bon
\bnt
\bte
\ben
\bnt
\bts
\bs() copies the contents of _
\bi_
\bn into _
\bo_
\bu_
\bt. Returns
142 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_n
\bna
\bam
\bme
\be() retrieves the name of the keytab _
\bk_
\be_
\by_
\bt_
\ba_
\bb into _
\bn_
\ba_
\bm_
\be,
143 _
\bn_
\ba_
\bm_
\be_
\bs_
\bi_
\bz_
\be. Returns 0 or an error.
145 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_t
\bty
\byp
\bpe
\be() retrieves the type of the keytab _
\bk_
\be_
\by_
\bt_
\ba_
\bb and store the
146 prefix/name for type of the keytab into _
\bp_
\br_
\be_
\bf_
\bi_
\bx, _
\bp_
\br_
\be_
\bf_
\bi_
\bx_
\bs_
\bi_
\bz_
\be. The prefix
147 will have the maximum length of KRB5_KT_PREFIX_MAX_LEN (including termi-
148 nating NUL). Returns 0 or an error.
150 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_f
\bfr
\bre
\bee
\be_
\b_e
\ben
\bnt
\btr
\bry
\by() frees the contents of _
\be_
\bn_
\bt_
\br_
\by.
152 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_s
\bst
\bta
\bar
\brt
\bt_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt() sets _
\bc_
\bu_
\br_
\bs_
\bo_
\br to point at the beginning of _
\bi_
\bd. Re-
155 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_n
\bne
\bex
\bxt
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by() gets the next entry from _
\bi_
\bd pointed to by _
\bc_
\bu_
\br_
\bs_
\bo_
\br and
156 advance the _
\bc_
\bu_
\br_
\bs_
\bo_
\br. Returns 0 or an error.
158 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_e
\ben
\bnd
\bd_
\b_s
\bse
\beq
\bq_
\b_g
\bge
\bet
\bt() releases all resources associated with _
\bc_
\bu_
\br_
\bs_
\bo_
\br.
160 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_g
\bge
\bet
\bt_
\b_e
\ben
\bnt
\btr
\bry
\by() retrieves the keytab entry for _
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bk_
\bv_
\bn_
\bo_
\b,
161 _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be into _
\be_
\bn_
\bt_
\br_
\by from the keytab _
\bi_
\bd. Returns 0 or an error.
163 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bea
\bad
\bd_
\b_s
\bse
\ber
\brv
\bvi
\bic
\bce
\be_
\b_k
\bke
\bey
\by() reads the key identified by (_
\bp_
\br_
\bi_
\bn_
\bc_
\bi_
\bp_
\ba_
\bl, _
\bv_
\bn_
\bo,
164 _
\be_
\bn_
\bc_
\bt_
\by_
\bp_
\be) from the keytab in _
\bk_
\be_
\by_
\bp_
\br_
\bo_
\bc_
\ba_
\br_
\bg (the default if == NULL) into
165 _
\b*_
\bk_
\be_
\by. Returns 0 or an error.
167 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\bem
\bmo
\bov
\bve
\be_
\b_e
\ben
\bnt
\btr
\bry
\by() removes the entry _
\be_
\bn_
\bt_
\br_
\by from the keytab _
\bi_
\bd. Re-
170 k
\bkr
\brb
\bb5
\b5_
\b_k
\bkt
\bt_
\b_r
\bre
\beg
\bgi
\bis
\bst
\bte
\ber
\br() registers a new keytab type _
\bo_
\bp_
\bs. Returns 0 or an er-
173 E
\bEX
\bXA
\bAM
\bMP
\bPL
\bLE
\bE
174 This is a minimalistic version of k
\bkt
\btu
\but
\bti
\bil
\bl.
177 main (int argc, char **argv)
179 krb5_context context;
181 krb5_kt_cursor cursor;
182 krb5_keytab_entry entry;
186 if (krb5_init_context (&context) != 0)
187 errx(1, "krb5_context");
189 ret = krb5_kt_default (context, &keytab);
191 krb5_err(context, 1, ret, "krb5_kt_default");
193 ret = krb5_kt_start_seq_get(context, keytab, &cursor);
195 krb5_err(context, 1, ret, "krb5_kt_start_seq_get");
196 while((ret = krb5_kt_next_entry(context, keytab, &entry, &cursor)) == 0){
197 krb5_unparse_name_short(context, entry.principal, &principal);
198 printf("principal: %s\n", principal);
200 krb5_kt_free_entry(context, &entry);
202 ret = krb5_kt_end_seq_get(context, keytab, &cursor);
204 krb5_err(context, 1, ret, "krb5_kt_end_seq_get");
205 krb5_free_context(context);
209 S
\bSE
\bEE
\bE A
\bAL
\bLS
\bSO
\bO
210 krb5.conf(5), kerberos(8)
212 HEIMDAL February 5, 2001 4