data

package
v0.0.0-...-2e0ef96 Latest Latest
Warning

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

Go to latest
Published: May 10, 2020 License: GPL-3.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AccessReqSubjectUser  = "user"
	AccessReqSubjectAgent = "agent"
)
View Source
const (
	ToleratesEmptyFieldsYes = true
	ToleratesEmptyFieldsNo  = false
)

ToleratesEmptyFieldsYes used when using structures as filters

View Source
const (
	ESAMPubKeyFieldName  = "ESAMPubKey"
	SignSubjectFieldName = "SignSubject"
)

Signing process constants

View Source
const (
	UserRoleOwner    = "owner"
	UserRoleSecAdmin = "sec_admin"
	UserRoleEngineer = "engineer"
)
View Source
const (
	UserStateEnabled   = "enabled"
	UserStateSuspended = "suspended"
	UserStateDisabled  = "disabled"
)

Variables

This section is empty.

Functions

func TemplateRoles

func TemplateRoles() string

func TemplateStates

func TemplateStates() string

Types

type AccessReq

type AccessReq struct {
	ESAMPubKey ESAMPubKey `yaml:"ESAM public key" json:"esam_pub_key" db:"esam_pub_key" sqltype:"VARBINARY(6144) NOT NULL PRIMARY KEY"`
	Subject    string     `yaml:"Subject" json:"subject" db:"subject" sqltype:"CHAR(16) NOT NULL"`
	Name       string     `yaml:"Name" json:"name" db:"name" sqltype:"CHAR(63)"`
}

func (*AccessReq) Copy

func (accessReq *AccessReq) Copy() (*AccessReq, error)

func (*AccessReq) Equal

func (accessReq *AccessReq) Equal(accessReqTwo *AccessReq) bool

func (*AccessReq) FromString

func (accessReq *AccessReq) FromString(data string) error

func (*AccessReq) Normalize

func (accessReq *AccessReq) Normalize(toleratesEmptyFields bool) error

func (AccessReq) String

func (accessReq AccessReq) String() string

func (*AccessReq) Test

func (accessReq *AccessReq) Test(toleratesEmptyFields bool) error

func (*AccessReq) TestSubject

func (accessReq *AccessReq) TestSubject(toleratesEmptyFields bool) error

type AccessReqDB

type AccessReqDB struct {
	AccessReq      `yaml:",inline"`
	AccessReqInner `yaml:",inline"`
}

func (*AccessReqDB) Copy

func (accessReq *AccessReqDB) Copy() (*AccessReqDB, error)

func (*AccessReqDB) Equal

func (accessReq *AccessReqDB) Equal(accessReqTwo *AccessReqDB) bool

func (*AccessReqDB) FromString

func (accessReq *AccessReqDB) FromString(data string) error

func (AccessReqDB) String

func (accessReq AccessReqDB) String() string

type AccessReqInner

type AccessReqInner struct {
	Addr string    `yaml:"Addr" json:"addr" db:"addr" sqltype:"CHAR(45)"`
	Time time.Time `yaml:"Time" json:"time" db:"time" sqltype:"DATETIME"`
}

type DirConnSettings

type DirConnSettings struct {
	ESAMKeyPath   string `json:"esam_key_path"`
	DirAddr       string `json:"dir_addr"`
	DirPort       string `json:"dir_port"`
	TLSCaCertPath string `json:"tls_ca_cert_path"`
	VerifyKeyPath string `json:"verify_key_path"`
}

type ESAMPubKey

type ESAMPubKey []byte

func (*ESAMPubKey) Copy

func (key *ESAMPubKey) Copy() (*ESAMPubKey, error)

func (*ESAMPubKey) Equal

func (key *ESAMPubKey) Equal(keyTwo *ESAMPubKey) bool

func (*ESAMPubKey) EqualConstantTime

func (key *ESAMPubKey) EqualConstantTime(keyTwo *ESAMPubKey) bool

func (*ESAMPubKey) Len

func (key *ESAMPubKey) Len() int

func (ESAMPubKey) MarshalYAML

func (key ESAMPubKey) MarshalYAML() (interface{}, error)

func (*ESAMPubKey) Normalize

