1*588dfe31SMichal Berger# SPDX-License-Identifier: BSD-3-Clause 2*588dfe31SMichal Berger# Copyright (C) 2022 Intel Corporation. 3*588dfe31SMichal Berger# All rights reserved. 4*588dfe31SMichal Berger 52bf49272SKonrad Sztyberfrom spdk.sma import DeviceManager 6cc3f842cSKonrad Sztyberfrom spdk.sma import CryptoEngine, get_crypto_engine 72bf49272SKonrad Sztyberfrom spdk.sma.proto import sma_pb2 82bf49272SKonrad Sztyber 92bf49272SKonrad Sztyber 10cc3f842cSKonrad Sztyberclass TestCryptoEngine(CryptoEngine): 11cc3f842cSKonrad Sztyber def __init__(self): 12cc3f842cSKonrad Sztyber super().__init__('crypto-plugin2') 13cc3f842cSKonrad Sztyber 14cc3f842cSKonrad Sztyber def setup(self, volume_id, key, cipher, key2=None): 15cc3f842cSKonrad Sztyber pass 16cc3f842cSKonrad Sztyber 17cc3f842cSKonrad Sztyber def cleanup(self, volume_id): 18cc3f842cSKonrad Sztyber pass 19cc3f842cSKonrad Sztyber 20cc3f842cSKonrad Sztyber def verify(self, volume_id, key, cipher, key2=None): 21cc3f842cSKonrad Sztyber pass 22cc3f842cSKonrad Sztyber 23cc3f842cSKonrad Sztyber def get_crypto_bdev(self, volume_id): 24cc3f842cSKonrad Sztyber return volume_id 25cc3f842cSKonrad Sztyber 26cc3f842cSKonrad Sztyber 272bf49272SKonrad Sztyberclass TestDeviceManager1(DeviceManager): 282bf49272SKonrad Sztyber def __init__(self, client): 292bf49272SKonrad Sztyber super().__init__('plugin2-device1', 'nvme', client) 302bf49272SKonrad Sztyber 312bf49272SKonrad Sztyber def create_device(self, request): 32cc3f842cSKonrad Sztyber crypto = get_crypto_engine().name 33cc3f842cSKonrad Sztyber return sma_pb2.CreateDeviceResponse(handle=f'{self.protocol}:{self.name}:{crypto}') 342bf49272SKonrad Sztyber 352bf49272SKonrad Sztyber 362bf49272SKonrad Sztyberclass TestDeviceManager2(DeviceManager): 372bf49272SKonrad Sztyber def __init__(self, client): 382bf49272SKonrad Sztyber super().__init__('plugin2-device2', 'nvmf_tcp', client) 392bf49272SKonrad Sztyber 402bf49272SKonrad Sztyber def create_device(self, request): 41cc3f842cSKonrad Sztyber crypto = get_crypto_engine().name 42cc3f842cSKonrad Sztyber return sma_pb2.CreateDeviceResponse(handle=f'{self.protocol}:{self.name}:{crypto}') 432bf49272SKonrad Sztyber 442bf49272SKonrad Sztyber 452bf49272SKonrad Sztyberdevices = [TestDeviceManager1, TestDeviceManager2] 46cc3f842cSKonrad Sztybercrypto_engines = [TestCryptoEngine] 47