WalletBase - An app which reads 'swl' format encrypted information files.

Related tags

Security WalletBase
Overview

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

The software for that file format has long been out of production. I had a file I wanted to read and thought it would be a fun project to figure out the format and create a SwiftUI-based app to present the content.

So if you can read the encrypted file is it insecure?

Not at all. I know the password required to decrypt the content.

So is the file secure?

Not really. It was fine for its time, but the form of AES (a good encryption mechanism) that it uses lacks some modern improvements which means it would be easier to crack. Also, and this depends on the content of the file, but it appears that in nearly all cases an attacker could use some analysis to find the encrypted form of text known to be the word "Password", which would be handy when identiying a simple target to check when attempting to crack the encryption. It might be reasonable to say that encrypting the names of common field types wasn't a good choice. But, you have one of these files and are trying to open it, so it's reasonable to assume you have already accepted the security of the file format.

Is this software safe?

It would require bad judgement for me to say it is safe. You read the code and decide how you feel about it. It certainly could be worse. It certainly could be better.

How could it be better?

That's out of the scope of my expertise. I'm not trained in secure sensitive data management. Right now, decrypted content gets copied too much. It is limited, but if the decrypted content only existed in the C String that it initially decrypted to that would be better than moving it around in Swift String instances. C memory should also be securely wiped as soon as possible, which pretty much isn't happening at all right now and would go hand-in-hand with keeping decrypted content solely in C Strings. Once the encrypted content is limited to C String storage, a new View would be needed to render text directly from a C String ensuring there is no copying. Care should probably also be taken to avoid decrypted data being paged out to other storage. There are probably other cool best practicies for data security as well.

What's up with the three-letter prefix? This isn't Objective-C.

The project is largely constructed to allow future storage and encryption mechanisms to be plugged in via Swift protocols. As the current content is for files with an swl file extension, the related files and some type names have an Swl prefix to specify the format they are for. Don't confuse it at all with traditional Objective-C naming prefixes as the purpose is entirely different.

Why do the file names not always match the type names?

Swift does not allow multiple files with the same name, so when the SwlDatabase type contains a Category subtype and the hypothetical future SuperSecureDatabase type could also contain a Category subtype, the file names for both cannot simply be Category.swift. Naming it SwlDatabaseCategory.swift would be annoying since it is already in the Database/Swl group, so giving it a minimal unique prefix to differentiate the files is where we end up, with SwlCategory.swift.

Can I contribute to the code?

Sure. Feel free to submit PRs to add features, add support for other file formats, add security, etc. As long as the code is clean and safe it'll probably be a good addition. Adding read-write support or OTP are perfectly welcome, to give some examples of what is not out-of-scope. Please use SwitFormat with the default settings to format any files which are added or modified.

How about more documentation?

Yes please. I have missed basic documentation in some places, but as little free time as I have for this project it would never be publicly released if I waited until I thought it was perfect.

How about unit tests?

Yes please. I think the original software could be used to create a nice sample file with a known password which would

You might also like...
An easy-to-use, open-source two-factor authentication app designed specifically for iOS.
An easy-to-use, open-source two-factor authentication app designed specifically for iOS.

Tofu An easy-to-use, open-source two-factor authentication app designed specifically for iOS. Tofu generates one-time passwords to help you protect yo

A privacy-focused app using Apple's soon-to-be-released contact tracing framework.
A privacy-focused app using Apple's soon-to-be-released contact tracing framework.

A privacy-focused app using Apple's soon-to-be-released contact tracing framework.

A Swift sample code to reads ISO 10303-21 exchange structures (STEP P21 files for AP242) split into multiple files using external references approach.

multipleP21ReadsSample A Swift sample code to reads ISO 10303-21 exchange structures (STEP P21 files for AP242) split into multiple files using extern

A SwiftUI app that reads iOS/watchOS/tvOS device model information from Xcode you select.
A SwiftUI app that reads iOS/watchOS/tvOS device model information from Xcode you select.

iVariant A SwiftUI app that reads iOS/watchOS/tvOS device model information from Xcode you select. Preview License iVariant is licensed under MIT. Cop

A simple iOS App that reads from the Test Flight News API

README Table of contents General info Unit Testing Technologies Revision Updates Setup General info SpaceFlight is a simple app built using the MVVM d

 Circles: E2E encrypted social networking
Circles: E2E encrypted social networking

E2E encrypted social networking built on Matrix. Safe, private sharing for your friends, family, and community.

Decrypt application encrypted binaries on macOS when SIP-enabled.

appdecrypt is a tool to make decrypt application encrypted binaries on macOS when SIP-enabled

