This patch adds a suite of tests for OEMCrypto that verifying buffer overflow and off-by-one errors. The reference code has also been updated to pass these tests. The ODK library and the OEMCrypto API have not changed since the release of version 16.4.
45 lines
1.7 KiB
C++
45 lines
1.7 KiB
C++
// Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
|
|
// source code may only be used and distributed under the Widevine License
|
|
// Agreement.
|
|
|
|
#ifndef WVCDM_UTIL_STRING_CONVERSIONS_H_
|
|
#define WVCDM_UTIL_STRING_CONVERSIONS_H_
|
|
|
|
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include "util_common.h"
|
|
|
|
namespace wvcdm {
|
|
|
|
CORE_UTIL_EXPORT std::vector<uint8_t> a2b_hex(const std::string& b);
|
|
CORE_UTIL_EXPORT std::vector<uint8_t> a2b_hex(const std::string& label,
|
|
const std::string& b);
|
|
CORE_UTIL_EXPORT std::string a2bs_hex(const std::string& b);
|
|
CORE_UTIL_EXPORT std::string b2a_hex(const std::vector<uint8_t>& b);
|
|
CORE_UTIL_EXPORT std::string b2a_hex(const std::string& b);
|
|
CORE_UTIL_EXPORT std::string Base64Encode(
|
|
const std::vector<uint8_t>& bin_input);
|
|
CORE_UTIL_EXPORT std::vector<uint8_t> Base64Decode(
|
|
const std::string& bin_input);
|
|
CORE_UTIL_EXPORT std::string Base64SafeEncode(
|
|
const std::vector<uint8_t>& bin_input);
|
|
CORE_UTIL_EXPORT std::string Base64SafeEncodeNoPad(
|
|
const std::vector<uint8_t>& bin_input);
|
|
CORE_UTIL_EXPORT std::vector<uint8_t> Base64SafeDecode(
|
|
const std::string& bin_input);
|
|
CORE_UTIL_EXPORT std::string HexEncode(const uint8_t* bytes, unsigned size);
|
|
CORE_UTIL_EXPORT std::string IntToString(int value);
|
|
CORE_UTIL_EXPORT int64_t htonll64(int64_t x);
|
|
CORE_UTIL_EXPORT inline int64_t ntohll64(int64_t x) { return htonll64(x); }
|
|
CORE_UTIL_EXPORT std::string BytesToString(const uint8_t* bytes, unsigned size);
|
|
// Encode unsigned integer into a big endian formatted string
|
|
CORE_UTIL_EXPORT std::string EncodeUint32(unsigned int u);
|
|
|
|
} // namespace wvcdm
|
|
|
|
#endif // WVCDM_UTIL_STRING_CONVERSIONS_H_
|