|
|
@@ -13,6 +13,7 @@
|
|
|
#include "base64.h"
|
|
|
#include "src/crypto/crypto.h"
|
|
|
#include <stdarg.h>
|
|
|
+#include <bdlib/src/String.h>
|
|
|
|
|
|
char *encrypt_string(const char *keydata, char *in)
|
|
|
{
|
|
|
@@ -24,7 +25,7 @@ char *encrypt_string(const char *keydata, char *in)
|
|
|
bdata = encrypt_binary(keydata, (unsigned char *) in, &len);
|
|
|
if (keydata && *keydata) {
|
|
|
res = b64enc(bdata, &len);
|
|
|
- OPENSSL_cleanse(bdata, *len);
|
|
|
+ OPENSSL_cleanse(bdata, len);
|
|
|
free(bdata);
|
|
|
return res;
|
|
|
} else {
|
|
|
@@ -32,6 +33,21 @@ char *encrypt_string(const char *keydata, char *in)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @brief Encrypt a string
|
|
|
+ * @param key The key to encrypt with
|
|
|
+ * @param data The string to encrypt
|
|
|
+ * @return A new, encrypted string
|
|
|
+ */
|
|
|
+bd::String encrypt_string(const bd::String& key, const bd::String& data) {
|
|
|
+ if (!key) return data;
|
|
|
+ size_t len = data.length();
|
|
|
+ char *bdata = (char*) encrypt_binary(key.c_str(), (unsigned char*) data.c_str(), &len);
|
|
|
+ bd::String encrypted(bdata, len);
|
|
|
+ free(bdata);
|
|
|
+ return encrypted;
|
|
|
+}
|
|
|
+
|
|
|
char *decrypt_string(const char *keydata, char *in)
|
|
|
{
|
|
|
size_t len = strlen(in);
|
|
|
@@ -50,6 +66,21 @@ char *decrypt_string(const char *keydata, char *in)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * @brief Decrypt a string
|
|
|
+ * @param key The key to decrypt with
|
|
|
+ * @param data The string to decrypt
|
|
|
+ * @return A new, decrypted string
|
|
|
+ */
|
|
|
+bd::String decrypt_string(const bd::String& key, const bd::String& data) {
|
|
|
+ if (!key) return data;
|
|
|
+ size_t len = data.length();
|
|
|
+ char *bdata = (char*) decrypt_binary(key.c_str(), (unsigned char*) data.c_str(), &len);
|
|
|
+ bd::String decrypted(bdata, len);
|
|
|
+ free(bdata);
|
|
|
+ return decrypted;
|
|
|
+}
|
|
|
+
|
|
|
char *salted_sha1(const char *in, const char* saltin)
|
|
|
{
|
|
|
char *tmp = NULL, buf[101] = "", *ret = NULL;
|