@@ -21,17 +21,19 @@ import (
2121// TODO: Delete everything that is unused in here
2222
2323const (
24- envVaultAddr = "VAULT_ADDR"
25- envVaultToken = "VAULT_TOKEN"
26- envVaultClientCert = "VAULT_CLIENT_CERT"
27- envVaultClientKey = "VAULT_CLIENT_KEY"
28- envVaultCACert = "VAULT_CACERT"
29- envVaultAppRoleID = "VAULT_APPROLE_ID"
30- envVaultAppRoleSecretID = "VAULT_APPROLE_SECRET_ID" // #nosec G101
31- envVaultNamespace = "VAULT_NAMESPACE"
24+ envVaultAddr = "VAULT_ADDR"
25+ envVaultToken = "VAULT_TOKEN"
26+ envVaultClientCert = "VAULT_CLIENT_CERT"
27+ envVaultClientKey = "VAULT_CLIENT_KEY"
28+ envVaultCACert = "VAULT_CACERT"
29+ envVaultAppRoleID = "VAULT_APPROLE_ID"
30+ envVaultAppRoleSecretID = "VAULT_APPROLE_SECRET_ID" // #nosec G101
31+ envVaultNamespace = "VAULT_NAMESPACE"
32+ envVaultTransitEnginePath = "VAULT_TRANSIT_ENGINE_PATH"
3233
3334 defaultCertMountPoint = "cert"
3435 defaultPKIMountPoint = "pki"
36+ defaultTransitEnginePath = "transit"
3537 defaultAppRoleMountPoint = "approle"
3638 defaultK8sMountPoint = "kubernetes"
3739)
@@ -93,6 +95,8 @@ type ClientParams struct {
9395 MaxRetries * int
9496 // Name of the Vault namespace
9597 Namespace string
98+ // TransitEnginePath specifies the path to the transit engine to perform key operations.
99+ TransitEnginePath string
96100}
97101
98102type Client struct {
@@ -110,6 +114,7 @@ func NewClientConfig(cp *ClientParams, logger hclog.Logger) (*ClientConfig, erro
110114 AppRoleAuthMountPoint : defaultAppRoleMountPoint ,
111115 K8sAuthMountPoint : defaultK8sMountPoint ,
112116 PKIMountPoint : defaultPKIMountPoint ,
117+ TransitEnginePath : defaultTransitEnginePath ,
113118 }
114119 if err := mergo .Merge (cp , defaultParams ); err != nil {
115120 return nil , status .Errorf (codes .Internal , "unable to merge client params: %v" , err )
@@ -370,15 +375,13 @@ func (c *Client) CreateKey(ctx context.Context, spireKeyID string, keyType Trans
370375 }
371376
372377 // TODO: Handle errors here such as key already exists
373- // TODO: Make the transit engine path configurable
374- _ , err := c .vaultClient .Logical ().WriteWithContext (ctx , fmt .Sprintf ("/transit/keys/%s" , spireKeyID ), arguments )
378+ _ , err := c .vaultClient .Logical ().WriteWithContext (ctx , fmt .Sprintf ("/%s/keys/%s" , c .clientParams .TransitEnginePath , spireKeyID ), arguments )
375379 return err
376380}
377381
378382func (c * Client ) GetKey (ctx context.Context , spireKeyID string ) (string , error ) {
379383 // TODO: Handle errors here
380- // TODO: Make the transit engine path configurable
381- res , err := c .vaultClient .Logical ().ReadWithContext (ctx , fmt .Sprintf ("/transit/keys/%s" , spireKeyID ))
384+ res , err := c .vaultClient .Logical ().ReadWithContext (ctx , fmt .Sprintf ("/%s/keys/%s" , c .clientParams .TransitEnginePath , spireKeyID ))
382385 if err != nil {
383386 return "" , err
384387 }
@@ -428,8 +431,7 @@ func (c *Client) SignData(ctx context.Context, spireKeyID string, data []byte, h
428431 }
429432
430433 // TODO: Handle errors here
431- // TODO: Make the transit engine path configurable
432- sigResp , err := c .vaultClient .Logical ().WriteWithContext (ctx , fmt .Sprintf ("/transit/sign/%s/%s" , spireKeyID , hashAlgo ), body )
434+ sigResp , err := c .vaultClient .Logical ().WriteWithContext (ctx , fmt .Sprintf ("/%s/sign/%s/%s" , c .clientParams .TransitEnginePath , spireKeyID , hashAlgo ), body )
433435 if err != nil {
434436 return nil , status .Errorf (codes .Internal , "transit engine sign call failed: %v" , err )
435437 }
0 commit comments