blob: c0fd0ab5d596eb7cd2e1202e32707bdd04f9cae6 [file] [log] [blame]
license.botbf09a502008-08-24 00:55:551// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
initial.commitd7cae122008-07-26 21:49:384
5#include "base/sha2.h"
6
[email protected]e1d6a592010-09-03 21:02:157#include "base/stl_util-inl.h"
initial.commitd7cae122008-07-26 21:49:388#include "base/third_party/nss/blapi.h"
9#include "base/third_party/nss/sha256.h"
10
11namespace base {
12
13void SHA256HashString(const std::string& str, void* output, size_t len) {
14 SHA256Context ctx;
15
16 SHA256_Begin(&ctx);
17 SHA256_Update(&ctx, reinterpret_cast<const unsigned char*>(str.data()),
18 static_cast<unsigned int>(str.length()));
19 SHA256_End(&ctx, static_cast<unsigned char*>(output), NULL,
20 static_cast<unsigned int>(len));
21}
22
[email protected]e1d6a592010-09-03 21:02:1523std::string SHA256HashString(const std::string& str) {
24 std::string output(SHA256_LENGTH, 0);
[email protected]6c683f02010-09-24 17:45:2125 SHA256HashString(str, string_as_array(&output), output.size());
[email protected]e1d6a592010-09-03 21:02:1526 return output;
27}
28
initial.commitd7cae122008-07-26 21:49:3829} // namespace base