1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #include "Utils.h" 18 19 namespace android { 20 21 bool operator<(const Vector<uint8_t> &lhs, const Vector<uint8_t> &rhs) { 22 if (lhs.size() < rhs.size()) { 23 return true; 24 } else if (lhs.size() > rhs.size()) { 25 return false; 26 } 27 return memcmp((void *)lhs.array(), (void *)rhs.array(), rhs.size()) < 0; 28 } 29 30 std::string ByteArrayToHexString(const uint8_t* in_buffer, size_t length) { 31 static const char kHexChars[] = "0123456789ABCDEF"; 32 33 // Each input byte creates two output hex characters. 34 std::string out_buffer(length * 2, '\0'); 35 36 for (size_t i = 0; i < length; ++i) { 37 char byte = in_buffer[i]; 38 out_buffer[(i * 2)] = kHexChars[(byte >> 4) & 0xf]; 39 out_buffer[(i * 2) + 1] = kHexChars[byte & 0xf]; 40 } 41 return out_buffer; 42 } 43 44 } // namespace android 45