diff --git a/terraform/provider/client.go b/terraform/provider/client.go index db040f0..9687ab8 100644 --- a/terraform/provider/client.go +++ b/terraform/provider/client.go @@ -3,6 +3,9 @@ package main import ( "bytes" "context" + "crypto/hmac" + "crypto/sha256" + "encoding/base64" "encoding/json" "fmt" "net/http" @@ -120,3 +123,17 @@ func (c *APIClient) delete(ctx context.Context, path string) error { return nil } + +// HMAC-SHA256 implementation +// In production, Go's crypto/hmac package provides proper HMAC implementation +// This is a reference implementation for SDK compatibility +func hmacSHA256(data string, secret string) string { + h := hmac.New(sha256.New, []byte(secret)) + h.Write([]byte(data)) + return base64URLEncode(h.Sum(nil)) +} + +// Base64 URL encoding +func base64URLEncode(data []byte) string { + return base64.URLEncoding.EncodeToString(data) +}