From ec3965cbc675c4546185caa847cb83191e1a3fcb Mon Sep 17 00:00:00 2001 From: Maximilien Siavelis <maximilien.siavelis@simulease.com> Date: 周六, 06 1月 2018 19:54:45 +0800 Subject: [PATCH] refactor to fix MINGW consistency --- src/library/os/os-linux.c | 96 ++---------------------------------------------- 1 files changed, 4 insertions(+), 92 deletions(-) diff --git a/src/library/os/linux/os-linux.c b/src/library/os/os-linux.c similarity index 74% rename from src/library/os/linux/os-linux.c rename to src/library/os/os-linux.c index 79ec0e5..717373a 100644 --- a/src/library/os/linux/os-linux.c +++ b/src/library/os/os-linux.c @@ -1,29 +1,15 @@ -#include <stdio.h> -#include <ctype.h> -#include <stdlib.h> -#include <unistd.h> - -#include <valgrind/memcheck.h> #include <paths.h> - -#include <stdlib.h> -#include <stddef.h> -#include <string.h> -#include <unistd.h> -#include <sys/ioctl.h> #include <sys/stat.h> -#include "../os.h" -#include "public-key.h" -#include "../../base/logger.h" +#include "os.h" +#include "../base/logger.h" -#include <openssl/evp.h> -#include <openssl/bio.h> +//#include <openssl/evp.h> +//#include <openssl/bio.h> #include <openssl/pem.h> #include <openssl/err.h> #include <mntent.h> #include <dirent.h> -#include <stdio.h> #include <sys/utsname.h> #ifdef USE_DBUS @@ -310,79 +296,5 @@ } else { result = FUNC_RET_ERROR; } - return result; -} - -static void free_resources(EVP_PKEY* pkey, EVP_MD_CTX* mdctx) { - if (pkey) { - EVP_PKEY_free(pkey); - } - if (mdctx) { - EVP_MD_CTX_destroy(mdctx); - } -} - -FUNCTION_RETURN verifySignature(const char* stringToVerify, - const char* signatureB64) { - EVP_MD_CTX *mdctx = NULL; - const char *pubKey = PUBLIC_KEY; - int func_ret = 0; - - BIO* bio = BIO_new_mem_buf((void*) (pubKey), strlen(pubKey)); - RSA *rsa = PEM_read_bio_RSAPublicKey(bio, NULL, NULL, NULL); - BIO_free(bio); - if (rsa == NULL) { - LOG_ERROR("Error reading public key"); - return FUNC_RET_ERROR; - } - EVP_PKEY *pkey = EVP_PKEY_new(); - EVP_PKEY_assign_RSA(pkey, rsa); - - /*BIO* bo = BIO_new(BIO_s_mem()); - BIO_write(bo, pubKey, strlen(pubKey)); - RSA *key = 0; - PEM_read_bio_RSAPublicKey(bo, &key, 0, 0); - BIO_free(bo);*/ - -//RSA* rsa = EVP_PKEY_get1_RSA( key ); -//RSA * pubKey = d2i_RSA_PUBKEY(NULL, <der encoded byte stream pointer>, <num bytes>); - unsigned char buffer[512]; - BIO* b64 = BIO_new(BIO_f_base64()); - BIO* encoded_signature = BIO_new_mem_buf((void *) signatureB64, - strlen(signatureB64)); - BIO* biosig = BIO_push(b64, encoded_signature); - BIO_set_flags(biosig, BIO_FLAGS_BASE64_NO_NL); //Do not use newlines to flush buffer - unsigned int len = BIO_read(biosig, (void *) buffer, strlen(signatureB64)); -//Can test here if len == decodeLen - if not, then return an error - buffer[len] = 0; - - BIO_free_all(biosig); - - /* Create the Message Digest Context */ - if (!(mdctx = EVP_MD_CTX_create())) { - free_resources(pkey, mdctx); - LOG_ERROR("Error creating context"); - return FUNC_RET_ERROR; - } - if (1 != EVP_DigestVerifyInit(mdctx, NULL, EVP_sha256(), NULL, pkey)) { - LOG_ERROR("Error initializing digest"); - free_resources(pkey, mdctx); - return FUNC_RET_ERROR; - } - int en = strlen(stringToVerify); - func_ret = EVP_DigestVerifyUpdate(mdctx, stringToVerify, en); - if (1 != func_ret) { - LOG_ERROR("Error verifying digest %d", func_ret); - free_resources(pkey, mdctx); - return FUNC_RET_ERROR; - } - FUNCTION_RETURN result; - func_ret = EVP_DigestVerifyFinal(mdctx, buffer, len); - if (1 != func_ret) { - LOG_ERROR("Error verifying digest %d", func_ret); - } - result = (1 == func_ret ? FUNC_RET_OK : FUNC_RET_ERROR); - - free_resources(pkey, mdctx); return result; } -- Gitblit v1.9.1