Native and encrypted password manager for iOS and macOS.
Native and encrypted password manager for iOS and macOS.

Open Sesame Native and encrypted password manager for iOS and macOS. What is it? OpenSesame is a free and powerful password manager that lets you mana

Native and encrypted password manager for iOS and macOS.
Native and encrypted password manager for iOS and macOS.

Open Sesame Native and encrypted password manager for iOS and macOS. What is it? OpenSesame is a free and powerful password manager that lets you mana

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.

ChatSecure ChatSecure is a free and open source XMPP messaging client for iOS that integrates OTR and OMEMO encrypted messaging support, and has optio

A simple Swift sample code to reads ISO 10303-21 exchange structure (STEP P21) file for AP242 schema.

simpleP21ReadSample A simple sample code to reads ISO 10303-21 exchange structure (STEP P21) file for AP242 schema. by Tsutomu Yoshida, Minokamo Japan

CLI for AMDRyzenCPUPowerManagement that reads wattage, temperature and frequencies

amd-cpu-data A very small application to talk to the "AMDRyzenCPUPowerManagement" kext for getting CPU wattage, temperature and frequency. Is more or

Nobetci Eczacim is open-source App Store Application which users can get pharmacy information and location easily and safely.

Pharmacy-On-Duty Nobetci Eczacim Project Description This project designed for make it easier for people to search for a pharmacy on duty. App Store A

Localization/I18n: Incrementally update/translate your Strings files from .swift, .h, .m(m), .storyboard or .xib files.
Localization/I18n: Incrementally update/translate your Strings files from .swift, .h, .m(m), .storyboard or .xib files.

Installation • Configuration • Usage • Build Script • Donation • Migration Guides • Issues • Contributing • License BartyCrouch BartyCrouch incrementa

BeatboxiOS - A sample implementation for merging multiple video files and/or image files using AVFoundation

MergeVideos This is a sample implementation for merging multiple video files and

NotionDrive - A swift package that can upload files to Notion.so or download files from Notion.so

NotionDrive NotionDrive is a swift package that can upload files to Notion.so or

A lightweight app to play videos from the Files app in a better (dark) interface which avoids losing your playback position.
A lightweight app to play videos from the Files app in a better (dark) interface which avoids losing your playback position.

Playerly Playerly is a very lightweight Swift app that allows you to select a file (video or movie) from the built in Document Browser, and play it in

Manipulates the undocumented interchange format for the Apple Notes app.

NotesArchive A Swift package for reading and writing an undocumented interchange format for the Apple Notes app in macOS 12 Monterey1. Enabling the De

Owner
null
Convert .deb apps to .ipa files, on iOS, locally

DebtoIPA Convert .deb apps to .ipa files, on iOS, locally Usage Download .deb that contains .app file. You will get an error if you try importing othe

Matthew Anisovich 256 Jan 8, 2023
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
APT repository app for jailbroken iOS devices

Find Your Repos! RepoFinder is here to bring you a seamless way to add all of your favorite repositories right into the package manager of your choice

Jacob Singer 25 Dec 20, 2022
Simple class to check if app has been cracked, being debugged or enriched with custom dylib

iOS-App-Security-Class Simple class to check if iOS app has been cracked, being debugged or enriched with custom dylib and as well detect jailbroken e

Unhandled Exception 74 Mar 11, 2022
Use Apple FaceID or TouchID authentication in your app using BiometricAuthentication.

BiometricAuthentication Use Apple FaceID or TouchID authentication in your app using BiometricAuthentication. It's very simple and easy to use that ha

Rushi Sangani 804 Dec 30, 2022
Demotivator: A simple app for practice

Demotivator This is a simple app for practice. Programmatically Quick recap: .Ph

Dmitry Yatsyuk 0 Dec 17, 2021
The IDAGIO WatchOS app using swift

IDAGIORedesignWatchOS I redesigned the IDAGIO WatchOS app as an exercise Old App

Francesco Junior Iaccarino 0 Dec 23, 2021
CryptoTrack - iOS app using API to receive updated crypto prices

CryptoTrack Tools used: Swift Xcode by Jose Sahagun jsahagun.io.

Jose Sahagun 0 Jan 3, 2022
CryptoExchange - A fully functional structure for Crypto Exchange app without using many third party assests

cryptoExchange A fully functional structure for Crypto Exchange app without usin

Shwait Kumar 0 Jan 6, 2022
The minimalistic, secure and open-source two-factor authentication app.

Einmal /ˈainmaːl/ German: once The minimalistic, secure and open-source two-factor authentication app. Features ♻️ Cross-platform — available on Andro

Incipher 75 Aug 21, 2022