From 6e3a544ba4a468ccb280f3d1f89de34f83b2f34c Mon Sep 17 00:00:00 2001 From: Bob Sun Date: Sat, 11 Feb 2017 23:45:00 +0800 Subject: [PATCH] put PasswordEntity into a new file --- pass.xcodeproj/project.pbxproj | 4 ++++ pass/Models/Password.swift | 21 --------------------- pass/Models/PasswordEntity.swift | 31 +++++++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 21 deletions(-) create mode 100644 pass/Models/PasswordEntity.swift diff --git a/pass.xcodeproj/project.pbxproj b/pass.xcodeproj/project.pbxproj index 9d1350d..751f20c 100644 --- a/pass.xcodeproj/project.pbxproj +++ b/pass.xcodeproj/project.pbxproj @@ -54,6 +54,7 @@ DCFB779B1E4F3BCF008DE471 /* TitleTextFieldTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = DCFB77991E4F3BCF008DE471 /* TitleTextFieldTableViewCell.xib */; }; DCFB779E1E4F40C7008DE471 /* FillPasswordTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFB779C1E4F40C7008DE471 /* FillPasswordTableViewCell.swift */; }; DCFB779F1E4F40C7008DE471 /* FillPasswordTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = DCFB779D1E4F40C7008DE471 /* FillPasswordTableViewCell.xib */; }; + DCFB77A11E4F68C8008DE471 /* PasswordEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCFB77A01E4F68C8008DE471 /* PasswordEntity.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -109,6 +110,7 @@ DCFB77991E4F3BCF008DE471 /* TitleTextFieldTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TitleTextFieldTableViewCell.xib; sourceTree = ""; }; DCFB779C1E4F40C7008DE471 /* FillPasswordTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FillPasswordTableViewCell.swift; sourceTree = ""; }; DCFB779D1E4F40C7008DE471 /* FillPasswordTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = FillPasswordTableViewCell.xib; sourceTree = ""; }; + DCFB77A01E4F68C8008DE471 /* PasswordEntity.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PasswordEntity.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -165,6 +167,7 @@ isa = PBXGroup; children = ( DC7E6EE91E432E48006C2443 /* Password.swift */, + DCFB77A01E4F68C8008DE471 /* PasswordEntity.swift */, DCC408A31E2FCC9E00F29B0E /* PasswordStore.swift */, DC193FFF1E49E1A60077E0A3 /* PasscodeLockConfiguration.swift */, DC193FFD1E49E0760077E0A3 /* PasscodeLockRepository.swift */, @@ -432,6 +435,7 @@ DCA049981E33586A00522E8F /* DefaultsKeys.swift in Sources */, DC19400B1E4B36B60077E0A3 /* Utils.swift in Sources */, DCA0499E1E33BAC100522E8F /* Globals.swift in Sources */, + DCFB77A11E4F68C8008DE471 /* PasswordEntity.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/pass/Models/Password.swift b/pass/Models/Password.swift index 48071eb..2e5c9a6 100644 --- a/pass/Models/Password.swift +++ b/pass/Models/Password.swift @@ -78,24 +78,3 @@ class Password { } } - -extension PasswordEntity { - func decrypt() throws -> Password? { - var password: Password? - let encryptedDataPath = URL(fileURLWithPath: "\(Globals.repositoryPath)/\(rawPath!)") - let encryptedData = try Data(contentsOf: encryptedDataPath) - let decryptedData = try PasswordStore.shared.pgp.decryptData(encryptedData, passphrase: Defaults[.pgpKeyPassphrase]) - let plainText = String(data: decryptedData, encoding: .ascii) ?? "" - password = Password(name: name!, plainText: plainText) - return password - } - - func encrypt(password: Password) throws -> Data { - name = password.name - rawPath = "" - let plainData = password.getPlainData() - let pgp = PasswordStore.shared.pgp - let encryptedData = try pgp.encryptData(plainData, usingPublicKey: pgp.getKeysOf(.public)[0], armored: false) - return encryptedData - } -} diff --git a/pass/Models/PasswordEntity.swift b/pass/Models/PasswordEntity.swift new file mode 100644 index 0000000..df7cf14 --- /dev/null +++ b/pass/Models/PasswordEntity.swift @@ -0,0 +1,31 @@ +// +// PasswordEntity.swift +// pass +// +// Created by Mingshen Sun on 11/2/2017. +// Copyright © 2017 Bob Sun. All rights reserved. +// + +import Foundation +import SwiftyUserDefaults + +extension PasswordEntity { + func decrypt() throws -> Password? { + var password: Password? + let encryptedDataPath = URL(fileURLWithPath: "\(Globals.repositoryPath)/\(rawPath!)") + let encryptedData = try Data(contentsOf: encryptedDataPath) + let decryptedData = try PasswordStore.shared.pgp.decryptData(encryptedData, passphrase: Defaults[.pgpKeyPassphrase]) + let plainText = String(data: decryptedData, encoding: .ascii) ?? "" + password = Password(name: name!, plainText: plainText) + return password + } + + func encrypt(password: Password) throws -> Data { + name = password.name + rawPath = "" + let plainData = password.getPlainData() + let pgp = PasswordStore.shared.pgp + let encryptedData = try pgp.encryptData(plainData, usingPublicKey: pgp.getKeysOf(.public)[0], armored: false) + return encryptedData + } +}