[squeak-dev] base64 encoding and CRs

Tobias Pape Das.Linux at gmx.de
Sat Aug 22 08:22:24 UTC 2020


> On 22.08.2020, at 09:50, Tobias Pape <Das.Linux at gmx.de> wrote:
> 
> Hi
> 
>> On 22.08.2020, at 06:35, tim Rowledge <tim at rowledge.org> wrote:
>> 
>> 
>> 
>>> On 2020-08-21, at 6:30 PM, Phil B <pbpublist at gmail.com> wrote:
>>> 
>>> Tim,
>>> 
>>> Correct, base64 encoding only emits a subset of printable characters (see https://en.wikipedia.org/wiki/Base64#Base64_table)  At your option, you can also insert CR's into a base64 string which should be ignored on decoding. (as was common for various email clients to do back in the day)
>>> 
>>> Phil
>> 
>> 
>>> On 2020-08-21, at 6:29 PM, Vanessa Freudenberg <vanessa at codefrau.net> wrote:
>>> 
>>> Hi Tim,
>>> 
>>> our encoder might not be producing cr's, but base64 payloads in the wild often have lines no longer than 80 characters, so before decoding it makes sense to remove that. 
>>> 
>>> Vanessa
>> 
>> Hunh. Fascinating. So maybe there is a tiny bit of sense to the code I was peering tiredly at. Though given it was creating the base64 string right there, probably not in this case. I do love how the software word is so full of kludge upon jury-rig upon WAG!
>> 
>> Thanks for the enlightenment. 
> 
> Look at the raw email I'm just replying to:
> 
> =-=-=-=
> 
> From: tim Rowledge <tim at rowledge.org>
> Message-Id: <5CAB7909-4B1B-4556-B725-5BC204440AA0 at rowledge.org>
> Subject: Re: [squeak-dev] base64 encoding and CRs
> Content-Type: text/plain; charset="utf-8"
> Content-Transfer-Encoding: base64
> 
> Cgo+IE9uIDIwMjAtMDgtMjEsIGF0IDY6MzAgUE0sIFBoaWwgQiA8cGJwdWJsaXN0QGdtYWlsLmNv
> bT4gd3JvdGU6Cj4gCj4gVGltLAo+IAo+IENvcnJlY3QsIGJhc2U2NCBlbmNvZGluZyBvbmx5IGVt
> aXRzIGEgc3Vic2V0IG9mIHByaW50YWJsZSBjaGFyYWN0ZXJzIChzZWUgaHR0cHM6Ly9lbi53aWtp
> cGVkaWEub3JnL3dpa2kvQmFzZTY0I0Jhc2U2NF90YWJsZSkgIEF0IHlvdXIgb3B0aW9uLCB5b3Ug
> Y2FuIGFsc28gaW5zZXJ0IENSJ3MgaW50byBhIGJhc2U2NCBzdHJpbmcgd2hpY2ggc2hvdWxkIGJl
> IGlnbm9yZWQgb24gZGVjb2RpbmcuIChhcyB3YXMgY29tbW9uIGZvciB2YXJpb3VzIGVtYWlsIGNs
> aWVudHMgdG8gZG8gYmFjayBpbiB0aGUgZGF5KQo+IAo+IFBoaWwKCgo+IE9uIDIwMjAtMDgtMjEs
> IGF0IDY6MjkgUE0sIFZhbmVzc2EgRnJldWRlbmJlcmcgPHZhbmVzc2FAY29kZWZyYXUubmV0PiB3
> cm90ZToKPiAKPiBIaSBUaW0sCj4gCj4gb3VyIGVuY29kZXIgbWlnaHQgbm90IGJlIHByb2R1Y2lu
> ZyBjcidzLCBidXQgYmFzZTY0IHBheWxvYWRzIGluIHRoZSB3aWxkIG9mdGVuIGhhdmUgbGluZXMg
> bm8gbG9uZ2VyIHRoYW4gODAgY2hhcmFjdGVycywgc28gYmVmb3JlIGRlY29kaW5nIGl0IG1ha2Vz
> IHNlbnNlIHRvIHJlbW92ZSB0aGF0LiAKPiAKPiBWYW5lc3NhCgpIdW5oLiBGYXNjaW5hdGluZy4g
> U28gbWF5YmUgdGhlcmUgaXMgYSB0aW55IGJpdCBvZiBzZW5zZSB0byB0aGUgY29kZSBJIHdhcyBw
> ZWVyaW5nIHRpcmVkbHkgYXQuIFRob3VnaCBnaXZlbiBpdCB3YXMgY3JlYXRpbmcgdGhlIGJhc2U2
> NCBzdHJpbmcgcmlnaHQgdGhlcmUsIHByb2JhYmx5IG5vdCBpbiB0aGlzIGNhc2UuIEkgZG8gbG92
> ZSBob3cgdGhlIHNvZnR3YXJlIHdvcmQgaXMgc28gZnVsbCBvZiBrbHVkZ2UgdXBvbiBqdXJ5LXJp
> ZyB1cG9uIFdBRyEKClRoYW5rcyBmb3IgdGhlIGVubGlnaHRlbm1lbnQuIAoKdGltCi0tCnRpbSBS
> b3dsZWRnZTsgdGltQHJvd2xlZGdlLm9yZzsgaHR0cDovL3d3dy5yb3dsZWRnZS5vcmcvdGltClN0
> cmFuZ2UgT3BDb2RlczogVURGOiBVc2UgRGlzayBmb3IgRnJpc2JlZQoKCgo=
> 
> =-=-=-=-=
> 
> Wrapping Base64 is _extremely_ common.
> Virtually half the  SSL Certificates are delivered that way… Pgp keys, signatures, SSH keys, … you name it :)
> 
Also: https://en.wikipedia.org/wiki/Base64#Variants_summary_table

Best regards
	-Tobias



More information about the Squeak-dev mailing list