Не могу найти много документации по этой ошибке … Я думаю, что это связано с конфликтующими версиями RNCryptor … версия RNCryptor от iOS конфликтует с моей серверной версией RNCryptor-php … Я думаю.
Вот весь вывод ошибки:
[Wed Dec 17 16:56:00 2014] [error] [client 192.168.1.3] PHP Fatal error: Uncaught exception 'Exception' with message 'Unsupported schema version 211' in /Library/WebServer/Documents/lib/RNCryptor/Cryptor.php:70\nStack trace:\n#0 /Library/WebServer/Documents/lib/RNCryptor/Decryptor.php(66): RNCryptor\\Cryptor->_configureSettings(211)\n#1 /Library/WebServer/Documents/lib/RNCryptor/Decryptor.php(49): RNCryptor\\Decryptor->_parseHeaders('\\xD3}5\\xEBN\\xFB\\xD1\\xDD\\xBA\\xF5\\xD6\\xF6s\\xB7:...')\n#2 /Library/WebServer/Documents/lib/RNCryptor/Decryptor.php(22): RNCryptor\\Decryptor->_unpackEncryptedBase64Data('<03016077 0d269...')\n#3 /Library/WebServer/Documents/accessy/index.php(120): RNCryptor\\Decryptor->decrypt('<03016077 0d269...', 'AwEOM//0tNskVvC...')\n#4 /Library/WebServer/Documents/accessy/index.php(189): Auth->auth('AwEOM//0tNskVvC...', false)\n#5 {main}\n thrown in /Library/WebServer/Documents/lib/RNCryptor/Cryptor.php on line 70
Я надеюсь, что кто-то может взглянуть на это и просто сказать мне, что не так. Я пробовал v2.0 и v2.1 на стороне iOS, и похоже, что есть только одна версия для RNCryptor-php … Думаю, я мог бы попробовать v1.0 / etc. но я предполагаю, что эти версии по своей природе менее безопасны, поскольку они старше. У кого-нибудь есть идеи?
Это мой код шифрования iOS, который RNCryptor-php по какой-то причине не может обработать:
NSData *what1 = [emailcurrent dataUsingEncoding:NSUTF8StringEncoding];
NSError *errory5;
NSData *useremaily = [RNEncryptor encryptData:what1 withSettings:kRNCryptorAES256Settings password:@"xxxxx" error:&errory5];`
Я все еще не уверен в одном, на самом деле, я пробовал несколько разных вещей … но на данный момент … я отправляю useremaily
вместе с запросом (не преобразовывая его в строку или что-либо) в качестве POST
данные … я думаю это правильно.
Затем я использую NSURLConnection так, как мне кажется, и соединение происходит и выполняется, но я всегда получаю вышеуказанную ошибку в журнале ошибок PHP.
Любые идеи очень приветствуются.
Ух ты — так у меня ушло несколько последних дней … вплоть до того момента, когда я решил включить код NSURLConnection в свой вопрос. Вот что это было:
NSString *post = [NSString stringWithFormat:@"email=%@", useremaily];
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%lu",(unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"https://192.168.1.10/accessy/index.php"]]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
self.connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];`
Линия, которая, я думаю, все испортила, была:
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
Я изменил это на:
NSData *postData = [[NSData alloc] initWithBase64EncodedString:post options:0];
Это на самом деле все еще не работает, как я хочу … но это решило эту ошибку, если у кого-то есть эта проблема специально. Возможно, мне придется задать еще один вопрос о том, с чем я сейчас имею дело … но я думаю, если вы хотите прокомментировать процесс в целом (от iOS к PHP с RNCryptor) — это все равно может быть полезно. Благодарю.
Других решений пока нет …