@ Implementation nsdata (AES)
-(Nsdata *) encryptaes {
Char keyptr [kcckeysizeaes256 + 1];
Bzero (keyptr, sizeof (keyptr ));
[_ Key
Getcstring: keyptr maxlength:
Sizeof (keyptr) encoding:
Nsutf16stringencoding];
Size_t numbytesencrypted =
0;
Nsuinteger datalength = [self
Length];
Size_t buffersize = datalength +
Kccblocksizeaes128;
Void * buffer = malloc (buffersize );
Cccryptorstatus result =
Cccrypt (kccencrypt, kccalgorithmaes128,
Kccoptionpkcs7padding,
Keyptr, kmeaneysizeaes256,
Null,
[Self
Bytes], [self length],
Buffer, buffersize,
& Numbytesencrypted );
If (result = kccsuccess)
Return [nsdata
Datawithbytesnocopy: Buffer length: numbytesencrypted];
Free (buffer );
Return nil;
}
-(Nsdata *) decryptaes {
Char keyptr [kcckeysizeaes256 + 1];
Bzero (keyptr, sizeof (keyptr ));
[_ Key
Getcstring: keyptr maxlength:
Sizeof (keyptr) encoding:
Nsutf16stringencoding];
Size_t numbytesencrypted =
0;
Nsuinteger datalength = [self
Length];
Size_t buffersize = datalength +
Kccblocksizeaes128;
Void * buffer_decrypt =
Malloc (buffersize );
Cccryptorstatus result =
Cccrypt (kccdecrypt, kccalgorithmaes128,
Kccoptionpkcs7padding,
Keyptr, kmeaneysizeaes256,
Null,
[Self
Bytes], [self length],
Buffer_decrypt, buffersize,
& Numbytesencrypted );
If (result = kccsuccess)
Return [nsdata
Datawithbytesnocopy: buffer_decrypt length: numbytesencrypted];
Free (buffer_decrypt );
Return nil;
}
@ End