int SecRandomCopyBytes (
SecRandomRef rnd,
size_t count,
uint8_t *bytes
);
Например:
uint8_t data[100];
int err = 0;
// Don't ask for too many bytes in one go, that can lock up your system
err = SecRandomCopyBytes(kSecRandomDefault, 100, data);
if(err != noErr)
@throw [NSException exceptionWithName:@"..." reason:@"..." userInfo:nil];
NSData* randomData = [[NSData alloc] initWithBytes:data length:100];
Как отметил Петр в комментариях, вы также можете сделать это:
NSMutableData* data = [NSMutableData dataWithLength:100];
err = SecRandomCopyBytes(kSecRandomDefault, 100, [data mutableBytes]);
И как отметил Роб в комментариях, вам нужно связать Security.framework для SecRandomCopyBytes, чтобы быть доступным. Вы также должны включить SecRandom.h
.