A couple of things to note about the failing code path.
The error message "luks encryption requires encrypted secrets to be supported" is coming from qemuDomainSecretDiskPrepare() in src/qemu/qemu_domain.c: https://paste.ubuntu.com/26444342/
The call to qemuDomainSecretSetup() appears to be returning 0 (zero). Whether that means virCryptoHaveCipher() is returning True or False is hard to tell but based on gnutls being included in the build log I'd have to assume HAVE_GNUTLS_CIPHER_ENCRYPT is true.
What about the other checks in the first if statement in qemuDomainSecretSetup()? https://paste.ubuntu.com/26444411/ Pasting here as well. It seems as if one of these checks in the first if is failing and we don't get to the qemuDomainSecretAESSetup() call, but instead take the else path.
A couple of things to note about the failing code path.
The error message "luks encryption requires encrypted secrets to be supported" is coming from qemuDomainSecre tDiskPrepare( ) in src/qemu/ qemu_domain. c: https:/ /paste. ubuntu. com/26444342/
The call to qemuDomainSecre tSetup( ) appears to be returning 0 (zero). Whether that means virCryptoHaveCi pher() is returning True or False is hard to tell but based on gnutls being included in the build log I'd have to assume HAVE_GNUTLS_ CIPHER_ ENCRYPT is true.
What about the other checks in the first if statement in qemuDomainSecre tSetup( )? https:/ /paste. ubuntu. com/26444411/ Pasting here as well. It seems as if one of these checks in the first if is failing and we don't get to the qemuDomainSecre tAESSetup( ) call, but instead take the else path.
static int tSetup( virConnectPtr conn,
qemuDomainObjP rivatePtr priv,
qemuDomainSecr etInfoPtr secinfo,
const char *srcalias,
virSecretUsage Type secretUsageType,
const char *username,
virSecretLooku pTypeDefPtr seclookupdef,
bool isLuks) ipher(VIR_ CRYPTO_ CIPHER_ AES256CBC) &&
virQEMUCapsGet (priv-> qemuCaps, QEMU_CAPS_ OBJECT_ SECRET) &&
(secretUsageTy pe == VIR_SECRET_ USAGE_TYPE_ CEPH ||
secretUsageTy pe == VIR_SECRET_ USAGE_TYPE_ VOLUME ||
secretUsageTy pe == VIR_SECRET_ USAGE_TYPE_ TLS)) { etAESSetup( conn, priv, secinfo, srcalias,
secretUsageTy pe, username,
seclookupdef, isLuks) < 0) etPlainSetup( conn, secinfo, secretUsageType,
username, seclookupdef) < 0)
qemuDomainSecre
{
if (virCryptoHaveC
if (qemuDomainSecr
return -1;
} else {
if (qemuDomainSecr
return -1;
}
return 0;
}