cosmian_kms_crypto 5.24.0

Cosmian KMS Crypto - cryptographic operations and algorithms
Documentation
use cosmian_kmip::{
    kmip_0::kmip_types::{HashingAlgorithm, PaddingMethod},
    kmip_2_1::{kmip_data_structures::KeyWrappingData, kmip_types::CryptographicAlgorithm},
};

pub(super) fn rsa_parameters(
    key_wrapping_data: &KeyWrappingData,
) -> (CryptographicAlgorithm, PaddingMethod, HashingAlgorithm) {
    key_wrapping_data
        .encryption_key_information
        .as_ref()
        .and_then(|eki| eki.cryptographic_parameters.as_ref())
        .map_or_else(
            || {
                (
                    CryptographicAlgorithm::RSA,
                    PaddingMethod::OAEP,
                    HashingAlgorithm::SHA256,
                )
            },
            |cp| {
                (
                    cp.cryptographic_algorithm
                        .unwrap_or(CryptographicAlgorithm::RSA),
                    cp.padding_method.unwrap_or(PaddingMethod::OAEP),
                    cp.hashing_algorithm.unwrap_or(HashingAlgorithm::SHA256),
                )
            },
        )
}