Сообщение шифрования OpenSSL через CMS_sign не работает - PullRequest
0 голосов
/ 19 декабря 2018

Целую неделю я искал, как зашифровать сообщения с помощью PKCS # 7 (стандарт rfc5652) на iOS.

Я пытаюсь реализовать шифрование CMS с помощью openSSL .Я нашел документацию openSSL , в которой показан пример использования метода CMS_sign () .

https://github.com/openssl/openssl/blob/master/demos/cms/cms_sign.c

Проблема в том, что файл результатов (smout.txt) всегда пуст.Вот часть кода для записи зашифрованных данных в файл:

/* Sign content */
cms = CMS_sign(scert, skey, NULL, in, flags);

if (!cms)
    goto err;

out = BIO_new_file("smout.txt", "w");
if (!out)
    goto err;

if (!(flags & CMS_STREAM))
    BIO_reset(in);

/* Write out S/MIME message */
if (!SMIME_write_CMS(out, cms, in, flags))
    goto err;

Я также рассмотрел другие альтернативы, такие как SwiftCrypto или SwiftyRSA , но ни одиниз них реализует шифрование CMS.На официальном яблочном форуме я читал, что apple напрямую не выполняет шифрование CMS.Единственный вариант, который я узнал, это использовать метод CMS_sign () в openSSL фреймворке, но он не работает хорошо.

Подскажите, пожалуйста, какреализовать это шифрование?Или, пожалуйста, посоветуйте мне несколько альтернатив.

...