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)
|