Skip to content

Commit

Permalink
Merge branch 'master' into encryptfile
Browse files Browse the repository at this point in the history
Conflicts:
	GPGServices.m
  • Loading branch information
the-kenny committed Mar 19, 2011
2 parents 09eb1e9 + c8f43a3 commit 800224f
Show file tree
Hide file tree
Showing 4 changed files with 143 additions and 79 deletions.
85 changes: 34 additions & 51 deletions GPGServices.m
Expand Up @@ -29,11 +29,9 @@ -(void)applicationDidFinishLaunching:(NSNotification *)aNotification

-(void)importKey:(NSString *)inputString
{
GPGData *inputData;
NSDictionary *importedKeys;
NSDictionary *importedKeys = nil;
GPGContext *aContext = [[GPGContext alloc] init];

inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];
GPGData* inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];

NS_DURING
importedKeys=[aContext importKeyData:inputData];
Expand Down Expand Up @@ -94,9 +92,6 @@ - (GPGKey*)myPrivateKey {

-(NSString *)myFingerprint
{
NSString *result=nil;
GPGKey *myKey;

GPGOptions *myOptions=[[GPGOptions alloc] init];
NSString *keyID=[myOptions optionValueForName:@"default-key"];
[myOptions release];
Expand All @@ -108,7 +103,8 @@ -(NSString *)myFingerprint
}

GPGContext *aContext = [[GPGContext alloc] init];


GPGKey *myKey = nil;
NS_DURING
myKey=[aContext keyFromFingerprint:keyID secretKey:NO];
if(myKey==nil)
Expand All @@ -118,26 +114,23 @@ -(NSString *)myFingerprint
return nil;
}
NS_HANDLER
result=nil;
[self displayMessageWindowWithTitleText:@"Retrieving fingerprint failed." bodyText:[NSString stringWithFormat:@"%@",GPGErrorDescription([[[localException userInfo] objectForKey:@"GPGErrorKey"] intValue])]];
[aContext release];
return nil;
NS_ENDHANDLER

result=[[myKey formattedFingerprint] copy];
[aContext release];
return [result autorelease];
return [[[myKey formattedFingerprint] copy] autorelease];
}


-(NSString *)myKey
{
NSString *result=nil;
GPGKey *myKey;
NSData *keyData;
NSData *keyData = nil;
GPGOptions *myOptions=[[GPGOptions alloc] init];
NSString *keyID=[myOptions optionValueForName:@"default-key"];
[myOptions release];

if(keyID==nil)
{
[self displayMessageWindowWithTitleText:@"Default key not set." bodyText:@"No default key is specified in the GPG Preferences."];
Expand All @@ -149,7 +142,7 @@ -(NSString *)myKey
[aContext setUsesTextMode:YES];

NS_DURING
myKey=[aContext keyFromFingerprint:keyID secretKey:NO];
GPGKey* myKey=[aContext keyFromFingerprint:keyID secretKey:NO];
if(myKey==nil)
{
[self displayMessageWindowWithTitleText:@"Found no key." bodyText:@"Could not retrieve your key from keychain (maybe you've not set a default key in ~/.gnupg/gpg.conf)"];
Expand All @@ -164,25 +157,24 @@ -(NSString *)myKey
return nil;
}
NS_HANDLER
result=nil;
[self displayMessageWindowWithTitleText:@"Exporting key failed." bodyText:[NSString stringWithFormat:@"%@",GPGErrorDescription([[[localException userInfo] objectForKey:@"GPGErrorKey"] intValue])]];
[aContext release];
return nil;
NS_ENDHANDLER

[aContext release];
result=[[NSString alloc] initWithData:keyData encoding:NSUTF8StringEncoding];
return [result autorelease];
return [[[NSString alloc] initWithData:keyData
encoding:NSUTF8StringEncoding] autorelease];
}

-(NSString *)encryptTextString:(NSString *)inputString
{
GPGData *inputData, *outputData;
GPGContext *aContext = [[GPGContext alloc] init];
GPGContext *aContext = [[GPGContext alloc] init];
[aContext setUsesArmor:YES];

BOOL trustsAllKeys = YES;
GPGData *outputData = nil;

[aContext setUsesArmor:YES];

RecipientWindowController* rcp = [[RecipientWindowController alloc] init];
int ret = [rcp runModal];
[rcp release];
Expand All @@ -191,7 +183,7 @@ -(NSString *)encryptTextString:(NSString *)inputString
[aContext release];
return nil;
} else {
inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];
GPGData *inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];

