Merge "Fix decoding of encryption key passed to dmcrypt"
This commit is contained in:
commit
f60d848e09
@ -13,6 +13,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import binascii
|
||||
import mock
|
||||
from oslo_concurrency import processutils
|
||||
|
||||
@ -29,8 +30,8 @@ class LibvirtDmcryptTestCase(test.NoDBTestCase):
|
||||
self.NAME = 'disk'
|
||||
self.TARGET = dmcrypt.volume_name(self.NAME)
|
||||
self.PATH = '/dev/nova-lvm/instance_disk'
|
||||
self.KEY = range(0, self.KEY_SIZE)
|
||||
self.KEY_STR = ''.join(["%02x" % x for x in range(0, self.KEY_SIZE)])
|
||||
self.KEY = bytes(bytearray(x for x in range(0, self.KEY_SIZE)))
|
||||
self.KEY_STR = binascii.hexlify(self.KEY).decode('utf-8')
|
||||
|
||||
@mock.patch('nova.utils.execute')
|
||||
def test_create_volume(self, mock_execute):
|
||||
|
@ -13,6 +13,7 @@
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
import binascii
|
||||
import os
|
||||
|
||||
from oslo_concurrency import processutils
|
||||
@ -52,7 +53,7 @@ def create_volume(target, device, cipher, key_size, key):
|
||||
:param device: underlying block device
|
||||
:param cipher: encryption cipher string digestible by cryptsetup
|
||||
:param key_size: encryption key size
|
||||
:param key: encryption key as an array of unsigned bytes
|
||||
:param key: encoded encryption key bytestring
|
||||
"""
|
||||
cmd = ('cryptsetup',
|
||||
'create',
|
||||
@ -61,7 +62,7 @@ def create_volume(target, device, cipher, key_size, key):
|
||||
'--cipher=' + cipher,
|
||||
'--key-size=' + str(key_size),
|
||||
'--key-file=-')
|
||||
key = ''.join(map(lambda byte: "%02x" % byte, key))
|
||||
key = binascii.hexlify(key).decode('utf-8')
|
||||
try:
|
||||
utils.execute(*cmd, process_input=key, run_as_root=True)
|
||||
except processutils.ProcessExecutionError as e:
|
||||
|
Loading…
Reference in New Issue
Block a user