如何使用git_cred_ssh_publickey_new()

时间:2013-09-15 10:59:36

标签: libgit2 libssh2

我目前是{-3}} Objective-Git中的git_cred API,我不了解一些预期的参数。作为参考,这里是“冒犯”的原型:

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,这是非常低级别的,我不确定在回调中我应该做些什么......

1 个答案:

答案 0 :(得分: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