Get bssl tool building on Windows.

This lets us run bssl speed at least. bssl client is currently compiled
out until we clean up our socket story on Windows and get it working.

Change-Id: Ib1dc0d0e0a6eed7544207e7bbe138503731fda67
Reviewed-on: https://boringssl-review.googlesource.com/2103
Reviewed-by: Adam Langley <agl@google.com>
This commit is contained in:
David Benjamin 2014-10-31 16:01:29 -04:00 committed by Adam Langley
parent f44aa68a26
commit eee7306c72
5 changed files with 24 additions and 2 deletions

View File

@ -8,6 +8,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
elseif(MSVC) elseif(MSVC)
# Disable warnings for implicit integer narrowing. # Disable warnings for implicit integer narrowing.
set(CMAKE_C_FLAGS "/wd4267") set(CMAKE_C_FLAGS "/wd4267")
set(CMAKE_CXX_FLAGS "/wd4267")
endif() endif()
add_definitions(-DBORINGSSL_IMPLEMENTATION) add_definitions(-DBORINGSSL_IMPLEMENTATION)

View File

@ -11,7 +11,7 @@ add_executable(
tool.cc tool.cc
) )
if (APPLE) if (APPLE OR WIN32)
target_link_libraries(bssl ssl crypto) target_link_libraries(bssl ssl crypto)
else() else()
target_link_libraries(bssl ssl crypto -lrt) target_link_libraries(bssl ssl crypto -lrt)

View File

@ -14,6 +14,9 @@
#include <openssl/base.h> #include <openssl/base.h>
// TODO(davidben): bssl client does not work on Windows.
#if !defined(OPENSSL_WINDOWS)
#include <string> #include <string>
#include <vector> #include <vector>
@ -299,3 +302,5 @@ bool Client(const std::vector<std::string> &args) {
SSL_CTX_free(ctx); SSL_CTX_free(ctx);
return ok; return ok;
} }
#endif // !OPENSSL_WINDOWS

View File

@ -12,6 +12,8 @@
* OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */
#include <openssl/base.h>
#include <memory> #include <memory>
#include <string> #include <string>
#include <vector> #include <vector>
@ -21,7 +23,11 @@
#include <stdint.h> #include <stdint.h>
#include <sys/stat.h> #include <sys/stat.h>
#include <sys/types.h> #include <sys/types.h>
#if defined(OPENSSL_WINDOWS)
#include <io.h>
#else
#include <unistd.h> #include <unistd.h>
#endif
#include <openssl/bytestring.h> #include <openssl/bytestring.h>
#include <openssl/pem.h> #include <openssl/pem.h>
@ -31,6 +37,12 @@
#include "internal.h" #include "internal.h"
#if defined(OPENSSL_WINDOWS)
typedef int read_result_t;
#else
typedef ssize_t read_result_t;
#endif
static const struct argument kArguments[] = { static const struct argument kArguments[] = {
{ {
"-dump", false, "Dump the key and contents of the given file to stdout", "-dump", false, "Dump the key and contents of the given file to stdout",
@ -64,7 +76,7 @@ bool DoPKCS12(const std::vector<std::string> &args) {
const size_t size = st.st_size; const size_t size = st.st_size;
std::unique_ptr<uint8_t[]> contents(new uint8_t[size]); std::unique_ptr<uint8_t[]> contents(new uint8_t[size]);
ssize_t n; read_result_t n;
size_t off = 0; size_t off = 0;
do { do {
n = read(fd, &contents[off], size - off); n = read(fd, &contents[off], size - off);

View File

@ -19,7 +19,9 @@
#include <openssl/ssl.h> #include <openssl/ssl.h>
#if !defined(OPENSSL_WINDOWS)
bool Client(const std::vector<std::string> &args); bool Client(const std::vector<std::string> &args);
#endif
bool DoPKCS12(const std::vector<std::string> &args); bool DoPKCS12(const std::vector<std::string> &args);
bool Speed(const std::vector<std::string> &args); bool Speed(const std::vector<std::string> &args);
@ -42,8 +44,10 @@ int main(int argc, char **argv) {
if (tool == "speed") { if (tool == "speed") {
return !Speed(args); return !Speed(args);
#if !defined(OPENSSL_WINDOWS)
} else if (tool == "s_client" || tool == "client") { } else if (tool == "s_client" || tool == "client") {
return !Client(args); return !Client(args);
#endif
} else if (tool == "pkcs12") { } else if (tool == "pkcs12") {
return !DoPKCS12(args); return !DoPKCS12(args);
} else { } else {