Native and encrypted password manager for iOS and macOS.

Last update: Jun 26, 2022

Open Sesame

Forks Stars License

Xcode Version SwiftUI Platforms

TestFlight Website

Native and encrypted password manager for iOS and macOS.

OpenSesame

macOS

What is it?

OpenSesame is a free and powerful password manager that lets you manage your passwords with ease.

It syncs with iCloud and encrypts your data to make sure only you get access. No more required subscriptions, no more ram hogs, and no more electron versions.

Why use OpenSesame

Now more than ever, what was previously amazing native apps have become slow and big web apps. Big apps take more control away from the user and push subscriptions and other payment models without much reason. OpenSesame aims to fix that by giving a free and open source password manager that is native and performant. Still get all the great features of other password managers without all the baggage.

Features

  • iCloud Syncing
  • OTP Auth (Two Factor Authentication)
  • Safari Autofill
  • On-Device AES encryption
  • Biometrics unlock
  • Pinned accounts
  • Multiple vaults
  • Multipeer account sharing
  • Import/Export
  • Password generator
  • Credit/Debit card support
  • Notes field
  • Alternate icons
  • Customizable
  • CoreData
  • 100% SwiftUI
  • Native support for macOS and iOS.

Planned Features

  • Better password bulk deleting
  • Menubar access
  • Dropbox, Google Drive, personal server support
  • OTP Autofill
  • OTP QR codes
  • Password suggestions (detect if password is secure)
  • Compromised/breached password notice
  • Chrome & native Windows support

Requirements

  • Xcode 13+
  • macOS 12+
  • iOS 15+

License

OpenSesame is available under the MIT license. See the LICENSE.md file for more info.

Acknowledgements

OpenSesame depends on the following open-source projects:

GitHub

