]> git.feebdaed.xyz Git - socialize.git/commitdiff
modifying to chat room
authorseantywork <seantywork@gmail.com>
Tue, 18 Feb 2025 13:36:47 +0000 (13:36 +0000)
committerseantywork <seantywork@gmail.com>
Tue, 18 Feb 2025 13:36:47 +0000 (13:36 +0000)
hack/tls.sh [new file with mode: 0755]
include/rat-chat/core.h
include/rat-chat/sock/core.h
src/core.c
src/hubsock/core.c
tls/ca.crt [deleted file]
tls/sub.crt [deleted file]
tls/sub.csr [deleted file]

diff --git a/hack/tls.sh b/hack/tls.sh
new file mode 100755 (executable)
index 0000000..7f1f46e
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+
+
+echo "gen ca..."
+
+openssl genrsa -out ca_priv.pem 4096
+
+openssl rsa -in ca_priv.pem -outform PEM -pubout -out ca_pub.pem
+
+openssl req -x509 -new -key ca_priv.pem -days 365 -out ca.crt.pem -subj "/CN=testca"
+
+
+echo "gen server..."
+
+openssl genrsa -out server_priv.pem 4096
+
+openssl rsa -in server_priv.pem -outform PEM -pubout -out server_pub.pem
+
+openssl req -key server_priv.pem -new -sha256 -out server.csr -subj "/CN=server.test"
+
+echo "signing server..."
+
+openssl  x509 -req -extfile <(printf "subjectAltName = DNS:server.test") -days 180 -in server.csr -CA ca.crt.pem -CAkey ca_priv.pem -CAcreateserial -sha256 -out server.crt.pem
+
+
+echo "gen sub1..."
+
+openssl genrsa -out sub_priv1.pem 4096
+
+openssl rsa -in sub_priv1.pem -outform PEM -pubout -out sub_pub1.pem
+
+openssl req -key sub_priv1.pem -new -sha256 -out sub1.csr -subj "/CN=sub1.test"
+
+echo "gen sub2..."
+
+openssl genrsa -out sub_priv2.pem 4096
+
+openssl rsa -in sub_priv2.pem -outform PEM -pubout -out sub_pub2.pem
+
+openssl req -key sub_priv2.pem -new -sha256 -out sub2.csr -subj "/CN=sub2.test"
+
+echo "signing sub1..."
+
+openssl  x509 -req -extfile <(printf "subjectAltName = DNS:sub1.test") -days 180 -in sub1.csr -CA ca.crt.pem -CAkey ca_priv.pem -CAcreateserial -sha256 -out sub1.crt.pem
+
+echo "signiing sub2..."
+
+openssl  x509 -req -extfile <(printf "subjectAltName = DNS:sub2.test") -days 180 -in sub2.csr -CA ca.crt.pem -CAkey ca_priv.pem -CAcreateserial -sha256 -out sub2.crt.pem
+
+
+/bin/cp -Rf *.pem ../tls/
+
+rm -rf *.pem *.srl *.csr
\ No newline at end of file
index 70f851fa5b331358697ead082091c15fcd03135b..8a2a09529eaa9f269f32bdded591c54f9b0b4e1f 100644 (file)
 #define HUB_BODY_BYTELEN   HUB_WORD * 1
 #define HUB_BODY_BYTEMAX   HUB_WORD * 1280 //10KB
 #define HUB_TIMEOUT_MS 5000
+
 #define HUB_HEADER_AUTHSOCK "AUTHSOCK"
+#define HUB_HEADER_REGSOCK_CREATE "REGSOCK_CREATE"
+#define HUB_HEADER_REGSOCK_JOIN "REGSOCK_JOIN"
+
+
 #define HUB_HEADER_AUTHFRONT "AUTHFRONT"
 #define HUB_HEADER_AUTHFRANK "AUTHFRANK"
 #define HUB_HEADER_SENDSOCK "SENDSOCK"
@@ -47,6 +52,8 @@
 #define HUB_HEADER_SENDFRANK "SENDFRANK"
 #define HUB_HEADER_RECVFRANK "RECVFRANK"
 
+
+
 #define TRUE 1
 #define FALSE 0
 #define MAX_BUFF HUB_BODY_BYTEMAX
 #endif
 
 #ifndef SERVER_KEY
-# define SERVER_KEY "tls/sub_priv.pem"
+# define SERVER_KEY "tls/server_priv.pem"
 #endif
 
 #ifndef SERVER_CERT
