Pass for iOS - an iOS client compatible with Pass command line application.

Overview

Pass

GitHub release Gitter Build Status Donate

Pass is an iOS client compatible with ZX2C4's Pass command line application. It is a password manager using GPG for encryption and Git for version control.

Pass for iOS is available in App Store with the name "Pass - Password Store", and both iPhone and iPad are supported.

Download on the App Store

You can also help us test beta versions through TestFlight.

Features

  • Compatible with the Password Store command line tool.
  • View, copy, add, and edit password entries.
  • Encrypt and decrypt password entries by PGP keys.
  • Synchronize with your password Git repository.
  • User-friendly interface: search, long press to copy, copy and open link, etc.
  • Support one-time password tokens (two-factor authentication codes).
  • Autofill in Safari/Chrome and supported apps.

Screenshots

Usages

For more, please read the wiki page.

Building Pass for iOS

  1. Install Carthage, Go, SwiftLint, and SwiftFormat: brew install carthage go swiftlint swiftformat.
  2. Install dependencies via Carthage. Therefore, execute carthage update and carthage bootstrap --platform iOS --use-xcframeworks in the root directory of the project.
  3. Run ./scripts/gopenpgp_build.sh to build GopenPGP.
  4. Open the pass.xcodeproj file in Xcode.
  5. Build & Run.

License

MIT

