0

我目前正在将API包装git_cred在 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用?即使从 的 POV 来看,它也需要一个LIBSSH2_SESSION相当低级的值libgit2,而且我不确定在那个回调中我应该做什么......

4

1 回答 1

1

它需要一个LIBSSH2_SESSION,因为它是一个 libssh2 回调;它不是低级的,它与 libgit2 的工作方式正交。

该功能供您自己签署数据。它主要是为了完整性而提供的,因为底层功能是 libssh2 的一个未记录的怪癖。

参见例如http://www.libssh2.org/libssh2_userauth_publickey.htmlhttp://www.libssh2.org/mail/libssh2-devel-archive-2012-10/0071.shtml

于 2013-09-15T14:07:59.040 回答