aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2024-10-01 00:24:54 -0400
committerIan Moffett <ian@osmora.org>2024-10-01 00:25:11 -0400
commit9b50f08c3995c2215420bba8eca029b14514dfac (patch)
treec73be9812e8cfabc451dd370512a0d819c70957a
parent7d1a25045f30882dd5d5618a83b4bbb5564ebf8f (diff)
project: Convert project to library
Signed-off-by: Ian Moffett <ian@osmora.org>
-rw-r--r--.gitignore2
-rw-r--r--Makefile29
-rw-r--r--client/main.c64
-rw-r--r--lib/crypto/aes.c2
-rw-r--r--lib/crypto/ecdh.c2
-rw-r--r--lib/include/net/auth.h6
-rw-r--r--lib/include/net/param.h2
-rw-r--r--lib/include/net/stpsession.h4
-rw-r--r--lib/include/server.h (renamed from lib/include/libostp/server.h)4
-rw-r--r--lib/include/session.h (renamed from lib/include/libostp/session.h)0
-rw-r--r--lib/libostp/auth.c6
-rw-r--r--lib/libostp/param.c12
-rw-r--r--lib/libostp/server.c6
-rw-r--r--lib/libostp/session.c12
-rw-r--r--lib/net/frame.c4
-rw-r--r--ostp.d/init/main.c59
16 files changed, 45 insertions, 169 deletions
diff --git a/.gitignore b/.gitignore
index 88e66e2..b5cdb72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,3 @@
-so/
bin/
*.o
+*.so
diff --git a/Makefile b/Makefile
index af6d185..c287b3c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,22 +1,10 @@
-CFILES_OTD = $(shell find ostp.d/ -name "*.c")
CFILES_OTLIB = $(shell find lib/ -name "*.c")
-CFILES_CLIENT = $(shell find client/ -name "*.c")
-CFLAGS_OTD = -pedantic -Iostp.d/include/ -Ilib/include/
-CFLAGS_CLIENT = -pedantic -Iclient/include/ -Ilib/include/
CFLAGS_OTLIB = -pedantic -Ilib/include/ -fPIC -lssl -lcrypto
OTLIB_OBJ = $(CFILES_OTLIB:.c=.o)
CC = gcc
-.PHONY: all
-all: $(OTLIB_OBJ) bin/ostp.d bin/client
-
-bin/ostp.d: $(CFILES_OTD)
- mkdir -p $(@D)
- $(CC) $(CFLAGS_OTD) $(OTLIB_OBJ) $^ -lssl -lcrypto -o $@
-
-bin/client: $(CFILES_CLIENT)
- mkdir -p $(@D)
- $(CC) $(CFLAGS_CLIENT) $(OTLIB_OBJ) $^ -lssl -lcrypto -o $@
+libostp.so: $(OTLIB_OBJ)
+ gcc -shared -o $@ $(OTLIB_OBJ)
%.o: %.c
mkdir -p $(@D)
@@ -24,4 +12,15 @@ bin/client: $(CFILES_CLIENT)
.PHONY: clean
clean:
- rm -rf bin/ $(OTLIB_OBJ)
+ rm -rf $(OTLIB_OBJ)
+
+.PHONY: headers
+headers:
+ mkdir -p /usr/include/ostp/
+ cp -r lib/include/* /usr/include/ostp/
+
+.PHONY: install
+install:
+ cp libostp.so /usr/lib
+ chmod 0755 /usr/lib/libostp.so
+ ldconfig
diff --git a/client/main.c b/client/main.c
deleted file mode 100644
index 0f87639..0000000
--- a/client/main.c
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Hyra nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <libostp/session.h>
-#include <stdio.h>
-
-#define CENTRAL_SERVER "149.248.6.149"
-// #define CENTRAL_SERVER "127.0.0.1"
-
-int
-main(int argc, char **argv)
-{
- char buf[] = "Hello, World!\n";
- char recv_buf[4096];
- struct ostp_session s;
- int err;
-
- if ((err = session_new(CENTRAL_SERVER, &s)) < 0) {
- fprintf(stderr, "Failed to create new session!\n");
- return err;
- }
-
- if (argc >= 2) {
- if (session_send(buf, sizeof(buf), &s) < 0) {
- fprintf(stderr, "Failed to send data to server!\n");
- return -1;
- }
- }
-
- if (session_recv(recv_buf, sizeof(recv_buf), &s) < 0) {
- fprintf(stderr, "Failed to recv data from server!\n");
- return -1;
- }
-
- printf("%s\n", recv_buf);
- session_close(&s);
- return 0;
-}
diff --git a/lib/crypto/aes.c b/lib/crypto/aes.c
index c51c594..ee5aeb4 100644
--- a/lib/crypto/aes.c
+++ b/lib/crypto/aes.c
@@ -31,7 +31,7 @@
#include <openssl/evp.h>
#include <openssl/aes.h>
#include <openssl/rand.h>
-#include <crypto/aes.h>
+#include <ostp/crypto/aes.h>
#include <stdio.h>
#include <string.h>
diff --git a/lib/crypto/ecdh.c b/lib/crypto/ecdh.c
index c881ca1..70aee12 100644
--- a/lib/crypto/ecdh.c
+++ b/lib/crypto/ecdh.c
@@ -33,7 +33,7 @@
#include <openssl/pem.h>
#include <openssl/bn.h>
#include <openssl/err.h>
-#include <crypto/ecdh.h>
+#include <ostp/crypto/ecdh.h>
#include <stdio.h>
#define KEY_SIZE 32
diff --git a/lib/include/net/auth.h b/lib/include/net/auth.h
index 0f22d22..f3f47d1 100644
--- a/lib/include/net/auth.h
+++ b/lib/include/net/auth.h
@@ -30,9 +30,9 @@
#ifndef NET_AUTH_H_
#define NET_AUTH_H_
-#include <net/stpsession.h>
-#include <libostp/session.h>
-#include <libostp/server.h>
+#include <ostp/net/stpsession.h>
+#include <ostp/session.h>
+#include <ostp/server.h>
int handle_srq(struct ostp_client *c, struct ostp_listener *lp,
struct session_request *srq);
diff --git a/lib/include/net/param.h b/lib/include/net/param.h
index ba2a0a2..03282c1 100644
--- a/lib/include/net/param.h
+++ b/lib/include/net/param.h
@@ -30,8 +30,8 @@
#ifndef NET_PARAM_H_
#define NET_PARAM_H_
+#include <ostp/defs.h>
#include <stdint.h>
-#include <defs.h>
/*
* The Parameter Arbitration Packet which is crucial
diff --git a/lib/include/net/stpsession.h b/lib/include/net/stpsession.h
index 8b61da2..7f9d151 100644
--- a/lib/include/net/stpsession.h
+++ b/lib/include/net/stpsession.h
@@ -30,9 +30,9 @@
#ifndef STP_SESSION_H_
#define STP_SESSION_H_
-#include <crypto/aes.h>
+#include <ostp/crypto/aes.h>
+#include <ostp/defs.h>
#include <stdint.h>
-#include <defs.h>
/*
* 2^12 (4096) bytes is a common page size on
diff --git a/lib/include/libostp/server.h b/lib/include/server.h
index 0e232f6..9e09f78 100644
--- a/lib/include/libostp/server.h
+++ b/lib/include/server.h
@@ -31,7 +31,7 @@
#define LIBOSTP_SERVER_H_
#include <sys/select.h>
-#include <libostp/session.h>
+#include <ostp/session.h>
#include <pthread.h>
#include <stddef.h>
@@ -44,7 +44,7 @@ struct ostp_client {
};
struct ostp_listener {
- int(*on_recv)(struct ostp_client *c, const char *buf, size_t len);
+ int(*on_recv)(struct ostp_client *c, const void *buf, size_t len);
int port;
/* -- Private -- */
diff --git a/lib/include/libostp/session.h b/lib/include/session.h
index 397fa68..397fa68 100644
--- a/lib/include/libostp/session.h
+++ b/lib/include/session.h
diff --git a/lib/libostp/auth.c b/lib/libostp/auth.c
index f2097bc..7b840f6 100644
--- a/lib/libostp/auth.c
+++ b/lib/libostp/auth.c
@@ -28,9 +28,9 @@
*/
#include <sys/wait.h>
-#include <net/auth.h>
-#include <crypto/ecdh.h>
-#include <otconfig.h>
+#include <ostp/net/auth.h>
+#include <ostp/crypto/ecdh.h>
+#include <ostp/otconfig.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <unistd.h>
diff --git a/lib/libostp/param.c b/lib/libostp/param.c
index 8b83f46..83978d9 100644
--- a/lib/libostp/param.c
+++ b/lib/libostp/param.c
@@ -27,12 +27,12 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <net/stpsession.h>
-#include <libostp/session.h>
-#include <crypto/aes.h>
-#include <net/param.h>
-#include <net/auth.h>
-#include <otconfig.h>
+#include <ostp/net/stpsession.h>
+#include <ostp/net/param.h>
+#include <ostp/net/auth.h>
+#include <ostp/session.h>
+#include <ostp/crypto/aes.h>
+#include <ostp/otconfig.h>
#include <stdio.h>
static int
diff --git a/lib/libostp/server.c b/lib/libostp/server.c
index 588a6d2..aea987c 100644
--- a/lib/libostp/server.c
+++ b/lib/libostp/server.c
@@ -27,10 +27,10 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <libostp/server.h>
-#include <net/auth.h>
-#include <net/stpsession.h>
+#include <ostp/net/auth.h>
+#include <ostp/net/stpsession.h>
#include <arpa/inet.h>
+#include <ostp/server.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
diff --git a/lib/libostp/session.c b/lib/libostp/session.c
index 39acba2..8f2fb28 100644
--- a/lib/libostp/session.c
+++ b/lib/libostp/session.c
@@ -27,12 +27,12 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <libostp/session.h>
-#include <net/stpsession.h>
-#include <net/param.h>
-#include <crypto/ecdh.h>
-#include <defs.h>
-#include <otconfig.h>
+#include <ostp/net/stpsession.h>
+#include <ostp/net/param.h>
+#include <ostp/crypto/ecdh.h>
+#include <ostp/defs.h>
+#include <ostp/session.h>
+#include <ostp/otconfig.h>
#include <arpa/inet.h>
#include <termios.h>
#include <stdint.h>
diff --git a/lib/net/frame.c b/lib/net/frame.c
index 1f33b09..7363266 100644
--- a/lib/net/frame.c
+++ b/lib/net/frame.c
@@ -27,8 +27,8 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-#include <net/stpsession.h>
-#include <crypto/aes.h>
+#include <ostp/net/stpsession.h>
+#include <ostp/crypto/aes.h>
#include <arpa/inet.h>
#include <string.h>
#include <stdlib.h>
diff --git a/ostp.d/init/main.c b/ostp.d/init/main.c
deleted file mode 100644
index 9b2a836..0000000
--- a/ostp.d/init/main.c
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (c) 2023-2024 Ian Marco Moffett and the Osmora Team.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of Hyra nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include <libostp/session.h>
-#include <libostp/server.h>
-#include <string.h>
-#include <stdio.h>
-
-static int
-handle_data(struct ostp_client *s, const char *buf, size_t len)
-{
- printf("Got data!\n");
- return 0;
-}
-
-int
-main(void)
-{
- struct ostp_listener l;
- int error;
-
- listener_init(&l);
- l.on_recv = handle_data;
-
- if ((error = listener_bind(&l)) < 0) {
- return error;
- }
- if ((error = listener_poll(&l)) < 0) {
- return error;
- }
-
- return 0;
-}