
Research
/Security News
9 Malicious NuGet Packages Deliver Time-Delayed Destructive Payloads
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.
github.com/ajjensen13/go-enumerator
Advanced tools
go-enumerator is a code generation tool designed for making constants behave more
like enums. The generated methods allow users to:
fmt.Print(x)fmt.Scan("Name", &x)x.Defined()x.Next()go-enumerator is designed to be invoked by go generate,
but it can be used as a command-line tool as well.
Additional documentation available at pkg.go.dev
Installation is easy, just install the package using the go install tool.
go install github.com/ajjensen13/go-enumerator
Below is an example of the intended use for go-enumerate.
All command line arguments are optional go generate.
The tool will use the $GOFILE, $GOPACKAGE, and $GOLINE environment variables
to find the type declaration immediately following to //go:generate comment.
//go:generate go-enumerator
type Kind int
const (
Kind1
Kind2
)
In this case, we found the Kind type, which is a suitable type for generating an enum definition for.
The following methods are created in a new file with the default file name.
// String implements fmt.Stringer
func (k Kind) String() string { /* omitted for brevity */ }
// Scan implements fmt.Scanner
func (k *Kind) Scan(ss fmt.ScanState, verb rune) error { /* omitted for brevity */ }
// Defined returns true if k holds a defined value
func (k Kind) Defined() bool { /* omitted for brevity */ }
// Next returns the next defined value after k
func (k Kind) Next() Kind { /* omitted for brevity */ }
String() and Scan() can be used in conjunction with the fmt package to parse
and encode values into human-friendly representations.
Next() can be used to loop through all defined values for an enum.
Defined() can be used to ensure that a given variable holds a defined value.
go-enumerator was inspired by stringer, which is a better String() generator. If all you need is a String() method for a numeric constant, consider using that tool instead.FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.

Security News
Socket CTO Ahmad Nassri discusses why supply chain attacks now target developer machines and what AI means for the future of enterprise security.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.