提交 23719187 编写于 作者: O openharmony_ci 提交者: Gitee

!11 openssl版本升级

Merge pull request !11 from HJ/0810

要显示的变更太多。

To preserve performance only 1000 of 1000+ files are displayed.
文件模式从 100755 更改为 100644
...@@ -13,6 +13,8 @@ Ben Kaduk ...@@ -13,6 +13,8 @@ Ben Kaduk
Bernd Edlinger Bernd Edlinger
Bodo Möller Bodo Möller
David Benjamin David Benjamin
David von Oheimb
Dmitry Belyavskiy (Дмитрий Белявский)
Emilia Käsper Emilia Käsper
Eric Young Eric Young
Geoff Thorpe Geoff Thorpe
...@@ -22,14 +24,19 @@ Lutz Jänicke ...@@ -22,14 +24,19 @@ Lutz Jänicke
Mark J. Cox Mark J. Cox
Matt Caswell Matt Caswell
Matthias St. Pierre Matthias St. Pierre
Nicola Tuveri
Nils Larsch Nils Larsch
Patrick Steuer
Paul Dale Paul Dale
Paul C. Sutton Paul C. Sutton
Paul Yang
Ralf S. Engelschall Ralf S. Engelschall
Rich Salz Rich Salz
Richard Levitte Richard Levitte
Shane Lontis
Stephen Henson Stephen Henson
Steve Marquess Steve Marquess
Tim Hudson Tim Hudson
Tomáš Mráz
Ulf Möller Ulf Möller
Viktor Dukhovni Viktor Dukhovni
...@@ -4,7 +4,6 @@ import("//build/ohos.gni") ...@@ -4,7 +4,6 @@ import("//build/ohos.gni")
# Only use this to set/unset some cflags, use "platform" variable in gn template to add # Only use this to set/unset some cflags, use "platform" variable in gn template to add
# source code for Windows. # source code for Windows.
use_mingw_win = "${current_os}_${current_cpu}" == "mingw_x86_64"
config("crypto_config") { config("crypto_config") {
include_dirs = [ include_dirs = [
...@@ -37,7 +36,7 @@ config("crypto_config") { ...@@ -37,7 +36,7 @@ config("crypto_config") {
"-DOPENSSL_NO_RIPEMD", "-DOPENSSL_NO_RIPEMD",
"-DOPENSSL_NO_RMD160", "-DOPENSSL_NO_RMD160",
] ]
if (target_cpu == "arm" && !use_mingw_win && host_os != "mac") { if (current_cpu == "arm" && !(current_os == "linux" || host_os == "mac")) {
cflags += [ cflags += [
"-DOPENSSL_CPUID_OBJ", "-DOPENSSL_CPUID_OBJ",
"-DOPENSSL_BN_ASM_MONT", "-DOPENSSL_BN_ASM_MONT",
...@@ -52,7 +51,8 @@ config("crypto_config") { ...@@ -52,7 +51,8 @@ config("crypto_config") {
"-DECP_NISTZ256_ASM", "-DECP_NISTZ256_ASM",
"-DPOLY1305_ASM", "-DPOLY1305_ASM",
] ]
} else if (target_cpu == "arm64" && !use_mingw_win && host_os != "mac") { } else if (current_cpu == "arm64" &&
!(current_os == "linux" || host_os == "mac")) {
cflags += [ cflags += [
"-DOPENSSL_CPUID_OBJ", "-DOPENSSL_CPUID_OBJ",
"-DOPENSSL_BN_ASM_MONT", "-DOPENSSL_BN_ASM_MONT",
...@@ -64,7 +64,7 @@ config("crypto_config") { ...@@ -64,7 +64,7 @@ config("crypto_config") {
"-DECP_NISTZ256_ASM", "-DECP_NISTZ256_ASM",
"-DPOLY1305_ASM", "-DPOLY1305_ASM",
] ]
} else if (use_mingw_win) { } else if (is_mingw) {
cflags -= [ cflags -= [
"-fPIC", "-fPIC",
"-DOPENSSL_NO_BF", "-DOPENSSL_NO_BF",
...@@ -89,8 +89,7 @@ config("crypto_config") { ...@@ -89,8 +89,7 @@ config("crypto_config") {
"-Wno-sign-compare", "-Wno-sign-compare",
"-Wno-incompatible-pointer-types", "-Wno-incompatible-pointer-types",
] ]
defines = [ "WINDOWS_PLATFORM" ] } else if (current_os == "linux" || host_os == "mac") {
} else if (host_os == "mac") {
cflags -= [ cflags -= [
"-DOPENSSL_NO_BF", "-DOPENSSL_NO_BF",
"-DOPENSSL_NO_CAMELLIA", "-DOPENSSL_NO_CAMELLIA",
...@@ -99,6 +98,9 @@ config("crypto_config") { ...@@ -99,6 +98,9 @@ config("crypto_config") {
"-DOPENSSL_NO_RC2", "-DOPENSSL_NO_RC2",
"-DOPENSSL_NO_RMD160", "-DOPENSSL_NO_RMD160",
] ]
if (current_os == "linux") {
cflags += [ "-m64" ]
}
cflags += [ cflags += [
"-DL_ENDIAN", "-DL_ENDIAN",
"-D_REENTRAN", "-D_REENTRAN",
...@@ -106,7 +108,6 @@ config("crypto_config") { ...@@ -106,7 +108,6 @@ config("crypto_config") {
"-MF", "-MF",
"-c", "-c",
] ]
defines = [ "MAC_PLATFORM" ]
} else { } else {
cflags += [ "-DOPENSSL_NO_ASM" ] cflags += [ "-DOPENSSL_NO_ASM" ]
} }
...@@ -115,8 +116,15 @@ config("crypto_config") { ...@@ -115,8 +116,15 @@ config("crypto_config") {
config("crypto_config_public") { config("crypto_config_public") {
include_dirs = [ "./include" ] include_dirs = [ "./include" ]
if (target_cpu == "arm") { if (current_cpu == "arm" && !(current_os == "linux" || host_os == "mac")) {
cflags = [ "-DCPU_ARM32" ] cflags = [ "-DOPENSSL_ARM_PLATFORM" ]
} else if (current_cpu == "arm64" &&
!(current_os == "linux" || host_os == "mac")) {
cflags = [ "-DOPENSSL_ARM64_PLATFORM" ]
} else if (is_mingw) {
cflags = [ "-DWINDOWS_PLATFORM" ]
} else if (current_os == "linux" || host_os == "mac") {
cflags = [ "-DMAC_PLATFORM" ]
} }
} }
...@@ -723,7 +731,7 @@ ohos_source_set("crypto_source") { ...@@ -723,7 +731,7 @@ ohos_source_set("crypto_source") {
"crypto/x509v3/v3err.c", "crypto/x509v3/v3err.c",
] ]
if (target_cpu == "arm" && !use_mingw_win && host_os != "mac") { if (current_cpu == "arm" && !(current_os == "linux" || host_os == "mac")) {
sources += [ sources += [
"crypto/aes/asm/arm32/aes-armv4.S", "crypto/aes/asm/arm32/aes-armv4.S",
"crypto/aes/asm/arm32/aesv8-armx.S", "crypto/aes/asm/arm32/aesv8-armx.S",
...@@ -743,7 +751,8 @@ ohos_source_set("crypto_source") { ...@@ -743,7 +751,8 @@ ohos_source_set("crypto_source") {
"crypto/sha/sha256-armv4.S", "crypto/sha/sha256-armv4.S",
"crypto/sha/sha512-armv4.S", "crypto/sha/sha512-armv4.S",
] ]
} else if (target_cpu == "arm64" && !use_mingw_win && host_os != "mac") { } else if (current_cpu == "arm64" &&
!(current_os == "linux" || host_os == "mac")) {
sources += [ sources += [
"crypto/aes/aes_core.c", "crypto/aes/aes_core.c",
"crypto/aes/asm/arm64/aesv8-armx.S", "crypto/aes/asm/arm64/aesv8-armx.S",
...@@ -761,7 +770,7 @@ ohos_source_set("crypto_source") { ...@@ -761,7 +770,7 @@ ohos_source_set("crypto_source") {
"crypto/sha/sha256-armv8.S", "crypto/sha/sha256-armv8.S",
"crypto/sha/sha512-armv8.S", "crypto/sha/sha512-armv8.S",
] ]
} else if (use_mingw_win || host_os == "mac") { } else if (is_mingw || (current_os == "linux" || host_os == "mac")) {
sources += [ sources += [
"crypto/aes/aes_core.c", "crypto/aes/aes_core.c",
"crypto/bf/bf_cfb64.c", "crypto/bf/bf_cfb64.c",
...@@ -802,7 +811,7 @@ ohos_source_set("crypto_source") { ...@@ -802,7 +811,7 @@ ohos_source_set("crypto_source") {
"crypto/ripemd/rmd_one.c", "crypto/ripemd/rmd_one.c",
"crypto/sha/keccak1600.c", "crypto/sha/keccak1600.c",
] ]
if (use_mingw_win) { if (is_mingw) {
sources -= [ sources -= [
"crypto/idea/i_cbc.c", "crypto/idea/i_cbc.c",
"crypto/idea/i_cfb64.c", "crypto/idea/i_cfb64.c",
...@@ -822,10 +831,9 @@ ohos_source_set("crypto_source") { ...@@ -822,10 +831,9 @@ ohos_source_set("crypto_source") {
] ]
} }
configs = [ configs = [ ":crypto_config" ]
":crypto_config",
":crypto_config_public", public_configs = [ ":crypto_config_public" ]
]
remove_configs = [ "//build/config/coverage:default_coverage" ] remove_configs = [ "//build/config/coverage:default_coverage" ]
} }
...@@ -868,7 +876,11 @@ config("ssl_config") { ...@@ -868,7 +876,11 @@ config("ssl_config") {
"-DOPENSSL_NO_SSL3_METHOD", "-DOPENSSL_NO_SSL3_METHOD",
] ]
if (use_mingw_win) { if (current_cpu == "arm" && host_os != "mac") {
cflags += [ "-DOPENSSL_ARM_PLATFORM" ]
} else if (current_cpu == "arm64" && host_os != "mac") {
cflags += [ "-DOPENSSL_ARM64_PLATFORM" ]
} else if (is_mingw) {
cflags -= [ "-fPIC" ] cflags -= [ "-fPIC" ]
cflags += [ cflags += [
"-m64", "-m64",
...@@ -947,6 +959,7 @@ ohos_source_set("ssl_source") { ...@@ -947,6 +959,7 @@ ohos_source_set("ssl_source") {
"ssl/tls_srp.c", "ssl/tls_srp.c",
] ]
configs = [ ":ssl_config" ] public_configs = [ ":ssl_config" ]
remove_configs = [ "//build/config/coverage:default_coverage" ] remove_configs = [ "//build/config/coverage:default_coverage" ]
} }
...@@ -7,6 +7,171 @@ ...@@ -7,6 +7,171 @@
https://github.com/openssl/openssl/commits/ and pick the appropriate https://github.com/openssl/openssl/commits/ and pick the appropriate
release branch. release branch.
Changes between 1.1.1j and 1.1.1k [25 Mar 2021]
*) Fixed a problem with verifying a certificate chain when using the
X509_V_FLAG_X509_STRICT flag. This flag enables additional security checks
of the certificates present in a certificate chain. It is not set by
default.
Starting from OpenSSL version 1.1.1h a check to disallow certificates in
the chain that have explicitly encoded elliptic curve parameters was added
as an additional strict check.
An error in the implementation of this check meant that the result of a
previous check to confirm that certificates in the chain are valid CA
certificates was overwritten. This effectively bypasses the check
that non-CA certificates must not be able to issue other certificates.
If a "purpose" has been configured then there is a subsequent opportunity
for checks that the certificate is a valid CA. All of the named "purpose"
values implemented in libcrypto perform this check. Therefore, where
a purpose is set the certificate chain will still be rejected even when the
strict flag has been used. A purpose is set by default in libssl client and
server certificate verification routines, but it can be overridden or
removed by an application.
In order to be affected, an application must explicitly set the
X509_V_FLAG_X509_STRICT verification flag and either not set a purpose
for the certificate verification or, in the case of TLS client or server
applications, override the default purpose.
(CVE-2021-3450)
[Tomáš Mráz]
*) Fixed an issue where an OpenSSL TLS server may crash if sent a maliciously
crafted renegotiation ClientHello message from a client. If a TLSv1.2
renegotiation ClientHello omits the signature_algorithms extension (where
it was present in the initial ClientHello), but includes a
signature_algorithms_cert extension then a NULL pointer dereference will
result, leading to a crash and a denial of service attack.
A server is only vulnerable if it has TLSv1.2 and renegotiation enabled
(which is the default configuration). OpenSSL TLS clients are not impacted
by this issue.
(CVE-2021-3449)
[Peter Kästle and Samuel Sapalski]
Changes between 1.1.1i and 1.1.1j [16 Feb 2021]
*) Fixed the X509_issuer_and_serial_hash() function. It attempts to
create a unique hash value based on the issuer and serial number data
contained within an X509 certificate. However it was failing to correctly
handle any errors that may occur while parsing the issuer field (which might
occur if the issuer field is maliciously constructed). This may subsequently
result in a NULL pointer deref and a crash leading to a potential denial of
service attack.
(CVE-2021-23841)
[Matt Caswell]
*) Fixed the RSA_padding_check_SSLv23() function and the RSA_SSLV23_PADDING
padding mode to correctly check for rollback attacks. This is considered a
bug in OpenSSL 1.1.1 because it does not support SSLv2. In 1.0.2 this is
CVE-2021-23839.
[Matt Caswell]
*) Fixed the EVP_CipherUpdate, EVP_EncryptUpdate and EVP_DecryptUpdate
functions. Previously they could overflow the output length argument in some
cases where the input length is close to the maximum permissable length for
an integer on the platform. In such cases the return value from the function
call would be 1 (indicating success), but the output length value would be
negative. This could cause applications to behave incorrectly or crash.
(CVE-2021-23840)
[Matt Caswell]
*) Fixed SRP_Calc_client_key so that it runs in constant time. The previous
implementation called BN_mod_exp without setting BN_FLG_CONSTTIME. This
could be exploited in a side channel attack to recover the password. Since
the attack is local host only this is outside of the current OpenSSL
threat model and therefore no CVE is assigned.
Thanks to Mohammed Sabt and Daniel De Almeida Braga for reporting this
issue.
[Matt Caswell]
Changes between 1.1.1h and 1.1.1i [8 Dec 2020]
*) Fixed NULL pointer deref in the GENERAL_NAME_cmp function
This function could crash if both GENERAL_NAMEs contain an EDIPARTYNAME.
If an attacker can control both items being compared then this could lead
to a possible denial of service attack. OpenSSL itself uses the
GENERAL_NAME_cmp function for two purposes:
1) Comparing CRL distribution point names between an available CRL and a
CRL distribution point embedded in an X509 certificate
2) When verifying that a timestamp response token signer matches the
timestamp authority name (exposed via the API functions
TS_RESP_verify_response and TS_RESP_verify_token)
(CVE-2020-1971)
[Matt Caswell]
*) Add support for Apple Silicon M1 Macs with the darwin64-arm64-cc target.
[Stuart Carnie]
*) The security callback, which can be customised by application code, supports
the security operation SSL_SECOP_TMP_DH. This is defined to take an EVP_PKEY
in the "other" parameter. In most places this is what is passed. All these
places occur server side. However there was one client side call of this
security operation and it passed a DH object instead. This is incorrect
according to the definition of SSL_SECOP_TMP_DH, and is inconsistent with all
of the other locations. Therefore this client side call has been changed to
pass an EVP_PKEY instead.
[Matt Caswell]
*) In 1.1.1h, an expired trusted (root) certificate was not anymore rejected
when validating a certificate path. This check is restored in 1.1.1i.
[David von Oheimb]
Changes between 1.1.1g and 1.1.1h [22 Sep 2020]
*) Certificates with explicit curve parameters are now disallowed in
verification chains if the X509_V_FLAG_X509_STRICT flag is used.
[Tomas Mraz]
*) The 'MinProtocol' and 'MaxProtocol' configuration commands now silently
ignore TLS protocol version bounds when configuring DTLS-based contexts, and
conversely, silently ignore DTLS protocol version bounds when configuring
TLS-based contexts. The commands can be repeated to set bounds of both
types. The same applies with the corresponding "min_protocol" and
"max_protocol" command-line switches, in case some application uses both TLS
and DTLS.
SSL_CTX instances that are created for a fixed protocol version (e.g.
TLSv1_server_method()) also silently ignore version bounds. Previously
attempts to apply bounds to these protocol versions would result in an
error. Now only the "version-flexible" SSL_CTX instances are subject to
limits in configuration files in command-line options.
[Viktor Dukhovni]
*) Handshake now fails if Extended Master Secret extension is dropped
on renegotiation.
[Tomas Mraz]
*) Accidentally, an expired trusted (root) certificate is not anymore rejected
when validating a certificate path.
[David von Oheimb]
*) The Oracle Developer Studio compiler will start reporting deprecated APIs
Changes between 1.1.1f and 1.1.1g [21 Apr 2020]
*) Fixed segmentation fault in SSL_check_chain()
Server or client applications that call the SSL_check_chain() function
during or after a TLS 1.3 handshake may crash due to a NULL pointer
dereference as a result of incorrect handling of the
"signature_algorithms_cert" TLS extension. The crash occurs if an invalid
or unrecognised signature algorithm is received from the peer. This could
be exploited by a malicious peer in a Denial of Service attack.
(CVE-2020-1967)
[Benjamin Kaduk]
*) Added AES consttime code for no-asm configurations
an optional constant time support for AES was added
when building openssl for no-asm.
Enable with: ./config no-asm -DOPENSSL_AES_CONST_TIME
Disable with: ./config no-asm -DOPENSSL_NO_AES_CONST_TIME
At this time this feature is by default disabled.
It will be enabled by default in 3.0.
[Bernd Edlinger]
Changes between 1.1.1e and 1.1.1f [31 Mar 2020] Changes between 1.1.1e and 1.1.1f [31 Mar 2020]
*) Revert the change of EOF detection while reading in libssl to avoid *) Revert the change of EOF detection while reading in libssl to avoid
......
...@@ -41,8 +41,8 @@ guidelines: ...@@ -41,8 +41,8 @@ guidelines:
https://www.openssl.org/policies/codingstyle.html) and compile https://www.openssl.org/policies/codingstyle.html) and compile
without warnings. Where gcc or clang is available you should use the without warnings. Where gcc or clang is available you should use the
--strict-warnings Configure option. OpenSSL compiles on many varied --strict-warnings Configure option. OpenSSL compiles on many varied
platforms: try to ensure you only use portable features. Clean builds platforms: try to ensure you only use portable features. Clean builds via
via Travis and AppVeyor are required, and they are started automatically GitHub Actions and AppVeyor are required, and they are started automatically
whenever a PR is created or updated. whenever a PR is created or updated.
5. When at all possible, patches should include tests. These can 5. When at all possible, patches should include tests. These can
......
文件模式从 100755 更改为 100644
...@@ -663,6 +663,7 @@ my %targets = ( ...@@ -663,6 +663,7 @@ my %targets = (
"linux-ppc" => { "linux-ppc" => {
inherit_from => [ "linux-generic32", asm("ppc32_asm") ], inherit_from => [ "linux-generic32", asm("ppc32_asm") ],
perlasm_scheme => "linux32", perlasm_scheme => "linux32",
lib_cppflags => add("-DB_ENDIAN"),
}, },
"linux-ppc64" => { "linux-ppc64" => {
inherit_from => [ "linux-generic64", asm("ppc64_asm") ], inherit_from => [ "linux-generic64", asm("ppc64_asm") ],
...@@ -741,7 +742,7 @@ my %targets = ( ...@@ -741,7 +742,7 @@ my %targets = (
inherit_from => [ "linux-generic32", asm("mips64_asm") ], inherit_from => [ "linux-generic32", asm("mips64_asm") ],
cflags => add("-mabi=n32"), cflags => add("-mabi=n32"),
cxxflags => add("-mabi=n32"), cxxflags => add("-mabi=n32"),
bn_ops => "SIXTY_FOUR_BIT RC4_CHAR", bn_ops => "RC4_CHAR",
perlasm_scheme => "n32", perlasm_scheme => "n32",
multilib => "32", multilib => "32",
}, },
...@@ -1125,7 +1126,7 @@ my %targets = ( ...@@ -1125,7 +1126,7 @@ my %targets = (
CFLAGS => picker(debug => "-O0 -g", CFLAGS => picker(debug => "-O0 -g",
release => "-O"), release => "-O"),
cflags => add(threads("-pthread")), cflags => add(threads("-pthread")),
ex_libs => threads("-pthread"), ex_libs => add(threads("-pthread")),
bn_ops => "BN_LLONG RC4_CHAR", bn_ops => "BN_LLONG RC4_CHAR",
perlasm_scheme => "aix32", perlasm_scheme => "aix32",
shared_ldflag => add_before("-shared -static-libgcc"), shared_ldflag => add_before("-shared -static-libgcc"),
...@@ -1138,7 +1139,7 @@ my %targets = ( ...@@ -1138,7 +1139,7 @@ my %targets = (
CFLAGS => picker(debug => "-O0 -g", CFLAGS => picker(debug => "-O0 -g",
release => "-O"), release => "-O"),
cflags => combine("-maix64", threads("-pthread")), cflags => combine("-maix64", threads("-pthread")),
ex_libs => threads("-pthread"), ex_libs => add(threads("-pthread")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
perlasm_scheme => "aix64", perlasm_scheme => "aix64",
shared_ldflag => add_before("-shared -static-libgcc"), shared_ldflag => add_before("-shared -static-libgcc"),
...@@ -1154,7 +1155,7 @@ my %targets = ( ...@@ -1154,7 +1155,7 @@ my %targets = (
cflags => combine("-q32 -qmaxmem=16384 -qro -qroconst", cflags => combine("-q32 -qmaxmem=16384 -qro -qroconst",
threads("-qthreaded")), threads("-qthreaded")),
cppflags => threads("-D_THREAD_SAFE"), cppflags => threads("-D_THREAD_SAFE"),
ex_libs => threads("-lpthreads"), ex_libs => add(threads("-lpthreads")),
bn_ops => "BN_LLONG RC4_CHAR", bn_ops => "BN_LLONG RC4_CHAR",
perlasm_scheme => "aix32", perlasm_scheme => "aix32",
shared_cflag => "-qpic", shared_cflag => "-qpic",
...@@ -1169,7 +1170,7 @@ my %targets = ( ...@@ -1169,7 +1170,7 @@ my %targets = (
cflags => combine("-q64 -qmaxmem=16384 -qro -qroconst", cflags => combine("-q64 -qmaxmem=16384 -qro -qroconst",
threads("-qthreaded")), threads("-qthreaded")),
cppflags => threads("-D_THREAD_SAFE"), cppflags => threads("-D_THREAD_SAFE"),
ex_libs => threads("-lpthreads"), ex_libs => add(threads("-lpthreads")),
bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR", bn_ops => "SIXTY_FOUR_BIT_LONG RC4_CHAR",
perlasm_scheme => "aix64", perlasm_scheme => "aix64",
dso_scheme => "dlfcn", dso_scheme => "dlfcn",
...@@ -1365,9 +1366,9 @@ my %targets = ( ...@@ -1365,9 +1366,9 @@ my %targets = (
} }
push @ex_libs, '$(PORTSDK_LIBPATH)/portlib.lib' push @ex_libs, '$(PORTSDK_LIBPATH)/portlib.lib'
if (defined(env('PORTSDK_LIBPATH'))); if (defined(env('PORTSDK_LIBPATH')));
push @ex_libs, ' /nodefaultlib coredll.lib corelibc.lib' push @ex_libs, '/nodefaultlib coredll.lib corelibc.lib'
if (env('TARGETCPU') eq "X86"); if (env('TARGETCPU') =~ /^X86|^ARMV4[IT]/);
return @ex_libs; return join(" ", @ex_libs);
}), }),
}, },
...@@ -1557,6 +1558,14 @@ my %targets = ( ...@@ -1557,6 +1558,14 @@ my %targets = (
bn_ops => "SIXTY_FOUR_BIT_LONG", bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "macosx", perlasm_scheme => "macosx",
}, },
"darwin64-arm64-cc" => {
inherit_from => [ "darwin-common", asm("aarch64_asm") ],
CFLAGS => add("-Wall"),
cflags => add("-arch arm64"),
lib_cppflags => add("-DL_ENDIAN"),
bn_ops => "SIXTY_FOUR_BIT_LONG",
perlasm_scheme => "ios64",
},
##### GNU Hurd ##### GNU Hurd
"hurd-x86" => { "hurd-x86" => {
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
...@@ -377,8 +377,13 @@ NODEBUG=@ ...@@ -377,8 +377,13 @@ NODEBUG=@
$(NODEBUG) ! $(NODEBUG) !
$(NODEBUG) ! Installation logical names $(NODEBUG) ! Installation logical names
$(NODEBUG) ! $(NODEBUG) !
$(NODEBUG) installtop = F$PARSE(staging_instdir,"$(INSTALLTOP)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]" $(NODEBUG) ! This also creates a few DCL variables that are used for
$(NODEBUG) datatop = F$PARSE(staging_datadir,"$(OPENSSLDIR)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;" + ".]" $(NODEBUG) ! the "install_msg" target.
$(NODEBUG) !
$(NODEBUG) installroot = F$PARSE(staging_instdir,"$(INSTALLTOP)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;"
$(NODEBUG) installtop = installroot + ".]"
$(NODEBUG) dataroot = F$PARSE(staging_datadir,"$(OPENSSLDIR)","[]A.;",,"SYNTAX_ONLY,NO_CONCEAL") - ".][000000" - "[000000." - "][" - "]A.;"
$(NODEBUG) datatop = dataroot + ".]"
$(NODEBUG) DEFINE ossl_installroot 'installtop' $(NODEBUG) DEFINE ossl_installroot 'installtop'
$(NODEBUG) DEFINE ossl_dataroot 'datatop' $(NODEBUG) DEFINE ossl_dataroot 'datatop'
$(NODEBUG) ! $(NODEBUG) !
...@@ -455,30 +460,19 @@ list-tests : ...@@ -455,30 +460,19 @@ list-tests :
@ WRITE SYS$OUTPUT "Tests are not supported with your chosen Configure options" @ WRITE SYS$OUTPUT "Tests are not supported with your chosen Configure options"
@ ! {- output_on() if !$disabled{tests}; "" -} @ ! {- output_on() if !$disabled{tests}; "" -}
install : install_sw install_ssldirs install_docs install : install_sw install_ssldirs install_docs install_msg
@ !
install_msg :
@ WRITE SYS$OUTPUT "" @ WRITE SYS$OUTPUT ""
@ WRITE SYS$OUTPUT "######################################################################" @ WRITE SYS$OUTPUT "######################################################################"
@ WRITE SYS$OUTPUT "" @ WRITE SYS$OUTPUT ""
@ IF "$(DESTDIR)" .EQS. "" THEN - @ IF "$(DESTDIR)" .EQS. "" THEN -
PIPE ( WRITE SYS$OUTPUT "Installation complete" ; - @{- sourcefile("VMS", "msg_install.com") -} "$(SYSTARTUP)" "{- $osslver -}"
WRITE SYS$OUTPUT "" ; -
WRITE SYS$OUTPUT "Run @$(SYSTARTUP)openssl_startup{- $osslver -} to set up logical names" ; -
WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils{- $osslver -} to define commands" ; -
WRITE SYS$OUTPUT "" )
@ IF "$(DESTDIR)" .NES. "" THEN - @ IF "$(DESTDIR)" .NES. "" THEN -
PIPE ( WRITE SYS$OUTPUT "Staging installation complete" ; - @{- sourcefile("VMS", "msg_staging.com") -} -
WRITE SYS$OUTPUT "" ; - "''installroot']" "''dataroot']" "$(INSTALLTOP)" "$(OPENSSLDIR)" -
WRITE SYS$OUTPUT "Finish or package in such a way that the contents of the directory tree" ; - "$(SYSTARTUP)" "{- $osslver -}"
WRITE SYS$OUTPUT staging_instdir ; -
WRITE SYS$OUTPUT "ends up in $(INSTALLTOP)," ; -
WRITE SYS$OUTPUT "and that the contents of the contents of the directory tree" ; -
WRITE SYS$OUTPUT staging_datadir ; -
WRITE SYS$OUTPUT "ends up in $(OPENSSLDIR)" ; -
WRITE SYS$OUTPUT "" ; -
WRITE SYS$OUTPUT "When in its final destination," ; -
WRITE SYS$OUTPUT "Run @$(SYSTARTUP)openssl_startup{- $osslver -} to set up logical names" ; -
WRITE SYS$OUTPUT "then run @$(SYSTARTUP)openssl_utils{- $osslver -} to define commands" ; -
WRITE SYS$OUTPUT "" )
check_install : check_install :
spawn/nolog @ossl_installroot:[SYSTEST]openssl_ivp{- $osslver -}.com spawn/nolog @ossl_installroot:[SYSTEST]openssl_ivp{- $osslver -}.com
......
文件模式从 100755 更改为 100644
...@@ -917,8 +917,8 @@ errors: ...@@ -917,8 +917,8 @@ errors:
done ) done )
ordinals: ordinals:
( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b util/mkdef.pl crypto update ) $(PERL) $(SRCDIR)/util/mkdef.pl crypto update
( b=`pwd`; cd $(SRCDIR); $(PERL) -I$$b util/mkdef.pl ssl update ) $(PERL) $(SRCDIR)/util/mkdef.pl ssl update
test_ordinals: test_ordinals:
( cd test; \ ( cd test; \
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
...@@ -211,8 +211,8 @@ CNF_CPPFLAGS={- our $cppfags2 = ...@@ -211,8 +211,8 @@ CNF_CPPFLAGS={- our $cppfags2 =
join(' ', $target{cppflags} || (), join(' ', $target{cppflags} || (),
(map { '-D'.quotify1($_) } @{$target{defines}}, (map { '-D'.quotify1($_) } @{$target{defines}},
@{$config{defines}}), @{$config{defines}}),
(map { '-I'.quotify1($_) } @{$target{includes}}, (map { '-I'.'"'.$_.'"' } @{$target{includes}},
@{$config{includes}}), @{$config{includes}}),
@{$config{cppflags}}) -} @{$config{cppflags}}) -}
CNF_CFLAGS={- join(' ', $target{cflags} || (), CNF_CFLAGS={- join(' ', $target{cflags} || (),
@{$config{cflags}}) -} @{$config{cflags}}) -}
......
#! /usr/bin/env perl #! /usr/bin/env perl
# -*- mode: perl; -*- # -*- mode: perl; -*-
# Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. # Copyright 2016-2021 The OpenSSL Project Authors. All Rights Reserved.
# #
# Licensed under the OpenSSL license (the "License"). You may not use # Licensed under the OpenSSL license (the "License"). You may not use
# this file except in compliance with the License. You can obtain a copy # this file except in compliance with the License. You can obtain a copy
...@@ -217,12 +217,22 @@ sub resolve_config; ...@@ -217,12 +217,22 @@ sub resolve_config;
# Unified build supports separate build dir # Unified build supports separate build dir
my $srcdir = catdir(absolutedir(dirname($0))); # catdir ensures local syntax my $srcdir = catdir(absolutedir(dirname($0))); # catdir ensures local syntax
my $blddir = catdir(absolutedir(".")); # catdir ensures local syntax my $blddir = catdir(absolutedir(".")); # catdir ensures local syntax
# File::Spec::Unix doesn't detect case insensitivity, so we make sure to
# check if the source and build directory are really the same, and make
# them so. This avoids all kinds of confusion later on.
# We must check @File::Spec::ISA rather than using File::Spec->isa() to
# know if File::Spec ended up loading File::Spec::Unix.
$srcdir = $blddir
if (grep(/::Unix$/, @File::Spec::ISA)
&& samedir($srcdir, $blddir));
my $dofile = abs2rel(catfile($srcdir, "util/dofile.pl")); my $dofile = abs2rel(catfile($srcdir, "util/dofile.pl"));
my $local_config_envname = 'OPENSSL_LOCAL_CONFIG_DIR'; my $local_config_envname = 'OPENSSL_LOCAL_CONFIG_DIR';
$config{sourcedir} = abs2rel($srcdir); $config{sourcedir} = abs2rel($srcdir, $blddir);
$config{builddir} = abs2rel($blddir); $config{builddir} = abs2rel($blddir, $blddir);
# Collect reconfiguration information if needed # Collect reconfiguration information if needed
my @argvcopy=@ARGV; my @argvcopy=@ARGV;
...@@ -1049,6 +1059,9 @@ if (scalar(@seed_sources) == 0) { ...@@ -1049,6 +1059,9 @@ if (scalar(@seed_sources) == 0) {
print "Using os-specific seed configuration\n"; print "Using os-specific seed configuration\n";
push @seed_sources, 'os'; push @seed_sources, 'os';
} }
if (scalar(grep { $_ eq 'egd' } @seed_sources) > 0) {
delete $disabled{'egd'};
}
if (scalar(grep { $_ eq 'none' } @seed_sources) > 0) { if (scalar(grep { $_ eq 'none' } @seed_sources) > 0) {
die "Cannot seed with none and anything else" if scalar(@seed_sources) > 1; die "Cannot seed with none and anything else" if scalar(@seed_sources) > 1;
warn <<_____ if scalar(@seed_sources) == 1; warn <<_____ if scalar(@seed_sources) == 1;
...@@ -1188,6 +1201,10 @@ foreach (keys %useradd) { ...@@ -1188,6 +1201,10 @@ foreach (keys %useradd) {
# At this point, we can forget everything about %user and %useradd, # At this point, we can forget everything about %user and %useradd,
# because it's now all been merged into the corresponding $config entry # because it's now all been merged into the corresponding $config entry
if (grep { $_ eq '-static' } @{$config{LDFLAGS}}) {
disable('static', 'pic', 'threads');
}
# Allow overriding the build file name # Allow overriding the build file name
$config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile"; $config{build_file} = env('BUILDFILE') || $target{build_file} || "Makefile";
...@@ -1508,10 +1525,6 @@ if ($strict_warnings) ...@@ -1508,10 +1525,6 @@ if ($strict_warnings)
} }
} }
if (grep { $_ eq '-static' } @{$config{LDFLAGS}}) {
disable('static', 'pic', 'threads');
}
$config{CFLAGS} = [ map { $_ eq '--ossl-strict-warnings' $config{CFLAGS} = [ map { $_ eq '--ossl-strict-warnings'
? @strict_warnings_collection ? @strict_warnings_collection
: ( $_ ) } : ( $_ ) }
...@@ -2598,19 +2611,22 @@ _____ ...@@ -2598,19 +2611,22 @@ _____
} }
print "\nEnabled features:\n\n"; print "\nEnabled features:\n\n";
foreach my $what (@disablables) { foreach my $what (@disablables) {
print " $what\n" unless $disabled{$what}; print " $what\n"
unless grep { $_ =~ /^${what}$/ } keys %disabled;
} }
print "\nDisabled features:\n\n"; print "\nDisabled features:\n\n";
foreach my $what (@disablables) { foreach my $what (@disablables) {
if ($disabled{$what}) { my @what2 = grep { $_ =~ /^${what}$/ } keys %disabled;
print " $what", ' ' x ($longest - length($what) + 1), my $what3 = $what2[0];
"[$disabled{$what}]", ' ' x ($longest2 - length($disabled{$what}) + 1); if ($what3) {
print $disabled_info{$what}->{macro} print " $what3", ' ' x ($longest - length($what3) + 1),
if $disabled_info{$what}->{macro}; "[$disabled{$what3}]", ' ' x ($longest2 - length($disabled{$what3}) + 1);
print $disabled_info{$what3}->{macro}
if $disabled_info{$what3}->{macro};
print ' (skip ', print ' (skip ',
join(', ', @{$disabled_info{$what}->{skipped}}), join(', ', @{$disabled_info{$what3}->{skipped}}),
')' ')'
if $disabled_info{$what}->{skipped}; if $disabled_info{$what3}->{skipped};
print "\n"; print "\n";
} }
} }
...@@ -3424,6 +3440,27 @@ sub absolutedir { ...@@ -3424,6 +3440,27 @@ sub absolutedir {
return realpath($dir); return realpath($dir);
} }
# Check if all paths are one and the same, using stat. They must both exist
# We need this for the cases when File::Spec doesn't detect case insensitivity
# (File::Spec::Unix assumes case sensitivity)
sub samedir {
die "samedir expects two arguments\n" unless scalar @_ == 2;
my @stat0 = stat($_[0]); # First argument
my @stat1 = stat($_[1]); # Second argument
die "Couldn't stat $_[0]" unless @stat0;
die "Couldn't stat $_[1]" unless @stat1;
# Compare device number
return 0 unless ($stat0[0] == $stat1[0]);
# Compare "inode". The perl manual recommends comparing as
# string rather than as number.
return 0 unless ($stat0[1] eq $stat1[1]);
return 1; # All the same
}
sub quotify { sub quotify {
my %processors = ( my %processors = (
perl => sub { my $x = shift; perl => sub { my $x = shift;
......
文件模式从 100755 更改为 100644
...@@ -106,8 +106,7 @@ ...@@ -106,8 +106,7 @@
This will build and install OpenSSL in the default location, which is: This will build and install OpenSSL in the default location, which is:
Unix: normal installation directories under /usr/local Unix: normal installation directories under /usr/local
OpenVMS: SYS$COMMON:[OPENSSL-'version'...], where 'version' is the OpenVMS: SYS$COMMON:[OPENSSL]
OpenSSL version number with underscores instead of periods.
Windows: C:\Program Files\OpenSSL or C:\Program Files (x86)\OpenSSL Windows: C:\Program Files\OpenSSL or C:\Program Files (x86)\OpenSSL
The installation directory should be appropriately protected to ensure The installation directory should be appropriately protected to ensure
...@@ -116,7 +115,9 @@ ...@@ -116,7 +115,9 @@
your Operating System it is recommended that you do not overwrite the system your Operating System it is recommended that you do not overwrite the system
version and instead install to somewhere else. version and instead install to somewhere else.
If you want to install it anywhere else, run config like this: If you want to install it anywhere else, run config like this (the options
--prefix and --openssldir are explained further down, and the values shown
here are mere examples):
On Unix: On Unix:
...@@ -198,7 +199,7 @@ ...@@ -198,7 +199,7 @@
Unix: /usr/local Unix: /usr/local
Windows: C:\Program Files\OpenSSL Windows: C:\Program Files\OpenSSL
or C:\Program Files (x86)\OpenSSL or C:\Program Files (x86)\OpenSSL
OpenVMS: SYS$COMMON:[OPENSSL-'version'] OpenVMS: SYS$COMMON:[OPENSSL]
--release --release
Build OpenSSL without debugging symbols. This is the default. Build OpenSSL without debugging symbols. This is the default.
...@@ -535,9 +536,9 @@ ...@@ -535,9 +536,9 @@
conjunction with the "-DPEDANTIC" option (or the conjunction with the "-DPEDANTIC" option (or the
--strict-warnings option). --strict-warnings option).
no-ui no-ui-console
Don't build with the "UI" capability (i.e. the set of Don't build with the "UI" console method (i.e. the "UI"
features enabling text based prompts). method that enables text based console prompts).
enable-unit-test enable-unit-test
Enable additional unit test APIs. This should not typically Enable additional unit test APIs. This should not typically
...@@ -961,9 +962,9 @@ ...@@ -961,9 +962,9 @@
share/doc/openssl/html/man7 share/doc/openssl/html/man7
Contains the HTML rendition of the man-pages. Contains the HTML rendition of the man-pages.
OpenVMS ('arch' is replaced with the architecture name, "Alpha" OpenVMS ('arch' is replaced with the architecture name, "ALPHA"
or "ia64", 'sover' is replaced with the shared library version or "IA64", 'sover' is replaced with the shared library version
(0101 for 1.1), and 'pz' is replaced with the pointer size (0101 for 1.1.x), and 'pz' is replaced with the pointer size
OpenSSL was built with): OpenSSL was built with):
[.EXE.'arch'] Contains the openssl binary. [.EXE.'arch'] Contains the openssl binary.
......
文件模式从 100755 更改为 100644
...@@ -5,6 +5,40 @@ ...@@ -5,6 +5,40 @@
This file gives a brief overview of the major changes between each OpenSSL This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file. release. For more details please read the CHANGES file.
Major changes between OpenSSL 1.1.1j and OpenSSL 1.1.1k [25 Mar 2021]
o Fixed a problem with verifying a certificate chain when using the
X509_V_FLAG_X509_STRICT flag (CVE-2021-3450)
o Fixed an issue where an OpenSSL TLS server may crash if sent a
maliciously crafted renegotiation ClientHello message from a client
(CVE-2021-3449)
Major changes between OpenSSL 1.1.1i and OpenSSL 1.1.1j [16 Feb 2021]
o Fixed a NULL pointer deref in the X509_issuer_and_serial_hash()
function (CVE-2021-23841)
o Fixed the RSA_padding_check_SSLv23() function and the RSA_SSLV23_PADDING
padding mode to correctly check for rollback attacks
o Fixed an overflow in the EVP_CipherUpdate, EVP_EncryptUpdate and
EVP_DecryptUpdate functions (CVE-2021-23840)
o Fixed SRP_Calc_client_key so that it runs in constant time
Major changes between OpenSSL 1.1.1h and OpenSSL 1.1.1i [8 Dec 2020]
o Fixed NULL pointer deref in GENERAL_NAME_cmp (CVE-2020-1971)
Major changes between OpenSSL 1.1.1g and OpenSSL 1.1.1h [22 Sep 2020]
o Disallow explicit curve parameters in verifications chains when
X509_V_FLAG_X509_STRICT is used
o Enable 'MinProtocol' and 'MaxProtocol' to configure both TLS and DTLS
contexts
o Oracle Developer Studio will start reporting deprecation warnings
Major changes between OpenSSL 1.1.1f and OpenSSL 1.1.1g [21 Apr 2020]
o Fixed segmentation fault in SSL_check_chain() (CVE-2020-1967)
Major changes between OpenSSL 1.1.1e and OpenSSL 1.1.1f [31 Mar 2020] Major changes between OpenSSL 1.1.1e and OpenSSL 1.1.1f [31 Mar 2020]
o Revert the unexpected EOF reporting via SSL_ERROR_SSL o Revert the unexpected EOF reporting via SSL_ERROR_SSL
......
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
------------------- -------------------
Beside basic tools like perl and make you'll need to download the Android Beside basic tools like perl and make you'll need to download the Android
NDK. It's available for Linux, Mac OS X and Windows, but only Linux NDK. It's available for Linux, macOS and Windows, but only Linux
version was actually tested. There is no reason to believe that Mac OS X version was actually tested. There is no reason to believe that macOS
wouldn't work. And as for Windows, it's unclear which "shell" would be wouldn't work. And as for Windows, it's unclear which "shell" would be
suitable, MSYS2 might have best chances. NDK version should play lesser suitable, MSYS2 might have best chances. NDK version should play lesser
role, the goal is to support a range of most recent versions. role, the goal is to support a range of most recent versions.
......
文件模式从 100755 更改为 100644
...@@ -109,7 +109,7 @@ ...@@ -109,7 +109,7 @@
$ cpan -f -i Text::Template $ cpan -f -i Text::Template
Note: on VMS, you must quote any argument that contains upper case Note: on VMS, you must quote any argument that contains uppercase
characters, so the lines above would be: characters, so the lines above would be:
$ cpan -i "Text::Template" $ cpan -i "Text::Template"
......
文件模式从 100755 更改为 100644
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
An ANSI C compiled is needed among other things. This means that An ANSI C compiled is needed among other things. This means that
VAX C is not and will not be supported. VAX C is not and will not be supported.
We have only tested with DEC C (a.k.a HP VMS C / VSI C) and require We have only tested with DEC C (aka HP VMS C / VSI C) and require
version 7.1 or later. Compiling with a different ANSI C compiler may version 7.1 or later. Compiling with a different ANSI C compiler may
require some work. require some work.
...@@ -90,9 +90,9 @@ ...@@ -90,9 +90,9 @@
Unix mount point. Unix mount point.
The easiest way to check if everything got through as it should is to The easiest way to check if everything got through as it should is to
check for one of the following files: check that this file exists:
[.crypto]opensslconf^.h.in [.include.openssl]opensslconf^.h.in
The best way to get a correct distribution is to download the gzipped The best way to get a correct distribution is to download the gzipped
tar file from ftp://ftp.openssl.org/source/, use GZIP -d to uncompress tar file from ftp://ftp.openssl.org/source/, use GZIP -d to uncompress
...@@ -105,3 +105,11 @@ ...@@ -105,3 +105,11 @@
Should you need it, you can find UnZip for VMS here: Should you need it, you can find UnZip for VMS here:
http://www.info-zip.org/UnZip.html http://www.info-zip.org/UnZip.html
How the value of 'arch' is determined
-------------------------------------
'arch' is mentioned in INSTALL. It's value is determined like this:
arch = f$edit( f$getsyi( "arch_name"), "upcase")
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
and require --cross-compile-prefix option. While on MSYS[2] it's solved and require --cross-compile-prefix option. While on MSYS[2] it's solved
rather by placing gcc that produces "MinGW binary" code 1st on $PATH. rather by placing gcc that produces "MinGW binary" code 1st on $PATH.
This is customarily source of confusion. "Hosted" applications "live" in This is customarily source of confusion. "Hosted" applications "live" in
emulated file system name space with POSIX-y root, mount points, /dev emulated filesystem name space with POSIX-y root, mount points, /dev
and even /proc. Confusion is intensified by the fact that MSYS2 shell and even /proc. Confusion is intensified by the fact that MSYS2 shell
(or rather emulated execve(2) call) examines the binary it's about to (or rather emulated execve(2) call) examines the binary it's about to
start, and if it's found *not* to be linked with MSYS2 POSIX-y thing, start, and if it's found *not* to be linked with MSYS2 POSIX-y thing,
command line arguments that look like file names get translated from command line arguments that look like filenames get translated from
emulated name space to "native". For example '/c/some/where' becomes emulated name space to "native". For example '/c/some/where' becomes
'c:\some\where', '/dev/null' - 'nul'. This creates an illusion that 'c:\some\where', '/dev/null' - 'nul'. This creates an illusion that
there is no difference between MSYS2 shell and "MinGW binary", but there is no difference between MSYS2 shell and "MinGW binary", but
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
it's referred to in quotes here, as "MinGW binary", it's just as it's referred to in quotes here, as "MinGW binary", it's just as
"native" as it can get.) "native" as it can get.)
Visual C++ builds, a.k.a. VC-* Visual C++ builds, aka VC-*
============================== ==============================
Requirement details Requirement details
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
the other hand oldest one is known not to work. Everything between the other hand oldest one is known not to work. Everything between
falls into best-effort category. falls into best-effort category.
- Netwide Assembler, a.k.a. NASM, available from https://www.nasm.us, - Netwide Assembler, aka NASM, available from https://www.nasm.us,
is required. Note that NASM is the only supported assembler. Even is required. Note that NASM is the only supported assembler. Even
though Microsoft provided assembler is NOT supported, contemporary though Microsoft provided assembler is NOT supported, contemporary
64-bit version is exercised through continuous integration of 64-bit version is exercised through continuous integration of
...@@ -62,8 +62,8 @@ ...@@ -62,8 +62,8 @@
For VC-WIN32, the following defaults are use: For VC-WIN32, the following defaults are use:
PREFIX: %ProgramFiles(86)%\OpenSSL PREFIX: %ProgramFiles(x86)%\OpenSSL
OPENSSLDIR: %CommonProgramFiles(86)%\SSL OPENSSLDIR: %CommonProgramFiles(x86)%\SSL
For VC-WIN64, the following defaults are use: For VC-WIN64, the following defaults are use:
...@@ -132,7 +132,7 @@ ...@@ -132,7 +132,7 @@
If you link with static OpenSSL libraries then you're expected to If you link with static OpenSSL libraries then you're expected to
additionally link your application with WS2_32.LIB, GDI32.LIB, additionally link your application with WS2_32.LIB, GDI32.LIB,
ADVAPI32.LIB, CRYPT32.LIB and USER32.LIB. Those developing ADVAPI32.LIB, CRYPT32.LIB and USER32.LIB. Those developing
non-interactive service applications might feel concerned about noninteractive service applications might feel concerned about
linking with GDI32.LIB and USER32.LIB, as they are justly associated linking with GDI32.LIB and USER32.LIB, as they are justly associated
with interactive desktop, which is not available to service with interactive desktop, which is not available to service
processes. The toolkit is designed to detect in which context it's processes. The toolkit is designed to detect in which context it's
......
OpenSSL 1.1.1f 31 Mar 2020 OpenSSL 1.1.1k 25 Mar 2021
Copyright (c) 1998-2020 The OpenSSL Project Copyright (c) 1998-2021 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
All rights reserved. All rights reserved.
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
"Name": "OpenSSL", "Name": "OpenSSL",
"License": "OpenSSL License and Original SSLeay License", "License": "OpenSSL License and Original SSLeay License",
"License File": "LICENSE", "License File": "LICENSE",
"Version Number": "1.1.1f", "Version Number": "1.1.1k",
"Owner": "huangjun42@huawei.com", "Owner": "huangjun42@huawei.com",
"Upstream URL": "https://github.com/openssl/openssl/releases/tag/OpenSSL_1_1_1f", "Upstream URL": "https://www.openssl.org/source/openssl-1.1.1k.tar.gz",
"Description": "implementing the Transport Layer Security (TLS) protocols (including SSLv3) as well as a full-strength general purpose cryptographic library" "Description": "implementing the Transport Layer Security (TLS) protocols (including SSLv3) as well as a full-strength general purpose cryptographic library"
} }
] ]
\ No newline at end of file
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
$ ! Used by the main descrip.mms to print the installation complete
$ ! message.
$ ! Arguments:
$ ! P1 startup / setup / shutdown scripts directory
$ ! P2 distinguishing version number ("major version")
$
$ systartup = p1
$ osslver = p2
$
$ WRITE SYS$OUTPUT "Installation complete"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "The following commands need to be executed to enable you to use OpenSSL:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "- to set up OpenSSL logical names:"
$ WRITE SYS$OUTPUT " @''systartup'openssl_startup''osslver'"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "- to define the OpenSSL command"
$ WRITE SYS$OUTPUT " @''systartup'openssl_utils''osslver'"
$ WRITE SYS$OUTPUT ""
$ ! Used by the main descrip.mms to print the statging installation
$ ! complete
$ ! message.
$ ! Arguments:
$ ! P1 staging software installation directory
$ ! P2 staging data installation directory
$ ! P3 final software installation directory
$ ! P4 final data installation directory
$ ! P5 startup / setup / shutdown scripts directory
$ ! P6 distinguishing version number ("major version")
$
$ staging_instdir = p1
$ staging_datadir = p2
$ final_instdir = p3
$ final_datadir = p4
$ systartup = p5
$ osslver = p6
$
$ WRITE SYS$OUTPUT "Staging installation complete"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "Finish or package in such a way that the contents of the following directory"
$ WRITE SYS$OUTPUT "trees end up being copied:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "- from ", staging_instdir
$ WRITE SYS$OUTPUT " to ", final_instdir
$ WRITE SYS$OUTPUT "- from ", staging_datadir
$ WRITE SYS$OUTPUT " to ", final_datadir
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "When in its final destination, the following commands need to be executed"
$ WRITE SYS$OUTPUT "to use OpenSSL:"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "- to set up OpenSSL logical names:"
$ WRITE SYS$OUTPUT " @''systartup'openssl_startup''osslver'"
$ WRITE SYS$OUTPUT ""
$ WRITE SYS$OUTPUT "- to define the OpenSSL command"
$ WRITE SYS$OUTPUT " @''systartup'openssl_utils''osslver'"
$ WRITE SYS$OUTPUT ""
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
{- our @apps_openssl_src = {- our @apps_openssl_src =
qw(openssl.c qw(openssl.c
asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c dhparam.c asn1pars.c ca.c ciphers.c cms.c crl.c crl2p7.c dgst.c
dsa.c dsaparam.c ec.c ecparam.c enc.c engine.c errstr.c gendsa.c enc.c errstr.c
genpkey.c genrsa.c nseq.c ocsp.c passwd.c pkcs12.c pkcs7.c pkcs8.c genpkey.c nseq.c passwd.c pkcs7.c pkcs8.c
pkey.c pkeyparam.c pkeyutl.c prime.c rand.c req.c rsa.c rsautl.c pkey.c pkeyparam.c pkeyutl.c prime.c rand.c req.c
s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c s_client.c s_server.c s_time.c sess_id.c smime.c speed.c spkac.c
srp.c ts.c verify.c version.c x509.c rehash.c storeutl.c); verify.c version.c x509.c rehash.c storeutl.c);
our @apps_lib_src = our @apps_lib_src =
( qw(apps.c opt.c s_cb.c s_socket.c app_rand.c bf_prefix.c), ( qw(apps.c opt.c s_cb.c s_socket.c app_rand.c bf_prefix.c),
split(/\s+/, $target{apps_aux_src}) ); split(/\s+/, $target{apps_aux_src}) );
our @apps_init_src = split(/\s+/, $target{apps_init_src}); our @apps_init_src = split(/\s+/, $target{apps_init_src});
"" -} "" -}
IF[{- !$disabled{apps} -}] IF[{- !$disabled{apps} -}]
LIBS_NO_INST=libapps.a LIBS_NO_INST=libapps.a
SOURCE[libapps.a]={- join(" ", @apps_lib_src) -} SOURCE[libapps.a]={- join(" ", @apps_lib_src) -}
...@@ -21,11 +22,51 @@ IF[{- !$disabled{apps} -}] ...@@ -21,11 +22,51 @@ IF[{- !$disabled{apps} -}]
SOURCE[openssl]={- join(" ", @apps_openssl_src) -} SOURCE[openssl]={- join(" ", @apps_openssl_src) -}
INCLUDE[openssl]=.. ../include INCLUDE[openssl]=.. ../include
DEPEND[openssl]=libapps.a ../libssl DEPEND[openssl]=libapps.a ../libssl
IF[{- !$disabled{'des'} -}]
IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-)/ -}] SOURCE[openssl]=pkcs12.c
GENERATE[openssl.rc]=../util/mkrc.pl openssl DEPEND[pkcs12.o]=progs.h
SOURCE[openssl]=openssl.rc ENDIF
ENDIF IF[{- !$disabled{'ec'} -}]
SOURCE[openssl]=ec.c ecparam.c
DEPEND[ec.o]=progs.h
DEPEND[ecparam.o]=progs.h
ENDIF
IF[{- !$disabled{'ocsp'} -}]
SOURCE[openssl]=ocsp.c
DEPEND[ocsp.o]=progs.h
ENDIF
IF[{- !$disabled{'srp'} -}]
SOURCE[openssl]=srp.c
DEPEND[srp.o]=progs.h
ENDIF
IF[{- !$disabled{'ts'} -}]
SOURCE[openssl]=ts.c
DEPEND[ts.o]=progs.h
ENDIF
IF[{- !$disabled{'dh'} -}]
SOURCE[openssl]=dhparam.c
DEPEND[dhparam.o]=progs.h
ENDIF
IF[{- !$disabled{'dsa'} -}]
SOURCE[openssl]=dsa.c dsaparam.c gendsa.c
DEPEND[dsa.o]=progs.h
DEPEND[dsaparam.o]=progs.h
DEPEND[gendsa.o]=progs.h
ENDIF
IF[{- !$disabled{'engine'} -}]
SOURCE[openssl]=engine.c
DEPEND[engine.o]=progs.h
ENDIF
IF[{- !$disabled{'rsa'} -}]
SOURCE[openssl]=rsa.c rsautl.c genrsa.c
DEPEND[rsa.o]=progs.h
DEPEND[rsautl.o]=progs.h
DEPEND[genrsa.o]=progs.h
ENDIF
IF[{- $config{target} =~ /^(?:Cygwin|mingw|VC-)/ -}]
GENERATE[openssl.rc]=../util/mkrc.pl openssl
SOURCE[openssl]=openssl.rc
ENDIF
{- join("\n ", map { (my $x = $_) =~ s|\.c$|.o|; "DEPEND[$x]=progs.h" } {- join("\n ", map { (my $x = $_) =~ s|\.c$|.o|; "DEPEND[$x]=progs.h" }
@apps_openssl_src) -} @apps_openssl_src) -}
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
/* /*
* Copyright 1995-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -1862,8 +1862,8 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509, ...@@ -1862,8 +1862,8 @@ static int do_body(X509 **xret, EVP_PKEY *pkey, X509 *x509,
row[DB_exp_date][tm->length] = '\0'; row[DB_exp_date][tm->length] = '\0';
row[DB_rev_date] = NULL; row[DB_rev_date] = NULL;
row[DB_file] = OPENSSL_strdup("unknown"); row[DB_file] = OPENSSL_strdup("unknown");
if ((row[DB_type] == NULL) || (row[DB_exp_date] == NULL) || if ((row[DB_type] == NULL) || (row[DB_file] == NULL)
(row[DB_file] == NULL) || (row[DB_name] == NULL)) { || (row[DB_name] == NULL)) {
BIO_printf(bio_err, "Memory allocation failure\n"); BIO_printf(bio_err, "Memory allocation failure\n");
goto end; goto end;
} }
...@@ -2223,62 +2223,51 @@ static int get_certificate_status(const char *serial, CA_DB *db) ...@@ -2223,62 +2223,51 @@ static int get_certificate_status(const char *serial, CA_DB *db)
static int do_updatedb(CA_DB *db) static int do_updatedb(CA_DB *db)
{ {
ASN1_UTCTIME *a_tm = NULL; ASN1_TIME *a_tm = NULL;
int i, cnt = 0; int i, cnt = 0;
int db_y2k, a_y2k; /* flags = 1 if y >= 2000 */ char **rrow;
char **rrow, *a_tm_s;
a_tm = ASN1_UTCTIME_new(); a_tm = ASN1_TIME_new();
if (a_tm == NULL) if (a_tm == NULL)
return -1; return -1;
/* get actual time and make a string */ /* get actual time */
if (X509_gmtime_adj(a_tm, 0) == NULL) { if (X509_gmtime_adj(a_tm, 0) == NULL) {
ASN1_UTCTIME_free(a_tm); ASN1_TIME_free(a_tm);
return -1; return -1;
} }
a_tm_s = app_malloc(a_tm->length + 1, "time string");
memcpy(a_tm_s, a_tm->data, a_tm->length);
a_tm_s[a_tm->length] = '\0';
if (strncmp(a_tm_s, "49", 2) <= 0)
a_y2k = 1;
else
a_y2k = 0;
for (i = 0; i < sk_OPENSSL_PSTRING_num(db->db->data); i++) { for (i = 0; i < sk_OPENSSL_PSTRING_num(db->db->data); i++) {
rrow = sk_OPENSSL_PSTRING_value(db->db->data, i); rrow = sk_OPENSSL_PSTRING_value(db->db->data, i);
if (rrow[DB_type][0] == DB_TYPE_VAL) { if (rrow[DB_type][0] == DB_TYPE_VAL) {
/* ignore entries that are not valid */ /* ignore entries that are not valid */
if (strncmp(rrow[DB_exp_date], "49", 2) <= 0) ASN1_TIME *exp_date = NULL;
db_y2k = 1;
else
db_y2k = 0;
if (db_y2k == a_y2k) { exp_date = ASN1_TIME_new();
/* all on the same y2k side */ if (exp_date == NULL) {
if (strcmp(rrow[DB_exp_date], a_tm_s) <= 0) { ASN1_TIME_free(a_tm);
rrow[DB_type][0] = DB_TYPE_EXP; return -1;
rrow[DB_type][1] = '\0'; }
cnt++;
BIO_printf(bio_err, "%s=Expired\n", rrow[DB_serial]); if (!ASN1_TIME_set_string(exp_date, rrow[DB_exp_date])) {
} ASN1_TIME_free(a_tm);
} else if (db_y2k < a_y2k) { ASN1_TIME_free(exp_date);
return -1;
}
if (ASN1_TIME_compare(exp_date, a_tm) <= 0) {
rrow[DB_type][0] = DB_TYPE_EXP; rrow[DB_type][0] = DB_TYPE_EXP;
rrow[DB_type][1] = '\0'; rrow[DB_type][1] = '\0';
cnt++; cnt++;
BIO_printf(bio_err, "%s=Expired\n", rrow[DB_serial]); BIO_printf(bio_err, "%s=Expired\n", rrow[DB_serial]);
} }
ASN1_TIME_free(exp_date);
} }
} }
ASN1_UTCTIME_free(a_tm); ASN1_TIME_free(a_tm);
OPENSSL_free(a_tm_s);
return cnt; return cnt;
} }
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
/* /*
* Copyright 2008-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2008-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -545,9 +545,11 @@ int cms_main(int argc, char **argv) ...@@ -545,9 +545,11 @@ int cms_main(int argc, char **argv)
if (key_param == NULL || key_param->idx != keyidx) { if (key_param == NULL || key_param->idx != keyidx) {
cms_key_param *nparam; cms_key_param *nparam;
nparam = app_malloc(sizeof(*nparam), "key param buffer"); nparam = app_malloc(sizeof(*nparam), "key param buffer");
nparam->idx = keyidx; if ((nparam->param = sk_OPENSSL_STRING_new_null()) == NULL) {
if ((nparam->param = sk_OPENSSL_STRING_new_null()) == NULL) OPENSSL_free(nparam);
goto end; goto end;
}
nparam->idx = keyidx;
nparam->next = NULL; nparam->next = NULL;
if (key_first == NULL) if (key_first == NULL)
key_first = nparam; key_first = nparam;
......
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
/* /*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,28 +8,24 @@ ...@@ -8,28 +8,24 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_DH #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <stdlib.h>
#else #include <time.h>
#include <string.h>
# include <stdio.h> #include "apps.h"
# include <stdlib.h> #include "progs.h"
# include <time.h> #include <openssl/bio.h>
# include <string.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/bn.h>
# include "progs.h" #include <openssl/dh.h>
# include <openssl/bio.h> #include <openssl/x509.h>
# include <openssl/err.h> #include <openssl/pem.h>
# include <openssl/bn.h>
# include <openssl/dh.h> #ifndef OPENSSL_NO_DSA
# include <openssl/x509.h> # include <openssl/dsa.h>
# include <openssl/pem.h> #endif
# ifndef OPENSSL_NO_DSA #define DEFBITS 2048
# include <openssl/dsa.h>
# endif
# define DEFBITS 2048
static int dh_cb(int p, int n, BN_GENCB *cb); static int dh_cb(int p, int n, BN_GENCB *cb);
...@@ -56,13 +52,13 @@ const OPTIONS dhparam_options[] = { ...@@ -56,13 +52,13 @@ const OPTIONS dhparam_options[] = {
{"C", OPT_C, '-', "Print C code"}, {"C", OPT_C, '-', "Print C code"},
{"2", OPT_2, '-', "Generate parameters using 2 as the generator value"}, {"2", OPT_2, '-', "Generate parameters using 2 as the generator value"},
{"5", OPT_5, '-', "Generate parameters using 5 as the generator value"}, {"5", OPT_5, '-', "Generate parameters using 5 as the generator value"},
# ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
{"dsaparam", OPT_DSAPARAM, '-', {"dsaparam", OPT_DSAPARAM, '-',
"Read or generate DSA parameters, convert to DH"}, "Read or generate DSA parameters, convert to DH"},
# endif #endif
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -146,13 +142,13 @@ int dhparam_main(int argc, char **argv) ...@@ -146,13 +142,13 @@ int dhparam_main(int argc, char **argv)
if (g && !num) if (g && !num)
num = DEFBITS; num = DEFBITS;
# ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
if (dsaparam && g) { if (dsaparam && g) {
BIO_printf(bio_err, BIO_printf(bio_err,
"generator may not be chosen for DSA parameters\n"); "generator may not be chosen for DSA parameters\n");
goto end; goto end;
} }
# endif #endif
out = bio_open_default(outfile, 'w', outformat); out = bio_open_default(outfile, 'w', outformat);
if (out == NULL) if (out == NULL)
...@@ -173,7 +169,7 @@ int dhparam_main(int argc, char **argv) ...@@ -173,7 +169,7 @@ int dhparam_main(int argc, char **argv)
BN_GENCB_set(cb, dh_cb, bio_err); BN_GENCB_set(cb, dh_cb, bio_err);
# ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
if (dsaparam) { if (dsaparam) {
DSA *dsa = DSA_new(); DSA *dsa = DSA_new();
...@@ -196,7 +192,7 @@ int dhparam_main(int argc, char **argv) ...@@ -196,7 +192,7 @@ int dhparam_main(int argc, char **argv)
goto end; goto end;
} }
} else } else
# endif #endif
{ {
dh = DH_new(); dh = DH_new();
BIO_printf(bio_err, BIO_printf(bio_err,
...@@ -217,7 +213,7 @@ int dhparam_main(int argc, char **argv) ...@@ -217,7 +213,7 @@ int dhparam_main(int argc, char **argv)
if (in == NULL) if (in == NULL)
goto end; goto end;
# ifndef OPENSSL_NO_DSA #ifndef OPENSSL_NO_DSA
if (dsaparam) { if (dsaparam) {
DSA *dsa; DSA *dsa;
...@@ -239,7 +235,7 @@ int dhparam_main(int argc, char **argv) ...@@ -239,7 +235,7 @@ int dhparam_main(int argc, char **argv)
goto end; goto end;
} }
} else } else
# endif #endif
{ {
if (informat == FORMAT_ASN1) { if (informat == FORMAT_ASN1) {
/* /*
...@@ -376,4 +372,3 @@ static int dh_cb(int p, int n, BN_GENCB *cb) ...@@ -376,4 +372,3 @@ static int dh_cb(int p, int n, BN_GENCB *cb)
(void)BIO_flush(BN_GENCB_get_arg(cb)); (void)BIO_flush(BN_GENCB_get_arg(cb));
return 1; return 1;
} }
#endif
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
/* /*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,23 +8,19 @@ ...@@ -8,23 +8,19 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_DSA #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <stdlib.h>
#else #include <string.h>
#include <time.h>
# include <stdio.h> #include "apps.h"
# include <stdlib.h> #include "progs.h"
# include <string.h> #include <openssl/bio.h>
# include <time.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/dsa.h>
# include "progs.h" #include <openssl/evp.h>
# include <openssl/bio.h> #include <openssl/x509.h>
# include <openssl/err.h> #include <openssl/pem.h>
# include <openssl/dsa.h> #include <openssl/bn.h>
# include <openssl/evp.h>
# include <openssl/x509.h>
# include <openssl/pem.h>
# include <openssl/bn.h>
typedef enum OPTION_choice { typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
...@@ -49,14 +45,14 @@ const OPTIONS dsa_options[] = { ...@@ -49,14 +45,14 @@ const OPTIONS dsa_options[] = {
{"passin", OPT_PASSIN, 's', "Input file pass phrase source"}, {"passin", OPT_PASSIN, 's', "Input file pass phrase source"},
{"passout", OPT_PASSOUT, 's', "Output file pass phrase source"}, {"passout", OPT_PASSOUT, 's', "Output file pass phrase source"},
{"", OPT_CIPHER, '-', "Any supported cipher"}, {"", OPT_CIPHER, '-', "Any supported cipher"},
# ifndef OPENSSL_NO_RC4 #ifndef OPENSSL_NO_RC4
{"pvk-strong", OPT_PVK_STRONG, '-', "Enable 'Strong' PVK encoding level (default)"}, {"pvk-strong", OPT_PVK_STRONG, '-', "Enable 'Strong' PVK encoding level (default)"},
{"pvk-weak", OPT_PVK_WEAK, '-', "Enable 'Weak' PVK encoding level"}, {"pvk-weak", OPT_PVK_WEAK, '-', "Enable 'Weak' PVK encoding level"},
{"pvk-none", OPT_PVK_NONE, '-', "Don't enforce PVK encoding"}, {"pvk-none", OPT_PVK_NONE, '-', "Don't enforce PVK encoding"},
# endif #endif
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -71,9 +67,9 @@ int dsa_main(int argc, char **argv) ...@@ -71,9 +67,9 @@ int dsa_main(int argc, char **argv)
OPTION_CHOICE o; OPTION_CHOICE o;
int informat = FORMAT_PEM, outformat = FORMAT_PEM, text = 0, noout = 0; int informat = FORMAT_PEM, outformat = FORMAT_PEM, text = 0, noout = 0;
int i, modulus = 0, pubin = 0, pubout = 0, ret = 1; int i, modulus = 0, pubin = 0, pubout = 0, ret = 1;
# ifndef OPENSSL_NO_RC4 #ifndef OPENSSL_NO_RC4
int pvk_encr = 2; int pvk_encr = 2;
# endif #endif
int private = 0; int private = 0;
prog = opt_init(argc, argv, dsa_options); prog = opt_init(argc, argv, dsa_options);
...@@ -214,7 +210,7 @@ int dsa_main(int argc, char **argv) ...@@ -214,7 +210,7 @@ int dsa_main(int argc, char **argv)
i = PEM_write_bio_DSAPrivateKey(out, dsa, enc, i = PEM_write_bio_DSAPrivateKey(out, dsa, enc,
NULL, 0, NULL, passout); NULL, 0, NULL, passout);
} }
# ifndef OPENSSL_NO_RSA #ifndef OPENSSL_NO_RSA
} else if (outformat == FORMAT_MSBLOB || outformat == FORMAT_PVK) { } else if (outformat == FORMAT_MSBLOB || outformat == FORMAT_PVK) {
EVP_PKEY *pk; EVP_PKEY *pk;
pk = EVP_PKEY_new(); pk = EVP_PKEY_new();
...@@ -229,13 +225,13 @@ int dsa_main(int argc, char **argv) ...@@ -229,13 +225,13 @@ int dsa_main(int argc, char **argv)
goto end; goto end;
} }
assert(private); assert(private);
# ifdef OPENSSL_NO_RC4 # ifdef OPENSSL_NO_RC4
BIO_printf(bio_err, "PVK format not supported\n"); BIO_printf(bio_err, "PVK format not supported\n");
EVP_PKEY_free(pk); EVP_PKEY_free(pk);
goto end; goto end;
# else # else
i = i2b_PVK_bio(out, pk, pvk_encr, 0, passout); i = i2b_PVK_bio(out, pk, pvk_encr, 0, passout);
# endif # endif
} else if (pubin || pubout) { } else if (pubin || pubout) {
i = i2b_PublicKey_bio(out, pk); i = i2b_PublicKey_bio(out, pk);
} else { } else {
...@@ -243,7 +239,7 @@ int dsa_main(int argc, char **argv) ...@@ -243,7 +239,7 @@ int dsa_main(int argc, char **argv)
i = i2b_PrivateKey_bio(out, pk); i = i2b_PrivateKey_bio(out, pk);
} }
EVP_PKEY_free(pk); EVP_PKEY_free(pk);
# endif #endif
} else { } else {
BIO_printf(bio_err, "bad output format specified for outfile\n"); BIO_printf(bio_err, "bad output format specified for outfile\n");
goto end; goto end;
...@@ -262,4 +258,3 @@ int dsa_main(int argc, char **argv) ...@@ -262,4 +258,3 @@ int dsa_main(int argc, char **argv)
OPENSSL_free(passout); OPENSSL_free(passout);
return ret; return ret;
} }
#endif
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
/* /*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,22 +8,18 @@ ...@@ -8,22 +8,18 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_DSA #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <stdlib.h>
#else #include <time.h>
#include <string.h>
# include <stdio.h> #include "apps.h"
# include <stdlib.h> #include "progs.h"
# include <time.h> #include <openssl/bio.h>
# include <string.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/bn.h>
# include "progs.h" #include <openssl/dsa.h>
# include <openssl/bio.h> #include <openssl/x509.h>
# include <openssl/err.h> #include <openssl/pem.h>
# include <openssl/bn.h>
# include <openssl/dsa.h>
# include <openssl/x509.h>
# include <openssl/pem.h>
static int dsa_cb(int p, int n, BN_GENCB *cb); static int dsa_cb(int p, int n, BN_GENCB *cb);
...@@ -44,9 +40,9 @@ const OPTIONS dsaparam_options[] = { ...@@ -44,9 +40,9 @@ const OPTIONS dsaparam_options[] = {
{"noout", OPT_NOOUT, '-', "No output"}, {"noout", OPT_NOOUT, '-', "No output"},
{"genkey", OPT_GENKEY, '-', "Generate a DSA key"}, {"genkey", OPT_GENKEY, '-', "Generate a DSA key"},
OPT_R_OPTIONS, OPT_R_OPTIONS,
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine e, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -255,4 +251,3 @@ static int dsa_cb(int p, int n, BN_GENCB *cb) ...@@ -255,4 +251,3 @@ static int dsa_cb(int p, int n, BN_GENCB *cb)
(void)BIO_flush(BN_GENCB_get_arg(cb)); (void)BIO_flush(BN_GENCB_get_arg(cb));
return 1; return 1;
} }
#endif
/* /*
* Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,19 +8,15 @@ ...@@ -8,19 +8,15 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_EC #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <stdlib.h>
#else #include <string.h>
#include "apps.h"
# include <stdio.h> #include "progs.h"
# include <stdlib.h> #include <openssl/bio.h>
# include <string.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/evp.h>
# include "progs.h" #include <openssl/pem.h>
# include <openssl/bio.h>
# include <openssl/err.h>
# include <openssl/evp.h>
# include <openssl/pem.h>
static OPT_PAIR conv_forms[] = { static OPT_PAIR conv_forms[] = {
{"compressed", POINT_CONVERSION_COMPRESSED}, {"compressed", POINT_CONVERSION_COMPRESSED},
...@@ -62,9 +58,9 @@ const OPTIONS ec_options[] = { ...@@ -62,9 +58,9 @@ const OPTIONS ec_options[] = {
"Specifies the way the ec parameters are encoded"}, "Specifies the way the ec parameters are encoded"},
{"conv_form", OPT_CONV_FORM, 's', "Specifies the point conversion form "}, {"conv_form", OPT_CONV_FORM, 's', "Specifies the point conversion form "},
{"", OPT_CIPHER, '-', "Any supported cipher"}, {"", OPT_CIPHER, '-', "Any supported cipher"},
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -280,4 +276,3 @@ int ec_main(int argc, char **argv) ...@@ -280,4 +276,3 @@ int ec_main(int argc, char **argv)
OPENSSL_free(passout); OPENSSL_free(passout);
return ret; return ret;
} }
#endif
/* /*
* Copyright 2002-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2002-2020 The OpenSSL Project Authors. All Rights Reserved.
* Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved * Copyright (c) 2002, Oracle and/or its affiliates. All rights reserved
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
...@@ -9,22 +9,18 @@ ...@@ -9,22 +9,18 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_EC #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <stdlib.h>
#else #include <time.h>
#include <string.h>
# include <stdio.h> #include "apps.h"
# include <stdlib.h> #include "progs.h"
# include <time.h> #include <openssl/bio.h>
# include <string.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/bn.h>
# include "progs.h" #include <openssl/ec.h>
# include <openssl/bio.h> #include <openssl/x509.h>
# include <openssl/err.h> #include <openssl/pem.h>
# include <openssl/bn.h>
# include <openssl/ec.h>
# include <openssl/x509.h>
# include <openssl/pem.h>
typedef enum OPTION_choice { typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
...@@ -55,9 +51,9 @@ const OPTIONS ecparam_options[] = { ...@@ -55,9 +51,9 @@ const OPTIONS ecparam_options[] = {
"Specifies the way the ec parameters are encoded"}, "Specifies the way the ec parameters are encoded"},
{"genkey", OPT_GENKEY, '-', "Generate ec key"}, {"genkey", OPT_GENKEY, '-', "Generate ec key"},
OPT_R_OPTIONS, OPT_R_OPTIONS,
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -446,5 +442,3 @@ int ecparam_main(int argc, char **argv) ...@@ -446,5 +442,3 @@ int ecparam_main(int argc, char **argv)
BIO_free_all(out); BIO_free_all(out);
return ret; return ret;
} }
#endif
文件模式从 100755 更改为 100644
/* /*
* Copyright 2000-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2000-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,19 +8,15 @@ ...@@ -8,19 +8,15 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_ENGINE #include "apps.h"
NON_EMPTY_TRANSLATION_UNIT #include "progs.h"
#else #include <stdio.h>
#include <stdlib.h>
# include "apps.h" #include <string.h>
# include "progs.h" #include <openssl/err.h>
# include <stdio.h> #include <openssl/engine.h>
# include <stdlib.h> #include <openssl/ssl.h>
# include <string.h> #include <openssl/store.h>
# include <openssl/err.h>
# include <openssl/engine.h>
# include <openssl/ssl.h>
# include <openssl/store.h>
typedef enum OPTION_choice { typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
...@@ -486,4 +482,3 @@ int engine_main(int argc, char **argv) ...@@ -486,4 +482,3 @@ int engine_main(int argc, char **argv)
BIO_free_all(out); BIO_free_all(out);
return ret; return ret;
} }
#endif
文件模式从 100755 更改为 100644
/* /*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,22 +8,18 @@ ...@@ -8,22 +8,18 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_DSA #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <string.h>
#else #include <sys/types.h>
#include <sys/stat.h>
# include <stdio.h> #include "apps.h"
# include <string.h> #include "progs.h"
# include <sys/types.h> #include <openssl/bio.h>
# include <sys/stat.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/bn.h>
# include "progs.h" #include <openssl/dsa.h>
# include <openssl/bio.h> #include <openssl/x509.h>
# include <openssl/err.h> #include <openssl/pem.h>
# include <openssl/bn.h>
# include <openssl/dsa.h>
# include <openssl/x509.h>
# include <openssl/pem.h>
typedef enum OPTION_choice { typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
...@@ -39,9 +35,9 @@ const OPTIONS gendsa_options[] = { ...@@ -39,9 +35,9 @@ const OPTIONS gendsa_options[] = {
{"passout", OPT_PASSOUT, 's', "Output file pass phrase source"}, {"passout", OPT_PASSOUT, 's', "Output file pass phrase source"},
OPT_R_OPTIONS, OPT_R_OPTIONS,
{"", OPT_CIPHER, '-', "Encrypt the output with any supported cipher"}, {"", OPT_CIPHER, '-', "Encrypt the output with any supported cipher"},
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -143,4 +139,3 @@ int gendsa_main(int argc, char **argv) ...@@ -143,4 +139,3 @@ int gendsa_main(int argc, char **argv)
OPENSSL_free(passout); OPENSSL_free(passout);
return ret; return ret;
} }
#endif
/* /*
* Copyright 2006-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2006-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -177,9 +177,12 @@ int genpkey_main(int argc, char **argv) ...@@ -177,9 +177,12 @@ int genpkey_main(int argc, char **argv)
goto end; goto end;
} }
ret = 0;
if (rv <= 0) { if (rv <= 0) {
BIO_puts(bio_err, "Error writing key\n"); BIO_puts(bio_err, "Error writing key\n");
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
ret = 1;
} }
if (text) { if (text) {
...@@ -191,11 +194,10 @@ int genpkey_main(int argc, char **argv) ...@@ -191,11 +194,10 @@ int genpkey_main(int argc, char **argv)
if (rv <= 0) { if (rv <= 0) {
BIO_puts(bio_err, "Error printing key\n"); BIO_puts(bio_err, "Error printing key\n");
ERR_print_errors(bio_err); ERR_print_errors(bio_err);
ret = 1;
} }
} }
ret = 0;
end: end:
EVP_PKEY_free(pkey); EVP_PKEY_free(pkey);
EVP_PKEY_CTX_free(ctx); EVP_PKEY_CTX_free(ctx);
......
/* /*
* Copyright 1995-2018 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,27 +8,23 @@ ...@@ -8,27 +8,23 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_RSA #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <string.h>
#else #include <sys/types.h>
#include <sys/stat.h>
# include <stdio.h> #include "apps.h"
# include <string.h> #include "progs.h"
# include <sys/types.h> #include <openssl/bio.h>
# include <sys/stat.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/bn.h>
# include "progs.h" #include <openssl/rsa.h>
# include <openssl/bio.h> #include <openssl/evp.h>
# include <openssl/err.h> #include <openssl/x509.h>
# include <openssl/bn.h> #include <openssl/pem.h>
# include <openssl/rsa.h> #include <openssl/rand.h>
# include <openssl/evp.h>
# include <openssl/x509.h> #define DEFBITS 2048
# include <openssl/pem.h> #define DEFPRIMES 2
# include <openssl/rand.h>
# define DEFBITS 2048
# define DEFPRIMES 2
static int genrsa_cb(int p, int n, BN_GENCB *cb); static int genrsa_cb(int p, int n, BN_GENCB *cb);
...@@ -48,9 +44,9 @@ const OPTIONS genrsa_options[] = { ...@@ -48,9 +44,9 @@ const OPTIONS genrsa_options[] = {
OPT_R_OPTIONS, OPT_R_OPTIONS,
{"passout", OPT_PASSOUT, 's', "Output file pass phrase source"}, {"passout", OPT_PASSOUT, 's', "Output file pass phrase source"},
{"", OPT_CIPHER, '-', "Encrypt the output with any supported cipher"}, {"", OPT_CIPHER, '-', "Encrypt the output with any supported cipher"},
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# endif #endif
{"primes", OPT_PRIMES, 'p', "Specify number of primes"}, {"primes", OPT_PRIMES, 'p', "Specify number of primes"},
{NULL} {NULL}
}; };
...@@ -198,4 +194,3 @@ static int genrsa_cb(int p, int n, BN_GENCB *cb) ...@@ -198,4 +194,3 @@ static int genrsa_cb(int p, int n, BN_GENCB *cb)
(void)BIO_flush(BN_GENCB_get_arg(cb)); (void)BIO_flush(BN_GENCB_get_arg(cb));
return 1; return 1;
} }
#endif
文件模式从 100755 更改为 100644
/* /*
* Copyright 2001-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 2001-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -9,65 +9,62 @@ ...@@ -9,65 +9,62 @@
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#ifdef OPENSSL_NO_OCSP #ifdef OPENSSL_SYS_VMS
NON_EMPTY_TRANSLATION_UNIT # define _XOPEN_SOURCE_EXTENDED/* So fd_set and friends get properly defined
#else
# ifdef OPENSSL_SYS_VMS
# define _XOPEN_SOURCE_EXTENDED/* So fd_set and friends get properly defined
* on OpenVMS */ * on OpenVMS */
# endif #endif
# include <stdio.h> #include <stdio.h>
# include <stdlib.h> #include <stdlib.h>
# include <string.h> #include <string.h>
# include <time.h> #include <time.h>
# include <ctype.h> #include <ctype.h>
/* Needs to be included before the openssl headers */ /* Needs to be included before the openssl headers */
# include "apps.h" #include "apps.h"
# include "progs.h" #include "progs.h"
# include "internal/sockets.h" #include "internal/sockets.h"
# include <openssl/e_os2.h> #include <openssl/e_os2.h>
# include <openssl/crypto.h> #include <openssl/crypto.h>
# include <openssl/err.h> #include <openssl/err.h>
# include <openssl/ssl.h> #include <openssl/ssl.h>
# include <openssl/evp.h> #include <openssl/evp.h>
# include <openssl/bn.h> #include <openssl/bn.h>
# include <openssl/x509v3.h> #include <openssl/x509v3.h>
# include <openssl/rand.h> #include <openssl/rand.h>
#ifndef HAVE_FORK #ifndef HAVE_FORK
# if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS) #if defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_WINDOWS)
# define HAVE_FORK 0 # define HAVE_FORK 0
# else #else
# define HAVE_FORK 1 # define HAVE_FORK 1
# endif #endif
#endif #endif
#if HAVE_FORK #if HAVE_FORK
# undef NO_FORK #undef NO_FORK
#else #else
# define NO_FORK #define NO_FORK
#endif #endif
# if !defined(NO_FORK) && !defined(OPENSSL_NO_SOCK) \ #if !defined(NO_FORK) && !defined(OPENSSL_NO_SOCK) \
&& !defined(OPENSSL_NO_POSIX_IO) && !defined(OPENSSL_NO_POSIX_IO)
# define OCSP_DAEMON # define OCSP_DAEMON
# include <sys/types.h> # include <sys/types.h>
# include <sys/wait.h> # include <sys/wait.h>
# include <syslog.h> # include <syslog.h>
# include <signal.h> # include <signal.h>
# define MAXERRLEN 1000 /* limit error text sent to syslog to 1000 bytes */ # define MAXERRLEN 1000 /* limit error text sent to syslog to 1000 bytes */
# else #else
# undef LOG_INFO # undef LOG_INFO
# undef LOG_WARNING # undef LOG_WARNING
# undef LOG_ERR # undef LOG_ERR
# define LOG_INFO 0 # define LOG_INFO 0
# define LOG_WARNING 1 # define LOG_WARNING 1
# define LOG_ERR 2 # define LOG_ERR 2
# endif #endif
# if defined(OPENSSL_SYS_VXWORKS) #if defined(OPENSSL_SYS_VXWORKS)
/* not supported */ /* not supported */
int setpgid(pid_t pid, pid_t pgid) int setpgid(pid_t pid, pid_t pgid)
{ {
...@@ -80,9 +77,9 @@ pid_t fork(void) ...@@ -80,9 +77,9 @@ pid_t fork(void)
errno = ENOSYS; errno = ENOSYS;
return (pid_t) -1; return (pid_t) -1;
} }
# endif #endif
/* Maximum leeway in validity period: default 5 minutes */ /* Maximum leeway in validity period: default 5 minutes */
# define MAX_VALIDITY_PERIOD (5 * 60) #define MAX_VALIDITY_PERIOD (5 * 60)
static int add_ocsp_cert(OCSP_REQUEST **req, X509 *cert, static int add_ocsp_cert(OCSP_REQUEST **req, X509 *cert,
const EVP_MD *cert_id_md, X509 *issuer, const EVP_MD *cert_id_md, X509 *issuer,
...@@ -109,20 +106,20 @@ static void log_message(int level, const char *fmt, ...); ...@@ -109,20 +106,20 @@ static void log_message(int level, const char *fmt, ...);
static char *prog; static char *prog;
static int multi = 0; static int multi = 0;
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
static int acfd = (int) INVALID_SOCKET; static int acfd = (int) INVALID_SOCKET;
static int index_changed(CA_DB *); static int index_changed(CA_DB *);
static void spawn_loop(void); static void spawn_loop(void);
static int print_syslog(const char *str, size_t len, void *levPtr); static int print_syslog(const char *str, size_t len, void *levPtr);
static void socket_timeout(int signum); static void socket_timeout(int signum);
# endif #endif
# ifndef OPENSSL_NO_SOCK #ifndef OPENSSL_NO_SOCK
static OCSP_RESPONSE *query_responder(BIO *cbio, const char *host, static OCSP_RESPONSE *query_responder(BIO *cbio, const char *host,
const char *path, const char *path,
const STACK_OF(CONF_VALUE) *headers, const STACK_OF(CONF_VALUE) *headers,
OCSP_REQUEST *req, int req_timeout); OCSP_REQUEST *req, int req_timeout);
# endif #endif
typedef enum OPTION_choice { typedef enum OPTION_choice {
OPT_ERR = -1, OPT_EOF = 0, OPT_HELP, OPT_ERR = -1, OPT_EOF = 0, OPT_HELP,
...@@ -160,9 +157,9 @@ const OPTIONS ocsp_options[] = { ...@@ -160,9 +157,9 @@ const OPTIONS ocsp_options[] = {
"Don't include any certificates in response"}, "Don't include any certificates in response"},
{"resp_key_id", OPT_RESP_KEY_ID, '-', {"resp_key_id", OPT_RESP_KEY_ID, '-',
"Identify response by signing certificate key ID"}, "Identify response by signing certificate key ID"},
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
{"multi", OPT_MULTI, 'p', "run multiple responder processes"}, {"multi", OPT_MULTI, 'p', "run multiple responder processes"},
# endif #endif
{"no_certs", OPT_NO_CERTS, '-', {"no_certs", OPT_NO_CERTS, '-',
"Don't include any certificates in signed request"}, "Don't include any certificates in signed request"},
{"no_signature_verify", OPT_NO_SIGNATURE_VERIFY, '-', {"no_signature_verify", OPT_NO_SIGNATURE_VERIFY, '-',
...@@ -511,9 +508,9 @@ int ocsp_main(int argc, char **argv) ...@@ -511,9 +508,9 @@ int ocsp_main(int argc, char **argv)
trailing_md = 1; trailing_md = 1;
break; break;
case OPT_MULTI: case OPT_MULTI:
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
multi = atoi(opt_arg()); multi = atoi(opt_arg());
# endif #endif
break; break;
} }
} }
...@@ -593,7 +590,7 @@ int ocsp_main(int argc, char **argv) ...@@ -593,7 +590,7 @@ int ocsp_main(int argc, char **argv)
} }
} }
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
if (multi && acbio != NULL) if (multi && acbio != NULL)
spawn_loop(); spawn_loop();
if (acbio != NULL && req_timeout > 0) if (acbio != NULL && req_timeout > 0)
...@@ -606,7 +603,7 @@ int ocsp_main(int argc, char **argv) ...@@ -606,7 +603,7 @@ int ocsp_main(int argc, char **argv)
redo_accept: redo_accept:
if (acbio != NULL) { if (acbio != NULL) {
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
if (index_changed(rdb)) { if (index_changed(rdb)) {
CA_DB *newrdb = load_index(ridx_filename, NULL); CA_DB *newrdb = load_index(ridx_filename, NULL);
...@@ -619,7 +616,7 @@ redo_accept: ...@@ -619,7 +616,7 @@ redo_accept:
ridx_filename); ridx_filename);
} }
} }
# endif #endif
req = NULL; req = NULL;
if (!do_responder(&req, &cbio, acbio, req_timeout)) if (!do_responder(&req, &cbio, acbio, req_timeout))
...@@ -688,16 +685,16 @@ redo_accept: ...@@ -688,16 +685,16 @@ redo_accept:
if (cbio != NULL) if (cbio != NULL)
send_ocsp_response(cbio, resp); send_ocsp_response(cbio, resp);
} else if (host != NULL) { } else if (host != NULL) {
# ifndef OPENSSL_NO_SOCK #ifndef OPENSSL_NO_SOCK
resp = process_responder(req, host, path, resp = process_responder(req, host, path,
port, use_ssl, headers, req_timeout); port, use_ssl, headers, req_timeout);
if (resp == NULL) if (resp == NULL)
goto end; goto end;
# else #else
BIO_printf(bio_err, BIO_printf(bio_err,
"Error creating connect BIO - sockets not supported.\n"); "Error creating connect BIO - sockets not supported.\n");
goto end; goto end;
# endif #endif
} else if (respin != NULL) { } else if (respin != NULL) {
derbio = bio_open_default(respin, 'r', FORMAT_ASN1); derbio = bio_open_default(respin, 'r', FORMAT_ASN1);
if (derbio == NULL) if (derbio == NULL)
...@@ -840,7 +837,7 @@ log_message(int level, const char *fmt, ...) ...@@ -840,7 +837,7 @@ log_message(int level, const char *fmt, ...)
va_list ap; va_list ap;
va_start(ap, fmt); va_start(ap, fmt);
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
if (multi) { if (multi) {
char buf[1024]; char buf[1024];
if (vsnprintf(buf, sizeof(buf), fmt, ap) > 0) { if (vsnprintf(buf, sizeof(buf), fmt, ap) > 0) {
...@@ -849,7 +846,7 @@ log_message(int level, const char *fmt, ...) ...@@ -849,7 +846,7 @@ log_message(int level, const char *fmt, ...)
if (level >= LOG_ERR) if (level >= LOG_ERR)
ERR_print_errors_cb(print_syslog, &level); ERR_print_errors_cb(print_syslog, &level);
} }
# endif #endif
if (!multi) { if (!multi) {
BIO_printf(bio_err, "%s: ", prog); BIO_printf(bio_err, "%s: ", prog);
BIO_vprintf(bio_err, fmt, ap); BIO_vprintf(bio_err, fmt, ap);
...@@ -858,7 +855,7 @@ log_message(int level, const char *fmt, ...) ...@@ -858,7 +855,7 @@ log_message(int level, const char *fmt, ...)
va_end(ap); va_end(ap);
} }
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
static int print_syslog(const char *str, size_t len, void *levPtr) static int print_syslog(const char *str, size_t len, void *levPtr)
{ {
...@@ -1011,7 +1008,7 @@ static void spawn_loop(void) ...@@ -1011,7 +1008,7 @@ static void spawn_loop(void)
syslog(LOG_INFO, "terminating on signal: %d", termsig); syslog(LOG_INFO, "terminating on signal: %d", termsig);
killall(0, kidpids); killall(0, kidpids);
} }
# endif #endif
static int add_ocsp_cert(OCSP_REQUEST **req, X509 *cert, static int add_ocsp_cert(OCSP_REQUEST **req, X509 *cert,
const EVP_MD *cert_id_md, X509 *issuer, const EVP_MD *cert_id_md, X509 *issuer,
...@@ -1291,11 +1288,11 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser) ...@@ -1291,11 +1288,11 @@ static char **lookup_serial(CA_DB *db, ASN1_INTEGER *ser)
static BIO *init_responder(const char *port) static BIO *init_responder(const char *port)
{ {
# ifdef OPENSSL_NO_SOCK #ifdef OPENSSL_NO_SOCK
BIO_printf(bio_err, BIO_printf(bio_err,
"Error setting up accept BIO - sockets not supported.\n"); "Error setting up accept BIO - sockets not supported.\n");
return NULL; return NULL;
# else #else
BIO *acbio = NULL, *bufbio = NULL; BIO *acbio = NULL, *bufbio = NULL;
bufbio = BIO_new(BIO_f_buffer()); bufbio = BIO_new(BIO_f_buffer());
...@@ -1322,10 +1319,10 @@ static BIO *init_responder(const char *port) ...@@ -1322,10 +1319,10 @@ static BIO *init_responder(const char *port)
BIO_free_all(acbio); BIO_free_all(acbio);
BIO_free(bufbio); BIO_free(bufbio);
return NULL; return NULL;
# endif #endif
} }
# ifndef OPENSSL_NO_SOCK #ifndef OPENSSL_NO_SOCK
/* /*
* Decode %xx URL-decoding in-place. Ignores mal-formed sequences. * Decode %xx URL-decoding in-place. Ignores mal-formed sequences.
*/ */
...@@ -1349,22 +1346,22 @@ static int urldecode(char *p) ...@@ -1349,22 +1346,22 @@ static int urldecode(char *p)
*out = '\0'; *out = '\0';
return (int)(out - save); return (int)(out - save);
} }
# endif #endif
# ifdef OCSP_DAEMON #ifdef OCSP_DAEMON
static void socket_timeout(int signum) static void socket_timeout(int signum)
{ {
if (acfd != (int)INVALID_SOCKET) if (acfd != (int)INVALID_SOCKET)
(void)shutdown(acfd, SHUT_RD); (void)shutdown(acfd, SHUT_RD);
} }
# endif #endif
static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
int timeout) int timeout)
{ {
# ifdef OPENSSL_NO_SOCK #ifdef OPENSSL_NO_SOCK
return 0; return 0;
# else #else
int len; int len;
OCSP_REQUEST *req = NULL; OCSP_REQUEST *req = NULL;
char inbuf[2048], reqbuf[2048]; char inbuf[2048], reqbuf[2048];
...@@ -1382,12 +1379,12 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, ...@@ -1382,12 +1379,12 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
*pcbio = cbio; *pcbio = cbio;
client = BIO_get_peer_name(cbio); client = BIO_get_peer_name(cbio);
# ifdef OCSP_DAEMON # ifdef OCSP_DAEMON
if (timeout > 0) { if (timeout > 0) {
(void) BIO_get_fd(cbio, &acfd); (void) BIO_get_fd(cbio, &acfd);
alarm(timeout); alarm(timeout);
} }
# endif # endif
/* Read the request line. */ /* Read the request line. */
len = BIO_gets(cbio, reqbuf, sizeof(reqbuf)); len = BIO_gets(cbio, reqbuf, sizeof(reqbuf));
...@@ -1450,11 +1447,11 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, ...@@ -1450,11 +1447,11 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
break; break;
} }
# ifdef OCSP_DAEMON # ifdef OCSP_DAEMON
/* Clear alarm before we close the client socket */ /* Clear alarm before we close the client socket */
alarm(0); alarm(0);
timeout = 0; timeout = 0;
# endif # endif
/* Try to read OCSP request */ /* Try to read OCSP request */
if (getbio != NULL) { if (getbio != NULL) {
...@@ -1470,13 +1467,13 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio, ...@@ -1470,13 +1467,13 @@ static int do_responder(OCSP_REQUEST **preq, BIO **pcbio, BIO *acbio,
*preq = req; *preq = req;
out: out:
# ifdef OCSP_DAEMON # ifdef OCSP_DAEMON
if (timeout > 0) if (timeout > 0)
alarm(0); alarm(0);
acfd = (int)INVALID_SOCKET; acfd = (int)INVALID_SOCKET;
# endif
return 1;
# endif # endif
return 1;
#endif
} }
static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp) static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
...@@ -1492,7 +1489,7 @@ static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp) ...@@ -1492,7 +1489,7 @@ static int send_ocsp_response(BIO *cbio, OCSP_RESPONSE *resp)
return 1; return 1;
} }
# ifndef OPENSSL_NO_SOCK #ifndef OPENSSL_NO_SOCK
static OCSP_RESPONSE *query_responder(BIO *cbio, const char *host, static OCSP_RESPONSE *query_responder(BIO *cbio, const char *host,
const char *path, const char *path,
const STACK_OF(CONF_VALUE) *headers, const STACK_OF(CONF_VALUE) *headers,
...@@ -1623,6 +1620,4 @@ OCSP_RESPONSE *process_responder(OCSP_REQUEST *req, ...@@ -1623,6 +1620,4 @@ OCSP_RESPONSE *process_responder(OCSP_REQUEST *req,
SSL_CTX_free(ctx); SSL_CTX_free(ctx);
return resp; return resp;
} }
# endif
#endif #endif
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
/* /*
* Copyright 1999-2019 The OpenSSL Project Authors. All Rights Reserved. * Copyright 1999-2020 The OpenSSL Project Authors. All Rights Reserved.
* *
* Licensed under the OpenSSL license (the "License"). You may not use * Licensed under the OpenSSL license (the "License"). You may not use
* this file except in compliance with the License. You can obtain a copy * this file except in compliance with the License. You can obtain a copy
...@@ -8,25 +8,21 @@ ...@@ -8,25 +8,21 @@
*/ */
#include <openssl/opensslconf.h> #include <openssl/opensslconf.h>
#if defined(OPENSSL_NO_DES) #include <stdio.h>
NON_EMPTY_TRANSLATION_UNIT #include <stdlib.h>
#else #include <string.h>
#include "apps.h"
# include <stdio.h> #include "progs.h"
# include <stdlib.h> #include <openssl/crypto.h>
# include <string.h> #include <openssl/err.h>
# include "apps.h" #include <openssl/pem.h>
# include "progs.h" #include <openssl/pkcs12.h>
# include <openssl/crypto.h>
# include <openssl/err.h> #define NOKEYS 0x1
# include <openssl/pem.h> #define NOCERTS 0x2
# include <openssl/pkcs12.h> #define INFO 0x4
#define CLCERTS 0x8
# define NOKEYS 0x1 #define CACERTS 0x10
# define NOCERTS 0x2
# define INFO 0x4
# define CLCERTS 0x8
# define CACERTS 0x10
#define PASSWD_BUF_SIZE 2048 #define PASSWD_BUF_SIZE 2048
...@@ -74,15 +70,15 @@ const OPTIONS pkcs12_options[] = { ...@@ -74,15 +70,15 @@ const OPTIONS pkcs12_options[] = {
{"chain", OPT_CHAIN, '-', "Add certificate chain"}, {"chain", OPT_CHAIN, '-', "Add certificate chain"},
{"twopass", OPT_TWOPASS, '-', "Separate MAC, encryption passwords"}, {"twopass", OPT_TWOPASS, '-', "Separate MAC, encryption passwords"},
{"nomacver", OPT_NOMACVER, '-', "Don't verify MAC"}, {"nomacver", OPT_NOMACVER, '-', "Don't verify MAC"},
# ifndef OPENSSL_NO_RC2 #ifndef OPENSSL_NO_RC2
{"descert", OPT_DESCERT, '-', {"descert", OPT_DESCERT, '-',
"Encrypt output with 3DES (default RC2-40)"}, "Encrypt output with 3DES (default RC2-40)"},
{"certpbe", OPT_CERTPBE, 's', {"certpbe", OPT_CERTPBE, 's',
"Certificate PBE algorithm (default RC2-40)"}, "Certificate PBE algorithm (default RC2-40)"},
# else #else
{"descert", OPT_DESCERT, '-', "Encrypt output with 3DES (the default)"}, {"descert", OPT_DESCERT, '-', "Encrypt output with 3DES (the default)"},
{"certpbe", OPT_CERTPBE, 's', "Certificate PBE algorithm (default 3DES)"}, {"certpbe", OPT_CERTPBE, 's', "Certificate PBE algorithm (default 3DES)"},
# endif #endif
{"export", OPT_EXPORT, '-', "Output PKCS12 file"}, {"export", OPT_EXPORT, '-', "Output PKCS12 file"},
{"noiter", OPT_NOITER, '-', "Don't use encryption iteration"}, {"noiter", OPT_NOITER, '-', "Don't use encryption iteration"},
{"maciter", OPT_MACITER, '-', "Use MAC iteration"}, {"maciter", OPT_MACITER, '-', "Use MAC iteration"},
...@@ -113,9 +109,9 @@ const OPTIONS pkcs12_options[] = { ...@@ -113,9 +109,9 @@ const OPTIONS pkcs12_options[] = {
{"no-CApath", OPT_NOCAPATH, '-', {"no-CApath", OPT_NOCAPATH, '-',
"Do not load certificates from the default certificates directory"}, "Do not load certificates from the default certificates directory"},
{"", OPT_CIPHER, '-', "Any supported cipher"}, {"", OPT_CIPHER, '-', "Any supported cipher"},
# ifndef OPENSSL_NO_ENGINE #ifndef OPENSSL_NO_ENGINE
{"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"}, {"engine", OPT_ENGINE, 's', "Use engine, possibly a hardware device"},
# endif #endif
{NULL} {NULL}
}; };
...@@ -126,11 +122,11 @@ int pkcs12_main(int argc, char **argv) ...@@ -126,11 +122,11 @@ int pkcs12_main(int argc, char **argv)
char pass[PASSWD_BUF_SIZE] = "", macpass[PASSWD_BUF_SIZE] = ""; char pass[PASSWD_BUF_SIZE] = "", macpass[PASSWD_BUF_SIZE] = "";
int export_cert = 0, options = 0, chain = 0, twopass = 0, keytype = 0; int export_cert = 0, options = 0, chain = 0, twopass = 0, keytype = 0;
int iter = PKCS12_DEFAULT_ITER, maciter = PKCS12_DEFAULT_ITER; int iter = PKCS12_DEFAULT_ITER, maciter = PKCS12_DEFAULT_ITER;
# ifndef OPENSSL_NO_RC2 #ifndef OPENSSL_NO_RC2
int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC; int cert_pbe = NID_pbe_WithSHA1And40BitRC2_CBC;
# else #else
int cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; int cert_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
# endif #endif
int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC; int key_pbe = NID_pbe_WithSHA1And3_Key_TripleDES_CBC;
int ret = 1, macver = 1, add_lmk = 0, private = 0; int ret = 1, macver = 1, add_lmk = 0, private = 0;
int noprompt = 0; int noprompt = 0;
...@@ -976,5 +972,3 @@ static int set_pbe(int *ppbe, const char *str) ...@@ -976,5 +972,3 @@ static int set_pbe(int *ppbe, const char *str)
} }
return 1; return 1;
} }
#endif
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
此差异已折叠。
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
此差异已折叠。
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
文件模式从 100755 更改为 100644
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册