State of GNTP in Growl for Mac

14 views
Skip to first unread message

Daniel Lee Siemer

unread,
Apr 7, 2011, 7:17:30 PM4/7/11
to growl-de...@googlegroups.com
I decided to dive into it this weekend and see what needed to be done to get this more functional.

I hooked up the forward notification and registration in GrowlApplicationController, and started plugging away at it. I fixed a variety of small bugs and moved on to enabling encryption, and proper use of passwords.

Presently I am able to send an encrypted message and registration between two OSX boxes using passwords from the keychain. The changes I made over the last few days are all up in the Default branch of the growl-development repo. I am not able presently to reliably test with Window's (I would have to run it in a vm or something), so I don't know if I broke anything that Rudy already had working with that. I tried to make things friendly for localhost, but it hasn't been tested still.

There will be more on issues in a sec, but this one needs more explanation. CCCrypt is returning error code 4300 invalid parameter every time on decrypt, but the data is coming out . I found one thing online that mentioned this issue claiming that it is the kCCOptionPKCS7Padding option in the decrypt, but not knowing much about cryptography, I thought I should ask a broader audience. I am pretty sure that it is encrypting the data properly, but again, while I can compare two blocks of data, I don't know much about crypto.

There are a number of known issues still:
It might be trying to feed ouroboros, need to do more testing
Passwords updated in the UI are not reflected until a restart of GrowlHelperApp.
Password retrieval without a signed build intermittent (I know, I need to self sign my builds).
Registrations are only forwarded at time of registration
remote registrations will clobber local registrations if two computers have the same app
Error 4300 on decrypt, see above
Proper handling of localhost messages, they don't require security (presently its allowed, but not necessary)
Subscription support is completely unimplemented

fixed so far:
Crash in error statement in retrieving the password for incoming messages
Fixed hashingAlgorithmFromString to use isSupportedHashAlgorithm rather than isSupportedEncryptionAlgorithm
Sending registration now uses our local behavior on missing human readable name, and sets it to the notification name, rather than fail to send a required header
Made Growl_isLikelyIPAddress to use inet_pton to determine whether something is an IPv4 or IPv6

There are some things we should consider design wise, such as possibly having remotely registered apps separated out (an additional field for host name?), how to handle sending registrations (on error of not registered? all locally registered at once on initial setting to forward to that machine?), and how to handle subscriptions.

Rudy Richter

unread,
Apr 11, 2011, 10:22:28 PM4/11/11
to Growl Development


On Apr 7, 7:17 pm, Daniel Lee Siemer <johncfalkenb...@gmail.com>
wrote:

> There will be more on issues in a sec, but this one needs more explanation.  CCCrypt is returning error code 4300 invalid parameter every time on decrypt, but the data is coming out .  I found one thing online that mentioned this issue claiming that it is the kCCOptionPKCS7Padding option in the decrypt, but not knowing much about cryptography, I thought I should ask a broader audience.  I am pretty sure that it is encrypting the data properly, but again, while I can compare two blocks of data, I don't know much about crypto.  
>
> There are a number of known issues still:

> Error 4300 on decrypt, see above

the -4300 is no longer a mystery, it was failing because the data
being passed to it was exactly two characters too long. but more
specifically the two characters were CRLF. encrypted seems to now
work for both mac->mac and windows->mac. All i have to say is thank
goodness CommonCrypto source is available, or that would have been
unpleasant to solve.

-rudy
Reply all
Reply to author
Forward
0 new messages