Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void sha1_hash(char* hash, const char* data, size_t data_nbytes) {
- boost::uuids::detail::sha1 sha1;
- unsigned int digest[5];
- sha1.process_bytes(data, data_nbytes);
- sha1.get_digest(digest);
- for(int i = 0; i < 5; ++i) {
- const char* tmp = reinterpret_cast<char*>(digest);
- hash[i*4] = tmp[i*4+3];
- hash[i*4+1] = tmp[i*4+2];
- hash[i*4+2] = tmp[i*4+1];
- hash[i*4+3] = tmp[i*4];
- }
- }
- unsigned int base64_encode(char* dest, const char* src, unsigned int len) {
- char tail[3] = {0,0,0};
- unsigned int one_third_len = len/3;
- unsigned int len_rounded_down = one_third_len*3;
- unsigned int j = len_rounded_down + one_third_len;
- std::copy(base64_enc(src), base64_enc(src + len_rounded_down), dest);
- if (len_rounded_down != len) {
- unsigned int i=0;
- for(; i < len - len_rounded_down; ++i) {
- tail[i] = src[len_rounded_down+i];
- }
- std::copy(base64_enc(tail), base64_enc(tail + 3), dest + j);
- for(i=len + one_third_len + 1; i < j+4; ++i) {
- dest[i] = '=';
- }
- return i;
- }
- return j;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement