Bug 2011365

Summary: [RFE] Add support for creating and unlocking standalone integrity devices
Product: Red Hat Enterprise Linux 9 Reporter: Vojtech Trefny <vtrefny>
Component: libblockdevAssignee: Vojtech Trefny <vtrefny>
Status: CLOSED ERRATA QA Contact: guazhang <guazhang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: guazhang
Target Milestone: rcKeywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: libblockdev-2.25-10.el9 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-05-17 13:24:34 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2011377, 2055195    

Description Vojtech Trefny 2021-10-06 13:45:41 UTC
libblockdev can currently recognize and get information about existing DM integrity (and LUKS2 AEAD) devices but doesn't support creation and activation of these devices. We should add functions do format (bd_crypto_integrity_format) and (de)activate newly created integrity devices (bd_crypto_integrity_open/close) to allow Blivet to add full support for these devices for storage role and installer.

Comment 2 Vojtech Trefny 2021-10-06 13:47:01 UTC
upstream PR: https://github.com/storaged-project/libblockdev/pull/663

Comment 4 guazhang@redhat.com 2021-12-09 04:03:04 UTC
Hi

it seem the python module BlockDev  don't include  `bd_crypto_integrity_format` function

>>> hasattr(BlockDev,"bd_crypto_integrity_format")
False


please have a look the bug and share some details what how to call the bd_crypto_integrity_format ?

Comment 5 Vojtech Trefny 2021-12-09 07:55:55 UTC
The `bd_` prefix from the C functions is replaced by the `BlockDev` module in Python, so `bd_crypto_integrity_format` will become `BlockDev.crypto_integrity_format`:

>>> hasattr(BlockDev, "crypto_integrity_format")
True

Example of formatting, opening and closing a device with integrity:

BlockDev.crypto_integrity_format(<device path>, "sha256", False)
BlockDev.crypto_integrity_open(<device path>, "integritytest", "sha256")
BlockDev.crypto_integrity_info("integritytest")
BlockDev.crypto_integrity_close("integritytest")

Comment 6 guazhang@redhat.com 2021-12-09 12:56:03 UTC
Hi,

Test pass with fixed package, the function `crypto_integrity_format, crypto_integrity_open, crypto_integrity_info, crypto_integrity_close` work well.

Comment 11 errata-xmlrpc 2022-05-17 13:24:34 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 (new packages: libblockdev), 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-2022:2503