std::ofstream key_file(key_file_name.c_str());
if (!key_file.good()) {
print(std::string("Error writing to ") + key_file_name +
- ": " + strerror(errno));
+ ": " + std::strerror(errno));
return (WRITE_ERROR);
}
key_file << PKCS8::PEM_encode(key, rng, "");
if (!key_file.good()) {
print(std::string("Error writing to ") + key_file_name +
- ": " + strerror(errno));
+ ": " + std::strerror(errno));
return (WRITE_ERROR);
}
key_file.close();
std::ofstream cert_file(cert_file_name.c_str());
if (!cert_file.good()) {
print(std::string("Error writing to ") + cert_file_name +
- ": " + strerror(errno));
+ ": " + std::strerror(errno));
return (WRITE_ERROR);
}
cert_file << cert.PEM_encode();
if (!cert_file.good()) {
print(std::string("Error writing to ") + cert_file_name +
- ": " + strerror(errno));
+ ": " + std::strerror(errno));
return (WRITE_ERROR);
}
cert_file.close();
// be enumerated in one go
if (fileExists(certfile)) {
if (!fileIsReadable(certfile)) {
- print(certfile + " not readable: " + strerror(errno));
+ print(certfile + " not readable: " + std::strerror(errno));
create_cert = false;
}
if (!fileIsWritable(certfile)) {
- print(certfile + " not writable: " + strerror(errno));
+ print(certfile + " not writable: " + std::strerror(errno));
create_cert = false;
}
}
// b10-certgen that is)
if (fileExists(keyfile)) {
if (!fileIsWritable(keyfile)) {
- print(keyfile + " not writable: " + strerror(errno));
+ print(keyfile + " not writable: " + std::strerror(errno));
create_cert = false;
}
}
}
} else {
if (!fileExists(certfile)) {
- print(certfile + ": " + strerror(errno));
+ print(certfile + ": " + std::strerror(errno));
return (NO_SUCH_FILE);
}
if (!fileIsReadable(certfile)) {
- print(certfile + " not readable: " + strerror(errno));
+ print(certfile + " not readable: " + std::strerror(errno));
return (FILE_PERMISSION_ERROR);
}
int result = validateCertificate(certfile);
bool certfile_default = true;
bool keyfile_default = true;
- struct option long_options[] = {
- { "certfile", required_argument, 0, 'c' },
- { "force", no_argument, 0, 'f' },
- { "help", no_argument, 0, 'h' },
- { "keyfile", required_argument, 0, 'k' },
- { "write", no_argument, 0, 'w' },
- { "quiet", no_argument, 0, 'q' },
- { 0, 0, 0, 0 }
+ // It would appear some environments insist on
+ // char* here (Sunstudio on Solaris), so we const_cast
+ // them to get rid of compiler warnings.
+ const struct option long_options[] = {
+ { const_cast<char*>("certfile"), required_argument, NULL, 'c' },
+ { const_cast<char*>("force"), no_argument, NULL, 'f' },
+ { const_cast<char*>("help"), no_argument, NULL, 'h' },
+ { const_cast<char*>("keyfile"), required_argument, NULL, 'k' },
+ { const_cast<char*>("write"), no_argument, NULL, 'w' },
+ { const_cast<char*>("quiet"), no_argument, NULL, 'q' },
+ { NULL, 0, NULL, 0 }
};
int opt, option_index;