mirror of
https://github.com/apache/arrow.git
synced 2026-10-28 16:47:19 +08:00
Add support to function length inside the hash functions
This commit is contained in:
1 parent
be7ebee19e
commit
6c906e7f09
2 files changed
+30
-8
No files matched your search
@@ -4,14 +4,24 @@
|
||||
#include "execution_context.h"
|
||||
|
||||
namespace gandiva {
|
||||
const char * HashUtils::hash_using_SHA256(int64_t context, const void *message, size_t message_length) {
|
||||
return HashUtils::get_hash(context, message, message_length, EVP_sha256());
|
||||
const char* HashUtils::hash_using_SHA256(int64_t context,
|
||||
const void* message,
|
||||
size_t message_length,
|
||||
u_int32_t* out_length) {
|
||||
return HashUtils::get_hash(context, message, message_length, EVP_sha256(), out_length);
|
||||
}
|
||||
const char * HashUtils::hash_using_SHA128(int64_t context, const void *message, size_t message_length) {
|
||||
return HashUtils::get_hash(context, message, message_length, EVP_sha1());
|
||||
const char* HashUtils::hash_using_SHA128(int64_t context,
|
||||
const void* message,
|
||||
size_t message_length,
|
||||
u_int32_t* out_length) {
|
||||
return HashUtils::get_hash(context, message, message_length, EVP_sha1(), out_length);
|
||||
}
|
||||
|
||||
const char* HashUtils::get_hash(int64_t context, const void *message, size_t message_length, const EVP_MD *hash_type){
|
||||
const char * HashUtils::get_hash(int64_t context,
|
||||
const void* message,
|
||||
size_t message_length,
|
||||
const EVP_MD *hash_type,
|
||||
u_int32_t* out_length) {
|
||||
if(message == nullptr){
|
||||
HashUtils::error_message(context, "A null value was given to be hashed.");
|
||||
return "";
|
||||
@@ -51,6 +61,8 @@ namespace gandiva {
|
||||
delete[] hex_buffer;
|
||||
free(result);
|
||||
|
||||
*out_length = strlen(result_buffer);
|
||||
|
||||
return result_buffer;
|
||||
}
|
||||
|
||||
|
||||
@@ -9,15 +9,25 @@
|
||||
namespace gandiva {
|
||||
class GANDIVA_EXPORT HashUtils {
|
||||
public:
|
||||
static const char * hash_using_SHA256(int64_t context, const void *message, size_t message_length);
|
||||
static const char *hash_using_SHA256(int64_t context,
|
||||
const void *message,
|
||||
size_t message_length,
|
||||
u_int32_t *out_length);
|
||||
|
||||
static const char *hash_using_SHA128(int64_t context, const void *message, size_t message_length);
|
||||
static const char *hash_using_SHA128(int64_t context,
|
||||
const void *message,
|
||||
size_t message_length,
|
||||
u_int32_t *out_length);
|
||||
|
||||
static uint64_t double_to_long(double value);
|
||||
private:
|
||||
static inline void clean_char_array(char *buffer);
|
||||
|
||||
static const char *get_hash(int64_t context, const void *message, size_t message_length, const EVP_MD *hash_type);
|
||||
static const char *get_hash(int64_t context,
|
||||
const void *message,
|
||||
size_t message_length,
|
||||
const EVP_MD *hash_type,
|
||||
u_int32_t *out_length);
|
||||
|
||||
static void error_message(int64_t context_ptr, char const *err_msg);
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user