Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 90 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,24 @@
<div align="center">

<img src="assets/logo.png" width="520" alt="PangoLock — Folder Lock & Encryption" />
<a href="https://suriya4code.github.io/PangoLock/"><img src="assets/readme/hero.webp" width="100%" alt="PangoLock: a 3D ball of pangolin scales curling shut, next to the headline “Curl your files into armor.”" /></a>

# PangoLock

**Hide and password-lock any folder on your Mac — like a pangolin curling into an armored ball.**

[![Website](https://img.shields.io/badge/Website-suriya4code.github.io%2FPangoLock-c8945a?style=for-the-badge&logo=githubpages&logoColor=white&labelColor=1c150f)](https://suriya4code.github.io/PangoLock/)

[![CI](https://github.com/suriya4code/PangoLock/actions/workflows/ci.yml/badge.svg)](https://github.com/suriya4code/PangoLock/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)
[![Platform: macOS 13+](https://img.shields.io/badge/macOS-13%2B-blue.svg)](#requirements)
[![Swift 5.9](https://img.shields.io/badge/Swift-5.9-orange.svg)](#requirements)
[![AES-256-GCM](https://img.shields.io/badge/crypto-AES--256--GCM-c8945a.svg)](SECURITY.md)
[![Zero-knowledge](https://img.shields.io/badge/password-zero--knowledge-5cc58a.svg)](SECURITY.md)

**100% free & open source. Every feature. No paywall, no premium tier, no account.**

[**Website**](https://suriya4code.github.io/PangoLock/) · [**Build from source**](#build--run) · [**Security model**](SECURITY.md) · [**Architecture**](docs/ARCHITECTURE.md) · [**Sponsor**](https://github.com/sponsors/suriya4code)

<br />

<img src="assets/pangolock_demo.gif" width="720" alt="PangoLock demo — hide and encrypt a folder in one click" />
Expand All @@ -25,20 +31,86 @@ PangoLock is a native macOS app that hides and **AES‑256 encrypts** your priva
folders and files behind a master password — with a zero‑knowledge design where
your password is never stored and your data is encrypted at rest.

## Hide vs. Lock

| | 🙈 **Hide** | 🔒 **Lock** |
|---|---|---|
| **What it does** | Removes the item from Finder, strips all permissions (`chmod 000`) and adds a Spotlight skip marker | Encrypts it with AES‑256‑GCM into a managed `.plock` blob, verifies the result, then removes the plaintext |
| **Who can't reach it** | Finder, video players, media scanners, search | Anyone without your password |
| **Strength** | Strong against ordinary apps, **not encryption** | **The real defense** — use it for anything sensitive |
| **Undo** | Show restores everything | Unlock decrypts and restores to the original path |

## Features

- 🔒 **Lock & encrypt** unlimited folders with **AES‑256‑GCM**; optional per‑folder password.
- 🙈 **Hide & show** — one click removes an item from Finder **and** strips its access (chmod 000) + adds a Spotlight skip marker, so other apps (video players, media scanners, search) can't reach it; Show restores everything.
- 🔑 **Zero‑knowledge master password** (PBKDF2‑210k); **Touch ID** unlock; idle auto‑lock.
- 🧯 **Fail‑safe by design** — verify‑before‑delete, atomic writes, journaled moves: an interrupted operation never loses data.
- 🛟 **Recovery key** for a forgotten password; **encrypted backups**; **export everything** so deleting the app never strands your data.
- 💳 **Encrypted wallet** for logins, cards, notes & licenses, with a strong‑password generator.
- 💾 **Portable USB lockers** (`.pangolocker`) and **encrypted sharing** (`.pangoshare`, with a password hint).
- 🕵️ **Intruder snapshot** after repeated failed unlocks (opt‑in), **stealth mode** (hide Dock icon), and **panic** lock‑&‑hide.
- 🧹 **Secure shredder** and **trace cleaner**; **cloud‑awareness** warnings for iCloud/Dropbox/Drive/OneDrive paths.
<table>
<tr>
<td width="33%" valign="top">

### 🔒 Lock & encrypt
Unlimited folders with **AES‑256‑GCM**; optional per‑folder password.

</td>
<td width="33%" valign="top">

### 🙈 Hide & show
Gone from Finder **and** other apps: permissions stripped (`chmod 000`), Spotlight skipped. Show restores everything.

</td>
<td width="33%" valign="top">

### 🔑 Zero‑knowledge
Master password never stored (PBKDF2‑210k); **Touch ID** unlock; idle auto‑lock.

</td>
</tr>
<tr>
<td valign="top">

### 🧯 Fail‑safe
Verify‑before‑delete, atomic writes, journaled moves: an interrupted operation never loses data.

</td>
<td valign="top">

### 🛟 Recovery & backups
**Recovery key** for a forgotten password, **encrypted backups**, and **export everything** so deleting the app never strands your data.

</td>
<td valign="top">

### 💳 Encrypted wallet
Logins, cards, notes & licenses, with a strong‑password generator.

</td>
</tr>
<tr>
<td valign="top">

### 💾 Portable & shareable
USB lockers (`.pangolocker`) and encrypted sharing (`.pangoshare`, with a password hint).

</td>
<td valign="top">

### 🕵️ Intruder & stealth
Opt‑in **intruder snapshot** after failed unlocks, **stealth mode** (hide Dock icon), and **panic** lock‑&‑hide.

</td>
<td valign="top">

### 🧹 Shredder & cleaner
Secure shredder, trace cleaner, and **cloud‑awareness** warnings for iCloud/Dropbox/Drive/OneDrive paths.

</td>
</tr>
</table>

## Security

<p align="center">
<img src="assets/readme/pipeline.svg" width="100%" alt="Encryption pipeline: your password, PBKDF2-SHA256 with 210,000 iterations, HKDF per item, AES-256-GCM, then verify before deleting the plaintext" />
</p>

PangoLock encrypts everything at rest with **AES‑256‑GCM**, derives keys with
**PBKDF2‑HMAC‑SHA256 (210,000 iterations)**, stores secrets in the macOS
**Keychain**, runs in the **App Sandbox**, and makes **no logging calls** that
Expand All @@ -49,6 +121,14 @@ are in **[docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)**.
> Honest positioning: PangoLock protects your data **at rest** on your Mac. It is
> not a defense against a fully compromised or root‑level‑owned machine.

<details>
<summary><b>Architecture diagram</b></summary>
<br />

<img src="assets/architecture.png" alt="PangoLock architecture: SwiftUI views, AppModel, services, and encrypted stores" />

</details>

## Requirements

- macOS 13 (Ventura) or later — universal (Apple Silicon + Intel)
Expand Down
Binary file added assets/readme/hero.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
63 changes: 63 additions & 0 deletions assets/readme/pipeline.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading