#include "Model/Classes/NMR_KeyStoreFactory.h" #include "Model/Classes/NMR_Model.h" #include "Model/Classes/NMR_KeyStore.h" #include "Model/Classes/NMR_KeyStoreConsumer.h" #include "Model/Classes/NMR_KeyStoreResourceDataGroup.h" #include "Model/Classes/NMR_KeyStoreAccessRight.h" #include "Model/Classes/NMR_KeyStoreResourceData.h" #include "Model/Classes/NMR_KeyStoreCEKParams.h" #include "Common/NMR_StringUtils.h" namespace NMR { PKeyStore CKeyStoreFactory::makeKeyStore() { return std::make_shared(); } PKeyStoreResourceDataGroup CKeyStoreFactory::makeResourceDataGroup(PUUID const & keyUUID, std::vector const & key) { PUUID uuid = (nullptr != keyUUID) ? keyUUID : std::make_shared(); return std::make_shared(uuid, key); } PKeyStoreConsumer CKeyStoreFactory::makeConsumer(std::string const & consumerID, std::string const & keyId, std::string const & keyValue) { return std::make_shared(consumerID, keyId, keyValue); } PKeyStoreAccessRight CKeyStoreFactory::makeAccessRight(PKeyStoreConsumer const & consumer, eKeyStoreWrapAlgorithm const algorithm, eKeyStoreMaskGenerationFunction const mask, eKeyStoreMessageDigest const digest, std::vector const & cipherValue) { return std::make_shared(consumer, algorithm, mask, digest, cipherValue); } PKeyStoreResourceData CKeyStoreFactory::makeResourceData(PKeyStoreResourceDataGroup const & rdg, PPackageModelPath const & path, PKeyStoreCEKParams params) { return std::make_shared(rdg, path, params->isCompressed(), params->getEncryptionAlgorithm(), params->getInitVector(), params->getAuthTag(), params->getAddAuthData()); } PKeyStoreContentEncryptionParams CKeyStoreFactory::makeContentEncryptionParams(PKeyStoreResourceData rd, PKeyStoreResourceDataGroup rdg) { return std::make_shared( rd->isCompressed(), rd->getEncryptionAlgorithm(), rdg->getKey(), rd->getInitVector(), rd->getAuthTag(), rd->getAddAuthData(), rd->getDescriptor() ); } PKeyStoreCEKParams CKeyStoreFactory::makeCEKParams(nfBool compressed, eKeyStoreEncryptAlgorithm algorithm, std::vector const & aad, std::vector const & iv, std::vector const & tag) { return std::make_shared(compressed, algorithm, iv, tag, aad, 0); } }