public ProgramOptions()
{
Usage = CertificatesAuthority.Usage.Server;
MachineStore = false;
Help = false;
// Definition of the command-line arguments and how to set the related configuration data
options_ = new OptionSet()
{
{ "a|authority=", "Name of the certificate authority (CA)", (string o) => AuthorityName = o },
{ "n|name=", "Name of the certificate (can also be a Distinguished Name)", (string o) => CertificateName = o },
{ "u|usage=", "Usage of the certificate (Server, Client, Code, Authority)", (CertificatesAuthority.Usage o) => Usage = o },
{ "m|machine", "Store certificates in the machine store", o => MachineStore = o != null },
{ "s|sign=", "Sign a PKCS#10 request and generate the certificate", (string o) => Pkcs10File = o },
{ "h|?|help", "Show this message", o => Help = o != null }
};
}