A clarification (E347) in the IPMI v2 errata document (mark II) makes it

pretty clear that listing algorithms by cipher suite does not list all
algorithms, but lists supported algothms *grouped* by cipher suite.  Since
both views contain the same information, we will just support one in
ipmitool -- supported algorithms listed by cipher suite view.
This commit is contained in:
Jeremy Ellington 2005-06-22 22:12:59 +00:00
parent a85bd201df
commit 312b564091
2 changed files with 9 additions and 12 deletions

View File

@ -315,7 +315,7 @@ implicitly by the given userid.
Configure user access information on the given channel for the given userid. Configure user access information on the given channel for the given userid.
.TP .TP
\fIgetciphers\fP <\fBall\fR|\fBsupported\fR> <\fBipmi\fR|\fBsol\fR> [<\fBchannel\fR>] \fIgetciphers\fP <\fBipmi\fR|\fBsol\fR> [<\fBchannel\fR>]
.br .br
Displays the list of cipher suites supported for the given Displays the list of cipher suites supported for the given

View File

@ -1,4 +1,4 @@
/* /* -*-mode: C; indent-tabs-mode: t; -*-
* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved. * Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@ -544,7 +544,6 @@ iana_string(uint32_t iana)
static int static int
ipmi_get_channel_cipher_suites(struct ipmi_intf * intf, ipmi_get_channel_cipher_suites(struct ipmi_intf * intf,
const char * which,
const char * payload_type, const char * payload_type,
uint8_t channel) uint8_t channel)
{ {
@ -571,7 +570,7 @@ ipmi_get_channel_cipher_suites(struct ipmi_intf * intf,
rqdata[0] = channel; rqdata[0] = channel;
rqdata[1] = ((strncmp(payload_type, "ipmi", 4) == 0)? 0: 1); rqdata[1] = ((strncmp(payload_type, "ipmi", 4) == 0)? 0: 1);
rqdata[2] = ((strncmp(which, "all", 3) == 0)? 0x80: 0); rqdata[2] = 0x80; // Always ask for cipher suite format
rsp = intf->sendrecv(intf, &req); rsp = intf->sendrecv(intf, &req);
if (rsp == NULL) { if (rsp == NULL) {
@ -771,7 +770,7 @@ printf_channel_usage()
lprintf(LOG_NOTICE, " setaccess <channel number> " lprintf(LOG_NOTICE, " setaccess <channel number> "
"<user id> [callin=on|off] [ipmi=on|off] [link=on|off] [privilege=level]"); "<user id> [callin=on|off] [ipmi=on|off] [link=on|off] [privilege=level]");
lprintf(LOG_NOTICE, " info [channel number]"); lprintf(LOG_NOTICE, " info [channel number]");
lprintf(LOG_NOTICE, " getciphers <all | supported> <ipmi | sol> [channel]\n"); lprintf(LOG_NOTICE, " getciphers <ipmi | sol> [channel]\n");
lprintf(LOG_NOTICE, "Possible privilege levels are:"); lprintf(LOG_NOTICE, "Possible privilege levels are:");
lprintf(LOG_NOTICE, " 1 Callback level"); lprintf(LOG_NOTICE, " 1 Callback level");
lprintf(LOG_NOTICE, " 2 User level"); lprintf(LOG_NOTICE, " 2 User level");
@ -828,21 +827,19 @@ ipmi_channel_main(struct ipmi_intf * intf, int argc, char ** argv)
} }
} }
// it channel getciphers <all | supported> <ipmi | sol> [channel] // it channel getciphers <ipmi | sol> [channel]
else if (strncmp(argv[0], "getciphers", 10) == 0) else if (strncmp(argv[0], "getciphers", 10) == 0)
{ {
if ((argc < 3) || (argc > 4) || if ((argc < 2) || (argc > 3) ||
(strncmp(argv[1], "all", 3) && strncmp(argv[1], "supported", 9)) || (strncmp(argv[1], "ipmi", 4) && strncmp(argv[1], "sol", 3)))
(strncmp(argv[2], "ipmi", 4) && strncmp(argv[2], "sol", 3)))
printf_channel_usage(); printf_channel_usage();
else else
{ {
uint8_t ch = 0xe; uint8_t ch = 0xe;
if (argc == 4) if (argc == 4)
ch = (uint8_t)strtol(argv[3], NULL, 0); ch = (uint8_t)strtol(argv[2], NULL, 0);
retval = ipmi_get_channel_cipher_suites(intf, retval = ipmi_get_channel_cipher_suites(intf,
argv[1], // all | supported argv[1], // ipmi | sol
argv[2], // ipmi | sol
ch); ch);
} }
} }