Files
lib3mf/Source/API/lib3mf_contentencryptionparams.cpp
SaraP f8c998f6ff lib3mf :
- primo commit.
2021-09-07 16:50:23 +02:00

74 lines
2.8 KiB
C++

#include "lib3mf_contentencryptionparams.hpp"
#include "lib3mf_interfaceexception.hpp"
using namespace Lib3MF::Impl;
namespace Lib3MF {
namespace Impl {
CContentEncryptionParams::CContentEncryptionParams(NMR::PCKeyStoreContentEncryptionParams const & p): m_pParams(p) {
if (!p)
throw ELib3MFInterfaceException(LIB3MF_ERROR_INVALIDPARAM);
}
Lib3MF_uint64 CContentEncryptionParams::GetDescriptor() {
return m_pParams->getDescriptor();
}
eEncryptionAlgorithm CContentEncryptionParams::GetEncryptionAlgorithm() {
return(eEncryptionAlgorithm)m_pParams->getEncryptionAlgorithm();
}
void CContentEncryptionParams::GetKey(Lib3MF_uint64 nByteDataBufferSize, Lib3MF_uint64 *pByteDataNeededCount, Lib3MF_uint8 *pByteDataBuffer) {
const std::vector<NMR::nfByte> & buf = m_pParams->getKey();
if (nByteDataBufferSize < buf.size() || nullptr == pByteDataBuffer)
*pByteDataNeededCount = buf.size();
else {
std::copy(buf.begin(), buf.end(), pByteDataBuffer);
}
}
void CContentEncryptionParams::GetInitializationVector(Lib3MF_uint64 nByteDataBufferSize, Lib3MF_uint64 *pByteDataNeededCount, Lib3MF_uint8 *pByteDataBuffer) {
const std::vector<NMR::nfByte> & buf = m_pParams->getInitVector();
if (nByteDataBufferSize < buf.size() || nullptr == pByteDataBuffer)
*pByteDataNeededCount = buf.size();
else {
std::copy(buf.begin(), buf.end(), pByteDataBuffer);
}
}
void CContentEncryptionParams::GetAuthenticationTag(Lib3MF_uint64 nByteDataBufferSize, Lib3MF_uint64 *pByteDataNeededCount, Lib3MF_uint8 *pByteDataBuffer) {
const std::vector<NMR::nfByte> & buf = m_pParams->getAuthTag();
if (nByteDataBufferSize < buf.size() || nullptr == pByteDataBuffer)
*pByteDataNeededCount = buf.size();
else {
std::copy(buf.begin(), buf.end(), pByteDataBuffer);
}
}
void CContentEncryptionParams::SetAuthenticationTag(Lib3MF_uint64 const nByteDataBufferSize, const Lib3MF_uint8 *pByteDataBuffer) {
std::vector<NMR::nfByte> tag(pByteDataBuffer, pByteDataBuffer + nByteDataBufferSize);
m_pParams->setAuthTag(tag);
}
void CContentEncryptionParams::GetAdditionalAuthenticationData(Lib3MF_uint64 nByteDataBufferSize, Lib3MF_uint64 *pByteDataNeededCount, Lib3MF_uint8 *pByteDataBuffer) {
const std::vector<NMR::nfByte> & buf = m_pParams->getAddAuthData();
if (nByteDataBufferSize < buf.size() || nullptr == pByteDataBuffer)
*pByteDataNeededCount = buf.size();
else {
std::copy(buf.begin(), buf.end(), pByteDataBuffer);
}
}
void CContentEncryptionParams::SetAdditionalAuthenticationData(Lib3MF_uint64 const nByteDataBufferSize, const Lib3MF_uint8 *pByteDataBuffer) {
std::vector<NMR::nfByte> aad(pByteDataBuffer, pByteDataBuffer + nByteDataBufferSize);
m_pParams->setAddAuthData(aad);
}
std::string CContentEncryptionParams::GetKeyUUID() {
return std::string();
}
}
}