sha2.h 1.08 KB
Newer Older
1
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 3
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
initial.commit's avatar
initial.commit committed
4

5 6
#ifndef CRYPTO_SHA2_H_
#define CRYPTO_SHA2_H_
initial.commit's avatar
initial.commit committed
7

8 9
#include <stddef.h>

initial.commit's avatar
initial.commit committed
10 11
#include <string>

12
#include "base/strings/string_piece.h"
13
#include "crypto/crypto_export.h"
14

15
namespace crypto {
initial.commit's avatar
initial.commit committed
16 17 18 19 20

// These functions perform SHA-256 operations.
//
// Functions for SHA-384 and SHA-512 can be added when the need arises.

21
static const size_t kSHA256Length = 32;  // Length in bytes of a SHA-256 hash.
initial.commit's avatar
initial.commit committed
22 23 24 25

// Computes the SHA-256 hash of the input string 'str' and stores the first
// 'len' bytes of the hash in the output buffer 'output'.  If 'len' > 32,
// only 32 bytes (the full hash) are stored in the 'output' buffer.
26
CRYPTO_EXPORT void SHA256HashString(const base::StringPiece& str,
27
                                    void* output, size_t len);
initial.commit's avatar
initial.commit committed
28

29 30
// Convenience version of the above that returns the result in a 32-byte
// string.
31
CRYPTO_EXPORT std::string SHA256HashString(const base::StringPiece& str);
32

33
}  // namespace crypto
initial.commit's avatar
initial.commit committed
34

35
#endif  // CRYPTO_SHA2_H_