OpenSSL 1.1.1-pre2
This commit is contained in:
@@ -90,7 +90,7 @@ Your key most definitely is if you have followed the examples above.
|
||||
However, some (most?) certificate authorities will encode them with
|
||||
things like PKCS7 or PKCS12, or something else. Depending on your
|
||||
applications, this may be perfectly OK, it all depends on what they
|
||||
know how to decode. If not, There are a number of OpenSSL tools to
|
||||
know how to decode. If not, there are a number of OpenSSL tools to
|
||||
convert between some (most?) formats.
|
||||
|
||||
So, depending on your application, you may have to convert your
|
||||
|
||||
@@ -18,7 +18,7 @@ rights to some other entity (a computer process, typically, or sometimes to the
|
||||
user itself). This allows the entity to perform operations on behalf of the
|
||||
owner of the EE certificate.
|
||||
|
||||
See http://www.ietf.org/rfc/rfc3820.txt for more information.
|
||||
See https://www.ietf.org/rfc/rfc3820.txt for more information.
|
||||
|
||||
|
||||
2. A warning about proxy certificates
|
||||
|
||||
+12
-5
@@ -9,12 +9,19 @@ standards.txt
|
||||
|
||||
HOWTO/
|
||||
A few how-to documents; not necessarily up-to-date
|
||||
apps/
|
||||
|
||||
man1/
|
||||
The openssl command-line tools; start with openssl.pod
|
||||
ssl/
|
||||
The SSL library; start with ssl.pod
|
||||
crypto/
|
||||
The cryptographic library; start with crypto.pod
|
||||
|
||||
man3/
|
||||
The SSL library and the crypto library
|
||||
|
||||
man5/
|
||||
File formats
|
||||
|
||||
man7/
|
||||
Overviews; start with crypto.pod and ssl.pod, for example
|
||||
Algorithm specific EVP_PKEY documentation.
|
||||
|
||||
Formatted versions of the manpages (apps,ssl,crypto) can be found at
|
||||
https://www.openssl.org/docs/manpages.html
|
||||
@@ -1,138 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
ASN1_TIME_set, ASN1_TIME_adj, ASN1_TIME_check, ASN1_TIME_set_string,
|
||||
ASN1_TIME_print, ASN1_TIME_diff - ASN.1 Time functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t);
|
||||
ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t,
|
||||
int offset_day, long offset_sec);
|
||||
int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
|
||||
int ASN1_TIME_check(const ASN1_TIME *t);
|
||||
int ASN1_TIME_print(BIO *b, const ASN1_TIME *s);
|
||||
|
||||
int ASN1_TIME_diff(int *pday, int *psec,
|
||||
const ASN1_TIME *from, const ASN1_TIME *to);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The function ASN1_TIME_set() sets the ASN1_TIME structure B<s> to the
|
||||
time represented by the time_t value B<t>. If B<s> is NULL a new ASN1_TIME
|
||||
structure is allocated and returned.
|
||||
|
||||
ASN1_TIME_adj() sets the ASN1_TIME structure B<s> to the time represented
|
||||
by the time B<offset_day> and B<offset_sec> after the time_t value B<t>.
|
||||
The values of B<offset_day> or B<offset_sec> can be negative to set a
|
||||
time before B<t>. The B<offset_sec> value can also exceed the number of
|
||||
seconds in a day. If B<s> is NULL a new ASN1_TIME structure is allocated
|
||||
and returned.
|
||||
|
||||
ASN1_TIME_set_string() sets ASN1_TIME structure B<s> to the time
|
||||
represented by string B<str> which must be in appropriate ASN.1 time
|
||||
format (for example YYMMDDHHMMSSZ or YYYYMMDDHHMMSSZ).
|
||||
|
||||
ASN1_TIME_check() checks the syntax of ASN1_TIME structure B<s>.
|
||||
|
||||
ASN1_TIME_print() prints out the time B<s> to BIO B<b> in human readable
|
||||
format. It will be of the format MMM DD HH:MM:SS YYYY [GMT], for example
|
||||
"Feb 3 00:55:52 2015 GMT" it does not include a newline. If the time
|
||||
structure has invalid format it prints out "Bad time value" and returns
|
||||
an error.
|
||||
|
||||
ASN1_TIME_diff() sets B<*pday> and B<*psec> to the time difference between
|
||||
B<from> and B<to>. If B<to> represents a time later than B<from> then
|
||||
one or both (depending on the time difference) of B<*pday> and B<*psec>
|
||||
will be positive. If B<to> represents a time earlier than B<from> then
|
||||
one or both of B<*pday> and B<*psec> will be negative. If B<to> and B<from>
|
||||
represent the same time then B<*pday> and B<*psec> will both be zero.
|
||||
If both B<*pday> and B<*psec> are non-zero they will always have the same
|
||||
sign. The value of B<*psec> will always be less than the number of seconds
|
||||
in a day. If B<from> or B<to> is NULL the current time is used.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The ASN1_TIME structure corresponds to the ASN.1 structure B<Time>
|
||||
defined in RFC5280 et al. The time setting functions obey the rules outlined
|
||||
in RFC5280: if the date can be represented by UTCTime it is used, else
|
||||
GeneralizedTime is used.
|
||||
|
||||
The ASN1_TIME structure is represented as an ASN1_STRING internally and can
|
||||
be freed up using ASN1_STRING_free().
|
||||
|
||||
The ASN1_TIME structure can represent years from 0000 to 9999 but no attempt
|
||||
is made to correct ancient calendar changes (for example from Julian to
|
||||
Gregorian calendars).
|
||||
|
||||
Some applications add offset times directly to a time_t value and pass the
|
||||
results to ASN1_TIME_set() (or equivalent). This can cause problems as the
|
||||
time_t value can overflow on some systems resulting in unexpected results.
|
||||
New applications should use ASN1_TIME_adj() instead and pass the offset value
|
||||
in the B<offset_sec> and B<offset_day> parameters instead of directly
|
||||
manipulating a time_t value.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
ASN1_TIME_print() currently does not print out the time zone: it either prints
|
||||
out "GMT" or nothing. But all certificates complying with RFC5280 et al use GMT
|
||||
anyway.
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
Set a time structure to one hour after the current time and print it out:
|
||||
|
||||
#include <time.h>
|
||||
#include <openssl/asn1.h>
|
||||
ASN1_TIME *tm;
|
||||
time_t t;
|
||||
BIO *b;
|
||||
t = time(NULL);
|
||||
tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60);
|
||||
b = BIO_new_fp(stdout, BIO_NOCLOSE);
|
||||
ASN1_TIME_print(b, tm);
|
||||
ASN1_STRING_free(tm);
|
||||
BIO_free(b);
|
||||
|
||||
Determine if one time is later or sooner than the current time:
|
||||
|
||||
int day, sec;
|
||||
|
||||
if (!ASN1_TIME_diff(&day, &sec, NULL, to))
|
||||
/* Invalid time format */
|
||||
|
||||
if (day > 0 || sec > 0)
|
||||
printf("Later\n");
|
||||
else if (day < 0 || sec < 0)
|
||||
printf("Sooner\n");
|
||||
else
|
||||
printf("Same\n");
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ASN1_TIME_set() and ASN1_TIME_adj() return a pointer to an ASN1_TIME structure
|
||||
or NULL if an error occurred.
|
||||
|
||||
ASN1_TIME_set_string() returns 1 if the time value is successfully set and
|
||||
0 otherwise.
|
||||
|
||||
ASN1_TIME_check() returns 1 if the structure is syntactically correct and 0
|
||||
otherwise.
|
||||
|
||||
ASN1_TIME_print() returns 1 if the time is successfully printed out and 0 if
|
||||
an error occurred (I/O error or invalid time format).
|
||||
|
||||
ASN1_TIME_diff() returns 1 for success and 0 for failure. It can fail if the
|
||||
pass ASN1_TIME structure has invalid syntax for example.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,53 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
ERR_remove_thread_state, ERR_remove_state - DEPRECATED
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
Deprecated:
|
||||
|
||||
#if OPENSSL_API_COMPAT < 0x10000000L
|
||||
void ERR_remove_state(unsigned long pid);
|
||||
#endif
|
||||
|
||||
#if OPENSSL_API_COMPAT < 0x10100000L
|
||||
void ERR_remove_thread_state(void *);
|
||||
#endif
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The functions described here were used to free the error queue
|
||||
associated with the current or specified thread.
|
||||
|
||||
They are now deprecated and do nothing, as the OpenSSL libraries now
|
||||
normally do all thread initialisation and deinitialisation
|
||||
automatically (see L<OPENSSL_init_crypto(3)>).
|
||||
|
||||
=head1 RETURN VALUE
|
||||
|
||||
The functions described here return no value.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
LL<OPENSSL_init_crypto(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
ERR_remove_state() was deprecated in OpenSSL 1.0.0 when
|
||||
ERR_remove_thread_state() was introduced.
|
||||
|
||||
ERR_remove_thread_state() was deprecated in OpenSSL 1.1.0 when the
|
||||
thread handling functionality was entirely rewritten.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,259 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
EVP_MD_CTX_new, EVP_MD_CTX_reset, EVP_MD_CTX_free, EVP_MD_CTX_copy_ex,
|
||||
EVP_DigestInit_ex, EVP_DigestUpdate, EVP_DigestFinal_ex,
|
||||
EVP_DigestInit, EVP_DigestFinal, EVP_MD_CTX_copy, EVP_MD_type,
|
||||
EVP_MD_pkey_type, EVP_MD_size, EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size,
|
||||
EVP_MD_CTX_block_size, EVP_MD_CTX_type, EVP_md_null, EVP_md2, EVP_md5, EVP_sha1,
|
||||
EVP_sha224, EVP_sha256, EVP_sha384, EVP_sha512, EVP_mdc2,
|
||||
EVP_ripemd160, EVP_blake2b512, EVP_blake2s256, EVP_get_digestbyname,
|
||||
EVP_get_digestbynid, EVP_get_digestbyobj - EVP digest routines
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/evp.h>
|
||||
|
||||
EVP_MD_CTX *EVP_MD_CTX_new(void);
|
||||
int EVP_MD_CTX_reset(EVP_MD_CTX *ctx);
|
||||
void EVP_MD_CTX_free(EVP_MD_CTX *ctx);
|
||||
|
||||
int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl);
|
||||
int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, size_t cnt);
|
||||
int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md,
|
||||
unsigned int *s);
|
||||
|
||||
int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in);
|
||||
|
||||
int EVP_DigestInit(EVP_MD_CTX *ctx, const EVP_MD *type);
|
||||
int EVP_DigestFinal(EVP_MD_CTX *ctx, unsigned char *md,
|
||||
unsigned int *s);
|
||||
|
||||
int EVP_MD_CTX_copy(EVP_MD_CTX *out, EVP_MD_CTX *in);
|
||||
|
||||
int EVP_MD_type(const EVP_MD *md);
|
||||
int EVP_MD_pkey_type(const EVP_MD *md);
|
||||
int EVP_MD_size(const EVP_MD *md);
|
||||
int EVP_MD_block_size(const EVP_MD *md);
|
||||
|
||||
const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx);
|
||||
int EVP_MD_CTX_size(const EVP_MD *ctx);
|
||||
int EVP_MD_CTX_block_size(const EVP_MD *ctx);
|
||||
int EVP_MD_CTX_type(const EVP_MD *ctx);
|
||||
|
||||
const EVP_MD *EVP_md_null(void);
|
||||
const EVP_MD *EVP_md2(void);
|
||||
const EVP_MD *EVP_md5(void);
|
||||
const EVP_MD *EVP_sha1(void);
|
||||
const EVP_MD *EVP_mdc2(void);
|
||||
const EVP_MD *EVP_ripemd160(void);
|
||||
const EVP_MD *EVP_blake2b512(void);
|
||||
const EVP_MD *EVP_blake2s256(void);
|
||||
|
||||
const EVP_MD *EVP_sha224(void);
|
||||
const EVP_MD *EVP_sha256(void);
|
||||
const EVP_MD *EVP_sha384(void);
|
||||
const EVP_MD *EVP_sha512(void);
|
||||
|
||||
const EVP_MD *EVP_get_digestbyname(const char *name);
|
||||
const EVP_MD *EVP_get_digestbynid(int type);
|
||||
const EVP_MD *EVP_get_digestbyobj(const ASN1_OBJECT *o);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The EVP digest routines are a high level interface to message digests,
|
||||
and should be used instead of the cipher-specific functions.
|
||||
|
||||
EVP_MD_CTX_new() allocates, initializes and returns a digest context.
|
||||
|
||||
EVP_MD_CTX_reset() resets the digest context B<ctx>. This can be used
|
||||
to reuse an already existing context.
|
||||
|
||||
EVP_MD_CTX_free() cleans up digest context B<ctx> and frees up the
|
||||
space allocated to it.
|
||||
|
||||
EVP_DigestInit_ex() sets up digest context B<ctx> to use a digest
|
||||
B<type> from ENGINE B<impl>. B<ctx> must be initialized before calling this
|
||||
function. B<type> will typically be supplied by a function such as EVP_sha1().
|
||||
If B<impl> is NULL then the default implementation of digest B<type> is used.
|
||||
|
||||
EVP_DigestUpdate() hashes B<cnt> bytes of data at B<d> into the
|
||||
digest context B<ctx>. This function can be called several times on the
|
||||
same B<ctx> to hash additional data.
|
||||
|
||||
EVP_DigestFinal_ex() retrieves the digest value from B<ctx> and places
|
||||
it in B<md>. If the B<s> parameter is not NULL then the number of
|
||||
bytes of data written (i.e. the length of the digest) will be written
|
||||
to the integer at B<s>, at most B<EVP_MAX_MD_SIZE> bytes will be written.
|
||||
After calling EVP_DigestFinal_ex() no additional calls to EVP_DigestUpdate()
|
||||
can be made, but EVP_DigestInit_ex() can be called to initialize a new
|
||||
digest operation.
|
||||
|
||||
EVP_MD_CTX_copy_ex() can be used to copy the message digest state from
|
||||
B<in> to B<out>. This is useful if large amounts of data are to be
|
||||
hashed which only differ in the last few bytes. B<out> must be initialized
|
||||
before calling this function.
|
||||
|
||||
EVP_DigestInit() behaves in the same way as EVP_DigestInit_ex() except
|
||||
the passed context B<ctx> does not have to be initialized, and it always
|
||||
uses the default digest implementation.
|
||||
|
||||
EVP_DigestFinal() is similar to EVP_DigestFinal_ex() except the digest
|
||||
context B<ctx> is automatically cleaned up.
|
||||
|
||||
EVP_MD_CTX_copy() is similar to EVP_MD_CTX_copy_ex() except the destination
|
||||
B<out> does not have to be initialized.
|
||||
|
||||
EVP_MD_size() and EVP_MD_CTX_size() return the size of the message digest
|
||||
when passed an B<EVP_MD> or an B<EVP_MD_CTX> structure, i.e. the size of the
|
||||
hash.
|
||||
|
||||
EVP_MD_block_size() and EVP_MD_CTX_block_size() return the block size of the
|
||||
message digest when passed an B<EVP_MD> or an B<EVP_MD_CTX> structure.
|
||||
|
||||
EVP_MD_type() and EVP_MD_CTX_type() return the NID of the OBJECT IDENTIFIER
|
||||
representing the given message digest when passed an B<EVP_MD> structure.
|
||||
For example EVP_MD_type(EVP_sha1()) returns B<NID_sha1>. This function is
|
||||
normally used when setting ASN1 OIDs.
|
||||
|
||||
EVP_MD_CTX_md() returns the B<EVP_MD> structure corresponding to the passed
|
||||
B<EVP_MD_CTX>.
|
||||
|
||||
EVP_MD_pkey_type() returns the NID of the public key signing algorithm associated
|
||||
with this digest. For example EVP_sha1() is associated with RSA so this will
|
||||
return B<NID_sha1WithRSAEncryption>. Since digests and signature algorithms
|
||||
are no longer linked this function is only retained for compatibility
|
||||
reasons.
|
||||
|
||||
EVP_md2(), EVP_md5(), EVP_sha1(), EVP_sha224(), EVP_sha256(),
|
||||
EVP_sha384(), EVP_sha512(), EVP_mdc2(), EVP_ripemd160(), EVP_blake2b512(), and
|
||||
EVP_blake2s256() return B<EVP_MD> structures for the MD2, MD5, SHA1, SHA224,
|
||||
SHA256, SHA384, SHA512, MDC2, RIPEMD160, BLAKE2b-512, and BLAKE2s-256 digest
|
||||
algorithms respectively.
|
||||
|
||||
EVP_md_null() is a "null" message digest that does nothing: i.e. the hash it
|
||||
returns is of zero length.
|
||||
|
||||
EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj()
|
||||
return an B<EVP_MD> structure when passed a digest name, a digest NID or
|
||||
an ASN1_OBJECT structure respectively.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
EVP_DigestInit_ex(), EVP_DigestUpdate() and EVP_DigestFinal_ex() return 1 for
|
||||
success and 0 for failure.
|
||||
|
||||
EVP_MD_CTX_copy_ex() returns 1 if successful or 0 for failure.
|
||||
|
||||
EVP_MD_type(), EVP_MD_pkey_type() and EVP_MD_type() return the NID of the
|
||||
corresponding OBJECT IDENTIFIER or NID_undef if none exists.
|
||||
|
||||
EVP_MD_size(), EVP_MD_block_size(), EVP_MD_CTX_size() and
|
||||
EVP_MD_CTX_block_size() return the digest or block size in bytes.
|
||||
|
||||
EVP_md_null(), EVP_md2(), EVP_md5(), EVP_sha1(),
|
||||
EVP_mdc2(), EVP_ripemd160(), EVP_blake2b512(), and EVP_blake2s256() return
|
||||
pointers to the corresponding EVP_MD structures.
|
||||
|
||||
EVP_get_digestbyname(), EVP_get_digestbynid() and EVP_get_digestbyobj()
|
||||
return either an B<EVP_MD> structure or NULL if an error occurs.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The B<EVP> interface to message digests should almost always be used in
|
||||
preference to the low level interfaces. This is because the code then becomes
|
||||
transparent to the digest used and much more flexible.
|
||||
|
||||
New applications should use the SHA2 digest algorithms such as SHA256.
|
||||
The other digest algorithms are still in common use.
|
||||
|
||||
For most applications the B<impl> parameter to EVP_DigestInit_ex() will be
|
||||
set to NULL to use the default digest implementation.
|
||||
|
||||
The functions EVP_DigestInit(), EVP_DigestFinal() and EVP_MD_CTX_copy() are
|
||||
obsolete but are retained to maintain compatibility with existing code. New
|
||||
applications should use EVP_DigestInit_ex(), EVP_DigestFinal_ex() and
|
||||
EVP_MD_CTX_copy_ex() because they can efficiently reuse a digest context
|
||||
instead of initializing and cleaning it up on each call and allow non default
|
||||
implementations of digests to be specified.
|
||||
|
||||
If digest contexts are not cleaned up after use
|
||||
memory leaks will occur.
|
||||
|
||||
EVP_MD_CTX_size(), EVP_MD_CTX_block_size(), EVP_MD_CTX_type(),
|
||||
EVP_get_digestbynid() and EVP_get_digestbyobj() are defined as
|
||||
macros.
|
||||
|
||||
|
||||
=head1 EXAMPLE
|
||||
|
||||
This example digests the data "Test Message\n" and "Hello World\n", using the
|
||||
digest name passed on the command line.
|
||||
|
||||
#include <stdio.h>
|
||||
#include <openssl/evp.h>
|
||||
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
EVP_MD_CTX *mdctx;
|
||||
const EVP_MD *md;
|
||||
char mess1[] = "Test Message\n";
|
||||
char mess2[] = "Hello World\n";
|
||||
unsigned char md_value[EVP_MAX_MD_SIZE];
|
||||
int md_len, i;
|
||||
|
||||
if(!argv[1]) {
|
||||
printf("Usage: mdtest digestname\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
md = EVP_get_digestbyname(argv[1]);
|
||||
|
||||
if(!md) {
|
||||
printf("Unknown message digest %s\n", argv[1]);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
mdctx = EVP_MD_CTX_new();
|
||||
EVP_DigestInit_ex(mdctx, md, NULL);
|
||||
EVP_DigestUpdate(mdctx, mess1, strlen(mess1));
|
||||
EVP_DigestUpdate(mdctx, mess2, strlen(mess2));
|
||||
EVP_DigestFinal_ex(mdctx, md_value, &md_len);
|
||||
EVP_MD_CTX_free(mdctx);
|
||||
|
||||
printf("Digest is: ");
|
||||
for (i = 0; i < md_len; i++)
|
||||
printf("%02x", md_value[i]);
|
||||
printf("\n");
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<dgst(1)>,
|
||||
L<evp(7)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
B<EVP_MD_CTX> became opaque in OpenSSL 1.1. Consequently, stack
|
||||
allocated B<EVP_MD_CTX>s are no longer supported.
|
||||
|
||||
EVP_MD_CTX_create() and EVP_MD_CTX_destroy() were renamed to
|
||||
EVP_MD_CTX_new() and EVP_MD_CTX_free() in OpenSSL 1.1.
|
||||
|
||||
The link between digests and signing algorithms was fixed in OpenSSL 1.0 and
|
||||
later, so now EVP_sha1() can be used with RSA and DSA. The legacy EVP_dss1()
|
||||
was removed in OpenSSL 1.1.0
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,79 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
RAND_add, RAND_seed, RAND_status, RAND_event, RAND_screen - add
|
||||
entropy to the PRNG
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/rand.h>
|
||||
|
||||
void RAND_seed(const void *buf, int num);
|
||||
|
||||
void RAND_add(const void *buf, int num, double entropy);
|
||||
|
||||
int RAND_status(void);
|
||||
|
||||
#if OPENSSL_API_COMPAT < 0x10100000L
|
||||
int RAND_event(UINT iMsg, WPARAM wParam, LPARAM lParam);
|
||||
void RAND_screen(void);
|
||||
#endif
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
RAND_add() mixes the B<num> bytes at B<buf> into the PRNG state. Thus,
|
||||
if the data at B<buf> are unpredictable to an adversary, this
|
||||
increases the uncertainty about the state and makes the PRNG output
|
||||
less predictable. Suitable input comes from user interaction (random
|
||||
key presses, mouse movements) and certain hardware events. The
|
||||
B<entropy> argument is (the lower bound of) an estimate of how much
|
||||
randomness is contained in B<buf>, measured in bytes. Details about
|
||||
sources of randomness and how to estimate their entropy can be found
|
||||
in the literature, e.g. RFC 1750.
|
||||
|
||||
RAND_add() may be called with sensitive data such as user entered
|
||||
passwords. The seed values cannot be recovered from the PRNG output.
|
||||
|
||||
OpenSSL makes sure that the PRNG state is unique for each thread. On
|
||||
systems that provide C</dev/urandom>, the randomness device is used
|
||||
to seed the PRNG transparently. However, on all other systems, the
|
||||
application is responsible for seeding the PRNG by calling RAND_add(),
|
||||
L<RAND_egd(3)>
|
||||
or L<RAND_load_file(3)>.
|
||||
|
||||
RAND_seed() is equivalent to RAND_add() when B<num == entropy>.
|
||||
|
||||
RAND_event() and RAND_screen() are deprecated and should not be called.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
RAND_status() returns 1 if the PRNG has been seeded
|
||||
with enough data, 0 otherwise.
|
||||
|
||||
RAND_event() calls RAND_poll() and returns RAND_status().
|
||||
|
||||
RAND_screen calls RAND_poll().
|
||||
|
||||
The other functions do not return values.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
RAND_event() and RAND_screen() are deprecated since OpenSSL
|
||||
1.1.0. Use the functions described above instead.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<rand(3)>, L<RAND_egd(3)>,
|
||||
L<RAND_load_file(3)>, L<RAND_cleanup(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,58 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
RAND_bytes, RAND_pseudo_bytes - generate random data
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/rand.h>
|
||||
|
||||
int RAND_bytes(unsigned char *buf, int num);
|
||||
|
||||
Deprecated:
|
||||
|
||||
#if OPENSSL_API_COMPAT < 0x10100000L
|
||||
int RAND_pseudo_bytes(unsigned char *buf, int num);
|
||||
#endif
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
RAND_bytes() puts B<num> cryptographically strong pseudo-random bytes
|
||||
into B<buf>. An error occurs if the PRNG has not been seeded with
|
||||
enough randomness to ensure an unpredictable byte sequence.
|
||||
|
||||
RAND_pseudo_bytes() has been deprecated. Users should use RAND_bytes() instead.
|
||||
RAND_pseudo_bytes() puts B<num> pseudo-random bytes into B<buf>.
|
||||
Pseudo-random byte sequences generated by RAND_pseudo_bytes() will be
|
||||
unique if they are of sufficient length, but are not necessarily
|
||||
unpredictable. They can be used for non-cryptographic purposes and for
|
||||
certain purposes in cryptographic protocols, but usually not for key
|
||||
generation etc.
|
||||
|
||||
The contents of B<buf> is mixed into the entropy pool before retrieving
|
||||
the new pseudo-random bytes unless disabled at compile time (see FAQ).
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
RAND_bytes() returns 1 on success, 0 otherwise. The error code can be
|
||||
obtained by L<ERR_get_error(3)>. RAND_pseudo_bytes() returns 1 if the
|
||||
bytes generated are cryptographically strong, 0 otherwise. Both
|
||||
functions return -1 if they are not supported by the current RAND
|
||||
method.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<rand(3)>, L<ERR_get_error(3)>,
|
||||
L<RAND_add(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,87 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
RAND_egd, RAND_egd_bytes, RAND_query_egd_bytes - query entropy gathering daemon
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/rand.h>
|
||||
|
||||
int RAND_egd(const char *path);
|
||||
int RAND_egd_bytes(const char *path, int bytes);
|
||||
|
||||
int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
RAND_egd() queries the entropy gathering daemon EGD on socket B<path>.
|
||||
It queries 255 bytes and uses L<RAND_add(3)> to seed the
|
||||
OpenSSL built-in PRNG. RAND_egd(path) is a wrapper for
|
||||
RAND_egd_bytes(path, 255);
|
||||
|
||||
RAND_egd_bytes() queries the entropy gathering daemon EGD on socket B<path>.
|
||||
It queries B<bytes> bytes and uses L<RAND_add(3)> to seed the
|
||||
OpenSSL built-in PRNG.
|
||||
This function is more flexible than RAND_egd().
|
||||
When only one secret key must
|
||||
be generated, it is not necessary to request the full amount 255 bytes from
|
||||
the EGD socket. This can be advantageous, since the amount of entropy
|
||||
that can be retrieved from EGD over time is limited.
|
||||
|
||||
RAND_query_egd_bytes() performs the actual query of the EGD daemon on socket
|
||||
B<path>. If B<buf> is given, B<bytes> bytes are queried and written into
|
||||
B<buf>. If B<buf> is NULL, B<bytes> bytes are queried and used to seed the
|
||||
OpenSSL built-in PRNG using L<RAND_add(3)>.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
On systems without /dev/*random devices providing entropy from the kernel,
|
||||
the EGD entropy gathering daemon can be used to collect entropy. It provides
|
||||
a socket interface through which entropy can be gathered in chunks up to
|
||||
255 bytes. Several chunks can be queried during one connection.
|
||||
|
||||
EGD is available from http://www.lothar.com/tech/crypto/ (C<perl
|
||||
Makefile.PL; make; make install> to install). It is run as B<egd>
|
||||
I<path>, where I<path> is an absolute path designating a socket. When
|
||||
RAND_egd() is called with that path as an argument, it tries to read
|
||||
random bytes that EGD has collected. RAND_egd() retrieves entropy from the
|
||||
daemon using the daemon's "non-blocking read" command which shall
|
||||
be answered immediately by the daemon without waiting for additional
|
||||
entropy to be collected. The write and read socket operations in the
|
||||
communication are blocking.
|
||||
|
||||
Alternatively, the EGD-interface compatible daemon PRNGD can be used. It is
|
||||
available from
|
||||
http://prngd.sourceforge.net/ .
|
||||
PRNGD does employ an internal PRNG itself and can therefore never run
|
||||
out of entropy.
|
||||
|
||||
OpenSSL automatically queries EGD when entropy is requested via RAND_bytes()
|
||||
or the status is checked via RAND_status() for the first time, if the socket
|
||||
is located at /var/run/egd-pool, /dev/egd-pool or /etc/egd-pool.
|
||||
|
||||
=head1 RETURN VALUE
|
||||
|
||||
RAND_egd() and RAND_egd_bytes() return the number of bytes read from the
|
||||
daemon on success, and -1 if the connection failed or the daemon did not
|
||||
return enough data to fully seed the PRNG.
|
||||
|
||||
RAND_query_egd_bytes() returns the number of bytes read from the daemon on
|
||||
success, and -1 if the connection failed. The PRNG state is not considered.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<rand(3)>, L<RAND_add(3)>,
|
||||
L<RAND_cleanup(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,81 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
RAND_set_rand_method, RAND_get_rand_method, RAND_OpenSSL - select RAND method
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/rand.h>
|
||||
|
||||
void RAND_set_rand_method(const RAND_METHOD *meth);
|
||||
|
||||
const RAND_METHOD *RAND_get_rand_method(void);
|
||||
|
||||
RAND_METHOD *RAND_OpenSSL(void);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
A B<RAND_METHOD> specifies the functions that OpenSSL uses for random number
|
||||
generation. By modifying the method, alternative implementations such as
|
||||
hardware RNGs may be used. IMPORTANT: See the NOTES section for important
|
||||
information about how these RAND API functions are affected by the use of
|
||||
B<ENGINE> API calls.
|
||||
|
||||
Initially, the default RAND_METHOD is the OpenSSL internal implementation, as
|
||||
returned by RAND_OpenSSL().
|
||||
|
||||
RAND_set_default_method() makes B<meth> the method for PRNG use. B<NB>: This is
|
||||
true only whilst no ENGINE has been set as a default for RAND, so this function
|
||||
is no longer recommended.
|
||||
|
||||
RAND_get_default_method() returns a pointer to the current RAND_METHOD.
|
||||
However, the meaningfulness of this result is dependent on whether the ENGINE
|
||||
API is being used, so this function is no longer recommended.
|
||||
|
||||
=head1 THE RAND_METHOD STRUCTURE
|
||||
|
||||
typedef struct rand_meth_st
|
||||
{
|
||||
void (*seed)(const void *buf, int num);
|
||||
int (*bytes)(unsigned char *buf, int num);
|
||||
void (*cleanup)(void);
|
||||
void (*add)(const void *buf, int num, int entropy);
|
||||
int (*pseudorand)(unsigned char *buf, int num);
|
||||
int (*status)(void);
|
||||
} RAND_METHOD;
|
||||
|
||||
The components point to method implementations used by (or called by), in order,
|
||||
RAND_seed(), RAND_bytes(), internal RAND cleanup, RAND_add(), RAND_pseudo_rand()
|
||||
and RAND_status().
|
||||
Each component may be NULL if the function is not implemented.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
RAND_set_rand_method() returns no value. RAND_get_rand_method() and
|
||||
RAND_OpenSSL() return pointers to the respective methods.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
RAND_METHOD implementations are grouped together with other
|
||||
algorithmic APIs (eg. RSA_METHOD, EVP_CIPHER, etc) in B<ENGINE> modules. If a
|
||||
default ENGINE is specified for RAND functionality using an ENGINE API function,
|
||||
that will override any RAND defaults set using the RAND API (ie.
|
||||
RAND_set_rand_method()). For this reason, the ENGINE API is the recommended way
|
||||
to control default implementations for use in RAND and other cryptographic
|
||||
algorithms.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<rand(3)>, L<engine(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,88 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
RSA_generate_key_ex, RSA_generate_key - generate RSA key pair
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/rsa.h>
|
||||
|
||||
int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb);
|
||||
|
||||
Deprecated:
|
||||
|
||||
#if OPENSSL_API_COMPAT < 0x00908000L
|
||||
RSA *RSA_generate_key(int num, unsigned long e,
|
||||
void (*callback)(int, int, void *), void *cb_arg);
|
||||
#endif
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
RSA_generate_key_ex() generates a key pair and stores it in the B<RSA>
|
||||
structure provided in B<rsa>. The pseudo-random number generator must
|
||||
be seeded prior to calling RSA_generate_key_ex().
|
||||
|
||||
The modulus size will be of length B<bits>, and the public exponent will be
|
||||
B<e>. Key sizes with B<num> E<lt> 1024 should be considered insecure.
|
||||
The exponent is an odd number, typically 3, 17 or 65537.
|
||||
|
||||
A callback function may be used to provide feedback about the
|
||||
progress of the key generation. If B<cb> is not B<NULL>, it
|
||||
will be called as follows using the BN_GENCB_call() function
|
||||
described on the L<BN_generate_prime(3)> page.
|
||||
|
||||
=over 2
|
||||
|
||||
=item *
|
||||
|
||||
While a random prime number is generated, it is called as
|
||||
described in L<BN_generate_prime(3)>.
|
||||
|
||||
=item *
|
||||
|
||||
When the n-th randomly generated prime is rejected as not
|
||||
suitable for the key, B<BN_GENCB_call(cb, 2, n)> is called.
|
||||
|
||||
=item *
|
||||
|
||||
When a random p has been found with p-1 relatively prime to B<e>,
|
||||
it is called as B<BN_GENCB_call(cb, 3, 0)>.
|
||||
|
||||
=back
|
||||
|
||||
The process is then repeated for prime q with B<BN_GENCB_call(cb, 3, 1)>.
|
||||
|
||||
RSA_generate_key() is deprecated (new applications should use
|
||||
RSA_generate_key_ex() instead). RSA_generate_key() works in the same way as
|
||||
RSA_generate_key_ex() except it uses "old style" call backs. See
|
||||
L<BN_generate_prime(3)> for further details.
|
||||
|
||||
=head1 RETURN VALUE
|
||||
|
||||
RSA_generate_key_ex() returns 1 on success or 0 on error.
|
||||
RSA_generate_key() returns the key on success or B<NULL> on error.
|
||||
|
||||
The error codes can be obtained by L<ERR_get_error(3)>.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
B<BN_GENCB_call(cb, 2, x)> is used with two different meanings.
|
||||
|
||||
RSA_generate_key() goes into an infinite loop for illegal input values.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<ERR_get_error(3)>, L<RAND_bytes(3)>,
|
||||
L<RSA_generate_key(3)>, L<BN_generate_prime(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -1,38 +0,0 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
i2d_Netscape_RSA,
|
||||
d2i_Netscape_RSA
|
||||
- insecure RSA public and private key encoding functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/rsa.h>
|
||||
|
||||
int i2d_Netscape_RSA(RSA *a, unsigned char **pp, int (*cb)());
|
||||
RSA * d2i_Netscape_RSA(RSA **a, const unsigned char **pp, long length, int (*cb)());
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
These functions decode and encode an RSA private
|
||||
key in NET format. These functions are present to provide compatibility
|
||||
with very old software. This format has some severe security weaknesses
|
||||
and should be avoided if possible.
|
||||
|
||||
These functions are similar to the B<d2i_RSAPrivateKey> functions.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<d2i_RSAPrivateKey(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -42,28 +42,28 @@ by the use of some simple options.
|
||||
|
||||
=item B<?>, B<-h>, B<-help>
|
||||
|
||||
prints a usage message.
|
||||
Prints a usage message.
|
||||
|
||||
=item B<-newcert>
|
||||
|
||||
creates a new self signed certificate. The private key is written to the file
|
||||
Creates a new self signed certificate. The private key is written to the file
|
||||
"newkey.pem" and the request written to the file "newreq.pem".
|
||||
This argument invokes B<openssl req> command.
|
||||
|
||||
=item B<-newreq>
|
||||
|
||||
creates a new certificate request. The private key is written to the file
|
||||
Creates a new certificate request. The private key is written to the file
|
||||
"newkey.pem" and the request written to the file "newreq.pem".
|
||||
Executes B<openssl req> command below the hood.
|
||||
|
||||
=item B<-newreq-nodes>
|
||||
|
||||
is like B<-newreq> except that the private key will not be encrypted.
|
||||
Is like B<-newreq> except that the private key will not be encrypted.
|
||||
Uses B<openssl req> command.
|
||||
|
||||
=item B<-newca>
|
||||
|
||||
creates a new CA hierarchy for use with the B<ca> program (or the B<-signcert>
|
||||
Creates a new CA hierarchy for use with the B<ca> program (or the B<-signcert>
|
||||
and B<-xsign> options). The user is prompted to enter the filename of the CA
|
||||
certificates (which should also contain the private key) or by hitting ENTER
|
||||
details of the CA will be prompted for. The relevant files and directories
|
||||
@@ -72,7 +72,7 @@ B<openssl req> and B<openssl ca> commands are get invoked.
|
||||
|
||||
=item B<-pkcs12>
|
||||
|
||||
create a PKCS#12 file containing the user certificate, private key and CA
|
||||
Create a PKCS#12 file containing the user certificate, private key and CA
|
||||
certificate. It expects the user certificate and private key to be in the
|
||||
file "newcert.pem" and the CA certificate to be in the file demoCA/cacert.pem,
|
||||
it creates a file "newcert.p12". This command can thus be called after the
|
||||
@@ -84,31 +84,31 @@ Delegates work to B<openssl pkcs12> command.
|
||||
|
||||
=item B<-sign>, B<-signcert>, B<-xsign>
|
||||
|
||||
calls the B<ca> program to sign a certificate request. It expects the request
|
||||
Calls the B<ca> program to sign a certificate request. It expects the request
|
||||
to be in the file "newreq.pem". The new certificate is written to the file
|
||||
"newcert.pem" except in the case of the B<-xsign> option when it is written
|
||||
to standard output. Leverages B<openssl ca> command.
|
||||
|
||||
=item B<-signCA>
|
||||
|
||||
this option is the same as the B<-signreq> option except it uses the configuration
|
||||
file section B<v3_ca> and so makes the signed request a valid CA certificate. This
|
||||
is useful when creating intermediate CA from a root CA.
|
||||
Extra params are passed on to B<openssl ca> command.
|
||||
This option is the same as the B<-signreq> option except it uses the
|
||||
configuration file section B<v3_ca> and so makes the signed request a
|
||||
valid CA certificate. This is useful when creating intermediate CA from
|
||||
a root CA. Extra params are passed on to B<openssl ca> command.
|
||||
|
||||
=item B<-signcert>
|
||||
|
||||
this option is the same as B<-sign> except it expects a self signed certificate
|
||||
This option is the same as B<-sign> except it expects a self signed certificate
|
||||
to be present in the file "newreq.pem".
|
||||
Extra params are passed on to B<openssl x509> and B<openssl ca> commands.
|
||||
|
||||
=item B<-crl>
|
||||
|
||||
generate a CRL. Executes B<openssl ca> command.
|
||||
Generate a CRL. Executes B<openssl ca> command.
|
||||
|
||||
=item B<-revoke certfile [reason]>
|
||||
|
||||
revoke the certificate contained in the specified B<certfile>. An optional
|
||||
Revoke the certificate contained in the specified B<certfile>. An optional
|
||||
reason may be specified, and must be one of: B<unspecified>,
|
||||
B<keyCompromise>, B<CACompromise>, B<affiliationChanged>, B<superseded>,
|
||||
B<cessationOfOperation>, B<certificateHold>, or B<removeFromCRL>.
|
||||
@@ -116,9 +116,9 @@ Leverages B<openssl ca> command.
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verifies certificates against the CA certificate for "demoCA". If no certificates
|
||||
are specified on the command line it tries to verify the file "newcert.pem".
|
||||
Invokes B<openssl verify> command.
|
||||
Verifies certificates against the CA certificate for "demoCA". If no
|
||||
certificates are specified on the command line it tries to verify the file
|
||||
"newcert.pem". Invokes B<openssl verify> command.
|
||||
|
||||
=item B<-extra-req> | B<-extra-ca> | B<-extra-pkcs12> | B<-extra-x509> | B<-extra-verify> <extra-params>
|
||||
|
||||
@@ -204,7 +204,7 @@ L<config(5)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -23,6 +23,7 @@ B<openssl> B<asn1parse>
|
||||
[B<-genstr string>]
|
||||
[B<-genconf file>]
|
||||
[B<-strictpem>]
|
||||
[B<-item name>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -39,56 +40,56 @@ Print out a usage message.
|
||||
|
||||
=item B<-inform> B<DER|PEM>
|
||||
|
||||
the input format. B<DER> is binary format and B<PEM> (the default) is base64
|
||||
The input format. B<DER> is binary format and B<PEM> (the default) is base64
|
||||
encoded.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
the input file, default is standard input
|
||||
The input file, default is standard input.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
output file to place the DER encoded data into. If this
|
||||
Output file to place the DER encoded data into. If this
|
||||
option is not present then no data will be output. This is most useful when
|
||||
combined with the B<-strparse> option.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
don't output the parsed version of the input file.
|
||||
Don't output the parsed version of the input file.
|
||||
|
||||
=item B<-offset number>
|
||||
|
||||
starting offset to begin parsing, default is start of file.
|
||||
Starting offset to begin parsing, default is start of file.
|
||||
|
||||
=item B<-length number>
|
||||
|
||||
number of bytes to parse, default is until end of file.
|
||||
Number of bytes to parse, default is until end of file.
|
||||
|
||||
=item B<-i>
|
||||
|
||||
indents the output according to the "depth" of the structures.
|
||||
Indents the output according to the "depth" of the structures.
|
||||
|
||||
=item B<-oid filename>
|
||||
|
||||
a file containing additional OBJECT IDENTIFIERs (OIDs). The format of this
|
||||
A file containing additional OBJECT IDENTIFIERs (OIDs). The format of this
|
||||
file is described in the NOTES section below.
|
||||
|
||||
=item B<-dump>
|
||||
|
||||
dump unknown data in hex format.
|
||||
Dump unknown data in hex format.
|
||||
|
||||
=item B<-dlimit num>
|
||||
|
||||
like B<-dump>, but only the first B<num> bytes are output.
|
||||
Like B<-dump>, but only the first B<num> bytes are output.
|
||||
|
||||
=item B<-strparse offset>
|
||||
|
||||
parse the contents octets of the ASN.1 object starting at B<offset>. This
|
||||
Parse the contents octets of the ASN.1 object starting at B<offset>. This
|
||||
option can be used multiple times to "drill down" into a nested structure.
|
||||
|
||||
=item B<-genstr string>, B<-genconf file>
|
||||
|
||||
generate encoded data based on B<string>, B<file> or both using
|
||||
Generate encoded data based on B<string>, B<file> or both using
|
||||
L<ASN1_generate_nconf(3)> format. If B<file> only is
|
||||
present then the string is obtained from the default section using the name
|
||||
B<asn1>. The encoded data is passed through the ASN1 parser and printed out as
|
||||
@@ -103,6 +104,11 @@ processed whether it has the normal PEM BEGIN and END markers or not. This
|
||||
option will ignore any data prior to the start of the BEGIN marker, or after an
|
||||
END marker in a PEM file.
|
||||
|
||||
=item B<-item name>
|
||||
|
||||
Attempt to decode and print the data as B<ASN1_ITEM name>. This can be used to
|
||||
print out the fields of any supported ASN.1 structure if the type is known.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Output
|
||||
@@ -199,7 +205,7 @@ L<ASN1_generate_nconf(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -52,7 +52,10 @@ B<openssl> B<ca>
|
||||
[B<-subj arg>]
|
||||
[B<-utf8>]
|
||||
[B<-create_serial>]
|
||||
[B<-rand_serial>]
|
||||
[B<-multivalue-rdn>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -73,73 +76,73 @@ Print out a usage message.
|
||||
|
||||
=item B<-verbose>
|
||||
|
||||
this prints extra details about the operations being performed.
|
||||
This prints extra details about the operations being performed.
|
||||
|
||||
=item B<-config filename>
|
||||
|
||||
specifies the configuration file to use.
|
||||
Specifies the configuration file to use.
|
||||
Optional; for a description of the default value,
|
||||
see L<openssl(1)/COMMAND SUMMARY>.
|
||||
|
||||
=item B<-name section>
|
||||
|
||||
specifies the configuration file section to use (overrides
|
||||
Specifies the configuration file section to use (overrides
|
||||
B<default_ca> in the B<ca> section).
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
an input filename containing a single certificate request to be
|
||||
An input filename containing a single certificate request to be
|
||||
signed by the CA.
|
||||
|
||||
=item B<-ss_cert filename>
|
||||
|
||||
a single self-signed certificate to be signed by the CA.
|
||||
A single self-signed certificate to be signed by the CA.
|
||||
|
||||
=item B<-spkac filename>
|
||||
|
||||
a file containing a single Netscape signed public key and challenge
|
||||
A file containing a single Netscape signed public key and challenge
|
||||
and additional field values to be signed by the CA. See the B<SPKAC FORMAT>
|
||||
section for information on the required input and output format.
|
||||
|
||||
=item B<-infiles>
|
||||
|
||||
if present this should be the last option, all subsequent arguments
|
||||
If present this should be the last option, all subsequent arguments
|
||||
are taken as the names of files containing certificate requests.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
the output file to output certificates to. The default is standard
|
||||
The output file to output certificates to. The default is standard
|
||||
output. The certificate details will also be printed out to this
|
||||
file in PEM format (except that B<-spkac> outputs DER format).
|
||||
|
||||
=item B<-outdir directory>
|
||||
|
||||
the directory to output certificates to. The certificate will be
|
||||
The directory to output certificates to. The certificate will be
|
||||
written to a filename consisting of the serial number in hex with
|
||||
".pem" appended.
|
||||
|
||||
=item B<-cert>
|
||||
|
||||
the CA certificate file.
|
||||
The CA certificate file.
|
||||
|
||||
=item B<-keyfile filename>
|
||||
|
||||
the private key to sign requests with.
|
||||
The private key to sign requests with.
|
||||
|
||||
=item B<-keyform PEM|DER>
|
||||
|
||||
the format of the data in the private key file.
|
||||
The format of the data in the private key file.
|
||||
The default is PEM.
|
||||
|
||||
=item B<-key password>
|
||||
|
||||
the password used to encrypt the private key. Since on some
|
||||
The password used to encrypt the private key. Since on some
|
||||
systems the command line arguments are visible (e.g. Unix with
|
||||
the 'ps' utility) this option should be used with caution.
|
||||
|
||||
=item B<-selfsign>
|
||||
|
||||
indicates the issued certificates are to be signed with the key
|
||||
Indicates the issued certificates are to be signed with the key
|
||||
the certificate requests were signed with (given with B<-keyfile>).
|
||||
Certificate requests signed with a different key are ignored. If
|
||||
B<-spkac>, B<-ss_cert> or B<-gencrl> are given, B<-selfsign> is
|
||||
@@ -153,47 +156,50 @@ self-signed certificate.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the key password source. For more information about the format of B<arg>
|
||||
The key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-notext>
|
||||
|
||||
don't output the text form of a certificate to the output file.
|
||||
Don't output the text form of a certificate to the output file.
|
||||
|
||||
=item B<-startdate date>
|
||||
|
||||
this allows the start date to be explicitly set. The format of the
|
||||
date is YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure).
|
||||
This allows the start date to be explicitly set. The format of the
|
||||
date is YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure), or
|
||||
YYYYMMDDHHMMSSZ (the same as an ASN1 GeneralizedTime structure). In
|
||||
both formats, seconds SS and timezone Z must be present.
|
||||
|
||||
=item B<-enddate date>
|
||||
|
||||
this allows the expiry date to be explicitly set. The format of the
|
||||
date is YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure).
|
||||
This allows the expiry date to be explicitly set. The format of the
|
||||
date is YYMMDDHHMMSSZ (the same as an ASN1 UTCTime structure), or
|
||||
YYYYMMDDHHMMSSZ (the same as an ASN1 GeneralizedTime structure). In
|
||||
both formats, seconds SS and timezone Z must be present.
|
||||
|
||||
=item B<-days arg>
|
||||
|
||||
the number of days to certify the certificate for.
|
||||
The number of days to certify the certificate for.
|
||||
|
||||
=item B<-md alg>
|
||||
|
||||
the message digest to use.
|
||||
The message digest to use.
|
||||
Any digest supported by the OpenSSL B<dgst> command can be used.
|
||||
This option also applies to CRLs.
|
||||
|
||||
=item B<-policy arg>
|
||||
|
||||
this option defines the CA "policy" to use. This is a section in
|
||||
This option defines the CA "policy" to use. This is a section in
|
||||
the configuration file which decides which fields should be mandatory
|
||||
or match the CA certificate. Check out the B<POLICY FORMAT> section
|
||||
for more information.
|
||||
|
||||
=item B<-msie_hack>
|
||||
|
||||
this is a legacy option to make B<ca> work with very old versions of
|
||||
This is a deprecated option to make B<ca> work with very old versions of
|
||||
the IE certificate enrollment control "certenr3". It used UniversalStrings
|
||||
for almost everything. Since the old control has various security bugs
|
||||
its use is strongly discouraged. The newer control "Xenroll" does not
|
||||
need this option.
|
||||
its use is strongly discouraged.
|
||||
|
||||
=item B<-preserveDN>
|
||||
|
||||
@@ -214,12 +220,12 @@ used in the configuration file to enable this behaviour.
|
||||
|
||||
=item B<-batch>
|
||||
|
||||
this sets the batch mode. In this mode no questions will be asked
|
||||
This sets the batch mode. In this mode no questions will be asked
|
||||
and all certificates will be certified automatically.
|
||||
|
||||
=item B<-extensions section>
|
||||
|
||||
the section of the configuration file containing certificate extensions
|
||||
The section of the configuration file containing certificate extensions
|
||||
to be added when a certificate is issued (defaults to B<x509_extensions>
|
||||
unless the B<-extfile> option is used). If no extension section is
|
||||
present then, a V1 certificate is created. If the extension section
|
||||
@@ -229,35 +235,42 @@ extension section format.
|
||||
|
||||
=item B<-extfile file>
|
||||
|
||||
an additional configuration file to read certificate extensions from
|
||||
An additional configuration file to read certificate extensions from
|
||||
(using the default section unless the B<-extensions> option is also
|
||||
used).
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<ca>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<ca>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-subj arg>
|
||||
|
||||
supersedes subject name given in the request.
|
||||
Supersedes subject name given in the request.
|
||||
The arg must be formatted as I</type0=value0/type1=value1/type2=...>,
|
||||
characters may be escaped by \ (backslash), no spaces are skipped.
|
||||
|
||||
=item B<-utf8>
|
||||
|
||||
this option causes field values to be interpreted as UTF8 strings, by
|
||||
This option causes field values to be interpreted as UTF8 strings, by
|
||||
default they are interpreted as ASCII. This means that the field
|
||||
values, whether prompted from a terminal or obtained from a
|
||||
configuration file, must be valid UTF8 strings.
|
||||
|
||||
=item B<-create_serial>
|
||||
|
||||
if reading serial from the text file as specified in the configuration
|
||||
If reading serial from the text file as specified in the configuration
|
||||
fails, specifying this option creates a new random serial to be used as next
|
||||
serial number.
|
||||
To get random serial numbers, use the B<-rand_serial> flag instead; this
|
||||
should only be used for simple error-recovery.
|
||||
|
||||
=item B<-rand_serial>
|
||||
|
||||
Generate a large random number to use as the serial number.
|
||||
This overrides any option or configuration to use a serial number file.
|
||||
|
||||
=item B<-multivalue-rdn>
|
||||
|
||||
@@ -268,6 +281,19 @@ I</DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe>
|
||||
|
||||
If -multi-rdn is not used then the UID value is I<123456+CN=John Doe>.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=back
|
||||
|
||||
=head1 CRL OPTIONS
|
||||
@@ -276,28 +302,28 @@ If -multi-rdn is not used then the UID value is I<123456+CN=John Doe>.
|
||||
|
||||
=item B<-gencrl>
|
||||
|
||||
this option generates a CRL based on information in the index file.
|
||||
This option generates a CRL based on information in the index file.
|
||||
|
||||
=item B<-crldays num>
|
||||
|
||||
the number of days before the next CRL is due. That is the days from
|
||||
The number of days before the next CRL is due. That is the days from
|
||||
now to place in the CRL nextUpdate field.
|
||||
|
||||
=item B<-crlhours num>
|
||||
|
||||
the number of hours before the next CRL is due.
|
||||
The number of hours before the next CRL is due.
|
||||
|
||||
=item B<-revoke filename>
|
||||
|
||||
a filename containing a certificate to revoke.
|
||||
A filename containing a certificate to revoke.
|
||||
|
||||
=item B<-valid filename>
|
||||
|
||||
a filename containing a certificate to add a Valid certificate entry.
|
||||
A filename containing a certificate to add a Valid certificate entry.
|
||||
|
||||
=item B<-status serial>
|
||||
|
||||
displays the revocation status of the certificate with the specified
|
||||
Displays the revocation status of the certificate with the specified
|
||||
serial number and exits.
|
||||
|
||||
=item B<-updatedb>
|
||||
@@ -306,7 +332,7 @@ Updates the database index to purge expired certificates.
|
||||
|
||||
=item B<-crl_reason reason>
|
||||
|
||||
revocation reason, where B<reason> is one of: B<unspecified>, B<keyCompromise>,
|
||||
Revocation reason, where B<reason> is one of: B<unspecified>, B<keyCompromise>,
|
||||
B<CACompromise>, B<affiliationChanged>, B<superseded>, B<cessationOfOperation>,
|
||||
B<certificateHold> or B<removeFromCRL>. The matching of B<reason> is case
|
||||
insensitive. Setting any revocation reason will make the CRL v2.
|
||||
@@ -333,7 +359,7 @@ B<CACompromise>.
|
||||
|
||||
=item B<-crlexts section>
|
||||
|
||||
the section of the configuration file containing CRL extensions to
|
||||
The section of the configuration file containing CRL extensions to
|
||||
include. If no CRL extension section is present then a V1 CRL is
|
||||
created, if the CRL extension section is present (even if it is
|
||||
empty) then a V2 CRL is created. The CRL extensions specified are
|
||||
@@ -384,58 +410,58 @@ and long names are the same when this option is used.
|
||||
|
||||
=item B<new_certs_dir>
|
||||
|
||||
the same as the B<-outdir> command line option. It specifies
|
||||
The same as the B<-outdir> command line option. It specifies
|
||||
the directory where new certificates will be placed. Mandatory.
|
||||
|
||||
=item B<certificate>
|
||||
|
||||
the same as B<-cert>. It gives the file containing the CA
|
||||
The same as B<-cert>. It gives the file containing the CA
|
||||
certificate. Mandatory.
|
||||
|
||||
=item B<private_key>
|
||||
|
||||
same as the B<-keyfile> option. The file containing the
|
||||
Same as the B<-keyfile> option. The file containing the
|
||||
CA private key. Mandatory.
|
||||
|
||||
=item B<RANDFILE>
|
||||
|
||||
a file used to read and write random number seed information, or
|
||||
an EGD socket (see L<RAND_egd(3)>).
|
||||
At startup the specified file is loaded into the random number generator,
|
||||
and at exit 256 bytes will be written to it.
|
||||
|
||||
=item B<default_days>
|
||||
|
||||
the same as the B<-days> option. The number of days to certify
|
||||
The same as the B<-days> option. The number of days to certify
|
||||
a certificate for.
|
||||
|
||||
=item B<default_startdate>
|
||||
|
||||
the same as the B<-startdate> option. The start date to certify
|
||||
The same as the B<-startdate> option. The start date to certify
|
||||
a certificate for. If not set the current time is used.
|
||||
|
||||
=item B<default_enddate>
|
||||
|
||||
the same as the B<-enddate> option. Either this option or
|
||||
The same as the B<-enddate> option. Either this option or
|
||||
B<default_days> (or the command line equivalents) must be
|
||||
present.
|
||||
|
||||
=item B<default_crl_hours default_crl_days>
|
||||
|
||||
the same as the B<-crlhours> and the B<-crldays> options. These
|
||||
The same as the B<-crlhours> and the B<-crldays> options. These
|
||||
will only be used if neither command line option is present. At
|
||||
least one of these must be present to generate a CRL.
|
||||
|
||||
=item B<default_md>
|
||||
|
||||
the same as the B<-md> option. Mandatory.
|
||||
The same as the B<-md> option. Mandatory.
|
||||
|
||||
=item B<database>
|
||||
|
||||
the text database file to use. Mandatory. This file must be present
|
||||
The text database file to use. Mandatory. This file must be present
|
||||
though initially it will be empty.
|
||||
|
||||
=item B<unique_subject>
|
||||
|
||||
if the value B<yes> is given, the valid certificate entries in the
|
||||
If the value B<yes> is given, the valid certificate entries in the
|
||||
database must have unique subjects. if the value B<no> is given,
|
||||
several valid certificate entries may have the exact same subject.
|
||||
The default value is B<yes>, to be compatible with older (pre 0.9.8)
|
||||
@@ -443,51 +469,47 @@ versions of OpenSSL. However, to make CA certificate roll-over easier,
|
||||
it's recommended to use the value B<no>, especially if combined with
|
||||
the B<-selfsign> command line option.
|
||||
|
||||
Note that it is valid in some circumstances for certificates to be created
|
||||
without any subject. In the case where there are multiple certificates without
|
||||
subjects this does not count as a duplicate.
|
||||
|
||||
=item B<serial>
|
||||
|
||||
a text file containing the next serial number to use in hex. Mandatory.
|
||||
A text file containing the next serial number to use in hex. Mandatory.
|
||||
This file must be present and contain a valid serial number.
|
||||
|
||||
=item B<crlnumber>
|
||||
|
||||
a text file containing the next CRL number to use in hex. The crl number
|
||||
A text file containing the next CRL number to use in hex. The crl number
|
||||
will be inserted in the CRLs only if this file exists. If this file is
|
||||
present, it must contain a valid CRL number.
|
||||
|
||||
=item B<x509_extensions>
|
||||
|
||||
the same as B<-extensions>.
|
||||
The same as B<-extensions>.
|
||||
|
||||
=item B<crl_extensions>
|
||||
|
||||
the same as B<-crlexts>.
|
||||
The same as B<-crlexts>.
|
||||
|
||||
=item B<preserve>
|
||||
|
||||
the same as B<-preserveDN>
|
||||
The same as B<-preserveDN>
|
||||
|
||||
=item B<email_in_dn>
|
||||
|
||||
the same as B<-noemailDN>. If you want the EMAIL field to be removed
|
||||
The same as B<-noemailDN>. If you want the EMAIL field to be removed
|
||||
from the DN of the certificate simply set this to 'no'. If not present
|
||||
the default is to allow for the EMAIL filed in the certificate's DN.
|
||||
|
||||
=item B<msie_hack>
|
||||
|
||||
the same as B<-msie_hack>
|
||||
The same as B<-msie_hack>
|
||||
|
||||
=item B<policy>
|
||||
|
||||
the same as B<-policy>. Mandatory. See the B<POLICY FORMAT> section
|
||||
The same as B<-policy>. Mandatory. See the B<POLICY FORMAT> section
|
||||
for more information.
|
||||
|
||||
=item B<name_opt>, B<cert_opt>
|
||||
|
||||
these options allow the format used to display the certificate details
|
||||
These options allow the format used to display the certificate details
|
||||
when asking the user to confirm signing. All the options supported by
|
||||
the B<x509> utilities B<-nameopt> and B<-certopt> switches can be used
|
||||
here, except the B<no_signame> and B<no_sigdump> are permanently set
|
||||
@@ -504,7 +526,7 @@ multicharacter string types and does not display extensions.
|
||||
|
||||
=item B<copy_extensions>
|
||||
|
||||
determines how extensions in certificate requests should be handled.
|
||||
Determines how extensions in certificate requests should be handled.
|
||||
If set to B<none> or this option is not present then extensions are
|
||||
ignored and not copied to the certificate. If set to B<copy> then any
|
||||
extensions present in the request that are not already present are copied
|
||||
@@ -601,6 +623,7 @@ A sample configuration file with the relevant sections for B<ca>:
|
||||
|
||||
certificate = $dir/cacert.pem # The CA cert
|
||||
serial = $dir/serial # serial no file
|
||||
#rand_serial = yes # for random serial#'s
|
||||
private_key = $dir/private/cakey.pem# CA private key
|
||||
RANDFILE = $dir/private/.rand # random number file
|
||||
|
||||
@@ -707,6 +730,14 @@ For example if the CA certificate has:
|
||||
|
||||
then even if a certificate is issued with CA:TRUE it will not be valid.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
Since OpenSSL 1.1.1, the program follows RFC5280. Specifically,
|
||||
certificate validity period (specified by any of B<-startdate>,
|
||||
B<-enddate> and B<-days>) will be encoded as UTCTime if the dates are
|
||||
earlier than year 2049 (included), and as GeneralizedTime if the dates
|
||||
are in year 2050 or later.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<req(1)>, L<spkac(1)>, L<x509(1)>, L<CA.pl(1)>,
|
||||
@@ -714,7 +745,7 @@ L<config(5)>, L<x509v3_config(5)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -16,10 +16,12 @@ B<openssl> B<ciphers>
|
||||
[B<-tls1>]
|
||||
[B<-tls1_1>]
|
||||
[B<-tls1_2>]
|
||||
[B<-tls1_3>]
|
||||
[B<-s>]
|
||||
[B<-psk>]
|
||||
[B<-srp>]
|
||||
[B<-stdname>]
|
||||
[B<-convert name>]
|
||||
[B<cipherlist>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
@@ -63,13 +65,18 @@ When combined with B<-s> includes cipher suites which require SRP.
|
||||
|
||||
=item B<-v>
|
||||
|
||||
Verbose output: For each ciphersuite, list details as provided by
|
||||
Verbose output: For each cipher suite, list details as provided by
|
||||
L<SSL_CIPHER_description(3)>.
|
||||
|
||||
=item B<-V>
|
||||
|
||||
Like B<-v>, but include the official cipher suite values in hex.
|
||||
|
||||
=item B<-tls1_3>
|
||||
|
||||
In combination with the B<-s> option, list the ciphers which would be used if
|
||||
TLSv1.3 were negotiated.
|
||||
|
||||
=item B<-tls1_2>
|
||||
|
||||
In combination with the B<-s> option, list the ciphers which would be used if
|
||||
@@ -92,12 +99,15 @@ TLSv1.1 were negotiated.
|
||||
|
||||
=item B<-stdname>
|
||||
|
||||
precede each ciphersuite by its standard name: only available is OpenSSL
|
||||
is built with tracing enabled (B<enable-ssl-trace> argument to Configure).
|
||||
Precede each cipher suite by its standard name.
|
||||
|
||||
=item B<-convert name>
|
||||
|
||||
Convert a standard cipher B<name> to its OpenSSL name.
|
||||
|
||||
=item B<cipherlist>
|
||||
|
||||
a cipher list to convert to a cipher preference list. If it is not included
|
||||
A cipher list to convert to a cipher preference list. If it is not included
|
||||
then the default cipher list will be used. The format is described below.
|
||||
|
||||
=back
|
||||
@@ -143,7 +153,8 @@ The cipher string B<@STRENGTH> can be used at any point to sort the current
|
||||
cipher list in order of encryption algorithm key length.
|
||||
|
||||
The cipher string B<@SECLEVEL=n> can be used at any point to set the security
|
||||
level to B<n>.
|
||||
level to B<n>, which should be a number between zero and five, inclusive.
|
||||
See L<SSL_CTX_set_security_level> for a description of what each level means.
|
||||
|
||||
=head1 CIPHER STRINGS
|
||||
|
||||
@@ -163,7 +174,7 @@ When used, this must be the first cipherstring specified.
|
||||
The ciphers included in B<ALL>, but not enabled by default. Currently
|
||||
this includes all RC4 and anonymous ciphers. Note that this rule does
|
||||
not cover B<eNULL>, which is not included by B<ALL> (use B<COMPLEMENTOFALL> if
|
||||
necessary). Note that RC4 based ciphersuites are not built into OpenSSL by
|
||||
necessary). Note that RC4 based cipher suites are not built into OpenSSL by
|
||||
default (see the enable-weak-ssl-ciphers option to Configure).
|
||||
|
||||
=item B<ALL>
|
||||
@@ -178,19 +189,19 @@ The cipher suites not enabled by B<ALL>, currently B<eNULL>.
|
||||
|
||||
=item B<HIGH>
|
||||
|
||||
"high" encryption cipher suites. This currently means those with key lengths
|
||||
"High" encryption cipher suites. This currently means those with key lengths
|
||||
larger than 128 bits, and some cipher suites with 128-bit keys.
|
||||
|
||||
=item B<MEDIUM>
|
||||
|
||||
"medium" encryption cipher suites, currently some of those using 128 bit
|
||||
"Medium" encryption cipher suites, currently some of those using 128 bit
|
||||
encryption.
|
||||
|
||||
=item B<LOW>
|
||||
|
||||
"low" encryption cipher suites, currently those using 64 or 56 bit
|
||||
"Low" encryption cipher suites, currently those using 64 or 56 bit
|
||||
encryption algorithms but excluding export cipher suites. All these
|
||||
ciphersuites have been removed as of OpenSSL 1.1.0.
|
||||
cipher suites have been removed as of OpenSSL 1.1.0.
|
||||
|
||||
=item B<eNULL>, B<NULL>
|
||||
|
||||
@@ -267,11 +278,11 @@ keys.
|
||||
|
||||
=item B<TLSv1.2>, B<TLSv1.0>, B<SSLv3>
|
||||
|
||||
Lists ciphersuites which are only supported in at least TLS v1.2, TLS v1.0 or
|
||||
Lists cipher suites which are only supported in at least TLS v1.2, TLS v1.0 or
|
||||
SSL v3.0 respectively.
|
||||
Note: there are no ciphersuites specific to TLS v1.1.
|
||||
Note: there are no cipher suites specific to TLS v1.1.
|
||||
Since this is only the minimum version, if, for example, TLSv1.0 is negotiated
|
||||
then both TLSv1.0 and SSLv3.0 ciphersuites are available.
|
||||
then both TLSv1.0 and SSLv3.0 cipher suites are available.
|
||||
|
||||
Note: these cipher strings B<do not> change the negotiated version of SSL or
|
||||
TLS, they only affect the list of available cipher suites.
|
||||
@@ -282,28 +293,33 @@ cipher suites using 128 bit AES, 256 bit AES or either 128 or 256 bit AES.
|
||||
|
||||
=item B<AESGCM>
|
||||
|
||||
AES in Galois Counter Mode (GCM): these ciphersuites are only supported
|
||||
AES in Galois Counter Mode (GCM): these cipher suites are only supported
|
||||
in TLS v1.2.
|
||||
|
||||
=item B<AESCCM>, B<AESCCM8>
|
||||
|
||||
AES in Cipher Block Chaining - Message Authentication Mode (CCM): these
|
||||
ciphersuites are only supported in TLS v1.2. B<AESCCM> references CCM
|
||||
cipher suites are only supported in TLS v1.2. B<AESCCM> references CCM
|
||||
cipher suites using both 16 and 8 octet Integrity Check Value (ICV)
|
||||
while B<AESCCM8> only references 8 octet ICV.
|
||||
|
||||
=item B<ARIA128>, B<ARIA256>, B<ARIA>
|
||||
|
||||
Cipher suites using 128 bit ARIA, 256 bit ARIA or either 128 or 256 bit
|
||||
ARIA.
|
||||
|
||||
=item B<CAMELLIA128>, B<CAMELLIA256>, B<CAMELLIA>
|
||||
|
||||
cipher suites using 128 bit CAMELLIA, 256 bit CAMELLIA or either 128 or 256 bit
|
||||
Cipher suites using 128 bit CAMELLIA, 256 bit CAMELLIA or either 128 or 256 bit
|
||||
CAMELLIA.
|
||||
|
||||
=item B<CHACHA20>
|
||||
|
||||
cipher suites using ChaCha20.
|
||||
Cipher suites using ChaCha20.
|
||||
|
||||
=item B<3DES>
|
||||
|
||||
cipher suites using triple DES.
|
||||
Cipher suites using triple DES.
|
||||
|
||||
=item B<DES>
|
||||
|
||||
@@ -336,7 +352,7 @@ Cipher suites using SHA1.
|
||||
|
||||
=item B<SHA256>, B<SHA384>
|
||||
|
||||
Ciphersuites using SHA256 or SHA384.
|
||||
Cipher suites using SHA256 or SHA384.
|
||||
|
||||
=item B<aGOST>
|
||||
|
||||
@@ -383,27 +399,12 @@ Setting Suite B mode has additional consequences required to comply with
|
||||
RFC6460.
|
||||
In particular the supported signature algorithms is reduced to support only
|
||||
ECDSA and SHA256 or SHA384, only the elliptic curves P-256 and P-384 can be
|
||||
used and only the two suite B compliant ciphersuites
|
||||
used and only the two suite B compliant cipher suites
|
||||
(ECDHE-ECDSA-AES128-GCM-SHA256 and ECDHE-ECDSA-AES256-GCM-SHA384) are
|
||||
permissible.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EQUAL PREFERENCE GROUPS
|
||||
|
||||
If configuring a server, one may also configure equal-preference groups to
|
||||
partially respect the client's preferences when
|
||||
B<SSL_OP_CIPHER_SERVER_PREFERENCE> is enabled. Ciphers in an equal-preference
|
||||
group have equal priority and use the client order. This may be used to
|
||||
enforce that AEADs are preferred but select AES-GCM vs. ChaCha20-Poly1305
|
||||
based on client preferences. An equal-preference is specified with square
|
||||
brackets, combining multiple selectors separated by |. For example:
|
||||
|
||||
[ECDHE-ECDSA-CHACHA20-POLY1305|ECDHE-ECDSA-AES128-GCM-SHA256]
|
||||
|
||||
Once an equal-preference group is used, future directives must be
|
||||
opcode-less.
|
||||
|
||||
=head1 CIPHER SUITE NAMES
|
||||
|
||||
The following lists give the SSL or TLS cipher suites names from the
|
||||
@@ -449,7 +450,7 @@ e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
|
||||
TLS_DH_anon_WITH_RC4_128_MD5 ADH-RC4-MD5
|
||||
TLS_DH_anon_WITH_3DES_EDE_CBC_SHA ADH-DES-CBC3-SHA
|
||||
|
||||
=head2 AES ciphersuites from RFC3268, extending TLS v1.0
|
||||
=head2 AES cipher suites from RFC3268, extending TLS v1.0
|
||||
|
||||
TLS_RSA_WITH_AES_128_CBC_SHA AES128-SHA
|
||||
TLS_RSA_WITH_AES_256_CBC_SHA AES256-SHA
|
||||
@@ -467,7 +468,7 @@ e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
|
||||
TLS_DH_anon_WITH_AES_128_CBC_SHA ADH-AES128-SHA
|
||||
TLS_DH_anon_WITH_AES_256_CBC_SHA ADH-AES256-SHA
|
||||
|
||||
=head2 Camellia ciphersuites from RFC4132, extending TLS v1.0
|
||||
=head2 Camellia cipher suites from RFC4132, extending TLS v1.0
|
||||
|
||||
TLS_RSA_WITH_CAMELLIA_128_CBC_SHA CAMELLIA128-SHA
|
||||
TLS_RSA_WITH_CAMELLIA_256_CBC_SHA CAMELLIA256-SHA
|
||||
@@ -485,7 +486,7 @@ e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
|
||||
TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA ADH-CAMELLIA128-SHA
|
||||
TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA ADH-CAMELLIA256-SHA
|
||||
|
||||
=head2 SEED ciphersuites from RFC4162, extending TLS v1.0
|
||||
=head2 SEED cipher suites from RFC4162, extending TLS v1.0
|
||||
|
||||
TLS_RSA_WITH_SEED_CBC_SHA SEED-SHA
|
||||
|
||||
@@ -497,7 +498,7 @@ e.g. DES-CBC3-SHA. In these cases, RSA authentication is used.
|
||||
|
||||
TLS_DH_anon_WITH_SEED_CBC_SHA ADH-SEED-SHA
|
||||
|
||||
=head2 GOST ciphersuites from draft-chudov-cryptopro-cptls, extending TLS v1.0
|
||||
=head2 GOST cipher suites from draft-chudov-cryptopro-cptls, extending TLS v1.0
|
||||
|
||||
Note: these ciphers require an engine which including GOST cryptographic
|
||||
algorithms, such as the B<ccgost> engine, included in the OpenSSL distribution.
|
||||
@@ -590,14 +591,35 @@ Note: these ciphers can also be used in SSL v3.
|
||||
ECDHE_ECDSA_WITH_AES_128_CCM_8 ECDHE-ECDSA-AES128-CCM8
|
||||
ECDHE_ECDSA_WITH_AES_256_CCM_8 ECDHE-ECDSA-AES256-CCM8
|
||||
|
||||
=head2 Camellia HMAC-Based ciphersuites from RFC6367, extending TLS v1.2
|
||||
=head2 ARIA cipher suites from RFC6209, extending TLS v1.2
|
||||
|
||||
Note: the CBC modes mentioned in this RFC are not supported.
|
||||
|
||||
TLS_RSA_WITH_ARIA_128_GCM_SHA256 ARIA128-GCM-SHA256
|
||||
TLS_RSA_WITH_ARIA_256_GCM_SHA384 ARIA256-GCM-SHA384
|
||||
TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 DHE-RSA-ARIA128-GCM-SHA256
|
||||
TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 DHE-RSA-ARIA256-GCM-SHA384
|
||||
TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 DHE-DSS-ARIA128-GCM-SHA256
|
||||
TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 DHE-DSS-ARIA256-GCM-SHA384
|
||||
TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 ECDHE-ECDSA-ARIA128-GCM-SHA256
|
||||
TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 ECDHE-ECDSA-ARIA256-GCM-SHA384
|
||||
TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 ECDHE-ARIA128-GCM-SHA256
|
||||
TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 ECDHE-ARIA256-GCM-SHA384
|
||||
TLS_PSK_WITH_ARIA_128_GCM_SHA256 PSK-ARIA128-GCM-SHA256
|
||||
TLS_PSK_WITH_ARIA_256_GCM_SHA384 PSK-ARIA256-GCM-SHA384
|
||||
TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 DHE-PSK-ARIA128-GCM-SHA256
|
||||
TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 DHE-PSK-ARIA256-GCM-SHA384
|
||||
TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 RSA-PSK-ARIA128-GCM-SHA256
|
||||
TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 RSA-PSK-ARIA256-GCM-SHA384
|
||||
|
||||
=head2 Camellia HMAC-Based cipher suites from RFC6367, extending TLS v1.2
|
||||
|
||||
TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-ECDSA-CAMELLIA128-SHA256
|
||||
TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-ECDSA-CAMELLIA256-SHA384
|
||||
TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 ECDHE-RSA-CAMELLIA128-SHA256
|
||||
TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 ECDHE-RSA-CAMELLIA256-SHA384
|
||||
|
||||
=head2 Pre-shared keying (PSK) ciphersuites
|
||||
=head2 Pre-shared keying (PSK) cipher suites
|
||||
|
||||
PSK_WITH_NULL_SHA PSK-NULL-SHA
|
||||
DHE_PSK_WITH_NULL_SHA DHE-PSK-NULL-SHA
|
||||
@@ -681,6 +703,14 @@ Note: these ciphers can also be used in SSL v3.
|
||||
TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 DHE-PSK-CHACHA20-POLY1305
|
||||
TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 RSA-PSK-CHACHA20-POLY1305
|
||||
|
||||
=head2 TLS v1.3 cipher suites
|
||||
|
||||
TLS_AES_128_GCM_SHA256 TLS13-AES-128-GCM-SHA256
|
||||
TLS_AES_256_GCM_SHA384 TLS13-AES-256-GCM-SHA384
|
||||
TLS_CHACHA20_POLY1305_SHA256 TLS13-CHACHA20-POLY1305-SHA256
|
||||
TLS_AES_128_CCM_SHA256 TLS13-AES-128-CCM-SHA256
|
||||
TLS_AES_128_CCM_8_SHA256 TLS13-AES-128-CCM-8-SHA256
|
||||
|
||||
=head2 Older names used by OpenSSL
|
||||
|
||||
The following names are accepted by older releases:
|
||||
@@ -734,9 +764,14 @@ L<s_client(1)>, L<s_server(1)>, L<ssl(7)>
|
||||
|
||||
The B<-V> option for the B<ciphers> command was added in OpenSSL 1.0.0.
|
||||
|
||||
The B<-stdname> is only available if OpenSSL is built with tracing enabled
|
||||
(B<enable-ssl-trace> argument to Configure) before OpenSSL 1.1.1.
|
||||
|
||||
The B<-convert> was added in OpenSSL 1.1.1.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -68,9 +68,9 @@ B<openssl> B<cms>
|
||||
[B<-verify_name name>]
|
||||
[B<-x509_strict>]
|
||||
[B<-md digest>]
|
||||
[B<-[cipher]>]
|
||||
[B<-I<cipher>>]
|
||||
[B<-nointern>]
|
||||
[B<-no_signer_cert_verify>]
|
||||
[B<-noverify>]
|
||||
[B<-nocerts>]
|
||||
[B<-noattr>]
|
||||
[B<-nosmimecap>]
|
||||
@@ -93,7 +93,8 @@ B<openssl> B<cms>
|
||||
[B<-inkey file>]
|
||||
[B<-keyopt name:parameter>]
|
||||
[B<-passin arg>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<cert.pem...>]
|
||||
[B<-to addr>]
|
||||
[B<-from addr>]
|
||||
@@ -119,7 +120,7 @@ Print out a usage message.
|
||||
|
||||
=item B<-encrypt>
|
||||
|
||||
encrypt mail for the given recipient certificates. Input file is the message
|
||||
Encrypt mail for the given recipient certificates. Input file is the message
|
||||
to be encrypted. The output file is the encrypted mail in MIME format. The
|
||||
actual CMS type is <B>EnvelopedData<B>.
|
||||
|
||||
@@ -128,33 +129,33 @@ key has been compromised, others may be able to decrypt the text.
|
||||
|
||||
=item B<-decrypt>
|
||||
|
||||
decrypt mail using the supplied certificate and private key. Expects an
|
||||
Decrypt mail using the supplied certificate and private key. Expects an
|
||||
encrypted mail message in MIME format for the input file. The decrypted mail
|
||||
is written to the output file.
|
||||
|
||||
=item B<-debug_decrypt>
|
||||
|
||||
this option sets the B<CMS_DEBUG_DECRYPT> flag. This option should be used
|
||||
This option sets the B<CMS_DEBUG_DECRYPT> flag. This option should be used
|
||||
with caution: see the notes section below.
|
||||
|
||||
=item B<-sign>
|
||||
|
||||
sign mail using the supplied certificate and private key. Input file is
|
||||
Sign mail using the supplied certificate and private key. Input file is
|
||||
the message to be signed. The signed message in MIME format is written
|
||||
to the output file.
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verify signed mail. Expects a signed mail message on input and outputs
|
||||
Verify signed mail. Expects a signed mail message on input and outputs
|
||||
the signed data. Both clear text and opaque signing is supported.
|
||||
|
||||
=item B<-cmsout>
|
||||
|
||||
takes an input message and writes out a PEM encoded CMS structure.
|
||||
Takes an input message and writes out a PEM encoded CMS structure.
|
||||
|
||||
=item B<-resign>
|
||||
|
||||
resign a message: take an existing message and one or more new signers.
|
||||
Resign a message: take an existing message and one or more new signers.
|
||||
|
||||
=item B<-data_create>
|
||||
|
||||
@@ -202,12 +203,12 @@ to the B<-verify> operation.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
the input message to be encrypted or signed or the message to be decrypted
|
||||
The input message to be encrypted or signed or the message to be decrypted
|
||||
or verified.
|
||||
|
||||
=item B<-inform SMIME|PEM|DER>
|
||||
|
||||
this specifies the input format for the CMS structure. The default
|
||||
This specifies the input format for the CMS structure. The default
|
||||
is B<SMIME> which reads an S/MIME format message. B<PEM> and B<DER>
|
||||
format change this to expect PEM and DER format CMS structures
|
||||
instead. This currently only affects the input format of the CMS
|
||||
@@ -216,17 +217,17 @@ B<-encrypt> or B<-sign>) this option has no effect.
|
||||
|
||||
=item B<-rctform SMIME|PEM|DER>
|
||||
|
||||
specify the format for a signed receipt for use with the B<-receipt_verify>
|
||||
Specify the format for a signed receipt for use with the B<-receipt_verify>
|
||||
operation.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
the message text that has been decrypted or verified or the output MIME
|
||||
The message text that has been decrypted or verified or the output MIME
|
||||
format message that has been signed or verified.
|
||||
|
||||
=item B<-outform SMIME|PEM|DER>
|
||||
|
||||
this specifies the output format for the CMS structure. The default
|
||||
This specifies the output format for the CMS structure. The default
|
||||
is B<SMIME> which writes an S/MIME format message. B<PEM> and B<DER>
|
||||
format change this to write PEM and DER format CMS structures
|
||||
instead. This currently only affects the output format of the CMS
|
||||
@@ -235,7 +236,7 @@ B<-verify> or B<-decrypt>) this option has no effect.
|
||||
|
||||
=item B<-stream -indef -noindef>
|
||||
|
||||
the B<-stream> and B<-indef> options are equivalent and enable streaming I/O
|
||||
The B<-stream> and B<-indef> options are equivalent and enable streaming I/O
|
||||
for encoding operations. This permits single pass processing of data without
|
||||
the need to hold the entire contents in memory, potentially supporting very
|
||||
large files. Streaming is automatically set for S/MIME signing with detached
|
||||
@@ -244,7 +245,7 @@ other operations.
|
||||
|
||||
=item B<-noindef>
|
||||
|
||||
disable streaming I/O where it would produce and indefinite length constructed
|
||||
Disable streaming I/O where it would produce and indefinite length constructed
|
||||
encoding. This option currently has no effect. In future streaming will be
|
||||
enabled by default on all relevant operations and this option will disable it.
|
||||
|
||||
@@ -258,29 +259,29 @@ is S/MIME and it uses the multipart/signed MIME content type.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
this option adds plain text (text/plain) MIME headers to the supplied
|
||||
This option adds plain text (text/plain) MIME headers to the supplied
|
||||
message if encrypting or signing. If decrypting or verifying it strips
|
||||
off text headers: if the decrypted or verified message is not of MIME
|
||||
type text/plain then an error occurs.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
for the B<-cmsout> operation do not output the parsed CMS structure. This
|
||||
For the B<-cmsout> operation do not output the parsed CMS structure. This
|
||||
is useful when combined with the B<-print> option or if the syntax of the CMS
|
||||
structure is being checked.
|
||||
|
||||
=item B<-print>
|
||||
|
||||
for the B<-cmsout> operation print out all fields of the CMS structure. This
|
||||
For the B<-cmsout> operation print out all fields of the CMS structure. This
|
||||
is mainly useful for testing purposes.
|
||||
|
||||
=item B<-CAfile file>
|
||||
|
||||
a file containing trusted CA certificates, only used with B<-verify>.
|
||||
A file containing trusted CA certificates, only used with B<-verify>.
|
||||
|
||||
=item B<-CApath dir>
|
||||
|
||||
a directory containing trusted CA certificates, only used with
|
||||
A directory containing trusted CA certificates, only used with
|
||||
B<-verify>. This directory must be a standard certificate directory: that
|
||||
is a hash of each subject name (using B<x509 -hash>) should be linked
|
||||
to each certificate.
|
||||
@@ -295,12 +296,12 @@ Do not load the trusted CA certificates from the default directory location
|
||||
|
||||
=item B<-md digest>
|
||||
|
||||
digest algorithm to use when signing or resigning. If not present then the
|
||||
Digest algorithm to use when signing or resigning. If not present then the
|
||||
default digest algorithm for the signing key will be used (usually SHA1).
|
||||
|
||||
=item B<-[cipher]>
|
||||
=item B<-I<cipher>>
|
||||
|
||||
the encryption algorithm to use. For example triple DES (168 bits) - B<-des3>
|
||||
The encryption algorithm to use. For example triple DES (168 bits) - B<-des3>
|
||||
or 256 bit AES - B<-aes256>. Any standard algorithm name (as used by the
|
||||
EVP_get_cipherbyname() function) can also be used preceded by a dash, for
|
||||
example B<-aes-128-cbc>. See L<B<enc>|enc(1)> for a list of ciphers
|
||||
@@ -311,48 +312,48 @@ B<-EncryptedData_create> commands.
|
||||
|
||||
=item B<-nointern>
|
||||
|
||||
when verifying a message normally certificates (if any) included in
|
||||
When verifying a message normally certificates (if any) included in
|
||||
the message are searched for the signing certificate. With this option
|
||||
only the certificates specified in the B<-certfile> option are used.
|
||||
The supplied certificates can still be used as untrusted CAs however.
|
||||
|
||||
=item B<-no_signer_cert_verify>
|
||||
=item B<-noverify>
|
||||
|
||||
do not verify the signers certificate of a signed message.
|
||||
Do not verify the signers certificate of a signed message.
|
||||
|
||||
=item B<-nocerts>
|
||||
|
||||
when signing a message the signer's certificate is normally included
|
||||
When signing a message the signer's certificate is normally included
|
||||
with this option it is excluded. This will reduce the size of the
|
||||
signed message but the verifier must have a copy of the signers certificate
|
||||
available locally (passed using the B<-certfile> option for example).
|
||||
|
||||
=item B<-noattr>
|
||||
|
||||
normally when a message is signed a set of attributes are included which
|
||||
Normally when a message is signed a set of attributes are included which
|
||||
include the signing time and supported symmetric algorithms. With this
|
||||
option they are not included.
|
||||
|
||||
=item B<-nosmimecap>
|
||||
|
||||
exclude the list of supported algorithms from signed attributes, other options
|
||||
Exclude the list of supported algorithms from signed attributes, other options
|
||||
such as signing time and content type are still included.
|
||||
|
||||
=item B<-binary>
|
||||
|
||||
normally the input message is converted to "canonical" format which is
|
||||
Normally the input message is converted to "canonical" format which is
|
||||
effectively using CR and LF as end of line: as required by the S/MIME
|
||||
specification. When this option is present no translation occurs. This
|
||||
is useful when handling binary data which may not be in MIME format.
|
||||
|
||||
=item B<-crlfeol>
|
||||
|
||||
normally the output file uses a single B<LF> as end of line. When this
|
||||
Normally the output file uses a single B<LF> as end of line. When this
|
||||
option is present B<CRLF> is used instead.
|
||||
|
||||
=item B<-asciicrlf>
|
||||
|
||||
when signing use ASCII CRLF format canonicalisation. This strips trailing
|
||||
When signing use ASCII CRLF format canonicalisation. This strips trailing
|
||||
whitespace from all lines, deletes trailing blank lines at EOF and sets
|
||||
the encapsulated content type. This option is normally used with detached
|
||||
content and an output signature format of DER. This option is not normally
|
||||
@@ -361,31 +362,31 @@ content format is detected.
|
||||
|
||||
=item B<-nodetach>
|
||||
|
||||
when signing a message use opaque signing: this form is more resistant
|
||||
When signing a message use opaque signing: this form is more resistant
|
||||
to translation by mail relays but it cannot be read by mail agents that
|
||||
do not support S/MIME. Without this option cleartext signing with
|
||||
the MIME type multipart/signed is used.
|
||||
|
||||
=item B<-certfile file>
|
||||
|
||||
allows additional certificates to be specified. When signing these will
|
||||
Allows additional certificates to be specified. When signing these will
|
||||
be included with the message. When verifying these will be searched for
|
||||
the signers certificates. The certificates should be in PEM format.
|
||||
|
||||
=item B<-certsout file>
|
||||
|
||||
any certificates contained in the message are written to B<file>.
|
||||
Any certificates contained in the message are written to B<file>.
|
||||
|
||||
=item B<-signer file>
|
||||
|
||||
a signing certificate when signing or resigning a message, this option can be
|
||||
A signing certificate when signing or resigning a message, this option can be
|
||||
used multiple times if more than one signer is required. If a message is being
|
||||
verified then the signers certificates will be written to this file if the
|
||||
verification was successful.
|
||||
|
||||
=item B<-recip file>
|
||||
|
||||
when decrypting a message this specifies the recipients certificate. The
|
||||
When decrypting a message this specifies the recipients certificate. The
|
||||
certificate must match one of the recipients of the message or an error
|
||||
occurs.
|
||||
|
||||
@@ -395,19 +396,19 @@ required (for example to specify RSA-OAEP).
|
||||
|
||||
=item B<-keyid>
|
||||
|
||||
use subject key identifier to identify certificates instead of issuer name and
|
||||
Use subject key identifier to identify certificates instead of issuer name and
|
||||
serial number. The supplied certificate B<must> include a subject key
|
||||
identifier extension. Supported by B<-sign> and B<-encrypt> options.
|
||||
|
||||
=item B<-receipt_request_all -receipt_request_first>
|
||||
|
||||
for B<-sign> option include a signed receipt request. Indicate requests should
|
||||
For B<-sign> option include a signed receipt request. Indicate requests should
|
||||
be provided by all recipient or first tier recipients (those mailed directly
|
||||
and not from a mailing list). Ignored it B<-receipt_request_from> is included.
|
||||
|
||||
=item B<-receipt_request_from emailaddress>
|
||||
|
||||
for B<-sign> option include a signed receipt request. Add an explicit email
|
||||
For B<-sign> option include a signed receipt request. Add an explicit email
|
||||
address where receipts should be supplied.
|
||||
|
||||
=item B<-receipt_request_to emailaddress>
|
||||
@@ -422,7 +423,7 @@ requests.
|
||||
|
||||
=item B<-secretkey key>
|
||||
|
||||
specify symmetric key to use. The key must be supplied in hex format and be
|
||||
Specify symmetric key to use. The key must be supplied in hex format and be
|
||||
consistent with the algorithm used. Supported by the B<-EncryptedData_encrypt>
|
||||
B<-EncryptedData_decrypt>, B<-encrypt> and B<-decrypt> options. When used
|
||||
with B<-encrypt> or B<-decrypt> the supplied key is used to wrap or unwrap the
|
||||
@@ -430,7 +431,7 @@ content encryption key using an AES key in the B<KEKRecipientInfo> type.
|
||||
|
||||
=item B<-secretkeyid id>
|
||||
|
||||
the key identifier for the supplied symmetric key for B<KEKRecipientInfo> type.
|
||||
The key identifier for the supplied symmetric key for B<KEKRecipientInfo> type.
|
||||
This option B<must> be present if the B<-secretkey> option is used with
|
||||
B<-encrypt>. With B<-decrypt> operations the B<id> is used to locate the
|
||||
relevant key if it is not supplied then an attempt is used to decrypt any
|
||||
@@ -438,13 +439,13 @@ B<KEKRecipientInfo> structures.
|
||||
|
||||
=item B<-econtent_type type>
|
||||
|
||||
set the encapsulated content type to B<type> if not supplied the B<Data> type
|
||||
Set the encapsulated content type to B<type> if not supplied the B<Data> type
|
||||
is used. The B<type> argument can be any valid OID name in either text or
|
||||
numerical format.
|
||||
|
||||
=item B<-inkey file>
|
||||
|
||||
the private key to use when signing or decrypting. This must match the
|
||||
The private key to use when signing or decrypting. This must match the
|
||||
corresponding certificate. If this option is not specified then the
|
||||
private key must be included in the certificate file specified with
|
||||
the B<-recip> or B<-signer> file. When signing this option can be used
|
||||
@@ -452,32 +453,37 @@ multiple times to specify successive keys.
|
||||
|
||||
=item B<-keyopt name:opt>
|
||||
|
||||
for signing and encryption this option can be used multiple times to
|
||||
For signing and encryption this option can be used multiple times to
|
||||
set customised parameters for the preceding key or certificate. It can
|
||||
currently be used to set RSA-PSS for signing, RSA-OAEP for encryption
|
||||
or to modify default parameters for ECDH.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the private key password source. For more information about the format of B<arg>
|
||||
The private key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<cert.pem...>
|
||||
|
||||
one or more certificates of message recipients: used when encrypting
|
||||
One or more certificates of message recipients: used when encrypting
|
||||
a message.
|
||||
|
||||
=item B<-to, -from, -subject>
|
||||
|
||||
the relevant mail headers. These are included outside the signed
|
||||
The relevant mail headers. These are included outside the signed
|
||||
portion of a message so they may be included manually. If signing
|
||||
then many S/MIME mail clients check the signers certificate's email
|
||||
address matches that specified in the From: address.
|
||||
@@ -549,28 +555,28 @@ with caution. For a fuller description see L<CMS_decrypt(3)>).
|
||||
|
||||
=item Z<>0
|
||||
|
||||
the operation was completely successfully.
|
||||
The operation was completely successfully.
|
||||
|
||||
=item Z<>1
|
||||
|
||||
an error occurred parsing the command options.
|
||||
An error occurred parsing the command options.
|
||||
|
||||
=item Z<>2
|
||||
|
||||
one of the input files could not be read.
|
||||
One of the input files could not be read.
|
||||
|
||||
=item Z<>3
|
||||
|
||||
an error occurred creating the CMS file or when reading the MIME
|
||||
An error occurred creating the CMS file or when reading the MIME
|
||||
message.
|
||||
|
||||
=item Z<>4
|
||||
|
||||
an error occurred decrypting or verifying the message.
|
||||
An error occurred decrypting or verifying the message.
|
||||
|
||||
=item Z<>5
|
||||
|
||||
the message was verified correctly but an error occurred writing out
|
||||
The message was verified correctly but an error occurred writing out
|
||||
the signers certificates.
|
||||
|
||||
=back
|
||||
@@ -728,7 +734,7 @@ The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2008-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2008-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -43,8 +43,8 @@ the DER form with header and footer lines.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -53,52 +53,52 @@ option is not specified.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write to or standard output by
|
||||
Specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
print out the CRL in text form.
|
||||
Print out the CRL in text form.
|
||||
|
||||
=item B<-nameopt option>
|
||||
|
||||
option which determines how the subject or issuer names are displayed. See
|
||||
Option which determines how the subject or issuer names are displayed. See
|
||||
the description of B<-nameopt> in L<x509(1)>.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
don't output the encoded version of the CRL.
|
||||
Don't output the encoded version of the CRL.
|
||||
|
||||
=item B<-hash>
|
||||
|
||||
output a hash of the issuer name. This can be use to lookup CRLs in
|
||||
Output a hash of the issuer name. This can be use to lookup CRLs in
|
||||
a directory by issuer name.
|
||||
|
||||
=item B<-hash_old>
|
||||
|
||||
outputs the "hash" of the CRL issuer name using the older algorithm
|
||||
as used by OpenSSL versions before 1.0.0.
|
||||
Outputs the "hash" of the CRL issuer name using the older algorithm
|
||||
as used by OpenSSL before version 1.0.0.
|
||||
|
||||
=item B<-issuer>
|
||||
|
||||
output the issuer name.
|
||||
Output the issuer name.
|
||||
|
||||
=item B<-lastupdate>
|
||||
|
||||
output the lastUpdate field.
|
||||
Output the lastUpdate field.
|
||||
|
||||
=item B<-nextupdate>
|
||||
|
||||
output the nextUpdate field.
|
||||
Output the nextUpdate field.
|
||||
|
||||
=item B<-CAfile file>
|
||||
|
||||
verify the signature on a CRL by looking up the issuing certificate in
|
||||
B<file>
|
||||
Verify the signature on a CRL by looking up the issuing certificate in
|
||||
B<file>.
|
||||
|
||||
=item B<-CApath dir>
|
||||
|
||||
verify the signature on a CRL by looking up the issuing certificate in
|
||||
Verify the signature on a CRL by looking up the issuing certificate in
|
||||
B<dir>. This directory must be a standard certificate directory: that
|
||||
is a hash of each subject name (using B<x509 -hash>) should be linked
|
||||
to each certificate.
|
||||
@@ -133,7 +133,7 @@ L<crl2pkcs7(1)>, L<ca(1)>, L<x509(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -34,13 +34,13 @@ Print out a usage message.
|
||||
|
||||
This specifies the CRL input format. B<DER> format is DER encoded CRL
|
||||
structure.B<PEM> (the default) is a base64 encoded version of
|
||||
the DER form with header and footer lines.
|
||||
the DER form with header and footer lines. The default format is PEM.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the PKCS#7 structure output format. B<DER> format is DER
|
||||
encoded PKCS#7 structure.B<PEM> (the default) is a base64 encoded version of
|
||||
the DER form with header and footer lines.
|
||||
the DER form with header and footer lines. The default format is PEM.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -49,19 +49,19 @@ option is not specified.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write the PKCS#7 structure to or standard
|
||||
Specifies the output filename to write the PKCS#7 structure to or standard
|
||||
output by default.
|
||||
|
||||
=item B<-certfile filename>
|
||||
|
||||
specifies a filename containing one or more certificates in B<PEM> format.
|
||||
Specifies a filename containing one or more certificates in B<PEM> format.
|
||||
All certificates in the file will be added to the PKCS#7 structure. This
|
||||
option can be used more than once to read certificates form multiple
|
||||
files.
|
||||
|
||||
=item B<-nocrl>
|
||||
|
||||
normally a CRL is included in the output file. With this option no CRL is
|
||||
Normally a CRL is included in the output file. With this option no CRL is
|
||||
included in the output file and a CRL is not read from the input file.
|
||||
|
||||
=back
|
||||
@@ -96,7 +96,7 @@ L<pkcs7(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -3,13 +3,13 @@
|
||||
=head1 NAME
|
||||
|
||||
openssl-dgst,
|
||||
dgst, sha, sha1, mdc2, ripemd160, sha224, sha256, sha384, sha512, md4, md5, blake2b, blake2s - message digests
|
||||
dgst - perform digest operations
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<openssl> B<dgst>
|
||||
[B<-help>]
|
||||
B<openssl dgst>
|
||||
[B<-I<digest>>]
|
||||
[B<-help>]
|
||||
[B<-c>]
|
||||
[B<-d>]
|
||||
[B<-hex>]
|
||||
@@ -24,13 +24,12 @@ B<openssl> B<dgst>
|
||||
[B<-signature filename>]
|
||||
[B<-hmac key>]
|
||||
[B<-fips-fingerprint>]
|
||||
[B<-rand file...>]
|
||||
[B<-engine id>]
|
||||
[B<-engine_impl>]
|
||||
[B<file...>]
|
||||
|
||||
B<openssl>
|
||||
[I<digest>]
|
||||
[B<...>]
|
||||
B<openssl> I<digest> [B<...>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -150,14 +149,19 @@ for example exactly 32 chars for gost-mac.
|
||||
|
||||
=back
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-fips-fingerprint>
|
||||
|
||||
Compute HMAC using a specific key for certain OpenSSL-FIPS operations.
|
||||
@@ -20,7 +20,8 @@ B<openssl dhparam>
|
||||
[B<-C>]
|
||||
[B<-2>]
|
||||
[B<-5>]
|
||||
[B<-rand> I<file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
[I<numbits>]
|
||||
|
||||
@@ -45,8 +46,8 @@ additional header and footer lines.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in> I<filename>
|
||||
|
||||
@@ -83,17 +84,22 @@ input file is ignored and parameters are generated instead. If not
|
||||
present but B<numbits> is present, parameters are generated with the
|
||||
default generator 2.
|
||||
|
||||
=item B<-rand> I<file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item I<numbits>
|
||||
|
||||
this option specifies that a parameter set should be generated of size
|
||||
This option specifies that a parameter set should be generated of size
|
||||
I<numbits>. It must be the last option. If this option is present then
|
||||
the input file is ignored and parameters are generated instead. If
|
||||
this option is not present but a generator (B<-2> or B<-5>) is
|
||||
@@ -101,20 +107,20 @@ present, parameters are generated with a default length of 2048 bits.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option inhibits the output of the encoded version of the parameters.
|
||||
This option inhibits the output of the encoded version of the parameters.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
this option prints out the DH parameters in human readable form.
|
||||
This option prints out the DH parameters in human readable form.
|
||||
|
||||
=item B<-C>
|
||||
|
||||
this option converts the parameters into C code. The parameters can then
|
||||
This option converts the parameters into C code. The parameters can then
|
||||
be loaded by calling the get_dhNNNN() function.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<dhparam>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<dhparam>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -150,7 +156,7 @@ L<dsaparam(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -18,6 +18,9 @@ B<openssl> B<dsa>
|
||||
[B<-aes128>]
|
||||
[B<-aes192>]
|
||||
[B<-aes256>]
|
||||
[B<-aria128>]
|
||||
[B<-aria192>]
|
||||
[B<-aria256>]
|
||||
[B<-camellia128>]
|
||||
[B<-camellia192>]
|
||||
[B<-camellia256>]
|
||||
@@ -60,8 +63,8 @@ PKCS#8 format is also accepted.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -71,7 +74,7 @@ prompted for.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-out filename>
|
||||
@@ -83,10 +86,10 @@ filename.
|
||||
|
||||
=item B<-passout arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
|
||||
These options encrypt the private key with the specified
|
||||
cipher before outputting it. A pass phrase is prompted for.
|
||||
@@ -98,30 +101,30 @@ These options can only be used with PEM format output files.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the public, private key components and parameters.
|
||||
Prints out the public, private key components and parameters.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the encoded version of the key.
|
||||
This option prevents output of the encoded version of the key.
|
||||
|
||||
=item B<-modulus>
|
||||
|
||||
this option prints out the value of the public key component of the key.
|
||||
This option prints out the value of the public key component of the key.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
by default a private key is read from the input file: with this option a
|
||||
By default, a private key is read from the input file. With this option a
|
||||
public key is read instead.
|
||||
|
||||
=item B<-pubout>
|
||||
|
||||
by default a private key is output. With this option a public
|
||||
By default, a private key is output. With this option a public
|
||||
key will be output instead. This option is automatically set if the input is
|
||||
a public key.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<dsa>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<dsa>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -169,7 +172,7 @@ L<genrsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -16,7 +16,8 @@ B<openssl dsaparam>
|
||||
[B<-noout>]
|
||||
[B<-text>]
|
||||
[B<-C>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-genkey>]
|
||||
[B<-engine id>]
|
||||
[B<numbits>]
|
||||
@@ -42,8 +43,8 @@ of the B<DER> format base64 encoded with additional header and footer lines.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -59,39 +60,44 @@ as the input filename.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option inhibits the output of the encoded version of the parameters.
|
||||
This option inhibits the output of the encoded version of the parameters.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
this option prints out the DSA parameters in human readable form.
|
||||
This option prints out the DSA parameters in human readable form.
|
||||
|
||||
=item B<-C>
|
||||
|
||||
this option converts the parameters into C code. The parameters can then
|
||||
This option converts the parameters into C code. The parameters can then
|
||||
be loaded by calling the get_dsaXXX() function.
|
||||
|
||||
=item B<-genkey>
|
||||
|
||||
this option will generate a DSA either using the specified or generated
|
||||
This option will generate a DSA either using the specified or generated
|
||||
parameters.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<numbits>
|
||||
|
||||
this option specifies that a parameter set should be generated of size
|
||||
This option specifies that a parameter set should be generated of size
|
||||
B<numbits>. It must be the last option. If this option is included then
|
||||
the input file (if any) is ignored.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<dsaparam>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<dsaparam>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -115,7 +121,7 @@ L<rsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -56,8 +56,8 @@ PKCS#8 format is also accepted.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -67,7 +67,7 @@ prompted for.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-out filename>
|
||||
@@ -79,7 +79,7 @@ filename.
|
||||
|
||||
=item B<-passout arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-des|-des3|-idea>
|
||||
@@ -95,24 +95,24 @@ These options can only be used with PEM format output files.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the public, private key components and parameters.
|
||||
Prints out the public, private key components and parameters.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the encoded version of the key.
|
||||
This option prevents output of the encoded version of the key.
|
||||
|
||||
=item B<-modulus>
|
||||
|
||||
this option prints out the value of the public key component of the key.
|
||||
This option prints out the value of the public key component of the key.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
by default a private key is read from the input file: with this option a
|
||||
By default, a private key is read from the input file. With this option a
|
||||
public key is read instead.
|
||||
|
||||
=item B<-pubout>
|
||||
|
||||
by default a private key is output. With this option a public
|
||||
By default a private key is output. With this option a public
|
||||
key will be output instead. This option is automatically set if the input is
|
||||
a public key.
|
||||
|
||||
@@ -142,11 +142,11 @@ This option omits the public key components from the private key output.
|
||||
|
||||
=item B<-check>
|
||||
|
||||
this option checks the consistency of an EC private or public key.
|
||||
This option checks the consistency of an EC private or public key.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<ec>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<ec>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -197,7 +197,7 @@ L<ecparam(1)>, L<dsa(1)>, L<rsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2003-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2003-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -22,7 +22,8 @@ B<openssl ecparam>
|
||||
[B<-conv_form arg>]
|
||||
[B<-param_enc arg>]
|
||||
[B<-no_seed>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-genkey>]
|
||||
[B<-engine id>]
|
||||
|
||||
@@ -47,8 +48,8 @@ header and footer lines.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -91,8 +92,8 @@ currently implemented EC parameters names and exit.
|
||||
=item B<-conv_form>
|
||||
|
||||
This specifies how the points on the elliptic curve are converted
|
||||
into octet strings. Possible values are: B<compressed>, B<uncompressed> (the
|
||||
default value) and B<hybrid>. For more information regarding
|
||||
into octet strings. Possible values are: B<compressed> (the default
|
||||
value), B<uncompressed> and B<hybrid>. For more information regarding
|
||||
the point conversion forms please read the X9.62 standard.
|
||||
B<Note> Due to patent issues the B<compressed> option is disabled
|
||||
by default for binary curves and can be enabled by defining
|
||||
@@ -117,17 +118,22 @@ is included in the ECParameters structure (see RFC 3279).
|
||||
|
||||
This option will generate an EC private key using the specified parameters.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<ecparam>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<ecparam>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -176,7 +182,7 @@ L<ec(1)>, L<dsaparam(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2003-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2003-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -7,7 +7,7 @@ enc - symmetric cipher routines
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<openssl enc -ciphername>
|
||||
B<openssl enc -I<cipher>>
|
||||
[B<-help>]
|
||||
[B<-ciphers>]
|
||||
[B<-in filename>]
|
||||
@@ -15,7 +15,8 @@ B<openssl enc -ciphername>
|
||||
[B<-pass arg>]
|
||||
[B<-e>]
|
||||
[B<-d>]
|
||||
[B<-a/-base64>]
|
||||
[B<-a>]
|
||||
[B<-base64>]
|
||||
[B<-A>]
|
||||
[B<-k password>]
|
||||
[B<-kfile filename>]
|
||||
@@ -26,14 +27,20 @@ B<openssl enc -ciphername>
|
||||
[B<-nosalt>]
|
||||
[B<-z>]
|
||||
[B<-md digest>]
|
||||
[B<-iter count>]
|
||||
[B<-pbkdf2>]
|
||||
[B<-p>]
|
||||
[B<-P>]
|
||||
[B<-bufsize number>]
|
||||
[B<-nopad>]
|
||||
[B<-debug>]
|
||||
[B<-none>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
|
||||
B<openssl> I<[cipher]> [B<...>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The symmetric cipher commands allow data to be encrypted or decrypted
|
||||
@@ -55,47 +62,47 @@ List all supported ciphers.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
the input filename, standard input by default.
|
||||
The input filename, standard input by default.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
the output filename, standard output by default.
|
||||
The output filename, standard output by default.
|
||||
|
||||
=item B<-pass arg>
|
||||
|
||||
the password source. For more information about the format of B<arg>
|
||||
The password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-e>
|
||||
|
||||
encrypt the input data: this is the default.
|
||||
Encrypt the input data: this is the default.
|
||||
|
||||
=item B<-d>
|
||||
|
||||
decrypt the input data.
|
||||
Decrypt the input data.
|
||||
|
||||
=item B<-a>
|
||||
|
||||
base64 process the data. This means that if encryption is taking place
|
||||
Base64 process the data. This means that if encryption is taking place
|
||||
the data is base64 encoded after encryption. If decryption is set then
|
||||
the input data is base64 decoded before being decrypted.
|
||||
|
||||
=item B<-base64>
|
||||
|
||||
same as B<-a>
|
||||
Same as B<-a>
|
||||
|
||||
=item B<-A>
|
||||
|
||||
if the B<-a> option is set then base64 process the data on one line.
|
||||
If the B<-a> option is set then base64 process the data on one line.
|
||||
|
||||
=item B<-k password>
|
||||
|
||||
the password to derive the key from. This is for compatibility with previous
|
||||
The password to derive the key from. This is for compatibility with previous
|
||||
versions of OpenSSL. Superseded by the B<-pass> argument.
|
||||
|
||||
=item B<-kfile filename>
|
||||
|
||||
read the password to derive the key from the first line of B<filename>.
|
||||
Read the password to derive the key from the first line of B<filename>.
|
||||
This is for compatibility with previous versions of OpenSSL. Superseded by
|
||||
the B<-pass> argument.
|
||||
|
||||
@@ -104,57 +111,67 @@ the B<-pass> argument.
|
||||
Use the specified digest to create the key from the passphrase.
|
||||
The default algorithm is sha-256.
|
||||
|
||||
=item B<-iter count>
|
||||
|
||||
Use a given number of iterations on the password in deriving the encryption key.
|
||||
High values increase the time required to brute-force the resulting file.
|
||||
This option enables the use of PBKDF2 algorithm to derive the key.
|
||||
|
||||
=item B<-pbkdf2>
|
||||
|
||||
Use PBKDF2 algorithm with default iteration count unless otherwise specified.
|
||||
|
||||
=item B<-nosalt>
|
||||
|
||||
don't use a salt in the key derivation routines. This option B<SHOULD NOT> be
|
||||
Don't use a salt in the key derivation routines. This option B<SHOULD NOT> be
|
||||
used except for test purposes or compatibility with ancient versions of
|
||||
OpenSSL.
|
||||
|
||||
=item B<-salt>
|
||||
|
||||
use salt (randomly generated or provide with B<-S> option) when
|
||||
encrypting (this is the default).
|
||||
Use salt (randomly generated or provide with B<-S> option) when
|
||||
encrypting, this is the default.
|
||||
|
||||
=item B<-S salt>
|
||||
|
||||
the actual salt to use: this must be represented as a string of hex digits.
|
||||
The actual salt to use: this must be represented as a string of hex digits.
|
||||
|
||||
=item B<-K key>
|
||||
|
||||
the actual key to use: this must be represented as a string comprised only
|
||||
The actual key to use: this must be represented as a string comprised only
|
||||
of hex digits. If only the key is specified, the IV must additionally specified
|
||||
using the B<-iv> option. When both a key and a password are specified, the
|
||||
key given with the B<-K> option will be used and the IV generated from the
|
||||
password will be taken. It probably does not make much sense to specify
|
||||
both key and password.
|
||||
password will be taken. It does not make much sense to specify both key
|
||||
and password.
|
||||
|
||||
=item B<-iv IV>
|
||||
|
||||
the actual IV to use: this must be represented as a string comprised only
|
||||
The actual IV to use: this must be represented as a string comprised only
|
||||
of hex digits. When only the key is specified using the B<-K> option, the
|
||||
IV must explicitly be defined. When a password is being specified using
|
||||
one of the other options, the IV is generated from this password.
|
||||
|
||||
=item B<-p>
|
||||
|
||||
print out the key and IV used.
|
||||
Print out the key and IV used.
|
||||
|
||||
=item B<-P>
|
||||
|
||||
print out the key and IV used then immediately exit: don't do any encryption
|
||||
Print out the key and IV used then immediately exit: don't do any encryption
|
||||
or decryption.
|
||||
|
||||
=item B<-bufsize number>
|
||||
|
||||
set the buffer size for I/O
|
||||
Set the buffer size for I/O.
|
||||
|
||||
=item B<-nopad>
|
||||
|
||||
disable standard block padding
|
||||
Disable standard block padding.
|
||||
|
||||
=item B<-debug>
|
||||
|
||||
debug the BIOs used for I/O.
|
||||
Debug the BIOs used for I/O.
|
||||
|
||||
=item B<-z>
|
||||
|
||||
@@ -166,23 +183,37 @@ or zlib-dynamic option.
|
||||
|
||||
Use NULL cipher (no encryption or decryption of input).
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=back
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The program can be called either as B<openssl ciphername> or
|
||||
B<openssl enc -ciphername>. But the first form doesn't work with
|
||||
The program can be called either as B<openssl cipher> or
|
||||
B<openssl enc -cipher>. The first form doesn't work with
|
||||
engine-provided ciphers, because this form is processed before the
|
||||
configuration file is read and any ENGINEs loaded.
|
||||
Use the B<list> command to get a list of supported ciphers.
|
||||
|
||||
Engines which provide entirely new encryption algorithms (such as ccgost
|
||||
Engines which provide entirely new encryption algorithms (such as the ccgost
|
||||
engine which provides gost89 algorithm) should be configured in the
|
||||
configuration file. Engines, specified in the command line using -engine
|
||||
configuration file. Engines specified on the command line using -engine
|
||||
options can only be used for hardware-assisted implementations of
|
||||
ciphers, which are supported by OpenSSL core or other engine, specified
|
||||
ciphers which are supported by the OpenSSL core or another engine specified
|
||||
in the configuration file.
|
||||
|
||||
When enc command lists supported ciphers, ciphers provided by engines,
|
||||
When the enc command lists supported ciphers, ciphers provided by engines,
|
||||
specified in the configuration files are listed too.
|
||||
|
||||
A password will be prompted for to derive the key and IV if necessary.
|
||||
@@ -200,12 +231,12 @@ encrypting a file and read from the encrypted file when it is decrypted.
|
||||
|
||||
Some of the ciphers do not have large keys and others have security
|
||||
implications if not used correctly. A beginner is advised to just use
|
||||
a strong block cipher in CBC mode such as bf or des3.
|
||||
a strong block cipher, such as AES, in CBC mode.
|
||||
|
||||
All the block ciphers normally use PKCS#5 padding also known as standard block
|
||||
padding: this allows a rudimentary integrity or password check to be
|
||||
performed. However since the chance of random data passing the test is
|
||||
better than 1 in 256 it isn't a very good test.
|
||||
All the block ciphers normally use PKCS#5 padding, also known as standard
|
||||
block padding. This allows a rudimentary integrity or password check to
|
||||
be performed. However since the chance of random data passing the test
|
||||
is better than 1 in 256 it isn't a very good test.
|
||||
|
||||
If padding is disabled then the input data must be a multiple of the cipher
|
||||
block length.
|
||||
@@ -219,13 +250,27 @@ Blowfish and RC5 algorithms use a 128 bit key.
|
||||
Note that some of these ciphers can be disabled at compile time
|
||||
and some are available only if an appropriate engine is configured
|
||||
in the configuration file. The output of the B<enc> command run with
|
||||
unsupported options (for example B<openssl enc -help>) includes a
|
||||
the B<-ciphers> option (that is B<openssl enc -ciphers>) produces a
|
||||
list of ciphers, supported by your version of OpenSSL, including
|
||||
ones provided by configured engines.
|
||||
|
||||
The B<enc> program does not support authenticated encryption modes
|
||||
like CCM and GCM. The utility does not store or retrieve the
|
||||
authentication tag.
|
||||
like CCM and GCM, and will not support such modes in the future.
|
||||
The B<enc> interface by necessity must begin streaming output (e.g.,
|
||||
to standard output when B<-out> is not used before the authentication
|
||||
tag could be validated, leading to the usage of B<enc> in pipelines
|
||||
that begin processing untrusted data and are not capable of rolling
|
||||
back upon authentication failure. The AEAD modes currently in common
|
||||
use also suffer from catastrophic failure of confidentiality and/or
|
||||
integrity upon reuse of key/iv/nonce, and since B<enc> places the
|
||||
entire burden of key/iv/nonce management upon the user, the risk of
|
||||
exposing AEAD modes is too great to allow. These key/iv/nonce
|
||||
management issues also affect other modes currently exposed in B<enc>,
|
||||
but the failure modes are less extreme in these cases, and the
|
||||
functionality cannot be removed with a stable release branch.
|
||||
For bulk encryption of data, whether using authenticated encryption
|
||||
modes or other modes, L<cms(1)> is recommended, as it provides a
|
||||
standard data format and performs the needed key/iv/nonce management.
|
||||
|
||||
|
||||
base64 Base 64
|
||||
@@ -245,7 +290,7 @@ authentication tag.
|
||||
|
||||
des-cbc DES in CBC mode
|
||||
des Alias for des-cbc
|
||||
des-cfb DES in CBC mode
|
||||
des-cfb DES in CFB mode
|
||||
des-ofb DES in OFB mode
|
||||
des-ecb DES in ECB mode
|
||||
|
||||
@@ -294,9 +339,19 @@ authentication tag.
|
||||
aes-[128|192|256]-cfb 128/192/256 bit AES in 128 bit CFB mode
|
||||
aes-[128|192|256]-cfb1 128/192/256 bit AES in 1 bit CFB mode
|
||||
aes-[128|192|256]-cfb8 128/192/256 bit AES in 8 bit CFB mode
|
||||
aes-[128|192|256]-ctr 128/192/256 bit AES in CTR mode
|
||||
aes-[128|192|256]-ecb 128/192/256 bit AES in ECB mode
|
||||
aes-[128|192|256]-ofb 128/192/256 bit AES in OFB mode
|
||||
|
||||
camellia-[128|192|256]-cbc 128/192/256 bit Camellia in CBC mode
|
||||
camellia[128|192|256] Alias for camellia-[128|192|256]-cbc
|
||||
camellia-[128|192|256]-cfb 128/192/256 bit Camellia in 128 bit CFB mode
|
||||
camellia-[128|192|256]-cfb1 128/192/256 bit Camellia in 1 bit CFB mode
|
||||
camellia-[128|192|256]-cfb8 128/192/256 bit Camellia in 8 bit CFB mode
|
||||
camellia-[128|192|256]-ctr 128/192/256 bit Camellia in CTR mode
|
||||
camellia-[128|192|256]-ecb 128/192/256 bit Camellia in ECB mode
|
||||
camellia-[128|192|256]-ofb 128/192/256 bit Camellia in OFB mode
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
Just base64 encode a binary file:
|
||||
@@ -332,19 +387,17 @@ Decrypt some data using a supplied 40 bit RC4 key:
|
||||
|
||||
The B<-A> option when used with large files doesn't work properly.
|
||||
|
||||
There should be an option to allow an iteration count to be included.
|
||||
|
||||
The B<enc> program only supports a fixed number of algorithms with
|
||||
certain parameters. So if, for example, you want to use RC2 with a
|
||||
76 bit key or RC4 with an 84 bit key you can't use this program.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The default digest was changed from MD5 to SHA256 in Openssl 1.1.
|
||||
The default digest was changed from MD5 to SHA256 in Openssl 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -68,7 +68,7 @@ See the example below.
|
||||
|
||||
To list all the commands available to a dynamic engine:
|
||||
|
||||
% openssl engine -t -tt -vvvv dynamic
|
||||
$ openssl engine -t -tt -vvvv dynamic
|
||||
(dynamic) Dynamic engine loading support
|
||||
[ unavailable ]
|
||||
SO_PATH: Specifies the path to the new ENGINE shared library
|
||||
@@ -88,7 +88,7 @@ To list all the commands available to a dynamic engine:
|
||||
|
||||
To list the capabilities of the I<rsax> engine:
|
||||
|
||||
% openssl engine -c
|
||||
$ openssl engine -c
|
||||
(rsax) RSAX engine support
|
||||
[RSA]
|
||||
(dynamic) Dynamic engine loading support
|
||||
@@ -103,6 +103,10 @@ The path to the engines directory.
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<config(5)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
@@ -13,13 +13,17 @@ B<openssl> B<gendsa>
|
||||
[B<-aes128>]
|
||||
[B<-aes192>]
|
||||
[B<-aes256>]
|
||||
[B<-aria128>]
|
||||
[B<-aria192>]
|
||||
[B<-aria256>]
|
||||
[B<-camellia128>]
|
||||
[B<-camellia192>]
|
||||
[B<-camellia256>]
|
||||
[B<-des>]
|
||||
[B<-des3>]
|
||||
[B<-idea>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
[B<paramfile>]
|
||||
|
||||
@@ -41,23 +45,28 @@ Print out a usage message.
|
||||
Output the key to the specified file. If this argument is not specified then
|
||||
standard output is used.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
|
||||
These options encrypt the private key with specified
|
||||
cipher before outputting it. A pass phrase is prompted for.
|
||||
If none of these options is specified no encryption is used.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<gendsa>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<gendsa>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -82,7 +91,7 @@ L<rsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -12,7 +12,7 @@ B<openssl> B<genpkey>
|
||||
[B<-out filename>]
|
||||
[B<-outform PEM|DER>]
|
||||
[B<-pass arg>]
|
||||
[B<-cipher>]
|
||||
[B<-I<cipher>>]
|
||||
[B<-engine id>]
|
||||
[B<-paramfile file>]
|
||||
[B<-algorithm alg>]
|
||||
@@ -39,21 +39,21 @@ standard output is used.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format DER or PEM.
|
||||
This specifies the output format DER or PEM. The default format is PEM.
|
||||
|
||||
=item B<-pass arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-cipher>
|
||||
=item B<-I<cipher>>
|
||||
|
||||
This option encrypts the private key with the supplied cipher. Any algorithm
|
||||
name accepted by EVP_get_cipherbyname() is acceptable such as B<des3>.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<genpkey>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<genpkey>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms. If used this option should precede all other
|
||||
@@ -61,19 +61,19 @@ options.
|
||||
|
||||
=item B<-algorithm alg>
|
||||
|
||||
public key algorithm to use such as RSA, DSA or DH. If used this option must
|
||||
Public key algorithm to use such as RSA, DSA or DH. If used this option must
|
||||
precede any B<-pkeyopt> options. The options B<-paramfile> and B<-algorithm>
|
||||
are mutually exclusive.
|
||||
|
||||
=item B<-pkeyopt opt:value>
|
||||
|
||||
set the public key algorithm option B<opt> to B<value>. The precise set of
|
||||
Set the public key algorithm option B<opt> to B<value>. The precise set of
|
||||
options supported depends on the public key algorithm used and its
|
||||
implementation. See B<KEY GENERATION OPTIONS> below for more details.
|
||||
|
||||
=item B<-genparam>
|
||||
|
||||
generate a set of parameters instead of a private key. If used this option must
|
||||
Generate a set of parameters instead of a private key. If used this option must
|
||||
precede any B<-algorithm>, B<-paramfile> or B<-pkeyopt> options.
|
||||
|
||||
=item B<-paramfile filename>
|
||||
@@ -105,6 +105,10 @@ below.
|
||||
|
||||
The number of bits in the generated key. If not specified 1024 is used.
|
||||
|
||||
=item B<rsa_keygen_primes:numprimes>
|
||||
|
||||
The number of primes in the generated key. If not specified 2 is used.
|
||||
|
||||
=item B<rsa_keygen_pubexp:value>
|
||||
|
||||
The RSA public exponent value. This can be a large decimal or
|
||||
@@ -112,6 +116,50 @@ hexadecimal value if preceded by B<0x>. Default value is 65537.
|
||||
|
||||
=back
|
||||
|
||||
=head1 RSA-PSS KEY GENERATION OPTIONS
|
||||
|
||||
Note: by default an B<RSA-PSS> key has no parameter restrictions.
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<rsa_keygen_bits:numbits>, B<rsa_keygen_pubexp:value>
|
||||
|
||||
These options have the same meaning as the B<RSA> algorithm.
|
||||
|
||||
=item B<rsa_pss_keygen_md:digest>
|
||||
|
||||
=item B<rsa_keygen_pubexp:value>
|
||||
|
||||
The RSA public exponent value. This can be a large decimal or
|
||||
hexadecimal value if preceded by B<0x>. Default value is 65537.
|
||||
|
||||
=back
|
||||
|
||||
=head1 RSA-PSS KEY GENERATION OPTIONS
|
||||
|
||||
Note: by default an B<RSA-PSS> key has no parameter restrictions.
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<rsa_keygen_bits:numbits>, B<rsa_keygen_pubexp:value>
|
||||
|
||||
These options have the same meaning as the B<RSA> algorithm.
|
||||
|
||||
=item B<rsa_pss_keygen_md:digest>
|
||||
|
||||
If set the key is restricted and can only use B<digest> for signing.
|
||||
|
||||
=item B<rsa_pss_keygen_mgf1_md:digest>
|
||||
|
||||
If set the key is restricted and can only use B<digest> as it's MGF1
|
||||
parameter.
|
||||
|
||||
=item B<rsa_pss_keygen_saltlen:len>
|
||||
|
||||
If set the key is restricted and B<len> specifies the minimum salt length.
|
||||
|
||||
=back
|
||||
|
||||
=head1 DSA PARAMETER GENERATION OPTIONS
|
||||
|
||||
=over 4
|
||||
@@ -155,11 +203,11 @@ key from a named curve without the need to use an explicit parameter file.
|
||||
|
||||
=item B<ec_paramgen_curve:curve>
|
||||
|
||||
the EC curve to use. OpenSSL supports NIST curve names such as "P-256".
|
||||
The EC curve to use. OpenSSL supports NIST curve names such as "P-256".
|
||||
|
||||
=item B<ec_param_enc:encoding>
|
||||
|
||||
the encoding to use for parameters. The "encoding" parameter must be either
|
||||
The encoding to use for parameters. The "encoding" parameter must be either
|
||||
"named_curve" or "explicit".
|
||||
|
||||
=back
|
||||
@@ -268,7 +316,7 @@ were added in OpenSSL 1.0.2.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -25,8 +25,10 @@ B<openssl> B<genrsa>
|
||||
[B<-idea>]
|
||||
[B<-f4>]
|
||||
[B<-3>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
[B<-primes num>]
|
||||
[B<numbits>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
@@ -48,8 +50,8 @@ standard output is used.
|
||||
|
||||
=item B<-passout arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
The output file password source. For more information about the format
|
||||
of B<arg> see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
|
||||
@@ -60,48 +62,55 @@ for if it is not supplied via the B<-passout> argument.
|
||||
|
||||
=item B<-F4|-3>
|
||||
|
||||
the public exponent to use, either 65537 or 3. The default is 65537.
|
||||
The public exponent to use, either 65537 or 3. The default is 65537.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<genrsa>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<genrsa>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-primes num>
|
||||
|
||||
Specify the number of primes to use while generating the RSA key. The B<num>
|
||||
parameter must be a positive integer that is greater than 1 and less than 16.
|
||||
If B<num> is greater than 2, then the generated key is called a 'multi-prime'
|
||||
RSA key, which is defined in RFC 8017.
|
||||
|
||||
=item B<numbits>
|
||||
|
||||
the size of the private key to generate in bits. This must be the last option
|
||||
specified. The default is 2048.
|
||||
The size of the private key to generate in bits. This must be the last option
|
||||
specified. The default is 2048 and values less than 512 are not allowed.
|
||||
|
||||
=back
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
RSA private key generation essentially involves the generation of two prime
|
||||
numbers. When generating a private key various symbols will be output to
|
||||
RSA private key generation essentially involves the generation of two or more
|
||||
prime numbers. When generating a private key various symbols will be output to
|
||||
indicate the progress of the generation. A B<.> represents each number which
|
||||
has passed an initial sieve test, B<+> means a number has passed a single
|
||||
round of the Miller-Rabin primality test. A newline means that the number has
|
||||
passed all the prime tests (the actual number depends on the key size).
|
||||
round of the Miller-Rabin primality test, B<*> means the current prime starts
|
||||
a regenerating progress due to some failed tests. A newline means that the number
|
||||
has passed all the prime tests (the actual number depends on the key size).
|
||||
|
||||
Because key generation is a random process the time taken to generate a key
|
||||
may vary somewhat.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
A quirk of the prime generation algorithm is that it cannot generate small
|
||||
primes. Therefore the number of bits should not be less that 64. For typical
|
||||
private keys this will not matter because for security reasons they will
|
||||
be much larger (typically 1024 bits).
|
||||
may vary somewhat. But in general, more primes lead to less generation time
|
||||
of a key.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@@ -9,12 +9,14 @@ list - list algorithms and features
|
||||
|
||||
B<openssl list>
|
||||
[B<-help>]
|
||||
[B<-1>]
|
||||
[B<-commands>]
|
||||
[B<-digest-commands>]
|
||||
[B<-digest-algorithms>]
|
||||
[B<-cipher-commands>]
|
||||
[B<-cipher-algorithms>]
|
||||
[B<-public-key-algorithms>]
|
||||
[B<-public-key-methods>]
|
||||
[B<-disabled>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
@@ -28,7 +30,12 @@ features.
|
||||
|
||||
=item B<-help>
|
||||
|
||||
Display out a usage message.
|
||||
Display a usage message.
|
||||
|
||||
=item B<-1>
|
||||
|
||||
List the commands, digest-commands, or cipher-commands in a single column.
|
||||
If used, this option must be given first.
|
||||
|
||||
=item B<-commands>
|
||||
|
||||
@@ -63,6 +70,11 @@ then B<foo> is an alias for the official algorithm name, B<bar>.
|
||||
Display a list of public key algorithms, with each algorithm as
|
||||
a block of multiple lines, all but the first are indented.
|
||||
|
||||
=item B<-public-key-methods>
|
||||
|
||||
Display a list of public key method OIDs: this also includes public key methods
|
||||
without an associated ASN.1 method, for example, KDF algorithms.
|
||||
|
||||
=item B<-disabled>
|
||||
|
||||
Display a list of disabled features, those that were compiled out
|
||||
@@ -72,7 +84,7 @@ of the installation.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -35,11 +35,11 @@ option is not specified.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename or standard output by default.
|
||||
Specifies the output filename or standard output by default.
|
||||
|
||||
=item B<-toseq>
|
||||
|
||||
normally a Netscape certificate sequence will be input and the output
|
||||
Normally a Netscape certificate sequence will be input and the output
|
||||
is the certificates contained in it. With the B<-toseq> option the
|
||||
situation is reversed: a Netscape certificate sequence is created from
|
||||
a file of certificates.
|
||||
@@ -63,7 +63,7 @@ The B<PEM> encoded form uses the same headers and footers as a certificate:
|
||||
-----BEGIN CERTIFICATE-----
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
A Netscape certificate sequence is a Netscape specific form that can be sent
|
||||
A Netscape certificate sequence is a Netscape specific format that can be sent
|
||||
to browsers as an alternative to the standard PKCS#7 format when several
|
||||
certificates are sent to the browser: for example during certificate enrollment.
|
||||
It is used by Netscape certificate server for example.
|
||||
@@ -75,7 +75,7 @@ output files and allowing multiple certificate files to be used.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -75,17 +75,19 @@ B<openssl> B<ocsp>
|
||||
[B<-no_cert_checks>]
|
||||
[B<-no_explicit>]
|
||||
[B<-port num>]
|
||||
[B<-ignore_err>]
|
||||
[B<-index file>]
|
||||
[B<-CA file>]
|
||||
[B<-rsigner file>]
|
||||
[B<-rkey file>]
|
||||
[B<-rother file>]
|
||||
[B<-rsigopt nm:v>]
|
||||
[B<-resp_no_certs>]
|
||||
[B<-nmin n>]
|
||||
[B<-ndays n>]
|
||||
[B<-resp_key_id>]
|
||||
[B<-nrequest n>]
|
||||
[B<-md5|-sha1|...>]
|
||||
[B<-I<digest>>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -154,25 +156,25 @@ a nonce is automatically added specifying B<no_nonce> overrides this.
|
||||
|
||||
=item B<-req_text>, B<-resp_text>, B<-text>
|
||||
|
||||
print out the text form of the OCSP request, response or both respectively.
|
||||
Print out the text form of the OCSP request, response or both respectively.
|
||||
|
||||
=item B<-reqout file>, B<-respout file>
|
||||
|
||||
write out the DER encoded certificate request or response to B<file>.
|
||||
Write out the DER encoded certificate request or response to B<file>.
|
||||
|
||||
=item B<-reqin file>, B<-respin file>
|
||||
|
||||
read OCSP request or response file from B<file>. These option are ignored
|
||||
Read OCSP request or response file from B<file>. These option are ignored
|
||||
if OCSP request or response creation is implied by other options (for example
|
||||
with B<serial>, B<cert> and B<host> options).
|
||||
|
||||
=item B<-url responder_url>
|
||||
|
||||
specify the responder URL. Both HTTP and HTTPS (SSL/TLS) URLs can be specified.
|
||||
Specify the responder URL. Both HTTP and HTTPS (SSL/TLS) URLs can be specified.
|
||||
|
||||
=item B<-host hostname:port>, B<-path pathname>
|
||||
|
||||
if the B<host> option is present then the OCSP request is sent to the host
|
||||
If the B<host> option is present then the OCSP request is sent to the host
|
||||
B<hostname> on port B<port>. B<path> specifies the HTTP path name to use
|
||||
or "/" by default. This is equivalent to specifying B<-url> with scheme
|
||||
http:// and the given hostname, port, and pathname.
|
||||
@@ -185,11 +187,11 @@ This may be repeated.
|
||||
|
||||
=item B<-timeout seconds>
|
||||
|
||||
connection timeout to the OCSP responder in seconds
|
||||
Connection timeout to the OCSP responder in seconds
|
||||
|
||||
=item B<-CAfile file>, B<-CApath pathname>
|
||||
|
||||
file or pathname containing trusted CA certificates. These are used to verify
|
||||
File or pathname containing trusted CA certificates. These are used to verify
|
||||
the signature on the OCSP response.
|
||||
|
||||
=item B<-no-CAfile>
|
||||
@@ -213,65 +215,66 @@ See L<verify(1)> manual page for details.
|
||||
|
||||
=item B<-verify_other file>
|
||||
|
||||
file containing additional certificates to search when attempting to locate
|
||||
File containing additional certificates to search when attempting to locate
|
||||
the OCSP response signing certificate. Some responders omit the actual signer's
|
||||
certificate from the response: this option can be used to supply the necessary
|
||||
certificate in such cases.
|
||||
|
||||
=item B<-trust_other>
|
||||
|
||||
the certificates specified by the B<-verify_other> option should be explicitly
|
||||
The certificates specified by the B<-verify_other> option should be explicitly
|
||||
trusted and no additional checks will be performed on them. This is useful
|
||||
when the complete responder certificate chain is not available or trusting a
|
||||
root CA is not appropriate.
|
||||
|
||||
=item B<-VAfile file>
|
||||
|
||||
file containing explicitly trusted responder certificates. Equivalent to the
|
||||
File containing explicitly trusted responder certificates. Equivalent to the
|
||||
B<-verify_other> and B<-trust_other> options.
|
||||
|
||||
=item B<-noverify>
|
||||
|
||||
don't attempt to verify the OCSP response signature or the nonce values. This
|
||||
option will normally only be used for debugging since it disables all verification
|
||||
of the responders certificate.
|
||||
Don't attempt to verify the OCSP response signature or the nonce
|
||||
values. This option will normally only be used for debugging since it
|
||||
disables all verification of the responders certificate.
|
||||
|
||||
=item B<-no_intern>
|
||||
|
||||
ignore certificates contained in the OCSP response when searching for the
|
||||
Ignore certificates contained in the OCSP response when searching for the
|
||||
signers certificate. With this option the signers certificate must be specified
|
||||
with either the B<-verify_other> or B<-VAfile> options.
|
||||
|
||||
=item B<-no_signature_verify>
|
||||
|
||||
don't check the signature on the OCSP response. Since this option tolerates invalid
|
||||
signatures on OCSP responses it will normally only be used for testing purposes.
|
||||
Don't check the signature on the OCSP response. Since this option
|
||||
tolerates invalid signatures on OCSP responses it will normally only be
|
||||
used for testing purposes.
|
||||
|
||||
=item B<-no_cert_verify>
|
||||
|
||||
don't verify the OCSP response signers certificate at all. Since this option allows
|
||||
the OCSP response to be signed by any certificate it should only be used for
|
||||
testing purposes.
|
||||
Don't verify the OCSP response signers certificate at all. Since this
|
||||
option allows the OCSP response to be signed by any certificate it should
|
||||
only be used for testing purposes.
|
||||
|
||||
=item B<-no_chain>
|
||||
|
||||
do not use certificates in the response as additional untrusted CA
|
||||
Do not use certificates in the response as additional untrusted CA
|
||||
certificates.
|
||||
|
||||
=item B<-no_explicit>
|
||||
|
||||
do not explicitly trust the root CA if it is set to be trusted for OCSP signing.
|
||||
Do not explicitly trust the root CA if it is set to be trusted for OCSP signing.
|
||||
|
||||
=item B<-no_cert_checks>
|
||||
|
||||
don't perform any additional checks on the OCSP response signers certificate.
|
||||
Don't perform any additional checks on the OCSP response signers certificate.
|
||||
That is do not make any checks to see if the signers certificate is authorised
|
||||
to provide the necessary status information: as a result this option should
|
||||
only be used for testing purposes.
|
||||
|
||||
=item B<-validity_period nsec>, B<-status_age age>
|
||||
|
||||
these options specify the range of times, in seconds, which will be tolerated
|
||||
These options specify the range of times, in seconds, which will be tolerated
|
||||
in an OCSP response. Each certificate status response includes a B<notBefore>
|
||||
time and an optional B<notAfter> time. The current time should fall between
|
||||
these two values, but the interval between the two times may be only a few
|
||||
@@ -285,9 +288,9 @@ status information is immediately available. In this case the age of the
|
||||
B<notBefore> field is checked to see it is not older than B<age> seconds old.
|
||||
By default this additional check is not performed.
|
||||
|
||||
=item B<-[digest]>
|
||||
=item B<-I<digest>>
|
||||
|
||||
this option sets digest algorithm to use for certificate identification in the
|
||||
This option sets digest algorithm to use for certificate identification in the
|
||||
OCSP request. Any digest supported by the OpenSSL B<dgst> command can be used.
|
||||
The default is SHA-1. This option may be used multiple times to specify the
|
||||
digest used by subsequent certificate identifiers.
|
||||
@@ -300,16 +303,17 @@ digest used by subsequent certificate identifiers.
|
||||
|
||||
=item B<-index indexfile>
|
||||
|
||||
B<indexfile> is a text index file in B<ca> format containing certificate revocation
|
||||
information.
|
||||
The B<indexfile> parameter is the name of a text index file in B<ca>
|
||||
format containing certificate revocation information.
|
||||
|
||||
If the B<index> option is specified the B<ocsp> utility is in responder mode, otherwise
|
||||
it is in client mode. The request(s) the responder processes can be either specified on
|
||||
the command line (using B<issuer> and B<serial> options), supplied in a file (using the
|
||||
B<reqin> option) or via external OCSP clients (if B<port> or B<url> is specified).
|
||||
If the B<index> option is specified the B<ocsp> utility is in responder
|
||||
mode, otherwise it is in client mode. The request(s) the responder
|
||||
processes can be either specified on the command line (using B<issuer>
|
||||
and B<serial> options), supplied in a file (using the B<reqin> option)
|
||||
or via external OCSP clients (if B<port> or B<url> is specified).
|
||||
|
||||
If the B<index> option is present then the B<CA> and B<rsigner> options must also be
|
||||
present.
|
||||
If the B<index> option is present then the B<CA> and B<rsigner> options
|
||||
must also be present.
|
||||
|
||||
=item B<-CA file>
|
||||
|
||||
@@ -329,17 +333,29 @@ Don't include any certificates in the OCSP response.
|
||||
|
||||
=item B<-resp_key_id>
|
||||
|
||||
Identify the signer certificate using the key ID, default is to use the subject name.
|
||||
Identify the signer certificate using the key ID, default is to use the
|
||||
subject name.
|
||||
|
||||
=item B<-rkey file>
|
||||
|
||||
The private key to sign OCSP responses with: if not present the file specified in the
|
||||
B<rsigner> option is used.
|
||||
The private key to sign OCSP responses with: if not present the file
|
||||
specified in the B<rsigner> option is used.
|
||||
|
||||
=item B<-rsigopt nm:v>
|
||||
|
||||
Pass options to the signature algorithm when signing OCSP responses.
|
||||
Names and values of these options are algorithm-specific.
|
||||
|
||||
=item B<-port portnum>
|
||||
|
||||
Port to listen for OCSP requests on. The port may also be specified using the B<url>
|
||||
option.
|
||||
Port to listen for OCSP requests on. The port may also be specified
|
||||
using the B<url> option.
|
||||
|
||||
=item B<-ignore_err>
|
||||
|
||||
Ignore malformed requests or responses: When acting as an OCSP client, retry if
|
||||
a malformed response is received. When acting as an OCSP responder, continue
|
||||
running instead of terminating upon receiving a malformed request.
|
||||
|
||||
=item B<-nrequest number>
|
||||
|
||||
@@ -347,9 +363,10 @@ The OCSP server will exit after receiving B<number> requests, default unlimited.
|
||||
|
||||
=item B<-nmin minutes>, B<-ndays days>
|
||||
|
||||
Number of minutes or days when fresh revocation information is available: used in the
|
||||
B<nextUpdate> field. If neither option is present then the B<nextUpdate> field
|
||||
is omitted meaning fresh revocation information is immediately available.
|
||||
Number of minutes or days when fresh revocation information is available:
|
||||
used in the B<nextUpdate> field. If neither option is present then the
|
||||
B<nextUpdate> field is omitted meaning fresh revocation information is
|
||||
immediately available.
|
||||
|
||||
=back
|
||||
|
||||
@@ -457,7 +474,7 @@ The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2001-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2001-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -198,13 +198,17 @@ Public key algorithm parameter management.
|
||||
|
||||
Public key algorithm cryptographic operation utility.
|
||||
|
||||
=item L<B<prime>|prime(1)>
|
||||
|
||||
Compute prime numbers.
|
||||
|
||||
=item L<B<rand>|rand(1)>
|
||||
|
||||
Generate pseudo-random bytes.
|
||||
|
||||
=item L<B<rehash>|rehash(1)>
|
||||
|
||||
Create symbolic links to certificate and CRL files named by the hash values.
|
||||
Create symbolic links to certficate and CRL files named by the hash values.
|
||||
|
||||
=item L<B<req>|req(1)>
|
||||
|
||||
@@ -256,6 +260,14 @@ Algorithm Speed Measurement.
|
||||
|
||||
SPKAC printing and generating utility.
|
||||
|
||||
=item L<B<srp>|srp(1)>
|
||||
|
||||
Maintain SRP password file.
|
||||
|
||||
=item L<B<storeutl>|storeutl(1)>
|
||||
|
||||
Utility to list and display certificates, keys, CRLs, etc.
|
||||
|
||||
=item L<B<ts>|ts(1)>
|
||||
|
||||
Time Stamping Authority tool (client/server).
|
||||
@@ -434,11 +446,11 @@ L<enc(1)>, L<engine(1)>, L<errstr(1)>, L<gendsa(1)>, L<genpkey(1)>,
|
||||
L<genrsa(1)>, L<nseq(1)>, L<ocsp(1)>,
|
||||
L<passwd(1)>,
|
||||
L<pkcs12(1)>, L<pkcs7(1)>, L<pkcs8(1)>,
|
||||
L<pkey(1)>, L<pkeyparam(1)>, L<pkeyutl(1)>,
|
||||
L<pkey(1)>, L<pkeyparam(1)>, L<pkeyutl(1)>, L<prime(1)>,
|
||||
L<rand(1)>, L<rehash(1)>, L<req(1)>, L<rsa(1)>,
|
||||
L<rsautl(1)>, L<s_client(1)>,
|
||||
L<s_server(1)>, L<s_time(1)>, L<sess_id(1)>,
|
||||
L<smime(1)>, L<speed(1)>, L<spkac(1)>,
|
||||
L<smime(1)>, L<speed(1)>, L<spkac(1)>, L<srp(1)>, L<storeutl(1)>,
|
||||
L<ts(1)>,
|
||||
L<verify(1)>, L<version(1)>, L<x509(1)>,
|
||||
L<crypto(7)>, L<ssl(7)>, L<x509v3_config(5)>
|
||||
@@ -12,12 +12,17 @@ B<openssl passwd>
|
||||
[B<-crypt>]
|
||||
[B<-1>]
|
||||
[B<-apr1>]
|
||||
[B<-aixmd5>]
|
||||
[B<-5>]
|
||||
[B<-6>]
|
||||
[B<-salt> I<string>]
|
||||
[B<-in> I<file>]
|
||||
[B<-stdin>]
|
||||
[B<-noverify>]
|
||||
[B<-quiet>]
|
||||
[B<-table>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
{I<password>}
|
||||
|
||||
=head1 DESCRIPTION
|
||||
@@ -27,7 +32,7 @@ run-time or the hash of each password in a list. The password list is
|
||||
taken from the named file for option B<-in file>, from stdin for
|
||||
option B<-stdin>, or from the command line, or from the terminal otherwise.
|
||||
The Unix standard algorithm B<crypt> and the MD5-based BSD password
|
||||
algorithm B<1> and its Apache variant B<apr1> are available.
|
||||
algorithm B<1>, its Apache variant B<apr1>, and its AIX variant are available.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
@@ -49,6 +54,17 @@ Use the MD5 based BSD password algorithm B<1>.
|
||||
|
||||
Use the B<apr1> algorithm (Apache variant of the BSD algorithm).
|
||||
|
||||
=item B<-aixmd5>
|
||||
|
||||
Use the B<AIX MD5> algorithm (AIX variant of the BSD algorithm).
|
||||
|
||||
=item B<-5>
|
||||
|
||||
=item B<-6>
|
||||
|
||||
Use the B<SHA256> / B<SHA512> based algorithms defined by Ulrich Drepper.
|
||||
See L<https://www.akkadia.org/drepper/SHA-crypt.txt>.
|
||||
|
||||
=item B<-salt> I<string>
|
||||
|
||||
Use the specified salt.
|
||||
@@ -75,6 +91,19 @@ Don't output warnings when passwords given at the command line are truncated.
|
||||
In the output list, prepend the cleartext password and a TAB character
|
||||
to each password hash.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLES
|
||||
@@ -85,6 +114,8 @@ B<openssl passwd -1 -salt xxxxxxxx password> prints B<$1$xxxxxxxx$UYCIxa628.9qXj
|
||||
|
||||
B<openssl passwd -apr1 -salt xxxxxxxx password> prints B<$apr1$xxxxxxxx$dxHfLAsjHkDRmG83UXe8K0>.
|
||||
|
||||
B<openssl passwd -aixmd5 -salt xxxxxxxx password> prints B<xxxxxxxx$8Oaipk/GPKhC64w/YVeFD/>.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
@@ -24,7 +24,7 @@ B<openssl> B<pkcs12>
|
||||
[B<-cacerts>]
|
||||
[B<-nokeys>]
|
||||
[B<-info>]
|
||||
[B<-des | -des3 | -idea | -aes128 | -aes192 | -aes256 | -camellia128 | -camellia192 | -camellia256 | -nodes>]
|
||||
[B<-des | -des3 | -idea | -aes128 | -aes192 | -aes256 | -aria128 | -aria192 | -aria256 | -camellia128 | -camellia192 | -camellia256 | -nodes>]
|
||||
[B<-noiter>]
|
||||
[B<-maciter | -nomaciter | -nomac>]
|
||||
[B<-twopass>]
|
||||
@@ -37,7 +37,8 @@ B<openssl> B<pkcs12>
|
||||
[B<-password arg>]
|
||||
[B<-passin arg>]
|
||||
[B<-passout arg>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-CAfile file>]
|
||||
[B<-CApath dir>]
|
||||
[B<-no-CAfile>]
|
||||
@@ -76,13 +77,13 @@ default. They are all written in PEM format.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the PKCS#12 file (i.e. input file) password source. For more information about
|
||||
The PKCS#12 file (i.e. input file) password source. For more information about
|
||||
the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section in
|
||||
L<openssl(1)>.
|
||||
|
||||
=item B<-passout arg>
|
||||
|
||||
pass phrase source to encrypt any outputted private keys with. For more
|
||||
Pass phrase source to encrypt any outputted private keys with. For more
|
||||
information about the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section
|
||||
in L<openssl(1)>.
|
||||
|
||||
@@ -93,61 +94,65 @@ Otherwise, -password is equivalent to -passin.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option inhibits output of the keys and certificates to the output file
|
||||
This option inhibits output of the keys and certificates to the output file
|
||||
version of the PKCS#12 file.
|
||||
|
||||
=item B<-clcerts>
|
||||
|
||||
only output client certificates (not CA certificates).
|
||||
Only output client certificates (not CA certificates).
|
||||
|
||||
=item B<-cacerts>
|
||||
|
||||
only output CA certificates (not client certificates).
|
||||
Only output CA certificates (not client certificates).
|
||||
|
||||
=item B<-nocerts>
|
||||
|
||||
no certificates at all will be output.
|
||||
No certificates at all will be output.
|
||||
|
||||
=item B<-nokeys>
|
||||
|
||||
no private keys will be output.
|
||||
No private keys will be output.
|
||||
|
||||
=item B<-info>
|
||||
|
||||
output additional information about the PKCS#12 file structure, algorithms used and
|
||||
iteration counts.
|
||||
Output additional information about the PKCS#12 file structure, algorithms
|
||||
used and iteration counts.
|
||||
|
||||
=item B<-des>
|
||||
|
||||
use DES to encrypt private keys before outputting.
|
||||
Use DES to encrypt private keys before outputting.
|
||||
|
||||
=item B<-des3>
|
||||
|
||||
use triple DES to encrypt private keys before outputting, this is the default.
|
||||
Use triple DES to encrypt private keys before outputting, this is the default.
|
||||
|
||||
=item B<-idea>
|
||||
|
||||
use IDEA to encrypt private keys before outputting.
|
||||
Use IDEA to encrypt private keys before outputting.
|
||||
|
||||
=item B<-aes128>, B<-aes192>, B<-aes256>
|
||||
|
||||
use AES to encrypt private keys before outputting.
|
||||
Use AES to encrypt private keys before outputting.
|
||||
|
||||
=item B<-aria128>, B<-aria192>, B<-aria256>
|
||||
|
||||
Use ARIA to encrypt private keys before outputting.
|
||||
|
||||
=item B<-camellia128>, B<-camellia192>, B<-camellia256>
|
||||
|
||||
use Camellia to encrypt private keys before outputting.
|
||||
Use Camellia to encrypt private keys before outputting.
|
||||
|
||||
=item B<-nodes>
|
||||
|
||||
don't encrypt the private keys at all.
|
||||
Don't encrypt the private keys at all.
|
||||
|
||||
=item B<-nomacver>
|
||||
|
||||
don't attempt to verify the integrity MAC before reading the file.
|
||||
Don't attempt to verify the integrity MAC before reading the file.
|
||||
|
||||
=item B<-twopass>
|
||||
|
||||
prompt for separate integrity and encryption passwords: most software
|
||||
Prompt for separate integrity and encryption passwords: most software
|
||||
always assumes these are the same so this option will render such
|
||||
PKCS#12 files unreadable.
|
||||
|
||||
@@ -176,7 +181,7 @@ certificates are present they will also be included in the PKCS#12 file.
|
||||
|
||||
=item B<-inkey file_or_id>
|
||||
|
||||
file to read private key from. If not present then a private key must be present
|
||||
File to read private key from. If not present then a private key must be present
|
||||
in the input file.
|
||||
If no engine is used, the argument is taken as a file; if an engine is
|
||||
specified, the argument is given to the engine as a key identifier.
|
||||
@@ -199,31 +204,31 @@ displays them.
|
||||
|
||||
=item B<-pass arg>, B<-passout arg>
|
||||
|
||||
the PKCS#12 file (i.e. output file) password source. For more information about
|
||||
The PKCS#12 file (i.e. output file) password source. For more information about
|
||||
the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section in
|
||||
L<openssl(1)>.
|
||||
|
||||
=item B<-passin password>
|
||||
|
||||
pass phrase source to decrypt any input private keys with. For more information
|
||||
Pass phrase source to decrypt any input private keys with. For more information
|
||||
about the format of B<arg> see the B<PASS PHRASE ARGUMENTS> section in
|
||||
L<openssl(1)>.
|
||||
|
||||
=item B<-chain>
|
||||
|
||||
if this option is present then an attempt is made to include the entire
|
||||
If this option is present then an attempt is made to include the entire
|
||||
certificate chain of the user certificate. The standard CA store is used
|
||||
for this search. If the search fails it is considered a fatal error.
|
||||
|
||||
=item B<-descert>
|
||||
|
||||
encrypt the certificate using triple DES, this may render the PKCS#12
|
||||
Encrypt the certificate using triple DES, this may render the PKCS#12
|
||||
file unreadable by some "export grade" software. By default the private
|
||||
key is encrypted using triple DES and the certificate using 40 bit RC2.
|
||||
|
||||
=item B<-keypbe alg>, B<-certpbe alg>
|
||||
|
||||
these options allow the algorithm used to encrypt the private key and
|
||||
These options allow the algorithm used to encrypt the private key and
|
||||
certificates to be selected. Any PKCS#5 v1.5 or PKCS#12 PBE algorithm name
|
||||
can be used (see B<NOTES> section for more information). If a cipher name
|
||||
(as output by the B<list-cipher-algorithms> command is specified then it
|
||||
@@ -232,7 +237,7 @@ use PKCS#12 algorithms.
|
||||
|
||||
=item B<-keyex|-keysig>
|
||||
|
||||
specifies that the private key is to be used for key exchange or just signing.
|
||||
Specifies that the private key is to be used for key exchange or just signing.
|
||||
This option is only interpreted by MSIE and similar MS software. Normally
|
||||
"export grade" software will only allow 512 bit RSA keys to be used for
|
||||
encryption purposes but arbitrary length keys for signing. The B<-keysig>
|
||||
@@ -243,11 +248,11 @@ the use of signing only keys for SSL client authentication.
|
||||
|
||||
=item B<-macalg digest>
|
||||
|
||||
specify the MAC digest algorithm. If not included them SHA1 will be used.
|
||||
Specify the MAC digest algorithm. If not included them SHA1 will be used.
|
||||
|
||||
=item B<-nomaciter>, B<-noiter>
|
||||
|
||||
these options affect the iteration counts on the MAC and key algorithms.
|
||||
These options affect the iteration counts on the MAC and key algorithms.
|
||||
Unless you wish to produce files compatible with MSIE 4.0 you should leave
|
||||
these options alone.
|
||||
|
||||
@@ -270,16 +275,21 @@ to be needed to use MAC iterations counts but they are now used by default.
|
||||
|
||||
=item B<-nomac>
|
||||
|
||||
don't attempt to provide the MAC integrity.
|
||||
Don't attempt to provide the MAC integrity.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-CAfile file>
|
||||
|
||||
CA storage as a file.
|
||||
@@ -292,15 +302,15 @@ linked to each certificate.
|
||||
|
||||
=item B<-no-CAfile>
|
||||
|
||||
Do not load the trusted CA certificates from the default file location
|
||||
Do not load the trusted CA certificates from the default file location.
|
||||
|
||||
=item B<-no-CApath>
|
||||
|
||||
Do not load the trusted CA certificates from the default directory location
|
||||
Do not load the trusted CA certificates from the default directory location.
|
||||
|
||||
=item B<-CSP name>
|
||||
|
||||
write B<name> as a Microsoft CSP name.
|
||||
Write B<name> as a Microsoft CSP name.
|
||||
|
||||
=back
|
||||
|
||||
@@ -371,7 +381,7 @@ L<pkcs8(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -38,8 +38,8 @@ the DER form with header and footer lines.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -48,27 +48,27 @@ option is not specified.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write to or standard output by
|
||||
Specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-print_certs>
|
||||
|
||||
prints out any certificates or CRLs contained in the file. They are
|
||||
Prints out any certificates or CRLs contained in the file. They are
|
||||
preceded by their subject and issuer names in one line format.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out certificates details in full rather than just subject and
|
||||
Prints out certificates details in full rather than just subject and
|
||||
issuer names.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
don't output the encoded version of the PKCS#7 structure (or certificates
|
||||
Don't output the encoded version of the PKCS#7 structure (or certificates
|
||||
is B<-print_certs> is set).
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<pkcs7>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<pkcs7>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -110,7 +110,7 @@ L<crl2pkcs7(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -18,6 +18,8 @@ B<openssl> B<pkcs8>
|
||||
[B<-passout arg>]
|
||||
[B<-iter count>]
|
||||
[B<-noiter>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-nocrypt>]
|
||||
[B<-traditional>]
|
||||
[B<-v2 alg>]
|
||||
@@ -51,11 +53,13 @@ reversed: it reads a private key and writes a PKCS#8 format key.
|
||||
|
||||
=item B<-inform DER|PEM>
|
||||
|
||||
This specifies the input format: see L<KEY FORMATS> for more details.
|
||||
This specifies the input format: see L<KEY FORMATS> for more details. The default
|
||||
format is PEM.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format: see L<KEY FORMATS> for more details.
|
||||
This specifies the output format: see L<KEY FORMATS> for more details. The default
|
||||
format is PEM.
|
||||
|
||||
=item B<-traditional>
|
||||
|
||||
@@ -70,7 +74,7 @@ prompted for.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-out filename>
|
||||
@@ -82,7 +86,7 @@ filename.
|
||||
|
||||
=item B<-passout arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-iter count>
|
||||
@@ -100,6 +104,19 @@ This option does not encrypt private keys at all and should only be used
|
||||
when absolutely necessary. Certain software such as some versions of Java
|
||||
code signing software used unencrypted private keys.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-v2 alg>
|
||||
|
||||
This option sets the PKCS#5 v2.0 algorithm.
|
||||
@@ -125,21 +142,21 @@ If not specified PKCS#5 v2.0 form is used.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<pkcs8>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<pkcs8>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-scrypt>
|
||||
|
||||
uses the B<scrypt> algorithm for private key encryption using default
|
||||
Uses the B<scrypt> algorithm for private key encryption using default
|
||||
parameters: currently N=16384, r=8 and p=1 and AES in CBC mode with a 256 bit
|
||||
key. These parameters can be modified using the B<-scrypt_N>, B<-scrypt_r>,
|
||||
B<-scrypt_p> and B<-v2> options.
|
||||
|
||||
B<-scrypt_N N> B<-scrypt_r r> B<-scrypt_p p>
|
||||
=item B<-scrypt_N N> B<-scrypt_r r> B<-scrypt_p p>
|
||||
|
||||
sets the scrypt B<N>, B<r> or B<p> parameters.
|
||||
Sets the scrypt B<N>, B<r> or B<p> parameters.
|
||||
|
||||
=back
|
||||
|
||||
@@ -292,7 +309,7 @@ The B<-iter> option was added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -16,13 +16,15 @@ B<openssl> B<pkey>
|
||||
[B<-out filename>]
|
||||
[B<-passout arg>]
|
||||
[B<-traditional>]
|
||||
[B<-cipher>]
|
||||
[B<-I<cipher>>]
|
||||
[B<-text>]
|
||||
[B<-text_pub>]
|
||||
[B<-noout>]
|
||||
[B<-pubin>]
|
||||
[B<-pubout>]
|
||||
[B<-engine id>]
|
||||
[B<-check>]
|
||||
[B<-pubcheck>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -39,12 +41,12 @@ Print out a usage message.
|
||||
|
||||
=item B<-inform DER|PEM>
|
||||
|
||||
This specifies the input format DER or PEM.
|
||||
This specifies the input format DER or PEM. The default format is PEM.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -54,7 +56,7 @@ prompted for.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-out filename>
|
||||
@@ -66,51 +68,61 @@ filename.
|
||||
|
||||
=item B<-passout password>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-traditional>
|
||||
|
||||
normally a private key is written using standard format: this is PKCS#8 form
|
||||
Normally a private key is written using standard format: this is PKCS#8 form
|
||||
with the appropriate encryption algorithm (if any). If the B<-traditional>
|
||||
option is specified then the older "traditional" format is used instead.
|
||||
|
||||
=item B<-cipher>
|
||||
=item B<-I<cipher>>
|
||||
|
||||
These options encrypt the private key with the supplied cipher. Any algorithm
|
||||
name accepted by EVP_get_cipherbyname() is acceptable such as B<des3>.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the various public or private key components in
|
||||
Prints out the various public or private key components in
|
||||
plain text in addition to the encoded version.
|
||||
|
||||
=item B<-text_pub>
|
||||
|
||||
print out only public key components even if a private key is being processed.
|
||||
Print out only public key components even if a private key is being processed.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
do not output the encoded version of the key.
|
||||
Do not output the encoded version of the key.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
by default a private key is read from the input file: with this
|
||||
By default a private key is read from the input file: with this
|
||||
option a public key is read instead.
|
||||
|
||||
=item B<-pubout>
|
||||
|
||||
by default a private key is output: with this option a public
|
||||
By default a private key is output: with this option a public
|
||||
key will be output instead. This option is automatically set if
|
||||
the input is a public key.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<pkey>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<pkey>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-check>
|
||||
|
||||
This option checks the consistency of a key pair for both public and private
|
||||
components.
|
||||
|
||||
=item B<-pubcheck>
|
||||
|
||||
This option checks the correctness of either a public key or the public component
|
||||
of a key pair.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLES
|
||||
@@ -146,7 +158,7 @@ L<dsa(1)>, L<genrsa(1)>, L<gendsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -14,11 +14,12 @@ B<openssl> B<pkeyparam>
|
||||
[B<-text>]
|
||||
[B<-noout>]
|
||||
[B<-engine id>]
|
||||
[B<-check>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<pkey> command processes public or private keys. They can be converted
|
||||
between various forms and their components printed out.
|
||||
The B<pkeyparam> command processes public key algorithm parameters.
|
||||
They can be checked for correctness and their components printed out.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
@@ -40,19 +41,23 @@ this option is not specified.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the parameters in plain text in addition to the encoded version.
|
||||
Prints out the parameters in plain text in addition to the encoded version.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
do not output the encoded version of the parameters.
|
||||
Do not output the encoded version of the parameters.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<pkeyparam>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<pkeyparam>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-check>
|
||||
|
||||
This option checks the correctness of parameters.
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLE
|
||||
@@ -73,7 +78,7 @@ L<dsa(1)>, L<genrsa(1)>, L<gendsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -31,6 +31,8 @@ B<openssl> B<pkeyutl>
|
||||
[B<-pkeyopt opt:value>]
|
||||
[B<-hexdump>]
|
||||
[B<-asn1parse>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
[B<-engine_impl>]
|
||||
|
||||
@@ -54,7 +56,7 @@ if this option is not specified.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write to or standard output by
|
||||
Specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-sigfile file>
|
||||
@@ -63,64 +65,63 @@ Signature file, required for B<verify> operations only
|
||||
|
||||
=item B<-inkey file>
|
||||
|
||||
the input key file, by default it should be a private key.
|
||||
The input key file, by default it should be a private key.
|
||||
|
||||
=item B<-keyform PEM|DER|ENGINE>
|
||||
|
||||
the key format PEM, DER or ENGINE. Default is PEM.
|
||||
The key format PEM, DER or ENGINE. Default is PEM.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input key password source. For more information about the format of B<arg>
|
||||
The input key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
|
||||
=item B<-peerkey file>
|
||||
|
||||
the peer key file, used by key derivation (agreement) operations.
|
||||
The peer key file, used by key derivation (agreement) operations.
|
||||
|
||||
=item B<-peerform PEM|DER|ENGINE>
|
||||
|
||||
the peer key format PEM, DER or ENGINE. Default is PEM.
|
||||
The peer key format PEM, DER or ENGINE. Default is PEM.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
the input file is a public key.
|
||||
The input file is a public key.
|
||||
|
||||
=item B<-certin>
|
||||
|
||||
the input is a certificate containing a public key.
|
||||
The input is a certificate containing a public key.
|
||||
|
||||
=item B<-rev>
|
||||
|
||||
reverse the order of the input buffer. This is useful for some libraries
|
||||
Reverse the order of the input buffer. This is useful for some libraries
|
||||
(such as CryptoAPI) which represent the buffer in little endian format.
|
||||
|
||||
=item B<-sign>
|
||||
|
||||
sign the input data and output the signed result. This requires
|
||||
Sign the input data and output the signed result. This requires
|
||||
a private key.
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verify the input data against the signature file and indicate if the
|
||||
Verify the input data against the signature file and indicate if the
|
||||
verification succeeded or failed.
|
||||
|
||||
=item B<-verifyrecover>
|
||||
|
||||
verify the input data and output the recovered data.
|
||||
Verify the input data and output the recovered data.
|
||||
|
||||
=item B<-encrypt>
|
||||
|
||||
encrypt the input data using a public key.
|
||||
Encrypt the input data using a public key.
|
||||
|
||||
=item B<-decrypt>
|
||||
|
||||
decrypt the input data using a private key.
|
||||
Decrypt the input data using a private key.
|
||||
|
||||
=item B<-derive>
|
||||
|
||||
derive a shared secret using the peer key.
|
||||
Derive a shared secret using the peer key.
|
||||
|
||||
=item B<-kdf algorithm>
|
||||
|
||||
@@ -145,12 +146,25 @@ hex dump the output data.
|
||||
|
||||
=item B<-asn1parse>
|
||||
|
||||
asn1parse the output data, this is useful when combined with the
|
||||
Parse the ASN.1 output data, this is useful when combined with the
|
||||
B<-verifyrecover> option when an ASN1 structure is signed.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<pkeyutl>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<pkeyutl>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -216,11 +230,37 @@ specified.
|
||||
|
||||
=item B<rsa_pss_saltlen:len>
|
||||
|
||||
For B<pss> mode only this option specifies the salt length. Two special values
|
||||
are supported: -1 sets the salt length to the digest length. When signing -2
|
||||
sets the salt length to the maximum permissible value. When verifying -2 causes
|
||||
the salt length to be automatically determined based on the B<PSS> block
|
||||
structure.
|
||||
For B<pss> mode only this option specifies the salt length. Three special
|
||||
values are supported: "digest" sets the salt length to the digest length,
|
||||
"max" sets the salt length to the maximum permissible value. When verifying
|
||||
"auto" causes the salt length to be automatically determined based on the
|
||||
B<PSS> block structure.
|
||||
|
||||
=item B<rsa_mgf1_md:digest>
|
||||
|
||||
For PSS and OAEP padding sets the MGF1 digest. If the MGF1 digest is not
|
||||
explicitly set in PSS mode then the signing digest is used.
|
||||
|
||||
=back
|
||||
|
||||
=head1 RSA-PSS ALGORITHM
|
||||
|
||||
The RSA-PSS algorithm is a restricted version of the RSA algorithm which only
|
||||
supports the sign and verify operations with PSS padding. The following
|
||||
additional B<pkeyopt> values are supported:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<rsa_padding_mode:mode>, B<rsa_pss_saltlen:len>, B<rsa_mgf1_md:digest>
|
||||
|
||||
These have the same meaning as the B<RSA> algorithm with some additional
|
||||
restrictions. The padding mode can only be set to B<pss> which is the
|
||||
default value.
|
||||
|
||||
If the key has parameter restrictions than the digest, MGF1
|
||||
digest and salt length are set to the values specified in the parameters.
|
||||
The digest and MG cannot be changed and the salt length cannot be set to a
|
||||
value less than the minimum restriction.
|
||||
|
||||
=back
|
||||
|
||||
@@ -283,7 +323,7 @@ L<EVP_PKEY_CTX_set_hkdf_md(3)>, L<EVP_PKEY_CTX_set_tls1_prf_md(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2006-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2006-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -0,0 +1,68 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
openssl-prime,
|
||||
prime - compute prime numbers
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<openssl prime>
|
||||
[B<-help>]
|
||||
[B<-hex>]
|
||||
[B<-generate>]
|
||||
[B<-bits>]
|
||||
[B<-safe>]
|
||||
[B<-checks>]
|
||||
[I<number...>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<prime> command checks if the specified numbers are prime.
|
||||
|
||||
If no numbers are given on the command line, the B<-generate> flag should
|
||||
be used to generate primes according to the requirements specified by the
|
||||
rest of the flags.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item [B<-help>]
|
||||
|
||||
Display an option summary.
|
||||
|
||||
=item [B<-hex>]
|
||||
|
||||
Generate hex output.
|
||||
|
||||
=item [B<-generate>]
|
||||
|
||||
Generate a prime number.
|
||||
|
||||
=item [B<-bits num>]
|
||||
|
||||
Generate a prime with B<num> bits.
|
||||
|
||||
=item [B<-safe>]
|
||||
|
||||
When used with B<-generate>, generates a "safe" prime. If the number
|
||||
generated is B<n>, then check that B<(n-1)/2> is also prime.
|
||||
|
||||
=item [B<-checks num>]
|
||||
|
||||
Perform the checks B<num> times to see that the generated number
|
||||
is prime. The default is 20.
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -10,7 +10,8 @@ rand - generate pseudo-random bytes
|
||||
B<openssl rand>
|
||||
[B<-help>]
|
||||
[B<-out> I<file>]
|
||||
[B<-rand> I<file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-base64>]
|
||||
[B<-hex>]
|
||||
I<num>
|
||||
@@ -32,18 +33,23 @@ seeding was obtained from these sources.
|
||||
|
||||
Print out a usage message.
|
||||
|
||||
=item B<-out> I<file>
|
||||
=item B<-out file>
|
||||
|
||||
Write to I<file> instead of standard output.
|
||||
|
||||
=item B<-rand> I<file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
Use specified file or files or EGD socket (see L<RAND_egd(3)>)
|
||||
for seeding the random number generator.
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-base64>
|
||||
|
||||
Perform base64 encoding on the output.
|
||||
@@ -21,7 +21,8 @@ B<openssl> B<req>
|
||||
[B<-verify>]
|
||||
[B<-modulus>]
|
||||
[B<-new>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-newkey rsa:bits>]
|
||||
[B<-newkey alg:file>]
|
||||
[B<-nodes>]
|
||||
@@ -29,15 +30,17 @@ B<openssl> B<req>
|
||||
[B<-keyform PEM|DER>]
|
||||
[B<-keyout filename>]
|
||||
[B<-keygen_engine id>]
|
||||
[B<-[digest]>]
|
||||
[B<-I<digest>>]
|
||||
[B<-config filename>]
|
||||
[B<-multivalue-rdn>]
|
||||
[B<-x509>]
|
||||
[B<-days n>]
|
||||
[B<-set_serial n>]
|
||||
[B<-newhdr>]
|
||||
[B<-addext ext>]
|
||||
[B<-extensions section>]
|
||||
[B<-reqexts section>]
|
||||
[B<-precert>]
|
||||
[B<-utf8>]
|
||||
[B<-nameopt>]
|
||||
[B<-reqopt>]
|
||||
@@ -70,8 +73,8 @@ footer lines.
|
||||
|
||||
=item B<-outform DER|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -81,7 +84,7 @@ options (B<-new> and B<-newkey>) are not specified.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-out filename>
|
||||
@@ -91,38 +94,38 @@ default.
|
||||
|
||||
=item B<-passout arg>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the certificate request in text form.
|
||||
Prints out the certificate request in text form.
|
||||
|
||||
=item B<-subject>
|
||||
|
||||
prints out the request subject (or certificate subject if B<-x509> is
|
||||
Prints out the request subject (or certificate subject if B<-x509> is
|
||||
specified)
|
||||
|
||||
=item B<-pubkey>
|
||||
|
||||
outputs the public key.
|
||||
Outputs the public key.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the encoded version of the request.
|
||||
This option prevents output of the encoded version of the request.
|
||||
|
||||
=item B<-modulus>
|
||||
|
||||
this option prints out the value of the modulus of the public key
|
||||
This option prints out the value of the modulus of the public key
|
||||
contained in the request.
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verifies the signature on the request.
|
||||
Verifies the signature on the request.
|
||||
|
||||
=item B<-new>
|
||||
|
||||
this option generates a new certificate request. It will prompt
|
||||
This option generates a new certificate request. It will prompt
|
||||
the user for the relevant field values. The actual fields
|
||||
prompted for and their maximum and minimum sizes are specified
|
||||
in the configuration file and any requested extensions.
|
||||
@@ -130,17 +133,22 @@ in the configuration file and any requested extensions.
|
||||
If the B<-key> option is not used it will generate a new RSA private
|
||||
key using information specified in the configuration file.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-newkey arg>
|
||||
|
||||
this option creates a new certificate request and a new private
|
||||
This option creates a new certificate request and a new private
|
||||
key. The argument takes one of several forms. B<rsa:nbits>, where
|
||||
B<nbits> is the number of bits, generates an RSA key B<nbits>
|
||||
in size. If B<nbits> is omitted, i.e. B<-newkey rsa> specified,
|
||||
@@ -166,7 +174,7 @@ specified by B<-pkeyopt paramset:X>
|
||||
|
||||
=item B<-pkeyopt opt:value>
|
||||
|
||||
set the public key algorithm option B<opt> to B<value>. The precise set of
|
||||
Set the public key algorithm option B<opt> to B<value>. The precise set of
|
||||
options supported depends on the public key algorithm used and its
|
||||
implementation. See B<KEY GENERATION OPTIONS> in the B<genpkey> manual page
|
||||
for more details.
|
||||
@@ -178,23 +186,23 @@ accepts PKCS#8 format private keys for PEM format files.
|
||||
|
||||
=item B<-keyform PEM|DER>
|
||||
|
||||
the format of the private key file specified in the B<-key>
|
||||
The format of the private key file specified in the B<-key>
|
||||
argument. PEM is the default.
|
||||
|
||||
=item B<-keyout filename>
|
||||
|
||||
this gives the filename to write the newly created private key to.
|
||||
This gives the filename to write the newly created private key to.
|
||||
If this option is not specified then the filename present in the
|
||||
configuration file is used.
|
||||
|
||||
=item B<-nodes>
|
||||
|
||||
if this option is specified then if a private key is created it
|
||||
If this option is specified then if a private key is created it
|
||||
will not be encrypted.
|
||||
|
||||
=item B<-[digest]>
|
||||
=item B<-I<digest>>
|
||||
|
||||
this specifies the message digest to sign the request.
|
||||
This specifies the message digest to sign the request.
|
||||
Any digest supported by the OpenSSL B<dgst> command can be used.
|
||||
This overrides the digest algorithm specified in
|
||||
the configuration file.
|
||||
@@ -205,20 +213,20 @@ GOST R 34.11-94 (B<-md_gost94>).
|
||||
|
||||
=item B<-config filename>
|
||||
|
||||
this allows an alternative configuration file to be specified.
|
||||
This allows an alternative configuration file to be specified.
|
||||
Optional; for a description of the default value,
|
||||
see L<openssl(1)/COMMAND SUMMARY>.
|
||||
|
||||
=item B<-subj arg>
|
||||
|
||||
sets subject name for new request or supersedes the subject name
|
||||
Sets subject name for new request or supersedes the subject name
|
||||
when processing a request.
|
||||
The arg must be formatted as I</type0=value0/type1=value1/type2=...>,
|
||||
characters may be escaped by \ (backslash), no spaces are skipped.
|
||||
|
||||
=item B<-multivalue-rdn>
|
||||
|
||||
this option causes the -subj argument to be interpreted with full
|
||||
This option causes the -subj argument to be interpreted with full
|
||||
support for multivalued RDNs. Example:
|
||||
|
||||
I</DC=org/DC=OpenSSL/DC=users/UID=123456+CN=John Doe>
|
||||
@@ -227,7 +235,7 @@ If -multi-rdn is not used then the UID value is I<123456+CN=John Doe>.
|
||||
|
||||
=item B<-x509>
|
||||
|
||||
this option outputs a self signed certificate instead of a certificate
|
||||
This option outputs a self signed certificate instead of a certificate
|
||||
request. This is typically used to generate a test certificate or
|
||||
a self signed root CA. The extensions added to the certificate
|
||||
(if any) are specified in the configuration file. Unless specified
|
||||
@@ -239,41 +247,60 @@ to the self signed certificate otherwise new request is created.
|
||||
|
||||
=item B<-days n>
|
||||
|
||||
when the B<-x509> option is being used this specifies the number of
|
||||
days to certify the certificate for. The default is 30 days.
|
||||
When the B<-x509> option is being used this specifies the number of
|
||||
days to certify the certificate for, otherwise it is ignored. B<n> should
|
||||
be a positive integer. The default is 30 days.
|
||||
|
||||
=item B<-set_serial n>
|
||||
|
||||
serial number to use when outputting a self signed certificate. This
|
||||
Serial number to use when outputting a self signed certificate. This
|
||||
may be specified as a decimal value or a hex value if preceded by B<0x>.
|
||||
|
||||
=item B<-addext ext>
|
||||
|
||||
Add a specific extension to the certificate (if the B<-x509> option is
|
||||
present) or certificate request. The argument must have the form of
|
||||
a key=value pair as it would appear in a config file.
|
||||
|
||||
This option can be given multiple times.
|
||||
|
||||
=item B<-extensions section>
|
||||
|
||||
=item B<-reqexts section>
|
||||
|
||||
these options specify alternative sections to include certificate
|
||||
These options specify alternative sections to include certificate
|
||||
extensions (if the B<-x509> option is present) or certificate
|
||||
request extensions. This allows several different sections to
|
||||
be used in the same configuration file to specify requests for
|
||||
a variety of purposes.
|
||||
|
||||
=item B<-precert>
|
||||
|
||||
A poison extension will be added to the certificate, making it a
|
||||
"pre-certificate" (see RFC6962). This can be submitted to Certificate
|
||||
Transparency logs in order to obtain signed certificate timestamps (SCTs).
|
||||
These SCTs can then be embedded into the pre-certificate as an extension, before
|
||||
removing the poison and signing the certificate.
|
||||
|
||||
This implies the B<-new> flag.
|
||||
|
||||
=item B<-utf8>
|
||||
|
||||
this option causes field values to be interpreted as UTF8 strings, by
|
||||
This option causes field values to be interpreted as UTF8 strings, by
|
||||
default they are interpreted as ASCII. This means that the field
|
||||
values, whether prompted from a terminal or obtained from a
|
||||
configuration file, must be valid UTF8 strings.
|
||||
|
||||
=item B<-nameopt option>
|
||||
|
||||
option which determines how the subject or issuer names are displayed. The
|
||||
Option which determines how the subject or issuer names are displayed. The
|
||||
B<option> argument can be a single option or multiple options separated by
|
||||
commas. Alternatively the B<-nameopt> switch may be used more than once to
|
||||
set multiple options. See the L<x509(1)> manual page for details.
|
||||
|
||||
=item B<-reqopt>
|
||||
|
||||
customise the output format used with B<-text>. The B<option> argument can be
|
||||
Customise the output format used with B<-text>. The B<option> argument can be
|
||||
a single option or multiple options separated by commas.
|
||||
|
||||
See discussion of the B<-certopt> parameter in the L<x509(1)>
|
||||
@@ -286,22 +313,22 @@ request. Some software (Netscape certificate server) and some CAs need this.
|
||||
|
||||
=item B<-batch>
|
||||
|
||||
non-interactive mode.
|
||||
Non-interactive mode.
|
||||
|
||||
=item B<-verbose>
|
||||
|
||||
print extra details about the operations being performed.
|
||||
Print extra details about the operations being performed.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<req>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<req>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-keygen_engine id>
|
||||
|
||||
specifies an engine (by its unique B<id> string) which would be used
|
||||
Specifies an engine (by its unique B<id> string) which would be used
|
||||
for key generation operations.
|
||||
|
||||
=back
|
||||
@@ -355,8 +382,8 @@ and long names are the same when this option is used.
|
||||
|
||||
=item B<RANDFILE>
|
||||
|
||||
This specifies a filename in which random number seed information is
|
||||
placed and read from, or an EGD socket (see L<RAND_egd(3)>).
|
||||
At startup the specified file is loaded into the random number generator,
|
||||
and at exit 256 bytes will be written to it.
|
||||
It is used for private key generation.
|
||||
|
||||
=item B<encrypt_key>
|
||||
@@ -388,7 +415,7 @@ problems with BMPStrings and UTF8Strings: in particular Netscape.
|
||||
|
||||
=item B<req_extensions>
|
||||
|
||||
this specifies the configuration file section containing a list of
|
||||
This specifies the configuration file section containing a list of
|
||||
extensions to add to the certificate request. It can be overridden
|
||||
by the B<-reqexts> command line switch. See the
|
||||
L<x509v3_config(5)> manual page for details of the
|
||||
@@ -396,26 +423,26 @@ extension section format.
|
||||
|
||||
=item B<x509_extensions>
|
||||
|
||||
this specifies the configuration file section containing a list of
|
||||
This specifies the configuration file section containing a list of
|
||||
extensions to add to certificate generated when the B<-x509> switch
|
||||
is used. It can be overridden by the B<-extensions> command line switch.
|
||||
|
||||
=item B<prompt>
|
||||
|
||||
if set to the value B<no> this disables prompting of certificate fields
|
||||
If set to the value B<no> this disables prompting of certificate fields
|
||||
and just takes values from the config file directly. It also changes the
|
||||
expected format of the B<distinguished_name> and B<attributes> sections.
|
||||
|
||||
=item B<utf8>
|
||||
|
||||
if set to the value B<yes> then field values to be interpreted as UTF8
|
||||
If set to the value B<yes> then field values to be interpreted as UTF8
|
||||
strings, by default they are interpreted as ASCII. This means that
|
||||
the field values, whether prompted from a terminal or obtained from a
|
||||
configuration file, must be valid UTF8 strings.
|
||||
|
||||
=item B<attributes>
|
||||
|
||||
this specifies the section containing any request attributes: its format
|
||||
This specifies the section containing any request attributes: its format
|
||||
is the same as B<distinguished_name>. Typically these may contain the
|
||||
challengePassword or unstructuredName types. They are currently ignored
|
||||
by OpenSSL's request signing utilities but some CAs might want them.
|
||||
@@ -573,6 +600,14 @@ Sample configuration containing all field values:
|
||||
[ req_attributes ]
|
||||
challengePassword = A challenge password
|
||||
|
||||
Example of giving the most common attributes (subject and extensions)
|
||||
on the command line:
|
||||
|
||||
openssl req -new -subj "/C=GB/CN=foo" \
|
||||
-addext "subjectAltName = DNS:foo.co.uk" \
|
||||
-addext "certificatePolicies = 1.2.3.4" \
|
||||
-newkey rsa:2048 -keyout key.pem -out req.pem
|
||||
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
@@ -652,7 +687,7 @@ L<x509v3_config(5)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -18,6 +18,9 @@ B<openssl> B<rsa>
|
||||
[B<-aes128>]
|
||||
[B<-aes192>]
|
||||
[B<-aes256>]
|
||||
[B<-aria128>]
|
||||
[B<-aria192>]
|
||||
[B<-aria256>]
|
||||
[B<-camellia128>]
|
||||
[B<-camellia192>]
|
||||
[B<-camellia256>]
|
||||
@@ -61,8 +64,8 @@ section.
|
||||
|
||||
=item B<-outform DER|NET|PEM>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -72,7 +75,7 @@ prompted for.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-out filename>
|
||||
@@ -84,10 +87,10 @@ filename.
|
||||
|
||||
=item B<-passout password>
|
||||
|
||||
the output file password source. For more information about the format of B<arg>
|
||||
The output file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-aes128|-aes192|-aes256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
=item B<-aes128|-aes192|-aes256|-aria128|-aria192|-aria256|-camellia128|-camellia192|-camellia256|-des|-des3|-idea>
|
||||
|
||||
These options encrypt the private key with the specified
|
||||
cipher before outputting it. A pass phrase is prompted for.
|
||||
@@ -99,39 +102,39 @@ These options can only be used with PEM format output files.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the various public or private key components in
|
||||
Prints out the various public or private key components in
|
||||
plain text in addition to the encoded version.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the encoded version of the key.
|
||||
This option prevents output of the encoded version of the key.
|
||||
|
||||
=item B<-modulus>
|
||||
|
||||
this option prints out the value of the modulus of the key.
|
||||
This option prints out the value of the modulus of the key.
|
||||
|
||||
=item B<-check>
|
||||
|
||||
this option checks the consistency of an RSA private key.
|
||||
This option checks the consistency of an RSA private key.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
by default a private key is read from the input file: with this
|
||||
By default a private key is read from the input file: with this
|
||||
option a public key is read instead.
|
||||
|
||||
=item B<-pubout>
|
||||
|
||||
by default a private key is output: with this option a public
|
||||
By default a private key is output: with this option a public
|
||||
key will be output instead. This option is automatically set if
|
||||
the input is a public key.
|
||||
|
||||
=item B<-RSAPublicKey_in>, B<-RSAPublicKey_out>
|
||||
|
||||
like B<-pubin> and B<-pubout> except B<RSAPublicKey> format is used instead.
|
||||
Like B<-pubin> and B<-pubout> except B<RSAPublicKey> format is used instead.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<rsa>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<rsa>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -207,7 +210,7 @@ L<gendsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -19,6 +19,8 @@ B<openssl> B<rsautl>
|
||||
[B<-verify>]
|
||||
[B<-encrypt>]
|
||||
[B<-decrypt>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-pkcs>]
|
||||
[B<-ssl>]
|
||||
[B<-raw>]
|
||||
@@ -45,56 +47,69 @@ if this option is not specified.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write to or standard output by
|
||||
Specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-inkey file>
|
||||
|
||||
the input key file, by default it should be an RSA private key.
|
||||
The input key file, by default it should be an RSA private key.
|
||||
|
||||
=item B<-keyform PEM|DER|ENGINE>
|
||||
|
||||
the key format PEM, DER or ENGINE.
|
||||
The key format PEM, DER or ENGINE.
|
||||
|
||||
=item B<-pubin>
|
||||
|
||||
the input file is an RSA public key.
|
||||
The input file is an RSA public key.
|
||||
|
||||
=item B<-certin>
|
||||
|
||||
the input is a certificate containing an RSA public key.
|
||||
The input is a certificate containing an RSA public key.
|
||||
|
||||
=item B<-sign>
|
||||
|
||||
sign the input data and output the signed result. This requires
|
||||
Sign the input data and output the signed result. This requires
|
||||
an RSA private key.
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verify the input data and output the recovered data.
|
||||
Verify the input data and output the recovered data.
|
||||
|
||||
=item B<-encrypt>
|
||||
|
||||
encrypt the input data using an RSA public key.
|
||||
Encrypt the input data using an RSA public key.
|
||||
|
||||
=item B<-decrypt>
|
||||
|
||||
decrypt the input data using an RSA private key.
|
||||
Decrypt the input data using an RSA private key.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-pkcs, -oaep, -ssl, -raw>
|
||||
|
||||
the padding to use: PKCS#1 v1.5 (the default), PKCS#1 OAEP,
|
||||
The padding to use: PKCS#1 v1.5 (the default), PKCS#1 OAEP,
|
||||
special padding used in SSL v2 backwards compatible handshakes,
|
||||
or no padding, respectively.
|
||||
For signatures, only B<-pkcs> and B<-raw> can be used.
|
||||
|
||||
=item B<-hexdump>
|
||||
|
||||
hex dump the output data.
|
||||
Hex dump the output data.
|
||||
|
||||
=item B<-asn1parse>
|
||||
|
||||
asn1parse the output data, this is useful when combined with the
|
||||
Parse the ASN.1 output data, this is useful when combined with the
|
||||
B<-verify> option.
|
||||
|
||||
=back
|
||||
@@ -195,7 +210,7 @@ L<dgst(1)>, L<rsa(1)>, L<genrsa(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -10,11 +10,13 @@ s_client - SSL/TLS client program
|
||||
B<openssl> B<s_client>
|
||||
[B<-help>]
|
||||
[B<-connect host:port>]
|
||||
[B<-bind host:port>]
|
||||
[B<-proxy host:port>]
|
||||
[B<-unix path>]
|
||||
[B<-4>]
|
||||
[B<-6>]
|
||||
[B<-servername name>]
|
||||
[B<-noservername>]
|
||||
[B<-verify depth>]
|
||||
[B<-verify_return_error>]
|
||||
[B<-cert filename>]
|
||||
@@ -26,6 +28,7 @@ B<openssl> B<s_client>
|
||||
[B<-CAfile filename>]
|
||||
[B<-no-CAfile>]
|
||||
[B<-no-CApath>]
|
||||
[B<-requestCAfile filename>]
|
||||
[B<-dane_tlsa_domain domain>]
|
||||
[B<-dane_tlsa_rrdata rrdata>]
|
||||
[B<-dane_ee_no_namechecks>]
|
||||
@@ -51,6 +54,7 @@ B<openssl> B<s_client>
|
||||
[B<-no_alt_chains>]
|
||||
[B<-use_deltas>]
|
||||
[B<-auth_level num>]
|
||||
[B<-nameopt option>]
|
||||
[B<-verify_depth num>]
|
||||
[B<-verify_email email>]
|
||||
[B<-verify_hostname hostname>]
|
||||
@@ -72,39 +76,51 @@ B<openssl> B<s_client>
|
||||
[B<-tls1>]
|
||||
[B<-tls1_1>]
|
||||
[B<-tls1_2>]
|
||||
[B<-tls1_3>]
|
||||
[B<-no_ssl3>]
|
||||
[B<-no_tls1>]
|
||||
[B<-no_tls1_1>]
|
||||
[B<-no_tls1_2>]
|
||||
[B<-no_tls1_3>]
|
||||
[B<-dtls>]
|
||||
[B<-dtls1>]
|
||||
[B<-dtls1_2>]
|
||||
[B<-sctp>]
|
||||
[B<-fallback_scsv>]
|
||||
[B<-async>]
|
||||
[B<-max_send_frag>]
|
||||
[B<-split_send_frag>]
|
||||
[B<-max_pipelines>]
|
||||
[B<-read_buf>]
|
||||
[B<-bugs>]
|
||||
[B<-comp>]
|
||||
[B<-no_comp>]
|
||||
[B<-allow_no_dhe_kex>]
|
||||
[B<-sigalgs sigalglist>]
|
||||
[B<-curves curvelist>]
|
||||
[B<-cipher cipherlist>]
|
||||
[B<-serverpref>]
|
||||
[B<-starttls protocol>]
|
||||
[B<-xmpphost hostname>]
|
||||
[B<-name hostname>]
|
||||
[B<-engine id>]
|
||||
[B<-tlsextdebug>]
|
||||
[B<-no_ticket>]
|
||||
[B<-sess_out filename>]
|
||||
[B<-sess_in filename>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-serverinfo types>]
|
||||
[B<-status>]
|
||||
[B<-alpn protocols>]
|
||||
[B<-nextprotoneg protocols>]
|
||||
[B<-ct|noct>]
|
||||
[B<-ct>]
|
||||
[B<-noct>]
|
||||
[B<-ctlogfile>]
|
||||
[B<-keylogfile file>]
|
||||
[B<-early_data file>]
|
||||
[B<-force_pha>]
|
||||
[B<target>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -127,8 +143,16 @@ Print out a usage message.
|
||||
|
||||
=item B<-connect host:port>
|
||||
|
||||
This specifies the host and optional port to connect to. If not specified
|
||||
then an attempt is made to connect to the local host on port 4433.
|
||||
This specifies the host and optional port to connect to. It is possible to
|
||||
select the host and port using the optional target positional argument instead.
|
||||
If neither this nor the target positonal argument are specified then an attempt
|
||||
is made to connect to the local host on port 4433.
|
||||
|
||||
=item B<-bind host:port>]
|
||||
|
||||
This specifies the host address and or port to bind as the source for the
|
||||
connection. For Unix-domain sockets the port is ignored and the host is
|
||||
used as the source socket address.
|
||||
|
||||
=item B<-proxy host:port>
|
||||
|
||||
@@ -150,7 +174,21 @@ Use IPv6 only.
|
||||
|
||||
=item B<-servername name>
|
||||
|
||||
Set the TLS SNI (Server Name Indication) extension in the ClientHello message.
|
||||
Set the TLS SNI (Server Name Indication) extension in the ClientHello message to
|
||||
the given value. If both this option and the B<-noservername> are not given, the
|
||||
TLS SNI extension is still set to the hostname provided to the B<-connect> option,
|
||||
or "localhost" if B<-connect> has not been supplied. This is default since OpenSSL
|
||||
1.1.1.
|
||||
|
||||
Even though SNI name should normally be a DNS name and not an IP address, this
|
||||
option will not make the distinction when parsing B<-connect> and will send
|
||||
IP address if one passed.
|
||||
|
||||
=item B<-noservername>
|
||||
|
||||
Suppresses sending of the SNI (Server Name Indication) extension in the
|
||||
ClientHello message. Cannot be used in conjunction with the B<-servername> or
|
||||
<-dane_tlsa_domain> options.
|
||||
|
||||
=item B<-cert certname>
|
||||
|
||||
@@ -188,6 +226,13 @@ will never fail due to a server certificate verify failure.
|
||||
Return verification errors instead of continuing. This will typically
|
||||
abort the handshake with a fatal error.
|
||||
|
||||
=item B<-nameopt option>
|
||||
|
||||
Option which determines how the subject or issuer names are displayed. The
|
||||
B<option> argument can be a single option or multiple options separated by
|
||||
commas. Alternatively the B<-nameopt> switch may be used more than once to
|
||||
set multiple options. See the L<x509(1)> manual page for details.
|
||||
|
||||
=item B<-CApath directory>
|
||||
|
||||
The directory to use for server certificate verification. This directory
|
||||
@@ -207,6 +252,12 @@ Do not load the trusted CA certificates from the default file location
|
||||
|
||||
Do not load the trusted CA certificates from the default directory location
|
||||
|
||||
=item B<-requestCAfile file>
|
||||
|
||||
A file containing a list of certificates whose subject names will be sent
|
||||
to the server in the B<certificate_authorities> extension. Only supported
|
||||
for TLS 1.3
|
||||
|
||||
=item B<-dane_tlsa_domain domain>
|
||||
|
||||
Enable RFC6698/RFC7671 DANE TLSA authentication and specify the
|
||||
@@ -276,17 +327,17 @@ L<verify(1)> manual page for details.
|
||||
|
||||
=item B<-reconnect>
|
||||
|
||||
reconnects to the same server 5 times using the same session ID, this can
|
||||
Reconnects to the same server 5 times using the same session ID, this can
|
||||
be used as a test that session caching is working.
|
||||
|
||||
=item B<-showcerts>
|
||||
|
||||
display the whole server certificate chain: normally only the server
|
||||
Display the whole server certificate chain: normally only the server
|
||||
certificate itself is displayed.
|
||||
|
||||
=item B<-prexit>
|
||||
|
||||
print session information when the program exits. This will always attempt
|
||||
Print session information when the program exits. This will always attempt
|
||||
to print out information even if the connection fails. Normally information
|
||||
will only be printed out once if the connection succeeds. This option is useful
|
||||
because the cipher in use may be renegotiated or the connection may fail
|
||||
@@ -297,51 +348,51 @@ established.
|
||||
|
||||
=item B<-state>
|
||||
|
||||
prints out the SSL session states.
|
||||
Prints out the SSL session states.
|
||||
|
||||
=item B<-debug>
|
||||
|
||||
print extensive debugging information including a hex dump of all traffic.
|
||||
Print extensive debugging information including a hex dump of all traffic.
|
||||
|
||||
=item B<-msg>
|
||||
|
||||
show all protocol messages with hex dump.
|
||||
Show all protocol messages with hex dump.
|
||||
|
||||
=item B<-trace>
|
||||
|
||||
show verbose trace output of protocol messages. OpenSSL needs to be compiled
|
||||
Show verbose trace output of protocol messages. OpenSSL needs to be compiled
|
||||
with B<enable-ssl-trace> for this option to work.
|
||||
|
||||
=item B<-msgfile>
|
||||
|
||||
file to send output of B<-msg> or B<-trace> to, default standard output.
|
||||
File to send output of B<-msg> or B<-trace> to, default standard output.
|
||||
|
||||
=item B<-nbio_test>
|
||||
|
||||
tests non-blocking I/O
|
||||
Tests non-blocking I/O
|
||||
|
||||
=item B<-nbio>
|
||||
|
||||
turns on non-blocking I/O
|
||||
Turns on non-blocking I/O
|
||||
|
||||
=item B<-crlf>
|
||||
|
||||
this option translated a line feed from the terminal into CR+LF as required
|
||||
This option translated a line feed from the terminal into CR+LF as required
|
||||
by some servers.
|
||||
|
||||
=item B<-ign_eof>
|
||||
|
||||
inhibit shutting down the connection when end of file is reached in the
|
||||
Inhibit shutting down the connection when end of file is reached in the
|
||||
input.
|
||||
|
||||
=item B<-quiet>
|
||||
|
||||
inhibit printing of session and certificate information. This implicitly
|
||||
Inhibit printing of session and certificate information. This implicitly
|
||||
turns on B<-ign_eof> as well.
|
||||
|
||||
=item B<-no_ign_eof>
|
||||
|
||||
shut down the connection when end of file is reached in the input.
|
||||
Shut down the connection when end of file is reached in the input.
|
||||
Can be used to override the implicit B<-ign_eof> after B<-quiet>.
|
||||
|
||||
=item B<-psk_identity identity>
|
||||
@@ -356,7 +407,7 @@ given as a hexadecimal number without leading 0x, for example -psk
|
||||
1a2b3c4d.
|
||||
This option must be provided in order to use a PSK cipher.
|
||||
|
||||
=item B<-ssl3>, B<-tls1>, B<-tls1_1>, B<-tls1_2>, B<-no_ssl3>, B<-no_tls1>, B<-no_tls1_1>, B<-no_tls1_2>
|
||||
=item B<-ssl3>, B<-tls1>, B<-tls1_1>, B<-tls1_2>, B<-tls1_3>, B<-no_ssl3>, B<-no_tls1>, B<-no_tls1_1>, B<-no_tls1_2>, B<-no_tls1_3>
|
||||
|
||||
These options require or disable the use of the specified SSL or TLS protocols.
|
||||
By default B<s_client> will negotiate the highest mutually supported protocol
|
||||
@@ -371,23 +422,34 @@ With B<-dtls>, B<s_client> will negotiate any supported DTLS protocol version,
|
||||
whilst B<-dtls1> and B<-dtls1_2> will only support DTLS1.0 and DTLS1.2
|
||||
respectively.
|
||||
|
||||
=item B<-sctp>
|
||||
|
||||
Use SCTP for the transport protocol instead of UDP in DTLS. Must be used in
|
||||
conjunction with B<-dtls>, B<-dtls1> or B<-dtls1_2>. This option is only
|
||||
available where OpenSSL has support for SCTP enabled.
|
||||
|
||||
=item B<-fallback_scsv>
|
||||
|
||||
Send TLS_FALLBACK_SCSV in the ClientHello.
|
||||
|
||||
=item B<-async>
|
||||
|
||||
switch on asynchronous mode. Cryptographic operations will be performed
|
||||
Switch on asynchronous mode. Cryptographic operations will be performed
|
||||
asynchronously. This will only have an effect if an asynchronous capable engine
|
||||
is also used via the B<-engine> option. For test purposes the dummy async engine
|
||||
(dasync) can be used (if available).
|
||||
|
||||
=item B<-max_send_frag int>
|
||||
|
||||
The maximum size of data fragment to send.
|
||||
See L<SSL_CTX_set_max_send_fragment(3)> for further information.
|
||||
|
||||
=item B<-split_send_frag int>
|
||||
|
||||
The size used to split data for encrypt pipelines. If more data is written in
|
||||
one go than this value then it will be split into multiple pipelines, up to the
|
||||
maximum number of pipelines defined by max_pipelines. This only has an effect if
|
||||
a suitable ciphersuite has been negotiated, an engine that supports pipelining
|
||||
a suitable cipher suite has been negotiated, an engine that supports pipelining
|
||||
has been loaded, and max_pipelines is greater than 1. See
|
||||
L<SSL_CTX_set_split_send_fragment(3)> for further information.
|
||||
|
||||
@@ -395,7 +457,7 @@ L<SSL_CTX_set_split_send_fragment(3)> for further information.
|
||||
|
||||
The maximum number of encrypt/decrypt pipelines to be used. This will only have
|
||||
an effect if an engine has been loaded that supports pipelining (e.g. the dasync
|
||||
engine) and a suitable ciphersuite has been negotiated. The default value is 1.
|
||||
engine) and a suitable cipher suite has been negotiated. The default value is 1.
|
||||
See L<SSL_CTX_set_max_pipelines(3)> for further information.
|
||||
|
||||
=item B<-read_buf int>
|
||||
@@ -407,7 +469,7 @@ further information).
|
||||
|
||||
=item B<-bugs>
|
||||
|
||||
there are several known bug in SSL and TLS implementations. Adding this
|
||||
There are several known bug in SSL and TLS implementations. Adding this
|
||||
option enables various workarounds.
|
||||
|
||||
=item B<-comp>
|
||||
@@ -425,7 +487,7 @@ OpenSSL 1.1.0.
|
||||
|
||||
=item B<-brief>
|
||||
|
||||
only provide a brief summary of connection parameters instead of the
|
||||
Only provide a brief summary of connection parameters instead of the
|
||||
normal verbose output.
|
||||
|
||||
=item B<-sigalgs sigalglist>
|
||||
@@ -443,17 +505,17 @@ is ultimately selected by the server. For a list of all curves, use:
|
||||
|
||||
=item B<-cipher cipherlist>
|
||||
|
||||
this allows the cipher list sent by the client to be modified. Although
|
||||
This allows the cipher list sent by the client to be modified. Although
|
||||
the server determines which cipher suite is used it should take the first
|
||||
supported cipher in the list sent by the client. See the B<ciphers>
|
||||
command for more information.
|
||||
|
||||
=item B<-starttls protocol>
|
||||
|
||||
send the protocol-specific message(s) to switch to TLS for communication.
|
||||
Send the protocol-specific message(s) to switch to TLS for communication.
|
||||
B<protocol> is a keyword for the intended protocol. Currently, the only
|
||||
supported keywords are "smtp", "pop3", "imap", "ftp", "xmpp", "xmpp-server",
|
||||
and "irc."
|
||||
"irc", "postgres", "mysql", "lmtp", "nntp", "sieve" and "ldap".
|
||||
|
||||
=item B<-xmpphost hostname>
|
||||
|
||||
@@ -462,66 +524,86 @@ specifies the host for the "to" attribute of the stream element.
|
||||
If this option is not specified, then the host specified with "-connect"
|
||||
will be used.
|
||||
|
||||
This option is an alias of the B<-name> option for "xmpp" and "xmpp-server".
|
||||
|
||||
=item B<-name hostname>
|
||||
|
||||
This option is used to specify hostname information for various protocols
|
||||
used with B<-starttls> option. Currently only "xmpp", "xmpp-server",
|
||||
"smtp" and "lmtp" can utilize this B<-name> option.
|
||||
|
||||
If this option is used with "-starttls xmpp" or "-starttls xmpp-server",
|
||||
if specifies the host for the "to" attribute of the stream element. If this
|
||||
option is not specified, then the host specified with "-connect" will be used.
|
||||
|
||||
If this option is used with "-starttls lmtp" or "-starttls smtp", it specifies
|
||||
the name to use in the "LMTP LHLO" or "SMTP EHLO" message, respectively. If
|
||||
this option is not specified, then "mail.example.com" will be used.
|
||||
|
||||
=item B<-tlsextdebug>
|
||||
|
||||
print out a hex dump of any TLS extensions received from the server.
|
||||
Print out a hex dump of any TLS extensions received from the server.
|
||||
|
||||
=item B<-no_ticket>
|
||||
|
||||
disable RFC4507bis session ticket support.
|
||||
Disable RFC4507bis session ticket support.
|
||||
|
||||
=item B<-sess_out filename>
|
||||
|
||||
output SSL session to B<filename>
|
||||
Output SSL session to B<filename>.
|
||||
|
||||
=item B<-sess_in sess.pem>
|
||||
|
||||
load SSL session from B<filename>. The client will attempt to resume a
|
||||
Load SSL session from B<filename>. The client will attempt to resume a
|
||||
connection from this session.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<s_client>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<s_client>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-serverinfo types>
|
||||
|
||||
a list of comma-separated TLS Extension Types (numbers between 0 and
|
||||
A list of comma-separated TLS Extension Types (numbers between 0 and
|
||||
65535). Each type will be sent as an empty ClientHello TLS Extension.
|
||||
The server's response (if any) will be encoded and displayed as a PEM
|
||||
file.
|
||||
|
||||
=item B<-status>
|
||||
|
||||
sends a certificate status request to the server (OCSP stapling). The server
|
||||
Sends a certificate status request to the server (OCSP stapling). The server
|
||||
response (if any) is printed out.
|
||||
|
||||
=item B<-alpn protocols>, B<-nextprotoneg protocols>
|
||||
|
||||
these flags enable the
|
||||
Enable the Application-Layer Protocol Negotiation or Next Protocol
|
||||
Negotiation extension, respectively. ALPN is the IETF standard and
|
||||
replaces NPN.
|
||||
The B<protocols> list is a
|
||||
comma-separated protocol names that the client should advertise
|
||||
support for. The list should contain most wanted protocols first.
|
||||
Protocol names are printable ASCII strings, for example "http/1.1" or
|
||||
"spdy/3".
|
||||
Empty list of protocols is treated specially and will cause the client to
|
||||
advertise support for the TLS extension but disconnect just after
|
||||
receiving ServerHello with a list of server supported protocols.
|
||||
These flags enable the Enable the Application-Layer Protocol Negotiation
|
||||
or Next Protocol Negotiation (NPN) extension, respectively. ALPN is the
|
||||
IETF standard and replaces NPN.
|
||||
The B<protocols> list is a comma-separated list of protocol names that
|
||||
the client should advertise support for. The list should contain the most
|
||||
desirable protocols first. Protocol names are printable ASCII strings,
|
||||
for example "http/1.1" or "spdy/3".
|
||||
An empty list of protocols is treated specially and will cause the
|
||||
client to advertise support for the TLS extension but disconnect just
|
||||
after receiving ServerHello with a list of server supported protocols.
|
||||
The flag B<-nextprotoneg> cannot be specified if B<-tls1_3> is used.
|
||||
|
||||
=item B<-ct|noct>
|
||||
=item B<-ct>, B<-noct>
|
||||
|
||||
Use one of these two options to control whether Certificate Transparency (CT)
|
||||
is enabled (B<-ct>) or disabled (B<-noct>).
|
||||
@@ -536,6 +618,29 @@ for SCTs.
|
||||
A file containing a list of known Certificate Transparency logs. See
|
||||
L<SSL_CTX_set_ctlog_list_file(3)> for the expected file format.
|
||||
|
||||
=item B<-keylogfile file>
|
||||
|
||||
Appends TLS secrets to the specified keylog file such that external programs
|
||||
(like Wireshark) can decrypt TLS connections.
|
||||
|
||||
=item B<-early_data file>
|
||||
|
||||
Reads the contents of the specified file and attempts to send it as early data
|
||||
to the server. This will only work with resumed sessions that support early
|
||||
data and when the server accepts the early data.
|
||||
|
||||
=item B<-force_pha>
|
||||
|
||||
For TLSv1.3 only, always send the Post-Handshake Authentication extension,
|
||||
whether or not a certificate has been provided via B<-cert>.
|
||||
|
||||
=item B<[target]>
|
||||
|
||||
Rather than providing B<-connect>, the target hostname and optional port may
|
||||
be provided as a single positional argument after all options. If neither this
|
||||
nor B<-connect> are provided, falls back to attempting to connect to localhost
|
||||
on port 4433.
|
||||
|
||||
=back
|
||||
|
||||
=head1 CONNECTED COMMANDS
|
||||
@@ -588,6 +693,9 @@ applications should B<not> do this as it makes them vulnerable to a MITM
|
||||
attack. This behaviour can be changed by with the B<-verify_return_error>
|
||||
option: any verify errors are then returned aborting the handshake.
|
||||
|
||||
The B<-bind> option may be useful if the server or a firewall requires
|
||||
connections to come from some particular address and or port.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Because this program has a lot of options and also because some of the
|
||||
@@ -600,16 +708,18 @@ information whenever a session is renegotiated.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<SSL_CONF_cmd(3)>,
|
||||
L<sess_id(1)>, L<s_server(1)>, L<ciphers(1)>
|
||||
L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_server(1)>, L<ciphers(1)>,
|
||||
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>
|
||||
L<SSL_CTX_set_max_pipelines(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
The B<-no_alt_chains> option was first added to OpenSSL 1.1.0.
|
||||
The B<-name> option was added in OpenSSL 1.1.1.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -9,109 +9,175 @@ s_server - SSL/TLS server program
|
||||
|
||||
B<openssl> B<s_server>
|
||||
[B<-help>]
|
||||
[B<-port port>]
|
||||
[B<-port +int>]
|
||||
[B<-accept val>]
|
||||
[B<-naccept count>]
|
||||
[B<-unix val>]
|
||||
[B<-unlink>]
|
||||
[B<-4>]
|
||||
[B<-6>]
|
||||
[B<-context id>]
|
||||
[B<-verify depth>]
|
||||
[B<-Verify depth>]
|
||||
[B<-crl_check>]
|
||||
[B<-crl_check_all>]
|
||||
[B<-cert filename>]
|
||||
[B<-certform DER|PEM>]
|
||||
[B<-key keyfile>]
|
||||
[B<-keyform DER|PEM>]
|
||||
[B<-pass arg>]
|
||||
[B<-dcert filename>]
|
||||
[B<-dcertform DER|PEM>]
|
||||
[B<-dkey keyfile>]
|
||||
[B<-dkeyform DER|PEM>]
|
||||
[B<-dpass arg>]
|
||||
[B<-dhparam filename>]
|
||||
[B<-nbio>]
|
||||
[B<-unlink>]
|
||||
[B<-context val>]
|
||||
[B<-verify int>]
|
||||
[B<-Verify int>]
|
||||
[B<-cert infile>]
|
||||
[B<-nameopt val>]
|
||||
[B<-naccept +int>]
|
||||
[B<-serverinfo val>]
|
||||
[B<-certform PEM|DER>]
|
||||
[B<-key infile>]
|
||||
[B<-keyform format>]
|
||||
[B<-pass val>]
|
||||
[B<-dcert infile>]
|
||||
[B<-dcertform PEM|DER>]
|
||||
[B<-dkey infile>]
|
||||
[B<-dkeyform PEM|DER>]
|
||||
[B<-dpass val>]
|
||||
[B<-nbio_test>]
|
||||
[B<-crlf>]
|
||||
[B<-debug>]
|
||||
[B<-msg>]
|
||||
[B<-msgfile outfile>]
|
||||
[B<-state>]
|
||||
[B<-CApath directory>]
|
||||
[B<-CAfile filename>]
|
||||
[B<-CAfile infile>]
|
||||
[B<-CApath dir>]
|
||||
[B<-no-CAfile>]
|
||||
[B<-no-CApath>]
|
||||
[B<-attime timestamp>]
|
||||
[B<-check_ss_sig>]
|
||||
[B<-explicit_policy>]
|
||||
[B<-extended_crl>]
|
||||
[B<-ignore_critical>]
|
||||
[B<-inhibit_any>]
|
||||
[B<-inhibit_map>]
|
||||
[B<-no_check_time>]
|
||||
[B<-partial_chain>]
|
||||
[B<-policy arg>]
|
||||
[B<-policy_check>]
|
||||
[B<-policy_print>]
|
||||
[B<-purpose purpose>]
|
||||
[B<-suiteB_128>]
|
||||
[B<-suiteB_128_only>]
|
||||
[B<-suiteB_192>]
|
||||
[B<-trusted_first>]
|
||||
[B<-no_alt_chains>]
|
||||
[B<-use_deltas>]
|
||||
[B<-auth_level num>]
|
||||
[B<-verify_depth num>]
|
||||
[B<-verify_return_error>]
|
||||
[B<-verify_email email>]
|
||||
[B<-verify_hostname hostname>]
|
||||
[B<-verify_ip ip>]
|
||||
[B<-verify_name name>]
|
||||
[B<-x509_strict>]
|
||||
[B<-nocert>]
|
||||
[B<-client_sigalgs sigalglist>]
|
||||
[B<-named_curve curve>]
|
||||
[B<-cipher cipherlist>]
|
||||
[B<-serverpref>]
|
||||
[B<-quiet>]
|
||||
[B<-ssl3>]
|
||||
[B<-tls1>]
|
||||
[B<-tls1_1>]
|
||||
[B<-tls1_2>]
|
||||
[B<-dtls>]
|
||||
[B<-dtls1>]
|
||||
[B<-dtls1_2>]
|
||||
[B<-listen>]
|
||||
[B<-no_resume_ephemeral>]
|
||||
[B<-www>]
|
||||
[B<-WWW>]
|
||||
[B<-servername>]
|
||||
[B<-servername_fatal>]
|
||||
[B<-cert2 infile>]
|
||||
[B<-key2 infile>]
|
||||
[B<-tlsextdebug>]
|
||||
[B<-HTTP>]
|
||||
[B<-id_prefix val>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-keymatexport val>]
|
||||
[B<-keymatexportlen +int>]
|
||||
[B<-CRL infile>]
|
||||
[B<-crl_download>]
|
||||
[B<-cert_chain infile>]
|
||||
[B<-dcert_chain infile>]
|
||||
[B<-chainCApath dir>]
|
||||
[B<-verifyCApath dir>]
|
||||
[B<-no_cache>]
|
||||
[B<-ext_cache>]
|
||||
[B<-CRLform PEM|DER>]
|
||||
[B<-verify_return_error>]
|
||||
[B<-verify_quiet>]
|
||||
[B<-build_chain>]
|
||||
[B<-chainCAfile infile>]
|
||||
[B<-verifyCAfile infile>]
|
||||
[B<-ign_eof>]
|
||||
[B<-no_ign_eof>]
|
||||
[B<-status>]
|
||||
[B<-status_verbose>]
|
||||
[B<-status_timeout int>]
|
||||
[B<-status_url val>]
|
||||
[B<-status_file infile>]
|
||||
[B<-trace>]
|
||||
[B<-security_debug>]
|
||||
[B<-security_debug_verbose>]
|
||||
[B<-brief>]
|
||||
[B<-rev>]
|
||||
[B<-async>]
|
||||
[B<-split_send_frag>]
|
||||
[B<-max_pipelines>]
|
||||
[B<-read_buf>]
|
||||
[B<-ssl_config val>]
|
||||
[B<-max_send_frag +int>]
|
||||
[B<-split_send_frag +int>]
|
||||
[B<-max_pipelines +int>]
|
||||
[B<-read_buf +int>]
|
||||
[B<-no_ssl3>]
|
||||
[B<-no_tls1>]
|
||||
[B<-no_tls1_1>]
|
||||
[B<-no_tls1_2>]
|
||||
[B<-no_dhe>]
|
||||
[B<-no_tls1_3>]
|
||||
[B<-bugs>]
|
||||
[B<-comp>]
|
||||
[B<-no_comp>]
|
||||
[B<-brief>]
|
||||
[B<-www>]
|
||||
[B<-WWW>]
|
||||
[B<-HTTP>]
|
||||
[B<-engine id>]
|
||||
[B<-tlsextdebug>]
|
||||
[B<-comp>]
|
||||
[B<-no_ticket>]
|
||||
[B<-id_prefix arg>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-serverinfo file>]
|
||||
[B<-serverpref>]
|
||||
[B<-legacy_renegotiation>]
|
||||
[B<-no_renegotiation>]
|
||||
[B<-legacy_server_connect>]
|
||||
[B<-no_resumption_on_reneg>]
|
||||
[B<-status>]
|
||||
[B<-status_verbose>]
|
||||
[B<-status_timeout nsec>]
|
||||
[B<-status_url url>]
|
||||
[B<-alpn protocols>]
|
||||
[B<-nextprotoneg protocols>]
|
||||
[B<-no_legacy_server_connect>]
|
||||
[B<-allow_no_dhe_kex>]
|
||||
[B<-prioritize_chacha>]
|
||||
[B<-strict>]
|
||||
[B<-sigalgs val>]
|
||||
[B<-client_sigalgs val>]
|
||||
[B<-groups val>]
|
||||
[B<-curves val>]
|
||||
[B<-named_curve val>]
|
||||
[B<-cipher val>]
|
||||
[B<-dhparam infile>]
|
||||
[B<-record_padding val>]
|
||||
[B<-debug_broken_protocol>]
|
||||
[B<-policy val>]
|
||||
[B<-purpose val>]
|
||||
[B<-verify_name val>]
|
||||
[B<-verify_depth int>]
|
||||
[B<-auth_level int>]
|
||||
[B<-attime intmax>]
|
||||
[B<-verify_hostname val>]
|
||||
[B<-verify_email val>]
|
||||
[B<-verify_ip>]
|
||||
[B<-ignore_critical>]
|
||||
[B<-issuer_checks>]
|
||||
[B<-crl_check>]
|
||||
[B<-crl_check_all>]
|
||||
[B<-policy_check>]
|
||||
[B<-explicit_policy>]
|
||||
[B<-inhibit_any>]
|
||||
[B<-inhibit_map>]
|
||||
[B<-x509_strict>]
|
||||
[B<-extended_crl>]
|
||||
[B<-use_deltas>]
|
||||
[B<-policy_print>]
|
||||
[B<-check_ss_sig>]
|
||||
[B<-trusted_first>]
|
||||
[B<-suiteB_128_only>]
|
||||
[B<-suiteB_128>]
|
||||
[B<-suiteB_192>]
|
||||
[B<-partial_chain>]
|
||||
[B<-no_alt_chains>]
|
||||
[B<-no_check_time>]
|
||||
[B<-allow_proxy_certs>]
|
||||
[B<-xkey>]
|
||||
[B<-xcert>]
|
||||
[B<-xchain>]
|
||||
[B<-xchain_build>]
|
||||
[B<-xcertform PEM|DER>]
|
||||
[B<-xkeyform PEM|DER>]
|
||||
[B<-nbio>]
|
||||
[B<-psk_identity val>]
|
||||
[B<-psk_hint val>]
|
||||
[B<-psk val>]
|
||||
[B<-srpvfile infile>]
|
||||
[B<-srpuserseed val>]
|
||||
[B<-ssl3>]
|
||||
[B<-tls1>]
|
||||
[B<-tls1_1>]
|
||||
[B<-tls1_2>]
|
||||
[B<-tls1_3>]
|
||||
[B<-dtls>]
|
||||
[B<-timeout>]
|
||||
[B<-mtu +int>]
|
||||
[B<-listen>]
|
||||
[B<-dtls1>]
|
||||
[B<-dtls1_2>]
|
||||
[B<-sctp>]
|
||||
[B<-no_dhe>]
|
||||
[B<-nextprotoneg val>]
|
||||
[B<-use_srtp val>]
|
||||
[B<-alpn val>]
|
||||
[B<-engine val>]
|
||||
[B<-keylogfile outfile>]
|
||||
[B<-max_early_data int>]
|
||||
[B<-early_data>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -131,7 +197,7 @@ manual page.
|
||||
|
||||
Print out a usage message.
|
||||
|
||||
=item B<-port port>
|
||||
=item B<-port +int>
|
||||
|
||||
The TCP port to listen on for connections. If not specified 4433 is used.
|
||||
|
||||
@@ -139,18 +205,10 @@ The TCP port to listen on for connections. If not specified 4433 is used.
|
||||
|
||||
The optional TCP host and port to listen on for connections. If not specified, *:4433 is used.
|
||||
|
||||
=item B<-naccept count>
|
||||
|
||||
The server will exit after receiving B<number> connections, default unlimited.
|
||||
|
||||
=item B<-unix val>
|
||||
|
||||
Unix domain socket to accept on.
|
||||
|
||||
=item B<-unlink>
|
||||
|
||||
For -unix, unlink existing socket first.
|
||||
|
||||
=item B<-4>
|
||||
|
||||
Use IPv4 only.
|
||||
@@ -159,23 +217,58 @@ Use IPv4 only.
|
||||
|
||||
Use IPv6 only.
|
||||
|
||||
=item B<-context id>
|
||||
=item B<-unlink>
|
||||
|
||||
For -unix, unlink any existing socket first.
|
||||
|
||||
=item B<-context val>
|
||||
|
||||
Sets the SSL context id. It can be given any string value. If this option
|
||||
is not present a default value will be used.
|
||||
|
||||
=item B<-cert certname>
|
||||
=item B<-verify int>, B<-Verify int>
|
||||
|
||||
The verify depth to use. This specifies the maximum length of the
|
||||
client certificate chain and makes the server request a certificate from
|
||||
the client. With the B<-verify> option a certificate is requested but the
|
||||
client does not have to send one, with the B<-Verify> option the client
|
||||
must supply a certificate or an error occurs.
|
||||
|
||||
If the cipher suite cannot request a client certificate (for example an
|
||||
anonymous cipher suite or PSK) this option has no effect.
|
||||
|
||||
=item B<-cert infile>
|
||||
|
||||
The certificate to use, most servers cipher suites require the use of a
|
||||
certificate and some require a certificate with a certain public key type:
|
||||
for example the DSS cipher suites require a certificate containing a DSS
|
||||
(DSA) key. If not specified then the filename "server.pem" will be used.
|
||||
|
||||
=item B<-certform format>
|
||||
=item B<-nameopt val>
|
||||
|
||||
Option which determines how the subject or issuer names are displayed. The
|
||||
B<val> argument can be a single option or multiple options separated by
|
||||
commas. Alternatively the B<-nameopt> switch may be used more than once to
|
||||
set multiple options. See the L<x509(1)> manual page for details.
|
||||
|
||||
=item B<-naccept +int>
|
||||
|
||||
The server will exit after receiving the specified number of connections,
|
||||
default unlimited.
|
||||
|
||||
=item B<-serverinfo val>
|
||||
|
||||
A file containing one or more blocks of PEM data. Each PEM block
|
||||
must encode a TLS ServerHello extension (2 bytes type, 2 bytes length,
|
||||
followed by "length" bytes of extension data). If the client sends
|
||||
an empty TLS ClientHello extension matching the type, the corresponding
|
||||
ServerHello extension will be returned.
|
||||
|
||||
=item B<-certform PEM|DER>
|
||||
|
||||
The certificate format to use: DER or PEM. PEM is the default.
|
||||
|
||||
=item B<-key keyfile>
|
||||
=item B<-key infile>
|
||||
|
||||
The private key to use. If not specified then the certificate file will
|
||||
be used.
|
||||
@@ -184,12 +277,12 @@ be used.
|
||||
|
||||
The private format to use: DER or PEM. PEM is the default.
|
||||
|
||||
=item B<-pass arg>
|
||||
=item B<-pass val>
|
||||
|
||||
The private key password source. For more information about the format of B<arg>
|
||||
The private key password source. For more information about the format of B<val>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-dcert filename>, B<-dkey keyname>
|
||||
=item B<-dcert infile>, B<-dkey infile>
|
||||
|
||||
Specify an additional certificate and private key, these behave in the
|
||||
same manner as the B<-cert> and B<-key> options except there is no default
|
||||
@@ -200,87 +293,17 @@ and some a DSS (DSA) key. By using RSA and DSS certificates and keys
|
||||
a server can support clients which only support RSA or DSS cipher suites
|
||||
by using an appropriate certificate.
|
||||
|
||||
=item B<-dcertform format>, B<-dkeyform format>, B<-dpass arg>
|
||||
=item B<-dcertform PEM|DER>, B<-dkeyform PEM|DER>, B<-dpass val>
|
||||
|
||||
Additional certificate and private key format and passphrase respectively.
|
||||
|
||||
=item B<-nocert>
|
||||
=item B<-nbio_test>
|
||||
|
||||
If this option is set then no certificate is used. This restricts the
|
||||
cipher suites available to the anonymous ones (currently just anonymous
|
||||
DH).
|
||||
Tests non blocking I/O.
|
||||
|
||||
=item B<-dhparam filename>
|
||||
=item B<-crlf>
|
||||
|
||||
The DH parameter file to use. The ephemeral DH cipher suites generate keys
|
||||
using a set of DH parameters. If not specified then an attempt is made to
|
||||
load the parameters from the server certificate file.
|
||||
If this fails then a static set of parameters hard coded into the B<s_server>
|
||||
program will be used.
|
||||
|
||||
=item B<-no_dhe>
|
||||
|
||||
If this option is set then no DH parameters will be loaded effectively
|
||||
disabling the ephemeral DH cipher suites.
|
||||
|
||||
=item B<-crl_check>, B<-crl_check_all>
|
||||
|
||||
Check the peer certificate has not been revoked by its CA.
|
||||
The CRL(s) are appended to the certificate file. With the B<-crl_check_all>
|
||||
option all CRLs of all CAs in the chain are checked.
|
||||
|
||||
=item B<-CApath directory>
|
||||
|
||||
The directory to use for client certificate verification. This directory
|
||||
must be in "hash format", see B<verify> for more information. These are
|
||||
also used when building the server certificate chain.
|
||||
|
||||
=item B<-CAfile file>
|
||||
|
||||
A file containing trusted certificates to use during client authentication
|
||||
and to use when attempting to build the server certificate chain. The list
|
||||
is also used in the list of acceptable client CAs passed to the client when
|
||||
a certificate is requested.
|
||||
|
||||
=item B<-no-CAfile>
|
||||
|
||||
Do not load the trusted CA certificates from the default file location
|
||||
|
||||
=item B<-no-CApath>
|
||||
|
||||
Do not load the trusted CA certificates from the default directory location
|
||||
|
||||
=item B<-verify depth>, B<-Verify depth>
|
||||
|
||||
The verify depth to use. This specifies the maximum length of the
|
||||
client certificate chain and makes the server request a certificate from
|
||||
the client. With the B<-verify> option a certificate is requested but the
|
||||
client does not have to send one, with the B<-Verify> option the client
|
||||
must supply a certificate or an error occurs.
|
||||
|
||||
If the ciphersuite cannot request a client certificate (for example an
|
||||
anonymous ciphersuite or PSK) this option has no effect.
|
||||
|
||||
=item B<-attime>, B<-check_ss_sig>, B<-crl_check>, B<-crl_check_all>,
|
||||
B<-explicit_policy>, B<-extended_crl>, B<-ignore_critical>, B<-inhibit_any>,
|
||||
B<-inhibit_map>, B<-no_alt_chains>, B<-no_check_time>, B<-partial_chain>, B<-policy>,
|
||||
B<-policy_check>, B<-policy_print>, B<-purpose>, B<-suiteB_128>,
|
||||
B<-suiteB_128_only>, B<-suiteB_192>, B<-trusted_first>, B<-use_deltas>,
|
||||
B<-auth_level>, B<-verify_depth>, B<-verify_email>, B<-verify_hostname>,
|
||||
B<-verify_ip>, B<-verify_name>, B<-x509_strict>
|
||||
|
||||
Set different peer certificate verification options.
|
||||
See the L<verify(1)> manual page for details.
|
||||
|
||||
=item B<-verify_return_error>
|
||||
|
||||
Verification errors normally just print a message but allow the
|
||||
connection to continue, for debugging purposes.
|
||||
If this option is used, then verification errors close the connection.
|
||||
|
||||
=item B<-state>
|
||||
|
||||
Prints the SSL session states.
|
||||
This option translated a line feed from the terminal into CR+LF.
|
||||
|
||||
=item B<-debug>
|
||||
|
||||
@@ -290,152 +313,45 @@ Print extensive debugging information including a hex dump of all traffic.
|
||||
|
||||
Show all protocol messages with hex dump.
|
||||
|
||||
=item B<-trace>
|
||||
|
||||
Show verbose trace output of protocol messages. OpenSSL needs to be compiled
|
||||
with B<enable-ssl-trace> for this option to work.
|
||||
|
||||
=item B<-msgfile>
|
||||
=item B<-msgfile outfile>
|
||||
|
||||
File to send output of B<-msg> or B<-trace> to, default standard output.
|
||||
|
||||
=item B<-nbio_test>
|
||||
=item B<-state>
|
||||
|
||||
Tests non blocking I/O
|
||||
Prints the SSL session states.
|
||||
|
||||
=item B<-nbio>
|
||||
=item B<-CAfile infile>
|
||||
|
||||
Turns on non blocking I/O
|
||||
A file containing trusted certificates to use during client authentication
|
||||
and to use when attempting to build the server certificate chain. The list
|
||||
is also used in the list of acceptable client CAs passed to the client when
|
||||
a certificate is requested.
|
||||
|
||||
=item B<-crlf>
|
||||
=item B<-CApath dir>
|
||||
|
||||
This option translated a line feed from the terminal into CR+LF.
|
||||
The directory to use for client certificate verification. This directory
|
||||
must be in "hash format", see B<verify> for more information. These are
|
||||
also used when building the server certificate chain.
|
||||
|
||||
=item B<-no-CAfile>
|
||||
|
||||
Do not load the trusted CA certificates from the default file location.
|
||||
|
||||
=item B<-no-CApath>
|
||||
|
||||
Do not load the trusted CA certificates from the default directory location.
|
||||
|
||||
=item B<-nocert>
|
||||
|
||||
If this option is set then no certificate is used. This restricts the
|
||||
cipher suites available to the anonymous ones (currently just anonymous
|
||||
DH).
|
||||
|
||||
=item B<-quiet>
|
||||
|
||||
Inhibit printing of session and certificate information.
|
||||
|
||||
=item B<-psk_hint hint>
|
||||
|
||||
Use the PSK identity hint B<hint> when using a PSK cipher suite.
|
||||
|
||||
=item B<-psk key>
|
||||
|
||||
Use the PSK key B<key> when using a PSK cipher suite. The key is
|
||||
given as a hexadecimal number without leading 0x, for example -psk
|
||||
1a2b3c4d.
|
||||
This option must be provided in order to use a PSK cipher.
|
||||
|
||||
=item B<-ssl2>, B<-ssl3>, B<-tls1>, B<-tls1_1>, B<-tls1_2>, B<-no_ssl2>, B<-no_ssl3>, B<-no_tls1>, B<-no_tls1_1>, B<-no_tls1_2>
|
||||
|
||||
These options require or disable the use of the specified SSL or TLS protocols.
|
||||
By default B<s_server> will negotiate the highest mutually supported protocol
|
||||
version.
|
||||
When a specific TLS version is required, only that version will be accepted
|
||||
from the client.
|
||||
|
||||
=item B<-dtls>, B<-dtls1>, B<-dtls1_2>
|
||||
|
||||
These options make B<s_server> use DTLS protocols instead of TLS.
|
||||
With B<-dtls>, B<s_server> will negotiate any supported DTLS protocol version,
|
||||
whilst B<-dtls1> and B<-dtls1_2> will only support DTLSv1.0 and DTLSv1.2
|
||||
respectively.
|
||||
|
||||
=item B<-listen>
|
||||
|
||||
This option can only be used in conjunction with one of the DTLS options above.
|
||||
With this option B<s_server> will listen on a UDP port for incoming connections.
|
||||
Any ClientHellos that arrive will be checked to see if they have a cookie in
|
||||
them or not.
|
||||
Any without a cookie will be responded to with a HelloVerifyRequest.
|
||||
If a ClientHello with a cookie is received then B<s_server> will connect to
|
||||
that peer and complete the handshake.
|
||||
|
||||
=item B<-async>
|
||||
|
||||
Switch on asynchronous mode. Cryptographic operations will be performed
|
||||
asynchronously. This will only have an effect if an asynchronous capable engine
|
||||
is also used via the B<-engine> option. For test purposes the dummy async engine
|
||||
(dasync) can be used (if available).
|
||||
|
||||
=item B<-split_send_frag int>
|
||||
|
||||
The size used to split data for encrypt pipelines. If more data is written in
|
||||
one go than this value then it will be split into multiple pipelines, up to the
|
||||
maximum number of pipelines defined by max_pipelines. This only has an effect if
|
||||
a suitable ciphersuite has been negotiated, an engine that supports pipelining
|
||||
has been loaded, and max_pipelines is greater than 1. See
|
||||
L<SSL_CTX_set_split_send_fragment(3)> for further information.
|
||||
|
||||
=item B<-max_pipelines int>
|
||||
|
||||
The maximum number of encrypt/decrypt pipelines to be used. This will only have
|
||||
an effect if an engine has been loaded that supports pipelining (e.g. the dasync
|
||||
engine) and a suitable ciphersuite has been negotiated. The default value is 1.
|
||||
See L<SSL_CTX_set_max_pipelines(3)> for further information.
|
||||
|
||||
=item B<-read_buf int>
|
||||
|
||||
The default read buffer size to be used for connections. This will only have an
|
||||
effect if the buffer size is larger than the size that would otherwise be used
|
||||
and pipelining is in use (see L<SSL_CTX_set_default_read_buffer_len(3)> for
|
||||
further information).
|
||||
|
||||
=item B<-bugs>
|
||||
|
||||
There are several known bug in SSL and TLS implementations. Adding this
|
||||
option enables various workarounds.
|
||||
|
||||
=item B<-comp>
|
||||
|
||||
Enable negotiation of TLS compression.
|
||||
This option was introduced in OpenSSL 1.1.0.
|
||||
TLS compression is not recommended and is off by default as of
|
||||
OpenSSL 1.1.0.
|
||||
|
||||
=item B<-no_comp>
|
||||
|
||||
Disable negotiation of TLS compression.
|
||||
TLS compression is not recommended and is off by default as of
|
||||
OpenSSL 1.1.0.
|
||||
|
||||
=item B<-brief>
|
||||
|
||||
Provide a brief summary of connection parameters instead of the normal verbose
|
||||
output.
|
||||
|
||||
=item B<-client_sigalgs sigalglist>
|
||||
|
||||
Signature algorithms to support for client certificate authentication
|
||||
(colon-separated list)
|
||||
|
||||
=item B<-named_curve curve>
|
||||
|
||||
Specifies the elliptic curve to use. NOTE: this is single curve, not a list.
|
||||
For a list of all possible curves, use:
|
||||
|
||||
$ openssl ecparam -list_curves
|
||||
|
||||
=item B<-cipher cipherlist>
|
||||
|
||||
This allows the cipher list used by the server to be modified. When
|
||||
the client sends a list of supported ciphers the first client cipher
|
||||
also included in the server list is used. Because the client specifies
|
||||
the preference order, the order of the server cipherlist irrelevant. See
|
||||
the B<ciphers> command for more information.
|
||||
|
||||
=item B<-serverpref>
|
||||
|
||||
Use the server's cipher preferences, rather than the client's preferences.
|
||||
|
||||
=item B<-tlsextdebug>
|
||||
|
||||
Print a hex dump of any TLS extensions received from the server.
|
||||
|
||||
=item B<-no_ticket>
|
||||
|
||||
Disable RFC4507bis session ticket support.
|
||||
|
||||
=item B<-www>
|
||||
|
||||
Sends a status message back to the client when it connects. This includes
|
||||
@@ -449,6 +365,10 @@ Emulates a simple web server. Pages will be resolved relative to the
|
||||
current directory, for example if the URL https://myhost/page.html is
|
||||
requested the file ./page.html will be loaded.
|
||||
|
||||
=item B<-tlsextdebug>
|
||||
|
||||
Print a hex dump of any TLS extensions received from the server.
|
||||
|
||||
=item B<-HTTP>
|
||||
|
||||
Emulates a simple web server. Pages will be resolved relative to the
|
||||
@@ -457,44 +377,31 @@ requested the file ./page.html will be loaded. The files loaded are
|
||||
assumed to contain a complete and correct HTTP response (lines that
|
||||
are part of the HTTP response line and headers must end with CRLF).
|
||||
|
||||
=item B<-rev>
|
||||
=item B<-id_prefix val>
|
||||
|
||||
Simple test server which just reverses the text received from the client
|
||||
and sends it back to the server. Also sets B<-brief>.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
Specifying an engine (by its unique B<id> string) will cause B<s_server>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-id_prefix arg>
|
||||
|
||||
Generate SSL/TLS session IDs prefixed by B<arg>. This is mostly useful
|
||||
Generate SSL/TLS session IDs prefixed by B<val>. This is mostly useful
|
||||
for testing any SSL/TLS code (eg. proxies) that wish to deal with multiple
|
||||
servers, when each of which might be generating a unique range of session
|
||||
IDs (eg. with a certain prefix).
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item B<-serverinfo file>
|
||||
=item [B<-writerand file>]
|
||||
|
||||
A file containing one or more blocks of PEM data. Each PEM block
|
||||
must encode a TLS ServerHello extension (2 bytes type, 2 bytes length,
|
||||
followed by "length" bytes of extension data). If the client sends
|
||||
an empty TLS ClientHello extension matching the type, the corresponding
|
||||
ServerHello extension will be returned.
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-no_resumption_on_reneg>
|
||||
=item B<-verify_return_error>
|
||||
|
||||
Set the B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> option.
|
||||
Verification errors normally just print a message but allow the
|
||||
connection to continue, for debugging purposes.
|
||||
If this option is used, then verification errors close the connection.
|
||||
|
||||
=item B<-status>
|
||||
|
||||
@@ -505,27 +412,240 @@ Enables certificate status request support (aka OCSP stapling).
|
||||
Enables certificate status request support (aka OCSP stapling) and gives
|
||||
a verbose printout of the OCSP response.
|
||||
|
||||
=item B<-status_timeout nsec>
|
||||
=item B<-status_timeout int>
|
||||
|
||||
Sets the timeout for OCSP response to B<nsec> seconds.
|
||||
Sets the timeout for OCSP response to B<int> seconds.
|
||||
|
||||
=item B<-status_url url>
|
||||
=item B<-status_url val>
|
||||
|
||||
Sets a fallback responder URL to use if no responder URL is present in the
|
||||
server certificate. Without this option an error is returned if the server
|
||||
certificate does not contain a responder address.
|
||||
|
||||
=item B<-alpn protocols>, B<-nextprotoneg protocols>
|
||||
=item B<-status_file infile>
|
||||
|
||||
these flags enable the
|
||||
Enable the Application-Layer Protocol Negotiation or Next Protocol
|
||||
Negotiation extension, respectively. ALPN is the IETF standard and
|
||||
replaces NPN.
|
||||
The B<protocols> list is a
|
||||
comma-separated list of supported protocol names.
|
||||
The list should contain most wanted protocols first.
|
||||
Overrides any OCSP responder URLs from the certificate and always provides the
|
||||
OCSP Response stored in the file. The file must be in DER format.
|
||||
|
||||
=item B<-trace>
|
||||
|
||||
Show verbose trace output of protocol messages. OpenSSL needs to be compiled
|
||||
with B<enable-ssl-trace> for this option to work.
|
||||
|
||||
=item B<-brief>
|
||||
|
||||
Provide a brief summary of connection parameters instead of the normal verbose
|
||||
output.
|
||||
|
||||
=item B<-rev>
|
||||
|
||||
Simple test server which just reverses the text received from the client
|
||||
and sends it back to the server. Also sets B<-brief>.
|
||||
|
||||
=item B<-async>
|
||||
|
||||
Switch on asynchronous mode. Cryptographic operations will be performed
|
||||
asynchronously. This will only have an effect if an asynchronous capable engine
|
||||
is also used via the B<-engine> option. For test purposes the dummy async engine
|
||||
(dasync) can be used (if available).
|
||||
|
||||
=item B<-max_send_frag +int>
|
||||
|
||||
The maximum size of data fragment to send.
|
||||
See L<SSL_CTX_set_max_send_fragment(3)> for further information.
|
||||
|
||||
=item B<-split_send_frag +int>
|
||||
|
||||
The size used to split data for encrypt pipelines. If more data is written in
|
||||
one go than this value then it will be split into multiple pipelines, up to the
|
||||
maximum number of pipelines defined by max_pipelines. This only has an effect if
|
||||
a suitable cipher suite has been negotiated, an engine that supports pipelining
|
||||
has been loaded, and max_pipelines is greater than 1. See
|
||||
L<SSL_CTX_set_split_send_fragment(3)> for further information.
|
||||
|
||||
=item B<-max_pipelines +int>
|
||||
|
||||
The maximum number of encrypt/decrypt pipelines to be used. This will only have
|
||||
an effect if an engine has been loaded that supports pipelining (e.g. the dasync
|
||||
engine) and a suitable cipher suite has been negotiated. The default value is 1.
|
||||
See L<SSL_CTX_set_max_pipelines(3)> for further information.
|
||||
|
||||
=item B<-read_buf +int>
|
||||
|
||||
The default read buffer size to be used for connections. This will only have an
|
||||
effect if the buffer size is larger than the size that would otherwise be used
|
||||
and pipelining is in use (see L<SSL_CTX_set_default_read_buffer_len(3)> for
|
||||
further information).
|
||||
|
||||
=item B<-ssl2>, B<-ssl3>, B<-tls1>, B<-tls1_1>, B<-tls1_2>, B<-tls1_3>, B<-no_ssl2>, B<-no_ssl3>, B<-no_tls1>, B<-no_tls1_1>, B<-no_tls1_2>, B<-no_tls1_3>
|
||||
|
||||
These options require or disable the use of the specified SSL or TLS protocols.
|
||||
By default B<s_server> will negotiate the highest mutually supported protocol
|
||||
version.
|
||||
When a specific TLS version is required, only that version will be accepted
|
||||
from the client.
|
||||
|
||||
=item B<-bugs>
|
||||
|
||||
There are several known bug in SSL and TLS implementations. Adding this
|
||||
option enables various workarounds.
|
||||
|
||||
=item B<-no_comp>
|
||||
|
||||
Disable negotiation of TLS compression.
|
||||
TLS compression is not recommended and is off by default as of
|
||||
OpenSSL 1.1.0.
|
||||
|
||||
=item B<-comp>
|
||||
|
||||
Enable negotiation of TLS compression.
|
||||
This option was introduced in OpenSSL 1.1.0.
|
||||
TLS compression is not recommended and is off by default as of
|
||||
OpenSSL 1.1.0.
|
||||
|
||||
=item B<-no_ticket>
|
||||
|
||||
Disable RFC4507bis session ticket support.
|
||||
|
||||
=item B<-serverpref>
|
||||
|
||||
Use the server's cipher preferences, rather than the client's preferences.
|
||||
|
||||
=item B<-prioritize_chacha>
|
||||
|
||||
Prioritize ChaCha ciphers when preferred by clients. Requires B<-serverpref>.
|
||||
|
||||
=item B<-no_resumption_on_reneg>
|
||||
|
||||
Set the B<SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION> option.
|
||||
|
||||
=item B<-client_sigalgs val>
|
||||
|
||||
Signature algorithms to support for client certificate authentication
|
||||
(colon-separated list).
|
||||
|
||||
=item B<-named_curve val>
|
||||
|
||||
Specifies the elliptic curve to use. NOTE: this is single curve, not a list.
|
||||
For a list of all possible curves, use:
|
||||
|
||||
$ openssl ecparam -list_curves
|
||||
|
||||
=item B<-cipher val>
|
||||
|
||||
This allows the cipher list used by the server to be modified. When
|
||||
the client sends a list of supported ciphers the first client cipher
|
||||
also included in the server list is used. Because the client specifies
|
||||
the preference order, the order of the server cipherlist irrelevant. See
|
||||
the B<ciphers> command for more information.
|
||||
|
||||
=item B<-dhparam infile>
|
||||
|
||||
The DH parameter file to use. The ephemeral DH cipher suites generate keys
|
||||
using a set of DH parameters. If not specified then an attempt is made to
|
||||
load the parameters from the server certificate file.
|
||||
If this fails then a static set of parameters hard coded into the B<s_server>
|
||||
program will be used.
|
||||
|
||||
=item B<-attime>, B<-check_ss_sig>, B<-crl_check>, B<-crl_check_all>,
|
||||
B<-explicit_policy>, B<-extended_crl>, B<-ignore_critical>, B<-inhibit_any>,
|
||||
B<-inhibit_map>, B<-no_alt_chains>, B<-no_check_time>, B<-partial_chain>, B<-policy>,
|
||||
B<-policy_check>, B<-policy_print>, B<-purpose>, B<-suiteB_128>,
|
||||
B<-suiteB_128_only>, B<-suiteB_192>, B<-trusted_first>, B<-use_deltas>,
|
||||
B<-auth_level>, B<-verify_depth>, B<-verify_email>, B<-verify_hostname>,
|
||||
B<-verify_ip>, B<-verify_name>, B<-x509_strict>
|
||||
|
||||
Set different peer certificate verification options.
|
||||
See the L<verify(1)> manual page for details.
|
||||
|
||||
=item B<-crl_check>, B<-crl_check_all>
|
||||
|
||||
Check the peer certificate has not been revoked by its CA.
|
||||
The CRL(s) are appended to the certificate file. With the B<-crl_check_all>
|
||||
option all CRLs of all CAs in the chain are checked.
|
||||
|
||||
=item B<-nbio>
|
||||
|
||||
Turns on non blocking I/O.
|
||||
|
||||
=item B<-psk_identity val>
|
||||
|
||||
Expect the client to send PSK identity B<val> when using a PSK
|
||||
cipher suite, and warn if they do not. By default, the expected PSK
|
||||
identity is the string "Client_identity".
|
||||
|
||||
=item B<-psk_hint val>
|
||||
|
||||
Use the PSK identity hint B<val> when using a PSK cipher suite.
|
||||
|
||||
=item B<-psk val>
|
||||
|
||||
Use the PSK key B<val> when using a PSK cipher suite. The key is
|
||||
given as a hexadecimal number without leading 0x, for example -psk
|
||||
1a2b3c4d.
|
||||
This option must be provided in order to use a PSK cipher.
|
||||
|
||||
=item B<-listen>
|
||||
|
||||
This option can only be used in conjunction with one of the DTLS options above.
|
||||
With this option B<s_server> will listen on a UDP port for incoming connections.
|
||||
Any ClientHellos that arrive will be checked to see if they have a cookie in
|
||||
them or not.
|
||||
Any without a cookie will be responded to with a HelloVerifyRequest.
|
||||
If a ClientHello with a cookie is received then B<s_server> will connect to
|
||||
that peer and complete the handshake.
|
||||
|
||||
=item B<-dtls>, B<-dtls1>, B<-dtls1_2>
|
||||
|
||||
These options make B<s_server> use DTLS protocols instead of TLS.
|
||||
With B<-dtls>, B<s_server> will negotiate any supported DTLS protocol version,
|
||||
whilst B<-dtls1> and B<-dtls1_2> will only support DTLSv1.0 and DTLSv1.2
|
||||
respectively.
|
||||
|
||||
=item B<-sctp>
|
||||
|
||||
Use SCTP for the transport protocol instead of UDP in DTLS. Must be used in
|
||||
conjunction with B<-dtls>, B<-dtls1> or B<-dtls1_2>. This option is only
|
||||
available where OpenSSL has support for SCTP enabled.
|
||||
|
||||
=item B<-no_dhe>
|
||||
|
||||
If this option is set then no DH parameters will be loaded effectively
|
||||
disabling the ephemeral DH cipher suites.
|
||||
|
||||
=item B<-alpn val>, B<-nextprotoneg val>
|
||||
|
||||
These flags enable the Enable the Application-Layer Protocol Negotiation
|
||||
or Next Protocol Negotiation (NPN) extension, respectively. ALPN is the
|
||||
IETF standard and replaces NPN.
|
||||
The B<val> list is a comma-separated list of supported protocol
|
||||
names. The list should contain the most desirable protocols first.
|
||||
Protocol names are printable ASCII strings, for example "http/1.1" or
|
||||
"spdy/3".
|
||||
The flag B<-nextprotoneg> cannot be specified if B<-tls1_3> is used.
|
||||
|
||||
=item B<-engine val>
|
||||
|
||||
Specifying an engine (by its unique id string in B<val>) will cause B<s_server>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-keylogfile outfile>
|
||||
|
||||
Appends TLS secrets to the specified keylog file such that external programs
|
||||
(like Wireshark) can decrypt TLS connections.
|
||||
|
||||
=item B<-max_early_data int>
|
||||
|
||||
Change the default maximum early data bytes that are specified for new sessions
|
||||
and any incoming early data (when used in conjunction with the B<-early_data>
|
||||
flag). The default value is approximately 16k. The argument must be an integer
|
||||
greater than or equal to 0.
|
||||
|
||||
=item B<-early_data>
|
||||
|
||||
Accept early data where possible.
|
||||
|
||||
=back
|
||||
|
||||
@@ -542,28 +662,28 @@ operations: these are listed below.
|
||||
|
||||
=item B<q>
|
||||
|
||||
end the current SSL connection but still accept new connections.
|
||||
End the current SSL connection but still accept new connections.
|
||||
|
||||
=item B<Q>
|
||||
|
||||
end the current SSL connection and exit.
|
||||
End the current SSL connection and exit.
|
||||
|
||||
=item B<r>
|
||||
|
||||
renegotiate the SSL session.
|
||||
Renegotiate the SSL session.
|
||||
|
||||
=item B<R>
|
||||
|
||||
renegotiate the SSL session and request a client certificate.
|
||||
Renegotiate the SSL session and request a client certificate.
|
||||
|
||||
=item B<P>
|
||||
|
||||
send some plain text down the underlying TCP connection: this should
|
||||
Send some plain text down the underlying TCP connection: this should
|
||||
cause the client to disconnect due to a protocol violation.
|
||||
|
||||
=item B<S>
|
||||
|
||||
print out some session cache status information.
|
||||
Print out some session cache status information.
|
||||
|
||||
=back
|
||||
|
||||
@@ -597,16 +717,20 @@ unknown cipher suites a client says it supports.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<SSL_CONF_cmd(3)>,
|
||||
L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)>
|
||||
L<SSL_CONF_cmd(3)>, L<sess_id(1)>, L<s_client(1)>, L<ciphers(1)>
|
||||
L<SSL_CTX_set_max_send_fragment(3)>, L<SSL_CTX_set_split_send_fragment(3)>
|
||||
L<SSL_CTX_set_max_pipelines(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
The -no_alt_chains option was first added to OpenSSL 1.1.0.
|
||||
|
||||
The -allow-no-dhe-kex and -prioritize_chacha options were first added to
|
||||
OpenSSL 1.1.1.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -14,13 +14,13 @@ B<openssl> B<s_time>
|
||||
[B<-cert filename>]
|
||||
[B<-key filename>]
|
||||
[B<-CApath directory>]
|
||||
[B<-CAfile filename>]
|
||||
[B<-cafile filename>]
|
||||
[B<-no-CAfile>]
|
||||
[B<-no-CApath>]
|
||||
[B<-reuse>]
|
||||
[B<-new>]
|
||||
[B<-verify depth>]
|
||||
[B<-nbio>]
|
||||
[B<-nameopt option>]
|
||||
[B<-time seconds>]
|
||||
[B<-ssl3>]
|
||||
[B<-bugs>]
|
||||
@@ -71,6 +71,13 @@ Currently the verify operation continues after errors so all the problems
|
||||
with a certificate chain can be seen. As a side effect the connection
|
||||
will never fail due to a server certificate verify failure.
|
||||
|
||||
=item B<-nameopt option>
|
||||
|
||||
Option which determines how the subject or issuer names are displayed. The
|
||||
B<option> argument can be a single option or multiple options separated by
|
||||
commas. Alternatively the B<-nameopt> switch may be used more than once to
|
||||
set multiple options. See the L<x509(1)> manual page for details.
|
||||
|
||||
=item B<-CApath directory>
|
||||
|
||||
The directory to use for server certificate verification. This directory
|
||||
@@ -92,23 +99,19 @@ Do not load the trusted CA certificates from the default directory location
|
||||
|
||||
=item B<-new>
|
||||
|
||||
performs the timing test using a new session ID for each connection.
|
||||
Performs the timing test using a new session ID for each connection.
|
||||
If neither B<-new> nor B<-reuse> are specified, they are both on by default
|
||||
and executed in sequence.
|
||||
|
||||
=item B<-reuse>
|
||||
|
||||
performs the timing test using the same session ID; this can be used as a test
|
||||
Performs the timing test using the same session ID; this can be used as a test
|
||||
that session caching is working. If neither B<-new> nor B<-reuse> are
|
||||
specified, they are both on by default and executed in sequence.
|
||||
|
||||
=item B<-nbio>
|
||||
|
||||
turns on non-blocking I/O.
|
||||
|
||||
=item B<-ssl3>
|
||||
|
||||
these options disable the use of certain SSL or TLS protocols. By default
|
||||
These options disable the use of certain SSL or TLS protocols. By default
|
||||
the initial handshake uses a method which should be compatible with all
|
||||
servers and permit them to use SSL v3 or TLS as appropriate.
|
||||
The timing program is not as rich in options to turn protocols on and off as
|
||||
@@ -120,19 +123,19 @@ work if TLS is turned off with the B<-ssl3> option.
|
||||
|
||||
=item B<-bugs>
|
||||
|
||||
there are several known bug in SSL and TLS implementations. Adding this
|
||||
There are several known bug in SSL and TLS implementations. Adding this
|
||||
option enables various workarounds.
|
||||
|
||||
=item B<-cipher cipherlist>
|
||||
|
||||
this allows the cipher list sent by the client to be modified. Although
|
||||
This allows the cipher list sent by the client to be modified. Although
|
||||
the server determines which cipher suite is used it should take the first
|
||||
supported cipher in the list sent by the client.
|
||||
See the L<ciphers(1)> command for more information.
|
||||
|
||||
=item B<-time length>
|
||||
|
||||
specifies how long (in seconds) B<s_time> should establish connections and
|
||||
Specifies how long (in seconds) B<s_time> should establish connections and
|
||||
optionally transfer payload data from a server. Server and client performance
|
||||
and the link speed determine how many connections B<s_time> can establish.
|
||||
|
||||
@@ -185,7 +188,7 @@ L<s_client(1)>, L<s_server(1)>, L<ciphers(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2004-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2004-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -43,8 +43,8 @@ format base64 encoded with additional header and footer lines.
|
||||
=item B<-outform DER|PEM|NSS>
|
||||
|
||||
This specifies the output format. The B<PEM> and B<DER> options have the same meaning
|
||||
as the B<-inform> option. The B<NSS> option outputs the session id and the master key
|
||||
in NSS keylog format.
|
||||
and default as the B<-inform> option. The B<NSS> option outputs the session id and
|
||||
the master key in NSS keylog format.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -58,21 +58,21 @@ output if this option is not specified.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the various public or private key components in
|
||||
Prints out the various public or private key components in
|
||||
plain text in addition to the encoded version.
|
||||
|
||||
=item B<-cert>
|
||||
|
||||
if a certificate is present in the session it will be output using this option,
|
||||
If a certificate is present in the session it will be output using this option,
|
||||
if the B<-text> option is also present then it will be printed out in text form.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the encoded version of the session.
|
||||
This option prevents output of the encoded version of the session.
|
||||
|
||||
=item B<-context ID>
|
||||
|
||||
this option can set the session id so the output session information uses the
|
||||
This option can set the session id so the output session information uses the
|
||||
supplied ID. The ID can be any string of characters. This option won't normally
|
||||
be used.
|
||||
|
||||
@@ -99,36 +99,37 @@ Theses are described below in more detail.
|
||||
|
||||
=item B<Protocol>
|
||||
|
||||
this is the protocol in use TLSv1.2, TLSv1.1, TLSv1 or SSLv3.
|
||||
This is the protocol in use TLSv1.2, TLSv1.1, TLSv1 or SSLv3.
|
||||
|
||||
=item B<Cipher>
|
||||
|
||||
the cipher used this is the actual raw SSL or TLS cipher code, see the SSL
|
||||
The cipher used this is the actual raw SSL or TLS cipher code, see the SSL
|
||||
or TLS specifications for more information.
|
||||
|
||||
=item B<Session-ID>
|
||||
|
||||
the SSL session ID in hex format.
|
||||
The SSL session ID in hex format.
|
||||
|
||||
=item B<Session-ID-ctx>
|
||||
|
||||
the session ID context in hex format.
|
||||
The session ID context in hex format.
|
||||
|
||||
=item B<Master-Key>
|
||||
|
||||
this is the SSL session master key.
|
||||
This is the SSL session master key.
|
||||
|
||||
=item B<Start Time>
|
||||
|
||||
this is the session start time represented as an integer in standard Unix format.
|
||||
This is the session start time represented as an integer in standard
|
||||
Unix format.
|
||||
|
||||
=item B<Timeout>
|
||||
|
||||
the timeout in seconds.
|
||||
The timeout in seconds.
|
||||
|
||||
=item B<Verify return code>
|
||||
|
||||
this is the return code when an SSL client certificate is verified.
|
||||
This is the return code when an SSL client certificate is verified.
|
||||
|
||||
=back
|
||||
|
||||
@@ -139,10 +140,11 @@ The PEM encoded session format uses the header and footer lines:
|
||||
-----BEGIN SSL SESSION PARAMETERS-----
|
||||
-----END SSL SESSION PARAMETERS-----
|
||||
|
||||
Since the SSL session output contains the master key it is possible to read the contents
|
||||
of an encrypted session using this information. Therefore appropriate security precautions
|
||||
should be taken if the information is being output by a "real" application. This is
|
||||
however strongly discouraged and should only be used for debugging purposes.
|
||||
Since the SSL session output contains the master key it is
|
||||
possible to read the contents of an encrypted session using this
|
||||
information. Therefore appropriate security precautions should be taken if
|
||||
the information is being output by a "real" application. This is however
|
||||
strongly discouraged and should only be used for debugging purposes.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
@@ -154,7 +156,7 @@ L<ciphers(1)>, L<s_server(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -17,7 +17,7 @@ B<openssl> B<smime>
|
||||
[B<-pk7out>]
|
||||
[B<-binary>]
|
||||
[B<-crlfeol>]
|
||||
[B<-[cipher]>]
|
||||
[B<-I<cipher>>]
|
||||
[B<-in file>]
|
||||
[B<-CAfile file>]
|
||||
[B<-CApath dir>]
|
||||
@@ -66,7 +66,8 @@ B<openssl> B<smime>
|
||||
[B<-indef>]
|
||||
[B<-noindef>]
|
||||
[B<-stream>]
|
||||
[B<-rand file(s)>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-md digest>]
|
||||
[cert.pem]...
|
||||
|
||||
@@ -88,7 +89,7 @@ Print out a usage message.
|
||||
|
||||
=item B<-encrypt>
|
||||
|
||||
encrypt mail for the given recipient certificates. Input file is the message
|
||||
Encrypt mail for the given recipient certificates. Input file is the message
|
||||
to be encrypted. The output file is the encrypted mail in MIME format.
|
||||
|
||||
Note that no revocation check is done for the recipient cert, so if that
|
||||
@@ -96,37 +97,37 @@ key has been compromised, others may be able to decrypt the text.
|
||||
|
||||
=item B<-decrypt>
|
||||
|
||||
decrypt mail using the supplied certificate and private key. Expects an
|
||||
Decrypt mail using the supplied certificate and private key. Expects an
|
||||
encrypted mail message in MIME format for the input file. The decrypted mail
|
||||
is written to the output file.
|
||||
|
||||
=item B<-sign>
|
||||
|
||||
sign mail using the supplied certificate and private key. Input file is
|
||||
Sign mail using the supplied certificate and private key. Input file is
|
||||
the message to be signed. The signed message in MIME format is written
|
||||
to the output file.
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verify signed mail. Expects a signed mail message on input and outputs
|
||||
Verify signed mail. Expects a signed mail message on input and outputs
|
||||
the signed data. Both clear text and opaque signing is supported.
|
||||
|
||||
=item B<-pk7out>
|
||||
|
||||
takes an input message and writes out a PEM encoded PKCS#7 structure.
|
||||
Takes an input message and writes out a PEM encoded PKCS#7 structure.
|
||||
|
||||
=item B<-resign>
|
||||
|
||||
resign a message: take an existing message and one or more new signers.
|
||||
Resign a message: take an existing message and one or more new signers.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
the input message to be encrypted or signed or the MIME message to
|
||||
The input message to be encrypted or signed or the MIME message to
|
||||
be decrypted or verified.
|
||||
|
||||
=item B<-inform SMIME|PEM|DER>
|
||||
|
||||
this specifies the input format for the PKCS#7 structure. The default
|
||||
This specifies the input format for the PKCS#7 structure. The default
|
||||
is B<SMIME> which reads an S/MIME format message. B<PEM> and B<DER>
|
||||
format change this to expect PEM and DER format PKCS#7 structures
|
||||
instead. This currently only affects the input format of the PKCS#7
|
||||
@@ -135,12 +136,12 @@ B<-encrypt> or B<-sign>) this option has no effect.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
the message text that has been decrypted or verified or the output MIME
|
||||
The message text that has been decrypted or verified or the output MIME
|
||||
format message that has been signed or verified.
|
||||
|
||||
=item B<-outform SMIME|PEM|DER>
|
||||
|
||||
this specifies the output format for the PKCS#7 structure. The default
|
||||
This specifies the output format for the PKCS#7 structure. The default
|
||||
is B<SMIME> which write an S/MIME format message. B<PEM> and B<DER>
|
||||
format change this to write PEM and DER format PKCS#7 structures
|
||||
instead. This currently only affects the output format of the PKCS#7
|
||||
@@ -149,7 +150,7 @@ B<-verify> or B<-decrypt>) this option has no effect.
|
||||
|
||||
=item B<-stream -indef -noindef>
|
||||
|
||||
the B<-stream> and B<-indef> options are equivalent and enable streaming I/O
|
||||
The B<-stream> and B<-indef> options are equivalent and enable streaming I/O
|
||||
for encoding operations. This permits single pass processing of data without
|
||||
the need to hold the entire contents in memory, potentially supporting very
|
||||
large files. Streaming is automatically set for S/MIME signing with detached
|
||||
@@ -158,7 +159,7 @@ other operations.
|
||||
|
||||
=item B<-noindef>
|
||||
|
||||
disable streaming I/O where it would produce and indefinite length constructed
|
||||
Disable streaming I/O where it would produce and indefinite length constructed
|
||||
encoding. This option currently has no effect. In future streaming will be
|
||||
enabled by default on all relevant operations and this option will disable it.
|
||||
|
||||
@@ -172,38 +173,38 @@ is S/MIME and it uses the multipart/signed MIME content type.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
this option adds plain text (text/plain) MIME headers to the supplied
|
||||
This option adds plain text (text/plain) MIME headers to the supplied
|
||||
message if encrypting or signing. If decrypting or verifying it strips
|
||||
off text headers: if the decrypted or verified message is not of MIME
|
||||
type text/plain then an error occurs.
|
||||
|
||||
=item B<-CAfile file>
|
||||
|
||||
a file containing trusted CA certificates, only used with B<-verify>.
|
||||
A file containing trusted CA certificates, only used with B<-verify>.
|
||||
|
||||
=item B<-CApath dir>
|
||||
|
||||
a directory containing trusted CA certificates, only used with
|
||||
A directory containing trusted CA certificates, only used with
|
||||
B<-verify>. This directory must be a standard certificate directory: that
|
||||
is a hash of each subject name (using B<x509 -hash>) should be linked
|
||||
to each certificate.
|
||||
|
||||
=item B<-no-CAfile>
|
||||
|
||||
Do not load the trusted CA certificates from the default file location
|
||||
Do not load the trusted CA certificates from the default file location.
|
||||
|
||||
=item B<-no-CApath>
|
||||
|
||||
Do not load the trusted CA certificates from the default directory location
|
||||
Do not load the trusted CA certificates from the default directory location.
|
||||
|
||||
=item B<-md digest>
|
||||
|
||||
digest algorithm to use when signing or resigning. If not present then the
|
||||
Digest algorithm to use when signing or resigning. If not present then the
|
||||
default digest algorithm for the signing key will be used (usually SHA1).
|
||||
|
||||
=item B<-[cipher]>
|
||||
=item B<-I<cipher>>
|
||||
|
||||
the encryption algorithm to use. For example DES (56 bits) - B<-des>,
|
||||
The encryption algorithm to use. For example DES (56 bits) - B<-des>,
|
||||
triple DES (168 bits) - B<-des3>,
|
||||
EVP_get_cipherbyname() function) can also be used preceded by a dash, for
|
||||
example B<-aes-128-cbc>. See L<B<enc>|enc(1)> for list of ciphers
|
||||
@@ -213,77 +214,77 @@ If not specified triple DES is used. Only used with B<-encrypt>.
|
||||
|
||||
=item B<-nointern>
|
||||
|
||||
when verifying a message normally certificates (if any) included in
|
||||
When verifying a message normally certificates (if any) included in
|
||||
the message are searched for the signing certificate. With this option
|
||||
only the certificates specified in the B<-certfile> option are used.
|
||||
The supplied certificates can still be used as untrusted CAs however.
|
||||
|
||||
=item B<-noverify>
|
||||
|
||||
do not verify the signers certificate of a signed message.
|
||||
Do not verify the signers certificate of a signed message.
|
||||
|
||||
=item B<-nochain>
|
||||
|
||||
do not do chain verification of signers certificates: that is don't
|
||||
Do not do chain verification of signers certificates: that is don't
|
||||
use the certificates in the signed message as untrusted CAs.
|
||||
|
||||
=item B<-nosigs>
|
||||
|
||||
don't try to verify the signatures on the message.
|
||||
Don't try to verify the signatures on the message.
|
||||
|
||||
=item B<-nocerts>
|
||||
|
||||
when signing a message the signer's certificate is normally included
|
||||
When signing a message the signer's certificate is normally included
|
||||
with this option it is excluded. This will reduce the size of the
|
||||
signed message but the verifier must have a copy of the signers certificate
|
||||
available locally (passed using the B<-certfile> option for example).
|
||||
|
||||
=item B<-noattr>
|
||||
|
||||
normally when a message is signed a set of attributes are included which
|
||||
Normally when a message is signed a set of attributes are included which
|
||||
include the signing time and supported symmetric algorithms. With this
|
||||
option they are not included.
|
||||
|
||||
=item B<-binary>
|
||||
|
||||
normally the input message is converted to "canonical" format which is
|
||||
Normally the input message is converted to "canonical" format which is
|
||||
effectively using CR and LF as end of line: as required by the S/MIME
|
||||
specification. When this option is present no translation occurs. This
|
||||
is useful when handling binary data which may not be in MIME format.
|
||||
|
||||
=item B<-crlfeol>
|
||||
|
||||
normally the output file uses a single B<LF> as end of line. When this
|
||||
Normally the output file uses a single B<LF> as end of line. When this
|
||||
option is present B<CRLF> is used instead.
|
||||
|
||||
=item B<-nodetach>
|
||||
|
||||
when signing a message use opaque signing: this form is more resistant
|
||||
When signing a message use opaque signing: this form is more resistant
|
||||
to translation by mail relays but it cannot be read by mail agents that
|
||||
do not support S/MIME. Without this option cleartext signing with
|
||||
the MIME type multipart/signed is used.
|
||||
|
||||
=item B<-certfile file>
|
||||
|
||||
allows additional certificates to be specified. When signing these will
|
||||
Allows additional certificates to be specified. When signing these will
|
||||
be included with the message. When verifying these will be searched for
|
||||
the signers certificates. The certificates should be in PEM format.
|
||||
|
||||
=item B<-signer file>
|
||||
|
||||
a signing certificate when signing or resigning a message, this option can be
|
||||
A signing certificate when signing or resigning a message, this option can be
|
||||
used multiple times if more than one signer is required. If a message is being
|
||||
verified then the signers certificates will be written to this file if the
|
||||
verification was successful.
|
||||
|
||||
=item B<-recip file>
|
||||
|
||||
the recipients certificate when decrypting a message. This certificate
|
||||
The recipients certificate when decrypting a message. This certificate
|
||||
must match one of the recipients of the message or an error occurs.
|
||||
|
||||
=item B<-inkey file_or_id>
|
||||
|
||||
the private key to use when signing or decrypting. This must match the
|
||||
The private key to use when signing or decrypting. This must match the
|
||||
corresponding certificate. If this option is not specified then the
|
||||
private key must be included in the certificate file specified with
|
||||
the B<-recip> or B<-signer> file. When signing this option can be used
|
||||
@@ -293,25 +294,30 @@ specified, the argument is given to the engine as a key identifier.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the private key password source. For more information about the format of B<arg>
|
||||
The private key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-rand file(s)>
|
||||
=item B<-rand file...>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
generator, or an EGD socket (see L<RAND_egd(3)>).
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<cert.pem...>
|
||||
|
||||
one or more certificates of message recipients: used when encrypting
|
||||
One or more certificates of message recipients: used when encrypting
|
||||
a message.
|
||||
|
||||
=item B<-to, -from, -subject>
|
||||
|
||||
the relevant mail headers. These are included outside the signed
|
||||
The relevant mail headers. These are included outside the signed
|
||||
portion of a message so they may be included manually. If signing
|
||||
then many S/MIME mail clients check the signers certificate's email
|
||||
address matches that specified in the From: address.
|
||||
@@ -373,28 +379,28 @@ remains DER.
|
||||
|
||||
=item Z<>0
|
||||
|
||||
the operation was completely successfully.
|
||||
The operation was completely successfully.
|
||||
|
||||
=item Z<>1
|
||||
|
||||
an error occurred parsing the command options.
|
||||
An error occurred parsing the command options.
|
||||
|
||||
=item Z<>2
|
||||
|
||||
one of the input files could not be read.
|
||||
One of the input files could not be read.
|
||||
|
||||
=item Z<>3
|
||||
|
||||
an error occurred creating the PKCS#7 file or when reading the MIME
|
||||
An error occurred creating the PKCS#7 file or when reading the MIME
|
||||
message.
|
||||
|
||||
=item Z<>4
|
||||
|
||||
an error occurred decrypting or verifying the message.
|
||||
An error occurred decrypting or verifying the message.
|
||||
|
||||
=item Z<>5
|
||||
|
||||
the message was verified correctly but an error occurred writing out
|
||||
The message was verified correctly but an error occurred writing out
|
||||
the signers certificates.
|
||||
|
||||
=back
|
||||
@@ -508,7 +514,7 @@ The -no_alt_chains options was first added to OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -13,13 +13,17 @@ B<openssl speed>
|
||||
[B<-elapsed>]
|
||||
[B<-evp algo>]
|
||||
[B<-decrypt>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-primes num>]
|
||||
[B<algorithm...>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This command is used to test the performance of cryptographic algorithms.
|
||||
To see the list of supported algorithms, use the I<list --digest-commands>
|
||||
or I<list --cipher-commands> command.
|
||||
or I<list --cipher-commands> command. The global CSPRNG is denoted by
|
||||
the I<rand> algorithm name.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
@@ -31,7 +35,7 @@ Print out a usage message.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<speed>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<speed>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -49,6 +53,32 @@ Use the specified cipher or message digest algorithm via the EVP interface.
|
||||
|
||||
Time the decryption instead of encryption. Affects only the EVP testing.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-primes num>
|
||||
|
||||
Generate a B<num>-prime RSA key and use it to run the benchmarks. This option
|
||||
is only effective if RSA algorithm is specified to test.
|
||||
|
||||
=item B<-seconds num>
|
||||
|
||||
Run bechmarks for B<num> seconds.
|
||||
|
||||
=item B<-bytes num>
|
||||
|
||||
Run bechmarks on B<num>-byte buffers. Affects ciphers, digests and the CSPRNG.
|
||||
|
||||
=item B<[zero or more test algorithms]>
|
||||
|
||||
If any options are given, B<speed> tests those algorithms, otherwise all of
|
||||
@@ -58,7 +88,7 @@ the above are tested.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -12,6 +12,7 @@ B<openssl> B<spkac>
|
||||
[B<-in filename>]
|
||||
[B<-out filename>]
|
||||
[B<-key keyfile>]
|
||||
[B<-keyform PEM|DER|ENGINE>]
|
||||
[B<-passin arg>]
|
||||
[B<-challenge string>]
|
||||
[B<-pubkey>]
|
||||
@@ -42,52 +43,57 @@ option is not specified. Ignored if the B<-key> option is used.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write to or standard output by
|
||||
Specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-key keyfile>
|
||||
|
||||
create an SPKAC file using the private key in B<keyfile>. The
|
||||
Create an SPKAC file using the private key in B<keyfile>. The
|
||||
B<-in>, B<-noout>, B<-spksect> and B<-verify> options are ignored if
|
||||
present.
|
||||
|
||||
=item B<-keyform PEM|DER|ENGINE>
|
||||
|
||||
Whether the key format is PEM, DER, or an engine-backed key.
|
||||
The default is PEM.
|
||||
|
||||
=item B<-passin password>
|
||||
|
||||
the input file password source. For more information about the format of B<arg>
|
||||
The input file password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-challenge string>
|
||||
|
||||
specifies the challenge string if an SPKAC is being created.
|
||||
Specifies the challenge string if an SPKAC is being created.
|
||||
|
||||
=item B<-spkac spkacname>
|
||||
|
||||
allows an alternative name form the variable containing the
|
||||
Allows an alternative name form the variable containing the
|
||||
SPKAC. The default is "SPKAC". This option affects both
|
||||
generated and input SPKAC files.
|
||||
|
||||
=item B<-spksect section>
|
||||
|
||||
allows an alternative name form the section containing the
|
||||
Allows an alternative name form the section containing the
|
||||
SPKAC. The default is the default section.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
don't output the text version of the SPKAC (not used if an
|
||||
Don't output the text version of the SPKAC (not used if an
|
||||
SPKAC is being created).
|
||||
|
||||
=item B<-pubkey>
|
||||
|
||||
output the public key of an SPKAC (not used if an SPKAC is
|
||||
Output the public key of an SPKAC (not used if an SPKAC is
|
||||
being created).
|
||||
|
||||
=item B<-verify>
|
||||
|
||||
verifies the digital signature on the supplied SPKAC.
|
||||
Verifies the digital signature on the supplied SPKAC.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<spkac>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<spkac>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
@@ -138,7 +144,7 @@ L<ca(1)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -0,0 +1,73 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
openssl-srp,
|
||||
srp - maintain SRP password file
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<openssl srp>
|
||||
[B<-help>]
|
||||
[B<-verbose>]
|
||||
[B<-add>]
|
||||
[B<-modify>]
|
||||
[B<-delete>]
|
||||
[B<-list>]
|
||||
[B<-name section>]
|
||||
[B<-config file>]
|
||||
[B<-srpvfile file>]
|
||||
[B<-gn identifier>]
|
||||
[B<-userinfo text...>]
|
||||
[B<-passin arg>]
|
||||
[B<-passout arg>]
|
||||
[I<user...>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<srp> command is user to maintain an SRP (secure remote password)
|
||||
file.
|
||||
At most one of the B<-add>, B<-modify>, B<-delete>, and B<-list> options
|
||||
can be specified.
|
||||
These options take zero or more usernames as parameters and perform the
|
||||
appropriate operation on the SRP file.
|
||||
For B<-list>, if no B<user> is given then all users are displayed.
|
||||
|
||||
The configuration file to use, and the section within the file, can be
|
||||
specified with the B<-config> and B<-name> flags, respectively.
|
||||
If the config file is not specified, the B<-srpvfile> can be used to
|
||||
just specify the file to operate on.
|
||||
|
||||
The B<-userinfo> option specifies additional information to add when
|
||||
adding or modifying a user.
|
||||
|
||||
The B<-gn> flag specifies the B<g> and B<N> values, using one of
|
||||
the strengths defined in IETF RFC 5054.
|
||||
|
||||
The B<-passin> and B<-passout> arguments are parsed as described in
|
||||
the L<openssl(1)> command.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item [B<-help>]
|
||||
|
||||
Display an option summary.
|
||||
|
||||
=item [B<-verbose>]
|
||||
|
||||
Generate verbose output while processing.
|
||||
|
||||
=back
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -0,0 +1,130 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
openssl-storeutl,
|
||||
storeutl - STORE utility
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
B<openssl> B<storeutl>
|
||||
[B<-help>]
|
||||
[B<-out file>]
|
||||
[B<-noout>]
|
||||
[B<-passin arg>]
|
||||
[B<-text arg>]
|
||||
[B<-engine id>]
|
||||
[B<-r>]
|
||||
[B<-certs>]
|
||||
[B<-keys>]
|
||||
[B<-crls>]
|
||||
[B<-subject arg>]
|
||||
[B<-issuer arg>]
|
||||
[B<-serial arg>]
|
||||
[B<-alias arg>]
|
||||
[B<-fingerprint arg>]
|
||||
[B<-I<digest>>]
|
||||
B<uri> ...
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<storeutl> command can be used to display the contents (after decryption
|
||||
as the case may be) fetched from the given URIs.
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-help>
|
||||
|
||||
Print out a usage message.
|
||||
|
||||
=item B<-out filename>
|
||||
|
||||
specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the PEM data.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
Prints out the objects in text form, similarly to the B<-text> output from
|
||||
B<openssl x509>, B<openssl pkey>, etc.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<storeutl>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed.
|
||||
The engine will then be set as the default for all available algorithms.
|
||||
|
||||
=item B<-r>
|
||||
|
||||
Fetch objects recursively when possible.
|
||||
|
||||
=item B<-certs>
|
||||
|
||||
=item B<-keys>
|
||||
|
||||
=item B<-crls>
|
||||
|
||||
Only select the certificates, keys or CRLs from the given URI.
|
||||
However, if this URI would return a set of names (URIs), those are always
|
||||
returned.
|
||||
|
||||
=item B<-subject arg>
|
||||
|
||||
Search for an object having the subject name B<arg>.
|
||||
The arg must be formatted as I</type0=value0/type1=value1/type2=...>,
|
||||
characters may be escaped by \ (backslash), no spaces are skipped.
|
||||
|
||||
=item B<-issuer arg>
|
||||
|
||||
=item B<-serial arg>
|
||||
|
||||
Search for an object having the given issuer name and serial number.
|
||||
These two options I<must> be used together.
|
||||
The issuer arg must be formatted as I</type0=value0/type1=value1/type2=...>,
|
||||
characters may be escaped by \ (backslash), no spaces are skipped.
|
||||
The serial arg may be specified as a decimal value or a hex value if preceded
|
||||
by B<0x>.
|
||||
|
||||
=item B<-alias arg>
|
||||
|
||||
Search for an object having the given alias.
|
||||
|
||||
=item B<-fingerprint arg>
|
||||
|
||||
Search for an object having the given fingerprint.
|
||||
|
||||
=item B<-I<digest>>
|
||||
|
||||
The digest that was used to compute the fingerprint given with B<-fingerprint>.
|
||||
|
||||
=back
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<openssl(1)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
B<openssl> B<storeutl> was added to OpenSSL 1.1.1.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -9,11 +9,12 @@ ts - Time Stamping Authority tool (client/server)
|
||||
|
||||
B<openssl> B<ts>
|
||||
B<-query>
|
||||
[B<-rand> file:file...]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-config> configfile]
|
||||
[B<-data> file_to_hash]
|
||||
[B<-digest> digest_bytes]
|
||||
[B<-[digest]>]
|
||||
[B<-I<digest>>]
|
||||
[B<-tspolicy> object_id]
|
||||
[B<-no_nonce>]
|
||||
[B<-cert>]
|
||||
@@ -29,7 +30,7 @@ B<-reply>
|
||||
[B<-passin> password_src]
|
||||
[B<-signer> tsa_cert.pem]
|
||||
[B<-inkey> file_or_id]
|
||||
[B<-sha1|-sha224|-sha256|-sha384|-sha512>]
|
||||
[B<-I<digest>>]
|
||||
[B<-chain> certs_file.pem]
|
||||
[B<-tspolicy> object_id]
|
||||
[B<-in> response.tsr]
|
||||
@@ -132,11 +133,18 @@ request with the following options:
|
||||
|
||||
=over 4
|
||||
|
||||
=item B<-rand> file:file...
|
||||
=item B<-rand file...>
|
||||
|
||||
The files containing random data for seeding the random number
|
||||
generator. Multiple files can be specified, the separator is B<;> for
|
||||
MS-Windows, B<,> for VMS and B<:> for all other platforms. (Optional)
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-config> configfile
|
||||
|
||||
@@ -158,7 +166,7 @@ per byte, the bytes optionally separated by colons (e.g. 1A:F6:01:... or
|
||||
1AF601...). The number of bytes must match the message digest algorithm
|
||||
in use. (Optional)
|
||||
|
||||
=item B<-[digest]>
|
||||
=item B<-I<digest>>
|
||||
|
||||
The message digest to apply to the data file.
|
||||
Any digest supported by the OpenSSL B<dgst> command can be used.
|
||||
@@ -251,7 +259,7 @@ B<signer_key> config file option. (Optional)
|
||||
If no engine is used, the argument is taken as a file; if an engine is
|
||||
specified, the argument is given to the engine as a key identifier.
|
||||
|
||||
=item B<-sha1|-sha224|-sha256|-sha384|-sha512>
|
||||
=item B<-I<digest>>
|
||||
|
||||
Signing digest to use. Overrides the B<signer_digest> config file
|
||||
option. (Optional)
|
||||
@@ -452,7 +460,7 @@ command line option. (Optional)
|
||||
=item B<signer_digest>
|
||||
|
||||
Signing digest to use. The same as the
|
||||
B<-sha1|-sha224|-sha256|-sha384|-sha512> command line option. (Optional)
|
||||
B<-I<digest>> command line option. (Optional)
|
||||
|
||||
=item B<default_policy>
|
||||
|
||||
@@ -506,6 +514,11 @@ be included in the SigningCertificate signed attribute. If this
|
||||
variable is set to no, only the signing certificate identifier is
|
||||
included. Default is no. (Optional)
|
||||
|
||||
=item B<ess_cert_id_alg>
|
||||
|
||||
This option specifies the hash function to be used to calculate the TSA's
|
||||
public key certificate identifier. Default is sha1. (Optional)
|
||||
|
||||
=back
|
||||
|
||||
=head1 EXAMPLES
|
||||
@@ -608,9 +621,6 @@ You could also look at the 'test' directory for more examples.
|
||||
|
||||
=for comment foreign manuals: procmail(1), perl(1)
|
||||
|
||||
If you find any bugs or you have suggestions please write to
|
||||
Zoltan Glozik <zglozik@opentsa.org>. Known issues:
|
||||
|
||||
=over 2
|
||||
|
||||
=item *
|
||||
@@ -185,6 +185,8 @@ example:
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
=for comment foreign manuals: curl(1)
|
||||
|
||||
L<openssl(1)>, L<ts(1)>, L<curl(1)>,
|
||||
B<RFC 3161>
|
||||
|
||||
@@ -26,6 +26,7 @@ B<openssl> B<verify>
|
||||
[B<-ignore_critical>]
|
||||
[B<-inhibit_any>]
|
||||
[B<-inhibit_map>]
|
||||
[B<-nameopt option>]
|
||||
[B<-no_check_time>]
|
||||
[B<-partial_chain>]
|
||||
[B<-policy arg>]
|
||||
@@ -79,15 +80,15 @@ create symbolic links to a directory of certificates.
|
||||
|
||||
=item B<-no-CAfile>
|
||||
|
||||
Do not load the trusted CA certificates from the default file location
|
||||
Do not load the trusted CA certificates from the default file location.
|
||||
|
||||
=item B<-no-CApath>
|
||||
|
||||
Do not load the trusted CA certificates from the default directory location
|
||||
Do not load the trusted CA certificates from the default directory location.
|
||||
|
||||
=item B<-allow_proxy_certs>
|
||||
|
||||
Allow the verification of proxy certificates
|
||||
Allow the verification of proxy certificates.
|
||||
|
||||
=item B<-attime timestamp>
|
||||
|
||||
@@ -152,6 +153,13 @@ Set policy variable inhibit-any-policy (see RFC5280).
|
||||
|
||||
Set policy variable inhibit-policy-mapping (see RFC5280).
|
||||
|
||||
=item B<-nameopt option>
|
||||
|
||||
Option which determines how the subject or issuer names are displayed. The
|
||||
B<option> argument can be a single option or multiple options separated by
|
||||
commas. Alternatively the B<-nameopt> switch may be used more than once to
|
||||
set multiple options. See the L<x509(1)> manual page for details.
|
||||
|
||||
=item B<-no_check_time>
|
||||
|
||||
This option suppresses checking the validity period of certificates and CRLs
|
||||
@@ -188,7 +196,7 @@ information.
|
||||
|
||||
=item B<-suiteB_128_only>, B<-suiteB_128>, B<-suiteB_192>
|
||||
|
||||
enable the Suite B mode operation at 128 bit Level of Security, 128 bit or
|
||||
Enable the Suite B mode operation at 128 bit Level of Security, 128 bit or
|
||||
192 bit, or only 192 bit Level of Security respectively.
|
||||
See RFC6460 for details. In particular the supported signature algorithms are
|
||||
reduced to support only ECDSA and SHA256 or SHA384 and only the elliptic curves
|
||||
@@ -420,14 +428,15 @@ The CRL of a certificate could not be found.
|
||||
|
||||
=item B<X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE>
|
||||
|
||||
The certificate signature could not be decrypted. This means that the actual signature value
|
||||
could not be determined rather than it not matching the expected value, this is only
|
||||
meaningful for RSA keys.
|
||||
The certificate signature could not be decrypted. This means that the
|
||||
actual signature value could not be determined rather than it not matching
|
||||
the expected value, this is only meaningful for RSA keys.
|
||||
|
||||
=item B<X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE>
|
||||
|
||||
The CRL signature could not be decrypted: this means that the actual signature value
|
||||
could not be determined rather than it not matching the expected value. Unused.
|
||||
The CRL signature could not be decrypted: this means that the actual
|
||||
signature value could not be determined rather than it not matching the
|
||||
expected value. Unused.
|
||||
|
||||
=item B<X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY>
|
||||
|
||||
@@ -443,11 +452,13 @@ The signature of the certificate is invalid.
|
||||
|
||||
=item B<X509_V_ERR_CERT_NOT_YET_VALID>
|
||||
|
||||
The certificate is not yet valid: the notBefore date is after the current time.
|
||||
The certificate is not yet valid: the notBefore date is after the
|
||||
current time.
|
||||
|
||||
=item B<X509_V_ERR_CERT_HAS_EXPIRED>
|
||||
|
||||
The certificate has expired: that is the notAfter date is before the current time.
|
||||
The certificate has expired: that is the notAfter date is before the
|
||||
current time.
|
||||
|
||||
=item B<X509_V_ERR_CRL_NOT_YET_VALID>
|
||||
|
||||
@@ -479,13 +490,13 @@ An error occurred trying to allocate memory. This should never happen.
|
||||
|
||||
=item B<X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT>
|
||||
|
||||
The passed certificate is self-signed and the same certificate cannot be found in the list of
|
||||
trusted certificates.
|
||||
The passed certificate is self-signed and the same certificate cannot
|
||||
be found in the list of trusted certificates.
|
||||
|
||||
=item B<X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN>
|
||||
|
||||
The certificate chain could be built up using the untrusted certificates but the root could not
|
||||
be found locally.
|
||||
The certificate chain could be built up using the untrusted certificates
|
||||
but the root could not be found locally.
|
||||
|
||||
=item B<X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY>
|
||||
|
||||
@@ -494,12 +505,13 @@ certificate of an untrusted certificate cannot be found.
|
||||
|
||||
=item B<X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE>
|
||||
|
||||
No signatures could be verified because the chain contains only one certificate and it is not
|
||||
self signed.
|
||||
No signatures could be verified because the chain contains only one
|
||||
certificate and it is not self signed.
|
||||
|
||||
=item B<X509_V_ERR_CERT_CHAIN_TOO_LONG>
|
||||
|
||||
The certificate chain length is greater than the supplied maximum depth. Unused.
|
||||
The certificate chain length is greater than the supplied maximum
|
||||
depth. Unused.
|
||||
|
||||
=item B<X509_V_ERR_CERT_REVOKED>
|
||||
|
||||
@@ -507,8 +519,8 @@ The certificate has been revoked.
|
||||
|
||||
=item B<X509_V_ERR_INVALID_CA>
|
||||
|
||||
A CA certificate is invalid. Either it is not a CA or its extensions are not consistent
|
||||
with the supplied purpose.
|
||||
A CA certificate is invalid. Either it is not a CA or its extensions
|
||||
are not consistent with the supplied purpose.
|
||||
|
||||
=item B<X509_V_ERR_PATH_LENGTH_EXCEEDED>
|
||||
|
||||
@@ -520,7 +532,7 @@ The supplied certificate cannot be used for the specified purpose.
|
||||
|
||||
=item B<X509_V_ERR_CERT_UNTRUSTED>
|
||||
|
||||
the root CA is not marked as trusted for the specified purpose.
|
||||
The root CA is not marked as trusted for the specified purpose.
|
||||
|
||||
=item B<X509_V_ERR_CERT_REJECTED>
|
||||
|
||||
@@ -528,7 +540,7 @@ The root CA is marked to reject the specified purpose.
|
||||
|
||||
=item B<X509_V_ERR_SUBJECT_ISSUER_MISMATCH>
|
||||
|
||||
not used as of OpenSSL 1.1.0 as a result of the deprecation of the
|
||||
Not used as of OpenSSL 1.1.0 as a result of the deprecation of the
|
||||
B<-issuer_checks> option.
|
||||
|
||||
=item B<X509_V_ERR_AKID_SKID_MISMATCH>
|
||||
@@ -685,18 +697,60 @@ DANE TLSA authentication is enabled, but no TLSA records matched the
|
||||
certificate chain.
|
||||
This error is only possible in L<s_client(1)>.
|
||||
|
||||
=item B<X509_V_ERR_EE_KEY_TOO_SMALL>
|
||||
|
||||
EE certificate key too weak.
|
||||
|
||||
=item B<X509_ERR_CA_KEY_TOO_SMALL>
|
||||
|
||||
CA certificate key too weak.
|
||||
|
||||
=item B<X509_ERR_CA_MD_TOO_WEAK>
|
||||
|
||||
CA signature digest algorithm too weak.
|
||||
|
||||
=item B<X509_V_ERR_INVALID_CALL>
|
||||
|
||||
nvalid certificate verification context.
|
||||
|
||||
=item B<X509_V_ERR_STORE_LOOKUP>
|
||||
|
||||
Issuer certificate lookup error.
|
||||
|
||||
=item B<X509_V_ERR_NO_VALID_SCTS>
|
||||
|
||||
Certificate Transparency required, but no valid SCTs found.
|
||||
|
||||
=item B<X509_V_ERR_PROXY_SUBJECT_NAME_VIOLATION>
|
||||
|
||||
Proxy subject name violation.
|
||||
|
||||
=item B<X509_V_ERR_OCSP_VERIFY_NEEDED>
|
||||
|
||||
Returned by the verify callback to indicate an OCSP verification is needed.
|
||||
|
||||
=item B<X509_V_ERR_OCSP_VERIFY_FAILED>
|
||||
|
||||
Returned by the verify callback to indicate OCSP verification failed.
|
||||
|
||||
=item B<X509_V_ERR_OCSP_CERT_UNKNOWN>
|
||||
|
||||
Returned by the verify callback to indicate that the certificate is not recognized
|
||||
by the OCSP responder.
|
||||
|
||||
=back
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
Although the issuer checks are a considerable improvement over the old technique they still
|
||||
suffer from limitations in the underlying X509_LOOKUP API. One consequence of this is that
|
||||
trusted certificates with matching subject name must either appear in a file (as specified by the
|
||||
B<-CAfile> option) or a directory (as specified by B<-CApath>). If they occur in both then only
|
||||
the certificates in the file will be recognised.
|
||||
Although the issuer checks are a considerable improvement over the old
|
||||
technique they still suffer from limitations in the underlying X509_LOOKUP
|
||||
API. One consequence of this is that trusted certificates with matching
|
||||
subject name must either appear in a file (as specified by the B<-CAfile>
|
||||
option) or a directory (as specified by B<-CApath>). If they occur in
|
||||
both then only the certificates in the file will be recognised.
|
||||
|
||||
Previous versions of OpenSSL assume certificates with matching subject name are identical and
|
||||
mishandled them.
|
||||
Previous versions of OpenSSL assume certificates with matching subject
|
||||
name are identical and mishandled them.
|
||||
|
||||
Previous versions of this documentation swapped the meaning of the
|
||||
B<X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT> and
|
||||
@@ -715,7 +769,7 @@ is silently ignored.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -32,27 +32,27 @@ Print out a usage message.
|
||||
|
||||
=item B<-a>
|
||||
|
||||
all information, this is the same as setting all the other flags.
|
||||
All information, this is the same as setting all the other flags.
|
||||
|
||||
=item B<-v>
|
||||
|
||||
the current OpenSSL version.
|
||||
The current OpenSSL version.
|
||||
|
||||
=item B<-b>
|
||||
|
||||
the date the current version of OpenSSL was built.
|
||||
The date the current version of OpenSSL was built.
|
||||
|
||||
=item B<-o>
|
||||
|
||||
option information: various options set when the library was built.
|
||||
Option information: various options set when the library was built.
|
||||
|
||||
=item B<-f>
|
||||
|
||||
compilation flags.
|
||||
Compilation flags.
|
||||
|
||||
=item B<-p>
|
||||
|
||||
platform setting.
|
||||
Platform setting.
|
||||
|
||||
=item B<-d>
|
||||
|
||||
@@ -71,7 +71,7 @@ in a bug report.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -54,13 +54,17 @@ B<openssl> B<x509>
|
||||
[B<-CAserial filename>]
|
||||
[B<-force_pubkey key>]
|
||||
[B<-text>]
|
||||
[B<-ext extensions>]
|
||||
[B<-certopt option>]
|
||||
[B<-C>]
|
||||
[B<-[digest]>]
|
||||
[B<-I<digest>>]
|
||||
[B<-clrext>]
|
||||
[B<-extfile filename>]
|
||||
[B<-extensions section>]
|
||||
[B<-rand file...>]
|
||||
[B<-writerand file>]
|
||||
[B<-engine id>]
|
||||
[B<-preserve_dates>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -89,12 +93,12 @@ certificate but this can change if other options such as B<-req> are
|
||||
present. The DER format is the DER encoding of the certificate and PEM
|
||||
is the base64 encoding of the DER encoding with header and footer lines
|
||||
added. The NET option is an obscure Netscape server format that is now
|
||||
obsolete.
|
||||
obsolete. The default format is PEM.
|
||||
|
||||
=item B<-outform DER|PEM|NET>
|
||||
|
||||
This specifies the output format, the options have the same meaning as the
|
||||
B<-inform> option.
|
||||
This specifies the output format, the options have the same meaning and default
|
||||
as the B<-inform> option.
|
||||
|
||||
=item B<-in filename>
|
||||
|
||||
@@ -106,22 +110,40 @@ if this option is not specified.
|
||||
This specifies the output filename to write to or standard output by
|
||||
default.
|
||||
|
||||
=item B<-[digest]>
|
||||
=item B<-I<digest>>
|
||||
|
||||
the digest to use.
|
||||
The digest to use.
|
||||
This affects any signing or display option that uses a message
|
||||
digest, such as the B<-fingerprint>, B<-signkey> and B<-CA> options.
|
||||
Any digest supported by the OpenSSL B<dgst> command can be used.
|
||||
If not specified then SHA1 is used with B<-fingerprint> or
|
||||
the default digest for the signing algorithm is used, typically SHA256.
|
||||
|
||||
=item B<-rand file...>
|
||||
|
||||
A file or files containing random data used to seed the random number
|
||||
generator.
|
||||
Multiple files can be specified separated by an OS-dependent character.
|
||||
The separator is B<;> for MS-Windows, B<,> for OpenVMS, and B<:> for
|
||||
all others.
|
||||
|
||||
=item [B<-writerand file>]
|
||||
|
||||
Writes random data to the specified I<file> upon exit.
|
||||
This can be used with a subsequent B<-rand> flag.
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by its unique B<id> string) will cause B<x509>
|
||||
Specifying an engine (by its unique B<id> string) will cause B<x509>
|
||||
to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-preserve_dates>
|
||||
|
||||
When signing a certificate, preserve the "notBefore" and "notAfter" dates instead
|
||||
of adjusting them to current time and duration. Cannot be used with the B<-days> option.
|
||||
|
||||
=back
|
||||
|
||||
=head2 Display Options
|
||||
@@ -133,100 +155,106 @@ but are described in the B<TRUST SETTINGS> section.
|
||||
|
||||
=item B<-text>
|
||||
|
||||
prints out the certificate in text form. Full details are output including the
|
||||
Prints out the certificate in text form. Full details are output including the
|
||||
public key, signature algorithms, issuer and subject names, serial number
|
||||
any extensions present and any trust settings.
|
||||
|
||||
=item B<-ext extensions>
|
||||
|
||||
Prints out the certificate extensions in text form. Extensions are specified
|
||||
with a comma separated string, e.g., "subjectAltName,subjectKeyIdentifier".
|
||||
See the L<x509v3_config(5)> manual page for the extension names.
|
||||
|
||||
=item B<-certopt option>
|
||||
|
||||
customise the output format used with B<-text>. The B<option> argument can be
|
||||
a single option or multiple options separated by commas. The B<-certopt> switch
|
||||
may be also be used more than once to set multiple options. See the B<TEXT OPTIONS>
|
||||
section for more information.
|
||||
Customise the output format used with B<-text>. The B<option> argument
|
||||
can be a single option or multiple options separated by commas. The
|
||||
B<-certopt> switch may be also be used more than once to set multiple
|
||||
options. See the B<TEXT OPTIONS> section for more information.
|
||||
|
||||
=item B<-noout>
|
||||
|
||||
this option prevents output of the encoded version of the request.
|
||||
This option prevents output of the encoded version of the request.
|
||||
|
||||
=item B<-pubkey>
|
||||
|
||||
outputs the certificate's SubjectPublicKeyInfo block in PEM format.
|
||||
Outputs the certificate's SubjectPublicKeyInfo block in PEM format.
|
||||
|
||||
=item B<-modulus>
|
||||
|
||||
this option prints out the value of the modulus of the public key
|
||||
This option prints out the value of the modulus of the public key
|
||||
contained in the certificate.
|
||||
|
||||
=item B<-serial>
|
||||
|
||||
outputs the certificate serial number.
|
||||
Outputs the certificate serial number.
|
||||
|
||||
=item B<-subject_hash>
|
||||
|
||||
outputs the "hash" of the certificate subject name. This is used in OpenSSL to
|
||||
Outputs the "hash" of the certificate subject name. This is used in OpenSSL to
|
||||
form an index to allow certificates in a directory to be looked up by subject
|
||||
name.
|
||||
|
||||
=item B<-issuer_hash>
|
||||
|
||||
outputs the "hash" of the certificate issuer name.
|
||||
Outputs the "hash" of the certificate issuer name.
|
||||
|
||||
=item B<-ocspid>
|
||||
|
||||
outputs the OCSP hash values for the subject name and public key.
|
||||
Outputs the OCSP hash values for the subject name and public key.
|
||||
|
||||
=item B<-hash>
|
||||
|
||||
synonym for "-subject_hash" for backward compatibility reasons.
|
||||
Synonym for "-subject_hash" for backward compatibility reasons.
|
||||
|
||||
=item B<-subject_hash_old>
|
||||
|
||||
outputs the "hash" of the certificate subject name using the older algorithm
|
||||
as used by OpenSSL versions before 1.0.0.
|
||||
Outputs the "hash" of the certificate subject name using the older algorithm
|
||||
as used by OpenSSL before version 1.0.0.
|
||||
|
||||
=item B<-issuer_hash_old>
|
||||
|
||||
outputs the "hash" of the certificate issuer name using the older algorithm
|
||||
as used by OpenSSL versions before 1.0.0.
|
||||
Outputs the "hash" of the certificate issuer name using the older algorithm
|
||||
as used by OpenSSL before version 1.0.0.
|
||||
|
||||
=item B<-subject>
|
||||
|
||||
outputs the subject name.
|
||||
Outputs the subject name.
|
||||
|
||||
=item B<-issuer>
|
||||
|
||||
outputs the issuer name.
|
||||
Outputs the issuer name.
|
||||
|
||||
=item B<-nameopt option>
|
||||
|
||||
option which determines how the subject or issuer names are displayed. The
|
||||
Option which determines how the subject or issuer names are displayed. The
|
||||
B<option> argument can be a single option or multiple options separated by
|
||||
commas. Alternatively the B<-nameopt> switch may be used more than once to
|
||||
set multiple options. See the B<NAME OPTIONS> section for more information.
|
||||
|
||||
=item B<-email>
|
||||
|
||||
outputs the email address(es) if any.
|
||||
Outputs the email address(es) if any.
|
||||
|
||||
=item B<-ocsp_uri>
|
||||
|
||||
outputs the OCSP responder address(es) if any.
|
||||
Outputs the OCSP responder address(es) if any.
|
||||
|
||||
=item B<-startdate>
|
||||
|
||||
prints out the start date of the certificate, that is the notBefore date.
|
||||
Prints out the start date of the certificate, that is the notBefore date.
|
||||
|
||||
=item B<-enddate>
|
||||
|
||||
prints out the expiry date of the certificate, that is the notAfter date.
|
||||
Prints out the expiry date of the certificate, that is the notAfter date.
|
||||
|
||||
=item B<-dates>
|
||||
|
||||
prints out the start and expiry dates of a certificate.
|
||||
Prints out the start and expiry dates of a certificate.
|
||||
|
||||
=item B<-checkend arg>
|
||||
|
||||
checks if the certificate expires within the next B<arg> seconds and exits
|
||||
Checks if the certificate expires within the next B<arg> seconds and exits
|
||||
non-zero if yes it will expire or zero if not.
|
||||
|
||||
=item B<-fingerprint>
|
||||
@@ -239,7 +267,7 @@ two certificates with the same fingerprint can be considered to be the same.
|
||||
|
||||
=item B<-C>
|
||||
|
||||
this outputs the certificate in the form of a C source file.
|
||||
This outputs the certificate in the form of a C source file.
|
||||
|
||||
=back
|
||||
|
||||
@@ -269,7 +297,7 @@ certificate: not just root CAs.
|
||||
|
||||
=item B<-trustout>
|
||||
|
||||
this causes B<x509> to output a B<trusted> certificate. An ordinary
|
||||
This causes B<x509> to output a B<trusted> certificate. An ordinary
|
||||
or trusted certificate can be input but by default an ordinary
|
||||
certificate is output and any trust settings are discarded. With the
|
||||
B<-trustout> option a trusted certificate is output. A trusted
|
||||
@@ -277,24 +305,24 @@ certificate is automatically output if any trust settings are modified.
|
||||
|
||||
=item B<-setalias arg>
|
||||
|
||||
sets the alias of the certificate. This will allow the certificate
|
||||
Sets the alias of the certificate. This will allow the certificate
|
||||
to be referred to using a nickname for example "Steve's Certificate".
|
||||
|
||||
=item B<-alias>
|
||||
|
||||
outputs the certificate alias, if any.
|
||||
Outputs the certificate alias, if any.
|
||||
|
||||
=item B<-clrtrust>
|
||||
|
||||
clears all the permitted or trusted uses of the certificate.
|
||||
Clears all the permitted or trusted uses of the certificate.
|
||||
|
||||
=item B<-clrreject>
|
||||
|
||||
clears all the prohibited or rejected uses of the certificate.
|
||||
Clears all the prohibited or rejected uses of the certificate.
|
||||
|
||||
=item B<-addtrust arg>
|
||||
|
||||
adds a trusted certificate use.
|
||||
Adds a trusted certificate use.
|
||||
Any object name can be used here but currently only B<clientAuth> (SSL client
|
||||
use), B<serverAuth> (SSL server use), B<emailProtection> (S/MIME email) and
|
||||
B<anyExtendedKeyUsage> are used.
|
||||
@@ -304,12 +332,12 @@ Other OpenSSL applications may define additional uses.
|
||||
|
||||
=item B<-addreject arg>
|
||||
|
||||
adds a prohibited use. It accepts the same values as the B<-addtrust>
|
||||
Adds a prohibited use. It accepts the same values as the B<-addtrust>
|
||||
option.
|
||||
|
||||
=item B<-purpose>
|
||||
|
||||
this option performs tests on the certificate extensions and outputs
|
||||
This option performs tests on the certificate extensions and outputs
|
||||
the results. For a more complete description see the B<CERTIFICATE
|
||||
EXTENSIONS> section.
|
||||
|
||||
@@ -324,7 +352,7 @@ can thus behave like a "mini CA".
|
||||
|
||||
=item B<-signkey filename>
|
||||
|
||||
this option causes the input file to be self signed using the supplied
|
||||
This option causes the input file to be self signed using the supplied
|
||||
private key.
|
||||
|
||||
If the input file is a certificate it sets the issuer name to the
|
||||
@@ -341,39 +369,39 @@ the request.
|
||||
|
||||
=item B<-passin arg>
|
||||
|
||||
the key password source. For more information about the format of B<arg>
|
||||
The key password source. For more information about the format of B<arg>
|
||||
see the B<PASS PHRASE ARGUMENTS> section in L<openssl(1)>.
|
||||
|
||||
=item B<-clrext>
|
||||
|
||||
delete any extensions from a certificate. This option is used when a
|
||||
Delete any extensions from a certificate. This option is used when a
|
||||
certificate is being created from another certificate (for example with
|
||||
the B<-signkey> or the B<-CA> options). Normally all extensions are
|
||||
retained.
|
||||
|
||||
=item B<-keyform PEM|DER>
|
||||
|
||||
specifies the format (DER or PEM) of the private key file used in the
|
||||
Specifies the format (DER or PEM) of the private key file used in the
|
||||
B<-signkey> option.
|
||||
|
||||
=item B<-days arg>
|
||||
|
||||
specifies the number of days to make a certificate valid for. The default
|
||||
is 30 days.
|
||||
Specifies the number of days to make a certificate valid for. The default
|
||||
is 30 days. Cannot be used with the B<-preserve_dates> option.
|
||||
|
||||
=item B<-x509toreq>
|
||||
|
||||
converts a certificate into a certificate request. The B<-signkey> option
|
||||
Converts a certificate into a certificate request. The B<-signkey> option
|
||||
is used to pass the required private key.
|
||||
|
||||
=item B<-req>
|
||||
|
||||
by default a certificate is expected on input. With this option a
|
||||
By default a certificate is expected on input. With this option a
|
||||
certificate request is expected instead.
|
||||
|
||||
=item B<-set_serial n>
|
||||
|
||||
specifies the serial number to use. This option can be used with either
|
||||
Specifies the serial number to use. This option can be used with either
|
||||
the B<-signkey> or B<-CA> options. If used in conjunction with the B<-CA>
|
||||
option the serial number file (as specified by the B<-CAserial> or
|
||||
B<-CAcreateserial> options) is not used.
|
||||
@@ -382,7 +410,7 @@ The serial number can be decimal or hex (if preceded by B<0x>).
|
||||
|
||||
=item B<-CA filename>
|
||||
|
||||
specifies the CA certificate to be used for signing. When this option is
|
||||
Specifies the CA certificate to be used for signing. When this option is
|
||||
present B<x509> behaves like a "mini CA". The input file is signed by this
|
||||
CA using this option: that is its issuer name is set to the subject name
|
||||
of the CA and it is digitally signed using the CAs private key.
|
||||
@@ -392,13 +420,13 @@ B<-req> option the input is a certificate which must be self signed.
|
||||
|
||||
=item B<-CAkey filename>
|
||||
|
||||
sets the CA private key to sign a certificate with. If this option is
|
||||
Sets the CA private key to sign a certificate with. If this option is
|
||||
not specified then it is assumed that the CA private key is present in
|
||||
the CA certificate file.
|
||||
|
||||
=item B<-CAserial filename>
|
||||
|
||||
sets the CA serial number file to use.
|
||||
Sets the CA serial number file to use.
|
||||
|
||||
When the B<-CA> option is used to sign a certificate it uses a serial
|
||||
number specified in a file. This file consist of one line containing
|
||||
@@ -411,7 +439,7 @@ The default filename consists of the CA certificate file base name with
|
||||
|
||||
=item B<-CAcreateserial>
|
||||
|
||||
with this option the CA serial number file is created if it does not exist:
|
||||
With this option the CA serial number file is created if it does not exist:
|
||||
it will contain the serial number "02" and the certificate being signed will
|
||||
have the 1 as its serial number. If the B<-CA> option is specified
|
||||
and the serial number file does not exist a random number is generated;
|
||||
@@ -419,12 +447,12 @@ this is the recommended practice.
|
||||
|
||||
=item B<-extfile filename>
|
||||
|
||||
file containing certificate extensions to use. If not specified then
|
||||
File containing certificate extensions to use. If not specified then
|
||||
no extensions are added to the certificate.
|
||||
|
||||
=item B<-extensions section>
|
||||
|
||||
the section to add certificate extensions from. If this option is not
|
||||
The section to add certificate extensions from. If this option is not
|
||||
specified then the extensions should either be contained in the unnamed
|
||||
(default) section or the default section should contain a variable called
|
||||
"extensions" which contains the section to use. See the
|
||||
@@ -433,7 +461,7 @@ extension section format.
|
||||
|
||||
=item B<-force_pubkey key>
|
||||
|
||||
when a certificate is created set its public key to B<key> instead of the
|
||||
When a certificate is created set its public key to B<key> instead of the
|
||||
key in the certificate or certificate request. This option is useful for
|
||||
creating certificates where the algorithm can't normally sign requests, for
|
||||
example DH.
|
||||
@@ -454,57 +482,57 @@ a B<-> to turn the option off. Only the first four will normally be used.
|
||||
|
||||
=item B<compat>
|
||||
|
||||
use the old format.
|
||||
Use the old format.
|
||||
|
||||
=item B<RFC2253>
|
||||
|
||||
displays names compatible with RFC2253 equivalent to B<esc_2253>, B<esc_ctrl>,
|
||||
Displays names compatible with RFC2253 equivalent to B<esc_2253>, B<esc_ctrl>,
|
||||
B<esc_msb>, B<utf8>, B<dump_nostr>, B<dump_unknown>, B<dump_der>,
|
||||
B<sep_comma_plus>, B<dn_rev> and B<sname>.
|
||||
|
||||
=item B<oneline>
|
||||
|
||||
a oneline format which is more readable than RFC2253. It is equivalent to
|
||||
A oneline format which is more readable than RFC2253. It is equivalent to
|
||||
specifying the B<esc_2253>, B<esc_ctrl>, B<esc_msb>, B<utf8>, B<dump_nostr>,
|
||||
B<dump_der>, B<use_quote>, B<sep_comma_plus_space>, B<space_eq> and B<sname>
|
||||
options. This is the I<default> of no name options are given explicitly.
|
||||
|
||||
=item B<multiline>
|
||||
|
||||
a multiline format. It is equivalent B<esc_ctrl>, B<esc_msb>, B<sep_multiline>,
|
||||
A multiline format. It is equivalent B<esc_ctrl>, B<esc_msb>, B<sep_multiline>,
|
||||
B<space_eq>, B<lname> and B<align>.
|
||||
|
||||
=item B<esc_2253>
|
||||
|
||||
escape the "special" characters required by RFC2253 in a field. That is
|
||||
Escape the "special" characters required by RFC2253 in a field. That is
|
||||
B<,+"E<lt>E<gt>;>. Additionally B<#> is escaped at the beginning of a string
|
||||
and a space character at the beginning or end of a string.
|
||||
|
||||
=item B<esc_2254>
|
||||
|
||||
escape the "special" characters required by RFC2254 in a field. That is
|
||||
Escape the "special" characters required by RFC2254 in a field. That is
|
||||
the B<NUL> character as well as and B<()*>.
|
||||
|
||||
=item B<esc_ctrl>
|
||||
|
||||
escape control characters. That is those with ASCII values less than
|
||||
Escape control characters. That is those with ASCII values less than
|
||||
0x20 (space) and the delete (0x7f) character. They are escaped using the
|
||||
RFC2253 \XX notation (where XX are two hex digits representing the
|
||||
character value).
|
||||
|
||||
=item B<esc_msb>
|
||||
|
||||
escape characters with the MSB set, that is with ASCII values larger than
|
||||
Escape characters with the MSB set, that is with ASCII values larger than
|
||||
127.
|
||||
|
||||
=item B<use_quote>
|
||||
|
||||
escapes some characters by surrounding the whole string with B<"> characters,
|
||||
Escapes some characters by surrounding the whole string with B<"> characters,
|
||||
without the option all escaping is done with the B<\> character.
|
||||
|
||||
=item B<utf8>
|
||||
|
||||
convert all strings to UTF8 format first. This is required by RFC2253. If
|
||||
Convert all strings to UTF8 format first. This is required by RFC2253. If
|
||||
you are lucky enough to have a UTF8 compatible terminal then the use
|
||||
of this option (and B<not> setting B<esc_msb>) may result in the correct
|
||||
display of multibyte (international) characters. Is this option is not
|
||||
@@ -515,42 +543,42 @@ character form first.
|
||||
|
||||
=item B<ignore_type>
|
||||
|
||||
this option does not attempt to interpret multibyte characters in any
|
||||
This option does not attempt to interpret multibyte characters in any
|
||||
way. That is their content octets are merely dumped as though one octet
|
||||
represents each character. This is useful for diagnostic purposes but
|
||||
will result in rather odd looking output.
|
||||
|
||||
=item B<show_type>
|
||||
|
||||
show the type of the ASN1 character string. The type precedes the
|
||||
Show the type of the ASN1 character string. The type precedes the
|
||||
field contents. For example "BMPSTRING: Hello World".
|
||||
|
||||
=item B<dump_der>
|
||||
|
||||
when this option is set any fields that need to be hexdumped will
|
||||
When this option is set any fields that need to be hexdumped will
|
||||
be dumped using the DER encoding of the field. Otherwise just the
|
||||
content octets will be displayed. Both options use the RFC2253
|
||||
B<#XXXX...> format.
|
||||
|
||||
=item B<dump_nostr>
|
||||
|
||||
dump non character string types (for example OCTET STRING) if this
|
||||
Dump non character string types (for example OCTET STRING) if this
|
||||
option is not set then non character string types will be displayed
|
||||
as though each content octet represents a single character.
|
||||
|
||||
=item B<dump_all>
|
||||
|
||||
dump all fields. This option when used with B<dump_der> allows the
|
||||
Dump all fields. This option when used with B<dump_der> allows the
|
||||
DER encoding of the structure to be unambiguously determined.
|
||||
|
||||
=item B<dump_unknown>
|
||||
|
||||
dump any field whose OID is not recognised by OpenSSL.
|
||||
Dump any field whose OID is not recognised by OpenSSL.
|
||||
|
||||
=item B<sep_comma_plus>, B<sep_comma_plus_space>, B<sep_semi_plus_space>,
|
||||
B<sep_multiline>
|
||||
|
||||
these options determine the field separators. The first character is
|
||||
These options determine the field separators. The first character is
|
||||
between RDNs and the second between multiple AVAs (multiple AVAs are
|
||||
very rare and their use is discouraged). The options ending in
|
||||
"space" additionally place a space after the separator to make it
|
||||
@@ -561,13 +589,13 @@ then B<sep_comma_plus_space> is used by default.
|
||||
|
||||
=item B<dn_rev>
|
||||
|
||||
reverse the fields of the DN. This is required by RFC2253. As a side
|
||||
Reverse the fields of the DN. This is required by RFC2253. As a side
|
||||
effect this also reverses the order of multiple AVAs but this is
|
||||
permissible.
|
||||
|
||||
=item B<nofname>, B<sname>, B<lname>, B<oid>
|
||||
|
||||
these options alter how the field name is displayed. B<nofname> does
|
||||
These options alter how the field name is displayed. B<nofname> does
|
||||
not display the field at all. B<sname> uses the "short name" form
|
||||
(CN for commonName for example). B<lname> uses the long form.
|
||||
B<oid> represents the OID in numerical form and is useful for
|
||||
@@ -575,12 +603,12 @@ diagnostic purpose.
|
||||
|
||||
=item B<align>
|
||||
|
||||
align field values for a more readable output. Only usable with
|
||||
Align field values for a more readable output. Only usable with
|
||||
B<sep_multiline>.
|
||||
|
||||
=item B<space_eq>
|
||||
|
||||
places spaces round the B<=> character which follows the field
|
||||
Places spaces round the B<=> character which follows the field
|
||||
name.
|
||||
|
||||
=back
|
||||
@@ -595,59 +623,61 @@ the B<text> option is present. The default behaviour is to print all fields.
|
||||
|
||||
=item B<compatible>
|
||||
|
||||
use the old format. This is equivalent to specifying no output options at all.
|
||||
Use the old format. This is equivalent to specifying no output options at all.
|
||||
|
||||
=item B<no_header>
|
||||
|
||||
don't print header information: that is the lines saying "Certificate" and "Data".
|
||||
Don't print header information: that is the lines saying "Certificate"
|
||||
and "Data".
|
||||
|
||||
=item B<no_version>
|
||||
|
||||
don't print out the version number.
|
||||
Don't print out the version number.
|
||||
|
||||
=item B<no_serial>
|
||||
|
||||
don't print out the serial number.
|
||||
Don't print out the serial number.
|
||||
|
||||
=item B<no_signame>
|
||||
|
||||
don't print out the signature algorithm used.
|
||||
Don't print out the signature algorithm used.
|
||||
|
||||
=item B<no_validity>
|
||||
|
||||
don't print the validity, that is the B<notBefore> and B<notAfter> fields.
|
||||
Don't print the validity, that is the B<notBefore> and B<notAfter> fields.
|
||||
|
||||
=item B<no_subject>
|
||||
|
||||
don't print out the subject name.
|
||||
Don't print out the subject name.
|
||||
|
||||
=item B<no_issuer>
|
||||
|
||||
don't print out the issuer name.
|
||||
Don't print out the issuer name.
|
||||
|
||||
=item B<no_pubkey>
|
||||
|
||||
don't print out the public key.
|
||||
Don't print out the public key.
|
||||
|
||||
=item B<no_sigdump>
|
||||
|
||||
don't give a hexadecimal dump of the certificate signature.
|
||||
Don't give a hexadecimal dump of the certificate signature.
|
||||
|
||||
=item B<no_aux>
|
||||
|
||||
don't print out certificate trust information.
|
||||
Don't print out certificate trust information.
|
||||
|
||||
=item B<no_extensions>
|
||||
|
||||
don't print out any X509V3 extensions.
|
||||
Don't print out any X509V3 extensions.
|
||||
|
||||
=item B<ext_default>
|
||||
|
||||
retain default extension behaviour: attempt to print out unsupported certificate extensions.
|
||||
Retain default extension behaviour: attempt to print out unsupported
|
||||
certificate extensions.
|
||||
|
||||
=item B<ext_error>
|
||||
|
||||
print an error message for unsupported certificate extensions.
|
||||
Print an error message for unsupported certificate extensions.
|
||||
|
||||
=item B<ext_parse>
|
||||
|
||||
@@ -655,11 +685,11 @@ ASN1 parse unsupported extensions.
|
||||
|
||||
=item B<ext_dump>
|
||||
|
||||
hex dump unsupported extensions.
|
||||
Hex dump unsupported extensions.
|
||||
|
||||
=item B<ca_default>
|
||||
|
||||
the value used by the B<ca> utility, equivalent to B<no_issuer>, B<no_pubkey>,
|
||||
The value used by the B<ca> utility, equivalent to B<no_issuer>, B<no_pubkey>,
|
||||
B<no_header>, and B<no_version>.
|
||||
|
||||
=back
|
||||
@@ -673,6 +703,14 @@ Display the contents of a certificate:
|
||||
|
||||
openssl x509 -in cert.pem -noout -text
|
||||
|
||||
Display the "Subject Alternative Name" extension of a certificate:
|
||||
|
||||
openssl x509 -in cert.pem -noout -ext subjectAltName
|
||||
|
||||
Display more extensions of a certificate:
|
||||
|
||||
openssl x509 -in cert.pem -noout -ext subjectAltName,nsCertType
|
||||
|
||||
Display the certificate serial number:
|
||||
|
||||
openssl x509 -in cert.pem -noout -serial
|
||||
@@ -0,0 +1,179 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
ADMISSIONS,
|
||||
ADMISSIONS_get0_admissionAuthority,
|
||||
ADMISSIONS_get0_namingAuthority,
|
||||
ADMISSIONS_get0_professionInfos,
|
||||
ADMISSIONS_set0_admissionAuthority,
|
||||
ADMISSIONS_set0_namingAuthority,
|
||||
ADMISSIONS_set0_professionInfos,
|
||||
ADMISSION_SYNTAX,
|
||||
ADMISSION_SYNTAX_get0_admissionAuthority,
|
||||
ADMISSION_SYNTAX_get0_contentsOfAdmissions,
|
||||
ADMISSION_SYNTAX_set0_admissionAuthority,
|
||||
ADMISSION_SYNTAX_set0_contentsOfAdmissions,
|
||||
NAMING_AUTHORITY,
|
||||
NAMING_AUTHORITY_get0_authorityId,
|
||||
NAMING_AUTHORITY_get0_authorityURL,
|
||||
NAMING_AUTHORITY_get0_authorityText,
|
||||
NAMING_AUTHORITY_set0_authorityId,
|
||||
NAMING_AUTHORITY_set0_authorityURL,
|
||||
NAMING_AUTHORITY_set0_authorityText,
|
||||
PROFESSION_INFO,
|
||||
PROFESSION_INFOS,
|
||||
PROFESSION_INFO_get0_addProfessionInfo,
|
||||
PROFESSION_INFO_get0_namingAuthority,
|
||||
PROFESSION_INFO_get0_professionItems,
|
||||
PROFESSION_INFO_get0_professionOIDs,
|
||||
PROFESSION_INFO_get0_registrationNumber,
|
||||
PROFESSION_INFO_set0_addProfessionInfo,
|
||||
PROFESSION_INFO_set0_namingAuthority,
|
||||
PROFESSION_INFO_set0_professionItems,
|
||||
PROFESSION_INFO_set0_professionOIDs,
|
||||
PROFESSION_INFO_set0_registrationNumber
|
||||
- Accessors and settors for ADMISSION_SYNTAX
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
typedef struct NamingAuthority_st NAMING_AUTHORITY;
|
||||
typedef struct ProfessionInfo_st PROFESSION_INFO;
|
||||
typedef STACK_OF(PROFESSION_INFO) PROFESSION_INFOS;
|
||||
typedef struct Admissions_st ADMISSIONS;
|
||||
typedef struct AdmissionSyntax_st ADMISSION_SYNTAX;
|
||||
|
||||
const ASN1_OBJECT *NAMING_AUTHORITY_get0_authorityId(
|
||||
const NAMING_AUTHORITY *n);
|
||||
void NAMING_AUTHORITY_set0_authorityId(NAMING_AUTHORITY *n,
|
||||
ASN1_OBJECT* namingAuthorityId);
|
||||
const ASN1_IA5STRING *NAMING_AUTHORITY_get0_authorityURL(
|
||||
const NAMING_AUTHORITY *n);
|
||||
void NAMING_AUTHORITY_set0_authorityURL(NAMING_AUTHORITY *n,
|
||||
ASN1_IA5STRING* namingAuthorityUrl);
|
||||
const ASN1_STRING *NAMING_AUTHORITY_get0_authorityText(
|
||||
const NAMING_AUTHORITY *n);
|
||||
void NAMING_AUTHORITY_set0_authorityText(NAMING_AUTHORITY *n,
|
||||
ASN1_STRING* namingAuthorityText);
|
||||
|
||||
const GENERAL_NAME *ADMISSION_SYNTAX_get0_admissionAuthority(
|
||||
const ADMISSION_SYNTAX *as);
|
||||
void ADMISSION_SYNTAX_set0_admissionAuthority(
|
||||
ADMISSION_SYNTAX *as, GENERAL_NAME *aa);
|
||||
const STACK_OF(ADMISSIONS) *ADMISSION_SYNTAX_get0_contentsOfAdmissions(
|
||||
const ADMISSION_SYNTAX *as);
|
||||
void ADMISSION_SYNTAX_set0_contentsOfAdmissions(
|
||||
ADMISSION_SYNTAX *as, STACK_OF(ADMISSIONS) *a);
|
||||
|
||||
const GENERAL_NAME *ADMISSIONS_get0_admissionAuthority(const ADMISSIONS *a);
|
||||
void ADMISSIONS_set0_admissionAuthority(ADMISSIONS *a, GENERAL_NAME *aa);
|
||||
const NAMING_AUTHORITY *ADMISSIONS_get0_namingAuthority(const ADMISSIONS *a);
|
||||
void ADMISSIONS_set0_namingAuthority(ADMISSIONS *a, NAMING_AUTHORITY *na);
|
||||
const PROFESSION_INFOS *ADMISSIONS_get0_professionInfos(const ADMISSIONS *a);
|
||||
void ADMISSIONS_set0_professionInfos(ADMISSIONS *a, PROFESSION_INFOS *pi);
|
||||
|
||||
const ASN1_OCTET_STRING *PROFESSION_INFO_get0_addProfessionInfo(
|
||||
const PROFESSION_INFO *pi);
|
||||
void PROFESSION_INFO_set0_addProfessionInfo(
|
||||
PROFESSION_INFO *pi, ASN1_OCTET_STRING *aos);
|
||||
const NAMING_AUTHORITY *PROFESSION_INFO_get0_namingAuthority(
|
||||
const PROFESSION_INFO *pi);
|
||||
void PROFESSION_INFO_set0_namingAuthority(
|
||||
PROFESSION_INFO *pi, NAMING_AUTHORITY *na);
|
||||
const STACK_OF(ASN1_STRING) *PROFESSION_INFO_get0_professionItems(
|
||||
const PROFESSION_INFO *pi);
|
||||
void PROFESSION_INFO_set0_professionItems(
|
||||
PROFESSION_INFO *pi, STACK_OF(ASN1_STRING) *as);
|
||||
const STACK_OF(ASN1_OBJECT) *PROFESSION_INFO_get0_professionOIDs(
|
||||
const PROFESSION_INFO *pi);
|
||||
void PROFESSION_INFO_set0_professionOIDs(
|
||||
PROFESSION_INFO *pi, STACK_OF(ASN1_OBJECT) *po);
|
||||
const ASN1_PRINTABLESTRING *PROFESSION_INFO_get0_registrationNumber(
|
||||
const PROFESSION_INFO *pi);
|
||||
void PROFESSION_INFO_set0_registrationNumber(
|
||||
PROFESSION_INFO *pi, ASN1_PRINTABLESTRING *rn);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<PROFESSION_INFOS>, B<ADMISSION_SYNTAX>, B<ADMISSIONS>, and
|
||||
B<PROFESSION_INFO> types are opaque structures representing the
|
||||
analogous types defined in the Common PKI Specification published
|
||||
by L<https://www.t7ev.org>.
|
||||
Knowledge of those strutures and their semantics is assumed.
|
||||
|
||||
The conventional routines to convert between DER and the local format
|
||||
are desribed in L<d2i_X509(3)>.
|
||||
The conventional routines to allocate and free the types are defined
|
||||
in L<X509_dup(3)>.
|
||||
|
||||
The B<PROFESSION_INFOS> type is a stack of B<PROFESSION_INFO>; see
|
||||
L<DEFINE_STACK_OF(3)> for details.
|
||||
|
||||
The B<NAMING_AUTHORITY> type has an authority ID and URL, and text fields.
|
||||
The NAMING_AUTHORITY_get0_authorityId(),
|
||||
NAMING_AUTHORITY_get0_get0_authorityURL(), and
|
||||
NAMING_AUTHORITY_get0_get0_authorityText(), functions return pointers
|
||||
to those values within the object.
|
||||
The NAMING_AUTHORITY_set0_authorityId(),
|
||||
NAMING_AUTHORITY_set0_get0_authorityURL(), and
|
||||
NAMING_AUTHORITY_set0_get0_authorityText(),
|
||||
functions free any existing value and set the pointer to the specified value.
|
||||
|
||||
The B<ADMISSION_SYNTAX> type has an authority name and a stack of
|
||||
B<ADMISSION> objects.
|
||||
The ADMISSION_SYNTAX_get0_admissionAuthority()
|
||||
and ADMISSION_SYNTAX_get0_contentsOfAdmissions() functions return pointers
|
||||
to those values within the object.
|
||||
The
|
||||
ADMISSION_SYNTAX_set0_admissionAuthority() and
|
||||
ADMISSION_SYNTAX_set0_contentsOfAdmissions()
|
||||
functions free any existing value and set the pointer to the specified value.
|
||||
|
||||
The B<ADMISSION> type has an authority name, authority object, and a
|
||||
stack of B<PROFSSION_INFO> items.
|
||||
The ADMISSIONS_get0_admissionAuthority(), ADMISSIONS_get0_namingAuthority(),
|
||||
and ADMISSIONS_get0_professionInfos()
|
||||
functions return pointers to those values within the object.
|
||||
The
|
||||
ADMISSIONS_set0_admissionAuthority(),
|
||||
ADMISSIONS_set0_namingAuthority(), and
|
||||
ADMISSIONS_set0_professionInfos()
|
||||
functions free any existing value and set the pointer to the specified value.
|
||||
|
||||
The B<PROFESSION_INFO> type has a name authority, stacks of
|
||||
profession Items and OIDs, a registration number, and additional
|
||||
profession info.
|
||||
The functions PROFESSION_INFO_get0_addProfessionInfo(),
|
||||
PROFESSION_INFO_get0_namingAuthority(), PROFESSION_INFO_get0_professionItems(),
|
||||
PROFESSION_INFO_get0_professionOIDs(), and
|
||||
PROFESSION_INFO_get0_registrationNumber()
|
||||
functions return pointers to those values within the object.
|
||||
The
|
||||
PROFESSION_INFO_set0_addProfessionInfo(),
|
||||
PROFESSION_INFO_set0_namingAuthority(),
|
||||
PROFESSION_INFO_set0_professionItems(),
|
||||
PROFESSION_INFO_set0_professionOIDs(), and
|
||||
PROFESSION_INFO_set0_registrationNumber()
|
||||
functions free any existing value and set the pointer to the specified value.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
Described above.
|
||||
Note that all of the I<get0> functions return a pointer to the internal data
|
||||
structure and must not be freed.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<X509_dup(3)>,
|
||||
L<d2i_X509(3)>,
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -0,0 +1,39 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
ASN1_ITEM_lookup, ASN1_ITEM_get - lookup ASN.1 structures
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
const ASN1_ITEM *ASN1_ITEM_lookup(const char *name);
|
||||
const ASN1_ITEM *ASN1_ITEM_get(size_t i);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
ASN1_ITEM_lookup() returns the B<ASN1_ITEM name>.
|
||||
|
||||
ASN1_ITEM_get() returns the B<ASN1_ITEM> with index B<i>. This function
|
||||
returns B<NULL> if the index B<i> is out of range.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ASN1_ITEM_lookup() and ASN1_ITEM_get() return a valid B<ASN1_ITEM> structure
|
||||
or B<NULL> if an error occurred.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<ERR_get_error(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -0,0 +1,65 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
ASN1_STRING_TABLE, ASN1_STRING_TABLE_add, ASN1_STRING_TABLE_get,
|
||||
ASN1_STRING_TABLE_cleanup - ASN1_STRING_TABLE manipulation functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
typedef struct asn1_string_table_st ASN1_STRING_TABLE;
|
||||
|
||||
int ASN1_STRING_TABLE_add(int nid, long minsize, long maxsize,
|
||||
unsigned long mask, unsigned long flags);
|
||||
ASN1_STRING_TABLE * ASN1_STRING_TABLE_get(int nid);
|
||||
void ASN1_STRING_TABLE_cleanup(void);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
=head2 Types
|
||||
|
||||
B<ASN1_STRING_TABLE> is a table which holds string information
|
||||
(basically minimum size, maximum size, type and etc) for a NID object.
|
||||
|
||||
=head2 Functions
|
||||
|
||||
ASN1_STRING_TABLE_add() adds a new B<ASN1_STRING_TABLE> item into the
|
||||
local ASN1 string table based on the B<nid> along with other parameters.
|
||||
|
||||
If the item is already in the table, fields of B<ASN1_STRING_TABLE> are
|
||||
updated (depending on the values of those parameters, e.g., B<minsize>
|
||||
and B<maxsize> >= 0, B<mask> and B<flags> != 0). If the B<nid> is standard,
|
||||
a copy of the standard B<ASN1_STRING_TABLE> is created and updated with
|
||||
other parameters.
|
||||
|
||||
ASN1_STRING_TABLE_get() searches for an B<ASN1_STRING_TABLE> item based
|
||||
on B<nid>. It will search the local table first, then the standard one.
|
||||
|
||||
ASN1_STRING_TABLE_cleanup() frees all B<ASN1_STRING_TABLE> items added
|
||||
by ASN1_STRING_TABLE_add().
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ASN1_STRING_TABLE_add() returns 1 on success, 0 if an error occurred.
|
||||
|
||||
ASN1_STRING_TABLE_get() returns a valid B<ASN1_STRING_TABLE> structure
|
||||
or B<NULL> if nothing is found.
|
||||
|
||||
ASN1_STRING_TABLE_cleanup() does not return a value.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<ERR_get_error(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -71,12 +71,32 @@ utility functions should be used instead.
|
||||
In general it cannot be assumed that the data returned by ASN1_STRING_data()
|
||||
is null terminated or does not contain embedded nulls. The actual format
|
||||
of the data will depend on the actual string type itself: for example
|
||||
for an IA5String the data will be ASCII, for a BMPString two bytes per
|
||||
character in big endian format, and for an UTF8String it will be in UTF8 format.
|
||||
for and IA5String the data will be ASCII, for a BMPString two bytes per
|
||||
character in big endian format, UTF8String will be in UTF8 format.
|
||||
|
||||
Similar care should be take to ensure the data is in the correct format
|
||||
when calling ASN1_STRING_set().
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ASN1_STRING_length() returns the length of the content of B<x>.
|
||||
|
||||
ASN1_STRING_get0_data() and ASN1_STRING_data() return an internal pointer to
|
||||
the data of B<x>.
|
||||
|
||||
ASN1_STRING_dup() returns a valid B<ASN1_STRING> structure or B<NULL> if an
|
||||
error occurred.
|
||||
|
||||
ASN1_STRING_cmp() returns an integer greater than, equal to, or less than 0,
|
||||
according to whether B<a> is greater than, equal to, or less than B<b>.
|
||||
|
||||
ASN1_STRING_set() returns 1 on success or 0 on error.
|
||||
|
||||
ASN1_STRING_type() returns the type of B<x>.
|
||||
|
||||
ASN1_STRING_to_UTF8() returns the number of bytes in output string B<out> or a
|
||||
negative value if an error occurred.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<ERR_get_error(3)>
|
||||
@@ -32,7 +32,8 @@ ASN1_tag2str() returns a human-readable name of the specified ASN.1 B<tag>.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
ASN1_STRING_print() is a legacy function which should be avoided in new applications.
|
||||
ASN1_STRING_print() is a deprecated function which should be avoided; use
|
||||
ASN1_STRING_print_ex() instead.
|
||||
|
||||
Although there are a large number of options frequently B<ASN1_STRFLGS_RFC2253> is
|
||||
suitable, or on UTF8 terminals B<ASN1_STRFLGS_RFC2253 & ~ASN1_STRFLGS_ESC_MSB>.
|
||||
@@ -88,6 +89,15 @@ equivalent to:
|
||||
ASN1_STRFLGS_ESC_2253 | ASN1_STRFLGS_ESC_CTRL | ASN1_STRFLGS_ESC_MSB |
|
||||
ASN1_STRFLGS_UTF8_CONVERT | ASN1_STRFLGS_DUMP_UNKNOWN ASN1_STRFLGS_DUMP_DER
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ASN1_STRING_print_ex() and ASN1_STRING_print_ex_fp() return the number of
|
||||
characters written or -1 if an error occurred.
|
||||
|
||||
ASN1_STRING_print() returns 1 on success or 0 on error.
|
||||
|
||||
ASN1_tag2str() returns a human-readable name of the specified ASN.1 B<tag>.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<X509_NAME_print_ex(3)>,
|
||||
@@ -95,7 +105,7 @@ L<ASN1_tag2str(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2002-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -0,0 +1,258 @@
|
||||
=pod
|
||||
|
||||
=head1 NAME
|
||||
|
||||
ASN1_TIME_set, ASN1_UTCTIME_set, ASN1_GENERALIZEDTIME_set,
|
||||
ASN1_TIME_adj, ASN1_UTCTIME_adj, ASN1_GENERALIZEDTIME_adj,
|
||||
ASN1_TIME_check, ASN1_UTCTIME_check, ASN1_GENERALIZEDTIME_check,
|
||||
ASN1_TIME_set_string, ASN1_UTCTIME_set_string, ASN1_GENERALIZEDTIME_set_string,
|
||||
ASN1_TIME_set_string_X509,
|
||||
ASN1_TIME_normalize,
|
||||
ASN1_TIME_to_tm,
|
||||
ASN1_TIME_print, ASN1_UTCTIME_print, ASN1_GENERALIZEDTIME_print,
|
||||
ASN1_TIME_diff,
|
||||
ASN1_TIME_cmp_time_t, ASN1_UTCTIME_cmp_time_t,
|
||||
ASN1_TIME_compare,
|
||||
ASN1_TIME_to_generalizedtime - ASN.1 Time functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t);
|
||||
ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t);
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s,
|
||||
time_t t);
|
||||
|
||||
ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, int offset_day,
|
||||
long offset_sec);
|
||||
ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t,
|
||||
int offset_day, long offset_sec);
|
||||
ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_adj(ASN1_GENERALIZEDTIME *s,
|
||||
time_t t, int offset_day,
|
||||
long offset_sec);
|
||||
|
||||
int ASN1_TIME_set_string(ASN1_TIME *s, const char *str);
|
||||
int ASN1_TIME_set_string_X509(ASN1_TIME *s, const char *str);
|
||||
int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str);
|
||||
int ASN1_GENERALIZEDTIME_set_string(ASN1_GENERALIZEDTIME *s,
|
||||
const char *str);
|
||||
|
||||
int ASN1_TIME_normalize(ASN1_TIME *s);
|
||||
|
||||
int ASN1_TIME_check(const ASN1_TIME *t);
|
||||
int ASN1_UTCTIME_check(const ASN1_UTCTIME *t);
|
||||
int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *t);
|
||||
|
||||
int ASN1_TIME_print(BIO *b, const ASN1_TIME *s);
|
||||
int ASN1_UTCTIME_print(BIO *b, const ASN1_UTCTIME *s);
|
||||
int ASN1_GENERALIZEDTIME_print(BIO *b, const ASN1_GENERALIZEDTIME *s);
|
||||
|
||||
int ASN1_TIME_to_tm(const ASN1_TIME *s, struct tm *tm);
|
||||
int ASN1_TIME_diff(int *pday, int *psec, const ASN1_TIME *from,
|
||||
const ASN1_TIME *to);
|
||||
|
||||
int ASN1_TIME_cmp_time_t(const ASN1_TIME *s, time_t t);
|
||||
int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t);
|
||||
|
||||
int ASN1_TIME_compare(const ASN1_TIME *a, const ASN1_TIME *b);
|
||||
|
||||
ASN1_GENERALIZEDTIME *ASN1_TIME_to_generalizedtime(ASN1_TIME *t,
|
||||
ASN1_GENERALIZEDTIME **out);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The ASN1_TIME_set(), ASN1_UTCTIME_set() and ASN1_GENERALIZEDTIME_set()
|
||||
functions set the structure B<s> to the time represented by the time_t
|
||||
value B<t>. If B<s> is NULL a new time structure is allocated and returned.
|
||||
|
||||
The ASN1_TIME_adj(), ASN1_UTCTIME_adj() and ASN1_GENERALIZEDTIME_adj()
|
||||
functions set the time structure B<s> to the time represented
|
||||
by the time B<offset_day> and B<offset_sec> after the time_t value B<t>.
|
||||
The values of B<offset_day> or B<offset_sec> can be negative to set a
|
||||
time before B<t>. The B<offset_sec> value can also exceed the number of
|
||||
seconds in a day. If B<s> is NULL a new structure is allocated
|
||||
and returned.
|
||||
|
||||
The ASN1_TIME_set_string(), ASN1_UTCTIME_set_string() and
|
||||
ASN1_GENERALIZEDTIME_set_string() functions set the time structure B<s>
|
||||
to the time represented by string B<str> which must be in appropriate ASN.1
|
||||
time format (for example YYMMDDHHMMSSZ or YYYYMMDDHHMMSSZ). If B<s> is NULL
|
||||
this function performs a format check on B<str> only. The string B<str>
|
||||
is copied into B<s>.
|
||||
|
||||
ASN1_TIME_set_string_X509() sets ASN1_TIME structure B<s> to the time
|
||||
represented by string B<str> which must be in appropriate time format
|
||||
that RFC 5280 requires, which means it only allows YYMMDDHHMMSSZ and
|
||||
YYYYMMDDHHMMSSZ (leap second is rejected), all other ASN.1 time format
|
||||
are not allowed. If B<s> is NULL this function performs a format check
|
||||
on B<str> only.
|
||||
|
||||
The ASN1_TIME_normalize() function converts an ASN1_GENERALIZEDTIME or
|
||||
ASN1_UTCTIME into a time value that can be used in a certificate. It
|
||||
should be used after the ASN1_TIME_set_string() functions and before
|
||||
ASN1_TIME_print() functions to get consistent (i.e. GMT) results.
|
||||
|
||||
The ASN1_TIME_check(), ASN1_UTCTIME_check() and ASN1_GENERALIZEDTIME_check()
|
||||
functions check the syntax of the time structure B<s>.
|
||||
|
||||
The ASN1_TIME_print(), ASN1_UTCTIME_print() and ASN1_GENERALIZEDTIME_print()
|
||||
functions print the time structure B<s> to BIO B<b> in human readable
|
||||
format. It will be of the format MMM DD HH:MM:SS YYYY [GMT], for example
|
||||
"Feb 3 00:55:52 2015 GMT" it does not include a newline. If the time
|
||||
structure has invalid format it prints out "Bad time value" and returns
|
||||
an error. The output for generalized time may include a fractional part
|
||||
following the second.
|
||||
|
||||
ASN1_TIME_to_tm() converts the time B<s> to the standard B<tm> structure.
|
||||
If B<s> is NULL, then the current time is converted. The output time is GMT.
|
||||
The B<tm_sec>, B<tm_min>, B<tm_hour>, B<tm_mday>, B<tm_wday>, B<tm_yday>,
|
||||
B<tm_mon> and B<tm_year> fields of B<tm> structure are set to proper values,
|
||||
whereas all other fields are set to 0. If B<tm> is NULL this function performs
|
||||
a format check on B<s> only. If B<s> is in Generalized format with fractional
|
||||
seconds, e.g. YYYYMMDDHHMMSS.SSSZ, the fractional seconds will be lost while
|
||||
converting B<s> to B<tm> structure.
|
||||
|
||||
ASN1_TIME_diff() sets B<*pday> and B<*psec> to the time difference between
|
||||
B<from> and B<to>. If B<to> represents a time later than B<from> then
|
||||
one or both (depending on the time difference) of B<*pday> and B<*psec>
|
||||
will be positive. If B<to> represents a time earlier than B<from> then
|
||||
one or both of B<*pday> and B<*psec> will be negative. If B<to> and B<from>
|
||||
represent the same time then B<*pday> and B<*psec> will both be zero.
|
||||
If both B<*pday> and B<*psec> are non-zero they will always have the same
|
||||
sign. The value of B<*psec> will always be less than the number of seconds
|
||||
in a day. If B<from> or B<to> is NULL the current time is used.
|
||||
|
||||
The ASN1_TIME_cmp_time_t() and ASN1_UTCTIME_cmp_time_t() functions compare
|
||||
the two times represented by the time structure B<s> and the time_t B<t>.
|
||||
|
||||
The ASN1_TIME_compare() function compares the two times represented by the
|
||||
time structures B<a> and B<b>.
|
||||
|
||||
The ASN1_TIME_to_generalizedtime() function converts an ASN1_TIME to an
|
||||
ASN1_GENERALIZEDTIME, regardless of year. If either B<out> or
|
||||
B<*out> are NULL, then a new object is allocated and must be freed after use.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The ASN1_TIME structure corresponds to the ASN.1 structure B<Time>
|
||||
defined in RFC5280 et al. The time setting functions obey the rules outlined
|
||||
in RFC5280: if the date can be represented by UTCTime it is used, else
|
||||
GeneralizedTime is used.
|
||||
|
||||
The ASN1_TIME, ASN1_UTCTIME and ASN1_GENERALIZEDTIME structures are represented
|
||||
as an ASN1_STRING internally and can be freed up using ASN1_STRING_free().
|
||||
|
||||
The ASN1_TIME structure can represent years from 0000 to 9999 but no attempt
|
||||
is made to correct ancient calendar changes (for example from Julian to
|
||||
Gregorian calendars).
|
||||
|
||||
ASN1_UTCTIME is limited to a year range of 1950 through 2049.
|
||||
|
||||
Some applications add offset times directly to a time_t value and pass the
|
||||
results to ASN1_TIME_set() (or equivalent). This can cause problems as the
|
||||
time_t value can overflow on some systems resulting in unexpected results.
|
||||
New applications should use ASN1_TIME_adj() instead and pass the offset value
|
||||
in the B<offset_sec> and B<offset_day> parameters instead of directly
|
||||
manipulating a time_t value.
|
||||
|
||||
ASN1_TIME_adj() may change the type from ASN1_GENERALIZEDTIME to ASN1_UTCTIME,
|
||||
or vise-versa, based on the resulting year. The ASN1_GENERALIZEDTIME_adj() and
|
||||
ASN1_UTCTIME_adj() functions will not modify the type of the return structure.
|
||||
|
||||
It is recommended that functions starting with ASN1_TIME be used instead of
|
||||
those starting with ASN1_UTCTIME or ASN1_GENERALIZEDTIME. The functions
|
||||
starting with ASN1_UTCTIME and ASN1_GENERALIZEDTIME act only on that specific
|
||||
time format. The functions starting with ASN1_TIME will operate on either
|
||||
format.
|
||||
|
||||
=head1 BUGS
|
||||
|
||||
ASN1_TIME_print(), ASN1_UTCTIME_print() and ASN1_GENERALIZEDTIME_print()
|
||||
do not print out the time zone: it either prints out "GMT" or nothing. But all
|
||||
certificates complying with RFC5280 et al use GMT anyway.
|
||||
|
||||
Use the ASN1_TIME_normalize() function to normalize the time value before
|
||||
printing to get GMT results.
|
||||
|
||||
=head1 EXAMPLES
|
||||
|
||||
Set a time structure to one hour after the current time and print it out:
|
||||
|
||||
#include <time.h>
|
||||
#include <openssl/asn1.h>
|
||||
|
||||
ASN1_TIME *tm;
|
||||
time_t t;
|
||||
BIO *b;
|
||||
|
||||
t = time(NULL);
|
||||
tm = ASN1_TIME_adj(NULL, t, 0, 60 * 60);
|
||||
b = BIO_new_fp(stdout, BIO_NOCLOSE);
|
||||
ASN1_TIME_print(b, tm);
|
||||
ASN1_STRING_free(tm);
|
||||
BIO_free(b);
|
||||
|
||||
Determine if one time is later or sooner than the current time:
|
||||
|
||||
int day, sec;
|
||||
|
||||
if (!ASN1_TIME_diff(&day, &sec, NULL, to))
|
||||
/* Invalid time format */
|
||||
|
||||
if (day > 0 || sec > 0)
|
||||
printf("Later\n");
|
||||
else if (day < 0 || sec < 0)
|
||||
printf("Sooner\n");
|
||||
else
|
||||
printf("Same\n");
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
ASN1_TIME_set(), ASN1_UTCTIME_set(), ASN1_GENERALIZEDTIME_set(), ASN1_TIME_adj(),
|
||||
ASN1_UTCTIME_adj and ASN1_GENERALIZEDTIME_set return a pointer to a time structure
|
||||
or NULL if an error occurred.
|
||||
|
||||
ASN1_TIME_set_string(), ASN1_UTCTIME_set_string(), ASN1_GENERALIZEDTIME_set_string()
|
||||
ASN1_TIME_set_string_X509() return 1 if the time value is successfully set and 0 otherwise.
|
||||
|
||||
ASN1_TIME_normalize() returns 1 on success, and 0 on error.
|
||||
|
||||
ASN1_TIME_check(), ASN1_UTCTIME_check and ASN1_GENERALIZEDTIME_check() return 1
|
||||
if the structure is syntactically correct and 0 otherwise.
|
||||
|
||||
ASN1_TIME_print(), ASN1_UTCTIME_print() and ASN1_GENERALIZEDTIME_print() return 1
|
||||
if the time is successfully printed out and 0 if an error occurred (I/O error or
|
||||
invalid time format).
|
||||
|
||||
ASN1_TIME_to_tm() returns 1 if the time is successfully parsed and 0 if an
|
||||
error occurred (invalid time format).
|
||||
|
||||
ASN1_TIME_diff() returns 1 for success and 0 for failure. It can fail if the
|
||||
passed-in time structure has invalid syntax, for example.
|
||||
|
||||
ASN1_TIME_cmp_time_t() and ASN1_UTCTIME_cmp_time_t() return -1 if B<s> is
|
||||
before B<t>, 0 if B<s> equals B<t>, or 1 if B<s> is after B<t>. -2 is returned
|
||||
on error.
|
||||
|
||||
ASN1_TIME_compare() returns -1 if B<a> is before B<b>, 0 if B<a> equals B<b>, or 1 if B<a> is after B<b>. -2 is returned on error.
|
||||
|
||||
ASN1_TIME_to_generalizedtime() returns a pointer to
|
||||
the appropriate time structure on success or NULL if an error occurred.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The ASN1_TIME_to_tm() function was added in OpenSSL 1.1.1.
|
||||
The ASN1_TIME_set_string_X509() function was added in OpenSSL 1.1.1.
|
||||
The ASN1_TIME_normalize() function was added in OpenSSL 1.1.1.
|
||||
The ASN1_TIME_cmp_time_t() function was added in OpenSSL 1.1.1.
|
||||
The ASN1_TIME_compare() function was added in OpenSSL 1.1.1.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
in the file LICENSE in the source distribution or at
|
||||
L<https://www.openssl.org/source/license.html>.
|
||||
|
||||
=cut
|
||||
@@ -17,7 +17,7 @@ waiting for asynchronous jobs to complete
|
||||
OSSL_ASYNC_FD fd,
|
||||
void *custom_data,
|
||||
void (*cleanup)(ASYNC_WAIT_CTX *, const void *,
|
||||
OSSL_ASYNC_FD, void *));
|
||||
OSSL_ASYNC_FD, void *));
|
||||
int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key,
|
||||
OSSL_ASYNC_FD *fd, void **custom_data);
|
||||
int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd,
|
||||
@@ -123,7 +123,7 @@ windows.h prior to async.h.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<crypto(3)>, L<ASYNC_start_job(3)>
|
||||
L<crypto(7)>, L<ASYNC_start_job(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
@@ -187,6 +187,7 @@ The following example demonstrates how to use most of the core async APIs:
|
||||
void cleanup(ASYNC_WAIT_CTX *ctx, const void *key, OSSL_ASYNC_FD r, void *vw)
|
||||
{
|
||||
OSSL_ASYNC_FD *w = (OSSL_ASYNC_FD *)vw;
|
||||
|
||||
close(r);
|
||||
close(*w);
|
||||
OPENSSL_free(w);
|
||||
@@ -262,17 +263,17 @@ The following example demonstrates how to use most of the core async APIs:
|
||||
}
|
||||
|
||||
for (;;) {
|
||||
switch(ASYNC_start_job(&job, ctx, &ret, jobfunc, msg, sizeof(msg))) {
|
||||
switch (ASYNC_start_job(&job, ctx, &ret, jobfunc, msg, sizeof(msg))) {
|
||||
case ASYNC_ERR:
|
||||
case ASYNC_NO_JOBS:
|
||||
printf("An error occurred\n");
|
||||
goto end;
|
||||
printf("An error occurred\n");
|
||||
goto end;
|
||||
case ASYNC_PAUSE:
|
||||
printf("Job was paused\n");
|
||||
break;
|
||||
printf("Job was paused\n");
|
||||
break;
|
||||
case ASYNC_FINISH:
|
||||
printf("Job finished with return value %d\n", ret);
|
||||
goto end;
|
||||
printf("Job finished with return value %d\n", ret);
|
||||
goto end;
|
||||
}
|
||||
|
||||
/* Wait for the job to be woken */
|
||||
@@ -309,7 +310,7 @@ The expected output from executing the above example program is:
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<crypto(3)>, L<ERR_print_errors(3)>
|
||||
L<crypto(7)>, L<ERR_print_errors(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
@@ -12,14 +12,16 @@ BF_cfb64_encrypt, BF_ofb64_encrypt, BF_options - Blowfish encryption
|
||||
void BF_set_key(BF_KEY *key, int len, const unsigned char *data);
|
||||
|
||||
void BF_ecb_encrypt(const unsigned char *in, unsigned char *out,
|
||||
BF_KEY *key, int enc);
|
||||
BF_KEY *key, int enc);
|
||||
void BF_cbc_encrypt(const unsigned char *in, unsigned char *out,
|
||||
long length, BF_KEY *schedule, unsigned char *ivec, int enc);
|
||||
long length, BF_KEY *schedule,
|
||||
unsigned char *ivec, int enc);
|
||||
void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
long length, BF_KEY *schedule, unsigned char *ivec, int *num,
|
||||
int enc);
|
||||
long length, BF_KEY *schedule,
|
||||
unsigned char *ivec, int *num, int enc);
|
||||
void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out,
|
||||
long length, BF_KEY *schedule, unsigned char *ivec, int *num);
|
||||
long length, BF_KEY *schedule,
|
||||
unsigned char *ivec, int *num);
|
||||
const char *BF_options(void);
|
||||
|
||||
void BF_encrypt(BF_LONG *data, const BF_KEY *key);
|
||||
@@ -6,6 +6,7 @@ BIO_lookup_type,
|
||||
BIO_ADDRINFO, BIO_ADDRINFO_next, BIO_ADDRINFO_free,
|
||||
BIO_ADDRINFO_family, BIO_ADDRINFO_socktype, BIO_ADDRINFO_protocol,
|
||||
BIO_ADDRINFO_address,
|
||||
BIO_lookup_ex,
|
||||
BIO_lookup
|
||||
- BIO_ADDRINFO type and routines
|
||||
|
||||
@@ -19,6 +20,9 @@ BIO_lookup
|
||||
enum BIO_lookup_type {
|
||||
BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER
|
||||
};
|
||||
|
||||
int BIO_lookup_ex(const char *host, const char *service, int lookup_type,
|
||||
int family, int socktype, int protocol, BIO_ADDRINFO **res);
|
||||
int BIO_lookup(const char *node, const char *service,
|
||||
enum BIO_lookup_type lookup_type,
|
||||
int family, int socktype, BIO_ADDRINFO **res);
|
||||
@@ -38,18 +42,24 @@ types provided on your platform.
|
||||
B<BIO_ADDRINFO> normally forms a chain of several that can be
|
||||
picked at one by one.
|
||||
|
||||
BIO_lookup() looks up a specified B<host> and B<service>, and
|
||||
BIO_lookup_ex() looks up a specified B<host> and B<service>, and
|
||||
uses B<lookup_type> to determine what the default address should
|
||||
be if B<host> is B<NULL>. B<family>, B<socktype> are used to
|
||||
determine what protocol family and protocol should be used for
|
||||
be if B<host> is B<NULL>. B<family>, B<socktype> and B<protocol> are used to
|
||||
determine what protocol family, socket type and protocol should be used for
|
||||
the lookup. B<family> can be any of AF_INET, AF_INET6, AF_UNIX and
|
||||
AF_UNSPEC, and B<socktype> can be SOCK_STREAM or SOCK_DGRAM.
|
||||
B<res> points at a pointer to hold the start of a B<BIO_ADDRINFO>
|
||||
AF_UNSPEC. B<socktype> can be SOCK_STREAM, SOCK_DGRAM or 0. Specifying 0
|
||||
indicates that any type can be used. B<protocol> specifies a protocol such as
|
||||
IPPROTO_TCP, IPPROTO_UDP or IPPORTO_SCTP. If set to 0 than any protocol can be
|
||||
used. B<res> points at a pointer to hold the start of a B<BIO_ADDRINFO>
|
||||
chain.
|
||||
For the family B<AF_UNIX>, BIO_lookup() will ignore the B<service>
|
||||
|
||||
For the family B<AF_UNIX>, BIO_lookup_ex() will ignore the B<service>
|
||||
parameter and expects the B<node> parameter to hold the path to the
|
||||
socket file.
|
||||
|
||||
BIO_lookup() does the same as BIO_lookup_ex() but does not provide the ability
|
||||
to select based on the protocol (any protocol may be returned).
|
||||
|
||||
BIO_ADDRINFO_family() returns the family of the given
|
||||
B<BIO_ADDRINFO>. The result will be one of the constants
|
||||
AF_INET, AF_INET6 and AF_UNIX.
|
||||
@@ -73,15 +83,28 @@ with the given one.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
BIO_lookup() returns 1 on success and 0 when an error occurred, and
|
||||
will leave an error indication on the OpenSSL error stack in that case.
|
||||
BIO_lookup_ex() and BIO_lookup() return 1 on success and 0 when an error
|
||||
occurred, and will leave an error indication on the OpenSSL error stack in that
|
||||
case.
|
||||
|
||||
All other functions described here return 0 or B<NULL> when the
|
||||
information they should return isn't available.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The BIO_lookup_ex() implementation uses the platform provided getaddrinfo()
|
||||
function. On Linux it is known that specifying 0 for the protocol will not
|
||||
return any SCTP based addresses when calling getaddrinfo(). Therefore if an SCTP
|
||||
address is required then the B<protocol> parameter to BIO_lookup_ex() should be
|
||||
explicitly set to IPPROTO_SCTP. The same may be true on other platforms.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
The BIO_lookup_ex() function was added in OpenSSL 1.1.1.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2017 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
=head1 NAME
|
||||
|
||||
BIO_socket, BIO_connect, BIO_listen, BIO_accept_ex, BIO_closesocket - BIO
|
||||
BIO_socket, BIO_bind, BIO_connect, BIO_listen, BIO_accept_ex, BIO_closesocket - BIO
|
||||
socket communication setup routines
|
||||
|
||||
=head1 SYNOPSIS
|
||||
@@ -10,6 +10,7 @@ socket communication setup routines
|
||||
#include <openssl/bio.h>
|
||||
|
||||
int BIO_socket(int domain, int socktype, int protocol, int options);
|
||||
int BIO_bind(int sock, const BIO_ADDR *addr, int options);
|
||||
int BIO_connect(int sock, const BIO_ADDR *addr, int options);
|
||||
int BIO_listen(int sock, const BIO_ADDR *addr, int options);
|
||||
int BIO_accept_ex(int accept_sock, BIO_ADDR *peer, int options);
|
||||
@@ -21,6 +22,10 @@ BIO_socket() creates a socket in the domain B<domain>, of type
|
||||
B<socktype> and B<protocol>. Socket B<options> are currently unused,
|
||||
but is present for future use.
|
||||
|
||||
BIO_bind() binds the source address and service to a socket and
|
||||
may be useful before calling BIO_connect(). The options may include
|
||||
B<BIO_SOCK_REUSADDR>, which is described in L</FLAGS> below.
|
||||
|
||||
BIO_connect() connects B<sock> to the address and service given by
|
||||
B<addr>. Connection B<options> may be zero or any combination of
|
||||
B<BIO_SOCK_KEEPALIVE>, B<BIO_SOCK_NONBLOCK> and B<BIO_SOCK_NODELAY>.
|
||||
@@ -73,7 +78,7 @@ and not IPv4 addresses mapped to IPv6.
|
||||
These flags are bit flags, so they are to be combined with the
|
||||
C<|> operator, for example:
|
||||
|
||||
BIO_connect(sock, addr, BIO_SOCK_KEEPALIVE | BIO_SOCK_NONBLOCK);
|
||||
BIO_connect(sock, addr, BIO_SOCK_KEEPALIVE | BIO_SOCK_NONBLOCK);
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
@@ -81,7 +86,7 @@ BIO_socket() returns the socket number on success or B<INVALID_SOCKET>
|
||||
(-1) on error. When an error has occurred, the OpenSSL error stack
|
||||
will hold the error data and errno has the system error.
|
||||
|
||||
BIO_connect() and BIO_listen() return 1 on success or 0 on error.
|
||||
BIO_bind(), BIO_connect() and BIO_listen() return 1 on success or 0 on error.
|
||||
When an error has occurred, the OpenSSL error stack will hold the error
|
||||
data and errno has the system error.
|
||||
|
||||
@@ -93,8 +98,8 @@ error.
|
||||
=head1 HISTORY
|
||||
|
||||
BIO_gethostname(), BIO_get_port(), BIO_get_host_ip(),
|
||||
BIO_get_accept_socket() and BIO_accept() are deprecated since OpenSSL
|
||||
1.1. Use the functions described above instead.
|
||||
BIO_get_accept_socket() and BIO_accept() were deprecated in
|
||||
OpenSSL 1.1.0. Use the functions described above instead.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
@@ -102,7 +107,7 @@ L<BIO_ADDR(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
BIO_f_base64 - base64 BIO filter
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/evp.h>
|
||||
|
||||
@@ -65,8 +65,8 @@ data to standard output:
|
||||
bio = BIO_new_fp(stdin, BIO_NOCLOSE);
|
||||
bio_out = BIO_new_fp(stdout, BIO_NOCLOSE);
|
||||
BIO_push(b64, bio);
|
||||
while((inlen = BIO_read(b64, inbuf, 512)) > 0)
|
||||
BIO_write(bio_out, inbuf, inlen);
|
||||
while ((inlen = BIO_read(b64, inbuf, 512)) > 0)
|
||||
BIO_write(bio_out, inbuf, inlen);
|
||||
|
||||
BIO_flush(bio_out);
|
||||
BIO_free_all(b64);
|
||||
@@ -49,7 +49,7 @@ is expanded.
|
||||
|
||||
These functions, other than BIO_f_buffer(), are implemented as macros.
|
||||
|
||||
Buffering BIOs implement BIO_gets() by using BIO_read() operations on the
|
||||
Buffering BIOs implement BIO_gets() by using BIO_read_ex() operations on the
|
||||
next BIO in the chain. By prepending a buffering BIO to a chain it is therefore
|
||||
possible to provide BIO_gets() functionality if the following BIOs do not
|
||||
support it (for example SSL BIOs).
|
||||
@@ -74,7 +74,7 @@ there was an error.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<BIO(3)>,
|
||||
L<bio(7)>,
|
||||
L<BIO_reset(3)>,
|
||||
L<BIO_flush(3)>,
|
||||
L<BIO_pop(3)>,
|
||||
@@ -4,16 +4,16 @@
|
||||
|
||||
BIO_f_cipher, BIO_set_cipher, BIO_get_cipher_status, BIO_get_cipher_ctx - cipher BIO filter
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/evp.h>
|
||||
|
||||
const BIO_METHOD *BIO_f_cipher(void);
|
||||
void BIO_set_cipher(BIO *b, const EVP_CIPHER *cipher,
|
||||
unsigned char *key, unsigned char *iv, int enc);
|
||||
unsigned char *key, unsigned char *iv, int enc);
|
||||
int BIO_get_cipher_status(BIO *b)
|
||||
int BIO_get_cipher_ctx(BIO *b, EVP_CIPHER_CTX **pctx)
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
BIO_f_md, BIO_set_md, BIO_get_md, BIO_get_md_ctx - message digest BIO filter
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/evp.h>
|
||||
|
||||
@@ -23,8 +23,8 @@ BIO that digests any data passed through it, it is a BIO wrapper
|
||||
for the digest routines EVP_DigestInit(), EVP_DigestUpdate()
|
||||
and EVP_DigestFinal().
|
||||
|
||||
Any data written or read through a digest BIO using BIO_read() and
|
||||
BIO_write() is digested.
|
||||
Any data written or read through a digest BIO using BIO_read_ex() and
|
||||
BIO_write_ex() is digested.
|
||||
|
||||
BIO_gets(), if its B<size> parameter is large enough finishes the
|
||||
digest calculation and returns the digest value. BIO_puts() is
|
||||
@@ -79,10 +79,12 @@ checking has been omitted for clarity.
|
||||
|
||||
BIO *bio, *mdtmp;
|
||||
char message[] = "Hello World";
|
||||
|
||||
bio = BIO_new(BIO_s_null());
|
||||
mdtmp = BIO_new(BIO_f_md());
|
||||
BIO_set_md(mdtmp, EVP_sha1());
|
||||
/* For BIO_push() we want to append the sink BIO and keep a note of
|
||||
/*
|
||||
* For BIO_push() we want to append the sink BIO and keep a note of
|
||||
* the start of the chain.
|
||||
*/
|
||||
bio = BIO_push(mdtmp, bio);
|
||||
@@ -97,6 +99,7 @@ The next example digests data by reading through a chain instead:
|
||||
BIO *bio, *mdtmp;
|
||||
char buf[1024];
|
||||
int rdlen;
|
||||
|
||||
bio = BIO_new_file(file, "rb");
|
||||
mdtmp = BIO_new(BIO_f_md());
|
||||
BIO_set_md(mdtmp, EVP_sha1());
|
||||
@@ -105,8 +108,8 @@ The next example digests data by reading through a chain instead:
|
||||
BIO_set_md(mdtmp, EVP_md5());
|
||||
bio = BIO_push(mdtmp, bio);
|
||||
do {
|
||||
rdlen = BIO_read(bio, buf, sizeof(buf));
|
||||
/* Might want to do something with the data here */
|
||||
rdlen = BIO_read(bio, buf, sizeof(buf));
|
||||
/* Might want to do something with the data here */
|
||||
} while (rdlen > 0);
|
||||
|
||||
This next example retrieves the message digests from a BIO chain and
|
||||
@@ -116,17 +119,20 @@ outputs them. This could be used with the examples above.
|
||||
unsigned char mdbuf[EVP_MAX_MD_SIZE];
|
||||
int mdlen;
|
||||
int i;
|
||||
|
||||
mdtmp = bio; /* Assume bio has previously been set up */
|
||||
do {
|
||||
EVP_MD *md;
|
||||
mdtmp = BIO_find_type(mdtmp, BIO_TYPE_MD);
|
||||
if (!mdtmp) break;
|
||||
BIO_get_md(mdtmp, &md);
|
||||
printf("%s digest", OBJ_nid2sn(EVP_MD_type(md)));
|
||||
mdlen = BIO_gets(mdtmp, mdbuf, EVP_MAX_MD_SIZE);
|
||||
for (i = 0; i < mdlen; i++) printf(":%02X", mdbuf[i]);
|
||||
printf("\n");
|
||||
mdtmp = BIO_next(mdtmp);
|
||||
EVP_MD *md;
|
||||
|
||||
mdtmp = BIO_find_type(mdtmp, BIO_TYPE_MD);
|
||||
if (!mdtmp)
|
||||
break;
|
||||
BIO_get_md(mdtmp, &md);
|
||||
printf("%s digest", OBJ_nid2sn(EVP_MD_type(md)));
|
||||
mdlen = BIO_gets(mdtmp, mdbuf, EVP_MAX_MD_SIZE);
|
||||
for (i = 0; i < mdlen; i++) printf(":%02X", mdbuf[i]);
|
||||
printf("\n");
|
||||
mdtmp = BIO_next(mdtmp);
|
||||
} while (mdtmp);
|
||||
|
||||
BIO_free_all(bio);
|
||||
@@ -8,7 +8,7 @@ BIO_f_null - null filter
|
||||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
const BIO_METHOD * BIO_f_null(void);
|
||||
const BIO_METHOD *BIO_f_null(void);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
@@ -9,10 +9,10 @@ BIO_get_num_renegotiates, BIO_set_ssl_renegotiate_timeout, BIO_new_ssl,
|
||||
BIO_new_ssl_connect, BIO_new_buffer_ssl_connect, BIO_ssl_copy_session_id,
|
||||
BIO_ssl_shutdown - SSL BIO
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
=for comment multiple includes
|
||||
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/ssl.h>
|
||||
|
||||
@@ -108,7 +108,7 @@ already been established this call has no effect.
|
||||
SSL BIOs are exceptional in that if the underlying transport
|
||||
is non blocking they can still request a retry in exceptional
|
||||
circumstances. Specifically this will happen if a session
|
||||
renegotiation takes place during a BIO_read() operation, one
|
||||
renegotiation takes place during a BIO_read_ex() operation, one
|
||||
case where this happens is when step up occurs.
|
||||
|
||||
The SSL flag SSL_AUTO_RETRY can be
|
||||
@@ -170,15 +170,15 @@ unencrypted example in L<BIO_s_connect(3)>.
|
||||
exit(1);
|
||||
}
|
||||
if (BIO_do_handshake(sbio) <= 0) {
|
||||
fprintf(stderr, "Error establishing SSL connection\n");
|
||||
ERR_print_errors_fp(stderr);
|
||||
exit(1);
|
||||
fprintf(stderr, "Error establishing SSL connection\n");
|
||||
ERR_print_errors_fp(stderr);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* XXX Could examine ssl here to get connection info */
|
||||
|
||||
BIO_puts(sbio, "GET / HTTP/1.0\n\n");
|
||||
for ( ; ; ) {
|
||||
for (;;) {
|
||||
len = BIO_read(sbio, tmpbuf, 1024);
|
||||
if (len <= 0)
|
||||
break;
|
||||
@@ -241,12 +241,6 @@ a client and also echoes the request to standard output.
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (BIO_do_accept(acpt) <= 0) {
|
||||
fprintf(stderr, "Error in connection\n");
|
||||
ERR_print_errors_fp(stderr);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/* We only want one connection so remove and free accept BIO */
|
||||
sbio = BIO_pop(acpt);
|
||||
BIO_free_all(acpt);
|
||||
@@ -261,7 +255,7 @@ a client and also echoes the request to standard output.
|
||||
BIO_puts(sbio, "\r\nConnection Established\r\nRequest headers:\r\n");
|
||||
BIO_puts(sbio, "--------------------------------------------------\r\n");
|
||||
|
||||
for ( ; ; ) {
|
||||
for (;;) {
|
||||
len = BIO_gets(sbio, tmpbuf, 1024);
|
||||
if (len <= 0)
|
||||
break;
|
||||
@@ -277,9 +271,25 @@ a client and also echoes the request to standard output.
|
||||
BIO_flush(sbio);
|
||||
BIO_free_all(sbio);
|
||||
|
||||
=head1 BUGS
|
||||
=head1 RETURN VALUES
|
||||
|
||||
In OpenSSL versions before 1.0.0 the BIO_pop() call was handled incorrectly,
|
||||
BIO_f_ssl() returns the SSL B<BIO_METHOD> structure.
|
||||
|
||||
BIO_set_ssl(), BIO_get_ssl(), BIO_set_ssl_mode(), BIO_set_ssl_renegotiate_bytes(),
|
||||
BIO_set_ssl_renegotiate_timeout() and BIO_get_num_renegotiates() return 1 on
|
||||
success or a value which is less than or equal to 0 if an error occurred.
|
||||
|
||||
BIO_new_ssl(), BIO_new_ssl_connect() and BIO_new_buffer_ssl_connect() return
|
||||
a valid B<BIO> structure on success or B<NULL> if an error occurred.
|
||||
|
||||
BIO_ssl_copy_session_id() returns 1 on success or 0 on error.
|
||||
|
||||
BIO_do_handshake() returns 1 if the connection was established successfully.
|
||||
A zero or negative value is returned if the connection could not be established.
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
In OpenSSL before 1.0.0 the BIO_pop() call was handled incorrectly,
|
||||
the I/O BIO reference count was incorrectly incremented (instead of
|
||||
decremented) and dissociated with the SSL BIO even if the SSL BIO was not
|
||||
explicitly being popped (e.g. a pop higher up the chain). Applications which
|
||||
@@ -288,7 +298,7 @@ be modified to handle this fix or they may free up an already freed BIO.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -45,15 +45,16 @@ BIO_method_type() returns the type of the BIO B<b>.
|
||||
Traverse a chain looking for digest BIOs:
|
||||
|
||||
BIO *btmp;
|
||||
|
||||
btmp = in_bio; /* in_bio is chain to search through */
|
||||
|
||||
do {
|
||||
btmp = BIO_find_type(btmp, BIO_TYPE_MD);
|
||||
if (btmp == NULL) break; /* Not found */
|
||||
/* btmp is a digest BIO, do something with it ...*/
|
||||
...
|
||||
btmp = BIO_find_type(btmp, BIO_TYPE_MD);
|
||||
if (btmp == NULL)
|
||||
break; /* Not found */
|
||||
/* btmp is a digest BIO, do something with it ...*/
|
||||
...
|
||||
|
||||
btmp = BIO_next(btmp);
|
||||
btmp = BIO_next(btmp);
|
||||
} while (btmp);
|
||||
|
||||
|
||||
@@ -15,16 +15,16 @@ EC_KEY_get_ex_new_index, EC_KEY_set_ex_data, EC_KEY_get_ex_data,
|
||||
RSA_get_ex_new_index, RSA_set_ex_data, RSA_get_ex_data
|
||||
- application-specific data
|
||||
|
||||
=for comment generic
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
=for comment generic
|
||||
|
||||
#include <openssl/x509.h>
|
||||
|
||||
int TYPE_get_ex_new_index(long argl, void *argp,
|
||||
CRYPTO_EX_new *new_func,
|
||||
CRYPTO_EX_dup *dup_func,
|
||||
CRYPTO_EX_free *free_func);
|
||||
CRYPTO_EX_new *new_func,
|
||||
CRYPTO_EX_dup *dup_func,
|
||||
CRYPTO_EX_free *free_func);
|
||||
|
||||
int TYPE_set_ex_data(TYPE *d, int idx, void *arg);
|
||||
|
||||
@@ -45,16 +45,24 @@ with the correct B<index> value.
|
||||
TYPE_set_ex_data() is a function that calls CRYPTO_set_ex_data() with
|
||||
an offset into the opaque exdata part of the TYPE object.
|
||||
|
||||
TYPE_get_ex_data() is a function that calls CRYPTO_get_ex_data() with an
|
||||
TYPE_get_ex_data() is a function that calls CRYPTO_get_ex_data() with
|
||||
an offset into the opaque exdata part of the TYPE object.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
TYPE_get_new_ex_index() returns a new index on success or -1 on error.
|
||||
|
||||
TYPE_set_ex_data() returns 1 on success or 0 on error.
|
||||
|
||||
TYPE_get_ex_data() returns the application data or NULL if an error occurred.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<CRYPTO_get_ex_new_index(3)>.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -3,11 +3,12 @@
|
||||
=head1 NAME
|
||||
|
||||
BIO_get_new_index,
|
||||
BIO_meth_new, BIO_meth_free, BIO_meth_get_write, BIO_meth_set_write,
|
||||
BIO_meth_get_read, BIO_meth_set_read, BIO_meth_get_puts, BIO_meth_set_puts,
|
||||
BIO_meth_get_gets, BIO_meth_set_gets, BIO_meth_get_ctrl, BIO_meth_set_ctrl,
|
||||
BIO_meth_get_create, BIO_meth_set_create, BIO_meth_get_destroy,
|
||||
BIO_meth_set_destroy, BIO_meth_get_callback_ctrl,
|
||||
BIO_meth_new, BIO_meth_free, BIO_meth_get_read_ex, BIO_meth_set_read_ex,
|
||||
BIO_meth_get_write_ex, BIO_meth_set_write_ex, BIO_meth_get_write,
|
||||
BIO_meth_set_write, BIO_meth_get_read, BIO_meth_set_read, BIO_meth_get_puts,
|
||||
BIO_meth_set_puts, BIO_meth_get_gets, BIO_meth_set_gets, BIO_meth_get_ctrl,
|
||||
BIO_meth_set_ctrl, BIO_meth_get_create, BIO_meth_set_create,
|
||||
BIO_meth_get_destroy, BIO_meth_set_destroy, BIO_meth_get_callback_ctrl,
|
||||
BIO_meth_set_callback_ctrl - Routines to build up BIO methods
|
||||
|
||||
=head1 SYNOPSIS
|
||||
@@ -15,37 +16,50 @@ BIO_meth_set_callback_ctrl - Routines to build up BIO methods
|
||||
#include <openssl/bio.h>
|
||||
|
||||
int BIO_get_new_index(void);
|
||||
|
||||
BIO_METHOD *BIO_meth_new(int type, const char *name);
|
||||
|
||||
void BIO_meth_free(BIO_METHOD *biom);
|
||||
int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int);
|
||||
|
||||
int (*BIO_meth_get_write_ex(BIO_METHOD *biom))(BIO *, const char *, size_t,
|
||||
size_t *);
|
||||
int (*BIO_meth_get_write(BIO_METHOD *biom))(BIO *, const char *, int);
|
||||
int BIO_meth_set_write_ex(BIO_METHOD *biom,
|
||||
int (*bwrite)(BIO *, const char *, size_t, size_t *));
|
||||
int BIO_meth_set_write(BIO_METHOD *biom,
|
||||
int (*write) (BIO *, const char *, int));
|
||||
int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int);
|
||||
int BIO_meth_set_read(BIO_METHOD *biom,
|
||||
int (*read) (BIO *, char *, int));
|
||||
int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *);
|
||||
int BIO_meth_set_puts(BIO_METHOD *biom,
|
||||
int (*puts) (BIO *, const char *));
|
||||
int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int);
|
||||
int (*write)(BIO *, const char *, int));
|
||||
|
||||
int (*BIO_meth_get_read_ex(BIO_METHOD *biom))(BIO *, char *, size_t, size_t *);
|
||||
int (*BIO_meth_get_read(BIO_METHOD *biom))(BIO *, char *, int);
|
||||
int BIO_meth_set_read_ex(BIO_METHOD *biom,
|
||||
int (*bread)(BIO *, char *, size_t, size_t *));
|
||||
int BIO_meth_set_read(BIO_METHOD *biom, int (*read)(BIO *, char *, int));
|
||||
|
||||
int (*BIO_meth_get_puts(BIO_METHOD *biom))(BIO *, const char *);
|
||||
int BIO_meth_set_puts(BIO_METHOD *biom, int (*puts)(BIO *, const char *));
|
||||
|
||||
int (*BIO_meth_get_gets(BIO_METHOD *biom))(BIO *, char *, int);
|
||||
int BIO_meth_set_gets(BIO_METHOD *biom,
|
||||
int (*gets) (BIO *, char *, int));
|
||||
long (*BIO_meth_get_ctrl(BIO_METHOD *biom)) (BIO *, int, long, void *);
|
||||
int (*gets)(BIO *, char *, int));
|
||||
|
||||
long (*BIO_meth_get_ctrl(BIO_METHOD *biom))(BIO *, int, long, void *);
|
||||
int BIO_meth_set_ctrl(BIO_METHOD *biom,
|
||||
long (*ctrl) (BIO *, int, long, void *));
|
||||
int (*BIO_meth_get_create(BIO_METHOD *bion)) (BIO *);
|
||||
int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *));
|
||||
int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *);
|
||||
int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *));
|
||||
long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom))
|
||||
(BIO *, int, BIO_info_cb *);
|
||||
long (*ctrl)(BIO *, int, long, void *));
|
||||
|
||||
int (*BIO_meth_get_create(BIO_METHOD *bion))(BIO *);
|
||||
int BIO_meth_set_create(BIO_METHOD *biom, int (*create)(BIO *));
|
||||
|
||||
int (*BIO_meth_get_destroy(BIO_METHOD *biom))(BIO *);
|
||||
int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy)(BIO *));
|
||||
|
||||
long (*BIO_meth_get_callback_ctrl(BIO_METHOD *biom))(BIO *, int, BIO_info_cb *);
|
||||
int BIO_meth_set_callback_ctrl(BIO_METHOD *biom,
|
||||
long (*callback_ctrl) (BIO *, int,
|
||||
BIO_info_cb *));
|
||||
long (*callback_ctrl)(BIO *, int, BIO_info_cb *));
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
The B<BIO_METHOD> type is a structure used for the implementation of new BIO
|
||||
types. It provides a set of of functions used by OpenSSL for the implementation
|
||||
types. It provides a set of functions used by OpenSSL for the implementation
|
||||
of the various BIO capabilities. See the L<bio> page for more information.
|
||||
|
||||
BIO_meth_new() creates a new B<BIO_METHOD> structure. It should be given a
|
||||
@@ -64,15 +78,23 @@ more information.
|
||||
BIO_meth_free() destroys a B<BIO_METHOD> structure and frees up any memory
|
||||
associated with it.
|
||||
|
||||
BIO_meth_get_write() and BIO_meth_set_write() get and set the function used for
|
||||
writing arbitrary length data to the BIO respectively. This function will be
|
||||
called in response to the application calling BIO_write(). The parameters for
|
||||
the function have the same meaning as for BIO_write().
|
||||
BIO_meth_get_write_ex() and BIO_meth_set_write_ex() get and set the function
|
||||
used for writing arbitrary length data to the BIO respectively. This function
|
||||
will be called in response to the application calling BIO_write_ex() or
|
||||
BIO_write(). The parameters for the function have the same meaning as for
|
||||
BIO_write_ex(). Older code may call BIO_meth_get_write() and
|
||||
BIO_meth_set_write() instead. Applications should not call both
|
||||
BIO_meth_set_write_ex() and BIO_meth_set_write() or call BIO_meth_get_write()
|
||||
when the function was set with BIO_meth_set_write_ex().
|
||||
|
||||
BIO_meth_get_read() and BIO_meth_set_read() get and set the function used for
|
||||
reading arbitrary length data from the BIO respectively. This function will be
|
||||
called in response to the application calling BIO_read(). The parameters for the
|
||||
function have the same meaning as for BIO_read().
|
||||
BIO_meth_get_read_ex() and BIO_meth_set_read_ex() get and set the function used
|
||||
for reading arbitrary length data from the BIO respectively. This function will
|
||||
be called in response to the application calling BIO_read_ex() or BIO_read().
|
||||
The parameters for the function have the same meaning as for BIO_read_ex().
|
||||
Older code may call BIO_meth_get_read() and BIO_meth_set_read() instead.
|
||||
Applications should not call both BIO_meth_set_read_ex() and BIO_meth_set_read()
|
||||
or call BIO_meth_get_read() when the function was set with
|
||||
BIO_meth_set_read_ex().
|
||||
|
||||
BIO_meth_get_puts() and BIO_meth_set_puts() get and set the function used for
|
||||
writing a NULL terminated string to the BIO respectively. This function will be
|
||||
@@ -111,9 +133,20 @@ the L<BIO_callback_ctrl(3)> page for more information. This function will be cal
|
||||
in response to the application calling BIO_callback_ctrl(). The parameters for
|
||||
the function have the same meaning as for BIO_callback_ctrl().
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
BIO_get_new_index() returns the new BIO type value or -1 if an error occurred.
|
||||
|
||||
BIO_meth_new(int type, const char *name) returns a valid B<BIO_METHOD> or NULL
|
||||
if an error occurred.
|
||||
|
||||
The B<BIO_meth_set> functions return 1 on success or 0 on error.
|
||||
|
||||
The B<BIO_meth_get> functions return the corresponding function pointers.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<bio>, L<BIO_find_type>, L<BIO_ctrl>, L<BIO_read>, L<BIO_new>
|
||||
L<bio>, L<BIO_find_type>, L<BIO_ctrl>, L<BIO_read_ex>, L<BIO_new>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
@@ -121,7 +154,7 @@ The functions described here were added in OpenSSL 1.1.0.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -2,15 +2,14 @@
|
||||
|
||||
=head1 NAME
|
||||
|
||||
BIO_new, BIO_up_ref, BIO_free, BIO_vfree, BIO_free_all,
|
||||
BIO_set - BIO allocation and freeing functions
|
||||
BIO_new, BIO_up_ref, BIO_free, BIO_vfree, BIO_free_all
|
||||
- BIO allocation and freeing functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
BIO * BIO_new(const BIO_METHOD *type);
|
||||
int BIO_set(BIO *a, const BIO_METHOD *type);
|
||||
int BIO_up_ref(BIO *a);
|
||||
int BIO_free(BIO *a);
|
||||
void BIO_vfree(BIO *a);
|
||||
@@ -38,7 +37,7 @@ If B<a> is NULL nothing is done.
|
||||
|
||||
BIO_new() returns a newly created BIO or NULL if the call fails.
|
||||
|
||||
BIO_set(), BIO_up_ref() and BIO_free() return 1 for success and 0 for failure.
|
||||
BIO_up_ref() and BIO_free() return 1 for success and 0 for failure.
|
||||
|
||||
BIO_free_all() and BIO_vfree() do not return values.
|
||||
|
||||
@@ -58,13 +58,17 @@ and B<hostserv_prio>, as follows:
|
||||
when hostserv_prio == BIO_PARSE_PRIO_SERV
|
||||
service => *host untouched, *service = "service"
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
BIO_parse_hostserv() returns 1 on success or 0 on error.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<BIO_ADDRINFO(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved.
|
||||
|
||||
Licensed under the OpenSSL license (the "License"). You may not use
|
||||
this file except in compliance with the License. You can obtain a copy
|
||||
@@ -2,28 +2,40 @@
|
||||
|
||||
=head1 NAME
|
||||
|
||||
BIO_read, BIO_write, BIO_gets, BIO_puts - BIO I/O functions
|
||||
BIO_read_ex, BIO_write_ex, BIO_read, BIO_write, BIO_gets, BIO_puts
|
||||
- BIO I/O functions
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
#include <openssl/bio.h>
|
||||
|
||||
int BIO_read(BIO *b, void *buf, int len);
|
||||
int BIO_gets(BIO *b, char *buf, int size);
|
||||
int BIO_write(BIO *b, const void *buf, int len);
|
||||
int BIO_puts(BIO *b, const char *buf);
|
||||
int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes);
|
||||
int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written);
|
||||
|
||||
int BIO_read(BIO *b, void *data, int dlen);
|
||||
int BIO_gets(BIO *b, char *buf, int size);
|
||||
int BIO_write(BIO *b, const void *data, int dlen);
|
||||
int BIO_puts(BIO *b, const char *buf);
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
BIO_read_ex() attempts to read B<dlen> bytes from BIO B<b> and places the data
|
||||
in B<data>. If any bytes were successfully read then the number of bytes read is
|
||||
stored in B<*readbytes>.
|
||||
|
||||
BIO_write_ex() attempts to write B<dlen> bytes from B<data> to BIO B<b>. If
|
||||
successful then the number of bytes written is stored in B<*written>.
|
||||
|
||||
BIO_read() attempts to read B<len> bytes from BIO B<b> and places
|
||||
the data in B<buf>.
|
||||
|
||||
BIO_gets() performs the BIOs "gets" operation and places the data
|
||||
in B<buf>. Usually this operation will attempt to read a line of data
|
||||
from the BIO of maximum length B<len-1>. There are exceptions to this,
|
||||
from the BIO of maximum length B<size-1>. There are exceptions to this,
|
||||
however; for example, BIO_gets() on a digest BIO will calculate and
|
||||
return the digest and other BIOs may not support BIO_gets() at all.
|
||||
The returned string is always NUL-terminated.
|
||||
The returned string is always NUL-terminated and the '\n' is preserved
|
||||
if present in the input data.
|
||||
|
||||
BIO_write() attempts to write B<len> bytes from B<buf> to BIO B<b>.
|
||||
|
||||
@@ -31,7 +43,10 @@ BIO_puts() attempts to write a NUL-terminated string B<buf> to BIO B<b>.
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
All these functions return either the amount of data successfully read or
|
||||
BIO_read_ex() and BIO_write_ex() return 1 if data was successfully read or
|
||||
written, and 0 otherwise.
|
||||
|
||||
All other functions return either the amount of data successfully read or
|
||||
written (if the return value is positive) or that no data was successfully
|
||||
read or written if the result is 0 or -1. If the return value is -2 then
|
||||
the operation is not implemented in the specific BIO type. The trailing
|
||||
@@ -65,6 +80,11 @@ to the chain.
|
||||
|
||||
L<BIO_should_retry(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
BIO_gets() on 1.1.0 and older when called on BIO_fd() based BIO does not
|
||||
keep the '\n' at the end of the line in the buffer.
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
|
||||
@@ -17,7 +17,6 @@ BIO_ctrl_get_read_request, BIO_ctrl_reset_read_request - BIO pair BIO
|
||||
int BIO_destroy_bio_pair(BIO *b);
|
||||
int BIO_shutdown_wr(BIO *b);
|
||||
|
||||
|
||||
int BIO_set_write_buf_size(BIO *b, long size);
|
||||
size_t BIO_get_write_buf_size(BIO *b, long size);
|
||||
|
||||
@@ -44,10 +43,10 @@ One typical use of BIO pairs is to place TLS/SSL I/O under application control,
|
||||
can be used when the application wishes to use a non standard transport for
|
||||
TLS/SSL or the normal socket routines are inappropriate.
|
||||
|
||||
Calls to BIO_read() will read data from the buffer or request a retry if no
|
||||
Calls to BIO_read_ex() will read data from the buffer or request a retry if no
|
||||
data is available.
|
||||
|
||||
Calls to BIO_write() will place data in the buffer or request a retry if the
|
||||
Calls to BIO_write_ex() will place data in the buffer or request a retry if the
|
||||
buffer is full.
|
||||
|
||||
The standard calls BIO_ctrl_pending() and BIO_ctrl_wpending() can be used to
|
||||
@@ -80,9 +79,9 @@ BIO_free() is not called.
|
||||
|
||||
BIO_get_write_guarantee() and BIO_ctrl_get_write_guarantee() return the maximum
|
||||
length of data that can be currently written to the BIO. Writes larger than this
|
||||
value will return a value from BIO_write() less than the amount requested or if the
|
||||
buffer is full request a retry. BIO_ctrl_get_write_guarantee() is a function
|
||||
whereas BIO_get_write_guarantee() is a macro.
|
||||
value will return a value from BIO_write_ex() less than the amount requested or
|
||||
if the buffer is full request a retry. BIO_ctrl_get_write_guarantee() is a
|
||||
function whereas BIO_get_write_guarantee() is a macro.
|
||||
|
||||
BIO_get_read_request() and BIO_ctrl_get_read_request() return the
|
||||
amount of data requested, or the buffer size if it is less, if the
|
||||
@@ -111,12 +110,12 @@ it to the underlying transport. This must be done before any normal processing
|
||||
(such as calling select() ) due to a request and BIO_should_read() being true.
|
||||
|
||||
To see why this is important consider a case where a request is sent using
|
||||
BIO_write() and a response read with BIO_read(), this can occur during an
|
||||
TLS/SSL handshake for example. BIO_write() will succeed and place data in the write
|
||||
buffer. BIO_read() will initially fail and BIO_should_read() will be true. If
|
||||
the application then waits for data to be available on the underlying transport
|
||||
before flushing the write buffer it will never succeed because the request was
|
||||
never sent!
|
||||
BIO_write_ex() and a response read with BIO_read_ex(), this can occur during an
|
||||
TLS/SSL handshake for example. BIO_write_ex() will succeed and place data in the
|
||||
write buffer. BIO_read_ex() will initially fail and BIO_should_read() will be
|
||||
true. If the application then waits for data to be available on the underlying
|
||||
transport before flushing the write buffer it will never succeed because the
|
||||
request was never sent!
|
||||
|
||||
BIO_eof() is true if no data is in the peer BIO and the peer BIO has been
|
||||
shutdown.
|
||||
@@ -141,10 +140,11 @@ application. The application can call select() on the socket as required
|
||||
without having to go through the SSL-interface.
|
||||
|
||||
BIO *internal_bio, *network_bio;
|
||||
|
||||
...
|
||||
BIO_new_bio_pair(&internal_bio, 0, &network_bio, 0);
|
||||
SSL_set_bio(ssl, internal_bio, internal_bio);
|
||||
SSL_operations(); //e.g SSL_read and SSL_write
|
||||
SSL_operations(); /* e.g SSL_read and SSL_write */
|
||||
...
|
||||
|
||||
application | TLS-engine
|
||||
@@ -186,8 +186,8 @@ the peer might be waiting for the data before being able to continue.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<SSL_set_bio(3)>, L<ssl(3)>, L<bio(3)>,
|
||||
L<BIO_should_retry(3)>, L<BIO_read(3)>
|
||||
L<SSL_set_bio(3)>, L<ssl(7)>, L<bio(7)>,
|
||||
L<BIO_should_retry(3)>, L<BIO_read_ex(3)>
|
||||
|
||||
=head1 COPYRIGHT
|
||||
|
||||
@@ -174,7 +174,7 @@ to retrieve a page and copy the result to standard output.
|
||||
exit(1);
|
||||
}
|
||||
BIO_puts(cbio, "GET / HTTP/1.0\n\n");
|
||||
for ( ; ; ) {
|
||||
for (;;) {
|
||||
len = BIO_read(cbio, tmpbuf, 1024);
|
||||
if (len <= 0)
|
||||
break;
|
||||
@@ -20,7 +20,7 @@ BIO_s_fd, BIO_set_fd, BIO_get_fd, BIO_new_fd - file descriptor BIO
|
||||
BIO_s_fd() returns the file descriptor BIO method. This is a wrapper
|
||||
round the platforms file descriptor routines such as read() and write().
|
||||
|
||||
BIO_read() and BIO_write() read or write the underlying descriptor.
|
||||
BIO_read_ex() and BIO_write_ex() read or write the underlying descriptor.
|
||||
BIO_puts() is supported but BIO_gets() is not.
|
||||
|
||||
If the close flag is set then close() is called on the underlying
|
||||
@@ -45,10 +45,10 @@ BIO_new_fd() returns a file descriptor BIO using B<fd> and B<close_flag>.
|
||||
|
||||
=head1 NOTES
|
||||
|
||||
The behaviour of BIO_read() and BIO_write() depends on the behavior of the
|
||||
The behaviour of BIO_read_ex() and BIO_write_ex() depends on the behavior of the
|
||||
platforms read() and write() calls on the descriptor. If the underlying
|
||||
file descriptor is in a non blocking mode then the BIO will behave in the
|
||||
manner described in the L<BIO_read(3)> and L<BIO_should_retry(3)>
|
||||
manner described in the L<BIO_read_ex(3)> and L<BIO_should_retry(3)>
|
||||
manual pages.
|
||||
|
||||
File descriptor BIOs should not be used for socket I/O. Use socket BIOs
|
||||
@@ -81,8 +81,8 @@ This is a file descriptor BIO version of "Hello World":
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<BIO_seek(3)>, L<BIO_tell(3)>,
|
||||
L<BIO_reset(3)>, L<BIO_read(3)>,
|
||||
L<BIO_write(3)>, L<BIO_puts(3)>,
|
||||
L<BIO_reset(3)>, L<BIO_read_ex(3)>,
|
||||
L<BIO_write_ex(3)>, L<BIO_puts(3)>,
|
||||
L<BIO_gets(3)>, L<BIO_printf(3)>,
|
||||
L<BIO_set_close(3)>, L<BIO_get_close(3)>
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user