#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
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);