Giter VIP home page Giter VIP logo

passforios's Introduction

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.
  • Support YubiKey.

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 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

passforios's People

Contributors

a-feld avatar ak1394 avatar bmwalters avatar bordam avatar davidjb avatar dependabot[bot] avatar djohs avatar evmoroz avatar filipeamoreira avatar hyiltiz avatar jakajancar avatar jordoh avatar martinnowak avatar merisbahti avatar mssun avatar pvalkone avatar raxod502 avatar recognition101 avatar simplydanny avatar tsl0922 avatar wazdra avatar wwwjfy avatar yishilin14 avatar zortacdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

passforios's Issues

Support for yubikeys?

Would it be possible to use a yubikey (in pgp/ccid mode) with this app? I take it there currently isn't any support - as I see no mention of it on the wiki.. but it would be neat if there was :D

Entries added in the app won't be deleted, when deleted outside

Create a new entry in the app and sync to your repo
Now on your computer delete or move the entry, sync again with git
Sync with the app and the entry still exists. In the case of a move to a folder, the entry will also exist in the folder now (so now you have it twice).

But syncing to the repo won't add the local entry again to the repo until you change something in the local entry.

Support iTunes File Sharing

Uploading keys using some web server is a fine option, but I think it would be much more secure to use the file sharing mechanism to get the ssh and gpg keys to the device.

App crashes when saving empty PGP Key

After saving an empty PGP key, the application crashes:

Debug info:

2017-02-22 13:46:28.102 pass[4066:71397] *** Assertion failure in -[ObjectivePGP keysFromData:], /Users/tyz/src/pass-ios/Pods/ObjectivePGP/ObjectivePGP/ObjectivePGP.m:766
2017-02-22 13:46:28.107 pass[4066:71397] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Empty data'

Also the application will continue to crash immediately after a restart

Favicon if url is set

If field "url" contains valid url then the entry should get the favicon of the website.

Let User choose if gpg files should be armored or in binary format

Hi,

i had the last days time to test the app.

one of the points that need attention (in my opinion) that the user should be able to choose in which format new created or changed secrets should be stored ... binary or armored.

I always prefer to have my ggp files armored, even if a diff of this is also useless for a human :)

greetings

Several crash issues

  1. Settings - Repository - SSH Key: Crash if URL is not a valid URL (e.g., empty).
  2. Settings - Repository - PGP Key: Crash if URL is not a valid URL (e.g., empty).

Support for folders

Pass allows the creation of passwords in folders.

For example:
’pass insert Business/cheese-whiz-factory’

Currently the app displays all passwords in the top level.

Entries cannot be deleted or moved to folders; adding to folders is unintuitive

There is no way to delete an entry or move it to another folder. When adding an entry you have to call it something like "private/Test" so that the entry gets moved to the private-folder. And this happens only after sync.
Imho this is fine behavior on the cli but in an iOS-app that should be handled differently by letting the user choose folders and even let them create them new ones.

Cannot clone repository

I am trying to clone my repository. It just fails
I tried:
ssh://$domain:/path/to/repo.git
ssh://$domain/path/to/repo.git
$domain:/path/to/repo.git
$domain/path/to/repo.git

I put the username in "username" and added an ssh-key.

Problem 1) The error-message closes itself so fast that I had to make a screenshot to finally see it
Problem 2) The error-message just says that it couldn't clone the repo, but not way
Problem 3) I'd like to add my ssh-keys like adding an armored gpg-key. I do not want to have an ssh-key-pair even so I generated just for this app lying around in the public and just protected by security through obscurity (and its passphrase)

Search only works in the current folder

When you have multiple folders, search only works in the current folder. Thus when I am in the "top folder" I cannot find entries in the subfolders.
Let's say I have the following structure
Password Store
├── private
│   ├── foo
│   ├── bar
├── something
│   ├── foo
│   └── bar
└── work
├── pass
├── is
└── cool

And I am on the level of Password store and enter "foo" in the search, I would expect that it shows me the entries:
private/foo and something/foo

Allow import of public keys from other users

Hi,

the user should be able to import more than his own public gpg key and also should be able delete public keys from his device.

in a team setup a secret stored in pass is encrypted with more than your own key.

if you change the secret or create a new one , the app should use all the public keys that are configured in this store to encrypt the secret.

as for now the app only encrypt changed/new secrets with the public key that matches the private key that is configured in the app.

greetings

Safari Extension

It'd be great to have deeper integration with Safari — allowing autofill, password generation and storing.

get pgp key to phone without webserver

hey guys,
i try to test your app and stuck at the part of the pgp key. i dont have a webserver where i can upload my keys. so i wanted to use the ascii format. is there a way how i can get it from my linux system to the iphone? it's not jailbroken. but i dont want to send them by mail to my iphone. i tried to generate a qrcode, but the keys are too big for qrencode. do you have any hints?

