code: func (l *Linter) walk(der []byte) {
  	var err error
  	var d asn1.RawValue
  
  	for len(der) > 0 {
  		der, err = asn1.Unmarshal(der, &d)
  		if err != nil {
  			// Errors should be included in the report, but allow format checking when
  			// data has been decoded.
  			l.e.Err(err.Error())
  			if len(d.Bytes) == 0 {
  				return
  			}
  		}
  
  		// A compound is an ASN.1 container that contains other structs.
  		if d.IsCompound {
  			l.walk(d.Bytes)
  		} else {
  			l.CheckFormat(d)
  		}
  	}
  }
docs: // walk is a recursive call that walks over the ASN1 structured data until no
  // remaining bytes are left. For each non compound it will call the ASN1 format
  // checker.