Skip to content

MacPaw/ENCryptor

Repository files navigation

ENCryptor

Overview

ENCryptor is an engine powering our awesome Encrypto app, now open source.

Installation

Preferred way of installation is through CocoaPods

pod 'ENCryptor', :git => 'https://github.com/MacPaw/ENCryptor.git'

Otherwise, you can build the project and copy ENCryptor.framework to your project.

Usage

Opening (viewing hint and preview, checking password)

self.archiveOpener = [ENArchiveOpener openerWithArchiveURL:...];
self.archiveOpener.delegate = self;

NSString *hint = self.archiveOpener.hint;
...
if ([self.archiveOpener checkPassword:password]) {
	NSImage *preview = self.archiveOpener.preview;
}

Encrypting

self.encryptor = [ENEncryptor encryptorWithSourceURLs:@[...]];
self.encryptor.delegate = self;

[self.encryptor encryptWithPassword:password hint:hint preview:preview];
...
- (void)encryptor:(ENEncryptor *)encryptor didFinishWithResultURL:(NSURL *)resultURL {
// resultURL now contains resulting .crypto file located somewhere in temporary directory
}

Decrypting

self.decryptor = [ENDecryptor decryptorWithArchiveURL:resolvedInputURL];
self.decryptor.delegate = self;

[self.decryptor decryptWithPassword:password];
...
- (void)decryptor:(ENDecryptor *)decryptor didFinishWithResultURL:(NSURL *)resultURL {
// resultURL now contains unarchived file or directory somewhere in temporary directory
}

Demo

ENCryptor comes bundled with encrypto-cli as demo, also available for installation through homebrew tap

brew tap macpaw/taps
brew update
brew install encrypto-cli
$ encrypto-cli
usage: encrypto-cli encrypt <input> --output <output folder>
                    decrypt <input> --output <output folder>
                    preview <input>

Resources

Crypto File Structure

License

ENCryptor is released under Apache License 2.0 License. See LICENSE file for details.