/* SPDX-License-Identifier: GPL-2.0-only */ /* * Read encryption information for Opal and ATA devices. * * Copyright (C) 2024 Intel Corporation * Author: Blazej Kucman */ typedef enum encryption_status { /* The drive is not currently encrypted. */ ENC_STATUS_UNENCRYPTED = 0, /* The drive is encrypted and the data is not accessible. */ ENC_STATUS_LOCKED, /* The drive is encrypted but the data is accessible in unencrypted form. */ ENC_STATUS_UNLOCKED } encryption_status_t; typedef enum encryption_ability { ENC_ABILITY_NONE = 0, ENC_ABILITY_OTHER, /* Self encrypted drive */ ENC_ABILITY_SED } encryption_ability_t; typedef struct encryption_information { encryption_ability_t ability; encryption_status_t status; } encryption_information_t; mdadm_status_t get_nvme_opal_encryption_information(int disk_fd, struct encryption_information *information, const int verbose); mdadm_status_t get_ata_encryption_information(int disk_fd, struct encryption_information *information, const int verbose); const char *get_encryption_ability_string(enum encryption_ability ability); const char *get_encryption_status_string(enum encryption_status status);