Как да използвате git_cred_ssh_publickey_new()

В момента опаковам git_cred API в Objective-Git и не не разбирам някои от очакваните аргументи. За справка, ето "проблемните" прототипи:

int git_cred_ssh_publickey_new(
    git_cred **out,
    const char *username,
    const char *publickey, size_t publickey_len,
    git_cred_sign_callback sign_fn, void *sign_data);

int git_cred_sign_callback(
    LIBSSH2_SESSION *session,
    unsigned char **sig, size_t *sig_len,
    const unsigned char *data, size_t data_len,
    void **abstract);

(Извадих последното от #define LIBSSH2_USERAUTH_PUBLICKEY_SIGN_FUNC).

За какво се използва git_cred_sign_callback? Изисква се LIBSSH2_SESSION, което е на доста ниско ниво, дори от POV на libgit2, и не съм сигурен какво се очаква да направя в това обратно извикване...


person tiennou    schedule 15.09.2013    source източник


Отговори (1)


Необходим е LIBSSH2_SESSION, защото е обратно извикване на libssh2; не е на ниско ниво, а е ортогонален на работата на libgit2.

Предвидена е функцията, за да можете сами да подписвате данните. Предоставено е предимно за пълнота, тъй като основната функционалност е недокументирана странност на libssh2.

Вижте напр. http://www.libssh2.org/libssh2_userauth_publickey.html и http://www.libssh2.org/mail/libssh2-devel-archive-2012-10/0071.shtml

person Carlos Martín Nieto    schedule 15.09.2013
comment
Хм, да, съжалявам, имах предвид ниско ниво донякъде като в подробности за изпълнението. Наистина се чудя какво да правя с тези две връзки обаче, първата казва Тази функция се извиква... и спира, а другата Noone изглежда си спомня как работи това извикване на API и не е документирано. въпреки че има препратка към друго свързано повикване, което има sign_callback. Благодаря за тази насока! - person tiennou; 16.09.2013