blob: 3de84b1696ef81536f157a493585a2d5b4024392 [file] [log] [blame]
// Copyright 2015 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 TPM_MANAGER_SERVER_OPENSSL_CRYPTO_UTIL_IMPL_H_
#define TPM_MANAGER_SERVER_OPENSSL_CRYPTO_UTIL_IMPL_H_
#include <string>
#include <base/compiler_specific.h>
#include <base/macros.h>
#include "tpm_manager/server/openssl_crypto_util.h"
namespace tpm_manager {
// OpensslCryptoUtilImpl is the default implementation of the
// OpensslCryptoUtil interface.
// Example usage:
// OpensslCryptoUtilImpl util;
// std::string random_bytes;
// bool result = util.GetRandomBytes(5, &random_bytes);
class OpensslCryptoUtilImpl : public OpensslCryptoUtil {
public:
OpensslCryptoUtilImpl() = default;
OpensslCryptoUtilImpl(const OpensslCryptoUtilImpl&) = delete;
OpensslCryptoUtilImpl& operator=(const OpensslCryptoUtilImpl&) = delete;
~OpensslCryptoUtilImpl() override = default;
// OpensslCryptoUtil methods.
bool GetRandomBytes(size_t num_bytes,
std::string* random_data) override WARN_UNUSED_RESULT;
};
} // namespace tpm_manager
#endif // TPM_MANAGER_SERVER_OPENSSL_CRYPTO_UTIL_IMPL_H_