Advertisement
Guest User

Untitled

a guest
Dec 6th, 2016
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. enc_string RJContextEncode(JNIEnv* je, RJContext& context, const std::string& input) {
  2. std::string in_v = input;
  3. unsigned int sum_v = HashSum((const signed char*)in_v.data(), in_v.size());
  4. out_oscar_buffer bs;
  5. bs << DWORD_LE(sum_v);
  6. in_v.append(bs.as_string());
  7.  
  8. enc_string r;
  9. unsigned char* b = (unsigned char*) alloca(in_v.size() + 16);
  10. memcpy(b, in_v.data(), in_v.size());
  11. int len = in_v.size();
  12. if (len % 16) {
  13. len += 16 - (len % 16);
  14. }
  15. if (len % 16) {
  16. logd(TAG, "RJContextEncode fail: if(len%16)");
  17. return enc_string(); //throw ("if(len%16)");
  18. } else if (input.size() == 0) {
  19. logd(TAG, "RJContextEncode fail: buffer length == 0");
  20. return enc_string();
  21. } else {
  22. unsigned char* output = (unsigned char*) alloca(len);
  23. block_encrypt(&(context.rjctx_out), b, len,output, context.rjIV_out);
  24. r.buf = std::string((char*)output, len);
  25. r.original_size = input.size();
  26. log(je, TAG, "RJContextEncode r.buf.size()=%d", r.buf.size());
  27. return r;
  28. }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement