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