From 915cfcf8fdcb2b15a6c6453e04609931b1d1a401 Mon Sep 17 00:00:00 2001 From: InLineR495 Date: Mon, 10 Feb 2014 14:27:45 +0400 Subject: [PATCH 1/2] vsdv sdvsd --- .cproject | 243 +++++++++++++++++++++++++++++-------------- config.ini | 9 -- database/log.c | 33 ------ database/log.h | 22 ---- database/user_pass.c | 93 ----------------- database/user_pass.h | 16 --- date.c | 23 ++-- kerb.log | 1 - name_pass.txt | 3 - server.c | 16 +-- 10 files changed, 181 insertions(+), 278 deletions(-) delete mode 100644 config.ini delete mode 100644 database/log.c delete mode 100644 database/log.h delete mode 100644 database/user_pass.c delete mode 100644 database/user_pass.h delete mode 100644 kerb.log delete mode 100644 name_pass.txt diff --git a/.cproject b/.cproject index 1d61a6e..ce11a2b 100644 --- a/.cproject +++ b/.cproject @@ -1,118 +1,201 @@ - + + - - - + + + - - - - - - + + + + + + - - - - - - - - - - - - - + - - - + + + - - - - - - + + + + + + - - - - - - - - + - + - - - + + + - - + + - - + diff --git a/config.ini b/config.ini deleted file mode 100644 index ad8f3ea..0000000 --- a/config.ini +++ /dev/null @@ -1,9 +0,0 @@ -;config for kerberos - -[timings] -max_life=8 ; Specifes the maximum time period time for which a ticket may be valid in this realm. The default value is 10 hours -max_renewable_life=0 ; Specifies the maximum time period during which a valid ticket may be renewed in this realm. The default value is 0 -timeout=5 ; An integer which specifies the time in seconds during which the KDC should attempt to contact the RADIUS server. This tag is the total time across all ret - ; ries and should be less than the time which an OPT value remains valid for. The defauls is 5 seconds. -retries=3 ;This tag specifies the number of retries to make to the RADIUS server. The default is 3 retries. -ticket_lifetime=1 ; Sets the default lifetime for initial ticket request. The default value is 1 day. diff --git a/database/log.c b/database/log.c deleted file mode 100644 index 893c1a9..0000000 --- a/database/log.c +++ /dev/null @@ -1,33 +0,0 @@ -/* - * log.c - * - * Created on: Feb 10, 2014 - * Author: ivan - */ -#include "log.h" - -void Log (char *message) -{ char time[250]; - FILE *file; - - - file = fopen(LOGFILE, "aw"); - - if (file == NULL) - return; - else - { - date(time); - strcat(message," "); - strcat(message,time); - fputs(message,file); - fclose(file); - } - -} - -void LogErr (char *message) -{ - Log(message); -} - diff --git a/database/log.h b/database/log.h deleted file mode 100644 index 4571aac..0000000 --- a/database/log.h +++ /dev/null @@ -1,22 +0,0 @@ -/* - * log.h - * - * Created on: Feb 10, 2014 - * Author: ivan - */ - -#ifndef LOG_H_ -#define LOG_H_ -#include -#include -#include -typedef int bool; -#define true 1 -#define false 0 -#define LOGFILE "kerb.log" // all Log(); messages will be appended to this file -extern bool LogCreated; // keeps track whether the log file is created or not -void Log (char *message); // logs a message to LOGFILE -void LogErr (char *message); // logs a message; -void date(char *); - -#endif /* LOG_H_ */ diff --git a/database/user_pass.c b/database/user_pass.c deleted file mode 100644 index 04608b9..0000000 --- a/database/user_pass.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * user_pass.c - * - * Created on: Feb 10, 2014 - * Author: ivan - */ -#include "user_pass.h" - -int sdddd(void){ - - FILE *fp; - char *tmp, *tmp2, *user, *pass, *line; - - printf("Inserire utente: "); - if(scanf("%ms", &user) == EOF){ - perror("scanf"); - return EXIT_FAILURE; - } - - printf("Inserire password: "); - if(scanf("%ms", &pass) == EOF){ - perror("scanf"); - onexit(user, NULL, NULL, NULL, 1); - return EXIT_FAILURE; - } - - size_t max_length = 250; - line = malloc(max_length); - if(line == NULL){ - perror("malloc"); - onexit(user, pass, NULL, NULL, 2); - return EXIT_FAILURE; - } - - fp = fopen("name_pass.txt", "r"); - if(fp == NULL){ - printf("Errore apertura file\n"); - onexit(user, pass, line, NULL, 3); - return EXIT_FAILURE; - } - - while(!feof(fp)){ - if(fgets(line, max_length , fp) == NULL){ - continue; - } - tmp = strtok(line, " "); - if(tmp == NULL){ - perror("strtok"); - onexit(user, pass, line, fp, 4); - return EXIT_FAILURE; - } - - tmp2 = strtok(NULL, "\n"); - if(tmp2 == NULL){ - perror("strtok"); - onexit(user, pass, line, fp, 4); - return EXIT_FAILURE; - } - if((strcmp(tmp,user) == 0) && (strcmp(tmp2,pass) == 0)){ - printf("USER: %s - PASS: %s\n", tmp, tmp2); - onexit(user, pass, line, fp, 4); - return EXIT_SUCCESS; - } - else{ - continue; - } - } - printf("no such user or pwd into DB\n"); - onexit(user, pass, line, fp, 4); - return EXIT_FAILURE; -} - -void onexit(char *u, char *p, char *l, FILE *f, int flag){ - if(flag == 1){ - free(u); - } - if(flag == 2){ - free(u); - free(p); - } - if(flag == 3){ - free(u); - free(p); - free(l); - } - if(flag == 4){ - free(u); - free(p); - free(l); - fclose(f); - } -} - diff --git a/database/user_pass.h b/database/user_pass.h deleted file mode 100644 index 08e77f4..0000000 --- a/database/user_pass.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * user_pass.h - * - * Created on: Feb 10, 2014 - * Author: ivan - */ - -#ifndef USER_PASS_H_ -#define USER_PASS_H_ -#define EXIT_FAILURE 1 -#include -#include -#include -int sdddd(void); -void onexit(char *u, char *p, char *l, FILE *f, int flag); -#endif /* USER_PASS_H_ */ diff --git a/date.c b/date.c index f74bbea..3a4f502 100644 --- a/date.c +++ b/date.c @@ -7,13 +7,22 @@ #include #include #include -#include +#include +char* asd(const struct tm *timeptr); void date(char *date_mas){ time_t rawtime; - struct tm * timeinfo; - - time (&rawtime); - timeinfo = localtime (&rawtime); - strcpy(date_mas,asctime(timeinfo)); - printf ("Current local time and date: %s", asctime(timeinfo)); + struct tm * timeinfo; + time (&rawtime); + timeinfo = localtime (&rawtime); + strcpy(date_mas,asd(timeinfo)); +} +char* asd(const struct tm *timeptr) +{ + static const char mon_name[][4] = { + "Jan", "Feb", "Mar", "Apr", "May", "Jun", + "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + static char result[26]; + sprintf(result, "%2d %.3s %d %.2d:%.2d:%.2d",timeptr->tm_mday,mon_name[timeptr->tm_mon],1900 + timeptr->tm_year, timeptr->tm_hour, + timeptr->tm_min, timeptr->tm_sec); + return result; } diff --git a/kerb.log b/kerb.log deleted file mode 100644 index 2c649f4..0000000 --- a/kerb.log +++ /dev/null @@ -1 +0,0 @@ -Hello USER Mon Feb 10 12:58:59 2014 diff --git a/name_pass.txt b/name_pass.txt deleted file mode 100644 index 5b253bc..0000000 --- a/name_pass.txt +++ /dev/null @@ -1,3 +0,0 @@ -paolo 1234 -luca 0000 -marci 1000 diff --git a/server.c b/server.c index c8c344c..d7d8533 100644 --- a/server.c +++ b/server.c @@ -1,8 +1,6 @@ #include "query/request.h" #include "parser/get_config_param.h" -#include "Encode/base64.h" -#include "database/log.h" -#include "database/user_pass.h" + #define PORT "3490" // порт, на который будут приходить соединения @@ -31,32 +29,22 @@ int main(void) int yes=1; char s[INET6_ADDRSTRLEN]; int rv; - char en[250]="Hello USER"; - char den[250]; char user_name[MAXDATASIZE]; char ID_TGS[MAXDATASIZE]; char date_time[MAXDATASIZE]; configuration conf; get_config_param(&conf); - base64_encode((const BYTE *)en, (BYTE *)den, sizeof(en),1); - printf("Encode:%s\n",en); - base64_decode((const BYTE *)den ,(BYTE *)en, sizeof(den)); - printf("Decode:%s",en); -while(1){ - sdddd(); -} - memset(&hints, 0, sizeof hints); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; // use my IP + if ((rv = getaddrinfo(NULL, PORT, &hints, &servinfo)) != 0) { fprintf(stderr, "getaddrinfo: %s\n", gai_strerror(rv)); return 1; } - // цикл через все результаты, чтобы забиндиться на первом возможном for(p = servinfo; p != NULL; p = p->ai_next) { if ((sockfd = socket(p->ai_family, p->ai_socktype, From 8b3889844f005bea3d9ca625b56066e532e50949 Mon Sep 17 00:00:00 2001 From: InLineR495 Date: Mon, 10 Feb 2014 14:29:57 +0400 Subject: [PATCH 2/2] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB?= =?UTF-8?q?=20=D1=84=D0=B0=D0=B9=D0=BB=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BE?= =?UTF-8?q?=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ERRORS.c | 79 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 ERRORS.c diff --git a/ERRORS.c b/ERRORS.c new file mode 100644 index 0000000..190c6bc --- /dev/null +++ b/ERRORS.c @@ -0,0 +1,79 @@ +#include +#include +#include +#include +char* hashsum(char*) +{ +} +char* KDC_ERR_C_PRINCIPAL_UNKNOWN_CHECK(char* Client, char* Principal) + { + if(!(strcmp(Client, Principal))) + return "KDC_ERR_C_PRINCIPAL_UNKNOWN"; + else return ""; + } +char* KDC_ERR_S_PRINCIPAL_UNKNOWN_CHECK(char* TGS_ID, char* Server) + { + if(!(strcmp(TGS_ID, Server))) + return "KDC_ERR_S_PRINCIPAL_UNKNOWN"; + else return ""; + } +char* KDC_ERR_PRINCIPAL_NOT_UNIQUE_CHECK(int Count) + { + if (Count > 1) + return "KDC_ERR_PRINCIPAL_NOT_UNIQUE"; + else return ""; + } +char* KDC_ERR_CANNOT_POSTDATE_CHECK(int time, int MAY_POSTDATE) + { + if ((time < 0) || (MAY_POSTDATE == 0)) + return "KDC_ERR_CANNOT_POSTDATE"; + else return ""; + } +char* KRB_AP_ERR_TKT_EXPIRED_CHECK(time_t ticket_start, time_t ticket_end) + { + if (difftime(ticket_end,ticket_start) < 0.0) + return "KRB_AP_ERR_TKT_EXPIRED"; + else return ""; + } +char* KRB_AP_ERR_BAD_INTEGRITY_CHECK(char* field, char* hash) + { + if(!(hashsum(field) == hash)) + return "KRB_AP_ERR_BAD_INTEGRITY"; + else return ""; + } +char* KRB_AP_ERR_TKT_NYV_CHECK(time_t server_time, time_t ticket_time, int TICKET_VALID, double TIME_SKEW) + { + if (((difftime(server_time, ticket_time) < 0.0) && difftime(server_time, ticket_time) > TIME_SKEW) || (TICKET_VALID == 1)) + return "KRB_AP_ERR_TKT_NYV"; + else return ""; + } +char* KRB_AP_ERR_REPEAT_CHECK(int REQUEST_COUNT_SET, int REQUEST_COUNT_CURR) + { + if (REQUEST_COUNT_CURR > REQUEST_COUNT_SET) + return "KRB_AP_ERR_REPEAT"; + else return ""; + } +char* KRB_AP_ERR_SKEW_CHECK(time_t server_time, time_t client_time, double TIME_SKEW) + { + if(fabs(difftime(server_time, client_time)) > TIME_SKEW) + return "KRB_AP_ERR_SKEW"; + else ""; + } +char* KRB_AP_ERR_BADADDR_CHECK(char* IP_CURR, char* IP_SET) + { + if (!(IP_CURR == IP_SET)) + return "KRB_AP_ERR_BADADDR"; + else return ""; + } +char* KRB_AP_ERR_BADVERSION_CHECK(char VERSION_CURR, char VERSION_SET) + { + if(!(VERSION_CURR == VERSION_SET)) + return "KRB_AP_ERR_BADVERSION"; + else return ""; + } +char* KRB_AP_ERR_MSG_TYPE(char MSG_CURR, char MSG_SET) + { + if(!(MSG_CURR == MSG_SET)) + return "KRB_AP_ERR_MSG_TYPE"; + else return ""; + } \ No newline at end of file