github.com/viant/toolbox@v0.34.5/kms/contract.go (about)

     1  package kms
     2  
     3  import "errors"
     4  
     5  type Resource struct {
     6  	URL       string
     7  	Parameter string
     8  	Data      []byte
     9  }
    10  
    11  type EncryptRequest struct {
    12  	Key string
    13  	*Resource
    14  	TargetURL string
    15  }
    16  
    17  type EncryptResponse struct {
    18  	EncryptedData []byte
    19  	EncryptedText string
    20  }
    21  
    22  type DecryptRequest struct {
    23  	Key string
    24  	*Resource
    25  }
    26  
    27  type DecryptResponse struct {
    28  	Data []byte
    29  	Text string
    30  }
    31  
    32  func (r *EncryptRequest) Validate() error {
    33  	if r.Key == "" {
    34  		return errors.New("key was empty")
    35  	}
    36  	if r.Resource == nil {
    37  		return errors.New("nothing to encrypt")
    38  	}
    39  	return nil
    40  }
    41  
    42  func (r *DecryptRequest) Validate() error {
    43  	if r.Key == "" {
    44  		return errors.New("key was empty")
    45  	}
    46  	if r.Resource == nil {
    47  		return errors.New("nothing to decrypt")
    48  	}
    49  	return nil
    50  
    51  }