Projects
openEuler:Mainline
libkcapi
Sign Up
Log In
Username
Password
We truncated the diff of some files because they were too big. If you want to see the full diff for every file,
click here
.
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 2
View file
_service:tar_scm:libkcapi.spec
Changed
@@ -2,9 +2,31 @@ %global sysctl_optmem_max 81920 %global distroname_ext %{_vendor} +%if %{?openEuler:1}0 +%define enable_docbook_pdf 1 +%else +%define enable_docbook_pdf 0 +%endif + +# Calculate hmac file after installing for binary +%define __spec_install_post \ +%{?__debug_package:%{__debug_install_post}} \ +%{__arch_install_post} \ +%{__os_install_post} \ +bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha1hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha1hmac.hmac \ +bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha224hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha224hmac.hmac \ +bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha256hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha256hmac.hmac \ +bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha384hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha384hmac.hmac \ +bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha512hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha512hmac.hmac \ +bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sm3hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sm3hmac.hmac \ +hardlink -cfv %{buildroot}%{_bindir} \ +bin/kcapi-hasher -n fipshmac -d %{buildroot}/%{_lib}/fipscheck %{buildroot}/%{_lib}/libkcapi.so.%{version} || exit 1 \ +ln -s libkcapi.so.%{version}.hmac %{buildroot}/%{_lib}/fipscheck/libkcapi.so.1.hmac \ +%{nil} + Name: libkcapi -Version: 1.3.1 -Release: 4 +Version: 1.4.0 +Release: 2 Summary: libkcapi - Linux Kernel Crypto API User Space Interface Library License: BSD or GPLv2 @@ -13,10 +35,12 @@ Source1: http://www.chronox.de/%{name}/%{name}-%{version}.tar.xz.asc Patch0: libkcapi-1.1.1-lib_Fix_kcapi_handle_destroy_closing_FD_0.patch -Patch1: backport-Fix-printf-usage-errors-highlighted-by-covscan.patch -BuildRequires: clang coreutils cppcheck docbook-utils-pdf gcc hardlink +BuildRequires: clang coreutils cppcheck gcc hardlink BuildRequires: libtool openssl perl systemd xmlto kernel-headers >= 4.10.0 +%if 0%{?enable_docbook_pdf} +BuildRequires: docbook-utils-pdf +%endif Requires: systemd @@ -125,13 +149,17 @@ # Install into proper location for inclusion by %%doc. mkdir -p %{buildroot}%{_pkgdocdir} -install -Dpm 0644 -t %{buildroot}%{_pkgdocdir} README.%{distroname_ext} README.md CHANGES.md TODO doc/%{name}.p{df,s} +install -Dpm 0644 -t %{buildroot}%{_pkgdocdir} README.%{distroname_ext} README.md CHANGES.md TODO +%if 0%{?enable_docbook_pdf} +install -Dpm 0644 -t %{buildroot}%{_pkgdocdir} doc/%{name}.p{df,s} +%endif cp -pr lib/doc/html %{buildroot}%{_pkgdocdir} # Install replacement tools, if enabled. rm -f %{buildroot}%{_bindir}/md5sum \ %{buildroot}%{_bindir}/sha*sum \ - %{buildroot}%{_bindir}/fips* + %{buildroot}%{_bindir}/fips* \ + %{buildroot}%{_bindir}/sm*sum find %{buildroot} -type f -name '*.la' -print -delete find %{buildroot} -type f -name '*.hmac' -print -delete @@ -145,16 +173,6 @@ %ldconfig_scriptlets -bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha1hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha1hmac.hmac -bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha224hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha224hmac.hmac -bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha256hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha256hmac.hmac -bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha384hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha384hmac.hmac -bin/kcapi-hasher -n sha512hmac %{buildroot}%{_bindir}/sha512hmac | cut -f 1 -d ' ' > %{buildroot}/%{_lib}/hmaccalc/sha512hmac.hmac - -hardlink -cfv %{buildroot}%{_bindir} -bin/kcapi-hasher -n fipshmac -d %{buildroot}/%{_lib}/fipscheck %{buildroot}/%{_lib}/libkcapi.so.%{version} || exit 1 -ln -s libkcapi.so.%{version}.hmac %{buildroot}/%{_lib}/fipscheck/libkcapi.so.1.hmac - %check for t in cppcheck scan;do %make_build $t @@ -176,7 +194,9 @@ %{_sysctldir}/%{sysctl_prio}-%{name}-optmem_max.conf %{_bindir}/kcapi* %{_bindir}/sha*hmac +%{_bindir}/sm*hmac /%{_lib}/hmaccalc/sha*hmac.hmac +/%{_lib}/hmaccalc/sm*hmac.hmac %files devel %doc %{_pkgdocdir}/CHANGES.md @@ -199,6 +219,24 @@ %{_mandir}/man3/kcapi_*.3.* %changelog +* Fri Apr 28 2023 yixiangzhike <yixiangzhike007@163.com> - 1.4.0-2 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:calculate hmac file after installing for binary + +* Wed Nov 16 2022 yixiangzhike <yixiangzhike007@163.com> - 1.4.0-1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:Update to 1.4.0 + +* Wed Jul 13 2022 yixiangzhike <yixiangzhike007@163.com> - 1.3.1-5 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:add macro to control docbook-utils-pdf dependency + * Fri Apr 29 2022 yixiangzhike <yixiangzhike007@163.com> - 1.3.1-4 - Type:bugfix - ID:NA
View file
_service:tar_scm:backport-Fix-printf-usage-errors-highlighted-by-covscan.patch
Deleted
@@ -1,103 +0,0 @@ -From b5ff1b7aa1f5f7c139b4b5e35be07a8d527c9336 Mon Sep 17 00:00:00 2001 -From: Simo Sorce <simo@redhat.com> -Date: Thu, 15 Jul 2021 07:24:37 -0400 -Subject: PATCH Fix printf usage errors highlighted by covscan - -More fallout from the type changes in the API. - -Signed-off-by: Simo Sorce <simo@redhat.com> -Signed-off-by: Stephan Mueller <smueller@chronox.de> ---- - apps/kcapi-dgst.c | 8 ++++---- - apps/kcapi-enc.c | 2 +- - apps/kcapi-rng.c | 8 ++++---- - 3 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/apps/kcapi-dgst.c b/apps/kcapi-dgst.c -index 6e9350a..9cd99dc 100644 ---- a/apps/kcapi-dgst.c -+++ b/apps/kcapi-dgst.c -@@ -139,7 +139,7 @@ static int cipher_op(struct kcapi_handle *handle, struct opt_data *opts) - - if ((uint32_t)ret != kcapi_md_digestsize(handle)) { - dolog(KCAPI_LOG_ERR, -- "Unexpected digest output size: %d (expected %u)\n", -+ "Unexpected digest output size: %ld (expected %u)\n", - ret, kcapi_md_digestsize(handle)); - ret = -EFAULT; - goto out; -@@ -157,7 +157,7 @@ static int cipher_op(struct kcapi_handle *handle, struct opt_data *opts) - } - } - -- dolog(KCAPI_LOG_VERBOSE, "Digest of %d bytes generated\n", ret); -+ dolog(KCAPI_LOG_VERBOSE, "Digest of %ld bytes generated\n", ret); - } else { - if ((uint64_t)outsb.st_size != outlen) { - ret = ftruncate(outfd, outlen); -@@ -183,7 +183,7 @@ static int cipher_op(struct kcapi_handle *handle, struct opt_data *opts) - - if ((uint32_t)ret != kcapi_md_digestsize(handle)) { - dolog(KCAPI_LOG_ERR, -- "Unexpected digest output size: %d (expected %u)\n", -+ "Unexpected digest output size: %ld (expected %u)\n", - ret, kcapi_md_digestsize(handle)); - ret = -EFAULT; - goto out; -@@ -193,7 +193,7 @@ static int cipher_op(struct kcapi_handle *handle, struct opt_data *opts) - bin2hex(tmpbuf, kcapi_md_digestsize(handle), - (char *)outmem, outlen, 0); - -- dolog(KCAPI_LOG_VERBOSE, "Digest of %d bytes generated\n", ret); -+ dolog(KCAPI_LOG_VERBOSE, "Digest of %ld bytes generated\n", ret); - } - - out: -diff --git a/apps/kcapi-enc.c b/apps/kcapi-enc.c -index 0f92c38..20588dd 100644 ---- a/apps/kcapi-enc.c -+++ b/apps/kcapi-enc.c -@@ -273,7 +273,7 @@ static size_t outbufsize(struct kcapi_handle *handle, struct opt_data *opts, - opts->func_blocksize(handle); - } - -- dolog(KCAPI_LOG_DEBUG, "Data size expected to be generated: %u", -+ dolog(KCAPI_LOG_DEBUG, "Data size expected to be generated: %lu", - outsize); - - return outsize; -diff --git a/apps/kcapi-rng.c b/apps/kcapi-rng.c -index 1ace323..14af437 100644 ---- a/apps/kcapi-rng.c -+++ b/apps/kcapi-rng.c -@@ -84,15 +84,15 @@ static ssize_t get_random(uint8_t *buf, size_t buflen) - #ifdef HAVE_GETRANDOM - ret = getrandom(buf, buflen, 0); - dolog(KCAPI_LOG_DEBUG, -- "Accessed getrandom system call for %u bytes", buflen); -+ "Accessed getrandom system call for %lu bytes", buflen); - #elif defined __NR_getrandom - ret = syscall(__NR_getrandom, buf, buflen, 0); - dolog(KCAPI_LOG_DEBUG, -- "Accessed getrandom system call for %u bytes", buflen); -+ "Accessed getrandom system call for %lu bytes", buflen); - #else - ret = read(random_fd, buf, buflen); - dolog(KCAPI_LOG_DEBUG, -- "Accessed /dev/urandom for %u bytes", buflen); -+ "Accessed /dev/urandom for %lu bytes", buflen); - #endif - if (0 < ret) { - buflen -= (size_t)ret; -@@ -286,7 +286,7 @@ int main(int argc, char *argv) - ret = kcapi_rng_seed(rng, seedbuf, seedsize); - if (ret) - dolog(KCAPI_LOG_WARN, -- "User-provided seed of %lu bytes not accepted by DRNG (error: %d)", -+ "User-provided seed of %lu bytes not accepted by DRNG (error: %ld)", - (unsigned long)sizeof(buf), ret); - else - dolog(KCAPI_LOG_DEBUG, --- -1.8.3.1 -
View file
_service
Changed
@@ -2,7 +2,7 @@ <service name="tar_scm"> <param name="scm">git</param> <param name="url">git@gitee.com:src-openeuler/libkcapi.git</param> - <param name="revision">8f30df21542f54aacea32d5defb3dfafcd38c39e</param> + <param name="revision">master</param> <param name="exclude">*</param> <param name="extract">*</param> </service>
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz.asc
Deleted
@@ -1,11 +0,0 @@ ------BEGIN PGP SIGNATURE----- - -iQEzBAABCAAdFiEEO8xD1NLIfReEtp7kQh7pNjJqwVsFAmDttB4ACgkQQh7pNjJq -wVvV4Af/X0t4iZ8ng+AaItGiK3m2Wx1UTJTA1SYTfTTUpENtePKZADG3MX/I5x5N -VVO6CTF6ADZFrwrswP+3KIwZpEsrssTEGZ54G0nLbaHTzyXvE9Ec3CPGECgjZGzM -T0ZGz0XYykWpEVqQDEFKoLs2yK5U/WYHrde5iV9CW2WHK/6VyuRvzAKzh83n5fDg -WlAWGtBQWaGdJAhduLnFx7U7clbpLCuwAZFURWPT1nUamkioT64Io2MfHx+Y9xu+ -cLLqpOBDZAk34MDA0i09psyfD+NPjtzn5i3IEZO9rs8CpFuEe+tBpoJdGpROhuz2 -9o9G2TEe8khpGuKnkAJ7G60Ggdcnmg== -=e24H ------END PGP SIGNATURE-----
View file
_service:tar_scm:libkcapi-1.4.0.tar.xz.asc
Added
@@ -0,0 +1,11 @@ +-----BEGIN PGP SIGNATURE----- + +iQEzBAABCAAdFiEEO8xD1NLIfReEtp7kQh7pNjJqwVsFAmISvaAACgkQQh7pNjJq +wVv6jggAh7UpchOXZ1THbDZ0PE+YGWSr3Y3qKHMls9ixNn/RDSYxPvyZqc6pIAKQ +zVA6bGtB9kqcSexmrk2EyiUYgi1lo+5HwsfAfHBQaq7vD1S8Q/FYx/XVRv2GQfkj +/E1ivlcdcInlpn+vu+7Hei+H/IXtETh8QPwGwRI1Je84pIt7K4K4VPwWpur0su6E +oF1AFT6ldlMczsoDTCi3eP3rZWKvMmX5718W9F6eKuTkKoIiipCUxdMBy4f6YpDB +1ZmQPHjSgG4URlclQnFiGXYAbMBRHYfguJRl/HjZWSQMigRzqGSdvJR8wrfMeQzr +Bk0z0nGayzHgcC7gPz8CsAMJj5C9eQ== +=OA3o +-----END PGP SIGNATURE-----
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/CHANGES.md -> _service:tar_scm:libkcapi-1.4.0.tar.xz/CHANGES.md
Changed
@@ -1,3 +1,10 @@ +Changes 1.4.0: + * fix: ensure that LTO is supported (by Simo Sorce) + * fix: add LTO regression testing (by Ondrej Mosnacek) + * enhancement: add sm3sum, sm3hmac tools, add APIs kcapi_md_sm3, kcapi_md_hmac_sm3 + * enhancement: add SM4 convenience functions + * fix: support AEAD encryption of arbitrary size with kcapi-enc + Changes 1.3.1: * fix: fix -Wconversion warnings (by Ondrej Mosnacek) * fix: fix bad data types in _kcapi_common_send_meta (by Ondrej Mosnacek)
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/COPYING -> _service:tar_scm:libkcapi-1.4.0.tar.xz/COPYING
Changed
@@ -1,4 +1,4 @@ -Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> +Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/Makefile.am -> _service:tar_scm:libkcapi-1.4.0.tar.xz/Makefile.am
Changed
@@ -69,7 +69,7 @@ libkcapi_la_SOURCES += endif -libkcapi_la_CPPFLAGS = $(COMMON_CPPFLAGS) -fvisibility=hidden +libkcapi_la_CPPFLAGS = $(COMMON_CPPFLAGS) libkcapi_la_LDFLAGS = $(COMMON_LDFLAGS) -Wl,--version-script,$(top_srcdir)/lib/version.lds -version-number `echo $(VERSION) | sed 's/\./:/g'` SCAN_FILES = $(libkcapi_la_SOURCES) @@ -154,8 +154,8 @@ SCAN_FILES += $(bin_kcapi_hasher_SOURCES) hasher_links_fc = sha1sum sha224sum sha256sum sha384sum sha512sum \ - md5sum fipscheck fipshmac -hasher_links_hc = sha1hmac sha224hmac sha256hmac sha384hmac sha512hmac + md5sum sm3sum fipscheck fipshmac +hasher_links_hc = sha1hmac sha224hmac sha256hmac sha384hmac sha512hmac sm3hmac hasher_links = $(hasher_links_fc) $(hasher_links_hc) CHECKSUM_CMD_FC = $(OPENSSL) sha256 -r -hmac orboDeJITITejsirpADONivirpUkvarP
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/README.md -> _service:tar_scm:libkcapi-1.4.0.tar.xz/README.md
Changed
@@ -44,7 +44,7 @@ * libfipscheck: fipscheck / fipshmac -* hmaccalc: sha512hmac, sha384hmac, sha256hmac, sha224hmac, sha1hmac +* hmaccalc: sha512hmac, sha384hmac, sha256hmac, sha224hmac, sha1hmac, sm3hmac The output as well as the command line options are modeled according to the commands found in the coreutils package.
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/app-internal.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/app-internal.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/app-internal.h -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/app-internal.h
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-dgst.1 -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-dgst.1
Changed
@@ -1,4 +1,4 @@ -.\" Copyright (c) 2017 - 2021 by Stephan Mueller (smueller@chronox.de) +.\" Copyright (c) 2017 - 2022 by Stephan Mueller (smueller@chronox.de) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-dgst.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-dgst.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -139,7 +139,7 @@ if ((uint32_t)ret != kcapi_md_digestsize(handle)) { dolog(KCAPI_LOG_ERR, - "Unexpected digest output size: %d (expected %u)\n", + "Unexpected digest output size: %ld (expected %u)\n", ret, kcapi_md_digestsize(handle)); ret = -EFAULT; goto out; @@ -157,7 +157,7 @@ } } - dolog(KCAPI_LOG_VERBOSE, "Digest of %d bytes generated\n", ret); + dolog(KCAPI_LOG_VERBOSE, "Digest of %ld bytes generated\n", ret); } else { if ((uint64_t)outsb.st_size != outlen) { ret = ftruncate(outfd, outlen); @@ -183,7 +183,7 @@ if ((uint32_t)ret != kcapi_md_digestsize(handle)) { dolog(KCAPI_LOG_ERR, - "Unexpected digest output size: %d (expected %u)\n", + "Unexpected digest output size: %ld (expected %u)\n", ret, kcapi_md_digestsize(handle)); ret = -EFAULT; goto out; @@ -193,7 +193,7 @@ bin2hex(tmpbuf, kcapi_md_digestsize(handle), (char *)outmem, outlen, 0); - dolog(KCAPI_LOG_VERBOSE, "Digest of %d bytes generated\n", ret); + dolog(KCAPI_LOG_VERBOSE, "Digest of %ld bytes generated\n", ret); } out:
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-enc.1 -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-enc.1
Changed
@@ -1,4 +1,4 @@ -.\" Copyright (c) 2017 - 2021 by Stephan Mueller (smueller@chronox.de) +.\" Copyright (c) 2017 - 2022 by Stephan Mueller (smueller@chronox.de) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-enc.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-enc.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -233,7 +233,6 @@ /* send generated data to stdout */ if (outfd == STDOUT_FD) return return_data_stdout(handle, opts, outsize); - /* Write to a file. */ else return return_data_fd(handle, opts, outfd, outsize, offset, @@ -273,7 +272,7 @@ opts->func_blocksize(handle); } - dolog(KCAPI_LOG_DEBUG, "Data size expected to be generated: %u", + dolog(KCAPI_LOG_DEBUG, "Data size expected to be generated: %lu", outsize); return outsize; @@ -415,6 +414,8 @@ uint8_t padbuf32 __aligned(KCAPI_APP_ALIGN); uint8_t tagtmpbufTAGBUFLEN __aligned(KCAPI_APP_ALIGN); + unsigned int maxdata; + /* * To avoid spurious padding, the buffer must be multiples of the * block size. @@ -553,20 +554,34 @@ opts->aadlen); } + ret = kcapi_get_maxsplicesize(handle); + if (ret < 0) + goto out; + maxdata = (unsigned int)ret; + /* Get data from stdin. */ if (infd == STDIN_FD) { + bool data_sent = false; + iniov.iov_base = tmpbuf; while ((iniov.iov_len = fread(tmpbuf, sizeof(uint8_t), TMPBUFLEN, stdin))) { + /* WARNING: with AEAD, only one loop is possible */ + if (opts->aad && data_sent) { + dolog(KCAPI_LOG_ERR, + "Kernel is unable to receive AEAD data in chunks, send all AEAD data in one operation using a file (max numbers of bytes for STDIN is %u)\n", + TMPBUFLEN); + ret = -EOVERFLOW; + goto out; + } + ret = opts->func_stream_update(handle, &iniov, 1); if (ret < 0) goto out; outsize = outbufsize(handle, opts, (uint32_t)iniov.iov_len); - - /* WARNING: with AEAD, only one loop is possible */ ret = sendtag(handle, opts, tagbuf, tagtmpbuf); if (ret) goto out; @@ -588,13 +603,12 @@ generated_bytes, 0); if (ret < 0) goto out; + generated_bytes += (unsigned int)ret; } /* Get data from file. */ } else { - uint32_t maxdata = (uint32_t)(sysconf(_SC_PAGESIZE) * - MAX_ALG_PAGES); uint32_t sent_data = 0; inmem = mmap(NULL, (size_t)insb.st_size, PROT_READ, MAP_SHARED, @@ -648,6 +662,17 @@ uint32_t avail = (uint32_t)insb.st_size - sent_data; uint32_t todo = avail > maxdata ? maxdata : avail; + if (opts->aad && avail > todo) { + dolog(KCAPI_LOG_VERBOSE, + "Increase pipeseize for AEAD operation to %u\n", + avail); + + ret = kcapi_set_maxsplicesize(handle, avail); + if (ret < 0) + goto out; + todo = avail; + } + iniov.iov_base = inmem + sent_data; iniov.iov_len = todo; ret = opts->func_stream_update(handle, &iniov, 1); @@ -657,7 +682,6 @@ outsize = outbufsize(handle, opts, (uint32_t)iniov.iov_len); - /* WARNING: with AEAD, only one loop is possible */ ret = sendtag(handle, opts, tagbuf, tagtmpbuf); if (ret) goto out;
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-hasher.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-hasher.c
Changed
@@ -1,6 +1,6 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> - * Copyright (C) 2021, Red Hat, Inc. All rights reserved. + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2022, Red Hat, Inc. All rights reserved. * * License: see LICENSE file in root directory * @@ -26,6 +26,7 @@ * * sha256sum * * sha384sum * * sha512sum + * * sm3sum * * md5sum * * fipscheck with hard coded key from libfipscheck * * fipshmac with hard coded key from libfipscheck @@ -34,6 +35,7 @@ * * sha256hmac * * sha384hmac * * sha512hmac + * * sm3hmac * * Once the application is compiled, a symlink or hardlink to the * aforementioned application would turn the binary into behaving like the @@ -103,6 +105,9 @@ static const struct hash_name NAMES_SHA5122 = { { "sha512", "SHA512" }, { "hmac(sha512)", "HMAC(SHA512)" } }; +static const struct hash_name NAMES_SM32 = { + { "sm3", "SM3" }, { "hmac(sm3)", "HMAC(SM3)" } +}; static const char fipscheck_hmackey = "orboDeJITITejsirpADONivirpUkvarP"; static const char hmaccalc_hmackey = "FIPS-FTW-RHT2009"; @@ -923,6 +928,8 @@ names = NAMES_SHA384; } else if (0 == strncmp(basen, "md5sum", 6)) { names = NAMES_MD5; + } else if (0 == strncmp(basen, "sm3sum", 6)) { + names = NAMES_SM3; } else if (0 == strncmp(basen, "fipshmac", 8)) { names = NAMES_SHA256; hmac = 1; @@ -958,6 +965,11 @@ hmac = 1; params.key = KEY_HMACCALC; params_self = &PARAMS_SELF_HMACCALC; + } else if (0 == strncmp(basen, "sm3hmac", 7)) { + names = NAMES_SM3; + hmac = 1; + params.key = KEY_HMACCALC; + params_self = &PARAMS_SELF_HMACCALC; } else { fprintf(stderr, "Unknown invocation name: %s\n", basen); usage(argv0, fipscheck); @@ -1022,6 +1034,8 @@ names = NAMES_SHA384; else if (0 == strcmp(optarg, "sha512")) names = NAMES_SHA512; + else if (0 == strcmp(optarg, "sm3")) + names = NAMES_SM3; else { fprintf(stderr, "Invalid hash: %s\n", optarg); ret = 1;
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-rng.1 -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-rng.1
Changed
@@ -1,4 +1,4 @@ -.\" Copyright (c) 2017 - 2021 by Stephan Mueller (smueller@chronox.de) +.\" Copyright (c) 2017 - 2022 by Stephan Mueller (smueller@chronox.de) .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/apps/kcapi-rng.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/apps/kcapi-rng.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -84,15 +84,15 @@ #ifdef HAVE_GETRANDOM ret = getrandom(buf, buflen, 0); dolog(KCAPI_LOG_DEBUG, - "Accessed getrandom system call for %u bytes", buflen); + "Accessed getrandom system call for %lu bytes", buflen); #elif defined __NR_getrandom ret = syscall(__NR_getrandom, buf, buflen, 0); dolog(KCAPI_LOG_DEBUG, - "Accessed getrandom system call for %u bytes", buflen); + "Accessed getrandom system call for %lu bytes", buflen); #else ret = read(random_fd, buf, buflen); dolog(KCAPI_LOG_DEBUG, - "Accessed /dev/urandom for %u bytes", buflen); + "Accessed /dev/urandom for %lu bytes", buflen); #endif if (0 < ret) { buflen -= (size_t)ret; @@ -286,7 +286,7 @@ ret = kcapi_rng_seed(rng, seedbuf, seedsize); if (ret) dolog(KCAPI_LOG_WARN, - "User-provided seed of %lu bytes not accepted by DRNG (error: %d)", + "User-provided seed of %lu bytes not accepted by DRNG (error: %ld)", (unsigned long)sizeof(buf), ret); else dolog(KCAPI_LOG_DEBUG,
View file
_service:tar_scm:libkcapi-1.4.0.tar.xz/config.log
Added
@@ -0,0 +1,379 @@ +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by libkcapi configure 1.4.0, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ ./configure --enable-kcapi-test --enable-kcapi-encapp --enable-kcapi-hasher --enable-kcapi-dgstapp --enable-kcapi-rngapp --enable-lib-kpp --enable-lib-asym + +## --------- ## +## Platform. ## +## --------- ## + +hostname = positron.chronox.de +uname -m = x86_64 +uname -r = 5.16.8-200.fc35.x86_64 +uname -s = Linux +uname -v = #1 SMP PREEMPT Tue Feb 8 20:58:59 UTC 2022 + +/usr/bin/uname -p = x86_64 +/bin/uname -X = unknown + +/bin/arch = x86_64 +/usr/bin/arch -k = unknown +/usr/convex/getsysinfo = unknown +/usr/bin/hostinfo = unknown +/bin/machine = unknown +/usr/bin/oslevel = unknown +/bin/universe = unknown + +PATH: /usr/local/bin +PATH: /usr/bin +PATH: /bin +PATH: /usr/local/sbin +PATH: /usr/sbin +PATH: /home/sm/.local/bin +PATH: /home/sm/bin +PATH: /home/sm/bin + + +## ----------- ## +## Core tests. ## +## ----------- ## + +configure:2351: checking for a BSD-compatible install +configure:2419: result: /usr/bin/install -c +configure:2430: checking whether build environment is sane +configure:2485: result: yes +configure:2636: checking for a thread-safe mkdir -p +configure:2675: result: /usr/bin/mkdir -p +configure:2682: checking for gawk +configure:2698: found /usr/bin/gawk +configure:2709: result: gawk +configure:2720: checking whether make sets $(MAKE) +configure:2742: result: yes +configure:2771: checking whether make supports nested variables +configure:2788: result: yes +configure:2943: checking build system type +configure:2957: result: x86_64-unknown-linux-gnu +configure:2977: checking host system type +configure:2990: result: x86_64-unknown-linux-gnu +configure:3031: checking how to print strings +configure:3058: result: printf +configure:3083: checking whether make supports the include directive +configure:3098: make -f confmf.GNU && cat confinc.out +this is the am__doit target +configure:3101: $? = 0 +configure:3120: result: yes (GNU style) +configure:3190: checking for gcc +configure:3206: found /usr/bin/gcc +configure:3217: result: gcc +configure:3446: checking for C compiler version +configure:3455: gcc --version >&5 +gcc (GCC) 11.2.1 20220127 (Red Hat 11.2.1-9) +Copyright (C) 2021 Free Software Foundation, Inc. +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +configure:3466: $? = 0 +configure:3455: gcc -v >&5 +Using built-in specs. +COLLECT_GCC=gcc +COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/11/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-redhat-linux +Configured with: ../configure --enable-bootstrap --enable-languages=c,c++,fortran,objc,obj-c++,ada,go,d,lto --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-11.2.1-20220127/obj-x86_64-redhat-linux/isl-install --enable-offload-targets=nvptx-none --without-cuda-driver --enable-gnu-indirect-function --enable-cet --with-tune=generic --with-arch_32=i686 --build=x86_64-redhat-linux --with-build-config=bootstrap-lto --enable-link-serialization=1 +Thread model: posix +Supported LTO compression algorithms: zlib zstd +gcc version 11.2.1 20220127 (Red Hat 11.2.1-9) (GCC) +... rest of stderr output deleted ... +configure:3466: $? = 0 +configure:3455: gcc -V >&5 +gcc: error: unrecognized command-line option '-V' +gcc: fatal error: no input files +compilation terminated. +configure:3466: $? = 1 +configure:3455: gcc -qversion >&5 +gcc: error: unrecognized command-line option '-qversion'; did you mean '--version'? +gcc: fatal error: no input files +compilation terminated. +configure:3466: $? = 1 +configure:3486: checking whether the C compiler works +configure:3508: gcc -m32 -m32 conftest.c >&5 +/usr/bin/ld: cannot find crt1.o: No such file or directory +/usr/bin/ld: cannot find crti.o: No such file or directory +/usr/bin/ld: cannot find /lib/libgcc_s.so.1 +collect2: error: ld returned 1 exit status +configure:3512: $? = 1 +configure:3550: result: no +configure: failed program was: +| /* confdefs.h */ +| #define PACKAGE_NAME "libkcapi" +| #define PACKAGE_TARNAME "libkcapi" +| #define PACKAGE_VERSION "1.4.0" +| #define PACKAGE_STRING "libkcapi 1.4.0" +| #define PACKAGE_BUGREPORT "" +| #define PACKAGE_URL "" +| #define KCAPI_MAJVERSION 1 +| #define KCAPI_MINVERSION 4 +| #define KCAPI_PATCHLEVEL 0 +| #define PACKAGE "libkcapi" +| #define VERSION "1.4.0" +| /* end confdefs.h. */ +| +| int +| main () +| { +| +| ; +| return 0; +| } +configure:3555: error: in `/home/sm/hacking/sources/libkcapi/libkcapi': +configure:3557: error: C compiler cannot create executables +See `config.log' for more details + +## ---------------- ## +## Cache variables. ## +## ---------------- ## + +ac_cv_build=x86_64-unknown-linux-gnu +ac_cv_env_CC_set= +ac_cv_env_CC_value= +ac_cv_env_CFLAGS_set=set +ac_cv_env_CFLAGS_value='-m32 ' +ac_cv_env_CPPFLAGS_set= +ac_cv_env_CPPFLAGS_value= +ac_cv_env_CPP_set= +ac_cv_env_CPP_value= +ac_cv_env_LDFLAGS_set=set +ac_cv_env_LDFLAGS_value='-m32 ' +ac_cv_env_LIBS_set= +ac_cv_env_LIBS_value= +ac_cv_env_LT_SYS_LIBRARY_PATH_set= +ac_cv_env_LT_SYS_LIBRARY_PATH_value= +ac_cv_env_build_alias_set= +ac_cv_env_build_alias_value= +ac_cv_env_host_alias_set= +ac_cv_env_host_alias_value= +ac_cv_env_target_alias_set= +ac_cv_env_target_alias_value= +ac_cv_host=x86_64-unknown-linux-gnu +ac_cv_path_install='/usr/bin/install -c' +ac_cv_path_mkdir=/usr/bin/mkdir +ac_cv_prog_AWK=gawk +ac_cv_prog_ac_ct_CC=gcc +ac_cv_prog_make_make_set=yes +am_cv_make_support_nested_variables=yes + +## ----------------- ## +## Output variables. ## +## ----------------- ## + +ACLOCAL='${SHELL} /home/sm/hacking/sources/libkcapi/libkcapi/missing aclocal-1.16' +AMDEPBACKSLASH='\' +AMDEP_FALSE='#' +AMDEP_TRUE='' +AMTAR='$${TAR-tar}' +AM_BACKSLASH='\' +AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +AM_DEFAULT_VERBOSITY='1' +AM_V='$(V)' +API_VERSION='' +AR='' +AUTOCONF='${SHELL} /home/sm/hacking/sources/libkcapi/libkcapi/missing autoconf' +AUTOHEADER='${SHELL} /home/sm/hacking/sources/libkcapi/libkcapi/missing autoheader' +AUTOMAKE='${SHELL} /home/sm/hacking/sources/libkcapi/libkcapi/missing automake-1.16' +AWK='gawk' +BUILD_EXEEXT='' +BUILD_OBJEXT='' +CAN_CHECK_API_VERSION_FALSE='' +CAN_CHECK_API_VERSION_TRUE='' +CC='gcc' +CCDEPMODE='' +CC_FOR_BUILD='' +CFLAGS='-m32 ' +CFLAGS_FOR_BUILD='' +CHECK_DIR='' +CHECK_PREFIX='' +CHECK_SUFFIX=''
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/configure.ac -> _service:tar_scm:libkcapi-1.4.0.tar.xz/configure.ac
Changed
@@ -10,8 +10,8 @@ dnl enhancements, bug fixes only. Versions with dnl a decimal point are pre-releases. m4_define(__KCAPI_MAJVERSION, 1) -m4_define(__KCAPI_MINVERSION, 3) -m4_define(__KCAPI_PATCHLEVEL, 1) +m4_define(__KCAPI_MINVERSION, 4) +m4_define(__KCAPI_PATCHLEVEL, 0) m4_define(KCAPI_VERSION, __KCAPI_MAJVERSION.__KCAPI_MINVERSION.__KCAPI_PATCHLEVEL) AC_INIT(libkcapi, KCAPI_VERSION)
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/kernel-patches/4.14-rc1/asym/v9-0003-crypto-AF_ALG-add-asymmetric-cipher.patch -> _service:tar_scm:libkcapi-1.4.0.tar.xz/kernel-patches/4.14-rc1/asym/v9-0003-crypto-AF_ALG-add-asymmetric-cipher.patch
Changed
@@ -59,7 +59,7 @@ +/* + * algif_akcipher: User-space interface for asymmetric cipher algorithms + * -+ * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> ++ * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> + * + * This file provides the user-space API for asymmetric ciphers. + *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/kernel-patches/4.14-rc1/kpp/v2-0008-crypto-AF_ALG-add-KPP-support.patch -> _service:tar_scm:libkcapi-1.4.0.tar.xz/kernel-patches/4.14-rc1/kpp/v2-0008-crypto-AF_ALG-add-KPP-support.patch
Changed
@@ -99,7 +99,7 @@ +/* + * algif_kpp: User-space interface for key protocol primitives algorithms + * -+ * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> ++ * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> + * + * This file provides the user-space API for key protocol primitives. + *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/kernel-patches/4.15-rc3/asym/v10-0003-crypto-AF_ALG-add-asymmetric-cipher.patch -> _service:tar_scm:libkcapi-1.4.0.tar.xz/kernel-patches/4.15-rc3/asym/v10-0003-crypto-AF_ALG-add-asymmetric-cipher.patch
Changed
@@ -59,7 +59,7 @@ +/* + * algif_akcipher: User-space interface for asymmetric cipher algorithms + * -+ * Copyright (C) 2018 - 2021, Stephan Mueller <smueller@chronox.de> ++ * Copyright (C) 2018 - 2022, Stephan Mueller <smueller@chronox.de> + * + * This file provides the user-space API for asymmetric ciphers. + *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/kernel-patches/4.15-rc3/kpp/v3-0008-crypto-AF_ALG-add-KPP-support.patch -> _service:tar_scm:libkcapi-1.4.0.tar.xz/kernel-patches/4.15-rc3/kpp/v3-0008-crypto-AF_ALG-add-KPP-support.patch
Changed
@@ -99,7 +99,7 @@ +/* + * algif_kpp: User-space interface for key protocol primitives algorithms + * -+ * Copyright (C) 2018 - 2021, Stephan Mueller <smueller@chronox.de> ++ * Copyright (C) 2018 - 2022, Stephan Mueller <smueller@chronox.de> + * + * This file provides the user-space API for key protocol primitives. + *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/atomic.h -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/atomic.h
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2018 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2018 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/doc/libkcapi.tmpl -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/doc/libkcapi.tmpl
Changed
@@ -781,6 +781,10 @@ !Fkcapi.h kcapi_cipher_dec_aes_cbc !Fkcapi.h kcapi_cipher_enc_aes_ctr !Fkcapi.h kcapi_cipher_dec_aes_ctr +!Fkcapi.h kcapi_cipher_enc_sm4_cbc +!Fkcapi.h kcapi_cipher_dec_sm4_cbc +!Fkcapi.h kcapi_cipher_enc_sm4_ctr +!Fkcapi.h kcapi_cipher_dec_sm4_ctr </sect1> <sect1><title>Asynchronous Symmetric Cipher API - One Shot</title> !Fkcapi.h kcapi_cipher_encrypt_aio @@ -849,11 +853,13 @@ !Fkcapi.h kcapi_md_sha256 !Fkcapi.h kcapi_md_sha384 !Fkcapi.h kcapi_md_sha512 +!Fkcapi.h kcapi_md_sm3 !Fkcapi.h kcapi_md_hmac_sha1 !Fkcapi.h kcapi_md_hmac_sha224 !Fkcapi.h kcapi_md_hmac_sha256 !Fkcapi.h kcapi_md_hmac_sha384 !Fkcapi.h kcapi_md_hmac_sha512 +!Fkcapi.h kcapi_md_hmac_sm3 </sect1> <sect1><title>Message Digest Cipher API - Stream</title> !Fkcapi.h kcapi_md_update
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/internal.h -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/internal.h
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -52,14 +52,17 @@ #ifndef ALG_SET_AEAD_AUTHSIZE #define ALG_SET_AEAD_AUTHSIZE 5 #endif +#ifndef ALG_SET_DRBG_ENTROPY +#define ALG_SET_DRBG_ENTROPY 6 +#endif #ifndef ALG_SET_PUBKEY -#define ALG_SET_PUBKEY 6 +#define ALG_SET_PUBKEY 7 #endif #ifndef ALG_SET_DH_PARAMETERS -#define ALG_SET_DH_PARAMETERS 7 +#define ALG_SET_DH_PARAMETERS 8 #endif #ifndef ALG_SET_ECDH_CURVE -#define ALG_SET_ECDH_CURVE 8 +#define ALG_SET_ECDH_CURVE 9 #endif @@ -293,6 +296,8 @@ void _kcapi_handle_destroy(struct kcapi_handle *handle); int _kcapi_common_setkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen); +int _kcapi_common_setentropy(struct kcapi_handle *handle, const uint8_t *ent, + uint32_t entlen); ssize_t _kcapi_cipher_crypt(struct kcapi_handle *handle, const uint8_t *in, size_t inlen, uint8_t *out, size_t outlen, int access, unsigned int enc); @@ -347,21 +352,19 @@ * Auxiliary macros ************************************************************/ -#if __GNUC__ >= 4 -# define DSO_PUBLIC __attribute__ ((visibility ("default"))) - +#if __GNUC__ >= 10 # define IMPL_SYMVER(name, version) \ - __asm__(".global impl_" #name ";"\ - ".symver impl_" #name ",kcapi_" #name "@@LIBKCAPI_" version);\ - __attribute__ ((visibility ("default"))) + __attribute__((__symver__("kcapi_" #name "@@LIBKCAPI_" version))) # define ORIG_SYMVER(name, version) \ - __asm__(".global orig_" #name ";"\ - ".symver orig_" #name ",kcapi_" #name "@LIBKCAPI_" version);\ - __attribute__ ((visibility ("default"))) + __attribute__((__symver__("kcapi_" #name "@LIBKCAPI_" version))) #else -# error "Compiler version too old" +# define IMPL_SYMVER(name, version) \ + __asm__(".symver impl_" #name ",kcapi_" #name "@@LIBKCAPI_" version); + +# define ORIG_SYMVER(name, version) \ + __asm__(".symver orig_" #name ",kcapi_" #name "@LIBKCAPI_" version); #endif #ifdef __cplusplus
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-aead.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-aead.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG AEAD API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -21,27 +21,23 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC int kcapi_aead_init(struct kcapi_handle **handle, const char *ciphername, uint32_t flags) { return _kcapi_handle_init(handle, "aead", ciphername, flags); } -DSO_PUBLIC void kcapi_aead_destroy(struct kcapi_handle *handle) { _kcapi_handle_destroy(handle); } -DSO_PUBLIC int kcapi_aead_setkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen) { return _kcapi_common_setkey(handle, key, keylen); } -DSO_PUBLIC int kcapi_aead_settaglen(struct kcapi_handle *handle, uint32_t taglen) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -504,7 +500,6 @@ return (int32_t)impl_aead_stream_op(handle, iov, iovlen); } -DSO_PUBLIC uint32_t kcapi_aead_ivsize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -512,7 +507,6 @@ return tfm->info.ivsize; } -DSO_PUBLIC uint32_t kcapi_aead_blocksize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -520,7 +514,6 @@ return tfm->info.blocksize; } -DSO_PUBLIC uint32_t kcapi_aead_authsize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -619,7 +612,6 @@ taglen); } -DSO_PUBLIC int kcapi_aead_ccm_nonce_to_iv(const uint8_t *nonce, uint32_t noncelen, uint8_t **iv, uint32_t *ivlen) {
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-asym.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-asym.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG Asymmetric Cipher API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -21,27 +21,23 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC int kcapi_akcipher_init(struct kcapi_handle **handle, const char *ciphername, uint32_t flags) { return _kcapi_handle_init(handle, "akcipher", ciphername, flags); } -DSO_PUBLIC void kcapi_akcipher_destroy(struct kcapi_handle *handle) { _kcapi_handle_destroy(handle); } -DSO_PUBLIC int kcapi_akcipher_setkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen) { return _kcapi_common_setkey(handle, key, keylen); } -DSO_PUBLIC int kcapi_akcipher_setpubkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen) {
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-kdf.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-kdf.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG SP800-108 / SP800-132 KDF API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -454,7 +454,6 @@ return 0; } -DSO_PUBLIC uint32_t kcapi_pbkdf_iteration_count(const char *hashname, uint64_t timeshresh) { #define LOW_ITERATION_COUNT (UINT32_C(1<<16))
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-kernel-if.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-kernel-if.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG interface code * - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -119,6 +119,30 @@ return 0; } +#ifdef __GLIBC__ +static inline size_t kcapi_downcast_int(size_t in) +{ + return in; +} + +static inline size_t kcapi_downcast_socklen_t(size_t in) +{ + return in; +} +#else +static inline int kcapi_downcast_int(size_t in) +{ + if (in > INT_MAX) + return INT_MAX; + return (int)in; +} + +static inline socklen_t kcapi_downcast_socklen_t(size_t in) +{ + return (socklen_t)in; +} +#endif + ssize_t _kcapi_common_send_meta(struct kcapi_handle *handle, struct iovec *iov, size_t iovlen, unsigned int enc, uint32_t flags) @@ -168,10 +192,9 @@ } msg.msg_control = buffer_p; - msg.msg_controllen = bufferlen; msg.msg_iov = iov; - msg.msg_iovlen = iovlen; - + msg.msg_iovlen = kcapi_downcast_int(iovlen); + msg.msg_controllen = kcapi_downcast_socklen_t(bufferlen); /* encrypt/decrypt operation */ header = CMSG_FIRSTHDR(&msg); if (!header) { @@ -193,7 +216,7 @@ } header->cmsg_level = SOL_ALG; header->cmsg_type = ALG_SET_IV; - header->cmsg_len = iv_msg_size; + header->cmsg_len = kcapi_downcast_socklen_t(iv_msg_size); alg_iv = (void*)CMSG_DATA(header); alg_iv->ivlen = tfm->info.ivsize; memcpy(alg_iv->iv, handle->cipher.iv, tfm->info.ivsize); @@ -244,8 +267,7 @@ msg.msg_controllen = 0; msg.msg_flags = 0; msg.msg_iov = iov; - msg.msg_iovlen = iovlen; - + msg.msg_iovlen = kcapi_downcast_int(iovlen); ret = sendmsg(*_kcapi_get_opfd(handle), &msg, (int)flags); if (ret < 0) ret = -errno; @@ -542,8 +564,11 @@ msg.msg_controllen = 0; msg.msg_flags = 0; msg.msg_iov = iov; +#ifdef __GLIBC__ msg.msg_iovlen = iovlen; - +#else + msg.msg_iovlen = (int)iovlen; +#endif ret = recvmsg(*_kcapi_get_opfd(handle), &msg, 0); if (ret < 0) ret = -errno; @@ -622,6 +647,22 @@ return ret; } +int _kcapi_common_setentropy(struct kcapi_handle *handle, + const uint8_t *ent, uint32_t entlen) +{ + struct kcapi_handle_tfm *tfm = handle->tfm; + int ret; + + ret = setsockopt(tfm->tfmfd, SOL_ALG, ALG_SET_DRBG_ENTROPY, ent, + entlen); + if (ret < 0) + ret = -errno; + kcapi_dolog(KCAPI_LOG_DEBUG, + "AF_ALG setentropy: setsockopt syscall returned %d", ret); + + return ret; +} + static int __kcapi_common_getinfo(struct kcapi_handle *handle, const char *ciphername, int drivername) @@ -1230,7 +1271,6 @@ return ret; } -DSO_PUBLIC int kcapi_handle_reinit(struct kcapi_handle **newhandle, struct kcapi_handle *existing, uint32_t flags) {
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-kpp.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-kpp.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG Key-Agreement Protocol Primitives API * - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -21,7 +21,6 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC int kcapi_kpp_init(struct kcapi_handle **handle, const char *ciphername, uint32_t flags) { @@ -33,13 +32,11 @@ return 0; } -DSO_PUBLIC void kcapi_kpp_destroy(struct kcapi_handle *handle) { _kcapi_handle_destroy(handle); } -DSO_PUBLIC int kcapi_kpp_dh_setparam_pkcs3(struct kcapi_handle *handle, const uint8_t *pkcs3, uint32_t pkcs3len) { @@ -51,7 +48,6 @@ return (ret >= 0) ? ret : -errno; } -DSO_PUBLIC int kcapi_kpp_ecdh_setcurve(struct kcapi_handle *handle, unsigned long curve_id) { @@ -65,7 +61,6 @@ return (ret >= 0) ? ret : -errno; } -DSO_PUBLIC int kcapi_kpp_setkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen) {
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-md.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-md.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG Message Digest API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -21,20 +21,17 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC int kcapi_md_init(struct kcapi_handle **handle, const char *ciphername, uint32_t flags) { return _kcapi_handle_init(handle, "hash", ciphername, flags); } -DSO_PUBLIC void kcapi_md_destroy(struct kcapi_handle *handle) { _kcapi_handle_destroy(handle); } -DSO_PUBLIC int kcapi_md_setkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen) { @@ -69,7 +66,6 @@ return 0; } -DSO_PUBLIC ssize_t kcapi_md_update(struct kcapi_handle *handle, const uint8_t *buffer, size_t len) { @@ -133,7 +129,6 @@ return (int32_t)impl_md_digest(handle, in, inlen, out, outlen); } -DSO_PUBLIC uint32_t kcapi_md_digestsize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -141,7 +136,6 @@ return tfm->info.hash_digestsize; } -DSO_PUBLIC uint32_t kcapi_md_blocksize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -236,6 +230,12 @@ return (int32_t)kcapi_md_conv_common("sha512", in, inlen, out, outlen); } +ssize_t kcapi_md_sm3(const uint8_t *in, size_t inlen, + uint8_t *out, size_t outlen) +{ + return kcapi_md_conv_common("sm3", in, inlen, out, outlen); +} + static inline ssize_t kcapi_md_mac_conv_common(const char *name, const uint8_t *key, uint32_t keylen, const uint8_t *in, size_t inlen, uint8_t *out, size_t outlen) @@ -346,3 +346,11 @@ return (int32_t)kcapi_md_mac_conv_common("hmac(sha512)", key, keylen, in, inlen, out, outlen); } + +ssize_t kcapi_md_hmac_sm3(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + uint8_t *out, size_t outlen) +{ + return kcapi_md_mac_conv_common("hmac(sm3)", key, keylen, in, inlen, + out, outlen); +}
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-rng.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-rng.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG Random Number Generator API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -28,20 +28,17 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC int kcapi_rng_init(struct kcapi_handle **handle, const char *ciphername, uint32_t flags) { return _kcapi_handle_init(handle, "rng", ciphername, flags); } -DSO_PUBLIC void kcapi_rng_destroy(struct kcapi_handle *handle) { _kcapi_handle_destroy(handle); } -DSO_PUBLIC int kcapi_rng_seed(struct kcapi_handle *handle, uint8_t *seed, uint32_t seedlen) { @@ -50,6 +47,39 @@ return _kcapi_common_setkey(handle, seed, seedlen); } +int kcapi_rng_setentropy(struct kcapi_handle *handle, uint8_t *ent, + uint32_t entlen) +{ + kcapi_dolog(KCAPI_LOG_VERBOSE, + "Set %u bytes of initial entropy of DRBG", entlen); + return _kcapi_common_setentropy(handle, ent, entlen); +} + +int kcapi_rng_setaddtl(struct kcapi_handle *handle, uint8_t *addtl, + uint32_t len) +{ + ssize_t ret = 0; + + kcapi_dolog(KCAPI_LOG_VERBOSE, + "Set %u bytes of additional data for DRBG", len); + + if (len > INT_MAX) + return -EMSGSIZE; + + ret = _kcapi_common_accept(handle); + if (ret) + return (int)ret; + ret = send(*_kcapi_get_opfd(handle), addtl, len, MSG_MORE); + + if (ret < 0) + return (int)ret; + if ((uint32_t)ret < len) + return -EIO; + + handle->processed_sg += 1; + return 0; +} + IMPL_SYMVER(rng_generate, "1.3.1") ssize_t impl_rng_generate(struct kcapi_handle *handle, uint8_t *buffer, size_t len) @@ -81,7 +111,6 @@ return (int32_t)impl_rng_generate(handle, buffer, len); } -DSO_PUBLIC uint32_t kcapi_rng_seedsize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm;
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-sym.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-sym.c
Changed
@@ -1,6 +1,6 @@ /* Kernel crypto API AF_ALG Symmetric Cipher API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -21,20 +21,17 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC int kcapi_cipher_init(struct kcapi_handle **handle, const char *ciphername, uint32_t flags) { return _kcapi_handle_init(handle, "skcipher", ciphername, flags); } -DSO_PUBLIC void kcapi_cipher_destroy(struct kcapi_handle *handle) { _kcapi_handle_destroy(handle); } -DSO_PUBLIC int kcapi_cipher_setkey(struct kcapi_handle *handle, const uint8_t *key, uint32_t keylen) { @@ -282,7 +279,6 @@ return (int32_t)impl_cipher_stream_op(handle, iov, iovlen); } -DSO_PUBLIC uint32_t kcapi_cipher_ivsize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -290,7 +286,6 @@ return tfm->info.ivsize; } -DSO_PUBLIC uint32_t kcapi_cipher_blocksize(struct kcapi_handle *handle) { struct kcapi_handle_tfm *tfm = handle->tfm; @@ -426,3 +421,39 @@ in, inlen, ctr, out, outlen); } + +ssize_t kcapi_cipher_enc_sm4_cbc(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *iv, + uint8_t *out, size_t outlen) +{ + return kcapi_cipher_conv_enc_common("cbc(sm4)", key, keylen, in, inlen, + iv, out, outlen); +} + +ssize_t kcapi_cipher_enc_sm4_ctr(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *ctr, + uint8_t *out, size_t outlen) +{ + return kcapi_cipher_conv_enc_common("ctr(sm4)", key, keylen, in, inlen, + ctr, out, outlen); +} + +ssize_t kcapi_cipher_dec_sm4_cbc(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *iv, + uint8_t *out, size_t outlen) +{ + return kcapi_cipher_conv_dec_common("cbc(sm4)", key, keylen, in, inlen, + iv, out, outlen); +} + +ssize_t kcapi_cipher_dec_sm4_ctr(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *ctr, + uint8_t *out, size_t outlen) +{ + return kcapi_cipher_conv_dec_common("ctr(sm4)", key, keylen, in, inlen, + ctr, out, outlen); +}
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi-utils.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi-utils.c
Changed
@@ -1,6 +1,6 @@ /* libkcapi Utilities API * - * Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -21,13 +21,11 @@ #include "internal.h" #include "kcapi.h" -DSO_PUBLIC void kcapi_set_verbosity(enum kcapi_verbosity level) { kcapi_verbosity_level = level; } -DSO_PUBLIC void kcapi_versionstring(char *buf, uint32_t buflen) { snprintf(buf, buflen, "libkcapi%s%d.%d.%.f", @@ -36,7 +34,6 @@ KCAPI_MAJVERSION, KCAPI_MINVERSION, (double)KCAPI_PATCHLEVEL); } -DSO_PUBLIC uint32_t kcapi_version(void) { uint32_t version = 0; @@ -48,7 +45,6 @@ return version; } -DSO_PUBLIC int kcapi_pad_iv(struct kcapi_handle *handle, const uint8_t *iv, uint32_t ivlen, uint8_t **newiv, uint32_t *newivlen) @@ -72,7 +68,6 @@ return 0; } -DSO_PUBLIC int kcapi_set_maxsplicesize(struct kcapi_handle *handle, unsigned int size) { int ret; @@ -106,7 +101,6 @@ return ret; } -DSO_PUBLIC int kcapi_get_maxsplicesize(struct kcapi_handle *handle) { unsigned int pagesize = (unsigned int)sysconf(_SC_PAGESIZE);
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/kcapi.h -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/kcapi.h
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see COPYING file in root directory * @@ -590,6 +590,138 @@ uint8_t *out, size_t outlen); /** + * kcapi_cipher_enc_sm4_cbc - Convenience function for SM4 CBC encryption + * + * @key: in key buffer + * @keylen: in length of key buffer + * @in: in plaintext data buffer + * @inlen: in length of in buffer + * @iv: in IV to be used for cipher operation + * @out: out ciphertext data buffer + * @outlen: in length of out buffer + * + * The convenience function performs an SM4 CBC encryption operation + * using the provided key, the given input buffer and the given IV. + * The output is stored in the out buffer. + * + * Note, SM4 CBC requires an input data that is a multiple of 16 bytes. + * If you have data that is not guaranteed to be multiples of 16 bytes, either + * add zero bytes at the end of the buffer to pad it up to a multiple of 16 + * bytes. Otherwise, the CTR mode encryption operation may be usable. + * + * The output buffer must be at least as large as the input buffer. + * + * The IV must be exactly 16 bytes in size. + * + * The SM4 key is fixed 16 bytes long. + * + * @return number of bytes generated upon success; + * a negative errno-style error code if an error occurred + */ +ssize_t kcapi_cipher_enc_sm4_cbc(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *iv, + uint8_t *out, size_t outlen); + +/** + * kcapi_cipher_dec_sm4_cbc - Convenience function for SM4 CBC decryption + * + * @key: in key buffer + * @keylen: in length of key buffer + * @in: in ciphertext data buffer + * @inlen: in length of in buffer + * @iv: in IV to be used for cipher operation + * @out: out plaintext data buffer + * @outlen: in length of out buffer + * + * The convenience function performs an SM4 CBC decryption operation + * using the provided key, the given input buffer and the given IV. + * The output is stored in the out buffer. + * + * Note, SM4 CBC requires an input data that is a multiple of 16 bytes. + * If you have data that is not guaranteed to be multiples of 16 bytes, either + * add zero bytes at the end of the buffer to pad it up to a multiple of 16 + * bytes. Otherwise, the CTR mode encryption operation may be usable. + * + * The output buffer must be at least as large as the input buffer. + * + * The IV must be exactly 16 bytes in size. + * + * The SM4 key is fixed 16 bytes long. + * + * @return number of bytes generated upon success; + * a negative errno-style error code if an error occurred + */ +ssize_t kcapi_cipher_dec_sm4_cbc(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *iv, + uint8_t *out, size_t outlen); + +/** + * kcapi_cipher_enc_sm4_ctr - Convenience function for SM4 CTR encryption + * + * @key: in key buffer + * @keylen: in length of key buffer + * @in: in plaintext data buffer + * @inlen: in length of in buffer + * @ctr: in start counter value to be used for cipher operation + * @out: out ciphertext data buffer + * @outlen: in length of out buffer + * + * The convenience function performs an SM4 counter mode encryption operation + * using the provided key, the given input buffer and the given IV. + * The output is stored in the out buffer. + * + * The input buffer can be of arbitrary length. + * + * The output buffer must be at least as large as the input buffer. + * + * The start counter can contain all zeros (not a NULL buffer!) and must be + * exactly 16 bytes in size. + * + * The SM4 key is fixed 16 bytes long. + * + * @return number of bytes generated upon success; + * a negative errno-style error code if an error occurred + */ +ssize_t kcapi_cipher_enc_sm4_ctr(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *ctr, + uint8_t *out, size_t outlen); + +/** + * kcapi_cipher_dec_sm4_ctr - Convenience function for SM4 CTR decryption + * + * @key: in key buffer + * @keylen: in length of key buffer + * @in: in ciphertext data buffer + * @inlen: in length of in buffer + * @ctr: in start counter value to be used for cipher operation + * @out: out plaintext data buffer + * @outlen: in length of out buffer + * + * The convenience function performs an SM4 counter mode encryption operation + * using the provided key, the given input buffer and the given IV. + * The output is stored in the out buffer. + * + * The input buffer can be of arbitrary length. + * + * The output buffer must be at least as large as the input buffer. + * + * The start counter can contain all zeros (not a NULL buffer!) and must be + * exactly 16 bytes in size. + * + * The SM4 key is fixed 16 bytes long. + * + * @return number of bytes generated upon success; + * a negative errno-style error code if an error occurred + */ +ssize_t kcapi_cipher_dec_sm4_ctr(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + const uint8_t *ctr, + uint8_t *out, size_t outlen); + +/** * kcapi_cipher_ivsize() - return size of IV required for cipher * * @handle: in cipher handle @@ -1408,6 +1540,26 @@ uint8_t *out, size_t outlen); /** + * kcapi_md_sm3 - SM3 message digest on one buffer + * + * @in: in buffer with input data + * @inlen: in length of input buffer + * @out: out buffer for message digest + * @outlen: in length of out + * + * With this one-shot convenience function, a message digest of the given buffer + * is generated. The output buffer must be allocated by the caller and have at + * least the length of the message digest size for the chosen message digest. + * + * @return size of message digest upon success; + * -EIO - data cannot be obtained; + * -ENOMEM - buffer is too small for the complete message digest, + * the buffer is filled with the truncated message digest + */ +ssize_t kcapi_md_sm3(const uint8_t *in, size_t inlen, + uint8_t *out, size_t outlen); + +/** * kcapi_md_hmac_sha1 - HMAC SHA-1 keyed message digest on one buffer * * @key: in buffer with HMAC key @@ -1528,6 +1680,30 @@ uint8_t *out, size_t outlen); /** + * kcapi_md_hmac_sm3 - HMAC SM3 keyed message digest on one buffer + * + * @key: in buffer with HMAC key + * @keylen: in length of HMAC key buffer + * @in: in buffer with input data + * @inlen: in length of input buffer + * @out: out buffer for message digest + * @outlen: in length of out + * + * With this one-shot convenience function, a keyed message digest of the given + * buffer is generated. The output buffer must be allocated by the caller and + * have at least the length of the message digest size for the chosen keyed + * message digest. + * + * @return size of message digest upon success; + * -EIO - data cannot be obtained; + * -ENOMEM - buffer is too small for the complete message digest, + * the buffer is filled with the truncated message digest + */ +ssize_t kcapi_md_hmac_sm3(const uint8_t *key, uint32_t keylen, + const uint8_t *in, size_t inlen, + uint8_t *out, size_t outlen); +
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/lib/version.lds -> _service:tar_scm:libkcapi-1.4.0.tar.xz/lib/version.lds
Changed
@@ -231,3 +231,14 @@ kcapi_pbkdf; kcapi_hkdf; } LIBKCAPI_1.3.0; + +LIBKCAPI_1.4.0 { + kcapi_md_sm3; + kcapi_md_hmac_sm3; + kcapi_cipher_enc_sm4_cbc; + kcapi_cipher_dec_sm4_cbc; + kcapi_cipher_enc_sm4_ctr; + kcapi_cipher_dec_sm4_ctr; + kcapi_rng_setaddtl; + kcapi_rng_setentropy; +} LIBKCAPI_1.3.1;
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf-aead.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf-aead.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -342,6 +342,32 @@ { "AES(AESNI) CCM(G) 128", "ccm(aes-aesni)", 16, 16, 1 }, { "AES(AESNI) CCM(G) 192", "ccm(aes-aesni)", 24, 16, 1 }, { "AES(AESNI) CCM(G) 256", "ccm(aes-aesni)", 32, 16, 1 }, + { "SM4(G) GCM(G)", "gcm(sm4-generic)", 16, 16, 0 }, + { "SM4(AVX) GCM(G)", "gcm(sm4-aesni-avx)", 16, 16, 0 }, + { "SM4(AVX2) GCM(G)", "gcm(sm4-aesni-avx2)", 16, 16, 0 }, + { "SM4(G) CCM(G)", "ccm(sm4-generic)", 16, 16, 0 }, + { "SM4(AVX) CCM(G)", "ccm(sm4-aesni-avx)", 16, 16, 0 }, + { "SM4(AVX2) CCM(G)", "ccm(sm4-aesni-avx2)", 16, 16, 0 }, + + { "AES(CAAM) GCM(CAAM) 128", "gcm-aes-caam", 16, 16, 0 }, + { "AES(CAAM) GCM(CAAM) 192", "gcm-aes-caam", 24, 16, 0 }, + { "AES(CAAM) GCM(CAAM) 256", "gcm-aes-caam", 32, 16, 0 }, + + { "AES(STM32) GCM(STM32) 128", "stm32-gcm-aes", 16, 16, 0 }, + { "AES(STM32) GCM(STM32) 192", "stm32-gcm-aes", 24, 16, 0 }, + { "AES(STM32) GCM(STM32) 256", "stm32-gcm-aes", 32, 16, 0 }, + + { "AES(STM32) CCM(STM32) 128", "stm32-ccm-aes", 16, 16, 1 }, + { "AES(STM32) CCM(STM32) 192", "stm32-ccm-aes", 24, 16, 1 }, + { "AES(STM32) CCM(STM32) 256", "stm32-ccm-aes", 32, 16, 1 }, + + { "AES(ARM64 CE) GCM(ARM64 CE) 128", "gcm-aes-ce", 16, 16, 0 }, + { "AES(ARM64 CE) GCM(ARM64 CE) 192", "gcm-aes-ce", 24, 16, 0 }, + { "AES(ARM64 CE) GCM(ARM64 CE) 256", "gcm-aes-ce", 32, 16, 0 }, + + { "AES(ARM64 CE) CCM(ARM64 CE) 128", "ccm-aes-ce", 16, 16, 1 }, + { "AES(ARM64 CE) CCM(ARM64 CE) 192", "ccm-aes-ce", 24, 16, 1 }, + { "AES(ARM64 CE) CCM(ARM64 CE) 256", "ccm-aes-ce", 32, 16, 1 }, }; static struct cp_test cp_aead_testdef(2 * (ARRAY_SIZE(testcases)));
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf-base.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf-base.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf-hash.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf-hash.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -135,6 +135,18 @@ { "SHA-1(MV-CESA)", "mv-sha1", 0 }, { "SHA-256(MV-CESA)", "mv-sha256", 0 }, + { "SHA-1(CAAM)", "sha1-caam", 0 }, + { "SHA-224(CAAM)", "sha224-caam", 0 }, + { "SHA-256(CAAM)", "sha256-caam", 0 }, + + { "SHA-1(STM32)", "stm32-sha1", 0 }, + { "SHA-224(STM32)", "stm32-sha224", 0 }, + { "SHA-256(STM32)", "stm32-sha256", 0 }, + + { "SHA-1(ARM64 CE)", "sha1-ce", 0 }, + { "SHA-224(ARM64 CE)", "sha224-ce", 0 }, + { "SHA-256(ARM64 CE)", "sha256-ce", 0 }, + { "HMAC SHA-1(G)", "hmac(sha1-generic)", 1 }, { "HMAC SHA-224(G)", "hmac(sha224-generic)", 1 }, { "HMAC SHA-256(G)", "hmac(sha256-generic)", 1 }, @@ -158,10 +170,27 @@ { "HMAC SHA-1(MV-CESA)", "mv-hmac-sha1", 1 }, { "HMAC SHA-256(MV-CESA)", "mv-hmac-sha256", 1 }, + { "SM3(G)", "sm3-generic", 0 }, + + { "HMAC SHA-1(CAAM)", "hmac-sha1-caam", 1 }, + { "HMAC SHA-224(CAAM)", "hmac-sha224-caam", 1 }, + { "HMAC SHA-224(CAAM)", "hmac-sha224-caam", 1 }, + + { "HMAC SHA-1(STM32)", "stm32-hmac-sha1", 1 }, + { "HMAC SHA-224(STM32)", "stm32-hmac-sha224", 1 }, + { "HMAC SHA-256(STM32)", "stm32-hmac-sha256", 1 }, + { "MD5(G)", "md5-generic", 0 }, { "MD5(MV-CESA)", "mv-md5", 0 }, + { "HMAC SM3(G)", "hmac(sm3-generic)", 1 }, { "HMAC MD5(G)", "hmac(md5-generic)", 1 }, { "HMAC MD5(MV-CESA)", "mv-hmac-md5", 1 }, + + { "MD5(CAAM)", "md5-caam", 0 }, + { "HMAC MD5(CAAM)", "hmac-md5-caam", 1 }, + + { "MD5(STM32)", "stm32-md5", 0 }, + { "HMAC MD5(STM32)", "stm32-hmac-md5", 1 }, }; static struct cp_test cp_hash_testdef(ARRAY_SIZE(testcases));
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf-main.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf-main.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -60,7 +60,7 @@ } static int exec_all_tests(struct test_array *tests, - struct cp_test_param *test_params) + struct cp_test_param *test_params, int raw) { size_t i; @@ -73,7 +73,7 @@ /* Execute all tests and do not error out on errors */ if (cp_exec_test(test)) continue; - out = cp_print_status(test, 0); + out = cp_print_status(test, raw); if (!out) return -ENOMEM; printf("%s\n", out); @@ -233,7 +233,7 @@ if (alltests) { for (i = 0; i < 4; i++) - exec_all_tests(&testsi, &test_params); + exec_all_tests(&testsi, &test_params, raw); return 0; }
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf-rng.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf-rng.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -95,24 +95,30 @@ { "HMAC SHA-256 DRBG NOPR", "drbg_nopr_hmac_sha256", 32 }, { "HMAC SHA-384 DRBG NOPR", "drbg_nopr_hmac_sha384", 48 }, { "HMAC SHA-512 DRBG NOPR", "drbg_nopr_hmac_sha512", 64 }, + { "HMAC SM3 DRBG NOPR", "drbg_nopr_hmac_sm3", 32 }, { "HMAC SHA-1 DRBG PR", "drbg_pr_hmac_sha1", 20 }, { "HMAC SHA-256 DRBG PR", "drbg_pr_hmac_sha256", 32 }, { "HMAC SHA-384 DRBG PR", "drbg_pr_hmac_sha384", 48 }, { "HMAC SHA-512 DRBG PR", "drbg_pr_hmac_sha512", 64 }, + { "HMAC SM3 DRBG PR", "drbg_pr_hmac_sm3", 32 }, { "Hash SHA-1 DRBG NOPR", "drbg_nopr_sha1", 20 }, { "Hash SHA-256 DRBG NOPR", "drbg_nopr_sha256", 32 }, { "Hash SHA-384 DRBG NOPR", "drbg_nopr_sha384", 48 }, { "Hash SHA-512 DRBG NOPR", "drbg_nopr_sha512", 64 }, + { "Hash SM3 DRBG NOPR", "drbg_nopr_sm3", 32 }, { "Hash SHA-1 DRBG PR", "drbg_pr_sha1", 20 }, { "Hash SHA-256 DRBG PR", "drbg_pr_sha256", 32 }, { "Hash SHA-384 DRBG PR", "drbg_pr_sha384", 48 }, { "Hash SHA-512 DRBG PR", "drbg_pr_sha512", 64 }, + { "Hash SM3 DRBG PR", "drbg_pr_sm3", 32 }, { "CTR AES-128 DRBG NOPR", "drbg_nopr_ctr_aes128", 16 }, { "CTR AES-192 DRBG NOPR", "drbg_nopr_ctr_aes192", 16 }, { "CTR AES-256 DRBG NOPR", "drbg_nopr_ctr_aes256", 16 }, { "CTR AES-128 DRBG PR", "drbg_pr_ctr_aes128", 16 }, { "CTR AES-192 DRBG PR", "drbg_pr_ctr_aes192", 16 }, { "CTR AES-256 DRBG PR", "drbg_pr_ctr_aes256", 16 }, + { "CTR SM4 DRBG NOPR", "drbg_nopr_ctr_sm4", 16 }, + { "CTR SM4 DRBG PR", "drbg_pr_ctr_sm4", 16 }, // { "ANSI X9.31", "ansi_cprng", 16 }, // { "FIPS mode ANSI X9.31", "fips_ansi_cprng", 16 }, };
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf-skcipher.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf-skcipher.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory * @@ -205,6 +205,18 @@ { "AES(i586) CBC(G) 192", "cbc(aes-asm)", 24 }, { "AES(i586) CBC(G) 256", "cbc(aes-asm)", 32 }, + { "AES(CAAM) CBC(CAAM) 128", "cbc-aes-caam", 16 }, + { "AES(CAAM) CBC(CAAM) 192", "cbc-aes-caam", 24 }, + { "AES(CAAM) CBC(CAAM) 256", "cbc-aes-caam", 32 }, + + { "AES(STM32) CBC(STM32) 128", "stm32-cbc-aes", 16 }, + { "AES(STM32) CBC(STM32) 192", "stm32-cbc-aes", 24 }, + { "AES(STM32) CBC(STM32) 256", "stm32-cbc-aes", 32 }, + + { "AES(ARM64 CE) CBC(ARM64 CE) 128", "cbc-aes-ce", 16 }, + { "AES(ARM64 CE) CBC(ARM64 CE) 192", "cbc-aes-ce", 24 }, + { "AES(ARM64 CE) CBC(ARM64 CE) 256", "cbc-aes-ce", 32 }, + { "AES(MV-CESA) CBC(MV-CESA) 128", "mv-cbc-aes", 16 }, { "AES(MV-CESA) CBC(MV-CESA) 192", "mv-cbc-aes", 24 }, { "AES(MV-CESA) CBC(MV-CESA) 256", "mv-cbc-aes", 32 }, @@ -226,6 +238,18 @@ { "AES(i586) CTR(G) 192", "ctr(aes-asm)", 24 }, { "AES(i586) CTR(G) 256", "ctr(aes-asm)", 32 }, + { "AES(CAAM) CTR(CAAM) 128", "ctr-aes-caam", 16 }, + { "AES(CAAM) CTR(CAAM) 192", "ctr-aes-caam", 24 }, + { "AES(CAAM) CTR(CAAM) 256", "ctr-aes-caam", 32 }, + + { "AES(STM32) CTR(STM32) 128", "stm32-ctr-aes", 16 }, + { "AES(STM32) CTR(STM32) 192", "stm32-ctr-aes", 24 }, + { "AES(STM32) CTR(STM32) 256", "stm32-ctr-aes", 32 }, + + { "AES(ARM64 CE) CTR(ARM64 CE) 128", "ctr-aes-ce", 16 }, + { "AES(ARM64 CE) CTR(ARM64 CE) 192", "ctr-aes-ce", 24 }, + { "AES(ARM64 CE) CTR(ARM64 CE) 256", "ctr-aes-ce", 32 }, + { "AES(G) XTS(G) 128", "xts(aes-generic)", 32 }, { "AES(G) XTS(G) 192", "xts(aes-generic)", 48 }, { "AES(G) XTS(G) 256", "xts(aes-generic)", 64 }, @@ -239,6 +263,10 @@ { "AES(i586) XTS(G) 192", "xts(aes-asm)", 48 }, { "AES(i586) XTS(G) 256", "xts(aes-asm)", 64 }, + { "AES(ARM64 CE) XTS(ARM64 CE) 128", "xts-aes-ce", 32 }, + { "AES(ARM64 CE) XTS(ARM64 CE) 192", "xts-aes-ce", 48 }, + { "AES(ARM64 CE) XTS(ARM64 CE) 256", "xts-aes-ce", 64 }, + { "AES(G) LRW(G) 128", "lrw(aes-generic)", 32 }, { "AES(G) LRW(G) 192", "lrw(aes-generic)", 40 }, { "AES(G) LRW(G) 256", "lrw(aes-generic)", 48 }, @@ -268,6 +296,18 @@ { "AES(MV-CESA) ECB(MV-CESA) 192", "mv-ecb-aes", 24 }, { "AES(MV-CESA) ECB(MV-CESA) 256", "mv-ecb-aes", 32 }, + { "AES(CAAM) ECB(CAAM) 128", "ecb-aes-caam", 16 }, + { "AES(CAAM) ECB(CAAM) 192", "ecb-aes-caam", 24 }, + { "AES(CAAM) ECB(CAAM) 256", "ecb-aes-caam", 32 }, + + { "AES(STM32) ECB(STM32) 128", "stm32-ecb-aes", 16 }, + { "AES(STM32) ECB(STM32) 192", "stm32-ecb-aes", 24 }, + { "AES(STM32) ECB(STM32) 256", "stm32-ecb-aes", 32 }, + + { "AES(ARM64 CE) ECB(ARM64 CE) 128", "ecb-aes-ce", 16 }, + { "AES(ARM64 CE) ECB(ARM64 CE) 192", "ecb-aes-ce", 24 }, + { "AES(ARM64 CE) ECB(ARM64 CE) 256", "ecb-aes-ce", 32 }, + { "DES(MV-CESA) CBC(MV-CESA) 56", "mv-cbc-des", 8 }, { "DES(MV-CESA) ECB(MV-CESA) 56", "mv-ecb-des", 8 }, @@ -455,6 +495,19 @@ { "Salsa20(x86) 128", "salsa20-asm", 16 }, { "Salsa20(x86) 192", "salsa20-asm", 24 }, { "Salsa20(x86) 256", "salsa20-asm", 32 }, + + { "SM4(G) ECB(G)", "ecb(sm4-generic)", 16 }, + { "SM4(AVX) ECB(AVX)", "ecb-sm4-aesni-avx)", 16 }, + { "SM4(AVX2) ECB(AVX2)", "ecb-sm4-aesni-avx2)", 16 }, + { "SM4(G) CBC(G)", "cbc(sm4-generic)", 16 }, + { "SM4(AVX) CBC(AVX)", "cbc-sm4-aesni-avx)", 16 }, + { "SM4(AVX2) CBC(AVX2)", "cbc-sm4-aesni-avx2)", 16 }, + { "SM4(G) CFB(G)", "cfb(sm4-generic)", 16 }, + { "SM4(AVX) CFB(AVX)", "cfb-sm4-aesni-avx)", 16 }, + { "SM4(AVX2) CFB(AVX2)", "cfb-sm4-aesni-avx2)", 16 }, + { "SM4(G) CTR(G)", "ctr(sm4-generic)", 16 }, + { "SM4(AVX) CTR(AVX)", "ctr-sm4-aesni-avx)", 16 }, + { "SM4(AVX2) CTR(AVX2)", "ctr-sm4-aesni-avx2)", 16 }, }; static struct cp_test cp_skcipher_testdef2 * (ARRAY_SIZE(testcases));
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/speed-test/cryptoperf.h -> _service:tar_scm:libkcapi-1.4.0.tar.xz/speed-test/cryptoperf.h
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2015 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2015 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/compile-test.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/compile-test.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/hasher-test.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/hasher-test.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-convenience.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-convenience.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-convenience.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-convenience.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-dgst-test.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-dgst-test.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-enc-test-large.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-enc-test-large.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-enc-test-large.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-enc-test-large.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-enc-test.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-enc-test.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-fuzz-test.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-fuzz-test.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/kcapi-main.c -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/kcapi-main.c
Changed
@@ -1,5 +1,5 @@ /* - * Copyright (C) 2014 - 2021, Stephan Mueller <smueller@chronox.de> + * Copyright (C) 2014 - 2022, Stephan Mueller <smueller@chronox.de> * * License: see LICENSE file in root directory *
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/libtest.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/libtest.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/test-invocation.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/test-invocation.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2016 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2016 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory # @@ -121,7 +121,9 @@ then ( cd "$DIRNAME/.." && \ - LDFLAGS=-m32 CFLAGS=-m32 ./configure $COMPILE_OPTS && \ + LDFLAGS="-m32 $LDFLAGS" \ + CFLAGS="-m32 $CFLAGS" \ + ./configure $COMPILE_OPTS && \ make ) if $? -ne 0
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/test.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/test.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2014 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2014 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
View file
_service:tar_scm:libkcapi-1.3.1.tar.xz/test/virttest.sh -> _service:tar_scm:libkcapi-1.4.0.tar.xz/test/virttest.sh
Changed
@@ -1,6 +1,6 @@ #!/bin/bash # -# Copyright (C) 2017 - 2021, Stephan Mueller <smueller@chronox.de> +# Copyright (C) 2017 - 2022, Stephan Mueller <smueller@chronox.de> # # License: see LICENSE file in root directory #
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2