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

Popular posts from this blog

c# - SVN Error : "svnadmin: E205000: Too many arguments" -

c# - Copy ObservableCollection to another ObservableCollection -

All overlapping substrings matching a java regex -