// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0

package keymanager

import (
	"context"

	wrapping "github.com/hashicorp/go-kms-wrapping/v2"
)

const (
	KeyID = "root"
)

type KeyManager interface {
	// Returns a wrapping.Wrapper which can be used to perform key-related operations.
	Wrapper() wrapping.Wrapper
	// RetrievalToken is the material returned which can be used to source back the
	// encryption key. Depending on the implementation, the token can be the
	// encryption key itself or a token/identifier used to exchange the token.
	RetrievalToken(ctx context.Context) ([]byte, error)
}
