мне нужно расшифровать файлы, зашифрованные с помощью OpenSSL следующим образом:дешифрации зашифрованных файлов (AES CFB8) в прошивкой
openssl enc -d -aes-256-cfb8 -nopad -in myFile -iv myIV -K myKey
В частности, IV и ключ массив байтов. Пример (в гексагоне):
key: 5492557823faec274708eb34d263029084abe5544789340a1d3ccf6bd74774ad
iv: 01e2a0ac72375edec4b126b1197a2885
Как это сделать?
Я попытался следовать примеру здесь AES/CFB8 IV size, но с ограниченными результатами.
EDIT:
Вот что я уже пробовал:
NSString *IVString = @"3d090e3f7a72d51ae4f4d0d15025926e";
NSString *KEYString = @"207ecf137586424952b8cfc3e7fd8ce9bd839a916c07b9d5f34d250315d91aa9";
NSData *myIV = [IVString decodeFromHexidecimal];
NSData *myKey = [KEYString decodeFromHexidecimal];
CCCryptorStatus result = CCCryptorCreateWithMode(kCCDecrypt,
kCCModeCFB8,
kCCAlgorithmAES128,
ccNoPadding,
[myIV bytes],
[myKey bytes],
kCCKeySizeAES256,
NULL,
0,
0,
0,
&_cryptor);
size_t *outLength;
NSMutableData *cipherData = [NSMutableData dataWithLength:self.length + kCCBlockSizeAES128];
if (result == kCCSuccess)
result = CCCryptorUpdate(_cryptor,
[self bytes],
[self length],
[cipherData mutableBytes],
[cipherData length],
outLength);
if (result == kCCSuccess)
result = CCCryptorFinal(_cryptor,
[cipherData mutableBytes],
[cipherData length],
outLength);
if (result == kCCSuccess)
result = CCCryptorRelease(_cryptor);
EDIT 2:
Спасибо Rob, что помог мне!
Окончательный код:
CCCryptorStatus result = CCCryptorCreateWithMode(kCCDecrypt,
kCCModeCFB8,
kCCAlgorithmAES128,
ccNoPadding,
[myIV bytes],
[myKey bytes],
kCCKeySizeAES256,
NULL,
0,
0,
0,
&cryptor);
size_t bufferLength = CCCryptorGetOutputLength(cryptor, [self length], false);
NSMutableData *buffer = [NSMutableData dataWithLength:bufferLength];
size_t outLength;
result = CCCryptorUpdate(cryptor,
[self bytes],
[self length],
[buffer mutableBytes],
[buffer length],
&outLength);
result = CCCryptorRelease(cryptor);
См. Https://github.com/RNCryptor/RNCryptor – rmaddy
У вас есть пример того, как использовать режим, отличный от CBC, с RNCryptor? –
Пожалуйста, покажите нам, что вы пробовали и как все пошло не так, в настоящее время вы показываете скудные результаты. –