Basic ASN.1 INTEGER implementation for Go, free of magnitude limits.
func main() {
// INITIALIZE NEW INTEGER INSTANCE
m, err := New(58986943) // can also init using string, [u]int64, *big.Int
if err != nil {
return
}
// MARSHAL TO ASN.1 BYTES
var asn1Bytes []byte
if asn1Bytes, err = m.Marshal(); err != nil {
return
}
fmt.Printf("%v", asn1Bytes)
// Output: [48 6 2 4 3 132 17 191]
// UNMARSHAL ASN.1 BYTES BACK TO INTEGER
var ui INTEGER
if err = ui.Unmarshal(asn1Bytes); err != nil {
return
}
fmt.Printf("%s", ui)
// Output: 58986943
}