ios - Crash (EXC_BAD_ACCESS) when using CCCrypt -
below code encrypt string,
nsstring *token = @"us=foo;pw=bar;pwalg=false;"; nsstring *key = @"testtest"; const void *vplaintext; size_t plaintextbuffersize; plaintextbuffersize = [token length]; vplaintext = (const void *) [token utf8string]; cccryptorstatus ccstatus; uint8_t *bufferptr = null; size_t bufferptrsize = 0; size_t *movedbytes; bufferptrsize = (plaintextbuffersize + kccblocksize3des) & ~(kccblocksize3des - 1); bufferptr = malloc( bufferptrsize * sizeof(uint8_t)); memset((void *)bufferptr, 0x0, bufferptrsize); // memset((void *) iv, 0x0, (size_t) sizeof(iv)); nsstring *initvec = @"init vec"; const void *vkey = (const void *) [key utf8string]; const void *vinitvec = (const void *) [initvec utf8string]; ccstatus = cccrypt(kccencrypt, kccalgorithmdes, kccoptionecbmode, vkey, //"123456789012345678901234", //key kcckeysizedes, null,// vinitvec, //"init vec", //iv, vplaintext, //"your name", //plaintext, plaintextbuffersize, (void *)bufferptr, bufferptrsize, movedbytes); nsstring *result; nsdata *mydata = [nsdata datawithbytes:(const void *)bufferptr length:(nsuinteger)movedbytes]; result = [mydata base64encoding]; nslog( @"original string dddd: %@", result );
it prompt me exc_bad_access on line ccstatus = cccrypt(kccencrypt,
can advice?
it's last parameter cccrypt
. it's trying output value (so know size of data written) , you're giving pointer. need give address of size_t
variable.
try this:
size_t movedbytes; ccstatus = cccrypt(kccencrypt, kccalgorithmdes, kccoptionecbmode, vkey, //"123456789012345678901234", //key kcckeysizedes, null,// vinitvec, //"init vec", //iv, vplaintext, //"your name", //plaintext, plaintextbuffersize, (void *)bufferptr, bufferptrsize, &movedbytes);
Comments
Post a Comment