func (key *ESAMPubKey) Normalize(toleratesEmptyFields bool) error

func (*ESAMPubKey) Template

func (key *ESAMPubKey) Template() error

func (*ESAMPubKey) Test

func (key *ESAMPubKey) Test(toleratesEmptyFields bool) error

func (*ESAMPubKey) UnmarshalYAML

func (key *ESAMPubKey) UnmarshalYAML(value *yaml.Node) error

type Node

type Node struct {
	ESAMPubKey ESAMPubKey `yaml:"ESAM public key" json:"esam_pub_key" db:"esam_pub_key" sqltype:"VARBINARY(6144) NOT NULL PRIMARY KEY"`
	Name       string     `yaml:"Name" json:"name" db:"name" sqltype:"CHAR(63) NOT NULL UNIQUE"`
	SSHAddr    string     `yaml:"SSH address" json:"ssh_addr" db:"ssh_addr" sqltype:"CHAR(45)"`
	SSHPort    string     `yaml:"SSH port" json:"ssh_port" db:"ssh_port" sqltype:"CHAR(5)"`
}

func (*Node) Copy

func (node *Node) Copy() (*Node, error)

func (*Node) Equal

func (node *Node) Equal(nodeTwo *Node) bool

func (*Node) FromString

func (node *Node) FromString(data string) error

func (*Node) Normalize

func (node *Node) Normalize(toleratesEmptyFields bool) error

func (Node) String

func (node Node) String() string

func (*Node) Template

func (node *Node) Template() error

func (*Node) Test

func (node *Node) Test(toleratesEmptyFields bool) error

type NodeAuth

type NodeAuth struct {
	Node        `yaml:",inline"`
	TrustedData string `yaml:"Trusted data" json:"trusted_data"`
}

Validated to data authenticity

func (*NodeAuth) Copy

func (node *NodeAuth) Copy() (*NodeAuth, error)

func (*NodeAuth) FromString

func (node *NodeAuth) FromString(data string) error

func (*NodeAuth) Normalize

func (node *NodeAuth) Normalize(toleratesEmptyFields bool) error

func (NodeAuth) String

func (node NodeAuth) String() string

func (*NodeAuth) Test

func (node *NodeAuth) Test(toleratesEmptyFields bool) error

type NodeDB

type NodeDB struct {
	Node
	NodeSign
}

func (*NodeDB) Copy

func (node *NodeDB) Copy() (*NodeDB, error)

func (*NodeDB) Equal

func (node *NodeDB) Equal(nodeTwo *NodeDB) bool

func (*NodeDB) Normalize

func (node *NodeDB) Normalize() error

func (*NodeDB) Sign

func (node *NodeDB) Sign(key *rsa.PrivateKey) error

func (*NodeDB) Template

func (node *NodeDB) Template() error

func (*NodeDB) Test

func (node *NodeDB) Test() error

func (*NodeDB) Verify

func (node *NodeDB) Verify() error

type NodeSign

type NodeSign struct {
	ESAMPubKeySign []byte     `json:"esam_pub_key_sign" db:"esam_pub_key_sign" sqltype:"VARBINARY(4096)"`
	NameSign       []byte     `json:"name_sign" db:"name_sign" sqltype:"VARBINARY(4096)"`
	SSHAddrSign    []byte     `json:"ssh_addr_sign" db:"ssh_addr_sign" sqltype:"VARBINARY(4096)"`
	SSHPortSign    []byte     `json:"ssh_port_sign" db:"ssh_port_sign" sqltype:"VARBINARY(4096)"`
	SignSubject    ESAMPubKey `json:"sign_subject" db:"sign_subject" sqltype:"VARBINARY(6144) NOT NULL"`
}

type Tester

type Tester interface {
	Test(bool) error
}

type User

