/* convert to lower case */
while (name[i]) {
- putchar(tolower(name[i]));
+ name[i] = tolower(name[i]);
i++;
}
- if (strcmp(name, "none"))
+ if (strcmp(name, "none") == 0)
return CFS_HASH_ALG_NULL;
algo = cfs_crypto_hash_alg(name);
- if ((algo != CFS_HASH_ALG_SHA256) ||
+ if ((algo != CFS_HASH_ALG_SHA256) &&
(algo != CFS_HASH_ALG_SHA512))
return SK_HMAC_INVALID;
"client)\n");
fprintf(fp, "-k|--key-bits <len> Shared key length in bits "
"(Default: %d)\n", SK_DEFAULT_SK_KEYLEN);
- fprintf(fp, "-d|--data <file> Key random data source "
- "(Default: /dev/random)\n\n");
+ fprintf(fp, "-d|--data <file> Key data source for new keys "
+ "(Default: /dev/random)\n");
+ fprintf(fp, " Not a seed value. This is the actual key value.\n\n");
fprintf(fp, "Other Options:\n");
fprintf(fp, "-v|--verbose Increase verbosity for errors\n");
exit(EXIT_FAILURE);
fprintf(stderr, "error: invalid HMAC algorithm specified\n");
return EXIT_FAILURE;
}
+ if (modify && datafile) {
+ fprintf(stderr, "error: data file option not valid in key modify\n");
+ return EXIT_FAILURE;
+ }
if (modify) {
config = sk_read_file(modify);
generate_prime = type & SK_TYPE_CLIENT;
strncpy(config->skc_nodemap, SK_DEFAULT_NODEMAP,
- strlen(SK_DEFAULT_NODEMAP));
+ sizeof(config->skc_nodemap) - 1);
if (!datafile)
datafile = "/dev/random";
if (prime_bits != -1)
config->skc_prime_bits = prime_bits;
if (fsname)
- strncpy(config->skc_fsname, fsname, strlen(fsname));
+ strncpy(config->skc_fsname, fsname,
+ sizeof(config->skc_fsname) - 1);
if (nodemap)
- strncpy(config->skc_nodemap, nodemap, strlen(nodemap));
+ strncpy(config->skc_nodemap, nodemap,
+ sizeof(config->skc_nodemap) - 1);
if (mgsnids && parse_mgsnids(mgsnids, config))
goto error;
if (sk_validate_config(config)) {