mirror of
https://github.com/gregtwallace/apc-p15-tool.git
synced 2025-01-22 08:14:08 +00:00
27 lines
499 B
Go
27 lines
499 B
Go
package asn1obj
|
|
|
|
import (
|
|
"encoding/asn1"
|
|
"math/bits"
|
|
)
|
|
|
|
// BitString returns a BIT STRING of the content
|
|
func BitString(content []byte) []byte {
|
|
bs := asn1.BitString{
|
|
Bytes: content,
|
|
}
|
|
|
|
// drop trailing 0s by removing them from overall length
|
|
if len(content) > 0 {
|
|
trailing0s := bits.TrailingZeros8(content[len(content)-1])
|
|
bs.BitLength = 8*len(content) - trailing0s
|
|
}
|
|
|
|
// should never error
|
|
asn1result, err := asn1.Marshal(bs)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
return asn1result
|
|
}
|