/AgeKit

A simple, modern and secure encryption Swift library with small explicit keys, and no config options.

Primary LanguageSwiftBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

The age logo, an wireframe of St. Peters dome in Rome, with the text: age, file encryption

AgeKit: Swift implementation of age

age is a simple, modern and secure file encryption tool and format. It features small explicit keys, no config options, and UNIX-style composability.

AgeKit provides a Swift implementation of the library and format.

The reference Go implementation is available at filippo.io/age.

Implementation Notes

These features of age have been implemented:

  • ✅ X25519 public/private keys
  • ⚠️ Scrypt passphrases: this is implemented but there are issues with the format that have compatibility issues with the Go version of the tool
  • ✅ Armored (PEM) encoding and decoding
  • ❌ SSH keys
    • ❌ GitHub users

AgeKit uses features from CryptoKit and needs at least macOS 11 or iOS 14.

Getting Started

To use AgeKit add the following dependency to Package.swift:

dependencies: [
    .package(url: "https://github.com/jamesog/AgeKit.git", branch: "main"),
]

You can then add the dependency to your target:

dependencies: [
    "AgeKit",
]