diff options
author | George Marques <george@gmarqu.es> | 2016-06-23 13:57:45 -0300 |
---|---|---|
committer | George Marques <george@gmarqu.es> | 2016-06-23 13:59:23 -0300 |
commit | 98b02209a438ddd4358eda58870100287c3924d1 (patch) | |
tree | ce6e0d1d2aa06e7e33c7c606996adb254e4499b8 /core | |
parent | 60fa2b98151ae2fc87d77ef52372eec82f7754dd (diff) |
Add sha256_buffer() function to String
Diffstat (limited to 'core')
-rw-r--r-- | core/ustring.cpp | 17 | ||||
-rw-r--r-- | core/ustring.h | 1 | ||||
-rw-r--r-- | core/variant_call.cpp | 2 |
3 files changed, 20 insertions, 0 deletions
diff --git a/core/ustring.cpp b/core/ustring.cpp index ea9a9d903e..43e3a9a0bd 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -2419,6 +2419,23 @@ Vector<uint8_t> String::md5_buffer() const { return ret; }; +Vector<uint8_t> String::sha256_buffer() const { + CharString cs = utf8(); + unsigned char hash[32]; + sha256_context ctx; + sha256_init(&ctx); + sha256_hash(&ctx, (unsigned char*)cs.ptr(), cs.length()); + sha256_done(&ctx, hash); + + Vector<uint8_t> ret; + ret.resize(32); + for (int i = 0; i < 32; i++) { + ret[i] = hash[i]; + } + + return ret; +} + String String::insert(int p_at_pos,String p_string) const { diff --git a/core/ustring.h b/core/ustring.h index 692cb4e37d..bb57b11d88 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -196,6 +196,7 @@ public: String md5_text() const; String sha256_text() const; Vector<uint8_t> md5_buffer() const; + Vector<uint8_t> sha256_buffer() const; inline bool empty() const { return length() == 0; } diff --git a/core/variant_call.cpp b/core/variant_call.cpp index 34e5164b24..c0f8930eed 100644 --- a/core/variant_call.cpp +++ b/core/variant_call.cpp @@ -271,6 +271,7 @@ static void _call_##m_type##_##m_method(Variant& r_ret,Variant& p_self,const Var VCALL_LOCALMEM0R(String,md5_text); VCALL_LOCALMEM0R(String,sha256_text); VCALL_LOCALMEM0R(String,md5_buffer); + VCALL_LOCALMEM0R(String,sha256_buffer); VCALL_LOCALMEM0R(String,empty); VCALL_LOCALMEM0R(String,is_abs_path); VCALL_LOCALMEM0R(String,is_rel_path); @@ -1322,6 +1323,7 @@ _VariantCall::addfunc(Variant::m_vtype,Variant::m_ret,_SCS(#m_method),VCALL(m_cl ADDFUNC0(STRING,STRING,String,md5_text,varray()); ADDFUNC0(STRING,STRING,String,sha256_text,varray()); ADDFUNC0(STRING,RAW_ARRAY,String,md5_buffer,varray()); + ADDFUNC0(STRING,RAW_ARRAY,String,sha256_buffer,varray()); ADDFUNC0(STRING,BOOL,String,empty,varray()); ADDFUNC0(STRING,BOOL,String,is_abs_path,varray()); ADDFUNC0(STRING,BOOL,String,is_rel_path,varray()); |