blob: b85c5891d79ff82ac7a1111f642df3071987703f [file] [log] [blame]
// Copyright 2022 The Chromium OS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef LIBHWSEC_FOUNDATION_CRYPTO_SECURE_BLOB_UTIL_H_
#define LIBHWSEC_FOUNDATION_CRYPTO_SECURE_BLOB_UTIL_H_
#include <string>
#include <brillo/secure_blob.h>
#include "libhwsec-foundation/hwsec-foundation_export.h"
namespace hwsec_foundation {
HWSEC_FOUNDATION_EXPORT void GetSecureRandom(unsigned char* bytes, size_t len);
HWSEC_FOUNDATION_EXPORT brillo::SecureBlob CreateSecureRandomBlob(
size_t length);
// Encodes a binary blob to hex-ascii. Similar to base::HexEncode but
// produces lowercase letters for hex digits.
//
// Parameters
// blob - The binary blob to convert
HWSEC_FOUNDATION_EXPORT std::string BlobToHex(const brillo::Blob& blob);
HWSEC_FOUNDATION_EXPORT std::string SecureBlobToHex(
const brillo::SecureBlob& blob);
// Parameters
// blob - The binary blob to convert
// buffer (IN/OUT) - Where to store the converted blob
// buffer_length - The size of the buffer
HWSEC_FOUNDATION_EXPORT void BlobToHexToBuffer(const brillo::Blob& blob,
void* buffer,
size_t buffer_length);
HWSEC_FOUNDATION_EXPORT void SecureBlobToHexToBuffer(
const brillo::SecureBlob& blob, void* buffer, size_t buffer_length);
} // namespace hwsec_foundation
#endif // LIBHWSEC_FOUNDATION_CRYPTO_SECURE_BLOB_UTIL_H_