Right now we are using a third-party client for the Google Safe Browsing API, but Google has recently released their own [Golang library](https://github.com/google/safebrowsing) which also supports the newer v4 API. Using this library will let us avoid fixing some lingering race conditions & unpleasantness in our fork of `go-safebrowsing-api`. This PR adds support for using the Google library & the v4 API in place of our existing fork when the `GoogleSafeBrowsingV4` feature flag is enabled in the VA "features" configuration. Resolves https://github.com/letsencrypt/boulder/issues/1863 Per `CONTRIBUTING.md` I also ran the unit tests for the new dependency: ``` daniel@XXXXXXXXXX:~/go/src/github.com/google/safebrowsing$ go test ./... ok github.com/google/safebrowsing 3.274s ? github.com/google/safebrowsing/cmd/sblookup [no test files] ? github.com/google/safebrowsing/cmd/sbserver [no test files] ? github.com/google/safebrowsing/cmd/sbserver/statik [no test files] ? github.com/google/safebrowsing/internal/safebrowsing_proto [no test files] ok github.com/google/safebrowsing/vendor/github.com/golang/protobuf/jsonpb 0.012s ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/jsonpb/jsonpb_test_proto [no test files] ok github.com/google/safebrowsing/vendor/github.com/golang/protobuf/proto 0.062s ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/proto/proto3_proto [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/protoc-gen-go [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/protoc-gen-go/descriptor [no test files] ok github.com/google/safebrowsing/vendor/github.com/golang/protobuf/protoc-gen-go/generator 0.017s ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/protoc-gen-go/grpc [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/protoc-gen-go/plugin [no test files] ok github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes 0.009s ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes/any [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes/duration [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes/empty [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes/struct [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes/timestamp [no test files] ? github.com/google/safebrowsing/vendor/github.com/golang/protobuf/ptypes/wrappers [no test files] ? github.com/google/safebrowsing/vendor/github.com/rakyll/statik [no test files] ? github.com/google/safebrowsing/vendor/github.com/rakyll/statik/fs [no test files] ok github.com/google/safebrowsing/vendor/golang.org/x/net/idna 0.003s ``` |
||
|---|---|---|
| .. | ||
| featureflag_string.go | ||
| features.go | ||
| features_test.go | ||