現在、Objective-C で libssh2 ラッパーを拡張しようとしています。
libssh2_userauth_keyboard_interactive
メソッドを実装しようとしています。私の問題は、応答コールバックです。
「実際の」対話性をバイパスし、実際のパスワードを使用して認証を可能にするこの実装をネットで見つけました。
int error = libssh2_userauth_keyboard_interactive(session, [username UTF8String], &kbdCallback);
static void kbdCallback (const char *name, int name_len, const char *instruction, int instruction_len, int num_prompts, const LIBSSH2_USERAUTH_KBDINT_PROMPT *prompts, LIBSSH2_USERAUTH_KBDINT_RESPONSE *responses, void **abstract)
{
responses[0].text = (char *)[password UTF8String]; // resp. (char *)[@"test" UTF8String]
responses[0].length = strlen([password UTF8String]); // resp. (char *)[@"test" UTF8String]
}
password
私の問題の 1 つは、呼び出し内でインスタンス変数にアクセスすることです。もう 1 つの問題static void
は、メソッドを呼び出そうとすると SIGABRT が発生することです (固定文字列を使用して、それが機能するかどうかをテストしました)。
それを機能させる可能性はありますか?!
ジュリアン