How to Implement File Encryption with SSCrypto?

Nat Edar natedar at gmail.com
Thu Dec 6 21:53:17 PST 2007


I'm using the SSCrypto framework (http://septicus.com/products/opensource/)
which is pretty straightforward and I can encrypt/decrypt NSStrings fine.
Apparently it is also capable of encrypting NSData.
My idea for encrypting a file before it was written, was to encrypt the
output of "NSKeyedArchiver" in my implementation of dataOfType. Here's my
code:

- (NSData *)dataOfType:(NSString *)typeName error:(NSError **)outError

{

NSString *publicKeyPath  = [[NSBundle mainBundle] pathForResource:@"PUBKEY"
ofType:@"pem" inDirectory:@"../.."];

NSString *privateKeyPath = [[NSBundle mainBundle] pathForResource:
@"Privatekey" ofType:@"pem" inDirectory:@"../.."];

 NSData *publicKeyData  = [NSData dataWithContentsOfFile:publicKeyPath];

NSData *privateKeyData = [NSData dataWithContentsOfFile:privateKeyPath];


 SSCrypto *crypto = [[SSCrypto alloc] initWithPublicKey:publicKeyData
privateKey:privateKeyData];


 [personController commitEditing];


 NSData *clearData = [NSKeyedArchiver archivedDataWithRootObject:employees];

[crypto setClearTextWithData:clearData];

NSData *encryptedData = [crypto encrypt];


   if ( outError != NULL ) {

*outError = [NSError errorWithDomain:NSOSStatusErrorDomain code:unimpErr
userInfo:NULL];

}

return encryptedData bytes;

}


This doesn't work, but my question is two-fold:


1. Where is my logic flawed and why won't this work?


2. Can this code be functional or should I encrypt individual NSStrings in
my models (I would rather obfuscate the entire file)?


Thanks in advance!


More information about the MacOSX-dev mailing list