code: func newArmorEncoderStream(encoded io.Writer, header string, footer string, params armorParams) (io.WriteCloser, error) {
  	ret := &armorEncoderStream{
  		buf:     new(bytes.Buffer),
  		encoded: encoded,
  		footer:  footer,
  		params:  params,
  	}
  	ret.encoder = basex.NewEncoder(params.Encoding, ret.buf)
  	if _, err := fmt.Fprintf(encoded, "%s%c ", header, params.Punctuation); err != nil {
  		return nil, err
  	}
  	return ret, nil
  }
docs: // newArmorEncoderStream makes a new Armor encoding stream, using the given encoding
  // Pass it an `encoded` stream writer to write the
  // encoded stream to.  Also pass a header, and a footer string.  It will
  // return an io.WriteCloser on success, that you can write raw (unencoded) data to.
  // An error will be returned if there is trouble writing the header to encoded.
  //
  // To make the output look pretty, a space is inserted every 15 characters of output,
  // and a newline is inserted every 200 words.