mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 00:33:55 -06:00
Introduce new cryptography hashing APIs
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEE2vOm/bJrYpEtDo4/vobrtBUQT98FAmcH/iIACgkQvobrtBUQ T9+Yjg/+NReYV5BDjOLk6vfgTsK6Ku0/hdis2cf9OS8Ud1VXzKaxfhwkchtw9QVI kuAthesQNocEPfQfl2K4+f4oaKfysO7awDwYto/JhY/m1iCZ8iqofZWehOITszvM EvWlNBr83NtpGFIwQWIxFEVZo42gaUnA69iAjBo7YQnE5xufJuPIbgMjB/O4/zar Xlo15A69TP9dBJTvIDdrhkt3Quiysa7a68BW+piAAKvplOjOfugCEo3ebLwlZYOh dK0Cg9v24+BMAqQ7kDMroS4uHC+OEs2AOvfYh01QqWxNkk7RsPjb9VAA60Ng89eC 6BU4jw17zUAqL67of+M1cTTX4UPGBWGIUXt8CtO1DpByxiGXXfEkBrBmIyDJvxn9 EzB4WpAXpVo2AG6vYpYSBGyxycWQs33ljfBb/qR6xu5PnA+Jc/jfJkVv5iYP96wW F6pJm6FoK69aTJU7K4kAJPjD2fZum+iHVWc283NIkq9HQJLz2EYE0LIfOOY5feJK S0tjEE5ZLqKG5JAdpsaCe5V/vExc512/D56Xb5fY4mC2DPb/b6fM66Oc5M7DTuK1 LxCgnEuqm1Lo3CMR0k4W8Xezs7hWp+u3tr+i705l5qFxklYkmFeVAzTWdQ56JOGk Z1XKUbcPUnweormPMxMQXyxXpey4DBwUGbjC98iqE8tjUg6NA3o= =yVgk -----END PGP SIGNATURE----- Merge tag 'crypto-fixes-pull-request' of https://gitlab.com/berrange/qemu into staging Introduce new cryptography hashing APIs # -----BEGIN PGP SIGNATURE----- # # iQIzBAABCAAdFiEE2vOm/bJrYpEtDo4/vobrtBUQT98FAmcH/iIACgkQvobrtBUQ # T9+Yjg/+NReYV5BDjOLk6vfgTsK6Ku0/hdis2cf9OS8Ud1VXzKaxfhwkchtw9QVI # kuAthesQNocEPfQfl2K4+f4oaKfysO7awDwYto/JhY/m1iCZ8iqofZWehOITszvM # EvWlNBr83NtpGFIwQWIxFEVZo42gaUnA69iAjBo7YQnE5xufJuPIbgMjB/O4/zar # Xlo15A69TP9dBJTvIDdrhkt3Quiysa7a68BW+piAAKvplOjOfugCEo3ebLwlZYOh # dK0Cg9v24+BMAqQ7kDMroS4uHC+OEs2AOvfYh01QqWxNkk7RsPjb9VAA60Ng89eC # 6BU4jw17zUAqL67of+M1cTTX4UPGBWGIUXt8CtO1DpByxiGXXfEkBrBmIyDJvxn9 # EzB4WpAXpVo2AG6vYpYSBGyxycWQs33ljfBb/qR6xu5PnA+Jc/jfJkVv5iYP96wW # F6pJm6FoK69aTJU7K4kAJPjD2fZum+iHVWc283NIkq9HQJLz2EYE0LIfOOY5feJK # S0tjEE5ZLqKG5JAdpsaCe5V/vExc512/D56Xb5fY4mC2DPb/b6fM66Oc5M7DTuK1 # LxCgnEuqm1Lo3CMR0k4W8Xezs7hWp+u3tr+i705l5qFxklYkmFeVAzTWdQ56JOGk # Z1XKUbcPUnweormPMxMQXyxXpey4DBwUGbjC98iqE8tjUg6NA3o= # =yVgk # -----END PGP SIGNATURE----- # gpg: Signature made Thu 10 Oct 2024 17:17:38 BST # gpg: using RSA key DAF3A6FDB26B62912D0E8E3FBE86EBB415104FDF # gpg: Good signature from "Daniel P. Berrange <dan@berrange.com>" [full] # gpg: aka "Daniel P. Berrange <berrange@redhat.com>" [full] # Primary key fingerprint: DAF3 A6FD B26B 6291 2D0E 8E3F BE86 EBB4 1510 4FDF * tag 'crypto-fixes-pull-request' of https://gitlab.com/berrange/qemu: tests/unit: Add a assert for test_io_channel_unix_listen_cleanup crypto: drop obsolete back compat logic for old nettle crypto/hashpriv: Remove old hash API function crypto/hash-afalg: Remove old hash API functions crypto/hash-nettle: Remove old hash API functions crypto/hash-gnutls: Remove old hash API functions crypto/hash-gcrypt: Remove old hash API functions crypto/hash-glib: Remove old hash API functions tests/unit/test-crypto-hash: accumulative hashing crypto/hash: Implement and use new hash API crypto/hash-afalg: Implement new hash API util/iov: Introduce iov_send_recv_with_flags() crypto/hash-nettle: Implement new hash API crypto/hash-gnutls: Implement new hash API crypto/hash-gcrypt: Implement new hash API crypto/hash-glib: Implement new hash API crypto: accumulative hashing API Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
7e3b6d8063
12 changed files with 733 additions and 282 deletions
25
util/iov.c
25
util/iov.c
|
@ -3,6 +3,7 @@
|
|||
*
|
||||
* Copyright IBM, Corp. 2007, 2008
|
||||
* Copyright (C) 2010 Red Hat, Inc.
|
||||
* Copyright (c) 2024 Seagate Technology LLC and/or its Affiliates
|
||||
*
|
||||
* Author(s):
|
||||
* Anthony Liguori <aliguori@us.ibm.com>
|
||||
|
@ -92,7 +93,8 @@ size_t iov_size(const struct iovec *iov, const unsigned int iov_cnt)
|
|||
|
||||
/* helper function for iov_send_recv() */
|
||||
static ssize_t
|
||||
do_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt, bool do_send)
|
||||
do_send_recv(int sockfd, int flags, struct iovec *iov, unsigned iov_cnt,
|
||||
bool do_send)
|
||||
{
|
||||
#ifdef CONFIG_POSIX
|
||||
ssize_t ret;
|
||||
|
@ -102,8 +104,8 @@ do_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt, bool do_send)
|
|||
msg.msg_iovlen = iov_cnt;
|
||||
do {
|
||||
ret = do_send
|
||||
? sendmsg(sockfd, &msg, 0)
|
||||
: recvmsg(sockfd, &msg, 0);
|
||||
? sendmsg(sockfd, &msg, flags)
|
||||
: recvmsg(sockfd, &msg, flags);
|
||||
} while (ret < 0 && errno == EINTR);
|
||||
return ret;
|
||||
#else
|
||||
|
@ -114,8 +116,8 @@ do_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt, bool do_send)
|
|||
ssize_t off = 0;
|
||||
while (i < iov_cnt) {
|
||||
ssize_t r = do_send
|
||||
? send(sockfd, iov[i].iov_base + off, iov[i].iov_len - off, 0)
|
||||
: recv(sockfd, iov[i].iov_base + off, iov[i].iov_len - off, 0);
|
||||
? send(sockfd, iov[i].iov_base + off, iov[i].iov_len - off, flags)
|
||||
: recv(sockfd, iov[i].iov_base + off, iov[i].iov_len - off, flags);
|
||||
if (r > 0) {
|
||||
ret += r;
|
||||
off += r;
|
||||
|
@ -144,6 +146,15 @@ do_send_recv(int sockfd, struct iovec *iov, unsigned iov_cnt, bool do_send)
|
|||
ssize_t iov_send_recv(int sockfd, const struct iovec *_iov, unsigned iov_cnt,
|
||||
size_t offset, size_t bytes,
|
||||
bool do_send)
|
||||
{
|
||||
return iov_send_recv_with_flags(sockfd, 0, _iov, iov_cnt, offset, bytes,
|
||||
do_send);
|
||||
}
|
||||
|
||||
ssize_t iov_send_recv_with_flags(int sockfd, int sockflags,
|
||||
const struct iovec *_iov,
|
||||
unsigned iov_cnt, size_t offset,
|
||||
size_t bytes, bool do_send)
|
||||
{
|
||||
ssize_t total = 0;
|
||||
ssize_t ret;
|
||||
|
@ -192,11 +203,11 @@ ssize_t iov_send_recv(int sockfd, const struct iovec *_iov, unsigned iov_cnt,
|
|||
assert(iov[niov].iov_len > tail);
|
||||
orig_len = iov[niov].iov_len;
|
||||
iov[niov++].iov_len = tail;
|
||||
ret = do_send_recv(sockfd, iov, niov, do_send);
|
||||
ret = do_send_recv(sockfd, sockflags, iov, niov, do_send);
|
||||
/* Undo the changes above before checking for errors */
|
||||
iov[niov-1].iov_len = orig_len;
|
||||
} else {
|
||||
ret = do_send_recv(sockfd, iov, niov, do_send);
|
||||
ret = do_send_recv(sockfd, sockflags, iov, niov, do_send);
|
||||
}
|
||||
if (offset) {
|
||||
iov[0].iov_base -= offset;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue