code: func ParsePrivateKey(in []byte) (index []byte, ok bool, key PrivateKey) {
  	var typeTag uint16
  	index, typeTag, ok = gotrax.ExtractShort(in)
  	if !ok {
  		return in, false, nil
  	}
  
  	switch typeTag {
  	case dsaKeyTypeValue:
  		key = &DSAPrivateKey{}
  		index, ok = key.Parse(in)
  		return
  	}
  
  	return in, false, nil
  }
docs: // ParsePrivateKey is an algorithm indepedent way of parsing private keys