Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 1.38 KB

README.md

File metadata and controls

51 lines (37 loc) · 1.38 KB

go-conceal

Go Reference GitHub

Guard against logging secrets in Go.

conceal (verb):
  1. to hide; withdraw or remove from observation
  2. to keep secret; to prevent or avoid disclosing

Project Overview

Module github.com/shoenig/go-conceal can be used to help protect against sensitive values from being exposed in places they shouldn't be, particularly in log lines.

Getting Started

The conceal package can be gotten with go get:

$ go get github.com/shoenig/go-conceal

Example Usage

// protect a string value
text := conceal.New("abc123")
fmt.Sprintf("%s", text) // prints "<redacted>"
fmt.Sprintf("%#v", text) // prints "conceal.Text{}"

// protect a byte slice
b := conceal.NewBytes([]byte{1, 2, 3})
fmt.Sprintf("%s", b) // prints "<redacted>"
fmt.Sprintf("%#v", b) // prints "conceal.Bytes{}"

// get access to the underlying secret values
doThings(text.Unveil(), b.Unveil())

Contributing

The github.com/shoenig/go-conceal module is always improving with new features and error corrections. For contributing bug fixes and new features please file an issue.

License

The github.com/shoenig/go-conceal module is open source under the BSD-3-Clause license.