kmip

package
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 28, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrCertificateLoad               = errors.New("failed to load certificate")
	ErrCertificateLoadRoot           = fmt.Errorf("%w: %s", ErrCertificateLoad, "root certificate")
	ErrCertificateLoadClient         = fmt.Errorf("%w: %s", ErrCertificateLoad, "client certificate")
	ErrKMIPVersionInvalid            = errors.New("invalid KMIP version")
	ErrServerHostnameIPMissing       = errors.New("both server hostname and IP are not provided")
	ErrServerPortMissing             = errors.New("server port is not provided")
	ErrRootCertMissing               = errors.New("root certificate is not provided")
	ErrClientCertMissing             = errors.New("client certificate is not provided")
	ErrClientKeyMissing              = errors.New("client private key is not provided")
	ErrKMIPReqFailure                = errors.New("kmip request failure")
	ErrKMIPGetOpFailure              = errors.New("failed to perform get operation")
	ErrKMIPDecodeFailure             = errors.New("failed to decode")
	ErrKMIPPerformCreateSymmetricKey = errors.New("failed to perform KMIP create symmetric key operation")
	ErrKMIPDecodeCreateSymmetricKey  = errors.New("failed to decode KMIP create symmetric key response")
	ErrKMIPPerformEncrypt            = errors.New("failed to perform KMIP encrypt operation")
	ErrKMIPDecodeEncrypt             = errors.New("failed to decode KMIP encrypt response")
	ErrKMIPPerformDecrypt            = errors.New("failed to perform KMIP decrypt operation")
	ErrKMIPDecodeDecrypt             = errors.New("failed to decode KMIP decrypt response")
)
View Source
var V10 = Version{Major: 1, Minor: 0} // first KMIP version
View Source
var V12 = Version{Major: 1, Minor: 2} //nolint:gomnd // KMIP version that implemented encrypt / decrypt
View Source
var V20 = Version{Major: 2, Minor: 0} //nolint:gomnd // KMIP major version change (create operation signature changed)

Functions

This section is empty.

Types

type Attributes

type Attributes struct {
	CryptographicAlgorithm kmip14.CryptographicAlgorithm
	CryptographicLength    int32
	CryptographicUsageMask kmip14.CryptographicUsageMask
}

Attributes key attributes required by Create request operation.

type Client

type Client struct {
	// contains filtered or unexported fields
}

Client is used to communicate with a KMIP speaking server.

func NewClient

func NewClient(config *Config) (*Client, error)

NewClient creates a new KMIP client and initializes all the values required for establishing connection.

func (*Client) CreateSymmetricKey

func (kc *Client) CreateSymmetricKey(length int32) (*string, error)

CreateSymmetricKey creates a symmetric key on KMIP server.

func (*Client) Decrypt

func (kc *Client) Decrypt(keyID string, data, iv []byte) (*DecryptResponse, error)

Decrypt decrypts data with an existing managed object stored by the KMIP server.

func (*Client) Encrypt

func (kc *Client) Encrypt(keyID string, data []byte) (*EncryptResponse, error)

Encrypt encrypts data with an existing managed object stored by the KMIP server.

func (*Client) GetSymmetricKey

func (kc *Client) GetSymmetricKey(keyID string) ([]byte, error)

GetSymmetricKey retrieves a symmetric key from KMIP server.

type Config

type Config struct {
	Version           Version
	IP                string
	Port              int
	Hostname          string
	Username          string
	Password          string
	ClientPrivateKey  []byte
	ClientCertificate []byte
	RootCertificate   []byte
}

Config structure used to configure a KMIP client.

type CreateRequestV20

type CreateRequestV20 struct {
	ObjectType kmip20.ObjectType
	Attributes Attributes
}

CreateRequestV20 used to Create symmetric key operation for KMIP 2.0+ servers.

type CreateResponse

type CreateResponse struct {
	UniqueIdentifier string
}

CreateResponse response message for create operation.

type DecryptRequest

type DecryptRequest struct {
	UniqueIdentifier kmip20.UniqueIdentifierValue
	Data             []byte
	IVCounterNonce   []byte
}

DecryptRequest used for Decrypt request operation.

type DecryptResponse

type DecryptResponse struct {
	UniqueIdentifier string
	Data             []byte
}

DecryptResponse response of Decrypt operation.

type EncryptRequest

type EncryptRequest struct {
	UniqueIdentifier kmip20.UniqueIdentifierValue
	Data             []byte
}

EncryptRequest used for Encrypt request operation.

type EncryptResponse

type EncryptResponse struct {
	UniqueIdentifier string
	Data             []byte
	IVCounterNonce   []byte
}

EncryptResponse response of Encrypt operation.

type GetRequest

type GetRequest struct {
	UniqueIdentifier kmip20.UniqueIdentifierValue
}

GetRequest used for Get request operation.

type GetResponse

type GetResponse struct {
	ObjectType       kmip14.ObjectType
	UniqueIdentifier string
	SymmetricKey     kmip.SymmetricKey
	PrivateKey       kmip.PrivateKey
}

GetResponse response of Get operation.

type Version

type Version struct {
	Major int
	Minor int
}

Version of the KMIP protocol.

Jump to

Keyboard shortcuts

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