code: func GenerateMissingKeys(existing [][]byte) ([]PrivateKey, error) {
  	var result []PrivateKey
  	hasDSA := false
  
  	for _, x := range existing {
  		_, typeTag, ok := gotrax.ExtractShort(x)
  		if ok && typeTag == dsaKeyTypeValue {
  			hasDSA = true
  		}
  	}
  
  	if !hasDSA {
  		var priv DSAPrivateKey
  		if err := priv.Generate(rand.Reader); err != nil {
  			return nil, err
  		}
  		result = append(result, &priv)
  	}
  
  	return result, nil
  }
docs: // GenerateMissingKeys will look through the existing serialized keys and generate new keys to ensure that the functioning of this version of OTR will work correctly. It will only return the newly generated keys, not the old ones