code: func parseDSA(in []byte) (out PublicKey, rest []byte, err error) {
  	var w struct {
  		P, Q, G, Y *big.Int
  		Rest       []byte `ssh:"rest"`
  	}
  	if err := Unmarshal(in, &w); err != nil {
  		return nil, nil, err
  	}
  
  	key := &dsaPublicKey{
  		Parameters: dsa.Parameters{
  			P: w.P,
  			Q: w.Q,
  			G: w.G,
  		},
  		Y: w.Y,
  	}
  	return key, w.Rest, nil
  }
docs: // parseDSA parses an DSA key according to RFC 4253, section 6.6.