This commit is contained in:
Manoj Ampalam 2016-05-08 21:05:49 -07:00
parent 473841c4cc
commit 2c7e659e37
5 changed files with 56 additions and 21 deletions

View File

@ -106,7 +106,7 @@
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32_WINNT=0x600;WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-Win32-Debug-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-Win32-Debug-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories);$(OpenSSH-Src-Path)contrib\win32\ssh-pubkey</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<ExceptionHandling>Sync</ExceptionHandling>
@ -129,7 +129,7 @@
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>_WIN32_WINNT=0x600;WIN32;_DEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-x64-Debug-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-x64-Debug-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories);$(OpenSSH-Src-Path)contrib\win32\ssh-pubkey</AdditionalIncludeDirectories>
<CompileAs>CompileAsC</CompileAs>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
@ -153,7 +153,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WIN32_WINNT=0x600;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-Win32-Release-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-Win32-Release-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories);$(OpenSSH-Src-Path)contrib\win32\ssh-pubkey</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
</ClCompile>
<Link>
@ -177,7 +177,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WIN32_WINNT=0x600;_LIB;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS;_WINSOCK_DEPRECATED_NO_WARNINGS;WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>false</SDLCheck>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-x64-Release-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>$(SolutionDir);$(OpenSSL-x64-Release-Path)include;$(OpenSSH-Src-Path)includes;$(OpenSSH-Src-Path);$(OpenSSH-Src-Path)contrib\win32\win32compat\includes;$(OpenSSH-Src-Path)contrib\win32\win32compat;$(OpenSSH-Src-Path)libkrb;$(OpenSSH-Src-Path)libkrb\libKrb5;%(AdditionalIncludeDirectories);$(OpenSSH-Src-Path)contrib\win32\ssh-pubkey</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<WholeProgramOptimization>true</WholeProgramOptimization>
</ClCompile>
@ -195,6 +195,7 @@
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="..\..\..\servconf.h" />
<ClInclude Include="..\ssh-pubkey\ssh-pubkeydefs.h" />
<ClInclude Include="..\win32compat\ssh-agent\agent-request.h" />
<ClInclude Include="..\win32compat\ssh-agent\agent.h" />
<ClInclude Include="..\win32compat\ssh-agent\config.h" />

View File

@ -24,6 +24,7 @@
<ClCompile Include="..\ssh-pubkey\ssh-pubkey.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\ssh-pubkey\ssh-pubkeydefs.h" />
<ClInclude Include="..\ssh-pubkey\pubkeyfd.h" />
</ItemGroup>
<PropertyGroup Label="Globals">

View File

@ -2,22 +2,7 @@
#ifndef PUBKEYFD_H
#define PUBKEYFD_H
#define PK_REQUEST_ADD "add"
#define PK_REQUEST_LIST "list"
#define PK_REQUEST_REMOVE "remove"
#define PK_REQUEST_REMOVE_ALL "removeall"
#define PK_REQUEST_REMOVE_BY_FP "removebyfp"
#define SSH_PUBLICKEY_SUCCESS 0
#define SSH_PUBLICKEY_ACCESS_DENIED 1
#define SSH_PUBLICKEY_STORAGE_EXCEEDED 2
#define SSH_PUBLICKEY_VERSION_NOT_SUPPORTED 3
#define SSH_PUBLICKEY_KEY_NOT_FOUND 4
#define SSH_PUBLICKEY_KEY_NOT_SUPPORTED 5
#define SSH_PUBLICKEY_KEY_ALREADY_PRESENT 6
#define SSH_PUBLICKEY_GENERAL_FAILURE 7
#define SSH_PUBLICKEY_REQUEST_NOT_SUPPORTED 8
#define SSH_PUBLICKEY_ATTRIBUTE_NOT_SUPPORTED 9
#include "ssh-pubkeydefs.h"
int ssh_add_pubkey(int sock, struct sshkey *key, const char *comment, const char* password);
int ssh_list_pubkeys(int sock, struct ssh_identitylist **idlp);

View File

@ -0,0 +1,22 @@
#ifndef PUBKEYDEFS_H
#define PUBKEYDEFS_H
#define PK_REQUEST_ADD "add"
#define PK_REQUEST_LIST "list"
#define PK_REQUEST_REMOVE "remove"
#define PK_REQUEST_REMOVE_ALL "removeall"
#define PK_REQUEST_REMOVE_BY_FP "removebyfp"
#define SSH_PUBLICKEY_SUCCESS 0
#define SSH_PUBLICKEY_ACCESS_DENIED 1
#define SSH_PUBLICKEY_STORAGE_EXCEEDED 2
#define SSH_PUBLICKEY_VERSION_NOT_SUPPORTED 3
#define SSH_PUBLICKEY_KEY_NOT_FOUND 4
#define SSH_PUBLICKEY_KEY_NOT_SUPPORTED 5
#define SSH_PUBLICKEY_KEY_ALREADY_PRESENT 6
#define SSH_PUBLICKEY_GENERAL_FAILURE 7
#define SSH_PUBLICKEY_REQUEST_NOT_SUPPORTED 8
#define SSH_PUBLICKEY_ATTRIBUTE_NOT_SUPPORTED 9
#endif

View File

@ -31,7 +31,33 @@
#include "agent.h"
#include "agent-request.h"
#include "ssh-pubkeydefs.h"
static int
process_add_request(struct sshbuf* request, struct sshbuf* response, struct agent_connection* con) {
return -1;
}
int process_pubkeyagent_request(struct sshbuf* request, struct sshbuf* response, struct agent_connection* con) {
return -1;
int r = 0;
const u_char *op;
size_t op_len;
if ((r = sshbuf_get_string_direct(request, &op, &op_len)) != 0)
goto done;
if (op_len > 10) {
r = EINVAL;
goto done;
}
if ((op_len == 3) && (strncmp(op, PK_REQUEST_ADD, 3) == 0))
r = 0;
done:
return r;
}