// go-sha1.h -- GCC specific sha1 checksum utilities. -*- C++ -*- // Copyright 2016 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. #ifndef GO_SHA1_H #define GO_SHA1_H #include "go-system.h" // // Interface class for computation of SHA1 checksums. Front end requests // one of these objects from the back end to use for computing // checksums (each back end tends to have a different SHA1 implementation). // Back ends are expected to create a new class that derives from this // one containing an implementation. // class Go_sha1_helper { public: virtual ~Go_sha1_helper() { } virtual void process_bytes(const void* buffer, size_t len) = 0; virtual std::string finish() = 0; static const int checksum_len = 20; }; // Call to create and return a new sha1 helper (this routine defined // by the backend). Caller is responsible for deletion. extern Go_sha1_helper* go_create_sha1_helper(); #endif // !defined(GO_SHA1_H)