-# define SERVER_CERT "tls/sub.crt"
+# define SERVER_CERT "tls/server.crt.pem"
 #endif
 
 #ifndef HUB_CA_CERT
@@ -155,9 +162,9 @@ struct CHANNEL_CONTEXT {
     char pw[MAX_PW_LEN];
     SSL *ssl;
     SSL_CTX *ctx;
+    int fd_ptr;
     int fds[MAX_CONN];
-    SSL *ssls[MAX_CONN];
-    SSL_CTX *ctxs[MAX_CONN];
+
 };
 
 struct SOCK_CONTEXT {
@@ -166,7 +173,7 @@ struct SOCK_CONTEXT {
     SSL *ssl;
     SSL_CTX *ctx;
     char id[MAX_ID_LEN];
-
+    int chan_idx;
 };
 
 
@@ -212,14 +219,24 @@ int update_chanctx_from_userinfo(char* id, char* pw);
 int update_chanctx_from_sockctx(int fd, char* id);
 
 
-int get_chanctx_by_id(char* id);
 
-int get_chanctx_by_fd(int fd, int type);
 
 int set_sockctx_by_fd(int fd);
 
 int get_sockctx_by_fd(int fd);
 
+int set_sockctx_id_by_fd(int fd, char* id);
+
+int get_sockctx_id_by_fd(int fd, char* id);
+
+int set_chanctx_by_id(char* id, int create, int fd);
+
+int get_chanctx_by_id(char* id);
+
+int set_sockctx_chan_id_by_fd(int fd, int chan_id);
+
+int get_sockctx_chan_id_by_fd(int fd);
+
 
 
 int calloc_chanctx();
index f3da99719a153f670e82ef10d132a38fac2b7bef..0242b59d54fc914a036a5b3cb1d067114e108016 100644 (file)
@@ -17,6 +17,8 @@ void sock_handle_client(int cfd);
 
 void sock_authenticate(int cfd);
 
-void sock_communicate(int chan_idx);
+void sock_register(int cfd);
+
+void sock_communicate(int chan_idx, int sock_idx);
 
 #endif
\ No newline at end of file
index 406d6609d4484ce96b0332cdaa65fb16a059dbaf..400fcab24bee4f223696cb72199b9c126c3875f6 100644 (file)
@@ -302,96 +302,181 @@ int update_chanctx_from_sockctx(int fd, char* id){
 }
 
 
-int get_chanctx_by_id(char* id){
+
+
+
+
+int set_sockctx_by_fd(int fd){
+
+
+    int new_idx = calloc_sockctx();
+
+    if(new_idx < 0){
+
+
+        return -1;
+
+    }
+
+    SOCK_CTX[new_idx].sockfd = fd;
+
+    return new_idx;
+}
+
+
+
+
+int get_sockctx_by_fd(int fd){
 
 
     for(int i = 0; i < MAX_CONN; i++){
 
-        if(strcmp(CHAN_CTX[i].id, id) == 0){
+
+        if(SOCK_CTX[i].sockfd == fd){
 
             return i;
 
         }
 
+
     }
 
 
+
     return -1;
 }
 
 
+int set_sockctx_id_by_fd(int fd, char* id){
 
-int get_chanctx_by_fd(int fd, int type){
+    int idx = get_sockctx_by_fd(fd);
 
+    if(idx < 0){
 
-    if(type == ISSOCK){
+        return -1;
+    }
+
+    memcpy(SOCK_CTX[idx].id, id, MAX_ID_LEN);
 
-        for(int i = 0; i < MAX_CONN; i++){
+    return 0;
+}
 
-            if(CHAN_CTX[i].sockfd == fd){
+int get_sockctx_id_by_fd(int fd, char* id){
 
-                return i;
 
-            }
 
-        }
+    int idx = get_sockctx_by_fd(fd);
 
+    if(idx < 0){
 
+        return -1;
     }
 
+    memcpy(id, SOCK_CTX[idx].id, MAX_ID_LEN);
 
+    return 0;
 
-    return -1;
 }
 
 
 
+int set_chanctx_by_id(char* id, int create, int fd){
 
+    int idx = get_chanctx_by_id(id);
 
+    if(create == 1){
 
-int set_sockctx_by_fd(int fd){
+        if(idx < 0){
 
+            idx = calloc_chanctx();
 
-    int new_idx = calloc_sockctx();
+            memcpy(CHAN_CTX[idx].id, id, MAX_ID_LEN);
 
-    if(new_idx < 0){
+            CHAN_CTX[idx].fds[CHAN_CTX[idx].fd_ptr] = fd;
 
+            CHAN_CTX[idx].fd_ptr += 1;
+
+        } else {
+
+            return -1;
+        }
+
+
+    } else {
+
+
+        if(idx < 0){
+
+            return -2;
+
+        } else {
+
+            CHAN_CTX[idx].fds[CHAN_CTX[idx].fd_ptr] = fd;
+            CHAN_CTX[idx].fd_ptr += 1;
+        }
 
-        return -1;
 
     }
 
-    SOCK_CTX[new_idx].sockfd = fd;
 
-    return new_idx;
-}
+    return idx;
 
 
+}
 
 
-int get_sockctx_by_fd(int fd){
+int get_chanctx_by_id(char* id){
 
 
     for(int i = 0; i < MAX_CONN; i++){
 
-
-        if(SOCK_CTX[i].sockfd == fd){
+        if(strcmp(CHAN_CTX[i].id, id) == 0){
 
             return i;
 
         }
 
+    }
+
+
+    return -1;
+}
+
 
+
+int set_sockctx_chan_id_by_fd(int fd, int chan_id){
+
+
+    int idx = get_sockctx_by_fd(fd);
+
+    if(idx < 0){
+
+        return -1;
     }
 
+    SOCK_CTX[idx].chan_idx = chan_id;
 
+    return 0;
 
-    return -1;
 }
 
 
 
 
+int get_sockctx_chan_id_by_fd(int fd){
+
+
+    int idx = get_sockctx_by_fd(fd);
+
+    if(idx < 0){
+
+        return -1;
+    }
+
+    return SOCK_CTX[idx].chan_idx;
+
+}
+
 
 
 int calloc_chanctx(){
@@ -412,6 +497,7 @@ int calloc_chanctx(){
             CHAN_CTX[i].ssl = NULL;
             CHAN_CTX[i].ctx = NULL;
 
+
             return i;
 
         }
@@ -474,6 +560,7 @@ int calloc_sockctx(){
             SOCK_CTX[i].ctx = NULL;
             SOCK_CTX[i].ssl = NULL;
             SOCK_CTX[i].sockfd = 0;
+            SOCK_CTX[i].chan_idx = -1;
 
             SOCK_CTX[i].allocated = 1;
 
@@ -807,64 +894,6 @@ void ctx_write_packet(struct HUB_PACKET* hp){
     int valwrite = 0;
 
 
-    if(hp->ctx_type == CHAN_ISSOCK){
-        
-
-        valwrite = chanctx_write(ISSOCK, hp->id, HUB_HEADER_BYTELEN, hp->header);
-
-        if(valwrite <= 0){
-
-            printf("packet send header failed\n");
-
-            hp->flag = valwrite;
-
-            return;
-
-        }
-
-        uint8_t body_len_byte[HUB_BODY_BYTELEN] = {0};
-
-        uint64_t body_len_new = 0;
-
-        body_len_new = htonll(hp->body_len);
-
-        
-        memcpy(body_len_byte, &body_len_new, HUB_BODY_BYTELEN);
-
-
-        valwrite = chanctx_write(ISSOCK, hp->id, HUB_BODY_BYTELEN, body_len_byte);
-
-        if(valwrite <= 0){
-
-            printf("packet send body len failed\n");
-
-            hp->flag = valwrite;
-
-            return;
-
-        }
-
-        valwrite = chanctx_write(ISSOCK, hp->id, hp->body_len, hp->wbuff);
-
-
-        if(valwrite <= 0){
-
-            printf("packet send buff failed\n");
-
-            hp->flag = valwrite;
-
-            return;
-
-        } 
-
-        hp->flag = valwrite;
-
-        return;
-
-
-    }
-
-
     if(hp->ctx_type == ISSOCK){
 
         valwrite = sockctx_write(hp->fd, HUB_HEADER_BYTELEN, hp->header);
@@ -933,82 +962,6 @@ void ctx_read_packet(struct HUB_PACKET* hp){
 
     int valread = 0;
 
-    if(hp->ctx_type == CHAN_ISSOCK){
-
-        valread = chanctx_read(ISSOCK, hp->id, HUB_HEADER_BYTELEN, hp->header);
-
-        if(valread <= 0){
-
-            printf("packet recv header failed\n");
-
-            hp->flag = valread;
-
-            return;
-
-        }
-
-        uint8_t body_len_byte[HUB_BODY_BYTELEN] = {0};
-
-        uint64_t body_len = 0;
-
-        valread = chanctx_read(ISSOCK, hp->id, HUB_BODY_BYTELEN, body_len_byte);
-
-
-        if(valread <= 0){
-
-            printf("packet recv body len failed\n");
-
-            hp->flag = valread;
-
-            return;
-
-        }
-
-        memcpy(&body_len, body_len_byte, HUB_BODY_BYTELEN);
-
-        body_len = ntohll(body_len);
-
-        if(body_len > HUB_BODY_BYTEMAX){
-
-            printf("packet body len too long \n");
-
-            hp->flag = -10;
-
-            return;
-        }
-
-        hp->body_len = body_len;
-
-        hp->rbuff = (uint8_t*)malloc(hp->body_len * sizeof(uint8_t));
-
-        memset(hp->rbuff, 0, hp->body_len * sizeof(uint8_t));
-
-        valread = chanctx_read(ISSOCK, hp->id, hp->body_len, hp->rbuff);
-
-        if(valread <= 0){
-
-            printf("packet recv body failed\n");
-
-            free(hp->rbuff);
-
-            hp->flag = valread;
-
-            return;
-
-        }
-
-
-        hp->flag = valread;
-
-        return;
-
-
-    }
-
-
-
-
-
     if(hp->ctx_type == ISSOCK){
 
         valread = sockctx_read(hp->fd, HUB_HEADER_BYTELEN, hp->header);
index 58b1323405b47c581caf5ca8145232317e7f1653..7de191a19112adebc413b738435a5306d8031d50 100644 (file)
@@ -305,10 +305,10 @@ void sock_handle_client(int cfd){
 
     pthread_mutex_lock(&G_MTX);
 
-    int chan_idx = get_chanctx_by_fd(cfd, ISSOCK);
+    int sock_idx = get_sockctx_by_fd(cfd);
 
 
-    if(chan_idx < 0){
+    if(sock_idx < 0){
         
         sock_authenticate(cfd);
 
@@ -317,7 +317,18 @@ void sock_handle_client(int cfd){
         return;
     }
 
-    sock_communicate(chan_idx);
+    int chan_idx = get_sockctx_chan_id_by_fd(cfd);
+
+    if(chan_idx < 0){
+
+        sock_register(cfd);
+
+        pthread_mutex_unlock(&G_MTX);
+
+        return;
+    }
+
+    sock_communicate(chan_idx, sock_idx);
 
     pthread_mutex_unlock(&G_MTX);
 
@@ -339,7 +350,7 @@ void sock_authenticate(int cfd){
 
     int sock_idx = get_sockctx_by_fd(cfd);
 
-    fmt_logln(LOGFP,"not registered to chan ctx, auth"); 
+    fmt_logln(LOGFP,"not registered to sock ctx, auth"); 
 
     if(sock_idx < 0){
 
@@ -367,6 +378,17 @@ void sock_authenticate(int cfd){
     
 
 
+    if(strcmp(hp.header, HUB_HEADER_AUTHSOCK) != 0){
+
+        fmt_logln(LOGFP,"not authenticate header: %s", hp.header); 
+
+        free_sockctx(sock_idx, 1);
+
+        return;
+
+    }
+    
+
     int verified = sig_verify(hp.rbuff, CA_CERT);
 
     if(verified < 1){
@@ -383,9 +405,9 @@ void sock_authenticate(int cfd){
 
     
 
-    int ret_cn = extract_common_name(id, hp.rbuff);
+    int ret = extract_common_name(id, hp.rbuff);
 
-    if(ret_cn != 1){
+    if(ret != 1){
 
         fmt_logln(LOGFP,"invalid id"); 
 
@@ -402,6 +424,22 @@ void sock_authenticate(int cfd){
 
     free(hp.rbuff);
 
+    ret = set_sockctx_id_by_fd(cfd, id);
+
+    if (ret < 0){
+
+        fmt_logln(LOGFP, "failed to set sockctx");
+
+        free_sockctx(sock_idx, 1);
+
+        free(hp.rbuff);
+
+        return;
+
+    }
+
+    /*
+
     int chan_idx = update_chanctx_from_sockctx(cfd, id);
 
     if (chan_idx < 0){
@@ -415,6 +453,7 @@ void sock_authenticate(int cfd){
     }
 
 
+    */
     uint64_t body_len = strlen("SUCCESS") + 1;
 
     memset(hp.header, 0, HUB_HEADER_BYTELEN);
@@ -443,7 +482,7 @@ void sock_authenticate(int cfd){
 
     }
 
-    fmt_logln(LOGFP, "sent");
+    fmt_logln(LOGFP, "auth success sent");
 
     return;
 
@@ -451,28 +490,140 @@ void sock_authenticate(int cfd){
 }
 
 
+void sock_register(int cfd){
+
+
+    int valread;
+    int valwrite;
+
+    int result;
+
+    int is_create;
+
+    struct HUB_PACKET hp;
+
+
+    uint8_t id[MAX_ID_LEN] = {0};
+
+    int sock_idx = get_sockctx_by_fd(cfd);
+
+    fmt_logln(LOGFP,"not registered to sock ctx, auth"); 
+
+    if(sock_idx < 0){
+
+        fmt_logln(LOGFP,"failed to get sock idx"); 
+
+        return;
+    }
 
-void sock_communicate(int chan_idx){
 
-    fmt_logln(LOGFP, "incoming sock communication to front");
+    hp.ctx_type = ISSOCK;
+    hp.fd = SOCK_CTX[sock_idx].sockfd;
+    
+    ctx_read_packet(&hp);
+
+    if(hp.flag <= 0){
 
-    int frontfd = CHAN_CTX[chan_idx].frontfd;
 
-    if(frontfd == 0){
+        fmt_logln(LOGFP,"failed to read sock"); 
 
-        fmt_logln(LOGFP, "no front exists for communication");
+        free_sockctx(sock_idx, 1);
 
         return;
 
     }
     
-    fmt_logln(LOGFP, "front exists");
 
-    struct HUB_PACKET hp;
+    if(strcmp(hp.header, HUB_HEADER_REGSOCK_CREATE) == 0){
+
+        is_create = 1;
+
+        memcpy(id, hp.rbuff, MAX_ID_LEN);
+
+        result = set_chanctx_by_id(id, 1, cfd);
+
+    } else if (strcmp(hp.header, HUB_HEADER_REGSOCK_JOIN) == 0){
+
+        is_create = 0;
+
+        memcpy(id, hp.rbuff, MAX_ID_LEN);
+
+        result = set_chanctx_by_id(id, 0, cfd);
+
+    } else {
+
+        fmt_logln(LOGFP,"not register header: %s", hp.header); 
+
+        free_sockctx(sock_idx, 1);
+
+        return;
+
+    }
+    
+
+    if (result < 0){
+
+        fmt_logln(LOGFP,"failed to register: result: %d", result); 
+
+        free_sockctx(sock_idx, 1);
+
+        return;
+    }
+
+
+    uint64_t body_len = strlen("SUCCESS") + 1;
+
+    memset(hp.header, 0, HUB_HEADER_BYTELEN);
+
+    memset(hp.wbuff, 0, MAX_BUFF);
 
     hp.ctx_type = CHAN_ISSOCK;
 
-    strcpy(hp.id, CHAN_CTX[chan_idx].id);
+    if(is_create == 1){
+
+        strcpy(hp.header, HUB_HEADER_REGSOCK_CREATE);
+
+    } else {
+
+        strcpy(hp.header, HUB_HEADER_REGSOCK_JOIN);
+    }
+
+
+    hp.body_len = body_len;
+
+    strcat(hp.wbuff,"SUCCESS");
+
+    strcpy(hp.id, id);
+
+    fmt_logln(LOGFP, "writing auth result..");
+    
+    ctx_write_packet(&hp);
+
+    if(hp.flag <= 0){
+
+        fmt_logln(LOGFP, "failed to send");
+
+        return;
+
+    }
+
+    fmt_logln(LOGFP, "register success sent");
+
+    return;
+
+}
+
+
+void sock_communicate(int chan_idx, int sock_idx){
+
+    fmt_logln(LOGFP, "incoming sock communication ");
+
+
+    struct HUB_PACKET hp;
+
+    hp.ctx_type = ISSOCK;
+
+    hp.fd = SOCK_CTX[sock_idx].sockfd;
 
     ctx_read_packet(&hp);
 
@@ -488,9 +639,9 @@ void sock_communicate(int chan_idx){
 
     memset(hp.wbuff, 0, MAX_BUFF);
 
-    hp.ctx_type = CHAN_ISFRONT;
+    hp.ctx_type = ISSOCK;
 
-    strcpy(hp.header, HUB_HEADER_RECVFRONT);
+    //strcpy(hp.header, HUB_HEADER_RECVFRONT);
 
     strncpy(hp.wbuff, hp.rbuff, hp.body_len);
 
@@ -498,16 +649,24 @@ void sock_communicate(int chan_idx){
 
     free(hp.rbuff);
 
-    ctx_write_packet(&hp);
+    int counter = CHAN_CTX[chan_idx].fd_ptr;
 
-    if(hp.flag <= 0){
+    for(int i = 0; i < counter; i++){
 
-        fmt_logln(LOGFP, "failed to send to front");
+        hp.fd = CHAN_CTX[chan_idx].fds[i];
+
+        ctx_write_packet(&hp);
+
+        if(hp.flag <= 0){
+
+            fmt_logln(LOGFP, "failed to send to peer: %d", i);
+
+            continue;
+        } 
+    }
 
-        return;
-    } 
 
-    fmt_logln(LOGFP, "send to front");
+    fmt_logln(LOGFP, "sent to peer");
 
     return;
 }
\ No newline at end of file
diff --git a/tls/ca.crt b/tls/ca.crt
deleted file mode 100644 (file)
index f22de82..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIFFTCCAv2gAwIBAgIUKEjIY8AOTELEiqp/Rx/zYdclnVcwDQYJKoZIhvcNAQEL
-BQAwGjEYMBYGA1UEAwwPY2FAZmVlYmRhZWQueHl6MB4XDTI0MDUwNDAyMDUxOVoX
-DTM0MDUwMjAyMDUxOVowGjEYMBYGA1UEAwwPY2FAZmVlYmRhZWQueHl6MIICIjAN
-BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAuiTwW9Fkha7BNq/tF+ZRePIvlDBw
-h/div9RmCbneMdd1qot5iuS2BXpuzVLlSwKEKoUntRSfIjRj2Q3NDJ95XGocsCuT
-Prj8Bt1t+Kwr5NwyOn1ea6mXMJnMqRlnQznDDWVj+/mVXdJzBc175viToCWk8F/b
-RyJhYQVUL8xXu+CiNQCkRuzdo6UBfTQBlpdoN0x44w5Td083En548qn4jAOhO+mw
-mrO8+WsAyMPNFBLNEXBKF1PN3nC7ryySRLlE/rxnDGxSShjDI0ItgNTFr6rhUenK
-d6n/czM72WdUkHPLPIEO6DN+EDfCPMl9gz/gy3Zrfxg/nuEwrV7GtT69+5diesSt
-AJ2BRUScF1RKVevuzOGB3w2SSiZO4CbxYvvwYQA0MLE9Uhvexkq1xGkkgEqOaFHd
-w3EoTT+Q7JXgA70vGXhp0tOMtkYSGN84gBvXZbB9g7gpZbaZe7L0Mn3tBqqWjEcF
-OdrquXyfP2/9dbCAnL6AVitGZ74UKbV4U1TxW//+ysDt6h3ns3M+y5krFdVe/FkY
-XIyzTJyyqZqtrqX8xG2F72KFCQ0lBTtQm664rufa7UoVE32Lt6b2GasHn8dJVDbj
-i06p07BHkiLNf3YbGPSebh3Sm258LaY+eTK/R/y/hRjxyDAka9ng8eps1m3vdewd
-4SCmLD1ou3b6rxsCAwEAAaNTMFEwHQYDVR0OBBYEFBgBUQHuYfawyeL0Z7ymU4QE
-jcylMB8GA1UdIwQYMBaAFBgBUQHuYfawyeL0Z7ymU4QEjcylMA8GA1UdEwEB/wQF
-MAMBAf8wDQYJKoZIhvcNAQELBQADggIBACf3RPLAjt+DAijU5YG41E0KZ5lQj3PT
-wla+5PB/8avVjgKvP1mkcGhYEq75DRT1T9MdnPRKUCqZCcRUb2nPQCaq/jNSOdbs
-OnlM9qJTZJezwOthUMCNwBMLJJbvTBBrLyaRXaCHN1wcfavIyGMCrqVKW0FfwhaF
-UgwAhG4maTw283lq+/j/9xoPuP7XHkbkRDW3TINS0dEQM1RNNKPVdyMOErKLNBaT
-9DRFWKjRXk2ZtBJ1XxAyT9LipfUVYgjETX/iVV3kknsngM2rtMpjb6W+9f7pfOuh
-gUacxpLflBVkzXYFgsLm6p+wg0l9V3zuaEZELIo2KgcT1jwpBgXvjtye5urKElkh
-JHr07raS8JFrF+L8lcjaXhb28lLDp4fRT8GHEl1/naASVvtZxlEEXnnrkJ6A0jD0
-Vt8balZMYZDoq+A4iYPk6LlHgsYOOnH87L7dhqED+xAZm6fzDZyilUioTVtmIOsC
-5/ybtUdYrK1n9PqfhA/awYYW2vY7M3HFkEjy+gf3VOcdFzpssSUJmyt359B/VRDR
-V5ISq4JA5CyoO/2yKbLEiKW7kY8DiiQjKQ+27zB+KUB0yVSO+xb1dm93zOE29yql
-3cQgBN2CW13Xe/rMNdu53ToE0FIwheRBXtiPsh+bw7MDUStbgIOz/mAszWcbLcai
-ZVo3eVTwCWoN
------END CERTIFICATE-----
diff --git a/tls/sub.crt b/tls/sub.crt
deleted file mode 100644 (file)
index 79d54a5..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIEwzCCAqsCFGJACNTxHt8lNKG5UoBZHFyKF+frMA0GCSqGSIb3DQEBCwUAMBox
-GDAWBgNVBAMMD2NhQGZlZWJkYWVkLnh5ejAeFw0yNDA1MDQwMjA1MjFaFw0yNTA1
-MDQwMjA1MjFaMCIxIDAeBgNVBAMMF3NlYW50eXdvcmtAZmVlYmRhZWQueHl6MIIC
-IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxP8l01USO8HYM9S/5q/9GnJu
-Xdx5dTOG4YpFaQdQ+hUfGaBc76D/FnRQE2XgL6r1DZ4tEwy3BZ1UXr3AiOzKQzse
-l8/E1ChgsF8RPXNNIFjkR9EHSMBjC5Wq6T0ATWG8CR/0I4VD7S3Tdd9caT41RbbJ
-WE3lY9S92hn47X+b6ae48UdMn+d2ZNpCQ22nk7chee/UJhQLTQv69IkvonYPJPP8
-PStkzq72xV8Mj28zU0D+Eua2BvDpA76DO08xPB9BprGgF2aqZ3yI63tFWy+kgEXF
-LPLsU6T+wA05dztewBuCQCdfs1NJWwF3JI2HUfDhRc05IO1aV1I6Dq1W9ZH5EyBz
-tGXOD/+ec46AR8h1gpEgir894MdxdP562y1zShRs8nm0DKjkeewgYQ6+2AaTq+jC
-H020y9nRFNIO4sXntl4xYsRVR9G90PosVbOv95NkgWpGWTW/6BtxjVQ/5iI1w9ae
-DmPD7NqD6cIC53TEPllWr1rv1xwO91ZIzoM/5PgLGBIhwWWXK6BDwVU4YOled0Yd
-jr6me7+95+QrEFK7M+Ar4sBnxSBn2BEc6rGOaeG8TbKBMkt4JQJuwbsIQcAWfQmD
-AGDoCzxT4+Y53Z+Rlc4SUurbPeoFE+1PsmnVyHQSyes29DzPQKUSUO67I36YP7fO
-AWNv/NQew7UzDFJV8kMCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAThTtYGycDU8a
-y50NIuz1laYfHLVRT95LSkzq3qZLiQk4ZEP0nVEEWMueY17ObaQ6WC9EY9r+JqAG
-Ng0eUcchVtQoCveeUjKXVQZNTc1pgW5UVHlfzbxgSlDGWB3wwssywMDeubnToalz
-1ksnBPLX7KWnmZWFCjU7jIBUdy0qYdVRH6IaWuAQZJ41FfszWfRnFAuaQFxnZtkt
-fjanuGYKQophT3tu8yCYFr6YqT44FrQ0DIJHRs5F9jUsg7aQTnWlmhmmDMxoPr0T
-ycObH4ZwHbexqzwJGH/ZoX0Sf/bFmFtf/K3xytt921cxMjF8MpjVIx6NrgSy8Ngr
-gRW+XiNW0aRlimYKu0ES9dhKRywXHH7R22sivRWdDWv1t1lo+Lr5EMTM68sO09+s
-KO6z0OKgyfBT7VHzPAsCo2tPFORBlEkh/siKEWyiMgWYN/3KIQT1HDjObmOyCuxE
-Yz7QuRKrHbkQPKu9zTVa6/stX8X82nSet5JPF/LIO5h+R971gkxIjpKHlBWJlvqw
-22UIkJ1s/05G1YqfRef6ADTWEN8xBWyiIhuIYcly/HI5DjMZ/J3VzSbk/JajSGIc
-lRqrn/I0Lfefb1gKZ9DNydzSIBwtv4jikYaLhov0jugSze8bSKf+ktR30JCXXtv2
-IPXwvSGLSRtzfqlRRu9Lx4RMvzSNY7I=
------END CERTIFICATE-----
diff --git a/tls/sub.csr b/tls/sub.csr
deleted file mode 100644 (file)
index 1cf4784..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
------BEGIN CERTIFICATE REQUEST-----
-MIIEZzCCAk8CAQAwIjEgMB4GA1UEAwwXc2VhbnR5d29ya0BmZWViZGFlZC54eXow
-ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDE/yXTVRI7wdgz1L/mr/0a
-cm5d3Hl1M4bhikVpB1D6FR8ZoFzvoP8WdFATZeAvqvUNni0TDLcFnVRevcCI7MpD
-Ox6Xz8TUKGCwXxE9c00gWORH0QdIwGMLlarpPQBNYbwJH/QjhUPtLdN131xpPjVF
-tslYTeVj1L3aGfjtf5vpp7jxR0yf53Zk2kJDbaeTtyF579QmFAtNC/r0iS+idg8k
-8/w9K2TOrvbFXwyPbzNTQP4S5rYG8OkDvoM7TzE8H0GmsaAXZqpnfIjre0VbL6SA
-RcUs8uxTpP7ADTl3O17AG4JAJ1+zU0lbAXckjYdR8OFFzTkg7VpXUjoOrVb1kfkT
-IHO0Zc4P/55zjoBHyHWCkSCKvz3gx3F0/nrbLXNKFGzyebQMqOR57CBhDr7YBpOr
-6MIfTbTL2dEU0g7ixee2XjFixFVH0b3Q+ixVs6/3k2SBakZZNb/oG3GNVD/mIjXD
-1p4OY8Ps2oPpwgLndMQ+WVavWu/XHA73VkjOgz/k+AsYEiHBZZcroEPBVThg6V53
-Rh2OvqZ7v73n5CsQUrsz4CviwGfFIGfYERzqsY5p4bxNsoEyS3glAm7BuwhBwBZ9
-CYMAYOgLPFPj5jndn5GVzhJS6ts96gUT7U+yadXIdBLJ6zb0PM9ApRJQ7rsjfpg/
-t84BY2/81B7DtTMMUlXyQwIDAQABoAAwDQYJKoZIhvcNAQELBQADggIBAJftxdPt
-5rCVHS3SWg7YzlQeHL1pIUtEM+YmK/BMr/3SI3l54CvrVl4yquADa3FUxhwEE9jq
-CguHqj0FxpPX9vyN9YfSUmWbn5zzYyifgkf4VVepDOvUhwl5NmP2HwpjgsV8dIaH
-e84a/V7AWdn3OE6+fZOhDtCeP0sJKQ8NyGGvs/UsAvRE8+JPXnf06P7/aGK5L4Cj
-wZoK6RyaoP0dR1rMZDWKQzd2ObhvffzfSEGdnZUNNSsIiTDktvZx46Yf9ZOxj+UB
-KKbajqB2VvOn10egBQ/VrJ2BimCp4GcPVICaMR65QDVcRPL7xErXMRQ2vWCb8Qep
-SB1Hj8Jji/OcDJO14goMuomnkawpHLiErtlekuKMBD3ILtjbfF73I8YaagmA0IGq
-81gk7W0JG/3VhchHhy3gRVxN3WgEnFFN8pCD5SOr0/diGmpCYoiUzfoC79bH0bIP
-CK2E0af4N4LZ+EXTKyGvCIwjNcMM7wiaJxOtwD5+83KHtkP4kfHklW4AFF9YcCDJ
-oG5V2SG+V7rtERnkTcCbm1NYh6oyB9VGa5bu9ln7MBxmkNjdECr4mklM3tBamvXw
-HZyYGkWzpSo+bA5CbxtEdga9pn4zt/R3sUf04JYIjYEF+XP0mAI4Q6kAHCS/T/hJ
-01UfO+W/ws6BnT1MVBiiglzpkN4S3Dn4jC9Z
------END CERTIFICATE REQUEST-----