NBSVTOOL(1) BSD General Commands Manual NBSVTOOL(1)NAME
nbsvtool -- create and verify detached signatures of files
SYNOPSIS
nbsvtool [-v] [-a anchor-certificates] [-c certificate-chain] [-f certificate-file] [-k private-key-file] [-u required-key-usage] command
args ...
DESCRIPTION
nbsvtool is used to create and verify detached X509 signatures of files. Private keys and certificates are expected to be PEM encoded, sig-
natures are in PEM/SMIME format.
Supported commands:
sign file Sign file, placing the signature in file.sp7. The options -f and -k are required for this command.
verify file [signature] Verify signature for file. If signature is not specified, file.sp7 is used.
verify-code file [signature] This is a short cut for verify with the option -u code.
Supported options:
-a anchor-certificates A file containing one or more (concatenated) keys that are considered trusted.
-c certificate-chain A file containing additional certificates that will be added to the signature when creating one. They will be
used to fill missing links in the trust chain when verifying the signature.
-f certificate-file A file containing the certificate to use for signing. The certificate must match the key given by -k.
-k private-key-file A file containing the private key to use for signing.
-u required-key-usage Verify that the extended key-usage attribute in the signing certificate matches required-key-usage. Otherwise,
the signature is rejected. key usage can be one of: ``ssl-server'', ``ssl-client'', ``code'', or ``smime''.
-v Print verbose information about the signing certificate.
EXIT STATUS
The nbsvtool utility exits 0 on success, and >0 if an error occurs.
EXAMPLES
Create signature file hello.sp7 for file hello. The private key is found in file key, the matching certificate is in cert, additional cer-
tificates from cert-chain are included in the created signature.
nbsvtool -k key -f cert -c cert-chain sign hello hello.sp7
Verify that the signature hello.sp7 is valid for file hello and that the signing certificate allows code signing. Certificates in
anchor-file are considered trusted, and there must be a certificate chain from one of those certificates to the signing certificate.
nbsvtool -a anchor-file verify-code hello hello.sp7
SEE ALSO openssl_smime(1)CAVEATS
As there is currently no default trust anchor, you must explicilty specify one with -a, otherwise no verification can succeed.
BSD March 11, 2009 BSD
Check Out this Related Man Page
lprng_certs(1) lprng_certs command lprng_certs(1)NAME
lprng_certs - lprng SSL certificate management
SYNOPSIS
lprng_certs option
Options:
init - make directory structure
newca - make new root CA
defaults - set new default values for certs
gen - generate user, server, or signing cert
index [dir] - index cert files
verify [cert] - verify cert file
encrypt keyfile
- set or change keyfile password
DESCRIPTION
The lprng_certs program is used to manage SSL certificates for the LPRng software. There SSL certificate structure consists of a hierarchy
of certificates. The LPRng software assumes that the following types of certificates will be used:
CA or root
A top level or self-signed certificate.
signing
A certificate that can be used to sign other certificates. This is signed by the root CA or another signing certificate.
user A certificate used by a user to identify themselves to the lpd server.
server A certificate used by the lpd server to identify themselves to the user or other lpd servers.
Signing Certificates
All of the signing certificates, including the root certificate (root CA), /etc/lprng/ssl.ca/ca.crt, are in the same directory as the root
CA file. Alternately, all of the signing certs can be concatenated and put into a single file, which by convention is assumed to have the
same name as the root CA file, /etc/lprng/ssl.ca/ca.crt. The ssl_ca_file, ssl_ca_path, and ssl_ca_key printcap and configuration options
can be used to specify the locations of the root CA files, a directory containing the signing certificate files, and the private key file
for the root CA file respectively.
The root certificate (root CA file) /etc/lprng/ssl.ca/ca.crt has a private key file /etc/lprng/ssl.ca/ca.key as well. By convention, the
private keys for the other signing certificate files are stored in the certificate file.
The OpenSSL software requires that this directory also contain a set of hash files which are, in effect, links to these files.
By default, all signing certificates are assumed to be in the same directory as the root certificate.
Server Certificates
The certificate used by the lpd server are kept in another directory. These files do not need to have hash links to them. By convention,
the private keys for these certificate files are stored in the certificate file. The server certificate file is specified by the
ssl_server_cert and has the default value /etc/lprng/ssl.server/server.crt. This file contains the cert and private key. The server cer-
tificate password file is specified by the ssl_server_password option with the default value
and contains the password used to decrypt the servers private key and use it for authentication. This key file should be read only by the
lpd server.
User Certificates
The certificates used by users are kept in a separate directory in the users home directory. By convention, the private keys for these
certificate files are stored in the certificate file.
The user certificate file is specified by the LPR_SSL_FILE environment variable, otherwise the ${HOME}/.lpr/client.crt is used. The pass-
word is taken from the file specified by the LPR_SSL_PASSWORD environment variable, otherwise the ${HOME}/.lpr/client.pwd file is read.
USING LPRNG_CERTS
The organization of the SSL certificates used by LPRng is similar to that used by other programs such as the Apache mod_ssl support. The
lprng_certs program is used to create the directory structure, create certificates for the root CA, signing, user and servers. In order to
make management simple, the following support is provided.
lprng_certs init
This command creates the directories used by the lpd server. It is useful when setting up a new lpd server.
lprng_certs newca
This command creates a self-signed certificate, suitable for use as a root CA certificate. It also sets up a set of default values for
other certificate creation.
lprng_certs defaults
This command is used to modify the set of default values.
The default values are listed and should be self-explanatory, except for the value of the signer certificate. By default, the root CA can
be used to sign certificates. However, a signing certificate can be used as well. This allows delegation of signing authority without
compromising the security of the root CA.
lprng_certs gen
This is used to generate a user, server, or signing certificate.
lprng_certs index
This is used to create the indexes for the signing certificates.
lprng_certs verify [cert]
This checks the certificate file using the Openssl openssl verify command.
lprng_certs encrypt keyfile
This removes all key information from the key file, reencrypts the key information, and the puts the encrypted key information in the file.
LPRng OPTIONS
Option Purpose
ssl_ca_path directory holding the SSL signing certs
ssl_ca_file file holding the root CA or all SSL signing certs
ssl_server_cert cert file for the server
ssl_server_password file containing password for server server
${HOME}/.lpr/client.crt client certificate file
${HOME}/.lpr/client.pwd client certificate private key password
ENVIRONMENT VARIABLES
LPR_SSL_FILE client certificate file
LPR_SSL_PASSWORD client certificate private key password
EXIT STATUS
The following exit values are returned:
zero (0) Successful completion.
non-zero (!=0) An error occurred.
SEE ALSO lpd.conf(5), lpc(8), lpd(8), checkpc(8), lpr(1), lpq(1), lprm(1), printcap(5), lpd.conf(5), pr(1), lprng_certs(1), lprng_index_certs(1).
AUTHOR
Patrick Powell <papowell@lprng.com>.
HISTORY
LPRng is a enhanced printer spooler system with functionality similar to the Berkeley LPR software. The LPRng developer mailing list is
lprng-devel@lists.sourceforge.net; subscribe by visiting https://lists.sourceforge.net/lists/listinfo/lprng-devel or sending mail to lprng-
request@lists.sourceforge.net with the word subscribe in the body.
The software is available via http://lprng.sourceforge.net
LPRng 2006-12-09 lprng_certs(1)