Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- NSString *Input = [Inputbox text];
- [Input AES256encryptWithKey];
- @implementation NSData (AES256)
- - (NSData *)AES256EncryptWithKey:(NSString *)key {
- // 'key' should be 32 bytes for AES256, will be null-padded otherwise
- char keyPtr[kCCKeySizeAES256+1]; // room for terminator (unused)
- bzero(keyPtr, sizeof(keyPtr)); // fill with zeroes (for padding)
- // fetch key data
- [key getCString:keyPtr maxLength:sizeof(keyPtr) encoding:NSUTF8StringEncoding];
- NSUInteger dataLength = [self length];
- size_t bufferSize = dataLength + kCCBlockSizeAES128;
- void *buffer = malloc(bufferSize);
- size_t numBytesEncrypted = 0;
- CCCryptorStatus cryptStatus = CCCrypt(kCCEncrypt, kCCAlgorithmAES128, kCCOptionPKCS7Padding,
- keyPtr, kCCKeySizeAES256,
- NULL /* initialization vector (optional) */,
- [self bytes], dataLength, /* input */
- buffer, bufferSize, /* output */
- &numBytesEncrypted);
- if (cryptStatus == kCCSuccess) {
- //the returned NSData takes ownership of the buffer and will free it on deallocation
- return [NSData dataWithBytesNoCopy:buffer length:numBytesEncrypted];
- }
- free(buffer); //free the buffer;
- return nil;
- }
- @implementation NSString (AES256)
Add Comment
Please, Sign In to add comment