[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 21/22] linux-user: Implement SOL_ALG encryption support
From: |
Laurent Vivier |
Subject: |
[PULL 21/22] linux-user: Implement SOL_ALG encryption support |
Date: |
Sat, 4 Feb 2023 17:08:29 +0100 |
From: Helge Deller <deller@gmx.de>
Add suport to handle SOL_ALG packets via sendmsg() and recvmsg().
This allows emulated userspace to use encryption functionality.
Tested with the debian ell package with hppa guest on x86_64 host.
Signed-off-by: Helge Deller <deller@gmx.de>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20221212173416.90590-1-deller@gmx.de>
Signed-off-by: Laurent Vivier <laurent@vivier.eu>
---
linux-user/syscall.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 55d53b344b84..a0d2beddaa4e 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -1829,6 +1829,14 @@ static inline abi_long target_to_host_cmsg(struct msghdr
*msgh,
__get_user(cred->pid, &target_cred->pid);
__get_user(cred->uid, &target_cred->uid);
__get_user(cred->gid, &target_cred->gid);
+ } else if (cmsg->cmsg_level == SOL_ALG) {
+ uint32_t *dst = (uint32_t *)data;
+
+ memcpy(dst, target_data, len);
+ /* fix endianess of first 32-bit word */
+ if (len >= sizeof(uint32_t)) {
+ *dst = tswap32(*dst);
+ }
} else {
qemu_log_mask(LOG_UNIMP, "Unsupported ancillary data: %d/%d\n",
cmsg->cmsg_level, cmsg->cmsg_type);
--
2.39.1
- [PULL 19/22] linux-user: Show 4th argument of rt_sigprocmask() in strace, (continued)
- [PULL 19/22] linux-user: Show 4th argument of rt_sigprocmask() in strace, Laurent Vivier, 2023/02/04
- [PULL 22/22] linux-user: Allow sendmsg() without IOV, Laurent Vivier, 2023/02/04
- [PULL 20/22] linux-user: Enhance strace output for various syscalls, Laurent Vivier, 2023/02/04
- [PULL 09/22] linux-user: add more netlink protocol constants, Laurent Vivier, 2023/02/04
- [PULL 03/22] linux-user/strace: Add output for execveat() syscall, Laurent Vivier, 2023/02/04
- [PULL 04/22] linux-user/syscall: Extract do_execve() from do_syscall1(), Laurent Vivier, 2023/02/04
- [PULL 05/22] linux-user/syscall: Implement execveat(), Laurent Vivier, 2023/02/04
- [PULL 18/22] linux-user: Add emulation for MADV_WIPEONFORK and MADV_KEEPONFORK in madvise(), Laurent Vivier, 2023/02/04
- [PULL 16/22] linux-user: Fix /proc/cpuinfo output for hppa, Laurent Vivier, 2023/02/04
- [PULL 13/22] linux-user: Improve strace output of getgroups() and setgroups(), Laurent Vivier, 2023/02/04
- [PULL 21/22] linux-user: Implement SOL_ALG encryption support,
Laurent Vivier <=
- [PULL 08/22] linux-user: fix strace build w/out munlockall, Laurent Vivier, 2023/02/04
- [PULL 14/22] linux-user: move target_flat.h to target subdirs, Laurent Vivier, 2023/02/04
- [PULL 12/22] linux-user: Add strace output for clock_getres_time64() and futex_time64(), Laurent Vivier, 2023/02/04
- Re: [PULL 00/22] Linux user for 8.0 patches, Peter Maydell, 2023/02/04