mirror of
git://anongit.mindrot.org/openssh.git
synced 2025-02-19 23:36:54 +00:00
Add compat functions for EVP_Digest{Sign,Verify}.
This should make LibreSSL 3.1.x through 3.3.x work again. Code from tb@, ok djm@. Restore the test configs covering those.
This commit is contained in:
parent
1c3a714526
commit
2a50a8f1fa
2
.github/workflows/c-cpp.yml
vendored
2
.github/workflows/c-cpp.yml
vendored
@ -57,6 +57,8 @@ jobs:
|
||||
- { target: ubuntu-20.04, config: musl }
|
||||
- { target: ubuntu-latest, config: boringssl }
|
||||
- { target: ubuntu-latest, config: libressl-master }
|
||||
- { target: ubuntu-latest, config: libressl-3.2.6 }
|
||||
- { target: ubuntu-latest, config: libressl-3.3.6 }
|
||||
- { target: ubuntu-latest, config: libressl-3.4.3 }
|
||||
- { target: ubuntu-latest, config: libressl-3.5.3 }
|
||||
- { target: ubuntu-latest, config: libressl-3.6.1 }
|
||||
|
@ -2983,6 +2983,8 @@ if test "x$openssl" = "xyes" ; then
|
||||
BN_is_prime_ex \
|
||||
DES_crypt \
|
||||
DSA_generate_parameters_ex \
|
||||
EVP_DigestSign \
|
||||
EVP_DigestVerify \
|
||||
EVP_DigestFinal_ex \
|
||||
EVP_DigestInit_ex \
|
||||
EVP_MD_CTX_cleanup \
|
||||
|
@ -95,4 +95,30 @@ ssh_libcrypto_init(void)
|
||||
#endif /* USE_OPENSSL_ENGINE */
|
||||
}
|
||||
|
||||
#ifndef HAVE_EVP_DIGESTSIGN
|
||||
int
|
||||
EVP_DigestSign(EVP_MD_CTX *ctx, unsigned char *sigret, size_t *siglen,
|
||||
const unsigned char *tbs, size_t tbslen)
|
||||
{
|
||||
if (sigret != NULL) {
|
||||
if (EVP_DigestSignUpdate(ctx, tbs, tbslen) <= 0)
|
||||
return 0;
|
||||
}
|
||||
|
||||
return EVP_DigestSignFinal(ctx, sigret, siglen);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_EVP_DIGESTVERIFY
|
||||
int
|
||||
EVP_DigestVerify(EVP_MD_CTX *ctx, const unsigned char *sigret, size_t siglen,
|
||||
const unsigned char *tbs, size_t tbslen)
|
||||
{
|
||||
if (EVP_DigestVerifyUpdate(ctx, tbs, tbslen) <= 0)
|
||||
return -1;
|
||||
|
||||
return EVP_DigestVerifyFinal(ctx, sigret, siglen);
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* WITH_OPENSSL */
|
||||
|
@ -78,5 +78,15 @@ int EVP_CIPHER_CTX_set_iv(EVP_CIPHER_CTX *ctx,
|
||||
const unsigned char *iv, size_t len);
|
||||
#endif /* HAVE_EVP_CIPHER_CTX_SET_IV */
|
||||
|
||||
#ifndef HAVE_EVP_DIGESTSIGN
|
||||
int EVP_DigestSign(EVP_MD_CTX *, unsigned char *, size_t *,
|
||||
const unsigned char *, size_t);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_EVP_DIGESTVERIFY
|
||||
int EVP_DigestVerify(EVP_MD_CTX *, const unsigned char *, size_t,
|
||||
const unsigned char *, size_t);
|
||||
#endif
|
||||
|
||||
#endif /* WITH_OPENSSL */
|
||||
#endif /* _OPENSSL_COMPAT_H */
|
||||
|
Loading…
Reference in New Issue
Block a user