Documentation
¶
Overview ¶
Package decrypt is the external API other Go programs can use to decrypt SOPS files. It is the only package in SOPS with a stable API.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Data ¶
Data is a helper that takes encrypted data and a format string, decrypts the data and returns its cleartext in an []byte. The format string can be `json`, `yaml`, `ini`, `dotenv` or `binary`. If the format string is empty, binary format is assumed.
func DataWithFormat ¶
DataWithFormat is a helper that takes encrypted data, and a format enum value, decrypts the data and returns its cleartext in an []byte.
func File ¶
File is a wrapper around Data that reads a local encrypted file and returns its cleartext data in an []byte
Example ¶
package main
import (
"encoding/json"
"github.com/getsops/sops/v3/logging"
"github.com/sirupsen/logrus"
)
var log *logrus.Logger
func init() {
log = logging.NewLogger("DECRYPT")
}
type configuration struct {
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Age float64 `json:"age"`
Address struct {
City string `json:"city"`
PostalCode string `json:"postalCode"`
State string `json:"state"`
StreetAddress string `json:"streetAddress"`
} `json:"address"`
PhoneNumbers []struct {
Number string `json:"number"`
Type string `json:"type"`
} `json:"phoneNumbers"`
AnEmptyValue string `json:"anEmptyValue"`
}
func main() {
var (
confPath string = "./example.json"
cfg configuration
err error
)
confData, err := File(confPath, "json")
if err != nil {
log.Fatalf("cleartext configuration marshalling failed with error: %v", err)
}
err = json.Unmarshal(confData, &cfg)
if err != nil {
log.Fatalf("cleartext configuration unmarshalling failed with error: %v", err)
}
if cfg.FirstName != "John" ||
cfg.LastName != "Smith" ||
cfg.Age != 25.4 ||
cfg.PhoneNumbers[1].Number != "646 555-4567" {
log.Fatalf("configuration does not contain expected values: %+v", cfg)
}
log.Printf("%+v", cfg)
}
Types ¶
This section is empty.