FiloSottile / age

A simple, modern and secure encryption tool (and Go library) with small explicit keys, no config options, and UNIX-style composability.
https://age-encryption.org
BSD 3-Clause "New" or "Revised" License
15.79k stars 477 forks source link

Weird characters in place of terminal escape sequences on Windows Console #474

Open BuriedInTheGround opened 1 year ago

BuriedInTheGround commented 1 year ago

Environment

What were you trying to do

I was trying to encrypt a file with a passphrase.

What happened

On both Windows PowerShell and cmd.exe, terminal escape sequences do not work by default. As a result, I obtained the following output, containing weird characters on screen.

age-escape-sequences-issue-powershell age-escape-sequences-issue-cmd

As a side note, I actually discovered this issue while trying to use the same functions as yours to ask for a passphrase. I strongly believe that this behavior is present since the introduction of escape sequences in 349ed5ed3fcee75238ea83c59c38efedc3bfccae. This commit post-dates age version v1.0.0, so it may be the case that not many people have encountered this issue, but I think that it would negatively impact the UX for Windows users from now on (indeed, v1.1.0 and v1.1.1 just came out).

I'm going to make a PR to address this issue as a follow-up.

P.S.: sorry for not disclosing this issue before the v1.1.0 release, I didn't see it coming!