forked from rca/GPGMail
-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Launch Libmacgpg service #41
Open
i39
wants to merge
196
commits into
GPGTools:dev
Choose a base branch
from
kivikakk:mojave-without-contract
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…on on a message - While OpenPGP releveant information was previously stored on the message itself it has now been moved to a separate object.
…ion to S/MIME and OpenPGP related signing/encryption during composing of a message. - The preferred security properties at first reflect some defaults configured by the user and are later extended with active user information, once available (e.g. the user explicitly selects a security method) - The object only returns either PGP keys or S/MIME certificates, depending on the security method chosen.
- Detailed list of changes will follow...
- Attempts to re-create the message from the partial emlx file and cached attachments - Fallback to fetching the entire message if above method fails.
…xed] - Simply return nil if partData is nil - rangeOfString on nil returns a NSRange({location=0, length=0}) which lead GPGMail to try to send the data to gpg, which in return resulted in an error.
… [#885 state:fixed] - Own code added too many new lines in some cases which broke message verification. Might also have contained other bugs - Use -[MCMessageGenerator _newOutgoingMessageFromTopLevelMimePart:topLevelHeaders:withPartData:] instead, which is tested and reliable
…iles [#885] - Apple's code re-creates the header data from the properties of the mime part even if the header data of the mime part is already populated. By doing so it the new header data might have headers in a different order or format. This will invalidate signatures. - Hook into -[MCMessageGenerator _appendHeadersForMimePart:toHeaders:] and -[MCMutableMessageHeaders encodedHeadersIncludingFromSpace] in order to return the original header data stored on the mime part instead of re-creating the headers. - Use Mail's original line length of NSDataBase64Encoding76CharacterLineLength when re-creating message data.
- Add 10.12 to the supported macOS Versions in order for the UUID patcher to work again.
…instead of MUIAddressTokenAttachmentCell [#900 state:fixed] - This triggered an error when a user tried to compose a message with one account setup in Mail but two gpg keys available for the same account.
pt_BR is pt. pt_PT is pt_PT. This is the same behavior as in macOS. [#899]
…ssphrase dialog is canceled or sending message fails. [#902 state:fixed] Since El Capitan, Mail has no longer been able to properly restore the compose window if message creation or sending fails for some reason, for example, if the user cancels out of signing a message (S/MIME and OpenPGP) is affected. On El Capitan the message was simply lost, not even saved in drafts. Sierra "optimized" the behavior by at least saving the message in drafts. The following methods restore this functionality: -[ComposeWindowController _performSendAnimationWithCompletion:] -> this method is called within -[ComposeViewController sendMessageAfterChecking:] and is responsible for setting up and displaying the fly up animation of the window. In addition it's also responsible for tearing down the a tab representing the current message (in fullscreen mode only) and the compose window associated with the current message. -[ComposeWindowController saveWindowPositionBeforeAnimation] -> this is GPGMail's method which is called *before* _performSendAnimationWithCompletion: is run, in order to store the current position of the window, as well as the content view controller responsible for the message being sent, in order to be able to restore the window position and - in fullscreen mode - re-select the appropriate tab, if sending the message fails. -[ComposeWindowController restorePositionBeforeAnimation] -> this is GPGMail's method which is called in order to restore the position of the window after the animation and to re-select the appropriate tab, in case the sending of the message has failed. This method is called from -[ComposeViewController restoreComposerView] -[ComposeViewController restoreComposerView] -> this is GPGMail's method which is responsible for starting the restoration process in case of a send failure. It is called from -[ComposeBackEnd backEnd:didCancelMessageDeliveryForEncryptionError:] and -[ComposeBackEnd backEnd:didCancelMessageDeliveryForError:] -[ComposeWindowController composeViewControllerDidSend:] -> is responsible for cleaning up the view controller, remove the current tab item from the tab view and tearing down the compose window controller. In order to be able to restore the compose window however, it's necessary to postpone that work. -[ComposeViewController backEndDidAppendMessageToOutbox:result:] -> this is the ultimate method that tells whether or not the message has been sent successfully. If result is 3 it means that no errors have occured. In that case it's clear that the window or tab can now be torn down and properly closed. In order to do that, -[ComposeWindowController composeViewControllerDidSend:] is called, which a special ivar set, telling the method that it's now ok, to clean up. -[FullScreenWindowController _closeModalWindow:] -> this method is called from -[ComposeWindowController _performSendAnimationWithCompletion:] in order to close the modal window. If only one tab is available, it's necesary to postpone this call, *until* it's invoked by GPGMail within composeViewControllerDidSend:. If more than one tab is available, it's alright to call it immediately. (Not sure why yet, but it is.) - Fixes an error in GMCodeInjector when which occured when selectors had to be replaced. - Patches macOS Headers relevant to the window restoration.
…[#897 state:fixed] - When starting to compose a new message on macOS Sierra 10.12.3 the sender might have been nil under specific circumstances (on macOS Sierra 10.12.4 all the time) which lead to a crash in GPGMail when trying to lookup a sender SMIME certificate or PGP key.
…ties are not changed while being read.
…send an unencrypted reply to an encrypted message. [#890 state:fixed] - Use the new security properties instead of the old method using getIvar:
[#1006 state:fixed]
[#1008 state:fixed]
[#1007 state:fixed] [#1004 state:fixed]
[#1010 state:fixed]
[#1011 state:fixed]
- Hide spinner as soon as activation has failed or succeeded - Display a dialog which explains what features are still available if the trial has expired.
…swizzled method on High-Sierra and Mojave
A PGP-Partitioned message with the following structure: multipart/mixed text/plain application/octet-stream (PGPExchPart) is treated as a normal multipart/alternative message (which it is supposed to be) with the following structure multipart/alternative text/plain text/html (PGPExchPart) [#1012 state:fixed]
…ched Instead of calling getIvar:, valueForKey: was called, which of course doesn’t work. [#1014 state:fixed]
- 10.14.1b3 introduced new names for a lot of the remote loading methods which resulted in a crash when selecting an encrypted message. - Make the hiding of the remote content loading button more reliable on macOS 10.13 and 10.14 [#1013 state:fixed] [#1016 state:fixed]
Tried the steps from the original repo, but they needed a bit of tweaking on a fresh macOS Mojave install.
Updated README.md
There are some serious problems with this PR. It should be closed. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I think what it will be great to add following to README:
After building Libmacgpg we should to launch it as service for let plugin to work:
cd Dependencies/Libmacgpg
cp ./build/org.gpgtools.Libmacgpg.xpc.plist ~/Library/LaunchAgents/
mkdir -p ~/Library/Application\ Support/GPGTools
cp ~/build/Release/org.gpgtools.Libmacgpg.xpc ~/Library/Application\ Support/GPGTools
launchctl unload ~/Library/LaunchAgents/org.gpgtools.Libmacgpg.xpc.plist
launchctl load -w ~/Library/LaunchAgents/org.gpgtools.Libmacgpg.xpc.plist