Comments
  • 0.10.0 (18) update broke gpg decryption

    0.10.0 (18) update broke gpg decryption

    After the update it asked me for my GPG password again (it was saved before) and no matter what I enter, it fails to decrypt the key. I made sure the entered password is indeed correct.

    opened by ismail 46
  • Failed to clone repository .... Underlying error: Failed to start SSH session [Especially Github repo]

    Failed to clone repository .... Underlying error: Failed to start SSH session [Especially Github repo]

    Hi folks,

    i am getting this error at trying to clone a git repo via ssh-key which i had uploaded:

    Failed to clone repository .... Underlying error: Failed to start SSH session: Unable to exchange encryption keys

    Does anyone here have a tip for me?

    thanks

    hartmut

    opened by snakelab 45
  • Cannot view any stored pass item after setup

    Cannot view any stored pass item after setup

    Tested environments

    • the beta version pass for iOS 0.12.0 (8) from testflight on iOS 14.4 (has this issue)
    • the stable version pass for iOS 0.11.0 (11) from App Store on iOS 14.4 (has this issue)
    • iOS 11.4 running Pass for iOS 0.9.0 (21) (works without this issue)

    Steps to reproduce:

    1. Set up a remote https git repo at gitlab via username and password (id_rsa 4096 key and id_ed25519 keys don't seem to be supported... but that is irrelevant to this).
    2. Also exported the gpg keys via local server URL (using ruby -run -e httpd . -p 8080 and then http://<local ip>:8080/a.asc etc.). The import seemed fine, except it warned me not to use http but use https instead.
    3. Then I clicked on one pass item in the Passwords menu. It asked for the PGP secret key Passphrase.
    4. I filled in the password correctly (I tried 20+ times, even via a bluetooth keyboard); the same password unlocks my gpg on my computer fine).

    Result

    However, once I finish inserting my password and click OK, I get:

    Cannot show password
    gopengp: unable to add locked key to a keyring
    

    Expected results:

    The item opens, and shows the item view, where I could copy or show the password.

    Things I have tried to fix/rule out:

    • Guessing it may have been talking about iOS keychain, I checked my keychain. It is synced fine with iCloud, and works fine.
    • Tried several times after deleting the GPG key and several ways to export the gpg key (via key id, or the email etc.).
    • Also tried importing via iTunes (dropped the keys into the Pass Beta app then clicked iTunes import which showed a prompt saying "success").
    • Tried deleting the app (along with its data) and completely setting up afresh.

    None of those worked. Not sure what went wrong here.

    Let me know what more info I can provide to help debug or resolve this issue with better documentation.

    Not sure if it is relevant, but I was using an old iOS 11.4 running Pass for iOS 0.9.0 (21) before which worked (and still works) fine; I just migrated (via backing up to iTunes, ehm, it is called Music now and works directly from within Finder) from that to iOS 14.4.

    opened by hyiltiz 32
  • Unable to clone from a server that specifies a custom ssh port

    Unable to clone from a server that specifies a custom ssh port

    I am running a git server on my NAS that hosts a copy of my passwords repo. My NAS uses a custom port for ssh (2200) and i cannot seem to get the repo to be cloned in the app. I've tried specifying the port in the URL (ssh://my-nas.local:2200/git/passwords.git) and this fails as well. Since the instructions and error message i'm presented with (failed to clone repo) are not very much help; is there any information about this on setup?

    opened by samdmarshall 22
  • Crashes on iOS 10.3.1

    Crashes on iOS 10.3.1

    Hi,

    thanks for your great work on Pass for iOS.

    I noticed a problem with the application on my iPhone 6 that was recently updated to iOS 10.3.1. After cloning my Pass data through SSH, the application instantly crashes and fails to start again unless deleted. I'm using password-based authentication for SSH and a self hosted, bare git repository (which was worked fine before).

    I'm also using the latest TestFlight build.

    bug 
    opened by steffen9000 20
  • Upgraded GopenPGP, removed Gopenpgpwrapper glue code

    Upgraded GopenPGP, removed Gopenpgpwrapper glue code

    These changes eliminate the need for glue code, upgrade to the new GopenPGP API and improve error handling. The code could probably be a bit cleaner (I'm not a Swift dev so I don't know what would be the idiomatically correct way) but it works. The fix for #287 is also implemented so IDs are displayed correctly.

    opened by ZortacDev 17
  • Underlying error: unsupported URL protocol

    Underlying error: unsupported URL protocol

    Hi,

    I’ve just upgraded to v0.4.0 (4) on my iPhone and discovered an error that my Git remote URL does not seem to work anymore. I’m using the SSH variant: ssh://git@host/pass.git with an SSH key.

    When I try to clone, I get an error message: Faild to clone repository from ssh://git@host/pass.git to file:///... Underlying error: unsupported URL protocol.

    Maybe this has something to do with the updated dependencies? Nothing has changed at the server side, as the pass CLI is working normally.

    Please let me know, if I can provide further information to help solving this bug. For now I leave the state as is (broken).

    @apfohl

    to be tested 
    opened by apfohl 17
  • Crashed when trying to import

    Crashed when trying to import "gnu-dummy" S2K key pairs

    Environment

    iOS Version: 10.2.1 (14D27) Pass for iOS: 0.2 (24)

    Steps

    1. Export PGP public and private key (4096 RSA key generated by GnuPG) in ASCII-Armor format using the instructions:
    gpg --export -a <keyname>
    gpg --export-secret-keys -a <keyname>
    
    1. Paste the key into the two edit controls of "PGP Key" window

    2. Press "Save" in the upper right corner

    3. Enter passphrase in the "PassPhrase" dialog, and press "OK", then press "Save"

    Expected Result

    The PGP key is saved

    Got Result

    The program crashed

    Crash Log

    pass_ios_crash_log.txt

    bug 
    opened by h12w 17
  • 0.8.0 crashes on decrypt secret

    0.8.0 crashes on decrypt secret

    Since updating to 0.8.0 (2), I've tried 0.8.0 (3) as well, I can't decrypt any secrets.

    Found this due to not being able to AutoFill any passwords. Later found that as soon as I try to decrypt a secret (click on it in the Pass app) the screen goes black and Pass crashes.

    Reverting to 0.7.0 (15) everything is working again.

    Phone iPhone SE iOS version 12.4.1 (16G102) Pass 0.8.0 (2) and 0.8.0 (3)

    Happy to provide any more information if needed.

    fixed in TestFlight pgp 
    opened by kraem 16
  • More sources for setting PGP key

    More sources for setting PGP key

    The current methods for setting PGP key are insufficient.

    1. Linux users do not have iTunes, so iTunes file sharing is unavailable.
    2. I personally couldn't get asc-key-to-qr-code-gif working. It produced gifs, but Pass wouldn't recognize them.
    3. Not everyone has a domain with which to host HTTPS (some people use their home computer and local network as the Git server). Plus, I know gpg-serve-key has several protections to make sure it's not a problem, but letting the keys be accessible on the web just seems stupid to me.

    I suggest at least the following two methods:

    1. Allow getting the key from Files, so that users can get the key from wherever they want. Plus Files now allows you to access smb shares, so they could be accessed that way too.
    2. SSH. We use SSH for Git, so we should be able to use SSH to SCP the key from the server.
    3. Non-secure HTTP. When on a trusted WiFi network like a home network, this is acceptable.
    enhancement 
    opened by ElvishJerricco 15
  • IOS 14 - IPhone 12 Pro

    IOS 14 - IPhone 12 Pro

    When selecting passwords from the keyboard to auto insert into the username and password, keyboard does not appear. You don't have the ability to type or search for a password.

    The only way you can type to search is to open the PASS app directly then copy the password and then go back to the app you need it for.

    image

    bug fixed in TestFlight 
    opened by stellarg0ld 14
  • Add support for Yubikey command chaining

    Add support for Yubikey command chaining

    I'd like to propose a PR that adds support for command chaining for Yubikeys, which should resolve some issues reported in #42 in particular "Failed to execute decipher" when using large keys.

    These changes, however will force dropping support for iOS 12.x and moving to 13.0 as a minimum supported version, due to use of async/await, etc.

    opened by ak1394 0
  • Funding for passage support

    Funding for passage support

    Hi 🤗

    I wanted to ask if there is a way to fund development of features. Specifically I would be interested in support for passage instead of pass as I would like to use age instead of gpg. Unfortunately I'm not an iOS developer, just a regular user. So I'd like to contribute financially 💰 Also, I have no idea how much effort this would take. So feel free to dismiss this feature request Thank you for this great app! 😊

    Cheers, David

    opened by DavidHeresy 0
  • local file storage ?

    local file storage ?

    apologies if there's already an issue for this, i wasn't able to find one .

    i'd like to be able to use a local repo, like one synced with mobius (syncthing) not with git

    is this possible ?

    opened by theotheroracle 1
  • passstore in AWS CodeCommit

    passstore in AWS CodeCommit

    image

    I am trying to get Passforios set up for my password store which is hosted in AWS CodeCommit.

    I have it working OK with pass locally, but when I try and set it up in passforios I get the above error. Does anyone have any ideas ?

    opened by i-am-meikle 0
  • Wrong (outdated) user suggested in Safari

    Wrong (outdated) user suggested in Safari

    A while ago I changed my email address for my PayPal login, and consequently updated the entry in Pass as well.

    However, whenever I go to PayPal to login, it still suggests the old email address. No such entry exists anymore, and I already deleted the website data for PayPal from Safari. What else would be caching this?

    57BCE51D-8425-432B-8A6C-0303825BC783

    Also, if I select the key icon to show other logins, it does list both the wrong and new one, but it lists them all dozens of times.

    92248211-5E38-434E-B2D1-3D20B7FA0B5D

    Choosing the correct one here works for this particular login, but next time it'll suggest the wrong one again.

    opened by Airblader 1
Releases(v0.12.0)
Owner
Mingshen Sun
Pass for iOS, Apache Teaclave (incubating)
Mingshen Sun
Simple command line to generate random password.

pwgen Simple command line to generate random password. âžœ Bootstrap pwgen n5aR[[email protected]@fj âžœ Bootstrap pwgen 32 f0)th54[wpX.Zf99nj

Lakr Aream 2 Dec 19, 2022
KeePassium is a KeePass-compatible password manager for iOS

KeePassium is a KeePass-compatible password manager for iOS. It offers automatic database synchronization, respect to privacy and premium user experience.

KeePassium 839 Jan 8, 2023
A utility that creates an arm64-compatible version of Minecraft

Minecraft arm64 This utility patches Minecraft versions to use lwjgl libraries compiled for arm64. Usage: minecraft-arm64 [version folder] Example to

Cole Feuer 0 Jan 24, 2022
PassDrop is a fully-featured secure password management system, compatible with the free KeePass 1.x (Classic) and multi-platform KeePassX desktop applications.

passdrop This is a modern, updated build of Rudis Muiznieks's PassDrop application. PassDrop is a fully-featured secure password management system, co

Chad Austin 33 Sep 23, 2022
TouchID used easy on one line in your ViewController.

TouchIDExtension TouchID used easy on one line in your ViewController. ##Installation At this moment, You can install only a way, manually. For instal

Joan Molinas 65 Feb 26, 2020
Two-Factor Authentication Client for iOS

Authenticator Two-Factor Authentication Client for iOS. Authenticator is a simple, free, and open source two-factor authentication app. It helps keep

Matt Rubin 770 Dec 30, 2022
iOS library for device fingerprinting. Does not require server APIs to work, fully client-side operation.

Lightweight iOS library for local device fingerprinting Installation (CocoaPods) # Podfile pod 'FingerprintJS' Note: If you've never used CocoaPods fo

FingerprintJS 45 Dec 17, 2022
A client library to multiplex connections from and to iOS devices

libusbmuxd A client library for applications to handle usbmux protocol connections with iOS devices. Features This project is a client library to mult

libimobiledevice 469 Dec 30, 2022
A key value store for storing per-developer environment and application keys

A key value store for enviroment and application keys. Its good security practice to keep production keys out of developer hands. CocoaPods-keys makes

Orta Therox 1.5k Dec 20, 2022
Framework for biometric authentication (via TouchID) in your application

Features Requirements Communication Installation Usage Intro Biometric authentication availability Feature enabled/disabled for biometric authenticati

Igor Vasilenko 29 Sep 16, 2022
Send key events to any running macOS application.

KeySender An extremely simple micro package that enables you to send key events to any running application. Install Add the following to your Package.

Jordan Baird 5 Jul 31, 2022
Oversecured Vulnerable iOS App is an iOS app that aggregates all the platform's known and popular security vulnerabilities.

Description Oversecured Vulnerable iOS App is an iOS app that aggregates all the platform's known and popular security vulnerabilities. List of vulner

Oversecured Inc 135 Dec 15, 2022
RSA public/private key encryption, private key signing and public key verification in Swift using the Swift Package Manager. Works on iOS, macOS, and Linux (work in progress).

BlueRSA Swift cross-platform RSA wrapper library for RSA encryption and signing. Works on supported Apple platforms (using Security framework). Linux

Kitura 122 Dec 16, 2022
CCCryptor (AES encryption) wrappers for iOS and Mac in Swift. -- For ObjC, see RNCryptor/RNCryptor-objc

RNCryptor Cross-language AES Encryptor/Decryptor data format. The primary targets are Swift and Objective-C, but implementations are available in C, C

null 3.3k Dec 30, 2022
Safe and easy to use crypto for iOS and macOS

Swift-Sodium Swift-Sodium provides a safe and easy to use interface to perform common cryptographic operations on macOS, iOS, tvOS and watchOS. It lev

Frank Denis 483 Jan 5, 2023
Helper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS.

Helper functions for storing text in Keychain for iOS, macOS, tvOS and WatchOS This is a collection of helper functions for saving text and data in th

Evgenii Neumerzhitckii 2.3k Dec 28, 2022
Simple Swift wrapper for Keychain that works on iOS, watchOS, tvOS and macOS.

KeychainAccess KeychainAccess is a simple Swift wrapper for Keychain that works on iOS and OS X. Makes using Keychain APIs extremely easy and much mor

Kishikawa Katsumi 7.2k Dec 30, 2022
A simple Swift Keychain Wrapper for iOS, watchOS, and OS X.

Latch A simple Swift 2.0 Keychain Wrapper for iOS, watchOS 2, and OS X. Usage A proper example of how to use Latch can be seen in the tests. import La

Danielle 56 Oct 25, 2022
A simple wrapper for the iOS Keychain to allow you to use it in a similar fashion to User Defaults. Written in Swift.

SwiftKeychainWrapper A simple wrapper for the iOS / tvOS Keychain to allow you to use it in a similar fashion to User Defaults. Written in Swift. Prov

Jason 1.5k Dec 30, 2022