type User struct {
	ESAMPubKey        ESAMPubKey `yaml:"ESAM public key" json:"esam_pub_key" db:"esam_pub_key" sqltype:"VARBINARY(6144) NOT NULL PRIMARY KEY"`
	Name              string     `yaml:"Name" json:"name" db:"name" sqltype:"CHAR(63) NOT NULL UNIQUE"`
	Role              string     `yaml:"Role" json:"role" db:"role" sqltype:"CHAR(32) NOT NULL"`
	State             string     `yaml:"State" json:"state" db:"state" sqltype:"CHAR(32) NOT NULL"`
	SSHPubKey         string     `yaml:"SSH public key" json:"ssh_pub_key" db:"ssh_pub_key" sqltype:"TEXT"`
	PasswordHash      string     `yaml:"Password hash" json:"password_hash" db:"password_hash" sqltype:"TEXT"`
	ElevatePrivileges bool       `yaml:"Can elevate privileges" json:"elevate_privileges" db:"elevate_privileges" sqltype:"BOOLEAN"`
}

func (*User) Copy

func (user *User) Copy() (*User, error)

func (*User) Equal

func (user *User) Equal(userTwo *User) bool

func (*User) EqualWithIgnoreFields

func (user *User) EqualWithIgnoreFields(userTwo *User, ignoreFields map[string]bool) bool

Ugly but worked and simple implementation

func (*User) FromString

func (user *User) FromString(data string) error

func (*User) Normalize

func (user *User) Normalize(toleratesEmptyFields bool) error

func (User) String

func (user User) String() string

func (*User) Template

func (user *User) Template() error

func (*User) Test

func (user *User) Test(toleratesEmptyFields bool) error

func (*User) TestRole

func (user *User) TestRole(toleratesEmptyFields bool) error

func (*User) TestState

func (user *User) TestState(toleratesEmptyFields bool) error

type UserAuth

type UserAuth struct {
	User        `yaml:",inline"`
	TrustedData string `yaml:"Trusted data" json:"trusted_data"`
}

Validated to data authenticity

func (*UserAuth) Copy

func (user *UserAuth) Copy() (*UserAuth, error)

func (*UserAuth) FromString

func (user *UserAuth) FromString(data string) error

func (*UserAuth) Normalize

func (user *UserAuth) Normalize(toleratesEmptyFields bool) error

func (UserAuth) String

func (user UserAuth) String() string

func (*UserAuth) Test

func (user *UserAuth) Test(toleratesEmptyFields bool) error

type UserDB

type UserDB struct {
	User
	UserSign
}

func (*UserDB) Copy

func (user *UserDB) Copy() (*UserDB, error)

func (*UserDB) Equal

func (user *UserDB) Equal(userTwo *UserDB) bool

func (*UserDB) EqualWithIgnoreFields

func (user *UserDB) EqualWithIgnoreFields(userTwo *UserDB, ignoreFields map[string]bool) bool

func (*UserDB) Normalize

func (user *UserDB) Normalize() error

func (*UserDB) Sign

func (user *UserDB) Sign(key *rsa.PrivateKey, selfSignedFields map[string]bool) error

func (*UserDB) Template

func (user *UserDB) Template() error

func (*UserDB) Test

func (user *UserDB) Test() error

func (*UserDB) Verify

func (user *UserDB) Verify(selfSignedFields map[string]bool) error

type UserSign

type UserSign struct {
	ESAMPubKeySign        []byte     `json:"esam_pub_key_sign" db:"esam_pub_key_sign" sqltype:"VARBINARY(4096)"`
	NameSign              []byte     `json:"name_sign" db:"name_sign" sqltype:"VARBINARY(4096)"`
	RoleSign              []byte     `json:"role_sign" db:"role_sign" sqltype:"VARBINARY(4096)"`
	StateSign             []byte     `json:"state_sign" db:"state_sign" sqltype:"VARBINARY(4096)"`
	SSHPubKeySign         []byte     `json:"ssh_pub_key_sign" db:"ssh_pub_key_sign" sqltype:"VARBINARY(4096)"`
	PasswordHashSign      []byte     `json:"password_hash_sign" db:"password_hash_sign" sqltype:"VARBINARY(4096)"`
	ElevatePrivilegesSign []byte     `json:"elevate_privileges_sign" db:"elevate_privileges_sign" sqltype:"VARBINARY(4096)"`
	SignSubject           ESAMPubKey `json:"sign_subject" db:"sign_subject" sqltype:"VARBINARY(6144) NOT NULL"`
}

Jump to

Keyboard shortcuts

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