Can't build: 'ObjectiveGit/ObjectiveGit.h' file not found

I followed the steps in the Build section of the README. Upon building the project with Xcode, I get the following errors:

/Users/raxod502/Desktop/Code/iOS/passforios/pass/Helpers/Objective-CBridgingHeader.h:13:9: error: 'ObjectiveGit/ObjectiveGit.h' file not found
#import <ObjectiveGit/ObjectiveGit.h>
        ^
<unknown>:0: error: failed to import bridging header '/Users/raxod502/Desktop/Code/iOS/passforios/pass/Helpers/Objective-CBridgingHeader.h'

This seems to be because something is wrong with CocoaPods. In particular, the Internet suggests that a file called pods.xcconfig is supposed to be generated (it isn't), and that it can cause problems if it is missing.

I don't really know how to debug this further. Any tips would be appreciated—I'd love to get this app working on my phone (typing in my pass-generated Apple ID is getting pretty old).

Continually prompt for password

How to reproduce?

  1. Settings - About - Erase All Password Store Data
  2. Settings - Password Repository - Add a correct git repository url and a non-empty wrong username, hit "Save" and provide whatever password.

Then, Pass continually prompts for the password (not being able to "cancel" at all).

Suggestions about setting password repository

  1. Always add a "cancel" option in the "Please fill in the password of your Git account" dialog. The reason for seeing this dialog is probably "wrong repository url" or "wrong/missing username". It does not make sense if we have to try the wrong password for several times before being able to double check the git repo url or username.
  2. Before asking the password, check and make sure that both the "git repo url" field and the "username" field are non-empty. Currently, I am able to hit "Save" without both url and username.
  3. Do no go back to the "Settings" page before git clone successes." Currently, If something went wrong, users would have to open "Password Repository" again in order to edit/check the repo url or username.
  4. Help users save the time of manually entering "https://" in the git repo url field. I guess everyone has to enter "https://" anyway, right?
  5. Make suggestions for the username. It is possible to make suggestions about the "username"? For example, if the git repo url looks like "https://github.com/helloworld/xxxxx*", the corresponding username is probably "helloworld".

Wrong text encoding

Password entries are decoded as latin1 instead of utf8. This should be «проверка».

slice

crash

  1. settings -> Git Server
    if Authentication is not chosen, crash
  2. settings
    if PGP Key is not chosen, crash
  3. In the "Password Store" main frame
    if PGP passphrase is not correct, crash
  4. PGP Key URL support only https, not including http

Fresh Build. Unsupported URL protocol when connecting via. SSH

I've done a fresh build.

When I try and connect to by git server via. SSH using either a password or key files I get a "Unsupported URL protocol". I've tried everything I can think of for the Git Repository URL:

My server name is correct, listening to SSH on port 22, and has a user called "pass" with the password store repo in "pass.git" in the user's home folder.

  • server:pass.git (I think this is the right one)
  • pass@server:pass.git
  • ssh://pass@server:pass.git
  • ssh://pass@server:port/home/pass/pass.git
    ...

I found this issue and I'm wondering if the underlying libgit wasn't compiled with SSH support. Maybe Carthage needs some additional hints?

libgit2/git2go#249

password-store-temp" UserInfo={NSLocalizedDescription=Failed to clone repository from [email protected]:22/home/pass/pass.git to file:///var/mobile/Containers/Data/Application/..../Library/password-store-temp, NSUnderlyingError=0x17044fc30 {Error Domain=GTGitErrorDomain Code=-1 "Unsupported URL protocol" UserInfo={NSLocalizedDescription=Unsupported URL protocol}}}

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

Missing icon in readme.md

In the first line of readme.md <img src="icon/icon_round.png" width="76"/>, the icon file icon/icon_round.png seems to be missing.

Crash when tapping PGP botton

After a fresh start, when I tap the "PGP Key" Button the application crashes.

Here is some info from the debug window:

Terminating app due to uncaught exception 'NSGenericException', reason: 'Your application has presented a UIAlertController (<UIAlertController: 0x7ff5b8f286a0>) of style UIAlertControllerStyleActionSheet. The modalPresentationStyle of a UIAlertController with this style is UIModalPresentationPopover. You must provide location information for this popover through the alert controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem.  If this information is not known when you present the alert controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.'

I am using an iPad Air to test the application.

EDIT:
The issue is not present when application is running in the sidebar.

Integrate it better into iOS

With other password-managers like 1Password or Enpass for example, I have in some apps the possibility to directly get my password. I guess they all use some way so that apps that integrate the 1Password App Extension can speak with them as well

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.