https://github.com/OpenSesameManager/OpenSesame
Comments
  • 1. Extract app identifiers

    This pull request extracts a number of Apple Developer Account specific values from the pbxproj to a xcconfig file.

    The extracted values include DEVELOPMENT_TEAM, APP_GROUPS and a base for the PRODUCT_BUNDLE_IDENTIFIER. The system includes a method to override them with a fallback to the current values for @EthanLipnik's account.

    Ultimately this change makes it much easier for a contributor to setup OpenSesame in their own Apple Developer Account, including the ability to run app on device.

    This change should be complete - but will require testing to make sure I've caught everything.

    Reviewed by feralbob at 2021-09-12 18:00
  • 2. Master password text field not masked

    Testing on an iPad Pro running iOS 15, on first launch when prompted to enter a new master password, the password field is not properly masked as a password and shows the full text entry.

    Reviewed by patelhiren at 2021-08-24 18:55
  • 3. Made TextField in CreatePasswordView a SecureField

    Inside CreatePasswordView (where you set a new master password), the password wasn't hidden (you could see it as you type). I changed it to a SecureField (in case it wasn't intentional).

    Reviewed by rainloreley at 2021-08-24 18:36
  • 4. App keeps crashing in the background

    Describe the bug OpenSesame seems to keep crashing in the background without actually being open. It probably wouldn't matter when the app is on the App Store because there are no alerts for this but on the TestFlight build it's really annoying lol. I don't really know when it happens, but the device seems to be doing something in the background. When I use the device in the morning I get about 10 alerts at the same time about how OpenSesame crashed.

    To Reproduce I have no idea, probably just wait?

    Expected behavior It shouldn't crash

    Screenshots Couldn't get a screen recording of it because you can't open the control center when an alert is shown, I'll try to do that tomorrow morning via my computer. Hopefully it'll work.

    46855D65-349C-433F-A05E-FFC8D3D6E705-min

    iPad (please complete the following information):

    • Device: iPad Air 4th generation
    • OS: iOS 15.0 (19A5337a)
    • Version: 1.0 Build 8

    Additional context It's possible that this is an issue caused by the iOS 15 beta, but I haven't noticed this with any other app. I think I shared a crash report once, but didn't do it again because I don't wanna spam your ASC dashboard lol

    Reviewed by rainloreley at 2021-09-01 12:26
  • 5. Question: Are Remote Notifications needed for CloudKit?

    I noticed that the AppDelegates for both iOS/macOS - perform a call to registerForRemoteNotifications - yet neither has appropriate calls to get the DeviceToken e.g. application(_:didRegisterForRemoteNotificationsWithDeviceToken:) or to handle the error.

    https://www.hackingwithswift.com/read/33/8/delivering-notifications-with-cloudkit-push-messages-ckquerysubscription suggests that the DeviceToken is silently made available to CK

    If there was no error, we call registerForRemoteNotifications(), which creates a unique device token that can be used to message this device. That device token is silently handed off to CloudKit, so we don’t need to do anything other than request it.

    I haven't seen in the app where CloudKit is using those notifications - so the probably naive question is...

    Is the call to registerForRemoteNotifications needed for CloudKit integration or are both AppDelegates not needed? (and could the RemoteNotification entitlement be removed too?)

    Reviewed by feralbob at 2021-08-30 01:42
  • 6. Fix Toolbar Appearance on macOS

    The toolbar in the supplementary view does not display correctly.

    The standard macOS appearance (as seen in apps such as Mail.app and Xcode 13) is to have separate sections in the toolbar for each view in the NavigationView. In OpenSesame, the toolbar appears as one continuous section (aside from the sidebar).

    Current TestFlight Build: Screen Shot 2021-10-06 at 6 52 59 PM

    This PR Fixes that issue, giving the Toolbar the expected macOS appearance. Note that you may have to adjust the password list's width in order for it to look right (I think it's because macOS tries to restore the column width to its previous value).

    Fixed version (this PR): Screen Shot 2021-10-06 at 7 37 31 PM

    Reviewed by MichaelJBerk at 2021-10-06 23:37
  • 7. "Enjoying Opensesame" button not appearing correctly on macOS

    My guess is that it needs to use plainButtonStyle in order to display properly, but I could be wrong.

    (Also, I think it's supposed to be "Enjoying" and not "Enjoing")

    Screenshots Screen Shot 2021-10-06 at 7 31 14 PM

    • macOS Monterey (21A5522h)
    Reviewed by MichaelJBerk at 2021-10-06 23:34
  • 8. UI: Spacing between account detail labels

    I think the account detail labels are a bit too cramped and could use slightly more spacing around them. A few more pixels between would probably be enough. And maybe a separator between the email and password labels?

    OpenSesame Account Details

    Reviewed by JohJakob at 2021-09-01 11:46
  • 9. No option to dismiss "Forgot your password?" alert on lock screen

    Bug description When clicking the little "i" at the top right on the lock screen view, it shows an alert with an option to reset the password, but there's no way for the user to cancel the operation other than relaunching the app.

    To Reproduce Steps to reproduce the behavior:

    1. Open the app (or click the lock icon when already in the app)
    2. Click the "i" icon at the top

    Expected behavior There should be an option to dismiss the alert and to not reset the password. I clicked on it because I was curious what it is. Maybe the "Reset password" option should also have the descructive attribute to make it red. Is there a backup of the data stored when resetting the password? Because currently it's a bit easy to reset it and delete all data which is really bad when you store all logins within the app.

    Screenshots 17AFA7D7-0D48-4D34-BF0B-8973B02EE001

    Device

    • Device: iPad Air 4th generation
    • OS: iOS 15.0 Beta (19A5337a)
    • App Version 1.0 Build 8
    Reviewed by rainloreley at 2021-08-31 09:21
  • 10. Feature Request: Account names

    Idea

    Account names for saved logins

    Why?

    Sometimes a login doesn't have to have a website associated with it (e.g. computer logins, database credentials,...). Adding a account name field would

    1. remove the need to for a website url
    2. enable users to differentiate between multiple accounts on the same platform without needing to look at the username (e.g. Twitter) (even more helpful if the username is the same which can be the case for Microsoft accounts)
    Reviewed by rainloreley at 2021-08-24 19:14
  • 11. Users can set the master password to blank which essentially locks out the app for anything but FaceID

    On my first app open, I just hit enter in the master password, and I’m unable to change it. Also, I don’t think users should be able to do this.

    Edit: forgot to mention that the reason it locks out the master password box is because it lets you set the password to blank, but on reopen, it doesn’t let you enter blank text in the master unlock page. How can I change the password after?

    Reviewed by jawshoeadan at 2021-08-24 05:15
  • 12. Separate account name and website

    Describe the solution you’d like Similar to how it’s done in 1Password, I would like the account/login name and website to be separate. For some websites, I have multiple accounts that I want to clearly label inside OpenSesame. Additionally, the account name (and website URL) should be editable. Right now, only the username and password fields are editable.

    Reviewed by JohJakob at 2022-03-06 11:50
  • 13. Cannot import passwords from Safari

    When trying to import passwords from a CSV file generated by Safari, OpenSesame shows all entries, but clicking the Import button has no effect whatsoever.

    To Reproduce Steps to reproduce the behaviour:

    1. Export passwords from Safari
    2. Select FileImport…Web Browser… in OpenSesame
    3. Select the exported CSV file
    4. In the modal showing all entries, click Import

    Expected Behaviour When clicking Import, OpenSesame should import all passwords from the CSV file.

    System Information

    • macOS 12.2.1 Monterey
    • Safari 15.3 (17612.4.9.1.8)
    • Version 1.1.1 (36)
    Reviewed by JohJakob at 2022-03-05 16:23
  • 14. On iOS app doesn’t add an item if the app is locked in the background

    Describe the bug On iOS app doesn’t add an item if the app is locked in the background

    To Reproduce

    1. Open app
    2. Start adding an account
    3. Minimize the app (it is locked now)
    4. Open the app again
    5. Dialog is still on top, but "Add" button does nothing. Underneath the dialog is the lock screen.

    Expected behavior Lockscreen should be on top of the dialog. And it should be possible to add that item after unlocking.

    Smartphone (please complete the following information):

    • Device: iPhone 12
    • OS: iOS 15
    Reviewed by Loskir at 2021-09-21 15:50
  • 15. macOS requires manual iCloud group setting even though Info.plist autogenerates the correct one.

    image It seems that the only solution is to manually set the iCloud group. All the code should be working but for macOS it doesn't. Hopefully a new Xcode version will help. Opening an issue

    Originally posted by @EthanLipnik in https://github.com/OpenSesameManager/OpenSesame/issues/25#issuecomment-917745550

    Reviewed by EthanLipnik at 2021-09-13 00:33
KeePassium is a KeePass-compatible password manager for iOS
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.

Jun 20, 2022
WalletBase - An app which reads 'swl' format encrypted information files.

Wallet Base What is this? Wallet Base is an app which reads swl format encrypted information files. It does not create or edit them. Why does this exi

Jan 3, 2022
Simple, secure password and data management for individuals and teams

Padloc Simple, secure password and data management for individuals and teams (formerly known as Padlock). This repo is split into multiple packages: P

Jun 20, 2022
Password generator and strength tester
Password generator and strength tester

Password-Generator Password generator and strength tester Description This was a

Feb 1, 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

Feb 23, 2022
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

Feb 3, 2022
A realistic password strength estimator.
A realistic password strength estimator.

.................................................bbb.................... .zzzzzzzzzz..xxx....xxx....cccccccc..vvv....vvv..bbb.........nnnnnnn.... ....

Apr 30, 2022
Cybr/Secure - A simple but powerful secure password generator
Cybr/Secure - A simple but powerful secure password generator

A simple but powerful secure password generator. You get the option of password length (10 to 20 characters) and whether you include numbers, symbols, uppercase and/or lowercase letters. Simply tap the lock icon to generate a secure password and then tap to copy the password.

Feb 16, 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

May 31, 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

May 31, 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

Jun 15, 2022
A wrapper to make it really easy to deal with iOS, macOS, watchOS and Linux Keychain and store your user's credentials securely.

A wrapper (written only in Swift) to make it really easy to deal with iOS, macOS, watchOS and Linux Keychain and store your user's credentials securely.

Mar 29, 2022
Simple Swift wrapper for Keychain that works on iOS, watchOS, tvOS and macOS.
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

Jun 22, 2022
Valet lets you securely store data in the iOS, tvOS, or macOS Keychain without knowing a thing about how the Keychain works.

Valet Valet lets you securely store data in the iOS, tvOS, watchOS, or macOS Keychain without knowing a thing about how the Keychain works. It’s easy.

Jun 19, 2022
Partial rewrite of the `plutil` utility on macOS
Partial rewrite of the `plutil` utility on macOS

SwiftPlist Description This tool is a partial rewrite of the plutil utility on macOS. It allows you to view property list (plist) files in any format

Sep 1, 2021
Find who executes a target binary inside your MacOS.

whoexec Whoexec is a tool that will monitor every exec call inside MacOS by using the latest Endpoint Security Framework, with this it's able to detec

Feb 12, 2022
A super simple tool for macOS Swift developers to check validity of a Gumroad-issued software license keys

Gumroad License Validator Overview A super simple tool for macOS Swift developers to check validity of a Gumroad-issued software license keys Requirem

May 15, 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.

Apr 29, 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

Jun 21, 2022