package init
This commit is contained in:
parent
f1d44142f8
commit
04420595ba
149
0001-Add-compatibility-with-OpenSSL-1.1.0.patch
Normal file
149
0001-Add-compatibility-with-OpenSSL-1.1.0.patch
Normal file
@ -0,0 +1,149 @@
|
|||||||
|
From e498737a96e8832a2cb9141ab1fe51e129185a48 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Simo Sorce <simo@redhat.com>
|
||||||
|
Date: Wed, 29 Jun 2016 11:15:11 -0400
|
||||||
|
Subject: [PATCH] Add compatibility with OpenSSL 1.1.0
|
||||||
|
|
||||||
|
In their continued wisdom OpenSSL developers keep breaking APIs left and right
|
||||||
|
with very poor documentation and forward/backward source compatibility.
|
||||||
|
|
||||||
|
Signed-off-by: Simo Sorce <simo@redhat.com>
|
||||||
|
---
|
||||||
|
src/crypto.c | 60 ++++++++++++++++++++++++++++++++++++++++++++++++------------
|
||||||
|
1 file changed, 48 insertions(+), 12 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/crypto.c b/src/crypto.c
|
||||||
|
index 9fe69f97cfe9a4c1c9a5fb1861fef3fdfb8ae596..33a0c3e9060df0fa14784e869b5edce2f462b238 100644
|
||||||
|
--- a/src/crypto.c
|
||||||
|
+++ b/src/crypto.c
|
||||||
|
@@ -27,6 +27,32 @@
|
||||||
|
|
||||||
|
#include "crypto.h"
|
||||||
|
|
||||||
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
||||||
|
+HMAC_CTX *HMAC_CTX_new(void)
|
||||||
|
+{
|
||||||
|
+ HMAC_CTX *ctx;
|
||||||
|
+
|
||||||
|
+ ctx = OPENSSL_malloc(sizeof(HMAC_CTX));
|
||||||
|
+ if (!ctx) return NULL;
|
||||||
|
+
|
||||||
|
+ HMAC_CTX_init(ctx);
|
||||||
|
+
|
||||||
|
+ return ctx;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+void HMAC_CTX_free(HMAC_CTX *ctx)
|
||||||
|
+{
|
||||||
|
+ if (ctx == NULL) return;
|
||||||
|
+
|
||||||
|
+ HMAC_CTX_cleanup(ctx);
|
||||||
|
+ OPENSSL_free(ctx);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+#define EVP_MD_CTX_new EVP_MD_CTX_create
|
||||||
|
+#define EVP_MD_CTX_free EVP_MD_CTX_destroy
|
||||||
|
+
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
int RAND_BUFFER(struct ntlm_buffer *random)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
@@ -42,30 +68,34 @@ int HMAC_MD5_IOV(struct ntlm_buffer *key,
|
||||||
|
struct ntlm_iov *iov,
|
||||||
|
struct ntlm_buffer *result)
|
||||||
|
{
|
||||||
|
- HMAC_CTX hmac_ctx;
|
||||||
|
+ HMAC_CTX *hmac_ctx;
|
||||||
|
unsigned int len;
|
||||||
|
size_t i;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
if (result->length != 16) return EINVAL;
|
||||||
|
|
||||||
|
- HMAC_CTX_init(&hmac_ctx);
|
||||||
|
+ hmac_ctx = HMAC_CTX_new();
|
||||||
|
+ if (!hmac_ctx) {
|
||||||
|
+ ret = ERR_CRYPTO;
|
||||||
|
+ goto done;
|
||||||
|
+ }
|
||||||
|
|
||||||
|
- ret = HMAC_Init_ex(&hmac_ctx, key->data, key->length, EVP_md5(), NULL);
|
||||||
|
+ ret = HMAC_Init_ex(hmac_ctx, key->data, key->length, EVP_md5(), NULL);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = ERR_CRYPTO;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < iov->num; i++) {
|
||||||
|
- ret = HMAC_Update(&hmac_ctx, iov->data[i]->data, iov->data[i]->length);
|
||||||
|
+ ret = HMAC_Update(hmac_ctx, iov->data[i]->data, iov->data[i]->length);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = ERR_CRYPTO;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = HMAC_Final(&hmac_ctx, result->data, &len);
|
||||||
|
+ ret = HMAC_Final(hmac_ctx, result->data, &len);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = ERR_CRYPTO;
|
||||||
|
goto done;
|
||||||
|
@@ -74,7 +104,7 @@ int HMAC_MD5_IOV(struct ntlm_buffer *key,
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
done:
|
||||||
|
- HMAC_CTX_cleanup(&hmac_ctx);
|
||||||
|
+ HMAC_CTX_free(hmac_ctx);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -93,26 +123,32 @@ static int mdx_hash(const EVP_MD *type,
|
||||||
|
struct ntlm_buffer *payload,
|
||||||
|
struct ntlm_buffer *result)
|
||||||
|
{
|
||||||
|
- EVP_MD_CTX ctx;
|
||||||
|
+ EVP_MD_CTX *ctx;
|
||||||
|
unsigned int len;
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
if (result->length != 16) return EINVAL;
|
||||||
|
|
||||||
|
- EVP_MD_CTX_init(&ctx);
|
||||||
|
- ret = EVP_DigestInit_ex(&ctx, type, NULL);
|
||||||
|
+ ctx = EVP_MD_CTX_new();
|
||||||
|
+ if (!ctx) {
|
||||||
|
+ ret = ERR_CRYPTO;
|
||||||
|
+ goto done;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ EVP_MD_CTX_init(ctx);
|
||||||
|
+ ret = EVP_DigestInit_ex(ctx, type, NULL);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = ERR_CRYPTO;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = EVP_DigestUpdate(&ctx, payload->data, payload->length);
|
||||||
|
+ ret = EVP_DigestUpdate(ctx, payload->data, payload->length);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = ERR_CRYPTO;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
|
||||||
|
- ret = EVP_DigestFinal_ex(&ctx, result->data, &len);
|
||||||
|
+ ret = EVP_DigestFinal_ex(ctx, result->data, &len);
|
||||||
|
if (ret == 0) {
|
||||||
|
ret = ERR_CRYPTO;
|
||||||
|
goto done;
|
||||||
|
@@ -121,7 +157,7 @@ static int mdx_hash(const EVP_MD *type,
|
||||||
|
ret = 0;
|
||||||
|
|
||||||
|
done:
|
||||||
|
- EVP_MD_CTX_cleanup(&ctx);
|
||||||
|
+ if (ctx) EVP_MD_CTX_free(ctx);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.9.3
|
||||||
|
|
||||||
BIN
gssntlmssp-0.7.0.tar.gz
Normal file
BIN
gssntlmssp-0.7.0.tar.gz
Normal file
Binary file not shown.
66
gssntlmssp.spec
Normal file
66
gssntlmssp.spec
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
Name: gssntlmssp
|
||||||
|
Version: 0.7.0
|
||||||
|
Release: 8
|
||||||
|
Summary: The mechanism of GSSAPI NTLMSSP
|
||||||
|
License: LGPLv3+
|
||||||
|
URL: https://pagure.io/gssntlmssp
|
||||||
|
Source0: https://fedorahosted.org/released/gss-ntlmssp/%{name}-%{version}.tar.gz
|
||||||
|
Patch01: 0001-Add-compatibility-with-OpenSSL-1.1.0.patch
|
||||||
|
|
||||||
|
Requires: krb5-libs >= 1.12.1-9
|
||||||
|
|
||||||
|
BuildRequires: autoconf automake libtool m4 libxslt libxml2 docbook-style-xsl doxygen gettext-devel
|
||||||
|
BuildRequires: pkgconfig krb5-devel >= 1.11.2 libunistring-devel openssl-devel pkgconfig(wbclient)
|
||||||
|
|
||||||
|
%description
|
||||||
|
Implementing the GSSAPI mechanism of NTLMSSP.
|
||||||
|
|
||||||
|
%package devel
|
||||||
|
Summary: The development header of GSSAPI NTLMSSP
|
||||||
|
License: LGPLv3+
|
||||||
|
|
||||||
|
%description devel
|
||||||
|
Add header file with custom GSSAPI extension defined for NTLMSSP.
|
||||||
|
|
||||||
|
%package help
|
||||||
|
Summary: Documentation for gssntlmssp
|
||||||
|
|
||||||
|
%description help
|
||||||
|
This package provides documentation for gssntlmssp.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%autosetup -n gssntlmssp-0.7.0 -p1
|
||||||
|
|
||||||
|
%build
|
||||||
|
autoreconf -fiv
|
||||||
|
%configure \
|
||||||
|
--with-wbclient \
|
||||||
|
--disable-static \
|
||||||
|
--disable-rpath
|
||||||
|
|
||||||
|
%make_build all
|
||||||
|
|
||||||
|
%install
|
||||||
|
%make_install
|
||||||
|
rm -f %{buildroot}%{_libdir}/gssntlmssp/gssntlmssp.la
|
||||||
|
install -d %{buildroot}%{_sysconfdir}/gss/mech.d
|
||||||
|
install -pm644 examples/mech.ntlmssp %{buildroot}%{_sysconfdir}/gss/mech.d/ntlmssp.conf
|
||||||
|
%{find_lang} gssntlmssp
|
||||||
|
|
||||||
|
%check
|
||||||
|
make test_gssntlmssp
|
||||||
|
|
||||||
|
%files -f gssntlmssp.lang
|
||||||
|
%config(noreplace) %{_sysconfdir}/gss/mech.d/ntlmssp.conf
|
||||||
|
%{_libdir}/gssntlmssp/
|
||||||
|
%doc COPYING
|
||||||
|
|
||||||
|
%files devel
|
||||||
|
%{_includedir}/gssapi/gssapi_ntlmssp.h
|
||||||
|
|
||||||
|
%files help
|
||||||
|
%{_mandir}/man8/gssntlmssp.8*
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
* Tue Feb 25 2020 fengbing <fengbing7@huawei.com> - 0.7.0-8
|
||||||
|
- DESC:Package init
|
||||||
Loading…
x
Reference in New Issue
Block a user