minor upstream release 1.0.2c fixing multiple security issues
This commit is contained in:
parent
18455c91c0
commit
837dd04882
1
.gitignore
vendored
1
.gitignore
vendored
@ -23,3 +23,4 @@ openssl-1.0.0a-usa.tar.bz2
|
||||
/openssl-1.0.1j-hobbled.tar.xz
|
||||
/openssl-1.0.1k-hobbled.tar.xz
|
||||
/openssl-1.0.2a-hobbled.tar.xz
|
||||
/openssl-1.0.2c-hobbled.tar.xz
|
||||
|
8
ectest.c
8
ectest.c
@ -386,7 +386,7 @@ static void prime_field_tests(void)
|
||||
ABORT;
|
||||
if (!EC_POINT_set_compressed_coordinates_GFp(group, P, x, 1, ctx))
|
||||
ABORT;
|
||||
if (!EC_POINT_is_on_curve(group, P, ctx))
|
||||
if (EC_POINT_is_on_curve(group, P, ctx) <= 0)
|
||||
ABORT;
|
||||
if (!BN_hex2bn(&z, "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E"
|
||||
"84F3B9CAC2FC632551"))
|
||||
@ -442,7 +442,7 @@ static void prime_field_tests(void)
|
||||
ABORT;
|
||||
if (!EC_POINT_set_compressed_coordinates_GFp(group, P, x, 1, ctx))
|
||||
ABORT;
|
||||
if (!EC_POINT_is_on_curve(group, P, ctx))
|
||||
if (EC_POINT_is_on_curve(group, P, ctx) <= 0)
|
||||
ABORT;
|
||||
if (!BN_hex2bn(&z, "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFC7634D81F4372DDF581A0DB248B0A77AECEC196ACCC52973"))
|
||||
@ -501,7 +501,7 @@ static void prime_field_tests(void)
|
||||
ABORT;
|
||||
if (!EC_POINT_set_compressed_coordinates_GFp(group, P, x, 0, ctx))
|
||||
ABORT;
|
||||
if (!EC_POINT_is_on_curve(group, P, ctx))
|
||||
if (EC_POINT_is_on_curve(group, P, ctx) <= 0)
|
||||
ABORT;
|
||||
if (!BN_hex2bn(&z, "1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
|
||||
"FFFFFFFFFFFFFFFFFFFFA51868783BF2F966B7FCC0148F709A5D03BB5"
|
||||
@ -545,7 +545,7 @@ static void prime_field_tests(void)
|
||||
ABORT;
|
||||
if (!EC_POINT_dbl(group, P, P, ctx))
|
||||
ABORT;
|
||||
if (!EC_POINT_is_on_curve(group, P, ctx))
|
||||
if (EC_POINT_is_on_curve(group, P, ctx) <= 0)
|
||||
ABORT;
|
||||
if (!EC_POINT_invert(group, Q, ctx))
|
||||
ABORT; /* P = -2Q */
|
||||
|
@ -1,527 +0,0 @@
|
||||
diff -up openssl-1.0.2a/apps/apps.c.alt-chains openssl-1.0.2a/apps/apps.c
|
||||
--- openssl-1.0.2a/apps/apps.c.alt-chains 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/apps/apps.c 2015-04-28 16:49:50.124558770 +0200
|
||||
@@ -2371,6 +2371,8 @@ int args_verify(char ***pargs, int *parg
|
||||
flags |= X509_V_FLAG_SUITEB_192_LOS;
|
||||
else if (!strcmp(arg, "-partial_chain"))
|
||||
flags |= X509_V_FLAG_PARTIAL_CHAIN;
|
||||
+ else if (!strcmp(arg, "-no_alt_chains"))
|
||||
+ flags |= X509_V_FLAG_NO_ALT_CHAINS;
|
||||
else
|
||||
return 0;
|
||||
|
||||
diff -up openssl-1.0.2a/apps/cms.c.alt-chains openssl-1.0.2a/apps/cms.c
|
||||
--- openssl-1.0.2a/apps/cms.c.alt-chains 2015-04-23 10:22:56.225685251 +0200
|
||||
+++ openssl-1.0.2a/apps/cms.c 2015-04-28 16:49:50.125558793 +0200
|
||||
@@ -648,6 +648,8 @@ int MAIN(int argc, char **argv)
|
||||
BIO_printf(bio_err,
|
||||
"-trusted_first use trusted certificates first when building the trust chain\n");
|
||||
BIO_printf(bio_err,
|
||||
+ "-no_alt_chains only ever use the first certificate chain found\n");
|
||||
+ BIO_printf(bio_err,
|
||||
"-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||
BIO_printf(bio_err,
|
||||
"-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
||||
diff -up openssl-1.0.2a/apps/ocsp.c.alt-chains openssl-1.0.2a/apps/ocsp.c
|
||||
--- openssl-1.0.2a/apps/ocsp.c.alt-chains 2015-04-23 10:22:56.225685251 +0200
|
||||
+++ openssl-1.0.2a/apps/ocsp.c 2015-04-28 16:49:50.125558793 +0200
|
||||
@@ -538,6 +538,8 @@ int MAIN(int argc, char **argv)
|
||||
BIO_printf(bio_err,
|
||||
"-trusted_first use trusted certificates first when building the trust chain\n");
|
||||
BIO_printf(bio_err,
|
||||
+ "-no_alt_chains only ever use the first certificate chain found\n");
|
||||
+ BIO_printf(bio_err,
|
||||
"-VAfile file validator certificates file\n");
|
||||
BIO_printf(bio_err,
|
||||
"-validity_period n maximum validity discrepancy in seconds\n");
|
||||
diff -up openssl-1.0.2a/apps/s_client.c.alt-chains openssl-1.0.2a/apps/s_client.c
|
||||
--- openssl-1.0.2a/apps/s_client.c.alt-chains 2015-04-23 10:22:56.225685251 +0200
|
||||
+++ openssl-1.0.2a/apps/s_client.c 2015-04-28 16:49:50.126558815 +0200
|
||||
@@ -335,6 +335,8 @@ static void sc_usage(void)
|
||||
BIO_printf(bio_err,
|
||||
" -trusted_first - Use trusted CA's first when building the trust chain\n");
|
||||
BIO_printf(bio_err,
|
||||
+ " -no_alt_chains - only ever use the first certificate chain found\n");
|
||||
+ BIO_printf(bio_err,
|
||||
" -reconnect - Drop and re-make the connection with the same Session-ID\n");
|
||||
BIO_printf(bio_err,
|
||||
" -pause - sleep(1) after each read(2) and write(2) system call\n");
|
||||
diff -up openssl-1.0.2a/apps/smime.c.alt-chains openssl-1.0.2a/apps/smime.c
|
||||
--- openssl-1.0.2a/apps/smime.c.alt-chains 2015-04-23 10:22:56.226685277 +0200
|
||||
+++ openssl-1.0.2a/apps/smime.c 2015-04-28 16:49:50.128558861 +0200
|
||||
@@ -444,6 +444,8 @@ int MAIN(int argc, char **argv)
|
||||
BIO_printf(bio_err,
|
||||
"-trusted_first use trusted certificates first when building the trust chain\n");
|
||||
BIO_printf(bio_err,
|
||||
+ "-no_alt_chains only ever use the first certificate chain found\n");
|
||||
+ BIO_printf(bio_err,
|
||||
"-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||
BIO_printf(bio_err,
|
||||
"-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
||||
diff -up openssl-1.0.2a/apps/s_server.c.alt-chains openssl-1.0.2a/apps/s_server.c
|
||||
--- openssl-1.0.2a/apps/s_server.c.alt-chains 2015-04-23 10:22:56.226685277 +0200
|
||||
+++ openssl-1.0.2a/apps/s_server.c 2015-04-28 16:49:50.128558861 +0200
|
||||
@@ -571,6 +571,8 @@ static void sv_usage(void)
|
||||
BIO_printf(bio_err,
|
||||
" -trusted_first - Use trusted CA's first when building the trust chain\n");
|
||||
BIO_printf(bio_err,
|
||||
+ " -no_alt_chains - only ever use the first certificate chain found\n");
|
||||
+ BIO_printf(bio_err,
|
||||
" -nocert - Don't use any certificates (Anon-DH)\n");
|
||||
BIO_printf(bio_err,
|
||||
" -cipher arg - play with 'openssl ciphers' to see what goes here\n");
|
||||
diff -up openssl-1.0.2a/apps/verify.c.alt-chains openssl-1.0.2a/apps/verify.c
|
||||
--- openssl-1.0.2a/apps/verify.c.alt-chains 2015-04-28 16:49:50.128558861 +0200
|
||||
+++ openssl-1.0.2a/apps/verify.c 2015-04-28 16:50:52.210974346 +0200
|
||||
@@ -232,7 +232,7 @@ int MAIN(int argc, char **argv)
|
||||
if (ret == 1) {
|
||||
BIO_printf(bio_err,
|
||||
"usage: verify [-verbose] [-CApath path] [-CAfile file] [-trusted_first] [-purpose purpose] [-crl_check]");
|
||||
- BIO_printf(bio_err, " [-attime timestamp]");
|
||||
+ BIO_printf(bio_err, " [-no_alt_chains] [-attime timestamp]");
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
BIO_printf(bio_err, " [-engine e]");
|
||||
#endif
|
||||
diff -up openssl-1.0.2a/crypto/x509/x509_vfy.c.alt-chains openssl-1.0.2a/crypto/x509/x509_vfy.c
|
||||
--- openssl-1.0.2a/crypto/x509/x509_vfy.c.alt-chains 2015-04-23 10:22:56.188684277 +0200
|
||||
+++ openssl-1.0.2a/crypto/x509/x509_vfy.c 2015-04-28 17:03:40.478786778 +0200
|
||||
@@ -189,11 +189,11 @@ static X509 *lookup_cert_match(X509_STOR
|
||||
|
||||
int X509_verify_cert(X509_STORE_CTX *ctx)
|
||||
{
|
||||
- X509 *x, *xtmp, *chain_ss = NULL;
|
||||
+ X509 *x, *xtmp, *xtmp2, *chain_ss = NULL;
|
||||
int bad_chain = 0;
|
||||
X509_VERIFY_PARAM *param = ctx->param;
|
||||
int depth, i, ok = 0;
|
||||
- int num;
|
||||
+ int num, j, retry;
|
||||
int (*cb) (int xok, X509_STORE_CTX *xctx);
|
||||
STACK_OF(X509) *sktmp = NULL;
|
||||
if (ctx->cert == NULL) {
|
||||
@@ -278,91 +278,136 @@ int X509_verify_cert(X509_STORE_CTX *ctx
|
||||
break;
|
||||
}
|
||||
|
||||
+ /* Remember how many untrusted certs we have */
|
||||
+ j = num;
|
||||
/*
|
||||
* at this point, chain should contain a list of untrusted certificates.
|
||||
* We now need to add at least one trusted one, if possible, otherwise we
|
||||
* complain.
|
||||
*/
|
||||
|
||||
- /*
|
||||
- * Examine last certificate in chain and see if it is self signed.
|
||||
- */
|
||||
-
|
||||
- i = sk_X509_num(ctx->chain);
|
||||
- x = sk_X509_value(ctx->chain, i - 1);
|
||||
- if (cert_self_signed(x)) {
|
||||
- /* we have a self signed certificate */
|
||||
- if (sk_X509_num(ctx->chain) == 1) {
|
||||
- /*
|
||||
- * We have a single self signed certificate: see if we can find
|
||||
- * it in the store. We must have an exact match to avoid possible
|
||||
- * impersonation.
|
||||
- */
|
||||
- ok = ctx->get_issuer(&xtmp, ctx, x);
|
||||
- if ((ok <= 0) || X509_cmp(x, xtmp)) {
|
||||
- ctx->error = X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT;
|
||||
- ctx->current_cert = x;
|
||||
- ctx->error_depth = i - 1;
|
||||
- if (ok == 1)
|
||||
- X509_free(xtmp);
|
||||
- bad_chain = 1;
|
||||
- ok = cb(0, ctx);
|
||||
- if (!ok)
|
||||
- goto end;
|
||||
+ do {
|
||||
+ /*
|
||||
+ * Examine last certificate in chain and see if it is self signed.
|
||||
+ */
|
||||
+ i = sk_X509_num(ctx->chain);
|
||||
+ x = sk_X509_value(ctx->chain, i - 1);
|
||||
+ if (cert_self_signed(x)) {
|
||||
+ /* we have a self signed certificate */
|
||||
+ if (sk_X509_num(ctx->chain) == 1) {
|
||||
+ /*
|
||||
+ * We have a single self signed certificate: see if we can
|
||||
+ * find it in the store. We must have an exact match to avoid
|
||||
+ * possible impersonation.
|
||||
+ */
|
||||
+ ok = ctx->get_issuer(&xtmp, ctx, x);
|
||||
+ if ((ok <= 0) || X509_cmp(x, xtmp)) {
|
||||
+ ctx->error = X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT;
|
||||
+ ctx->current_cert = x;
|
||||
+ ctx->error_depth = i - 1;
|
||||
+ if (ok == 1)
|
||||
+ X509_free(xtmp);
|
||||
+ bad_chain = 1;
|
||||
+ ok = cb(0, ctx);
|
||||
+ if (!ok)
|
||||
+ goto end;
|
||||
+ } else {
|
||||
+ /*
|
||||
+ * We have a match: replace certificate with store
|
||||
+ * version so we get any trust settings.
|
||||
+ */
|
||||
+ X509_free(x);
|
||||
+ x = xtmp;
|
||||
+ (void)sk_X509_set(ctx->chain, i - 1, x);
|
||||
+ ctx->last_untrusted = 0;
|
||||
+ }
|
||||
} else {
|
||||
/*
|
||||
- * We have a match: replace certificate with store version so
|
||||
- * we get any trust settings.
|
||||
+ * extract and save self signed certificate for later use
|
||||
*/
|
||||
- X509_free(x);
|
||||
- x = xtmp;
|
||||
- (void)sk_X509_set(ctx->chain, i - 1, x);
|
||||
- ctx->last_untrusted = 0;
|
||||
+ chain_ss = sk_X509_pop(ctx->chain);
|
||||
+ ctx->last_untrusted--;
|
||||
+ num--;
|
||||
+ j--;
|
||||
+ x = sk_X509_value(ctx->chain, num - 1);
|
||||
}
|
||||
- } else {
|
||||
- /*
|
||||
- * extract and save self signed certificate for later use
|
||||
- */
|
||||
- chain_ss = sk_X509_pop(ctx->chain);
|
||||
- ctx->last_untrusted--;
|
||||
- num--;
|
||||
- x = sk_X509_value(ctx->chain, num - 1);
|
||||
}
|
||||
- }
|
||||
-
|
||||
- /* We now lookup certs from the certificate store */
|
||||
- for (;;) {
|
||||
- /* If we have enough, we break */
|
||||
- if (depth < num)
|
||||
- break;
|
||||
+ /* We now lookup certs from the certificate store */
|
||||
+ for (;;) {
|
||||
+ /* If we have enough, we break */
|
||||
+ if (depth < num)
|
||||
+ break;
|
||||
+ /* If we are self signed, we break */
|
||||
+ if (cert_self_signed(x))
|
||||
+ break;
|
||||
+ ok = ctx->get_issuer(&xtmp, ctx, x);
|
||||
|
||||
- /* If we are self signed, we break */
|
||||
- if (cert_self_signed(x))
|
||||
- break;
|
||||
+ if (ok < 0)
|
||||
+ return ok;
|
||||
+ if (ok == 0)
|
||||
+ break;
|
||||
+ x = xtmp;
|
||||
+ if (!sk_X509_push(ctx->chain, x)) {
|
||||
+ X509_free(xtmp);
|
||||
+ X509err(X509_F_X509_VERIFY_CERT, ERR_R_MALLOC_FAILURE);
|
||||
+ return 0;
|
||||
+ }
|
||||
+ num++;
|
||||
+ }
|
||||
|
||||
- ok = ctx->get_issuer(&xtmp, ctx, x);
|
||||
+ /* we now have our chain, lets check it... */
|
||||
+ i = check_trust(ctx);
|
||||
|
||||
- if (ok < 0)
|
||||
- return ok;
|
||||
- if (ok == 0)
|
||||
- break;
|
||||
+ /* If explicitly rejected error */
|
||||
+ if (i == X509_TRUST_REJECTED)
|
||||
+ goto end;
|
||||
+ /*
|
||||
+ * If it's not explicitly trusted then check if there is an alternative
|
||||
+ * chain that could be used. We only do this if we haven't already
|
||||
+ * checked via TRUSTED_FIRST and the user hasn't switched off alternate
|
||||
+ * chain checking
|
||||
+ */
|
||||
+ retry = 0;
|
||||
+ if (i != X509_TRUST_TRUSTED
|
||||
+ && !(ctx->param->flags & X509_V_FLAG_TRUSTED_FIRST)
|
||||
+ && !(ctx->param->flags & X509_V_FLAG_NO_ALT_CHAINS)) {
|
||||
+ while (j-- > 1) {
|
||||
+ STACK_OF(X509) *chtmp = ctx->chain;
|
||||
+ xtmp2 = sk_X509_value(ctx->chain, j - 1);
|
||||
+ /*
|
||||
+ * Temporarily set chain to NULL so we don't discount
|
||||
+ * duplicates: the same certificate could be an untrusted
|
||||
+ * CA found in the trusted store.
|
||||
+ */
|
||||
+ ctx->chain = NULL;
|
||||
+ ok = ctx->get_issuer(&xtmp, ctx, xtmp2);
|
||||
+ ctx->chain = chtmp;
|
||||
+ if (ok < 0)
|
||||
+ goto end;
|
||||
+ /* Check if we found an alternate chain */
|
||||
+ if (ok > 0) {
|
||||
+ /*
|
||||
+ * Free up the found cert we'll add it again later
|
||||
+ */
|
||||
+ X509_free(xtmp);
|
||||
|
||||
- x = xtmp;
|
||||
- if (!sk_X509_push(ctx->chain, x)) {
|
||||
- X509_free(xtmp);
|
||||
- X509err(X509_F_X509_VERIFY_CERT, ERR_R_MALLOC_FAILURE);
|
||||
- return 0;
|
||||
+ /*
|
||||
+ * Dump all the certs above this point - we've found an
|
||||
+ * alternate chain
|
||||
+ */
|
||||
+ while (num > j) {
|
||||
+ xtmp = sk_X509_pop(ctx->chain);
|
||||
+ X509_free(xtmp);
|
||||
+ num--;
|
||||
+ ctx->last_untrusted--;
|
||||
+ }
|
||||
+ retry = 1;
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
- num++;
|
||||
- }
|
||||
+ } while (retry);
|
||||
|
||||
- /* we now have our chain, lets check it... */
|
||||
-
|
||||
- i = check_trust(ctx);
|
||||
-
|
||||
- /* If explicitly rejected error */
|
||||
- if (i == X509_TRUST_REJECTED)
|
||||
- goto end;
|
||||
/*
|
||||
* If not explicitly trusted then indicate error unless it's a single
|
||||
* self signed certificate in which case we've indicated an error already
|
||||
diff -up openssl-1.0.2a/crypto/x509/x509_vfy.h.alt-chains openssl-1.0.2a/crypto/x509/x509_vfy.h
|
||||
--- openssl-1.0.2a/crypto/x509/x509_vfy.h.alt-chains 2015-04-23 10:22:56.016679751 +0200
|
||||
+++ openssl-1.0.2a/crypto/x509/x509_vfy.h 2015-04-28 16:49:18.551838908 +0200
|
||||
@@ -432,6 +432,12 @@ void X509_STORE_CTX_set_depth(X509_STORE
|
||||
|
||||
/* Allow partial chains if at least one certificate is in trusted store */
|
||||
# define X509_V_FLAG_PARTIAL_CHAIN 0x80000
|
||||
+/*
|
||||
+ * If the initial chain is not trusted, do not attempt to build an alternative
|
||||
+ * chain. Alternate chain checking was introduced in 1.0.2b. Setting this flag
|
||||
+ * will force the behaviour to match that of previous versions.
|
||||
+ */
|
||||
+# define X509_V_FLAG_NO_ALT_CHAINS 0x100000
|
||||
|
||||
# define X509_VP_FLAG_DEFAULT 0x1
|
||||
# define X509_VP_FLAG_OVERWRITE 0x2
|
||||
diff -up openssl-1.0.2a/doc/apps/cms.pod.alt-chains openssl-1.0.2a/doc/apps/cms.pod
|
||||
--- openssl-1.0.2a/doc/apps/cms.pod.alt-chains 2015-04-23 10:22:56.227685303 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/cms.pod 2015-04-28 16:54:17.537682406 +0200
|
||||
@@ -36,6 +36,7 @@ B<openssl> B<cms>
|
||||
[B<-CAfile file>]
|
||||
[B<-CApath dir>]
|
||||
[B<-trusted_first>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-md digest>]
|
||||
[B<-[cipher]>]
|
||||
[B<-nointern>]
|
||||
@@ -426,7 +427,7 @@ portion of a message so they may be incl
|
||||
then many S/MIME mail clients check the signers certificate's email
|
||||
address matches that specified in the From: address.
|
||||
|
||||
-=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig>
|
||||
+=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains>
|
||||
|
||||
Set various certificate chain valiadition option. See the
|
||||
L<B<verify>|verify(1)> manual page for details.
|
||||
@@ -662,4 +663,6 @@ Support for RSA-OAEP and RSA-PSS was fir
|
||||
The use of non-RSA keys with B<-encrypt> and B<-decrypt> was first added
|
||||
to OpenSSL 1.1.0.
|
||||
|
||||
+The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
+
|
||||
=cut
|
||||
diff -up openssl-1.0.2a/doc/apps/ocsp.pod.alt-chains openssl-1.0.2a/doc/apps/ocsp.pod
|
||||
--- openssl-1.0.2a/doc/apps/ocsp.pod.alt-chains 2015-04-23 10:22:56.227685303 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/ocsp.pod 2015-04-28 16:53:44.564914852 +0200
|
||||
@@ -30,6 +30,7 @@ B<openssl> B<ocsp>
|
||||
[B<-CApath dir>]
|
||||
[B<-CAfile file>]
|
||||
[B<-trusted_first>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-VAfile file>]
|
||||
[B<-validity_period n>]
|
||||
[B<-status_age n>]
|
||||
@@ -151,6 +152,10 @@ in the response or residing in other cer
|
||||
chain to verify responder certificate.
|
||||
This is mainly useful in environments with Bridge CA or Cross-Certified CAs.
|
||||
|
||||
+=item B<-no_alt_chains>
|
||||
+
|
||||
+See L<B<verify>|verify(1)> manual page for details.
|
||||
+
|
||||
=item B<-verify_other file>
|
||||
|
||||
file containing additional certificates to search when attempting to locate
|
||||
@@ -388,3 +393,9 @@ second file.
|
||||
|
||||
openssl ocsp -index demoCA/index.txt -rsigner rcert.pem -CA demoCA/cacert.pem
|
||||
-reqin req.der -respout resp.der
|
||||
+
|
||||
+=head1 HISTORY
|
||||
+
|
||||
+The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
+
|
||||
+=cut
|
||||
diff -up openssl-1.0.2a/doc/apps/s_client.pod.alt-chains openssl-1.0.2a/doc/apps/s_client.pod
|
||||
--- openssl-1.0.2a/doc/apps/s_client.pod.alt-chains 2015-04-23 10:22:56.227685303 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/s_client.pod 2015-04-28 16:55:24.812248450 +0200
|
||||
@@ -20,6 +20,7 @@ B<openssl> B<s_client>
|
||||
[B<-CApath directory>]
|
||||
[B<-CAfile filename>]
|
||||
[B<-trusted_first>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-reconnect>]
|
||||
[B<-pause>]
|
||||
[B<-showcerts>]
|
||||
@@ -124,7 +125,7 @@ also used when building the client certi
|
||||
A file containing trusted certificates to use during server authentication
|
||||
and to use when attempting to build the client certificate chain.
|
||||
|
||||
-=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig, -trusted_first>
|
||||
+=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig, -trusted_first -no_alt_chains>
|
||||
|
||||
Set various certificate chain valiadition option. See the
|
||||
L<B<verify>|verify(1)> manual page for details.
|
||||
@@ -365,4 +366,8 @@ information whenever a session is renego
|
||||
|
||||
L<sess_id(1)|sess_id(1)>, L<s_server(1)|s_server(1)>, L<ciphers(1)|ciphers(1)>
|
||||
|
||||
+=head1 HISTORY
|
||||
+
|
||||
+The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
+
|
||||
=cut
|
||||
diff -up openssl-1.0.2a/doc/apps/smime.pod.alt-chains openssl-1.0.2a/doc/apps/smime.pod
|
||||
--- openssl-1.0.2a/doc/apps/smime.pod.alt-chains 2015-04-23 10:22:56.227685303 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/smime.pod 2015-04-28 16:57:33.598246384 +0200
|
||||
@@ -18,6 +18,7 @@ B<openssl> B<smime>
|
||||
[B<-CAfile file>]
|
||||
[B<-CApath dir>]
|
||||
[B<-trusted_first>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-certfile file>]
|
||||
[B<-signer file>]
|
||||
[B<-recip file>]
|
||||
@@ -268,7 +269,7 @@ portion of a message so they may be incl
|
||||
then many S/MIME mail clients check the signers certificate's email
|
||||
address matches that specified in the From: address.
|
||||
|
||||
-=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig>
|
||||
+=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains>
|
||||
|
||||
Set various options of certificate chain verification. See
|
||||
L<B<verify>|verify(1)> manual page for details.
|
||||
@@ -450,5 +451,6 @@ structures may cause parsing errors.
|
||||
The use of multiple B<-signer> options and the B<-resign> command were first
|
||||
added in OpenSSL 1.0.0
|
||||
|
||||
+The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
|
||||
=cut
|
||||
diff -up openssl-1.0.2a/doc/apps/s_server.pod.alt-chains openssl-1.0.2a/doc/apps/s_server.pod
|
||||
--- openssl-1.0.2a/doc/apps/s_server.pod.alt-chains 2015-04-23 10:22:56.227685303 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/s_server.pod 2015-04-28 16:56:27.494707598 +0200
|
||||
@@ -34,6 +34,7 @@ B<openssl> B<s_server>
|
||||
[B<-CApath directory>]
|
||||
[B<-CAfile filename>]
|
||||
[B<-trusted_first>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-nocert>]
|
||||
[B<-cipher cipherlist>]
|
||||
[B<-serverpref>]
|
||||
@@ -181,6 +182,10 @@ Use certificates in CA file or CA direct
|
||||
when building the trust chain to verify client certificates.
|
||||
This is mainly useful in environments with Bridge CA or Cross-Certified CAs.
|
||||
|
||||
+=item B<-no_alt_chains>
|
||||
+
|
||||
+See the L<B<verify>|verify(1)> manual page for details.
|
||||
+
|
||||
=item B<-state>
|
||||
|
||||
prints out the SSL session states.
|
||||
@@ -413,4 +418,8 @@ unknown cipher suites a client says it s
|
||||
|
||||
L<sess_id(1)|sess_id(1)>, L<s_client(1)|s_client(1)>, L<ciphers(1)|ciphers(1)>
|
||||
|
||||
+=head1 HISTORY
|
||||
+
|
||||
+The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
+
|
||||
=cut
|
||||
diff -up openssl-1.0.2a/doc/apps/verify.pod.alt-chains openssl-1.0.2a/doc/apps/verify.pod
|
||||
--- openssl-1.0.2a/doc/apps/verify.pod.alt-chains 2015-04-23 10:22:56.228685330 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/verify.pod 2015-04-28 16:52:22.544033948 +0200
|
||||
@@ -26,6 +26,7 @@ B<openssl> B<verify>
|
||||
[B<-extended_crl>]
|
||||
[B<-use_deltas>]
|
||||
[B<-policy_print>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-untrusted file>]
|
||||
[B<-help>]
|
||||
[B<-issuer_checks>]
|
||||
@@ -131,6 +132,14 @@ Set policy variable inhibit-any-policy (
|
||||
|
||||
Set policy variable inhibit-policy-mapping (see RFC5280).
|
||||
|
||||
+=item B<-no_alt_chains>
|
||||
+
|
||||
+When building a certificate chain, if the first certificate chain found is not
|
||||
+trusted, then OpenSSL will continue to check to see if an alternative chain can
|
||||
+be found that is trusted. With this option that behaviour is suppressed so that
|
||||
+only the first chain found is ever used. Using this option will force the
|
||||
+behaviour to match that of previous OpenSSL versions.
|
||||
+
|
||||
=item B<-policy_print>
|
||||
|
||||
Print out diagnostics related to policy processing.
|
||||
@@ -432,4 +441,8 @@ B<20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CER
|
||||
|
||||
L<x509(1)|x509(1)>
|
||||
|
||||
+=head1 HISTORY
|
||||
+
|
||||
+The -no_alt_chains options was first added to OpenSSL 1.0.2b.
|
||||
+
|
||||
=cut
|
||||
diff -up openssl-1.0.2a/doc/crypto/X509_VERIFY_PARAM_set_flags.pod.alt-chains openssl-1.0.2a/doc/crypto/X509_VERIFY_PARAM_set_flags.pod
|
||||
--- openssl-1.0.2a/doc/crypto/X509_VERIFY_PARAM_set_flags.pod.alt-chains 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/doc/crypto/X509_VERIFY_PARAM_set_flags.pod 2015-04-28 16:52:22.544033948 +0200
|
||||
@@ -197,6 +197,12 @@ verification. If this flag is set then a
|
||||
to the verification callback and it B<must> be prepared to handle such cases
|
||||
without assuming they are hard errors.
|
||||
|
||||
+The B<X509_V_FLAG_NO_ALT_CHAINS> flag suppresses checking for alternative
|
||||
+chains. By default, when building a certificate chain, if the first certificate
|
||||
+chain found is not trusted, then OpenSSL will continue to check to see if an
|
||||
+alternative chain can be found that is trusted. With this flag set the behaviour
|
||||
+will match that of OpenSSL versions prior to 1.0.2b.
|
||||
+
|
||||
=head1 NOTES
|
||||
|
||||
The above functions should be used to manipulate verification parameters
|
||||
@@ -233,6 +239,6 @@ L<X509_check_ip(3)|X509_check_ip(3)>
|
||||
|
||||
=head1 HISTORY
|
||||
|
||||
-TBA
|
||||
+The B<X509_V_FLAG_NO_ALT_CHAINS> flag was added in OpenSSL 1.0.2b
|
||||
|
||||
=cut
|
@ -1,75 +0,0 @@
|
||||
diff -up openssl-1.0.2a/apps/s_server.c.dh1024 openssl-1.0.2a/apps/s_server.c
|
||||
--- openssl-1.0.2a/apps/s_server.c.dh1024 2015-04-09 18:19:55.978228949 +0200
|
||||
+++ openssl-1.0.2a/apps/s_server.c 2015-04-09 18:19:50.842110304 +0200
|
||||
@@ -230,29 +230,44 @@ static void s_server_init(void);
|
||||
#endif
|
||||
|
||||
#ifndef OPENSSL_NO_DH
|
||||
-static unsigned char dh512_p[] = {
|
||||
- 0xDA, 0x58, 0x3C, 0x16, 0xD9, 0x85, 0x22, 0x89, 0xD0, 0xE4, 0xAF, 0x75,
|
||||
- 0x6F, 0x4C, 0xCA, 0x92, 0xDD, 0x4B, 0xE5, 0x33, 0xB8, 0x04, 0xFB, 0x0F,
|
||||
- 0xED, 0x94, 0xEF, 0x9C, 0x8A, 0x44, 0x03, 0xED, 0x57, 0x46, 0x50, 0xD3,
|
||||
- 0x69, 0x99, 0xDB, 0x29, 0xD7, 0x76, 0x27, 0x6B, 0xA2, 0xD3, 0xD4, 0x12,
|
||||
- 0xE2, 0x18, 0xF4, 0xDD, 0x1E, 0x08, 0x4C, 0xF6, 0xD8, 0x00, 0x3E, 0x7C,
|
||||
- 0x47, 0x74, 0xE8, 0x33,
|
||||
-};
|
||||
-
|
||||
-static unsigned char dh512_g[] = {
|
||||
- 0x02,
|
||||
-};
|
||||
-
|
||||
-static DH *get_dh512(void)
|
||||
+static DH *get_dh1024()
|
||||
{
|
||||
- DH *dh = NULL;
|
||||
+ static unsigned char dh1024_p[] = {
|
||||
+ 0x99, 0x58, 0xFA, 0x90, 0x53, 0x2F, 0xE0, 0x61, 0x83, 0x9D, 0x54,
|
||||
+ 0x63,
|
||||
+ 0xBD, 0x35, 0x5A, 0x31, 0xF3, 0xC6, 0x79, 0xE5, 0xA0, 0x0F, 0x66,
|
||||
+ 0x79,
|
||||
+ 0x3C, 0xA0, 0x7F, 0xE8, 0xA2, 0x5F, 0xDF, 0x11, 0x08, 0xA3, 0xF0,
|
||||
+ 0x3C,
|
||||
+ 0xC3, 0x3C, 0x5D, 0x50, 0x2C, 0xD5, 0xD6, 0x58, 0x12, 0xDB, 0xC1,
|
||||
+ 0xEF,
|
||||
+ 0xB4, 0x47, 0x4A, 0x5A, 0x39, 0x8A, 0x4E, 0xEB, 0x44, 0xE2, 0x07,
|
||||
+ 0xFB,
|
||||
+ 0x3D, 0xA3, 0xC7, 0x6E, 0x52, 0xF3, 0x2B, 0x7B, 0x10, 0xA5, 0x98,
|
||||
+ 0xE3,
|
||||
+ 0x38, 0x2A, 0xE2, 0x7F, 0xA4, 0x8F, 0x26, 0x87, 0x9B, 0x66, 0x7A,
|
||||
+ 0xED,
|
||||
+ 0x2D, 0x4C, 0xE7, 0x33, 0x77, 0x47, 0x94, 0x43, 0xB6, 0xAA, 0x97,
|
||||
+ 0x23,
|
||||
+ 0x8A, 0xFC, 0xA5, 0xA6, 0x64, 0x09, 0xC0, 0x27, 0xC0, 0xEF, 0xCB,
|
||||
+ 0x05,
|
||||
+ 0x90, 0x9D, 0xD5, 0x75, 0xBA, 0x00, 0xE0, 0xFB, 0xA8, 0x81, 0x52,
|
||||
+ 0xA4,
|
||||
+ 0xB2, 0x83, 0x22, 0x5B, 0xCB, 0xD7, 0x16, 0x93,
|
||||
+ };
|
||||
+ static unsigned char dh1024_g[] = {
|
||||
+ 0x02,
|
||||
+ };
|
||||
+ DH *dh;
|
||||
|
||||
if ((dh = DH_new()) == NULL)
|
||||
return (NULL);
|
||||
- dh->p = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
|
||||
- dh->g = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
|
||||
- if ((dh->p == NULL) || (dh->g == NULL))
|
||||
+ dh->p = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
|
||||
+ dh->g = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
|
||||
+ if ((dh->p == NULL) || (dh->g == NULL)) {
|
||||
+ DH_free(dh);
|
||||
return (NULL);
|
||||
+ }
|
||||
return (dh);
|
||||
}
|
||||
#endif
|
||||
@@ -1872,7 +1987,7 @@ int MAIN(int argc, char *argv[])
|
||||
BIO_printf(bio_s_out, "Setting temp DH parameters\n");
|
||||
} else {
|
||||
BIO_printf(bio_s_out, "Using default temp DH parameters\n");
|
||||
- dh = get_dh512();
|
||||
+ dh = get_dh1024();
|
||||
}
|
||||
(void)BIO_flush(bio_s_out);
|
||||
|
@ -1,38 +1,7 @@
|
||||
diff -up openssl-1.0.2a/apps/s_client.c.default-paths openssl-1.0.2a/apps/s_client.c
|
||||
--- openssl-1.0.2a/apps/s_client.c.default-paths 2015-04-20 14:48:31.462166971 +0200
|
||||
+++ openssl-1.0.2a/apps/s_client.c 2015-04-20 14:52:55.125316170 +0200
|
||||
@@ -1336,19 +1336,16 @@ int MAIN(int argc, char **argv)
|
||||
|
||||
SSL_CTX_set_verify(ctx, verify, verify_callback);
|
||||
|
||||
- if ((!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) ||
|
||||
- (!SSL_CTX_set_default_verify_paths(ctx))) {
|
||||
- /*
|
||||
- * BIO_printf(bio_err,"error setting default verify locations\n");
|
||||
- */
|
||||
- ERR_print_errors(bio_err);
|
||||
- /* goto end; */
|
||||
+ if (CAfile == NULL && CApath == NULL) {
|
||||
+ if (!SSL_CTX_set_default_verify_paths(ctx)) {
|
||||
+ ERR_print_errors(bio_err);
|
||||
+ }
|
||||
+ } else {
|
||||
+ if (!SSL_CTX_load_verify_locations(ctx, CAfile, CApath)) {
|
||||
+ ERR_print_errors(bio_err);
|
||||
+ }
|
||||
}
|
||||
|
||||
- ssl_ctx_add_crls(ctx, crls, crl_download);
|
||||
- if (!set_cert_key_stuff(ctx, cert, key, chain, build_chain))
|
||||
- goto end;
|
||||
-
|
||||
#ifndef OPENSSL_NO_TLSEXT
|
||||
if (servername != NULL) {
|
||||
tlsextcbp.biodebug = bio_err;
|
||||
diff -up openssl-1.0.2a/apps/s_server.c.default-paths openssl-1.0.2a/apps/s_server.c
|
||||
--- openssl-1.0.2a/apps/s_server.c.default-paths 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/apps/s_server.c 2015-04-20 14:48:31.462166971 +0200
|
||||
@@ -1768,12 +1768,16 @@ int MAIN(int argc, char *argv[])
|
||||
diff -up openssl-1.0.2c/apps/s_server.c.default-paths openssl-1.0.2c/apps/s_server.c
|
||||
--- openssl-1.0.2c/apps/s_server.c.default-paths 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/apps/s_server.c 2015-06-15 17:24:17.747446515 +0200
|
||||
@@ -1788,12 +1788,16 @@ int MAIN(int argc, char *argv[])
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -54,7 +23,7 @@ diff -up openssl-1.0.2a/apps/s_server.c.default-paths openssl-1.0.2a/apps/s_serv
|
||||
if (vpm)
|
||||
SSL_CTX_set1_param(ctx, vpm);
|
||||
|
||||
@@ -1830,8 +1834,10 @@ int MAIN(int argc, char *argv[])
|
||||
@@ -1850,8 +1854,10 @@ int MAIN(int argc, char *argv[])
|
||||
else
|
||||
SSL_CTX_sess_set_cache_size(ctx2, 128);
|
||||
|
||||
@ -67,9 +36,9 @@ diff -up openssl-1.0.2a/apps/s_server.c.default-paths openssl-1.0.2a/apps/s_serv
|
||||
ERR_print_errors(bio_err);
|
||||
}
|
||||
if (vpm)
|
||||
diff -up openssl-1.0.2a/apps/s_time.c.default-paths openssl-1.0.2a/apps/s_time.c
|
||||
--- openssl-1.0.2a/apps/s_time.c.default-paths 2015-04-20 14:48:31.462166971 +0200
|
||||
+++ openssl-1.0.2a/apps/s_time.c 2015-04-20 14:55:14.232542738 +0200
|
||||
diff -up openssl-1.0.2c/apps/s_time.c.default-paths openssl-1.0.2c/apps/s_time.c
|
||||
--- openssl-1.0.2c/apps/s_time.c.default-paths 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/apps/s_time.c 2015-06-15 17:24:17.747446515 +0200
|
||||
@@ -381,13 +381,14 @@ int MAIN(int argc, char **argv)
|
||||
|
||||
SSL_load_error_strings();
|
@ -1,6 +1,6 @@
|
||||
diff -up openssl-1.0.2a/apps/speed.c.suiteb openssl-1.0.2a/apps/speed.c
|
||||
--- openssl-1.0.2a/apps/speed.c.suiteb 2015-04-21 17:46:15.452321183 +0200
|
||||
+++ openssl-1.0.2a/apps/speed.c 2015-04-22 14:52:45.362272296 +0200
|
||||
diff -up openssl-1.0.2c/apps/speed.c.suiteb openssl-1.0.2c/apps/speed.c
|
||||
--- openssl-1.0.2c/apps/speed.c.suiteb 2015-06-15 17:37:06.285083685 +0200
|
||||
+++ openssl-1.0.2c/apps/speed.c 2015-06-15 17:37:06.335084836 +0200
|
||||
@@ -996,78 +996,26 @@ int MAIN(int argc, char **argv)
|
||||
} else
|
||||
# endif
|
||||
@ -122,52 +122,48 @@ diff -up openssl-1.0.2a/apps/speed.c.suiteb openssl-1.0.2a/apps/speed.c
|
||||
ecdh_doit[i] = 1;
|
||||
# endif
|
||||
}
|
||||
diff -up openssl-1.0.2a/ssl/t1_lib.c.suiteb openssl-1.0.2a/ssl/t1_lib.c
|
||||
--- openssl-1.0.2a/ssl/t1_lib.c.suiteb 2015-04-21 17:46:15.506322451 +0200
|
||||
+++ openssl-1.0.2a/ssl/t1_lib.c 2015-04-22 15:03:32.464591096 +0200
|
||||
@@ -266,41 +266,30 @@ static const unsigned char eccurves_defa
|
||||
0, 13, /* sect571k1 (13) */
|
||||
# endif
|
||||
diff -up openssl-1.0.2c/ssl/t1_lib.c.suiteb openssl-1.0.2c/ssl/t1_lib.c
|
||||
--- openssl-1.0.2c/ssl/t1_lib.c.suiteb 2015-06-12 16:51:27.000000000 +0200
|
||||
+++ openssl-1.0.2c/ssl/t1_lib.c 2015-06-15 17:44:03.578681271 +0200
|
||||
@@ -268,11 +268,7 @@ static const unsigned char eccurves_auto
|
||||
0, 23, /* secp256r1 (23) */
|
||||
/* Other >= 256-bit prime curves. */
|
||||
0, 25, /* secp521r1 (25) */
|
||||
- 0, 28, /* brainpool512r1 (28) */
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
0, 11, /* sect409k1 (11) */
|
||||
0, 12, /* sect409r1 (12) */
|
||||
# endif
|
||||
- 0, 27, /* brainpoolP384r1 (27) */
|
||||
0, 24, /* secp384r1 (24) */
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
0, 9, /* sect283k1 (9) */
|
||||
0, 10, /* sect283r1 (10) */
|
||||
# endif
|
||||
- 0, 26, /* brainpoolP256r1 (26) */
|
||||
- 0, 22, /* secp256k1 (22) */
|
||||
0, 23, /* secp256r1 (23) */
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
0, 8, /* sect239k1 (8) */
|
||||
0, 6, /* sect233k1 (6) */
|
||||
0, 7, /* sect233r1 (7) */
|
||||
# endif
|
||||
/* >= 256-bit binary curves. */
|
||||
0, 14, /* sect571r1 (14) */
|
||||
@@ -289,11 +285,7 @@ static const unsigned char eccurves_all[
|
||||
0, 23, /* secp256r1 (23) */
|
||||
/* Other >= 256-bit prime curves. */
|
||||
0, 25, /* secp521r1 (25) */
|
||||
- 0, 28, /* brainpool512r1 (28) */
|
||||
- 0, 27, /* brainpoolP384r1 (27) */
|
||||
0, 24, /* secp384r1 (24) */
|
||||
- 0, 26, /* brainpoolP256r1 (26) */
|
||||
- 0, 22, /* secp256k1 (22) */
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
/* >= 256-bit binary curves. */
|
||||
0, 14, /* sect571r1 (14) */
|
||||
@@ -307,13 +299,6 @@ static const unsigned char eccurves_all[
|
||||
* Remaining curves disabled by default but still permitted if set
|
||||
* via an explicit callback or parameters.
|
||||
*/
|
||||
- 0, 20, /* secp224k1 (20) */
|
||||
- 0, 21, /* secp224r1 (21) */
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
0, 4, /* sect193r1 (4) */
|
||||
0, 5, /* sect193r2 (5) */
|
||||
# endif
|
||||
- 0, 18, /* secp192k1 (18) */
|
||||
- 0, 19, /* secp192r1 (19) */
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
0, 1, /* sect163k1 (1) */
|
||||
0, 2, /* sect163r1 (2) */
|
||||
0, 3, /* sect163r2 (3) */
|
||||
# endif
|
||||
- 0, 15, /* secp160k1 (15) */
|
||||
- 0, 16, /* secp160r1 (16) */
|
||||
- 0, 17, /* secp160r2 (17) */
|
||||
};
|
||||
|
||||
static const unsigned char suiteb_curves[] = {
|
||||
@@ -325,29 +314,21 @@ static const unsigned char fips_curves_d
|
||||
# ifndef OPENSSL_NO_EC2M
|
||||
0, 8, /* sect239k1 (8) */
|
||||
0, 6, /* sect233k1 (6) */
|
||||
@@ -348,29 +333,21 @@ static const unsigned char fips_curves_d
|
||||
0, 9, /* sect283k1 (9) */
|
||||
0, 10, /* sect283r1 (10) */
|
||||
# endif
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
diff -up openssl-1.0.2a/Configure.rpmbuild openssl-1.0.2a/Configure
|
||||
--- openssl-1.0.2a/Configure.rpmbuild 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/Configure 2015-04-20 14:35:03.516318252 +0200
|
||||
@@ -348,8 +348,8 @@ my %table=(
|
||||
diff -up openssl-1.0.2c/Configure.rpmbuild openssl-1.0.2c/Configure
|
||||
--- openssl-1.0.2c/Configure.rpmbuild 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/Configure 2015-06-15 17:22:52.598496680 +0200
|
||||
@@ -365,8 +365,8 @@ my %table=(
|
||||
####
|
||||
# *-generic* is endian-neutral target, but ./config is free to
|
||||
# throw in -D[BL]_ENDIAN, whichever appropriate...
|
||||
@ -12,14 +12,14 @@ diff -up openssl-1.0.2a/Configure.rpmbuild openssl-1.0.2a/Configure
|
||||
|
||||
#######################################################################
|
||||
# Note that -march is not among compiler options in below linux-armv4
|
||||
@@ -378,30 +378,30 @@ my %table=(
|
||||
@@ -395,30 +395,30 @@ my %table=(
|
||||
#
|
||||
# ./Configure linux-armv4 -march=armv6 -D__ARM_MAX_ARCH__=8
|
||||
#
|
||||
-"linux-armv4", "gcc: -O3 -Wall::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
-"linux-aarch64","gcc: -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
+"linux-armv4", "gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${armv4_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
|
||||
+"linux-aarch64","gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
|
||||
+"linux-aarch64","gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${aarch64_asm}:linux64:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
|
||||
# Configure script adds minimally required -march for assembly support,
|
||||
# if no -march was specified at command line. mips32 and mips64 below
|
||||
# refer to contemporary MIPS Architecture specifications, MIPS32 and
|
||||
@ -40,14 +40,14 @@ diff -up openssl-1.0.2a/Configure.rpmbuild openssl-1.0.2a/Configure
|
||||
-"linux-ppc64", "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
-"linux-ppc64le","gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::",
|
||||
-"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
+"linux-generic64","gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
|
||||
+"linux-generic64","gcc:-Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL BF_PTR:${no_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
|
||||
+"linux-ppc64", "gcc:-m64 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:${ppc64_asm}:linux64:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
|
||||
+"linux-ppc64le","gcc:-m64 -DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 DES_UNROLL:$ppc64_asm:linux64le:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
|
||||
+"linux-ia64", "gcc:-DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
|
||||
"linux-ia64-icc","icc:-DL_ENDIAN -O2 -Wall::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_RISC1 DES_INT:${ia64_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
+"linux-x86_64", "gcc:-m64 -DL_ENDIAN -Wall \$(RPM_OPT_FLAGS)::-D_REENTRANT::-Wl,-z,relro -ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64 \$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER):::64",
|
||||
"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -O3 -Weverything $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"linux-x86_64-clang", "clang: -m64 -DL_ENDIAN -O3 -Wall -Wextra $clang_disabled_warnings -Qunused-arguments::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"linux-x86_64-icc", "icc:-DL_ENDIAN -O2::-D_REENTRANT::-ldl -no_cpprt:SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
"linux-x32", "gcc:-mx32 -DL_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT RC4_CHUNK_LL DES_INT DES_UNROLL:${x86_64_asm}:elf:dlfcn:linux-shared:-fPIC:-mx32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::x32",
|
||||
-"linux64-s390x", "gcc:-m64 -DB_ENDIAN -O3 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_UNROLL:${s390x_asm}:64:dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):::64",
|
||||
@ -55,12 +55,12 @@ diff -up openssl-1.0.2a/Configure.rpmbuild openssl-1.0.2a/Configure
|
||||
#### So called "highgprs" target for z/Architecture CPUs
|
||||
# "Highgprs" is kernel feature first implemented in Linux 2.6.32, see
|
||||
# /proc/cpuinfo. The idea is to preserve most significant bits of
|
||||
@@ -419,12 +419,12 @@ my %table=(
|
||||
@@ -436,12 +436,12 @@ my %table=(
|
||||
#### SPARC Linux setups
|
||||
# Ray Miller <ray.miller@computing-services.oxford.ac.uk> has patiently
|
||||
# assisted with debugging of following two configs.
|
||||
-"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
+"linux-sparcv8","gcc:-mv8 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
|
||||
-"linux-sparcv8","gcc:-mcpu=v8 -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -DBN_DIV2W::-D_REENTRANT::-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
+"linux-sparcv8","gcc:-mcpu=v8 -DB_ENDIAN -Wall \$(RPM_OPT_FLAGS) -DBN_DIV2W::-D_REENTRANT::-Wl,-z,relro -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv8_asm}:dlfcn:linux-shared:-fPIC:\$(RPM_OPT_FLAGS):.so.\$(SHLIB_SONAMEVER)",
|
||||
# it's a real mess with -mcpu=ultrasparc option under Linux, but
|
||||
# -Wa,-Av8plus should do the trick no matter what.
|
||||
-"linux-sparcv9","gcc:-m32 -mcpu=ultrasparc -DB_ENDIAN -O3 -fomit-frame-pointer -Wall -Wa,-Av8plus -DBN_DIV2W::-D_REENTRANT:ULTRASPARC:-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR:${sparcv9_asm}:dlfcn:linux-shared:-fPIC:-m32:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
@ -71,7 +71,7 @@ diff -up openssl-1.0.2a/Configure.rpmbuild openssl-1.0.2a/Configure
|
||||
#### Alpha Linux with GNU C and Compaq C setups
|
||||
# Special notes:
|
||||
# - linux-alpha+bwx-gcc is ment to be used from ./config only. If you
|
||||
@@ -1737,7 +1737,7 @@ while (<IN>)
|
||||
@@ -1764,7 +1764,7 @@ while (<IN>)
|
||||
elsif ($shared_extension ne "" && $shared_extension =~ /^\.s([ol])\.[^\.]*\.[^\.]*$/)
|
||||
{
|
||||
my $sotmp = $1;
|
||||
@ -80,9 +80,9 @@ diff -up openssl-1.0.2a/Configure.rpmbuild openssl-1.0.2a/Configure
|
||||
}
|
||||
elsif ($shared_extension ne "" && $shared_extension =~ /^\.[^\.]*\.[^\.]*\.dylib$/)
|
||||
{
|
||||
diff -up openssl-1.0.2a/Makefile.org.rpmbuild openssl-1.0.2a/Makefile.org
|
||||
--- openssl-1.0.2a/Makefile.org.rpmbuild 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/Makefile.org 2015-04-20 14:11:52.152847093 +0200
|
||||
diff -up openssl-1.0.2c/Makefile.org.rpmbuild openssl-1.0.2c/Makefile.org
|
||||
--- openssl-1.0.2c/Makefile.org.rpmbuild 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/Makefile.org 2015-06-15 17:19:14.874510995 +0200
|
||||
@@ -10,6 +10,7 @@ SHLIB_VERSION_HISTORY=
|
||||
SHLIB_MAJOR=
|
||||
SHLIB_MINOR=
|
||||
@ -91,7 +91,7 @@ diff -up openssl-1.0.2a/Makefile.org.rpmbuild openssl-1.0.2a/Makefile.org
|
||||
PLATFORM=dist
|
||||
OPTIONS=
|
||||
CONFIGURE_ARGS=
|
||||
@@ -335,10 +336,9 @@ clean-shared:
|
||||
@@ -338,10 +339,9 @@ clean-shared:
|
||||
link-shared:
|
||||
@ set -e; for i in $(SHLIBDIRS); do \
|
||||
$(MAKE) -f $(HERE)/Makefile.shared -e $(BUILDENV) \
|
||||
@ -103,7 +103,7 @@ diff -up openssl-1.0.2a/Makefile.org.rpmbuild openssl-1.0.2a/Makefile.org
|
||||
done
|
||||
|
||||
build-shared: do_$(SHLIB_TARGET) link-shared
|
||||
@@ -349,7 +349,7 @@ do_$(SHLIB_TARGET):
|
||||
@@ -352,7 +352,7 @@ do_$(SHLIB_TARGET):
|
||||
libs="$(LIBKRB5) $$libs"; \
|
||||
fi; \
|
||||
$(CLEARENV) && $(MAKE) -f Makefile.shared -e $(BUILDENV) \
|
@ -1,66 +1,66 @@
|
||||
diff -up openssl-1.0.2a/apps/cms.c.trusted-first openssl-1.0.2a/apps/cms.c
|
||||
--- openssl-1.0.2a/apps/cms.c.trusted-first 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/apps/cms.c 2015-04-22 16:25:31.839164061 +0200
|
||||
diff -up openssl-1.0.2c/apps/cms.c.trusted-first openssl-1.0.2c/apps/cms.c
|
||||
--- openssl-1.0.2c/apps/cms.c.trusted-first 2015-06-15 17:45:13.112279761 +0200
|
||||
+++ openssl-1.0.2c/apps/cms.c 2015-06-15 17:46:11.045611575 +0200
|
||||
@@ -646,6 +646,8 @@ int MAIN(int argc, char **argv)
|
||||
"-CApath dir trusted certificates directory\n");
|
||||
BIO_printf(bio_err, "-CAfile file trusted certificates file\n");
|
||||
BIO_printf(bio_err,
|
||||
+ "-trusted_first use trusted certificates first when building the trust chain\n");
|
||||
+ BIO_printf(bio_err,
|
||||
"-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||
"-no_alt_chains only ever use the first certificate chain found\n");
|
||||
BIO_printf(bio_err,
|
||||
"-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
||||
diff -up openssl-1.0.2a/apps/ocsp.c.trusted-first openssl-1.0.2a/apps/ocsp.c
|
||||
--- openssl-1.0.2a/apps/ocsp.c.trusted-first 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/apps/ocsp.c 2015-04-22 16:25:31.840164085 +0200
|
||||
"-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||
diff -up openssl-1.0.2c/apps/ocsp.c.trusted-first openssl-1.0.2c/apps/ocsp.c
|
||||
--- openssl-1.0.2c/apps/ocsp.c.trusted-first 2015-06-15 17:45:13.112279761 +0200
|
||||
+++ openssl-1.0.2c/apps/ocsp.c 2015-06-15 17:46:31.898090948 +0200
|
||||
@@ -536,6 +536,8 @@ int MAIN(int argc, char **argv)
|
||||
BIO_printf(bio_err,
|
||||
"-CAfile file trusted certificates file\n");
|
||||
BIO_printf(bio_err,
|
||||
+ "-trusted_first use trusted certificates first when building the trust chain\n");
|
||||
+ BIO_printf(bio_err,
|
||||
"-VAfile file validator certificates file\n");
|
||||
"-no_alt_chains only ever use the first certificate chain found\n");
|
||||
BIO_printf(bio_err,
|
||||
"-validity_period n maximum validity discrepancy in seconds\n");
|
||||
diff -up openssl-1.0.2a/apps/s_client.c.trusted-first openssl-1.0.2a/apps/s_client.c
|
||||
--- openssl-1.0.2a/apps/s_client.c.trusted-first 2015-04-22 16:25:31.799163115 +0200
|
||||
+++ openssl-1.0.2a/apps/s_client.c 2015-04-22 16:25:31.840164085 +0200
|
||||
"-VAfile file validator certificates file\n");
|
||||
diff -up openssl-1.0.2c/apps/s_client.c.trusted-first openssl-1.0.2c/apps/s_client.c
|
||||
--- openssl-1.0.2c/apps/s_client.c.trusted-first 2015-06-15 17:45:13.113279784 +0200
|
||||
+++ openssl-1.0.2c/apps/s_client.c 2015-06-15 17:47:05.645866767 +0200
|
||||
@@ -333,6 +333,8 @@ static void sc_usage(void)
|
||||
BIO_printf(bio_err, " -CApath arg - PEM format directory of CA's\n");
|
||||
BIO_printf(bio_err, " -CAfile arg - PEM format file of CA's\n");
|
||||
BIO_printf(bio_err,
|
||||
+ " -trusted_first - Use trusted CA's first when building the trust chain\n");
|
||||
+ BIO_printf(bio_err,
|
||||
" -reconnect - Drop and re-make the connection with the same Session-ID\n");
|
||||
" -no_alt_chains - only ever use the first certificate chain found\n");
|
||||
BIO_printf(bio_err,
|
||||
" -pause - sleep(1) after each read(2) and write(2) system call\n");
|
||||
diff -up openssl-1.0.2a/apps/smime.c.trusted-first openssl-1.0.2a/apps/smime.c
|
||||
--- openssl-1.0.2a/apps/smime.c.trusted-first 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/apps/smime.c 2015-04-22 16:25:31.840164085 +0200
|
||||
" -reconnect - Drop and re-make the connection with the same Session-ID\n");
|
||||
diff -up openssl-1.0.2c/apps/smime.c.trusted-first openssl-1.0.2c/apps/smime.c
|
||||
--- openssl-1.0.2c/apps/smime.c.trusted-first 2015-06-15 17:45:13.113279784 +0200
|
||||
+++ openssl-1.0.2c/apps/smime.c 2015-06-15 17:47:39.090635621 +0200
|
||||
@@ -442,6 +442,8 @@ int MAIN(int argc, char **argv)
|
||||
"-CApath dir trusted certificates directory\n");
|
||||
BIO_printf(bio_err, "-CAfile file trusted certificates file\n");
|
||||
BIO_printf(bio_err,
|
||||
+ "-trusted_first use trusted certificates first when building the trust chain\n");
|
||||
+ BIO_printf(bio_err,
|
||||
"-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||
"-no_alt_chains only ever use the first certificate chain found\n");
|
||||
BIO_printf(bio_err,
|
||||
"-crl_check_all check revocation status of signer's certificate chain using CRLs\n");
|
||||
diff -up openssl-1.0.2a/apps/s_server.c.trusted-first openssl-1.0.2a/apps/s_server.c
|
||||
--- openssl-1.0.2a/apps/s_server.c.trusted-first 2015-04-22 16:25:31.806163281 +0200
|
||||
+++ openssl-1.0.2a/apps/s_server.c 2015-04-22 16:25:31.841164108 +0200
|
||||
@@ -569,6 +569,8 @@ static void sv_usage(void)
|
||||
"-crl_check check revocation status of signer's certificate using CRLs\n");
|
||||
diff -up openssl-1.0.2c/apps/s_server.c.trusted-first openssl-1.0.2c/apps/s_server.c
|
||||
--- openssl-1.0.2c/apps/s_server.c.trusted-first 2015-06-15 17:45:13.114279807 +0200
|
||||
+++ openssl-1.0.2c/apps/s_server.c 2015-06-15 17:47:24.841308046 +0200
|
||||
@@ -572,6 +572,8 @@ static void sv_usage(void)
|
||||
BIO_printf(bio_err, " -CApath arg - PEM format directory of CA's\n");
|
||||
BIO_printf(bio_err, " -CAfile arg - PEM format file of CA's\n");
|
||||
BIO_printf(bio_err,
|
||||
+ " -trusted_first - Use trusted CA's first when building the trust chain\n");
|
||||
+ BIO_printf(bio_err,
|
||||
" -nocert - Don't use any certificates (Anon-DH)\n");
|
||||
" -no_alt_chains - only ever use the first certificate chain found\n");
|
||||
BIO_printf(bio_err,
|
||||
" -cipher arg - play with 'openssl ciphers' to see what goes here\n");
|
||||
diff -up openssl-1.0.2a/apps/s_time.c.trusted-first openssl-1.0.2a/apps/s_time.c
|
||||
--- openssl-1.0.2a/apps/s_time.c.trusted-first 2015-04-22 16:25:31.755162075 +0200
|
||||
+++ openssl-1.0.2a/apps/s_time.c 2015-04-22 16:25:31.841164108 +0200
|
||||
" -nocert - Don't use any certificates (Anon-DH)\n");
|
||||
diff -up openssl-1.0.2c/apps/s_time.c.trusted-first openssl-1.0.2c/apps/s_time.c
|
||||
--- openssl-1.0.2c/apps/s_time.c.trusted-first 2015-06-15 17:45:13.010277416 +0200
|
||||
+++ openssl-1.0.2c/apps/s_time.c 2015-06-15 17:45:13.114279807 +0200
|
||||
@@ -182,6 +182,7 @@ static void s_time_usage(void)
|
||||
file if not specified by this option\n\
|
||||
-CApath arg - PEM format directory of CA's\n\
|
||||
@ -69,9 +69,9 @@ diff -up openssl-1.0.2a/apps/s_time.c.trusted-first openssl-1.0.2a/apps/s_time.c
|
||||
-cipher - preferred cipher to use, play with 'openssl ciphers'\n\n";
|
||||
|
||||
printf("usage: s_time <args>\n\n");
|
||||
diff -up openssl-1.0.2a/apps/ts.c.trusted-first openssl-1.0.2a/apps/ts.c
|
||||
--- openssl-1.0.2a/apps/ts.c.trusted-first 2015-04-22 16:25:31.797163068 +0200
|
||||
+++ openssl-1.0.2a/apps/ts.c 2015-04-22 16:25:31.841164108 +0200
|
||||
diff -up openssl-1.0.2c/apps/ts.c.trusted-first openssl-1.0.2c/apps/ts.c
|
||||
--- openssl-1.0.2c/apps/ts.c.trusted-first 2015-06-15 17:45:13.065278681 +0200
|
||||
+++ openssl-1.0.2c/apps/ts.c 2015-06-15 17:45:13.114279807 +0200
|
||||
@@ -352,7 +352,7 @@ int MAIN(int argc, char **argv)
|
||||
"ts -verify [-data file_to_hash] [-digest digest_bytes] "
|
||||
"[-queryfile request.tsq] "
|
||||
@ -81,30 +81,30 @@ diff -up openssl-1.0.2a/apps/ts.c.trusted-first openssl-1.0.2a/apps/ts.c
|
||||
"-untrusted cert_file.pem\n");
|
||||
cleanup:
|
||||
/* Clean up. */
|
||||
diff -up openssl-1.0.2a/apps/verify.c.trusted-first openssl-1.0.2a/apps/verify.c
|
||||
--- openssl-1.0.2a/apps/verify.c.trusted-first 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/apps/verify.c 2015-04-22 16:25:31.841164108 +0200
|
||||
diff -up openssl-1.0.2c/apps/verify.c.trusted-first openssl-1.0.2c/apps/verify.c
|
||||
--- openssl-1.0.2c/apps/verify.c.trusted-first 2015-06-15 17:45:13.114279807 +0200
|
||||
+++ openssl-1.0.2c/apps/verify.c 2015-06-15 17:48:03.979207778 +0200
|
||||
@@ -231,7 +231,7 @@ int MAIN(int argc, char **argv)
|
||||
end:
|
||||
if (ret == 1) {
|
||||
BIO_printf(bio_err,
|
||||
- "usage: verify [-verbose] [-CApath path] [-CAfile file] [-purpose purpose] [-crl_check]");
|
||||
+ "usage: verify [-verbose] [-CApath path] [-CAfile file] [-trusted_first] [-purpose purpose] [-crl_check]");
|
||||
BIO_printf(bio_err, " [-attime timestamp]");
|
||||
BIO_printf(bio_err, " [-no_alt_chains] [-attime timestamp]");
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
BIO_printf(bio_err, " [-engine e]");
|
||||
diff -up openssl-1.0.2a/doc/apps/cms.pod.trusted-first openssl-1.0.2a/doc/apps/cms.pod
|
||||
--- openssl-1.0.2a/doc/apps/cms.pod.trusted-first 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/doc/apps/cms.pod 2015-04-22 16:25:31.842164132 +0200
|
||||
diff -up openssl-1.0.2c/doc/apps/cms.pod.trusted-first openssl-1.0.2c/doc/apps/cms.pod
|
||||
--- openssl-1.0.2c/doc/apps/cms.pod.trusted-first 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/cms.pod 2015-06-15 17:48:43.615118958 +0200
|
||||
@@ -35,6 +35,7 @@ B<openssl> B<cms>
|
||||
[B<-print>]
|
||||
[B<-CAfile file>]
|
||||
[B<-CApath dir>]
|
||||
+[B<-trusted_first>]
|
||||
[B<-no_alt_chains>]
|
||||
[B<-md digest>]
|
||||
[B<-[cipher]>]
|
||||
[B<-nointern>]
|
||||
@@ -244,6 +245,12 @@ B<-verify>. This directory must be a sta
|
||||
@@ -245,6 +246,12 @@ B<-verify>. This directory must be a sta
|
||||
is a hash of each subject name (using B<x509 -hash>) should be linked
|
||||
to each certificate.
|
||||
|
||||
@ -117,18 +117,20 @@ diff -up openssl-1.0.2a/doc/apps/cms.pod.trusted-first openssl-1.0.2a/doc/apps/c
|
||||
=item B<-md digest>
|
||||
|
||||
digest algorithm to use when signing or resigning. If not present then the
|
||||
diff -up openssl-1.0.2a/doc/apps/ocsp.pod.trusted-first openssl-1.0.2a/doc/apps/ocsp.pod
|
||||
--- openssl-1.0.2a/doc/apps/ocsp.pod.trusted-first 2015-04-22 16:25:31.798163092 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/ocsp.pod 2015-04-22 16:25:31.842164132 +0200
|
||||
@@ -29,6 +29,7 @@ B<openssl> B<ocsp>
|
||||
diff -up openssl-1.0.2c/doc/apps/ocsp.pod.trusted-first openssl-1.0.2c/doc/apps/ocsp.pod
|
||||
--- openssl-1.0.2c/doc/apps/ocsp.pod.trusted-first 2015-06-15 17:45:13.115279830 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/ocsp.pod 2015-06-15 17:49:06.337641320 +0200
|
||||
@@ -29,7 +29,8 @@ B<openssl> B<ocsp>
|
||||
[B<-path>]
|
||||
[B<-CApath dir>]
|
||||
[B<-CAfile file>]
|
||||
-[B<-no_alt_chains>]]
|
||||
+[B<-trusted_first>]
|
||||
+[B<-no_alt_chains>]
|
||||
[B<-VAfile file>]
|
||||
[B<-validity_period n>]
|
||||
[B<-status_age n>]
|
||||
@@ -143,6 +144,13 @@ connection timeout to the OCSP responder
|
||||
@@ -144,6 +145,13 @@ connection timeout to the OCSP responder
|
||||
file or pathname containing trusted CA certificates. These are used to verify
|
||||
the signature on the OCSP response.
|
||||
|
||||
@ -139,32 +141,32 @@ diff -up openssl-1.0.2a/doc/apps/ocsp.pod.trusted-first openssl-1.0.2a/doc/apps/
|
||||
+chain to verify responder certificate.
|
||||
+This is mainly useful in environments with Bridge CA or Cross-Certified CAs.
|
||||
+
|
||||
=item B<-verify_other file>
|
||||
=item B<-no_alt_chains>
|
||||
|
||||
file containing additional certificates to search when attempting to locate
|
||||
diff -up openssl-1.0.2a/doc/apps/s_client.pod.trusted-first openssl-1.0.2a/doc/apps/s_client.pod
|
||||
--- openssl-1.0.2a/doc/apps/s_client.pod.trusted-first 2015-04-22 16:25:31.814163470 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/s_client.pod 2015-04-22 16:25:31.843164156 +0200
|
||||
See L<B<verify>|verify(1)> manual page for details.
|
||||
diff -up openssl-1.0.2c/doc/apps/s_client.pod.trusted-first openssl-1.0.2c/doc/apps/s_client.pod
|
||||
--- openssl-1.0.2c/doc/apps/s_client.pod.trusted-first 2015-06-15 17:45:13.115279830 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/s_client.pod 2015-06-15 17:49:23.984046989 +0200
|
||||
@@ -19,6 +19,7 @@ B<openssl> B<s_client>
|
||||
[B<-pass arg>]
|
||||
[B<-CApath directory>]
|
||||
[B<-CAfile filename>]
|
||||
+[B<-trusted_first>]
|
||||
[B<-no_alt_chains>]
|
||||
[B<-reconnect>]
|
||||
[B<-pause>]
|
||||
[B<-showcerts>]
|
||||
@@ -123,7 +124,7 @@ also used when building the client certi
|
||||
@@ -124,7 +125,7 @@ also used when building the client certi
|
||||
A file containing trusted certificates to use during server authentication
|
||||
and to use when attempting to build the client certificate chain.
|
||||
|
||||
-=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig>
|
||||
+=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig, -trusted_first>
|
||||
-=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig -no_alt_chains>
|
||||
+=item B<-purpose, -ignore_critical, -issuer_checks, -crl_check, -crl_check_all, -policy_check, -extended_crl, -x509_strict, -policy -check_ss_sig, -trusted_first -no_alt_chains>
|
||||
|
||||
Set various certificate chain valiadition option. See the
|
||||
L<B<verify>|verify(1)> manual page for details.
|
||||
diff -up openssl-1.0.2a/doc/apps/smime.pod.trusted-first openssl-1.0.2a/doc/apps/smime.pod
|
||||
--- openssl-1.0.2a/doc/apps/smime.pod.trusted-first 2015-01-20 13:33:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/doc/apps/smime.pod 2015-04-22 16:25:31.843164156 +0200
|
||||
diff -up openssl-1.0.2c/doc/apps/smime.pod.trusted-first openssl-1.0.2c/doc/apps/smime.pod
|
||||
--- openssl-1.0.2c/doc/apps/smime.pod.trusted-first 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/smime.pod 2015-06-15 17:50:00.856894648 +0200
|
||||
@@ -15,6 +15,9 @@ B<openssl> B<smime>
|
||||
[B<-pk7out>]
|
||||
[B<-[cipher]>]
|
||||
@ -172,10 +174,10 @@ diff -up openssl-1.0.2a/doc/apps/smime.pod.trusted-first openssl-1.0.2a/doc/apps
|
||||
+[B<-CAfile file>]
|
||||
+[B<-CApath dir>]
|
||||
+[B<-trusted_first>]
|
||||
[B<-no_alt_chains>]
|
||||
[B<-certfile file>]
|
||||
[B<-signer file>]
|
||||
[B<-recip file>]
|
||||
@@ -146,6 +149,12 @@ B<-verify>. This directory must be a sta
|
||||
@@ -147,6 +150,12 @@ B<-verify>. This directory must be a sta
|
||||
is a hash of each subject name (using B<x509 -hash>) should be linked
|
||||
to each certificate.
|
||||
|
||||
@ -188,18 +190,18 @@ diff -up openssl-1.0.2a/doc/apps/smime.pod.trusted-first openssl-1.0.2a/doc/apps
|
||||
=item B<-md digest>
|
||||
|
||||
digest algorithm to use when signing or resigning. If not present then the
|
||||
diff -up openssl-1.0.2a/doc/apps/s_server.pod.trusted-first openssl-1.0.2a/doc/apps/s_server.pod
|
||||
--- openssl-1.0.2a/doc/apps/s_server.pod.trusted-first 2015-04-22 16:25:31.814163470 +0200
|
||||
+++ openssl-1.0.2a/doc/apps/s_server.pod 2015-04-22 16:25:31.843164156 +0200
|
||||
diff -up openssl-1.0.2c/doc/apps/s_server.pod.trusted-first openssl-1.0.2c/doc/apps/s_server.pod
|
||||
--- openssl-1.0.2c/doc/apps/s_server.pod.trusted-first 2015-06-15 17:45:13.116279853 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/s_server.pod 2015-06-15 17:49:37.420355873 +0200
|
||||
@@ -33,6 +33,7 @@ B<openssl> B<s_server>
|
||||
[B<-state>]
|
||||
[B<-CApath directory>]
|
||||
[B<-CAfile filename>]
|
||||
+[B<-trusted_first>]
|
||||
[B<-no_alt_chains>]
|
||||
[B<-nocert>]
|
||||
[B<-cipher cipherlist>]
|
||||
[B<-serverpref>]
|
||||
@@ -174,6 +175,12 @@ and to use when attempting to build the
|
||||
@@ -175,6 +176,12 @@ and to use when attempting to build the
|
||||
is also used in the list of acceptable client CAs passed to the client when
|
||||
a certificate is requested.
|
||||
|
||||
@ -209,12 +211,12 @@ diff -up openssl-1.0.2a/doc/apps/s_server.pod.trusted-first openssl-1.0.2a/doc/a
|
||||
+when building the trust chain to verify client certificates.
|
||||
+This is mainly useful in environments with Bridge CA or Cross-Certified CAs.
|
||||
+
|
||||
=item B<-state>
|
||||
=item B<-no_alt_chains>
|
||||
|
||||
prints out the SSL session states.
|
||||
diff -up openssl-1.0.2a/doc/apps/s_time.pod.trusted-first openssl-1.0.2a/doc/apps/s_time.pod
|
||||
--- openssl-1.0.2a/doc/apps/s_time.pod.trusted-first 2015-01-15 15:43:49.000000000 +0100
|
||||
+++ openssl-1.0.2a/doc/apps/s_time.pod 2015-04-22 16:25:31.843164156 +0200
|
||||
See the L<B<verify>|verify(1)> manual page for details.
|
||||
diff -up openssl-1.0.2c/doc/apps/s_time.pod.trusted-first openssl-1.0.2c/doc/apps/s_time.pod
|
||||
--- openssl-1.0.2c/doc/apps/s_time.pod.trusted-first 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/s_time.pod 2015-06-15 17:45:13.116279853 +0200
|
||||
@@ -14,6 +14,7 @@ B<openssl> B<s_time>
|
||||
[B<-key filename>]
|
||||
[B<-CApath directory>]
|
||||
@ -236,9 +238,9 @@ diff -up openssl-1.0.2a/doc/apps/s_time.pod.trusted-first openssl-1.0.2a/doc/app
|
||||
=item B<-new>
|
||||
|
||||
performs the timing test using a new session ID for each connection.
|
||||
diff -up openssl-1.0.2a/doc/apps/ts.pod.trusted-first openssl-1.0.2a/doc/apps/ts.pod
|
||||
--- openssl-1.0.2a/doc/apps/ts.pod.trusted-first 2015-01-20 13:33:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/doc/apps/ts.pod 2015-04-22 16:25:31.843164156 +0200
|
||||
diff -up openssl-1.0.2c/doc/apps/ts.pod.trusted-first openssl-1.0.2c/doc/apps/ts.pod
|
||||
--- openssl-1.0.2c/doc/apps/ts.pod.trusted-first 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/ts.pod 2015-06-15 17:45:13.116279853 +0200
|
||||
@@ -46,6 +46,7 @@ B<-verify>
|
||||
[B<-token_in>]
|
||||
[B<-CApath> trusted_cert_path]
|
||||
@ -260,9 +262,9 @@ diff -up openssl-1.0.2a/doc/apps/ts.pod.trusted-first openssl-1.0.2a/doc/apps/ts
|
||||
=item B<-untrusted> cert_file.pem
|
||||
|
||||
Set of additional untrusted certificates in PEM format which may be
|
||||
diff -up openssl-1.0.2a/doc/apps/verify.pod.trusted-first openssl-1.0.2a/doc/apps/verify.pod
|
||||
--- openssl-1.0.2a/doc/apps/verify.pod.trusted-first 2015-03-19 14:30:36.000000000 +0100
|
||||
+++ openssl-1.0.2a/doc/apps/verify.pod 2015-04-22 16:25:31.843164156 +0200
|
||||
diff -up openssl-1.0.2c/doc/apps/verify.pod.trusted-first openssl-1.0.2c/doc/apps/verify.pod
|
||||
--- openssl-1.0.2c/doc/apps/verify.pod.trusted-first 2015-06-12 16:51:21.000000000 +0200
|
||||
+++ openssl-1.0.2c/doc/apps/verify.pod 2015-06-15 17:45:13.116279853 +0200
|
||||
@@ -9,6 +9,7 @@ verify - Utility to verify certificates.
|
||||
B<openssl> B<verify>
|
||||
[B<-CApath directory>]
|
||||
@ -271,7 +273,7 @@ diff -up openssl-1.0.2a/doc/apps/verify.pod.trusted-first openssl-1.0.2a/doc/app
|
||||
[B<-purpose purpose>]
|
||||
[B<-policy arg>]
|
||||
[B<-ignore_critical>]
|
||||
@@ -78,6 +79,12 @@ If a valid CRL cannot be found an error
|
||||
@@ -79,6 +80,12 @@ If a valid CRL cannot be found an error
|
||||
A file of untrusted certificates. The file should contain multiple certificates
|
||||
in PEM format concatenated together.
|
||||
|
21
openssl.spec
21
openssl.spec
@ -22,8 +22,8 @@
|
||||
|
||||
Summary: Utilities from the general purpose cryptography library with TLS implementation
|
||||
Name: openssl
|
||||
Version: 1.0.2a
|
||||
Release: 4%{?dist}
|
||||
Version: 1.0.2c
|
||||
Release: 1%{?dist}
|
||||
Epoch: 1
|
||||
# We have to remove certain patented algorithms from the openssl source
|
||||
# tarball with the hobble-openssl script which is included below.
|
||||
@ -40,7 +40,7 @@ Source11: README.FIPS
|
||||
Source12: ec_curve.c
|
||||
Source13: ectest.c
|
||||
# Build changes
|
||||
Patch1: openssl-1.0.2a-rpmbuild.patch
|
||||
Patch1: openssl-1.0.2c-rpmbuild.patch
|
||||
Patch2: openssl-1.0.2a-defaults.patch
|
||||
Patch4: openssl-1.0.2a-enginesdir.patch
|
||||
Patch5: openssl-1.0.2a-no-rpath.patch
|
||||
@ -49,14 +49,14 @@ Patch7: openssl-1.0.0-timezone.patch
|
||||
Patch8: openssl-1.0.1c-perlfind.patch
|
||||
Patch9: openssl-1.0.1c-aliasing.patch
|
||||
# Bug fixes
|
||||
Patch23: openssl-1.0.2a-default-paths.patch
|
||||
Patch23: openssl-1.0.2c-default-paths.patch
|
||||
Patch24: openssl-1.0.2a-issuer-hash.patch
|
||||
# Functionality changes
|
||||
Patch33: openssl-1.0.0-beta4-ca-dir.patch
|
||||
Patch34: openssl-1.0.2a-x509.patch
|
||||
Patch35: openssl-1.0.2a-version-add-engines.patch
|
||||
Patch39: openssl-1.0.2a-ipv6-apps.patch
|
||||
Patch40: openssl-1.0.2a-fips.patch
|
||||
Patch40: openssl-1.0.2c-fips.patch
|
||||
Patch45: openssl-1.0.2a-env-zlib.patch
|
||||
Patch47: openssl-1.0.2a-readme-warning.patch
|
||||
Patch49: openssl-1.0.1i-algo-doc.patch
|
||||
@ -69,11 +69,10 @@ Patch63: openssl-1.0.2a-xmpp-starttls.patch
|
||||
Patch65: openssl-1.0.2a-chil-fixes.patch
|
||||
Patch66: openssl-1.0.2a-pkgconfig-krb5.patch
|
||||
Patch68: openssl-1.0.2a-secure-getenv.patch
|
||||
Patch69: openssl-1.0.2a-dh-1024.patch
|
||||
Patch70: openssl-1.0.2a-fips-ec.patch
|
||||
Patch71: openssl-1.0.2a-manfix.patch
|
||||
Patch72: openssl-1.0.2a-fips-ctor.patch
|
||||
Patch73: openssl-1.0.2a-ecc-suiteb.patch
|
||||
Patch73: openssl-1.0.2c-ecc-suiteb.patch
|
||||
Patch74: openssl-1.0.2a-no-md5-verify.patch
|
||||
Patch75: openssl-1.0.2a-compat-symbols.patch
|
||||
Patch76: openssl-1.0.2a-new-fips-reqs.patch
|
||||
@ -85,8 +84,7 @@ Patch93: openssl-1.0.2a-disable-sslv2v3.patch
|
||||
# Backported fixes including security fixes
|
||||
Patch80: openssl-1.0.2a-wrap-pad.patch
|
||||
Patch81: openssl-1.0.2a-padlock64.patch
|
||||
Patch82: openssl-1.0.2a-trusted-first-doc.patch
|
||||
Patch83: openssl-1.0.2a-alt-chains.patch
|
||||
Patch82: openssl-1.0.2c-trusted-first-doc.patch
|
||||
|
||||
License: OpenSSL
|
||||
Group: System Environment/Libraries
|
||||
@ -190,7 +188,6 @@ cp %{SOURCE12} %{SOURCE13} crypto/ec/
|
||||
%patch65 -p1 -b .chil
|
||||
%patch66 -p1 -b .krb5
|
||||
%patch68 -p1 -b .secure-getenv
|
||||
%patch69 -p1 -b .dh1024
|
||||
%patch70 -p1 -b .fips-ec
|
||||
%patch71 -p1 -b .manfix
|
||||
%patch72 -p1 -b .fips-ctor
|
||||
@ -207,7 +204,6 @@ cp %{SOURCE12} %{SOURCE13} crypto/ec/
|
||||
%patch80 -p1 -b .wrap
|
||||
%patch81 -p1 -b .padlock64
|
||||
%patch82 -p1 -b .trusted-first
|
||||
%patch83 -p1 -b .alt-chains
|
||||
|
||||
sed -i 's/SHLIB_VERSION_NUMBER "1.0.0"/SHLIB_VERSION_NUMBER "%{version}"/' crypto/opensslv.h
|
||||
|
||||
@ -478,6 +474,9 @@ rm -rf $RPM_BUILD_ROOT/%{_libdir}/fipscanister.*
|
||||
%postun libs -p /sbin/ldconfig
|
||||
|
||||
%changelog
|
||||
* Mon Jun 15 2015 Tomáš Mráz <tmraz@redhat.com> 1.0.2c-1
|
||||
- minor upstream release 1.0.2c fixing multiple security issues
|
||||
|
||||
* Thu May 7 2015 Peter Robinson <pbrobinson@fedoraproject.org> 1.0.2a-4
|
||||
- Add aarch64 sslarch details
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user