Skip to content
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

Dev #5

Open
wants to merge 1,426 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1426 commits
Select commit Hold shift + click to select a range
5baee96
10.9.4 UUID
Mento Jul 1, 2014
fa3e4a3
RKRegex instead of NSRegularExpression.
Mento Jul 2, 2014
9f75d13
Yosemite Beta 2 Compatibility
Jul 4, 2014
614e9f3
Yosemite Beta 2 Compatibility
Jul 4, 2014
1bc4a00
Update ConversationMember+GPGMail.m
Jul 4, 2014
0d28a3d
Yosemite Beta 2 Compatibility
Jul 4, 2014
1f4b58c
Yosemite Beta 2 Compatibility
Jul 4, 2014
c37141c
Update ConversationMember+GPGMail.m
Jul 4, 2014
f173b97
Update ConversationMember+GPGMail.m
Jul 4, 2014
b37c87d
Merge pull request #20 from beatjunky99/yosemite
Mento Jul 4, 2014
da6f34d
Add support for Beta 3
Dimillian Jul 11, 2014
323c83b
Merge pull request #21 from Dimillian/yosemite
Mento Jul 21, 2014
24df6c4
Update and rename Readme.md to README.md
Mento Jul 21, 2014
0dc2e3b
added transifex info + better link to project page
SteveBell Jul 21, 2014
1a6337c
Add Yosemite DP5 UUID and headers.
lukele Aug 5, 2014
f76fd85
[FIX] Terminate Mail before update. [#751 state:fixed]
Mento Aug 6, 2014
0b14af0
RegexKit signed.
Mento Sep 2, 2014
a479151
Sparkle with prefixes.
Mento Sep 23, 2014
a77d5bb
[FIX] error msg
SteveBell Sep 28, 2014
0f468d2
[FIX] allow more width in Preferences Window
SteveBell Oct 1, 2014
2925186
[FIX] Restore sign and encrypt status when a editing of a draft is co…
lukele Oct 1, 2014
c10b1b7
Merge branch 'dev' of https://github.com/GPGTools/GPGMail into dev
lukele Oct 1, 2014
e104cf2
[FIX] Record sign and encrypt status even if not explicitly changed b…
lukele Oct 1, 2014
82ec9e8
[FIX] Remove duplicate headers added by MailTags when saving a draft …
lukele Oct 4, 2014
f976416
[FIX] Keep signing information non non-drafts and properly sign the m…
lukele Oct 8, 2014
640e3b9
huge cleanup of error messages
SteveBell Oct 13, 2014
596dca0
Merge branch 'dev' of https://github.com/GPGTools/GPGMail into yosemite
lukele Oct 24, 2014
af79f12
fixed typo in error message
SteveBell Oct 28, 2014
09a4824
typo fix
SteveBell Oct 28, 2014
353c46d
l10n
SteveBell Oct 28, 2014
78d5884
Beta 1.
lukele Nov 3, 2014
9399d77
Mark as first Yosemite beta.
lukele Nov 4, 2014
a59c0a4
Mark as first Yosemite beta.
lukele Nov 4, 2014
2eacbc0
Use subkey for signing.
lukele Nov 4, 2014
8fa95bd
For fuck sake. I don't know...
lukele Nov 4, 2014
f51ef92
Adjust deployment target and correct the pre-release Sparkle url.
lukele Nov 4, 2014
f80e964
Hook into initCreatingDocumentEditor from 10.7 on.
lukele Nov 4, 2014
c874e82
Remove logs and replace with DebugLog.
lukele Nov 4, 2014
99e7691
Remove some more selectors no longer available in Yosemite.
lukele Nov 4, 2014
5ba8283
Another beta test.
lukele Nov 4, 2014
9817482
Should prevent that the GPGMail_Updater is built twice.
lukele Nov 4, 2014
50fa39b
Only allow this version of GPGMail to be installed on 10.10
lukele Nov 5, 2014
5b40988
Fix version.
lukele Nov 5, 2014
877a14f
Add a debug message.
lukele Nov 7, 2014
7134b70
Improve beta expiration check.
lukele Nov 10, 2014
760d208
Remove beta thingy from Makefile. It's now in Xcode.
lukele Nov 10, 2014
e8fa204
Use DebugLog instead of NSLog.
lukele Nov 12, 2014
57bf846
[FIX] Don't call decodeBase64 on Yosemite, decoding is performed in M…
lukele Nov 12, 2014
5d6c48d
[FIX] Make sure GPGMail doesn't crash if Mail is invoked via AppleScr…
lukele Nov 12, 2014
3b5f55f
Release: Prepare Beta 2 of GPGMail for Yosemite.
lukele Nov 12, 2014
cb93bc1
[FIX] Auxiliary toolbars work properly even after the security indici…
lukele Nov 17, 2014
bd1a903
cleanup test cases
SteveBell Nov 19, 2014
9f91841
clean up test cases
SteveBell Nov 21, 2014
e21b36c
better error messages
SteveBell Nov 21, 2014
88ce7b2
include Testcase description file
SteveBell Nov 21, 2014
9c85d5a
removed old testcase
SteveBell Nov 21, 2014
16f81ec
[FIX] Sparkle should be on by default.
Mento Nov 21, 2014
de0c64f
[FIX] Encrypted drafts of multipart messages are no longer being mang…
lukele Nov 29, 2014
fca5947
[FIX] GPGMail doesn't crash Mail.app on 10.7 when a new message is cr…
lukele Nov 29, 2014
c36b8b3
[FIX] Always display the closed lock instead of the open lock to avoi…
lukele Nov 29, 2014
640b0f1
[FIX] Add the UUID for 10.10.2 seeds [#780 state:fixed]
lukele Nov 29, 2014
ba12f12
[FIX] Makes sure drafts are properly saved & encrypted on 10.7 and 10…
lukele Nov 30, 2014
c27b048
[FIX] Make sure "Automatically check for updates" is enabled by defau…
lukele Nov 30, 2014
34a0c99
Remove the restriction that GPGMail can only be installed on Yosemite.
lukele Nov 30, 2014
5a88557
[FIX] Allows downgrade of GPGMail_Updater to keep versions in sync [#…
lukele Nov 30, 2014
4e0ff9a
[FIX] Makes sure that GPGMail preferences also reflect the fact that …
lukele Nov 30, 2014
c0811d1
Preparing new beta version: 2.5b3
lukele Nov 30, 2014
6933b9b
[FIX] Correctly detect inline PGP in text/html emails [#787 state:fixed]
lukele Dec 2, 2014
aac5fb4
[FIX] Drafts are correctly saved again if GPGMail doesn't know exactl…
lukele Dec 17, 2014
75b8599
[FIX] Makes sure that creating inline PGP messages works properly aga…
lukele Dec 30, 2014
232e075
[FIX] Use system font if the font returned is nil [#795 state:fixed]
lukele Dec 30, 2014
4d1eed3
[FIX] Update Sparkle
lukele Dec 30, 2014
163d709
Prepare release: 2.5b4
lukele Dec 30, 2014
c76b19f
Adds the correct error message if GPGMail 2.x is installed on a syste…
lukele Jan 16, 2015
5e10d9c
[FIX] Makes sure Mail doesn't crash when a new message is created via…
lukele Jan 16, 2015
beeea55
[FIX] Adjusts the isLion check so it only returns true on Lion and no…
lukele Jan 16, 2015
bd1caa6
[FIX] Correctly displays attachments for PGP Partitioned Messages (fr…
lukele Jan 16, 2015
a80b4cd
Adjust default time.
lukele Jan 16, 2015
62df1ac
Clean Up Header files and remove duplicates.
lukele Jan 16, 2015
c8a85c7
Fix mail headers root path.
lukele Jan 16, 2015
5faab64
Remove ununsed code.
lukele Jan 16, 2015
d53cab1
Disable handling encrypted/signed mail rules until we have a better s…
lukele Jan 16, 2015
0156e6f
Fix up class-dump exported headers.
lukele Jan 16, 2015
c7670aa
Merge branch 'yosemite' of https://github.com/GPGTools/GPGMail into y…
lukele Jan 16, 2015
4c89b47
Merge branch 'dev' of https://github.com/GPGTools/GPGMail into dev
lukele Jan 16, 2015
78629c9
Merge branch 'yosemite' into dev
lukele Jan 16, 2015
05244f0
[FIX] Removes nasty RegexKit warning [#796 state:fixed]
lukele Jan 19, 2015
4740784
[FIX] Only set the parseError if there's a PGPError available.
lukele Jan 29, 2015
5f2192e
[FIX] Makes sure Mail doesn't crash on Lion when a new message is cre…
lukele Jan 29, 2015
d573812
[FIX] Prevent crash in updateSecurityProperties by working on a copy …
lukele Jan 29, 2015
e34256d
[FIX] Sets the UserSelectedMessage flag on the message body as well. …
lukele Jan 29, 2015
755500a
Don't perform unnecessary shouldBePGPProcessed check in isSignedByMe.
lukele Jan 29, 2015
c621b2a
[NEW] Displays a warning message if the user is about to send an unen…
lukele Feb 4, 2015
1ea53af
[FIX] Adds better error messages when attempting to send an unencrypt…
lukele Feb 6, 2015
df5fce3
Update translations.
lukele Feb 6, 2015
0005c79
[FIX] Fixes a problem where not all available secret keys for one ema…
lukele Feb 6, 2015
d7d5d6b
Add release notes for 2.5b5
lukele Feb 6, 2015
c76e895
Prepare release of version: 2.5b5
lukele Feb 6, 2015
bcff4bf
Fixes a recursion which occurs when trying to load the message body a…
lukele Feb 6, 2015
51a5aaa
Prepare release of version: 2.5b5
lukele Feb 6, 2015
e32538c
[FIX] Adds support for the warning prompt when attempting to send an …
lukele Feb 7, 2015
769970b
Prepare release of version: 2.5b5
lukele Feb 7, 2015
929a1e2
[FIX] Only allows signing mails from accounts which actually have a c…
lukele Feb 7, 2015
0618d63
Prepare release of version: 2.5b5
lukele Feb 7, 2015
89c9209
GPG Keychain Access -> GPG Keychain
Mento Feb 8, 2015
4a1ddc4
l10n
Mento Feb 8, 2015
b46a2a3
[FIX] Correctly restores sign and encrypt status if a message is "sen…
lukele Feb 12, 2015
73f5ff7
Merge branch 'dev' of https://github.com/GPGTools/GPGMail into dev
lukele Feb 12, 2015
1236eca
[FIX] Don't execute downloaded code.
Mento Feb 17, 2015
3ad43f2
Fail gracefully if there's no GPGMail executable when trying to add t…
lukele Feb 19, 2015
a39cac4
Reduces the Makefiles to the absolutely necessary commands.
lukele Feb 19, 2015
bde09c7
Merge branch 'dev' of https://github.com/GPGTools/GPGMail into build-…
lukele Feb 19, 2015
b91f637
Update Readme with better build instructions.
lukele Feb 19, 2015
3d31b61
Update support platform link to use the new https://gpgtools.tenderap…
lukele Feb 19, 2015
be9270a
Corrects a string interpolation problem.
lukele Feb 19, 2015
cb03a3e
Show error if macholib dependency is not installed.
lukele Feb 19, 2015
f269236
Update Readme file to include Libmacgpg installation procedure.
lukele Feb 19, 2015
ea494cd
Adjust copy 'how to get the source code' phase to be generic.
lukele Feb 21, 2015
f44c9c8
Set an appropriate name for the expiration date phase.
lukele Feb 21, 2015
f8cedbf
Don't show environment variables in build log.
lukele Feb 21, 2015
96941e4
l10n
Mento Feb 22, 2015
3861f4a
Use DeployResources if available.
Mento Feb 27, 2015
7889862
Installer and UUID Patcher removed.
Mento Mar 7, 2015
1cded60
beta limitation removed.
Mento Mar 11, 2015
eb0af7a
[FIX] Properly check for GPGMail updates [#822 state:fixed]
lukele Mar 11, 2015
20bfef5
Merge branch 'build-refactoring' into dev
lukele Mar 11, 2015
1c9e7ca
Prepare release of version: 2.5b6
lukele Mar 18, 2015
5feea7f
Sparkle updated.
Mento Mar 19, 2015
857b834
Adds release notes for version 2.5b6
lukele Mar 19, 2015
db270d7
Merge branch 'dev' of https://github.com/GPGTools/GPGMail into dev
lukele Mar 19, 2015
dc8e414
Support URL.
Mento Mar 19, 2015
30a3115
[FIX] SignatureView details on wrong position.
Mento Mar 19, 2015
72c0752
[NEW] Display a warning when disabling encrypt drafts.
Mento Mar 19, 2015
5bb15e8
Support URL
Mento Mar 28, 2015
da95e30
l10n
Mento Mar 28, 2015
c2e36e8
Re-adding missing translation.
lukele Mar 31, 2015
3c08646
Update warning message when encrypt drafts is to be disabled.
lukele Apr 2, 2015
7bf389b
[FIX] Send anyway sometimes triggers an infinite loop.
Mento Apr 7, 2015
036d055
Show localized Sparkle.
Mento Apr 28, 2015
1e3c3c9
added release notes for b1, b2, b3 and b4
SteveBell May 24, 2015
209343b
unifying layout and small tweaks for Release Notes
SteveBell May 24, 2015
6de6619
Update Translations and fix strings listed in Asana.
lukele May 25, 2015
288620a
Update Translations and fix strings listed in Asana.
lukele May 25, 2015
d018318
Start preparing stable version: 2.5
lukele May 26, 2015
95cb25a
Sparkle 873fc55.
Mento May 29, 2015
7a57a95
Add release notes for version: 2.5
lukele Jun 3, 2015
4db5779
Merge branch 'dev' into stable-release-test
lukele Jun 3, 2015
632e28f
[FIX] Preserve rich-text formatting when continuing drafts [#835 stat…
lukele Jul 9, 2015
9104ffb
[FIX] Properly display messages with content-type application/pgp [#8…
lukele Jul 10, 2015
1b7b2a3
[FIX] Show alert sheet as expected when disabling encrypt drafts.
Mento Jul 24, 2015
cf5c551
[FIX] Adapt to the new GPGPacket API.
lukele Jul 24, 2015
fcb745b
Correct save and display the update check state.
Mento Aug 4, 2015
7e5b7ef
l10n
Mento Aug 11, 2015
bb56438
l10n
Mento Aug 14, 2015
b87024d
Version 2.5.1
Mento Aug 14, 2015
1e73539
Handle binary messages corretly.
Mento Aug 18, 2015
2d4163d
Decode more inline pgp HTML messages.
Mento Aug 19, 2015
505d4ba
Initial checkin for el capitan.
lukele Sep 10, 2015
0333138
Remove some ui code.
lukele Sep 14, 2015
5c29235
Make sure the message is properly saved if there's no error.
lukele Sep 14, 2015
56eae40
Version 2.6a1
Mento Sep 14, 2015
7363808
GMOSXVersions to Info.plist added.
Mento Sep 21, 2015
ab7c7ce
Wrong files in last commit.
Mento Sep 21, 2015
a5f1d2f
Merge dev into elcapitan
Mento Sep 21, 2015
179d8b3
Version 2.6a2
Mento Sep 21, 2015
7c64a9a
[FIX] Clean up El Capitan changes
lukele Sep 22, 2015
6bc0b02
Prepare version 2.6b2 of GPGMail
lukele Sep 22, 2015
f4ea922
Fixes to build on jenkins.
Mento Sep 23, 2015
47c53b0
Tool name set to GPGMail_10.11
Mento Sep 23, 2015
b70d8ce
Remove useless El Capitan pre-version headers.
lukele Sep 23, 2015
6edd917
Update header file to fix build.
lukele Sep 23, 2015
47f0c76
[FIX] Use processInfo instead of NSAppKitVersionNumber for 10.11 check.
lukele Sep 23, 2015
a36c15b
Some more changes.
lukele Sep 23, 2015
e0d4154
Resolve merge conflict.
lukele Sep 23, 2015
ebbf3ef
10.11.1 UUID
Mento Oct 23, 2015
6a17814
Only attach GPGMail version if emit-version is set.
Mento Jan 19, 2016
1c028c9
[FIX] Let the user select a subkey using key mapping.
Mento Jan 27, 2016
92efabb
Use mapped subkey for encryption and signing if possible.
Mento Jan 27, 2016
c2f0c81
Addresses issue where MFMessageRouter is initialized prior to MailAcc…
smorr Feb 25, 2016
a53ba25
Merge pull request #30 from smorr/MailTagsConflict
lukele Mar 2, 2016
2775a75
Add UUID for 10.11.3
lukele Mar 15, 2016
8e7c894
Merge branch 'elcapitan' of https://github.com/GPGTools/GPGMail into …
lukele Mar 15, 2016
f260168
Adds UUID of 10.11.4.
lukele Mar 26, 2016
250e567
[FIX] Fixes a bug where the BCC recipients of an inline PGP signed me…
lukele Mar 26, 2016
a272d8f
Preferences "Support" -> "Report a Problem" button.
Mento Apr 7, 2016
16355f2
Also open GPGPreferences on newer OS X.
Mento Apr 7, 2016
908f5d2
copyVersionInfo removed.
Mento Apr 11, 2016
3bd466d
Use gpgPrefLauncher to open GPGPreferences.
Mento Apr 13, 2016
bef55aa
Use GPGUpdateController.
Mento May 9, 2016
c8e3d4f
Fix crash on OS X 10.9 in GMCodeInjector.
Mento May 18, 2016
38ee6ae
Build as normal GPGMail.
Mento May 18, 2016
ac34fb5
findKeyByHint can return a subkey.
Mento Nov 12, 2015
464ffb5
Swizzle putRulesThatWantsToHandleMessage:intoArray:colorRulesOnly: on…
Mento May 18, 2016
a4a1493
Remove Sparkle parameters from Info.plist.
Mento May 18, 2016
8c86077
Rename "Report a Problem" -> "Report Problem".
Mento May 19, 2016
9cb2291
improved warning when message cannot be signed
SteveBell May 25, 2016
fe00cce
Better VoiceOver support.
Mento Jun 1, 2016
96867a5
improve error messages, replace 'passphrase' with 'password'
SteveBell Jun 2, 2016
dba02af
2.6 Release notes
SteveBell Jun 2, 2016
335610b
[FIX] Hang on 10.10 when restoring drafts.
Mento Jun 8, 2016
2ef52df
updated 2.6 release notes
SteveBell Jun 8, 2016
01c32e1
Re-enable sign and encrypt buttons.
Mento Jun 20, 2016
4699129
Version 2.6
Mento Jun 27, 2016
020ec05
l10n
Mento Jul 5, 2016
d068713
Readme updated: Minimum OS X 10.9.
Mento Jul 6, 2016
60b75ba
unified pinentry error messages
SteveBell Jul 7, 2016
e906fcc
unified pinentry error messages
SteveBell Jul 7, 2016
4cd1ff7
Base internationalization.
Mento Jul 11, 2016
d275dd6
Language clean-up.
Mento Jul 11, 2016
31d424f
l10n
Mento Jul 12, 2016
d7eb733
Auto-Layout for preferences.
Mento Jul 14, 2016
b679521
l10n
Mento Jul 14, 2016
466b9ea
Remove pgp-agent header in order to avoid leaking version meta data […
lukele Aug 12, 2016
8b77e5c
l10n
Mento Sep 30, 2016
16bcb99
Version 2.6.2
Mento Oct 14, 2016
f5bfaff
Disable the beta check, which is no longer necessary.
lukele Oct 18, 2016
f871731
Add Sierra support information to README.
lukele Nov 18, 2016
d3c3769
Allow localizations not available in Mail.app.
Mento Feb 3, 2017
eba9b6b
Fixed portuguese.
Mento Feb 3, 2017
6b0fbd4
l10n
Mento Feb 3, 2017
0a66d6b
Call useGPGLocalizations from Libmacgpg.
Mento Feb 3, 2017
9c4c1f4
Version 2.6.3b1
Mento Mar 20, 2017
0686850
[FIX] Be more lenient in PGP/MIME detection aka. Avast antivirus modi…
lukele Mar 28, 2017
36a9600
[FIX] Be more lenient in the detection of inline PGP encrypted data […
lukele Mar 29, 2017
4011ddc
[FIX] Treat drafts that have failed to decrypt automatically and have…
lukele Mar 30, 2017
24a6955
improved error messages for missing secret key to decrypt
SteveBell Apr 13, 2017
f099ddc
minor string correction
SteveBell Apr 13, 2017
e5c7ab1
minor cleanup in GPGMail preferences strings
SteveBell Apr 13, 2017
d27970a
minor cleanup in GPGMail preferences strings
SteveBell Apr 13, 2017
67dda62
Fix last two commits.
Mento Apr 13, 2017
c171697
cosmetic fix for a space trailing \n
SteveBell Aug 11, 2017
6b337b5
fix typo in signature details
SteveBell Sep 22, 2017
357f0bf
Revert "fix typo in signature details"
SteveBell Sep 22, 2017
2b8fdd0
fix typo in GPGSignatureView.xib
SteveBell Sep 22, 2017
2c08db8
Version: 2.6.3
lukele Sep 22, 2017
8446550
fix typo in error msg
SteveBell Oct 27, 2017
ecc4241
E-Mail -> Email in GPGAttachments
Mento Nov 3, 2017
f4fce7c
Use fingerprint instead of keyID in details views.
Mento Nov 24, 2017
232457c
E-Mail -> Email.
Mento Nov 24, 2017
90d1d59
Strings.
Mento Nov 24, 2017
bafdeeb
Fix for jenkins.
Mento Nov 24, 2017
1136b1f
l10n
Mento Nov 30, 2017
d765eca
Version 2.6.4
Mento Nov 30, 2017
75c60b4
Do not set bundle icon.
Mento Feb 10, 2018
bd8e9cc
Use flat indicator bubble.
Mento Mar 16, 2018
3ec92ab
Signature and attachment view reworked.
Mento Mar 16, 2018
f00fc4c
l10n
Mento Apr 24, 2018
3948573
Do not treat a PGP message with a missing or bad MDC like a non-clear…
lukele Apr 29, 2018
d22d902
Update strings for MDC errors
lukele Apr 29, 2018
b299963
Version 2.6.5
Mento May 4, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
25 changes: 23 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
.DS_Store
*.mode1v3
# Xcode
build/
build.log
*.pbxuser
!default.pbxuser
*.mode1v3
!default.mode1v3
*.mode2v3
!default.mode2v3
*.perspectivev3
!default.perspectivev3
*.xcworkspace
!default.xcworkspace
xcuserdata
profile
*.moved-aside
.DS_Store
Dependencies/GPGTools_Core
Dependencies/Libmacgpg
MLHeaders
*xcuserdata/
Dependencies/GPGTools_Core
Dependencies/Libmacgpg
Dependencies/DeployResources
3 changes: 0 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +0,0 @@
[submodule "GPGMail/Dependencies/MacGPGME"]
path = GPGMail/Dependencies/MacGPGME
url = git://github.com/gpgmail/macgpgme.git
40 changes: 40 additions & 0 deletions .tx/config
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
[main]
host = https://www.transifex.com
lang_map = pt_BR:pt

[GPGMail.general]
file_filter = Resources/<lang>.lproj/GPGMail.strings
source_lang = en
source_file = Resources/en.lproj/GPGMail.strings
type = STRINGS

[GPGMail.preferences]
file_filter = Resources/<lang>.lproj/GPGMailPreferences.strings
source_lang = en
source_file = Resources/en.lproj/GPGMailPreferences.strings
type = STRINGS

[GPGMail.attachment]
file_filter = Resources/<lang>.lproj/GPGAttachment.strings
source_lang = en
source_file = Resources/en.lproj/GPGAttachment.strings
type = STRINGS

[GPGMail.attachmentsxib]
file_filter = Resources/<lang>.lproj/GPGAttachments.strings
source_lang = en
source_file = Resources/en.lproj/GPGAttachments.strings
type = STRINGS

[GPGMail.signatureview]
file_filter = Resources/<lang>.lproj/SignatureView.strings
source_lang = en
source_file = Resources/en.lproj/SignatureView.strings
type = STRINGS

[GPGMail.signatureviewxib]
file_filter = Resources/<lang>.lproj/GPGSignatureView.strings
source_lang = en
source_file = Resources/en.lproj/GPGSignatureView.strings
type = STRINGS

1 change: 1 addition & 0 deletions Dependencies/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
#
36 changes: 36 additions & 0 deletions Docs/ADVANCED PREFERENCES
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
* Use PGP inline instead of PGP/MIME (EXPERIMENTAL) *
defaults write org.gpgtools.gpgmail UseOpenPGPInlineToSend -bool YES|NO


* Completely disable creating snippets. *
The default behaviour is to generate the preview if the passphrase is in cache
even if snippet generation is disabled in GPGMail preferences.

This option completely disables it.

defaults write org.gpgtools.gpgmail NeverCreatePreviewSnippets -bool YES|NO


* Set a default security method to prefer. *
By default OpenPGP is preferred if no better option is found.
Set this option to 2 to force S/MIME. 1 = OpenPGP.

defaults write org.gpgtools.gpgmail DefaultSecurityMethod -int 1|2


* Add a mapping for a mail-address or a domain to a key. *
defaults write org.gpgtools.common KeyMapping -dict-add email fingerprint
defaults write org.gpgtools.common KeyMapping -dict-add *@domain.com fingerprint


* Enable debug logging. This spills out a LOT of messages. *
defaults write org.gpgtools.common DebugLog -bool YES|NO


* Disable or enable OpenPGP for reading messages. *
defaults write org.gpgtools.gpgmail UseOpenPGPForReading -bool YES|NO


* FOR DEBUGGING ONLY: Hides all signature attachments, even if they fail to verify. *
defaults write org.gpgtools.gpgmail HideAllSignatureAttachments -bool YES|NO

4 changes: 4 additions & 0 deletions Docs/BUGS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
- Uncaught Exception if GPG is not installed.
- Uncaught Exception if no secret keys are available.
- Uncaught Exception if no public keys are available.
- Uncaught Exception if pinentry is missing (happens in libmacgpg)
178 changes: 178 additions & 0 deletions Docs/CODING
Original file line number Diff line number Diff line change
@@ -0,0 +1,178 @@
Every Mail.app method which is to be swizzled, has to be prefixed
with MA (MailApp).

There's a folder in Resources which is called old. This folder
is used to diff the a modified xib with the latest xib.
It's used for localizeXIB.
DON'T EVER DELETE THIS FOLDER!

* Reverse Engineering *

- Sometimes it's not to easy to find out what happens to an
object you created. In that case you can over release it,
using autorelease or release. This way, the object will be
ending up an NSZombie, which can later be tracked using Instruments
allocation tool. (VERY HELPFUL)

- clearCachedDecrypted is called everytime the message is unlodaed.
we should better cache it.

- Mail internally seems to use firstChildPart to determine the charset of the message.

- Log all messages -> instrumentObjcMessageSends(YES) writes to /tmp/msgSends-

_getSomeCharsetFromPartTree -> exists only internally

- -[Message setNumberOfAttachments:isSigned:isEncrypted:] is only called for
encrypted messages, strangely enough.
Still have to find out what usually sets the number.
Mail.app uses -[MessageStore setNumberOfAttachments:isSigned:isEncrypted:forMessage:] to set the number
of attachments for every message, but this is only called when the message comes in
and never touched again, except for encrypted messages.

So to always work, GPGMail forces Mail.app to update the number for every message, each time
it's parsed or the number is different, by recalculating the number.

* Committing *

- Always use git -p <filename>. This let's you decide for each file
what lines should be added to a commit.
- Use this to create commits which only fix one problem at a time.

* Other *

- Mail.app comes with a lot of general class enhancements. It's best to look
them through to find helpful ones.

@interface NSData (MessageAdditions)
- (id)initWithDataConvertingLineEndingsFromUnixToNetwork:(id)arg1;
- (id)initWithDataConvertingLineEndingsFromNetworkToUnix:(id)arg1;
- (id)dataByConvertingLineEndingsFromUnixToNetwork;

// To detect if the data contains real message headers.
- (struct _NSRange)rangeOfRFC822HeaderData;

* Data Detectors *

- Extremely hard to implement native ones.
- Enabling Javascript in WebViews works
[[WebView preferences] setJavaScriptEnabled:YES]
- Using Javascript to emulate the bevaiour might be rather easy.

* Mountain Lion *

- MimePart, MimeBody and other very important classes from Message.framework
are now in CoreMessage.framework
- MessageStore does no longer exist but was replaced by MessageDataSource.
- On Mountain Lion compiled GPGMail doesn't load, where on Lion compiled GPGMail loads
- Check Framework dependencies.
- Update Header files for Mountain Lion

* OpenPGP | S/MIME co-existence

1.) A new message (not reply) is created check if the there's a key for signing
for the address in either OpenPGP or S/MIME. Choose the method to enable accordingly.

If there are keys for either method, check the entries which method was last used
to sign with this key.

If again both methods are found check which was used more often.

Once a user changes the method manually, NEVER automatically manipulate that
choice again.

[ComposeBackEnd type] defines whether the message is replied|forwared|replied-to-all|new
- 5 -> New message
- 1 -> Reply
- 2 -> Reply to all
- 3 -> Forward
- 4 -> Reply to already open mesage? (Mail.app was closed with this reply open and it's restored.)

once a user enters addresses a dictionary is checked to see if the last time
the user sent to these addresses decided to encrypt or not and sets that status.
If no message was sent yet to that user, don't encrypt.

If there's one key for signing for each method but the recipients can only be found for one encryption method
automatically select that encryption method.

If a user replies to a message, check if the message was signed and set signed.
If a user replies to a message, check if the message was encrypted and set encrypted.
Don't set something which the old message was not.

User defaults should look like this
[address][sign][SMIME][addresses][did-sign] = counter
[address][sign][PGP][addresses][did-not-sign] = counter
[address][sign][addresses][last-used-method] = 'SMIME' | 'PGP'
[address][sign][addresses][last-status] = 'did sign' | 'did not sign'
[address][encrypt][SMIME][addresses][did-encrypt] = counter
[address][encrypt][PGP][addresses][did-not-encrypt] = counter
[address][encrypt][addresses][last-used-method] = 'SMIME' | 'PGP'
[address][encrypt][addresses][last-status] = 'did encrypt' | 'did not encrypt'

* Indexing encrypted messages

Message.h

- (id)stringForIndexing;
- (id)stringForIndexingUpdatingBodyFlags:(BOOL)arg1;

might be relevant.

* Access struct instance variables of Mail Classes *

Copy the struct definition you want to use into your header file
using a typedef. After that you can access the struct data using the following
code.

StructType structVar;
object_getInstanceVariable(self, "<instance-variable-name>", (void **)&structVar);

Very nice!

* XPC Services for sandboxed Mail.app >= 10.8 *

Bad Apple which really doesn't like plugins for Mail.app has disabled mach lookup names
for Mail.app
Our XPC Service has to use a mach name since it's running as a launchd item instead
as part of an app (otherwise it would have to live inside Mail.app and we certainly
don't want to mess with that!).
BUT fortunately for us, Apple has introduced an two exceptions for mach lookup names.
One can be found in the file /System/Library/Sandbox/Profiles/application.sb (which contains
the rules which are evaluated for each available entitlement) and one can be found
in the entitlements Mail.app is signed with directly.
Use "codesign --display --entitlements - /Applications/Mail.app" to display the available
entitlements and check for "mach-lookup" to find interesting ones.
In the application.sb file there's a mach-lookup allow rule, which allows every app to lookup
mach services which end in _OpenStep.
Mail.app's entitlements allow every mach service which only has numbers as its name.
So as long as Apple doesn't remove these rules and our xpc service has a matching name
we're mighty mighty fine :)!

* Additional documentation for NSXPCConnection *

NSXPCConnection invokes error, interruption or invalidation handlers
for specific errors which are documented, but as not much as one would want.

This is a list of all the available handlers and when they are invoked:

- invalidationHandler:
- invoked when there's a problem establishing a connection:
- the xpc service was unloaded or is being unloaded while a message
is waiting for a response
- the xpc service is not loaded at all -> in that case it's invoked
immediately after calling resume.

- remoteObjectProxy errorHandler:
- when the xpc service crashes (e.g. overrelease or other BAD EXC failure in the xpc service)
- when the xpc service is killed (also with -9)
- when the xpc service is unloaded with `launchctl unload`
- when the xpc service is unloaded with `launchctl remove`

- interruptionHandler:
- when the connection was already invalidated (call to invalidate)
and the xpc service is killed.
- everytime remoteObjectProxy errorHandler is invoked.

* Class weak linking for Mavericks *

http://www.sealiesoftware.com/blog/archive/2010/4/8/Do-it-yourself_Objective-C_weak_import.html
14 changes: 14 additions & 0 deletions Docs/GPG related notes
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
Keys and Subkeys

- Each subkey is a new key pair - public key / secret key
- To encrypt or sign a message you need at least one valid key
- either subkey or the primary key
- Subkey are used to build something similar to a certificate tree
- if a node is invalidated, the nodes under it are invalidated as well.
- not necessary to consider them in gpg mail
- Each key has at least one subkey which is automatically created when a new key is created

UIDS

- Each uid is an identity for a key
- A uid allows the key to set a different name or a different email address or similar
11 changes: 11 additions & 0 deletions Docs/GPGMAIL_NOTES
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
- _updateSecurityStateInBackgroundForRecipients:sender: calls inside itself
1.) canSignFromAddress:
2.) canEncryptFromAddress:


- updateSecurityControls seems to call _updateSecurityStateInBackgroundForRecipients:sender: with
an NSInvocation


Might be interesting
- (id)missingCertificatesMessageForRecipients:(id)arg1 uponDelivery:(BOOL)arg2;
36 changes: 36 additions & 0 deletions Docs/GPGMail - signer info for header
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
for signature verification
call parentController on MessageHeaderDisplay -> receive MessageContentController
call viewingState -> call mimeBody
call mimeBody -> topLevelPart
uses messageFlags to check if the message is indeed signed.
and based on that info calls isSigned.
and then verifySignature on that.


verify signature steps in decodeMultipartSignedWithContext:
-> call verifySignature
-> call needsSignatureVerification:(parameter is a pointer to a MFError)
-> checks if _smimeError is set already, returns 0 if so
and sets the error pointer on _smimeError.
-> if yes
-> call usesKnownSignatureProtocol
-> if yes
-> call signedData -> being the data that was signed (obv!)
-> fetch data for signature part
-> now, when it's gpg, the signature is not recognized as such
hence verifySignatureWithCMSDecoder is never called,
we have to do it ourselves.



-> call verifySignatureWithCMSDecoder
-> if an error occurs -> set MFError on error pointer
-> set _smimeError to the MFError
return value seems to be always null

-- on a different note, on init all message flags are set to 1
4294967295 this is 111111111111111111111111 in binary
-- after that, these flags are updated accordingly


Error Domain=MFMessageErrorDomain Code=1036 "Beim Lesen der digitalen Signatur dieser E-Mail ist ein Problem aufgetreten." UserInfo=0x107f01a50 {NSLocalizedDescription=Beim Lesen der digitalen Signatur dieser E-Mail ist ein Problem aufgetreten., MFSMIMESignerStatus=4, _MFShortDescription=Die E-Mail-Signatur konnte nicht überprüft werden., MFSMIMECertificateStatus=-2147409652, MFSMIMETrustKey=<SecTrust 0x10b972ad0 [0x7fff7d45eea0]>}
Loading