Name: argon2 Version: 20161029 Release: 8 Summary: A password-hashing tool License: Public Domain or ASL 2.0 URL: https://github.com/P-H-C/phc-winner-argon2 Source0: https://github.com/P-H-C/phc-winner-argon2/archive/1c4fc41f81f358283755eea88d4ecd05e43b7fd3/phc-winner-argon2-20161029-1c4fc41.tar.gz BuildRequires: gcc Requires: libargon2%{?_isa} = %{version}-%{release} %description Argon2 is a password-hashing function that summarizes the state of the art in the design of memory-hard functions and can be used to hash passwords for credential storage, key derivation, or other applications. It has a simple design aimed at the highest memory filling rate and effective use of multiple computing units, while still providing defense against tradeoff attacks (by exploiting the cache and memory organization of the recent processors). Argon2 has three variants: Argon2i, Argon2d, and Argon2id. Argon2d is faster and uses data-depending memory access, which makes it highly resistant against GPU cracking attacks and suitable for applications with no threats from side-channel timing attacks (eg. cryptocurrencies). Argon2i instead uses data-independent memory access, which is preferred for password hashing and password-based key derivation, but it is slower as it makes more passes over the memory to protect from tradeoff attacks. Argon2id is a hybrid of Argon2i and Argon2d, using a combination of data-depending and data-independent memory accesses, which gives some of Argon2i's resistance to side-channel cache timing attacks and much of Argon2d's resistance to GPU cracking attacks. Argon2i, Argon2d, and Argon2id are parametrized by: - A time cost, which defines the amount of computation realized and therefore the execution time, given in number of iterations - A memory cost, which defines the memory usage, given in kibibytes - A parallelism degree, which defines the number of parallel threads %package -n libargon2-devel Summary: Development library files for argon2 Requires: libargon2%{?_isa} = %{version}-%{release} %description -n libargon2-devel This package contains development library files and headers for the argon2. %package -n libargon2 Summary: The password-hashing library for argon2 %description -n libargon2 This package contains dynamic library for argon2 %package_help %prep %setup -qn phc-winner-argon2-1c4fc41f81f358283755eea88d4ecd05e43b7fd3 if ! grep -q 'soname,libargon2.so.*' Makefile; then : soname have changed grep soname Makefile exit 1 fi sed -e 's:lib/@HOST_MULTIARCH@:%{_lib}:;s/@UPSTREAM_VER@/%{version}/' -i libargon2.pc sed -e '/^CFLAGS/s:^CFLAGS:LDFLAGS=%{build_ldflags}\nCFLAGS:' \ -e 's:-O3 -Wall:%{optflags}:' \ -e '/^LIBRARY_REL/s:lib:%{_lib}:' \ -e 's:-march=\$(OPTTARGET) :${CFLAGS} :' \ -e 's:CFLAGS += -march=\$(OPTTARGET)::' \ -i Makefile %build make -j1 %install %make_install %delete_la_and_a install -Dpm 644 libargon2.pc %{buildroot}%{_libdir}/pkgconfig/libargon2.pc install -Dpm 644 man/argon2.1 %{buildroot}%{_mandir}/man1/argon2.1 mv %{buildroot}%{_libdir}/libargon2.so %{buildroot}%{_libdir}/libargon2.so.0 ln -s libargon2.so.0 %{buildroot}%{_libdir}/libargon2.so %check make test %pre %preun %post -n libargon2 -p /sbin/ldconfig %postun -n libargon2 -p /sbin/ldconfig %files %defattr(-,root,root) %{_bindir}/%{name} %license LICENSE %files -n libargon2 %defattr(-,root,root) %license LICENSE %{_libdir}/libargon2.so.* %files -n libargon2-devel %defattr(-,root,root) %{_includedir}/%{name}.h %{_libdir}/libargon2.so %{_libdir}/pkgconfig/*pc %files help %doc *md %{_mandir}/man1/* %changelog * Mon Feb 17 2020 openEuler Buildteam - 20161029-8 - add libargon2 containing dynamic library for argon2; change argon2-devel to libargon2-devel * Tue Sep 10 2019 openEuler Buildteam - 20161029-7 - Package init