1*635a8641SAndroid Build Coastguard Worker // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2*635a8641SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*635a8641SAndroid Build Coastguard Worker // found in the LICENSE file. 4*635a8641SAndroid Build Coastguard Worker 5*635a8641SAndroid Build Coastguard Worker #include "crypto/sha2.h" 6*635a8641SAndroid Build Coastguard Worker 7*635a8641SAndroid Build Coastguard Worker #include <stddef.h> 8*635a8641SAndroid Build Coastguard Worker 9*635a8641SAndroid Build Coastguard Worker #include <memory> 10*635a8641SAndroid Build Coastguard Worker 11*635a8641SAndroid Build Coastguard Worker #include "base/stl_util.h" 12*635a8641SAndroid Build Coastguard Worker #include "crypto/secure_hash.h" 13*635a8641SAndroid Build Coastguard Worker 14*635a8641SAndroid Build Coastguard Worker namespace crypto { 15*635a8641SAndroid Build Coastguard Worker SHA256HashString(base::StringPiece str,void * output,size_t len)16*635a8641SAndroid Build Coastguard Workervoid SHA256HashString(base::StringPiece str, void* output, size_t len) { 17*635a8641SAndroid Build Coastguard Worker std::unique_ptr<SecureHash> ctx(SecureHash::Create(SecureHash::SHA256)); 18*635a8641SAndroid Build Coastguard Worker ctx->Update(str.data(), str.length()); 19*635a8641SAndroid Build Coastguard Worker ctx->Finish(output, len); 20*635a8641SAndroid Build Coastguard Worker } 21*635a8641SAndroid Build Coastguard Worker SHA256HashString(base::StringPiece str)22*635a8641SAndroid Build Coastguard Workerstd::string SHA256HashString(base::StringPiece str) { 23*635a8641SAndroid Build Coastguard Worker std::string output(kSHA256Length, 0); 24*635a8641SAndroid Build Coastguard Worker SHA256HashString(str, base::data(output), output.size()); 25*635a8641SAndroid Build Coastguard Worker return output; 26*635a8641SAndroid Build Coastguard Worker } 27*635a8641SAndroid Build Coastguard Worker 28*635a8641SAndroid Build Coastguard Worker } // namespace crypto 29