refactoring and cleanup

primary changes on this PR are
- use NSMutableData for a) zeroing memory b) little 'easier' integration  to c<->obj-c world with removing casts and char * declarations
- use of NSAssert for params and status check
- change signatures to NSData instead of NSString

let me know what u think