1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Use of this source code is governed by a BSD-style license that can be 3ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// found in the LICENSE file. 4ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 5ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "crypto/sha2.h" 6ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 7ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/scoped_ptr.h" 8ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/stl_util-inl.h" 9ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "crypto/secure_hash.h" 10ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 11ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsennamespace crypto { 12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 13ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenvoid SHA256HashString(const std::string& str, void* output, size_t len) { 14ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen scoped_ptr<SecureHash> ctx(SecureHash::Create(SecureHash::SHA256)); 15ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ctx->Update(str.data(), str.length()); 16ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen ctx->Finish(output, len); 17ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 18ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 19ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsenstd::string SHA256HashString(const std::string& str) { 20ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen std::string output(SHA256_LENGTH, 0); 21ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen SHA256HashString(str, string_as_array(&output), output.size()); 22ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen return output; 23ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} 24ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen 25ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen} // namespace crypto 26