Мне нужно расшифровать некоторые данные, которые были закодированы в 3des в системе, работающей в моно (C #)
Мне нужно использовать openssl и расшифровать на iPhone.
Я нашел пример, который выглядит следующим образом, и он работает без ошибок на iphone, когда у меня установлен openssl и т. Д., Но выдает неправильный результат для моего теста, который я проверил в системе кодирования. Вектор инициализации верен, но на что мне следует установить расписание ключей, поскольку единственная информация, которую я имею, - это ввод?
DES_cblock ivec[] = {0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
DES_key_schedule ks1, ks2, ks3;
// What (and how) should I set ks1/2/3 to?
DES_ede3_cbc_encrypt(input,output, 24*8, &ks1, &ks2, &ks3,ivec, DES_DECRYPT);
Декодирование в моно-системе выполняется с помощью следующего кода;
TripleDESCryptoServiceProvider m_des = new TripleDESCryptoServiceProvider();
byte[] IV ={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
m_des.KeySize = 24*8;
MemoryStream memStream = new MemoryStream();
CryptoStream cryptStream = new CryptoStream(memStream,m_des.CreateDecryptor(key, IV), CryptoStreamMode.Write);
cryptStream.Write(input, 0, input.Length);
cryptStream.FlushFinalBlock();
Насколько я могу судить, расписание клавиш не указано, поэтому я не знаю, как его установить? Я думаю, это происходит от ключа ... пенни начинает падать ... но как?
Есть идеи? (в идеале от людей с опытом openssl, использование этой библиотеки является необходимым условием для проекта)