pubkey

package
v0.0.0-...-52d9772 Latest Latest
Warning

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

Go to latest
Published: Jul 29, 2019 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Copyright (C) 2018 Yahoo Japan Corporation Athenz team.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Package pubkey represents the public key updater fetching logic and the interface

Copyright (C) 2018 Yahoo Japan Corporation Athenz team.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2018 Yahoo Japan Corporation Athenz team.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Copyright (C) 2018 Yahoo Japan Corporation Athenz team.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrFetchAthenzPubkey "Fetch athenz pubkey error"
	ErrFetchAthenzPubkey = errors.New("Fetch athenz pubkey error")

	// ErrEmptyAthenzPubkey "Athenz pubkey not initialized"
	ErrEmptyAthenzPubkey = errors.New("Athenz pubkey not initialized")
)

Functions

This section is empty.

Types

type AthenzConfig

type AthenzConfig struct {
	ZMSPubKeys *sync.Map //map[string]authcore.Verifier
	ZTSPubKeys *sync.Map //map[string]authcore.Verifier
}

AthenzConfig represent the cache of Athenz config.

type AthenzEnv

type AthenzEnv string

AthenzEnv represent the athenz environment name.

const (
	// EnvZMS represent the ZMS environment name.
	EnvZMS AthenzEnv = "zms"

	// EnvZTS represent the ZTS environment name.
	EnvZTS AthenzEnv = "zts"
)

type Daemon

type Daemon interface {
	Start(ctx context.Context) <-chan error
	Update(context.Context) error
	GetProvider() Provider
}

Daemon represent the daemon to retrieve public key data.

func New

func New(opts ...Option) (Daemon, error)

New represent the constructor of Pubkeyd

type Option

type Option func(*pubkeyd) error

Option represents a functional options pattern interface

func WithAthenzURL

func WithAthenzURL(url string) Option

WithAthenzURL represents a AthenzURL functional option

func WithErrRetryInterval

func WithErrRetryInterval(i string) Option

WithErrRetryInterval represents a ErrRetryInterval functional option

func WithEtagExpTime

func WithEtagExpTime(t string) Option

WithEtagExpTime represents a EtagExpTime functional option

func WithEtagFlushDuration

func WithEtagFlushDuration(t string) Option

WithEtagFlushDuration represents a EtagFlushDur functional option

func WithHTTPClient

func WithHTTPClient(cl *http.Client) Option

WithHTTPClient represents a HTTPClient functional option

func WithRefreshDuration

func WithRefreshDuration(t string) Option

WithRefreshDuration represents a RefreshDuration functional option

func WithSysAuthDomain

func WithSysAuthDomain(d string) Option

WithSysAuthDomain represents a SysAuthDomain functional option

type Provider

type Provider func(AthenzEnv, string) authcore.Verifier

Provider represent the public key provider to retrive the public key.

type PublicKey

type PublicKey struct {
	ID  string `json:"id"`
	Key string `json:"key"`
}

PublicKey represent the public key ID and the key from Athenz

type SysAuthConfig

type SysAuthConfig struct {
	Modified   string       `json:"modified"`
	Name       string       `json:"name"`
	PublicKeys []*PublicKey `json:"publicKeys"`
}

SysAuthConfig represent the system authority config data structure

Jump to

Keyboard shortcuts

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