1 // Copyright (c) 2011 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.
5 #include "base/crypto/secure_hash.h"
7 #include "base/logging.h"
8 #include "base/third_party/nss/blapi.h"
9 #include "base/third_party/nss/sha256.h"
15 class SecureHashSHA256NSS
: public SecureHash
{
17 SecureHashSHA256NSS() {
21 virtual ~SecureHashSHA256NSS() {
24 virtual void Update(const void* input
, size_t len
) {
25 SHA256_Update(&ctx_
, static_cast<const unsigned char*>(input
), len
);
28 virtual void Finish(void* output
, size_t len
) {
29 SHA256_End(&ctx_
, static_cast<unsigned char*>(output
), NULL
,
30 static_cast<unsigned int>(len
));
39 SecureHash
* SecureHash::Create(Algorithm algorithm
) {
42 return new SecureHashSHA256NSS();