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 = "enctype" 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