1/*
2 * Copyright (c) 2004 Kungliga Tekniska Högskolan
3 * (Royal Institute of Technology, Stockholm, Sweden).
4 * All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 *    notice, this list of conditions and the following disclaimer in the
15 *    documentation and/or other materials provided with the distribution.
16 *
17 * 3. Neither the name of the Institute nor the names of its contributors
18 *    may be used to endorse or promote products derived from this software
19 *    without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 * SUCH DAMAGE.
32 */
33/* Id */
34
35command = {
36          name = "add"
37          option = {
38                    long = "principal"
39                    short = "p"
40                    type = "string"
41                    help = "principal to add"
42                    argument = "principal"
43                    default = ""
44          }
45          option = {
46                    long = "kvno"
47                    short = "V"
48                    type = "integer"
49                    help = "key version number"
50                    default = "-1"
51          }
52          option = {
53                    long = "enctype"
54                    short = "e"
55                    type = "string"
56                    argument = "enctype"
57                    help = "encryption type"
58          }
59          option = {
60                    long = "password"
61                    short = "w"
62                    type = "string"
63                    help = "password for key"
64          }
65          option = {
66                    long = "salt"
67                    short = "s"
68                    type = "-flag"
69                    help = "use unsalted keys"
70                    default = "1"
71          }
72          option = {
73                    long = "random"
74                    short = "r"
75                    type = "flag"
76                    help = "generate random key"
77          }
78          option = {
79                    long = "hex"
80                    short = "H"
81                    type = "flag"
82                    help = "password is a hexadecimal string"
83          }
84          function = "kt_add"
85          help = "Adds a key to a keytab."
86          max_args = "0"
87}
88command = {
89          name = "change"
90          option = {
91                    long = "realm"
92                    short = "r"
93                    type = "string"
94                    argument = "realm"
95                    help = "realm to use"
96          }
97          option = {
98                    long = "admin-server"
99                    short = "a"
100                    type = "string"
101                    argument = "host"
102                    help = "server to contact"
103          }
104          option = {
105                    long = "server-port"
106                    short = "s"
107                    type = "integer"
108                    argument = "port number"
109                    help = "port number on server"
110          }
111          function = "kt_change"
112          argument = "[principal...]"
113          help = "Change keys for specified principals (default all)."
114}
115command = {
116          name = "copy"
117          function = "kt_copy"
118          argument = "source destination"
119          min_args = "2"
120          max_args = "2"
121          help = "Copies one keytab to another."
122}
123command = {
124          name = "get"
125          option = {
126                    long = "principal"
127                    short = "p"
128                    type = "string"
129                    help = "admin principal"
130                    argument = "principal"
131          }
132          option = {
133                    long = "enctypes"
134                    short = "e"
135                    type = "strings"
136                    help = "encryption types to use"
137                    argument = "enctype"
138          }
139          option = {
140                    long = "realm"
141                    short = "r"
142                    type = "string"
143                    argument = "realm"
144                    help = "realm to use"
145          }
146          option = {
147                    long = "admin-server"
148                    short = "a"
149                    type = "string"
150                    argument = "host"
151                    help = "server to contact"
152          }
153          option = {
154                    long = "server-port"
155                    short = "s"
156                    type = "integer"
157                    argument = "port number"
158                    help = "port number on server"
159          }
160          function = "kt_get"
161          min_args = "1"
162          argument = "principal..."
163          help = "Change keys for specified principals, and add them to the keytab."
164}
165command = {
166          name = "list"
167          option = {
168                    long = "keys"
169                    type = "flag"
170                    help = "show key values"
171          }
172          option = {
173                    long = "timestamp"
174                    type = "flag"
175                    help = "show timestamps"
176          }
177          max_args = "0"
178          function = "kt_list"
179          help = "Show contents of keytab."
180}
181command = {
182          name = "purge"
183          option = {
184                    long = "age"
185                    type = "string"
186                    help = "age to retiere"
187                    default = "1 week";
188                    argument = "time"
189          }
190          max_args = "0"
191          function = "kt_purge"
192          help = "Remove superceded keys from keytab."
193}
194command = {
195          name = "remove"
196          name = "delete"
197          option = {
198                    long = "principal"
199                    short = "p"
200                    type = "string"
201                    help = "principal to remove"
202                    argument = "principal"
203          }
204          option = {
205                    long = "kvno"
206                    short = "V"
207                    type = "integer"
208                    help = "key version to remove"
209                    argument = "kvno"
210                    default = "0"
211          }
212          option = {
213                    long = "enctype"
214                    short = "e"
215                    type = "string"
216                    help = "enctype to remove"
217                    argument = "enctype"
218          }
219          max_args = "0"
220          function = "kt_remove"
221          help = "Remove keys from keytab."
222}
223command = {
224          name = "rename"
225          function = "kt_rename"
226          argument = "from to"
227          min_args = "2"
228          max_args = "2"
229          help = "Renames an entry in the keytab."
230          option = {
231                    long = "delete"
232                    type = "-flag"
233                    help = "don't delete orignal entry"
234          }
235}
236command = {
237          name = "destroy"
238          function = "kt_destroy"
239          max_args = "0"
240          help = "Destroy (remove) the keytab."
241}
242command = {
243          name = "help"
244          argument = "command"
245          max_args = "1"
246          function = "help"
247}
248