Add RSA OAEP support
[platform/core/security/key-manager.git] / src / manager / crypto / sw-backend / internals.h
index 833c88a..c71d106 100644 (file)
@@ -25,6 +25,7 @@
 #include <ckm/ckm-type.h>
 #include <openssl/evp.h>
 #include <token.h>
+#include <sw-backend/key.h>
 
 #define EVP_SUCCESS 1  // DO NOTCHANGE THIS VALUE
 #define EVP_FAIL    0  // DO NOTCHANGE THIS VALUE
@@ -39,39 +40,46 @@ namespace Crypto {
 namespace SW {
 namespace Internals {
 
-// During initialization, FIPS_MODE and the entropy source are set
-// and system certificates are loaded to memory.
-//    FIPS_MODE - ON, OFF(Default)
-//    entropy source - /dev/random,/dev/urandom(Default)
-int initialize();
-
 TokenPair createKeyPairRSA(CryptoBackend backendId, const int size);
 TokenPair createKeyPairDSA(CryptoBackend backendId, const int size);
 TokenPair createKeyPairECDSA(CryptoBackend backendId, ElipticCurve type1);
 Token     createKeyAES(CryptoBackend backendId, const int sizeBits);
 
+TokenPair generateAKey(CryptoBackend backendId, const CryptoAlgorithm &algorithm);
+Token generateSKey(CryptoBackend backendId, const CryptoAlgorithm &algorithm);
+
 RawBuffer symmetricEncrypt(const RawBuffer &key,
                            const CryptoAlgorithm &alg,
                            const RawBuffer &data);
 RawBuffer symmetricDecrypt(const RawBuffer &key,
                            const CryptoAlgorithm &alg,
                            const RawBuffer &cipher);
+RawBuffer asymmetricEncrypt(const EvpShPtr &key,
+                            const CryptoAlgorithm &alg,
+                            const RawBuffer &data);
+RawBuffer asymmetricDecrypt(const EvpShPtr &key,
+                            const CryptoAlgorithm &alg,
+                            const RawBuffer &data);
 
 std::pair<RawBuffer, RawBuffer> encryptDataAesGcm(const RawBuffer &key,
     const RawBuffer &data,
     const RawBuffer &iv,
-    int tagSize);
+    int tagSize,
+    const RawBuffer &aad = RawBuffer());
 
 RawBuffer decryptDataAesGcm(const RawBuffer &key,
     const RawBuffer &data,
     const RawBuffer &iv,
-    const RawBuffer &tag);
+    const RawBuffer &tag,
+    const RawBuffer &aad = RawBuffer());
 
-RawBuffer encryptDataAesCbc(const RawBuffer &key,
+RawBuffer encryptDataAes(AlgoType type,
+    const RawBuffer &key,
     const RawBuffer &data,
     const RawBuffer &iv);
 
-RawBuffer decryptDataAesCbc(const RawBuffer &key,
+RawBuffer decryptDataAes(AlgoType type,
+    const RawBuffer &key,
     const RawBuffer &data,
     const RawBuffer &iv);