Я читал о Secure Remote Password protocol от Stanford, и он идеально подходит для среды, в которой работают приложения для iPhone. К сожалению, мне не удалось найти хорошую реализацию протокола Objective-C. Насколько я могу судить, я не знаю, как это сделать.Безопасная удаленная реализация паролей для iPhone
Кто-нибудь знает о такой реализации?
Если это не удастся, как вы думаете, что будет лучше? Я мог бы попробовать build OpenSSL into my app, но это похоже на действительно большой вещь, чтобы добавить для этого один маленький кусочек. Я мог бы попытаться перевести реализации JavaScript или Java в Objective-C, но это нарушает правило # 1 криптографии (используйте известную, протестированную реализацию).
Пара последующих элементов: во-первых, это должно быть очевидно из контекста, но мне нужно что-то, что совместимо с коммерческим использованием с закрытым исходным кодом (реализация JavaScript, с которой я связан, позже я заметил, AGPL).
Кроме того, предполагая, что я заканчиваю работу с OpenSSL, у меня возникают реальные проблемы с поиском примера использования SRP. Их сайт утверждает, что код там, но я не могу найти никаких доказательств этого, либо в OpenSSL documentation, либо grepping исходного кода (v 0.9.8k). (Или я серьезно неправильные вещи, и я до сих пор применять одну из their patches к источнику OpenSSL?)
EDIT:
Что я мог бы реально использовать в данный момент готов к использованию коды , довольно полный рецепт или какой-то пример использования SRP в OpenSSL. Я почти уверен, что смогу сцепиться с нуля с помощью protocol docs, но я действительно стараюсь не изобретать колесо, если смогу это сделать.
Итак, насколько велика библиотека OpenSSL для устройства? (И достаточно ли он структурирован, чтобы компоновщик мог оставить неиспользуемые биты?) –
libcrypto.a + libssl.a старше 2.5M, но они не представляют ничего подобного в финальном двоичном файле. Если я помню последний раз, когда я исследовал, OpenSSL добавила около 400-500 к окончательному двоичному размеру. Больше, чем я хотел бы, но меньше, чем я боялся. Я попытался уменьшить количество файлов в OpenSSL, чтобы улучшить время компиляции, поскольку нам нужны только несколько функций, но я быстро нашел это неработоспособным. OpenSSL достаточно структурирован, чтобы компоновщик разделился, но недостаточно для компилятора. YMMV в зависимости от того, какие функции вы используете. –