jsonclient

package
v1.0.21 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2018 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type JSONClient

type JSONClient struct {
	Verifier *ct.SignatureVerifier // nil for no verification (e.g. no public key available)
	// contains filtered or unexported fields
}

JSONClient provides common functionality for interacting with a JSON server that uses cryptographic signatures.

func New

func New(uri string, hc *http.Client, opts Options) (*JSONClient, error)

New constructs a new JSONClient instance, for the given base URI, using the given http.Client object (if provided) and the Options object. If opts does not specify a public key, signatures will not be verified.

func (*JSONClient) BaseURI added in v1.0.17

func (c *JSONClient) BaseURI() string

BaseURI returns the base URI that the JSONClient makes queries to.

func (*JSONClient) GetAndParse

func (c *JSONClient) GetAndParse(ctx context.Context, path string, params map[string]string, rsp interface{}) (*http.Response, []byte, error)

GetAndParse makes a HTTP GET call to the given path, and attempta to parse the response as a JSON representation of the rsp structure. Returns the http.Response, the body of the response, and an error. Note that the returned http.Response can be non-nil even when an error is returned, in particular when the HTTP status is not OK or when the JSON parsing fails.

func (*JSONClient) PostAndParse

func (c *JSONClient) PostAndParse(ctx context.Context, path string, req, rsp interface{}) (*http.Response, []byte, error)

PostAndParse makes a HTTP POST call to the given path, including the request parameters, and attempts to parse the response as a JSON representation of the rsp structure. Returns the http.Response, the body of the response, and an error. Note that the returned http.Response can be non-nil even when an error is returned, in particular when the HTTP status is not OK or when the JSON parsing fails.

func (*JSONClient) PostAndParseWithRetry

func (c *JSONClient) PostAndParseWithRetry(ctx context.Context, path string, req, rsp interface{}) (*http.Response, []byte, error)

PostAndParseWithRetry makes a HTTP POST call, but retries (with backoff) on retriable errors; the caller should set a deadline on the provided context to prevent infinite retries. Return values are as for PostAndParse.

type Logger

type Logger interface {
	// Printf formats and logs a message
	Printf(string, ...interface{})
}

Logger is a simple logging interface used to log internal errors and warnings

type Options

type Options struct {
	// Interface to use for logging warnings and errors, if nil the
	// standard library log package will be used.
	Logger Logger
	// PEM format public key to use for signature verification.
	PublicKey string
	// DER format public key to use for signature verification.
	PublicKeyDER []byte
}

Options are the options for creating a new JSONClient.

func (*Options) ParsePublicKey

func (opts *Options) ParsePublicKey() (crypto.PublicKey, error)

ParsePublicKey parses and returns the public key contained in opts. If both opts.PublicKey and opts.PublicKeyDER are set, PublicKeyDER is used. If neither is set, nil will be returned.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL