Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

base64 wraps differently depending on platform #140

Closed
dannycoates opened this issue Jul 1, 2022 · 2 comments
Closed

base64 wraps differently depending on platform #140

dannycoates opened this issue Jul 1, 2022 · 2 comments

Comments

@dannycoates
Copy link

This line https://github.com/elasticdog/transcrypt/blob/main/transcrypt#L151 produces different output depending on the platform. On mac it outputs a single line, while on linux it wraps at 76 chars. I believe openssl was previously wrapping at 64 chars. Unfortunately the flags to set the wrap width are different as well, -b on mac and -w on linux.

It causes git to see the files as "modified" when committed on one platform and pulled on another.

@jmurty
Copy link
Collaborator

jmurty commented Jul 1, 2022

Wow, thanks for catching this @dannycoates! Our tests always run on a single platform at a time, not cross platform, and don't check the exact Base64 format so we'd never notice this until real-world cross-platform use.

I started looking into how to detect the right base64 flags to use for different platforms, before I realised that OpenSSL itself will do it with openssl base64 – and will hopefully do it the same way on all platforms without fuss.

Can you check if the latest version on main (commit 00a2cbb) fixes this cross-platform problem?

@dannycoates
Copy link
Author

Yep, openssl base64 works for me. Thanks!

@jmurty jmurty closed this as completed Jul 2, 2022
Erotemic pushed a commit to Erotemic/transcrypt that referenced this issue Jul 3, 2022
jmurty added a commit that referenced this issue Oct 15, 2022
# By James Murty (18) and others
# Via GitHub (1) and James Murty (1)
* main: (26 commits)
  Centralise load and save of password into functions #141
  Fix date of 2.2.0 release
  Ensure tests use "main" as default branch name #143
  Use OpenSSL for B64 encoding not `base64` which differs between Linux and Mac #140
  Use core attributesFile from worktree (#137)
  Document `xxd` requirement, and make optional with OpenSSL < 3 (#138)
  Prepare for 2.2.0 release
  Fix when using OpenSSL 3 which no longer embeds salt in output (#135)
  Consolidate all git operation scripts into a single transcrypt script
  Fix handling of small files and files with null in first 8 bytes (#116)
  Improve command hint to fix secret files not encrypted in index (#120) (#130)
  Remove Ubuntu 16.04 LTS from test matrix (#123)
  Configure default Git branch name for macOS tests in GitHub
  Handle rename of primary branch from "master" to "main"
  Ensure Git index is up-to-date before dirty repo  check #37 (#109)
  Fix incorrect salt when partially staged files are commited (#119)
  Use shorthand for grep options for broader compatibility (#121)
  Let user set a custom path to openssl #108
  Install entire transcrypt script into repository
  Change version to indicate development "pre-release" status
  ...

# Conflicts:
#	README.md
#	tests/_test_helper.bash
#	tests/test_cleanup.bats
#	tests/test_crypt.bats
#	tests/test_init.bats
#	tests/test_not_inited.bats
#	transcrypt
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants