From 7014a5a3ea0feffab9701fdd6b64cc7667a985af Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sun, 30 Jun 2019 17:36:28 +0100 Subject: gentoo resync : 30.06.2019 --- net-libs/libssh2/files/libssh2-1.9.0-missing.patch | 181 +++++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 net-libs/libssh2/files/libssh2-1.9.0-missing.patch (limited to 'net-libs/libssh2/files') diff --git a/net-libs/libssh2/files/libssh2-1.9.0-missing.patch b/net-libs/libssh2/files/libssh2-1.9.0-missing.patch new file mode 100644 index 000000000000..7cc58d239638 --- /dev/null +++ b/net-libs/libssh2/files/libssh2-1.9.0-missing.patch @@ -0,0 +1,181 @@ +--- /dev/null ++++ b/tests/test_public_key_auth_succeeds_with_correct_ed25519_key.c +@@ -0,0 +1,37 @@ ++#include "session_fixture.h" ++ ++#include ++ ++#include ++ ++static const char *USERNAME = "libssh2"; /* configured in Dockerfile */ ++static const char *KEY_FILE_PRIVATE = "key_ed25519"; ++static const char *KEY_FILE_PUBLIC = "key_ed25519.pub"; /* configured in Dockerfile */ ++ ++int test(LIBSSH2_SESSION *session) ++{ ++ int rc; ++ const char *userauth_list = NULL; ++ ++ userauth_list = libssh2_userauth_list(session, USERNAME, strlen(USERNAME)); ++ if(userauth_list == NULL) { ++ print_last_session_error("libssh2_userauth_list"); ++ return 1; ++ } ++ ++ if(strstr(userauth_list, "publickey") == NULL) { ++ fprintf(stderr, "'publickey' was expected in userauth list: %s\n", ++ userauth_list); ++ return 1; ++ } ++ ++ rc = libssh2_userauth_publickey_fromfile_ex( ++ session, USERNAME, strlen(USERNAME), KEY_FILE_PUBLIC, KEY_FILE_PRIVATE, ++ NULL); ++ if(rc != 0) { ++ print_last_session_error("libssh2_userauth_publickey_fromfile_ex"); ++ return 1; ++ } ++ ++ return 0; ++} +--- /dev/null ++++ b/tests/test_public_key_auth_succeeds_with_correct_encrypted_ed25519_key.c +@@ -0,0 +1,38 @@ ++#include "session_fixture.h" ++ ++#include ++ ++#include ++ ++static const char *USERNAME = "libssh2"; /* configured in Dockerfile */ ++static const char *PASSWORD = "libssh2"; ++static const char *KEY_FILE_PRIVATE = "key_ed25519_encrypted"; ++static const char *KEY_FILE_PUBLIC = "key_ed25519_encrypted.pub"; /* configured in Dockerfile */ ++ ++int test(LIBSSH2_SESSION *session) ++{ ++ int rc; ++ const char *userauth_list = NULL; ++ ++ userauth_list = libssh2_userauth_list(session, USERNAME, strlen(USERNAME)); ++ if(userauth_list == NULL) { ++ print_last_session_error("libssh2_userauth_list"); ++ return 1; ++ } ++ ++ if(strstr(userauth_list, "publickey") == NULL) { ++ fprintf(stderr, "'publickey' was expected in userauth list: %s\n", ++ userauth_list); ++ return 1; ++ } ++ ++ rc = libssh2_userauth_publickey_fromfile_ex( ++ session, USERNAME, strlen(USERNAME), KEY_FILE_PUBLIC, KEY_FILE_PRIVATE, ++ PASSWORD); ++ if(rc != 0) { ++ print_last_session_error("libssh2_userauth_publickey_fromfile_ex"); ++ return 1; ++ } ++ ++ return 0; ++} +--- /dev/null ++++ b/tests/test_public_key_auth_succeeds_with_correct_ed25519_key_from_mem.c +@@ -0,0 +1,97 @@ ++#include "session_fixture.h" ++ ++#include ++ ++#include ++#include ++ ++static const char *USERNAME = "libssh2"; /* configured in Dockerfile */ ++static const char *KEY_FILE_ED25519_PRIVATE = "key_ed25519"; ++ ++int read_file(const char *path, char **buf, size_t *len); ++ ++int test(LIBSSH2_SESSION *session) ++{ ++ int rc; ++ FILE *fp = NULL; ++ char *buffer = NULL; ++ size_t len = 0; ++ const char *userauth_list = NULL; ++ ++ userauth_list = libssh2_userauth_list(session, USERNAME, strlen(USERNAME)); ++ if(userauth_list == NULL) { ++ print_last_session_error("libssh2_userauth_list"); ++ return 1; ++ } ++ ++ if(strstr(userauth_list, "publickey") == NULL) { ++ fprintf(stderr, "'publickey' was expected in userauth list: %s\n", ++ userauth_list); ++ return 1; ++ } ++ ++ if(read_file(KEY_FILE_ED25519_PRIVATE, &buffer, &len)) { ++ fprintf(stderr, "Reading key file failed."); ++ return 1; ++ } ++ ++ rc = libssh2_userauth_publickey_frommemory(session, USERNAME, strlen(USERNAME), ++ NULL, 0, buffer, len, NULL); ++ ++ free(buffer); ++ ++ if(rc != 0) { ++ print_last_session_error("libssh2_userauth_publickey_fromfile_ex"); ++ return 1; ++ } ++ ++ return 0; ++} ++ ++int read_file(const char *path, char **out_buffer, size_t *out_len) ++{ ++ int rc; ++ FILE *fp = NULL; ++ char *buffer = NULL; ++ size_t len = 0; ++ ++ if(out_buffer == NULL || out_len == NULL || path == NULL) { ++ fprintf(stderr, "invalid params."); ++ return 1; ++ } ++ ++ *out_buffer = NULL; ++ *out_len = 0; ++ ++ fp = fopen(path, "r"); ++ ++ if(!fp) { ++ fprintf(stderr, "File could not be read."); ++ return 1; ++ } ++ ++ fseek(fp, 0L, SEEK_END); ++ len = ftell(fp); ++ rewind(fp); ++ ++ buffer = calloc(1, len + 1); ++ if(!buffer) { ++ fclose(fp); ++ fprintf(stderr, "Could not alloc memory."); ++ return 1; ++ } ++ ++ if(1 != fread(buffer, len, 1, fp)) { ++ fclose(fp); ++ free(buffer); ++ fprintf(stderr, "Could not read file into memory."); ++ return 1; ++ } ++ ++ fclose(fp); ++ ++ *out_buffer = buffer; ++ *out_len = len; ++ ++ return 0; ++} -- cgit v1.2.3