summaryrefslogtreecommitdiffstats
path: root/3rd_party/libsrp6a-sha512/t_sha.c
diff options
context:
space:
mode:
authorGravatar Nikias Bassen2023-07-04 17:14:27 +0200
committerGravatar Nikias Bassen2023-07-04 17:14:27 +0200
commit474fd9284b76d8ddd3a3aec41cbca3cc48271cc1 (patch)
tree58fcb909dff8cee2d2121d17bf0643fad6a8e766 /3rd_party/libsrp6a-sha512/t_sha.c
parent52ab7b76f76ee0464fd150ec881ce50fbf2dc001 (diff)
downloadlibimobiledevice-474fd9284b76d8ddd3a3aec41cbca3cc48271cc1.tar.gz
libimobiledevice-474fd9284b76d8ddd3a3aec41cbca3cc48271cc1.tar.bz2
3rd_party/libsrp6a-sha512: Updated to work with OpenSSL 3.0+ API
Diffstat (limited to '3rd_party/libsrp6a-sha512/t_sha.c')
-rw-r--r--3rd_party/libsrp6a-sha512/t_sha.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/3rd_party/libsrp6a-sha512/t_sha.c b/3rd_party/libsrp6a-sha512/t_sha.c
index 4029de8..8e54cb6 100644
--- a/3rd_party/libsrp6a-sha512/t_sha.c
+++ b/3rd_party/libsrp6a-sha512/t_sha.c
@@ -107,6 +107,44 @@ SHA512Final_mbed(unsigned char digest[64], SHA512_CTX * ctx)
mbedtls_md_free(ctx);
}
+#elif defined(OPENSSL_SHA)
+#if OPENSSL_VERSION_NUMBER >= 0x30000000L
+void
+SHA1Init_openssl(SHA1_CTX *ctx)
+{
+ *ctx = EVP_MD_CTX_new();
+ EVP_DigestInit(*ctx, EVP_sha1());
+}
+
+void SHA1Update_openssl(SHA1_CTX *ctx, const void *data, unsigned int len)
+{
+ EVP_DigestUpdate(*ctx, data, (size_t)len);
+}
+
+void SHA1Final_openssl(unsigned char digest[20], SHA1_CTX *ctx)
+{
+ EVP_DigestFinal(*ctx, digest, NULL);
+ EVP_MD_CTX_destroy(*ctx);
+}
+
+void
+SHA512Init_openssl(SHA512_CTX *ctx)
+{
+ *ctx = EVP_MD_CTX_new();
+ EVP_DigestInit(*ctx, EVP_sha512());
+}
+
+void SHA512Update_openssl(SHA512_CTX *ctx, const void *data, unsigned int len)
+{
+ EVP_DigestUpdate(*ctx, data, (size_t)len);
+}
+
+void SHA512Final_openssl(unsigned char digest[64], SHA512_CTX *ctx)
+{
+ EVP_DigestFinal(*ctx, digest, NULL);
+ EVP_MD_CTX_destroy(*ctx);
+}
+#endif
#elif !defined(OPENSSL_SHA) && !defined(TOMCRYPT_SHA)
/* Use the free SHA1 if the library doesn't have it */
@@ -273,4 +311,4 @@ unsigned char finalcount[8];
SHA1Transform(context->state, context->buffer);
#endif
}
-#endif /* OPENSSL */
+#endif