BOOL sign = rcp.sign;
NSArray* validRecipients = rcp.selectedKeys;
Expand Down Expand Up @@ -237,12 +229,12 @@ -(NSString *)encryptTextString:(NSString *)inputString

-(NSString *)decryptTextString:(NSString *)inputString
{
GPGData *inputData, *outputData;
GPGData *outputData = nil;
GPGContext *aContext = [[GPGContext alloc] init];

[aContext setPassphraseDelegate:self];

inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];
GPGData *inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];

NS_DURING
outputData=[aContext decryptedData:inputData];
Expand Down Expand Up @@ -271,13 +263,10 @@ -(NSString *)decryptTextString:(NSString *)inputString

-(NSString *)signTextString:(NSString *)inputString
{
GPGData *inputData, *outputData;
GPGContext *aContext = [[GPGContext alloc] init];

[aContext setPassphraseDelegate:self];

inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];

GPGData *inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];
GPGKey* chosenKey = [self myPrivateKey];

NSSet* availableKeys = [self myKeys];
Expand All @@ -301,6 +290,7 @@ -(NSString *)signTextString:(NSString *)inputString
return nil;
}

GPGData *outputData = nil;
NS_DURING
outputData=[aContext signedData:inputData signatureMode:GPGSignatureModeClear];
NS_HANDLER
Expand Down Expand Up @@ -334,14 +324,11 @@ -(NSString *)signTextString:(NSString *)inputString

-(void)verifyTextString:(NSString *)inputString
{
GPGData *inputData;
NSArray *sigs;
GPGSignature *sig;
NSString *userID, *validity;
GPGContext *aContext = [[GPGContext alloc] init];

inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];
GPGData* inputData=[[GPGData alloc] initWithDataNoCopy:[inputString dataUsingEncoding:NSUTF8StringEncoding]];

NSArray *sigs = nil;
NS_DURING
sigs=[aContext verifySignedData:inputData originalData:nil];
NS_HANDLER
Expand All @@ -358,11 +345,11 @@ -(void)verifyTextString:(NSString *)inputString

