, there seem to be just one clearly stated option to send binary data (base64) - although there is wording in that same document that suggests anything can be embedded as long as it starts with a !!customtag and can be represented in Unicode. Puppet doesn't do base64, it sends a long string of \x123\x321 etc (this is the actual string it sends, those are not hex chars but their readable form). A thread on their mailing lists suggests they are aware of the issue and consider it a bug: