Commit 9fbc3ba5 authored by Greg Williams's avatar Greg Williams
Browse files

Completed HMAC calculation/population/validation. Got socket reading/writing...

Completed HMAC calculation/population/validation. Got socket reading/writing fully working/tested. Updated project.yml to link in OpenSSL libcrypto. Updated Kinetic Ruby test server to use a simple TCPSocket impelementation, since data is not http. Also added read(x) command to test server to 'ask' for data to be sent for socket receive tests.
parent 45e1b802
Loading
Loading
Loading
Loading
+24 −0
Original line number Diff line number Diff line
@@ -47,6 +47,16 @@
    - *common_defines
    - TEST

:flags:
  :release:
    :link:
      :kinetic-c-client:
        - -l libssl
  :test:
    :link:
      :test_kinetic_hmac:
        - -l libssl

:cmock:
  :mock_prefix: mock_
  :when_no_prototypes: :warn
@@ -80,6 +90,20 @@
      - -DGNU_COMPILER
      - -w
      - ${1}
  :test_linker:
    :executable: gcc
    :name: test_linker
    :arguments:
      - "\"${1}\""
      - "-l crypto"
      - "-o \"${2}\""
  :release_linker:
    :executable: gcc
    :name: release_linker
    :arguments:
      - "\"${1}\""
      - "-l crypto"
      - "-o \"${2}\""

:plugins:
  :load_paths:
+18 −9
Original line number Diff line number Diff line
@@ -19,6 +19,8 @@
*/

#include "kinetic_api.h"
#include "kinetic_connction.h"
#include "kinetic_pdu.h"
#include "kinetic_logger.h"
#include <stdio.h>

@@ -29,7 +31,7 @@ void KineticApi_Init(const char* log_file)

const KineticConnection KineticApi_Connect(const char* host, int port, bool blocking)
{
    KineticConnection connection = KineticConnection_Create();
    KineticConnection connection = KineticConnection_Init();

    if (!KineticConnection_Connect(&connection, host, port, blocking))
    {
@@ -48,18 +50,25 @@ const KineticConnection KineticApi_Connect(const char* host, int port, bool bloc
}

KineticProto_Status_StatusCode KineticApi_SendNoop(
    KineticConnection* const connection,
    KineticMessage* const request,
    KineticMessage* const response)
    KineticPDU* const request, KineticPDU* const response,
    uint8_t* const requestBuffer, uint8_t* const responseBuffer)
{
    KineticProto_Status_StatusCode status = KINETIC_PROTO_STATUS_STATUS_CODE_INVALID_STATUS_CODE;
    KineticProto_Status_StatusCode status =
        KINETIC_PROTO_STATUS_STATUS_CODE_INVALID_STATUS_CODE;

    // Initialize request
    KineticExchange_Init(request->exchange, 1234, 5678, connection);
    KineticMessage_Init(request, request->exchange);
    KineticMessage_BuildNoop(request);
    KineticConnection_SendMessage(connection, request);
    KineticMessage_Init(request->message);
    KineticMessage_BuildNoop(request->message);

    KineticPDU_Init(request, request->exchange, requestBuffer, request->message, NULL, 0);

    // Send the request
    KineticConnection_SendPDU(request);

    // Associate response with same exchange as request
    response->exchange = request->exchange;
    if (KineticConnection_ReceiveMessage(connection, response))
    if (KineticConnection_ReceivePDU(connection, response))
    {
        status = KINETIC_PROTO_STATUS_STATUS_CODE_SUCCESS;
    }
+3 −7
Original line number Diff line number Diff line
@@ -22,16 +22,12 @@
#define _KINETIC_API_H

#include "kinetic_types.h"
#include "kinetic_proto.h"
#include "kinetic_connection.h"
#include "kinetic_exchange.h"
#include "kinetic_message.h"
#include "kinetic_pdu.h"

void KineticApi_Init(const char* log_file);
const KineticConnection KineticApi_Connect(const char* host, int port, bool blocking);
KineticProto_Status_StatusCode KineticApi_SendNoop(
    KineticConnection* const connection,
    KineticMessage* const request,
    KineticMessage* const response);
    KineticPDU* const request, KineticPDU* const response,
    uint8_t* const requestBuffer, uint8_t* const responseBuffer);

#endif // _KINETIC_API_H
+6 −10
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@
#include "kinetic_socket.h"
#include <string.h>

KineticConnection KineticConnection_Create(void)
KineticConnection KineticConnection_Init(void)
{
    KineticConnection connection;
    memset(&connection, 0, sizeof(connection));
@@ -48,20 +48,16 @@ bool KineticConnection_Connect(
    return connection->Connected;
}

bool KineticConnection_SendMessage(
    KineticConnection* const connection,
    KineticMessage* const request)
bool KineticConnection_SendPDU(KineticPDU* const request)
{
    // .... NEED TO SEND THE MESSAGE STILL!!!!!!!

    return (request->status.code == KINETIC_PROTO_STATUS_STATUS_CODE_SUCCESS);
    return (request->message->status.code == KINETIC_PROTO_STATUS_STATUS_CODE_SUCCESS);
}

bool KineticConnection_ReceiveMessage(
    KineticConnection* const connection,
    KineticMessage* const response)
bool KineticConnection_ReceivePDU(KineticPDU* const response)
{
    // .... NEED TO RECEIVE THE MESSAGE STILL!!!!!!!
    // KineticPDU_Init(&PDUOut, (uint8_t*)0x12345678, &MessageOut.proto, (uint8_t*)0xDEADBEEF, 789);

    return (response->status.code == KINETIC_PROTO_STATUS_STATUS_CODE_SUCCESS);
    return (response->message->status.code == KINETIC_PROTO_STATUS_STATUS_CODE_SUCCESS);
}
+4 −4
Original line number Diff line number Diff line
@@ -22,11 +22,11 @@
#define _KINETIC_CONNECTION_H

#include "kinetic_types.h"
#include "kinetic_message.h"
#include "kinetic_pdu.h"

KineticConnection KineticConnection_Create(void);
KineticConnection KineticConnection_Init(void);
bool KineticConnection_Connect(KineticConnection* const connection, const char* host, int port, bool blocking);
bool KineticConnection_SendMessage(KineticConnection* const connection, KineticMessage* const request);
bool KineticConnection_ReceiveMessage(KineticConnection* const connection, KineticMessage* const response);
bool KineticConnection_SendPDU(KineticPDU* const request);
bool KineticConnection_ReceivePDU(KineticPDU* const response);

#endif // _KINETIC_CONNECTION_H
Loading