if([sigs count]>0)
{
sig=[sigs objectAtIndex:0];
GPGSignature* sig=[sigs objectAtIndex:0];
if(GPGErrorCodeFromError([sig status])==GPGErrorNoError)
{
userID=[[aContext keyFromFingerprint:[sig fingerprint] secretKey:NO] userID];
validity=[sig validityDescription];
NSString* userID=[[aContext keyFromFingerprint:[sig fingerprint] secretKey:NO] userID];
NSString* validity=[sig validityDescription];
[self displayMessageWindowWithTitleText:@"Verification successful." bodyText:[NSString stringWithFormat:@"Good signature (%@ trust):\n\"%@\"",validity,userID]];
}
else
Expand Down Expand Up @@ -472,21 +459,18 @@ - (void)encryptFiles:(NSArray*)files {

-(void)dealWithPasteboard:(NSPasteboard *)pboard userData:(NSString *)userData mode:(ServiceModeEnum)mode error:(NSString **)error
{
NSString *pboardString;
NSString *newString=nil;
NSString *type;

[self cancelTerminateTimer];
[NSApp activateIgnoringOtherApps:YES];

NSString *pboardString = nil;
if(mode!=MyKeyService && mode!=MyFingerprintService)
{
type = [pboard availableTypeFromArray:[NSArray arrayWithObjects:
NSHTMLPboardType,
NSStringPboardType,
NSRTFPboardType,
NSFilenamesPboardType,
nil]];
NSString* type = [pboard availableTypeFromArray:[NSArray arrayWithObjects:
NSHTMLPboardType,
NSStringPboardType,
NSRTFPboardType,
NSFilenamesPboardType,
nil]];

if([type isEqualToString:NSHTMLPboardType])
{
Expand Down Expand Up @@ -523,6 +507,7 @@ -(void)dealWithPasteboard:(NSPasteboard *)pboard userData:(NSString *)userData m
}
}

NSString *newString=nil;
switch(mode)
{
case SignService:
Expand Down Expand Up @@ -621,11 +606,9 @@ -(void)displayMessageWindowWithTitleText:(NSString *)title bodyText:(NSString *)

-(NSString *)context:(GPGContext *)context passphraseForKey:(GPGKey *)key again:(BOOL)again
{
NSString *passphrase;
int flag;
[passphraseText setStringValue:@""];
flag=[NSApp runModalForWindow:passphraseWindow];
passphrase=[[[passphraseText stringValue] copy] autorelease];
int flag=[NSApp runModalForWindow:passphraseWindow];
NSString *passphrase=[[[passphraseText stringValue] copy] autorelease];
[passphraseWindow close];
if(flag)
return passphrase;
Expand Down
70 changes: 48 additions & 22 deletions PrivateKeyChooserWindow.xib
Expand Up @@ -49,7 +49,7 @@
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 240}, {480, 100}}</string>
<int key="NSWTFlags">544735232</int>
<string key="NSWindowTitle">Select Private-Key</string>
<string key="NSWindowTitle">Select Private-Key - GPGServices</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<object class="NSView" key="NSWindowView" id="1006">
Expand All @@ -63,6 +63,7 @@
<string key="NSFrame">{{302, 12}, {164, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="977507724">
<int key="NSCellFlags">67239424</int>
Expand Down Expand Up @@ -110,6 +111,7 @@
<string key="NSFrame">{{17, 56}, {446, 26}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="398892952"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="1058455001">
<int key="NSCellFlags">-2076049856</int>
Expand Down Expand Up @@ -181,7 +183,7 @@
<string key="NSFrame">{{7, 11}, {480, 100}}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<reference key="NSNextKeyView" ref="507214626"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
<string key="NSMaxSize">{1e+13, 1e+13}</string>
Expand Down Expand Up @@ -230,6 +232,30 @@
</object>
<int key="connectionID">28</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">initialFirstResponder</string>
<reference key="source" ref="1005"/>
<reference key="destination" ref="507214626"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">nextKeyView</string>
<reference key="source" ref="507214626"/>
<reference key="destination" ref="398892952"/>
</object>
<int key="connectionID">33</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">nextKeyView</string>
<reference key="source" ref="51248815"/>
<reference key="destination" ref="507214626"/>
</object>
<int key="connectionID">35</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
Expand Down Expand Up @@ -294,21 +320,6 @@
<reference key="object" ref="977507724"/>
<reference key="parent" ref="51248815"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="398892952"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="47053369"/>
</object>
<reference key="parent" ref="1006"/>
<string key="objectName">cancelButton</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="47053369"/>
<reference key="parent" ref="398892952"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">22</int>
<reference key="object" ref="507214626"/>
Expand Down Expand Up @@ -339,8 +350,8 @@
<reference key="parent" ref="1058455001"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">25</int>
<reference key="object" ref="535081210"/>
<int key="objectID">27</int>
<reference key="object" ref="535801187"/>
<reference key="parent" ref="382886868"/>
</object>
<object class="IBObjectRecord">
Expand All @@ -349,10 +360,25 @@
<reference key="parent" ref="382886868"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="535801187"/>
<int key="objectID">25</int>
<reference key="object" ref="535081210"/>
<reference key="parent" ref="382886868"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="398892952"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="47053369"/>
</object>
<reference key="parent" ref="1006"/>
<string key="objectName">cancelButton</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="47053369"/>
<reference key="parent" ref="398892952"/>
</object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
Expand Down Expand Up @@ -406,7 +432,7 @@
<reference key="dict.values" ref="0"/>
</object>
<nil key="sourceID"/>
<int key="maxID">28</int>
<int key="maxID">50</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
Expand Down

0 comments on commit 800224f

Please sign in to comment.