A Swift package to simplify data encryption.
  • Swift 99.8%
  • Objective-C 0.2%
Find a file
2025-04-08 00:31:32 -06:00
.github/workflows chore: Moving to Forgejo: Auto-close new GitHub PRs 2025-04-07 23:56:36 -06:00
ItemEncrypt Removed KeychainHandle; Use [something else](https://github.com/kishikawakatsumi/KeychainAccess) instead 2024-10-09 13:45:13 -06:00
ItemEncrypt.xcodeproj Updated the version number for distribution. 2020-02-29 13:30:37 -07:00
ItemEncrypt.xcworkspace Reorganized API 2019-05-24 08:27:16 -06:00
ItemEncryptTests Removed KeychainHandle; Use [something else](https://github.com/kishikawakatsumi/KeychainAccess) instead 2024-10-09 13:45:13 -06:00
.editorconfig Prefer tabs over spaces, for accessibility 2024-10-09 13:14:36 -06:00
.gitignore fix: Add .build to gitignore (Swift CLI tools) 2025-04-07 23:43:47 -06:00
.swiftlint.yml Added 'Package.swift' 2020-02-29 11:56:11 -07:00
.travis.yml Updated some documentation, semantic Salt, IV, and KeyData type aliases, and added a subscript to the KeychainHandle. 2019-06-07 15:24:36 -06:00
FUNDING.yml feat: Add FUNDING.yml 2025-04-08 00:23:29 -06:00
LICENSE Update LICENSE 2019-05-26 22:48:22 -06:00
Package.resolved Removed KeychainHandle; Use [something else](https://github.com/kishikawakatsumi/KeychainAccess) instead 2024-10-09 13:45:13 -06:00
Package.swift Update to Swift 5.8 2024-10-09 13:51:38 -06:00
README.md doc: Call out mirror 2025-04-08 00:31:32 -06:00

ItemEncryptor

A Swift package to simplify data encryption.

A Swift API for encrypting arbitrary data and data types.

I built an Encoder implementation based upon Swift's Encoder types. (Think JSONEncoder and JSONSerialization.) Any Encodable type can be turned into Data, and encrypted! Quickly and easily derive encryption keys (EncryptionKey objects) from user passwords, encrypt or decrypt arbitrary Codable types (with EncryptionEncoder and EncryptionDecoder), or do the same with arbitrary data or streams (using EncryptionSerialization). Keys may safely be stored and retrieved in the system Keychain using KeychainHandle, but the user is primarily responsible for knowing their password.

Contributing

This project lives primarily at git.average.name. A read-only mirror also exists on GitHub. Issues or pull requests should be filed at git.average.name. You may sign in or create an account directly, or use one of several OAuth 2.0 providers.