Jump to content

Age Encryption: Difference between revisions

From Torben's Wickie
mNo edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Generate Key Pair==
== Generate Key Pair==
  age-keygen -pq -o ~/age-260820.key
  age-keygen -pq -o ~/age-260801.key
  # chmod 600 age-260820.key already included
  # chmod 600 age-260801.key already included
  age-keygen -y ~/age-260820.key > ~/age-260820.pub
  age-keygen -y ~/age-260801.key > ~/age-260801.pub


== Encrypt ==
== Encrypt ==
  tar czf - mydir | age -R ~/age-260820.pub -o mydir.tar.gz.age
# tar.gz
  tar czf - mydir | age -R ~/age-260801.pub -o mydir.tar.gz.age-260801
# tar.xz
tar cf - mydir | xz -6 | age -R ~/age-260801.pub -o mydir.tar.xz.age-260801
# or raise to -9 or even -9e if size matters more than time
 
== Encrypt with filtered file list ==
FILELIST=$(mktemp)
trap 'rm -f "$FILELIST"' EXIT
find . \
  \( -path "./asdf" \
  -o -path "*/.git" \
  -o -path "*/node_modules" \
  \) -prune -o \
  -type f \
  ! -name ".DS_Store" \
  ! -name "*.pyc" \
  ! -name "pnpm-lock.yaml" \
  -print >"$FILELIST"
tar -cf - -T "$FILELIST" | xz -6 | age -R ~/age-260801.pub -o mydir.tar.xz.age-260801


== Decrypt ==
== Decrypt ==
  age -d -i ~/age-260820.key mydir.tar.gz.age | tar xzf -
# tar.gz
  age -d -i ~/age-260801.key mydir.tar.gz.age-260801 | tar xzf -
# tar.xz
age -d -i ~/age-260801.key mydir.tar.xz.age-260801 | xz -d | tar xf -
 
== Shell Functions for reuse ==
age_pack()  { tar cf - "$1" | xz -6 | age -R ~/age-260801.pub -o "${1%/}.tar.xz.age-260801"; }
age_unpack() { age -d -i ~/age-260801.key "$1" | xz -d | tar xf -; }

Latest revision as of 15:10, 20 August 2026

Generate Key Pair

age-keygen -pq -o ~/age-260801.key
# chmod 600 age-260801.key already included
age-keygen -y ~/age-260801.key > ~/age-260801.pub

Encrypt

# tar.gz
tar czf - mydir | age -R ~/age-260801.pub -o mydir.tar.gz.age-260801
# tar.xz
tar cf - mydir | xz -6 | age -R ~/age-260801.pub -o mydir.tar.xz.age-260801
# or raise to -9 or even -9e if size matters more than time

Encrypt with filtered file list

FILELIST=$(mktemp)
trap 'rm -f "$FILELIST"' EXIT

find . \
  \( -path "./asdf" \
  -o -path "*/.git" \
  -o -path "*/node_modules" \
  \) -prune -o \
  -type f \
  ! -name ".DS_Store" \
  ! -name "*.pyc" \
  ! -name "pnpm-lock.yaml" \
  -print >"$FILELIST"

tar -cf - -T "$FILELIST" | xz -6 | age -R ~/age-260801.pub -o mydir.tar.xz.age-260801

Decrypt

# tar.gz
age -d -i ~/age-260801.key mydir.tar.gz.age-260801 | tar xzf -
# tar.xz
age -d -i ~/age-260801.key mydir.tar.xz.age-260801 | xz -d | tar xf -

Shell Functions for reuse

age_pack()   { tar cf - "$1" | xz -6 | age -R ~/age-260801.pub -o "${1%/}.tar.xz.age-260801"; }
age_unpack() { age -d -i ~/age-260801.key "$1" | xz -d | tar xf -; }