Branch data Line data Source code
1 : : // go-sha1.h -- GCC specific sha1 checksum utilities. -*- C++ -*-
2 : :
3 : : // Copyright 2016 The Go Authors. All rights reserved.
4 : : // Use of this source code is governed by a BSD-style
5 : : // license that can be found in the LICENSE file.
6 : :
7 : : #ifndef GO_SHA1_H
8 : : #define GO_SHA1_H
9 : :
10 : : #include "go-system.h"
11 : :
12 : : //
13 : : // Interface class for computation of SHA1 checksums. Front end requests
14 : : // one of these objects from the back end to use for computing
15 : : // checksums (each back end tends to have a different SHA1 implementation).
16 : : // Back ends are expected to create a new class that derives from this
17 : : // one containing an implementation.
18 : : //
19 : :
20 : 8580 : class Go_sha1_helper
21 : : {
22 : : public:
23 : 4328 : virtual ~Go_sha1_helper() { }
24 : : virtual void process_bytes(const void* buffer, size_t len) = 0;
25 : : virtual std::string finish() = 0;
26 : : static const int checksum_len = 20;
27 : : };
28 : :
29 : : // Call to create and return a new sha1 helper (this routine defined
30 : : // by the backend). Caller is responsible for deletion.
31 : : extern Go_sha1_helper* go_create_sha1_helper();
32 : :
33 : : #endif // !defined(GO_SHA1_H)
|