[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 01/21] tests: fix encoding of IP addresses in x509 certs
From: |
Peter Xu |
Subject: |
[PATCH v5 01/21] tests: fix encoding of IP addresses in x509 certs |
Date: |
Mon, 25 Apr 2022 19:38:27 -0400 |
From: Daniel P. Berrangé <berrange@redhat.com>
We need to encode just the address bytes, not the whole struct sockaddr
data. Add a test case to validate that we're matching on SAN IP
addresses correctly.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
tests/unit/crypto-tls-x509-helpers.c | 16 +++++++++++++---
tests/unit/test-crypto-tlssession.c | 11 +++++++++--
2 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/tests/unit/crypto-tls-x509-helpers.c
b/tests/unit/crypto-tls-x509-helpers.c
index fc609b3fd4..e9937f60d8 100644
--- a/tests/unit/crypto-tls-x509-helpers.c
+++ b/tests/unit/crypto-tls-x509-helpers.c
@@ -168,9 +168,19 @@ test_tls_get_ipaddr(const char *addrstr,
hints.ai_flags = AI_NUMERICHOST;
g_assert(getaddrinfo(addrstr, NULL, &hints, &res) == 0);
- *datalen = res->ai_addrlen;
- *data = g_new(char, *datalen);
- memcpy(*data, res->ai_addr, *datalen);
+ if (res->ai_family == AF_INET) {
+ struct sockaddr_in *in = (struct sockaddr_in *)res->ai_addr;
+ *datalen = sizeof(in->sin_addr);
+ *data = g_new(char, *datalen);
+ memcpy(*data, &in->sin_addr, *datalen);
+ } else if (res->ai_family == AF_INET6) {
+ struct sockaddr_in6 *in = (struct sockaddr_in6 *)res->ai_addr;
+ *datalen = sizeof(in->sin6_addr);
+ *data = g_new(char, *datalen);
+ memcpy(*data, &in->sin6_addr, *datalen);
+ } else {
+ g_assert_not_reached();
+ }
freeaddrinfo(res);
}
diff --git a/tests/unit/test-crypto-tlssession.c
b/tests/unit/test-crypto-tlssession.c
index 5f0da9192c..a6935d8497 100644
--- a/tests/unit/test-crypto-tlssession.c
+++ b/tests/unit/test-crypto-tlssession.c
@@ -512,12 +512,19 @@ int main(int argc, char **argv)
false, true, "wiki.qemu.org", NULL);
TEST_SESS_REG(altname4, cacertreq.filename,
+ servercertalt1req.filename, clientcertreq.filename,
+ false, false, "192.168.122.1", NULL);
+ TEST_SESS_REG(altname5, cacertreq.filename,
+ servercertalt1req.filename, clientcertreq.filename,
+ false, false, "fec0::dead:beaf", NULL);
+
+ TEST_SESS_REG(altname6, cacertreq.filename,
servercertalt2req.filename, clientcertreq.filename,
false, true, "qemu.org", NULL);
- TEST_SESS_REG(altname5, cacertreq.filename,
+ TEST_SESS_REG(altname7, cacertreq.filename,
servercertalt2req.filename, clientcertreq.filename,
false, false, "www.qemu.org", NULL);
- TEST_SESS_REG(altname6, cacertreq.filename,
+ TEST_SESS_REG(altname8, cacertreq.filename,
servercertalt2req.filename, clientcertreq.filename,
false, false, "wiki.qemu.org", NULL);
--
2.32.0
- [PATCH v5 00/21] migration: Postcopy Preemption, Peter Xu, 2022/04/25
- [PATCH v5 02/21] tests: add more helper macros for creating TLS x509 certs, Peter Xu, 2022/04/25
- [PATCH v5 01/21] tests: fix encoding of IP addresses in x509 certs,
Peter Xu <=
- [PATCH v5 05/21] tests: convert XBZRLE migration test to use common helper, Peter Xu, 2022/04/25
- [PATCH v5 07/21] tests: add multifd migration tests of TLS with PSK credentials, Peter Xu, 2022/04/25
- [PATCH v5 03/21] tests: add migration tests of TLS with PSK credentials, Peter Xu, 2022/04/25
- [PATCH v5 04/21] tests: add migration tests of TLS with x509 credentials, Peter Xu, 2022/04/25
- [PATCH v5 06/21] tests: convert multifd migration tests to use common helper, Peter Xu, 2022/04/25
- [PATCH v5 08/21] tests: add multifd migration tests of TLS with x509 credentials, Peter Xu, 2022/04/25
- [PATCH v5 09/21] tests: ensure migration status isn't reported as failed, Peter Xu, 2022/04/25
- [PATCH v5 10/21] migration: Add postcopy-preempt capability, Peter Xu, 2022/04/25
- [PATCH v5 11/21] migration: Postcopy preemption preparation on channel creation, Peter Xu, 2022/04/25
- [PATCH v5 12/21] migration: Postcopy preemption enablement, Peter Xu, 2022/04/25