code: func Marshal(otp *HOTP) ([]byte, error) {
  	var asnHOTP struct {
  		Key     []byte
  		Counter *big.Int
  		Digits  int
  	}
  	asnHOTP.Key = otp.Key[:]
  	asnHOTP.Counter = new(big.Int).SetUint64(otp.Counter())
  	asnHOTP.Digits = otp.Digits
  	return asn1.Marshal(asnHOTP)
  }
docs: // Marshal serialises an HOTP key value as a DER-encoded byte slice.