ENDIF(DPL_LOG AND NOT CMAKE_BUILD_TYPE MATCHES "profiling")
OPTION(WITH_TESTS "Build tests" OFF)
+ ADD_DEFINITIONS("-DDPL_LOGS_ENABLED") #@@@@@@@@@@@@@
# Compiler flags
SET(CMAKE_C_FLAGS_PROFILING "-O2")
PKG_CHECK_MODULES(SYS_ENCRYPTION
dlog
openssl
+ osp-appfw
REQUIRED
)
TARGET_LINK_LIBRARIES(${TARGET_DPL_ENCRYPTION} "-ldukgenerator" )
TARGET_LINK_LIBRARIES(${TARGET_DPL_ENCRYPTION} "-lcryptsvc" )
+TARGET_LINK_LIBRARIES(${TARGET_DPL_ENCRYPTION} -L/usr/lib/osp -losp-appfw )
# Target library properties
SET_TARGET_PROPERTIES(${TARGET_DPL_ENCRYPTION} PROPERTIES
#include <openssl/sha.h>
#include <dpl/exception.h>
-extern char** calculate(char*pappId, int idLen, int keyLen);
-
namespace WRTDecryptor {
class ResourceDecryptor
{
unsigned char* decBuf,
size_t chunkSize);
+ /* TrustZone */
+ int DecryptChunkByTrustZone(
+ std::string pkgid,
+ const unsigned char *inBuffer,
+ int inBufSize);
+ void getDecryptStringByTrustZone(unsigned char *decBuffer);
+
private:
AES_KEY* GetDecryptionKey();
AES_KEY m_decKey;
+ void *m_getBuffer;
};
} //namespace WRTDecryptor
#include <openssl/sha.h>
#include <dpl/exception.h>
-extern char** calculate(char*pappId, int idLen, int keyLen);
-
namespace WRTEncryptor {
class ResourceEncryptor
{
void EncryptChunk(unsigned char* inputBuf, unsigned char* encBuf, size_t
chunkSize);
+ /* TrustZone */
+ int EncryptChunkByTrustZone(
+ std::string pkgid,
+ const unsigned char *plainBuffer,
+ int pBufSize);
+ void getEncStringByTrustZone(unsigned char *encBuffer);
+
private:
AES_KEY GetEncryptionkey();
AES_KEY m_encKey;
+ void *m_getBuffer;
};
} //namespace WRTEncryptor
#include <dpl/log/log.h>
#include <dpl/exception.h>
#include <dukgen.h>
+#include <FBaseByteBuffer.h>
+#include <security/FSecCrypto_TrustZoneService.h>
namespace {
#define BITS_SIZE 128
#define KEY_SIZE 16
}
namespace WRTDecryptor {
-ResourceDecryptor::ResourceDecryptor()
+ResourceDecryptor::ResourceDecryptor() :
+ m_getBuffer(NULL)
{
LogDebug("Started Decryption");
}
AES_cbc_encrypt(inBuf, decBuf, inBufSize, &m_decKey, ivec, AES_DECRYPT);
LogDebug("Success decryption");
}
+
+int ResourceDecryptor::DecryptChunkByTrustZone(
+ std::string pkgid, const unsigned char* inBuffer,
+ int inBufSize)
+{
+ using namespace Tizen::Base;
+
+ const byte *b_pkgid = reinterpret_cast<const byte*>(pkgid.c_str());
+ ByteBuffer appInfo;
+ appInfo.Construct(pkgid.length());
+ appInfo.SetArray(b_pkgid, 0, pkgid.length());
+ appInfo.Flip();
+
+ Tizen::Security::Crypto::_TrustZoneService* pInstance;
+ pInstance = Tizen::Security::Crypto::_TrustZoneService::GetInstance();
+
+ ByteBuffer pBuf;
+ pBuf.Construct(inBufSize);
+ const byte *pByte = reinterpret_cast<const byte*>(inBuffer);
+ pBuf.SetArray(pByte, 0, inBufSize);
+ pBuf.Flip();
+
+ ByteBuffer *getBuffer = pInstance->_TrustZoneService::DecryptN(appInfo, pBuf);
+
+ m_getBuffer = reinterpret_cast<void*>(getBuffer);
+ return getBuffer->GetRemaining();
+}
+
+void ResourceDecryptor::getDecryptStringByTrustZone(unsigned char *decBuffer)
+{
+ using namespace Tizen::Base;
+ LogDebug("Get decrypted string");
+ ByteBuffer *buffer = reinterpret_cast<ByteBuffer*>(m_getBuffer);
+ memcpy(decBuffer, buffer->GetPointer(), buffer->GetRemaining());
+ buffer->Reset();
+}
+
} //namespace WRTDecryptor
#include <fcntl.h>
#include <dpl/log/log.h>
#include <dukgen.h>
+#include <FBaseByteBuffer.h>
+#include <security/FSecCrypto_TrustZoneService.h>
namespace {
#define BITS_SIZE 128
#define KEY_SIZE 16
}
namespace WRTEncryptor {
-ResourceEncryptor::ResourceEncryptor()
+ResourceEncryptor::ResourceEncryptor() :
+ m_getBuffer(NULL)
{
LogDebug("Started Encrytion");
}
AES_cbc_encrypt(inputBuf, encBuf, chunkSize, &m_encKey, ivec, AES_ENCRYPT);
}
+
+int ResourceEncryptor::EncryptChunkByTrustZone(
+ std::string pkgid,
+ const unsigned char *plainBuffer,
+ int pBufSize)
+{
+ using namespace Tizen::Base;
+
+ const byte *b_pkgid = reinterpret_cast<const byte*>(pkgid.c_str());
+ ByteBuffer appInfo;
+ appInfo.Construct(pkgid.length());
+ appInfo.SetArray(b_pkgid, 0, pkgid.length());
+ appInfo.Flip();
+
+ Tizen::Security::Crypto::_TrustZoneService* pInstance;
+ pInstance = Tizen::Security::Crypto::_TrustZoneService::GetInstance();
+
+ ByteBuffer pBuf;
+ pBuf.Construct(pBufSize);
+ const byte *pByte = reinterpret_cast<const byte*>(plainBuffer);
+ pBuf.SetArray(pByte, 0, pBufSize);
+ pBuf.Flip();
+
+ ByteBuffer *getBuffer =
+ pInstance->_TrustZoneService::EncryptN(appInfo, pBuf);
+ m_getBuffer = reinterpret_cast<void*>(getBuffer);
+
+ return getBuffer->GetRemaining();
+}
+
+void ResourceEncryptor::getEncStringByTrustZone(unsigned char *encBuffer)
+{
+ using namespace Tizen::Base;
+ LogDebug("Get encrypted String");
+ ByteBuffer *buffer = reinterpret_cast<ByteBuffer*>(m_getBuffer);
+ memcpy(encBuffer, buffer->GetPointer(), buffer->GetRemaining());
+ buffer->Reset();
+}
} //namespace ResourceEnc
BuildRequires: pkgconfig(openssl)
BuildRequires: pkgconfig(libiri)
BuildRequires: pkgconfig(libidn)
+BuildRequires: pkgconfig(osp-appfw)
BuildRequires: libcryptsvc-devel
BuildRequires: dukgenerator-devel
+BuildRequires: osp-appfw-internal-devel
Requires: libcryptsvc
+Requires: osp-appfw
%description
Wrt common library