RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 2172347 - 3 minor issues related to virt-qemu-sev-validate command
Summary: 3 minor issues related to virt-qemu-sev-validate command
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: libvirt
Version: 9.2
Hardware: x86_64
OS: Linux
medium
medium
Target Milestone: rc
: ---
Assignee: Daniel Berrangé
QA Contact: Luyao Huang
URL:
Whiteboard:
Depends On:
Blocks: 2176917
TreeView+ depends on / blocked
 
Reported: 2023-02-22 03:39 UTC by Luyao Huang
Modified: 2023-05-09 08:12 UTC (History)
6 users (show)

Fixed In Version: libvirt-9.0.0-8.el9_2
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
: 2176917 (view as bug list)
Environment:
Last Closed: 2023-05-09 07:27:59 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-149608 0 None None None 2023-02-22 03:40:28 UTC
Red Hat Product Errata RHBA-2023:2171 0 None None None 2023-05-09 07:28:37 UTC

Description Luyao Huang 2023-02-22 03:39:45 UTC
Description of problem:
3 minor issues related to virt-qemu-sev-validate command

Version-Release number of selected component (if applicable):
libvirt-9.0.0-6.el9.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Cannot use virt-qemu-sev-validate after install libvirt-client-qemu

# virt-qemu-sev-validate --help
Traceback (most recent call last):
  File "/usr/bin/virt-qemu-sev-validate", line 50, in <module>
    from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
ModuleNotFoundError: No module named 'cryptography'

# dnf install python-cryptography

# virt-qemu-sev-validate --help
Traceback (most recent call last):
  File "/usr/bin/virt-qemu-sev-validate", line 53, in <module>
    from lxml import etree
ModuleNotFoundError: No module named 'lxml'

# dnf install python-lxml


2. Some small mistakes in the man page of virt-qemu-sev-validate

virt-dom-sev-validate should be virt-qemu-sev-validate

--disk-password passwd.txt should be --inject-secret luks-key:passwd.txt

--loader should be --firmware


3. Incorrect example in https://libvirt.org/kbase/launch_security_sev.html#guest-attestation-for-sev-sev-es-from-a-trusted-host

Example:
$ virt-qemu-sev-validate \
    --measurement LMnv8i8N2QejezMPkscShF0cyPYCslgUoCxGWRqQuyt0Q0aUjVkH/T6NcmkwZkWp
    --api-major 0
    --api-minor 24
    --build-id 15
    --policy 3
    --tik ${myvmname}_tik.bin
    --tek ${myvmname}_tek.bin
OK: Looks good to me

Test Result:
# virt-qemu-sev-validate --tik vm1_tik.bin --tek vm1_tek.bin --measurement Tco/y8PzIlUMuHrJXjxYU5D/43ZAcAu8mrrsnx1CYihG0byA8nQWpTPk8PfnMPz5 --api-major 1 --api-minor 51 --build-id 3 --policy 7
ERROR: Either --firmware or --domain is required

Actual results:
1. libvirt-client-qemu rpm missed the dependency of python-cryptography and python-lxml
2. Some small mistakes in the man page of virt-qemu-sev-validate
3. Incorrect example in https://libvirt.org/kbase/launch_security_sev.html#guest-attestation-for-sev-sev-es-from-a-trusted-host

Expected results:


Additional info:

Comment 1 Peter Krempa 2023-02-22 07:47:11 UTC
Patches were posted upstream:

https://listman.redhat.com/archives/libvir-list/2023-February/238038.html

Comment 7 Luyao Huang 2023-03-13 01:54:13 UTC
I noticed there is one mistake in manpages of virt-qemu-sev-validate:

# man virt-qemu-sev-validate |grep disk-password
              --disk-password passwd.txt \
              --disk-password passwd.txt
              --disk-password passwd.txt

# rpm -q libvirt
libvirt-9.0.0-8.el9_2.x86_64

Comment 10 Luyao Huang 2023-03-23 02:51:41 UTC
Verify this bug with libvirt-9.0.0-8.el9_2.x86_64:

1. 
# dnf install libvirt-client-qemu-9.0.0-8.el9_2.x86_64.rpm 
...
Installing:
 libvirt-client-qemu                         x86_64                        9.0.0-8.el9_2                        @commandline                             42 k
Installing dependencies:
 python3-cffi                                x86_64                        1.14.5-5.el9                         BaseOS                           257 k
 python3-cryptography                        x86_64                        36.0.1-2.el9                         BaseOS                           1.2 M
 python3-libvirt                             x86_64                        9.0.0-1.el9                          AppStream                        341 k
 python3-lxml                                x86_64                        4.6.5-3.el9                          AppStream                        1.2 M
 python3-ply                                 noarch                        3.11-14.el9                          BaseOS                           111 k
 python3-pycparser                           noarch                        2.20-6.el9                           BaseOS                           139 k

...

# virt-qemu-sev-validate --help
usage: virt-qemu-sev-validate [-h] [--debug] [--quiet] [--measurement MEASUREMENT] [--api-major API_MAJOR] [--api-minor API_MINOR] [--build-id BUILD_ID]
                              [--policy POLICY] [--firmware FIRMWARE] [--kernel KERNEL] [--initrd INITRD] [--cmdline CMDLINE] [--num-cpus NUM_CPUS]
                              [--vmsa-cpu0 VMSA_CPU0] [--vmsa-cpu1 VMSA_CPU1] [--cpu-family CPU_FAMILY] [--cpu-model CPU_MODEL]
                              [--cpu-stepping CPU_STEPPING] [--tik TIK] [--tek TEK] [--tk TK] [--connect CONNECT] [--domain DOMAIN] [--insecure]
                              [--ignore-config] [--inject-secret INJECT_SECRET] [--secret-payload SECRET_PAYLOAD] [--secret-header SECRET_HEADER]

Validate guest AMD SEV launch measurement

...

2. 
# man virt-qemu-sev-validate | grep "\--loader"
# man virt-qemu-sev-validate | grep "virt-dom-sev-validate"

this mistake still exist, --disk-password passwd.txt should be --inject-secret luks-key:passwd.txt.
I don't think this small mistake block this bug verification.

# man virt-qemu-sev-validate | grep "\--disk-password passwd.txt"
              --disk-password passwd.txt \
              --disk-password passwd.txt
              --disk-password passwd.txt

3. 
# cat /usr/share/doc/libvirt-docs/html/kbase/launch_security_sev.html |grep -a6 "\--firmware"
<pre class="literal-block">$ virt-qemu-sev-validate \
    --measurement LMnv8i8N2QejezMPkscShF0cyPYCslgUoCxGWRqQuyt0Q0aUjVkH/T6NcmkwZkWp \
    --api-major 0 \
    --api-minor 24 \
    --build-id 15 \
    --policy 3 \
    --firmware /path/to/OVMF.sev.fd \
    --tik ${myvmname}_tik.bin \
    --tek ${myvmname}_tek.bin
OK: Looks good to me</pre>
<p>The <a class="reference external" href="../manpages/virt-qemu-sev-validate.html">man page</a> for
<span class="docutils literal"><span class="pre">virt-qemu-sev-validate</span></span> outlines a great many other ways to invoke this
tool.</p>

Comment 12 errata-xmlrpc 2023-05-09 07:27:59 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (libvirt bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:2171


Note You need to log in before you can comment on or make changes to this bug.