jsonclient

package
v0.0.0-...-2560851 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2017 License: Apache-2.0 Imports: 16 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) GetAndParse

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

GetAndParse makes a HTTP GET call to the given path, and attempt to parse the response as a JSON representation of the rsp structure. The provided context is used to control the HTTP call.

func (*JSONClient) PostAndParse

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

PostAndParse makes a HTTP POST call to the given path, including the request parameters, and attempt to parse the response as a JSON representation of the rsp structure. The provided context is used the control the HTTP call.

func (*JSONClient) PostAndParseWithRetry

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

PostAndParseWithRetry makes a HTTP POST call, but retries (with backoff) on retriable errors.

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