72 lines
3.1 KiB
C
72 lines
3.1 KiB
C
//
|
||
// Created by cfif on 04.06.2024.
|
||
//
|
||
#include "Certs.h"
|
||
#include "string.h"
|
||
#include "AtGsmSimComA7600_SSL_LOAD_CA.h"
|
||
|
||
const char file_ca[] = "ca.pem";
|
||
const char file_crt[] = "crt.pem";
|
||
const char file_key[] = "key.pem";
|
||
|
||
void XfcProtMethodsInit_Certs(tCerts *certs) {
|
||
tIsFind check;
|
||
memset(&check, 0, sizeof(check));
|
||
|
||
if (osMutexAcquire(certs->gsmAt->access, 15000) == osOK) {
|
||
check = AtGsmSimComA7600_SSL_CHECK_CA(certs->gsmAt,
|
||
file_ca, strlen(file_ca),
|
||
file_crt, strlen(file_crt),
|
||
file_key, strlen(file_key), 2000);
|
||
|
||
osMutexRelease(certs->gsmAt->access);
|
||
}
|
||
|
||
if ((!check.isFind1) || (!check.isFind2) || (!check.isFind3)) {
|
||
|
||
if (!check.isFind1) {
|
||
String64Copy(&certs->cacert, "Не загружен", sizeof("Не загружен") - 1);
|
||
} else {
|
||
String64Copy(&certs->cacert, "Загружен", sizeof("Загружен") - 1);
|
||
}
|
||
|
||
if (!check.isFind2) {
|
||
String64Copy(&certs->clientcert, "Не загружен", sizeof("Не загружен") - 1);
|
||
} else {
|
||
String64Copy(&certs->clientcert, "Загружен", sizeof("Загружен") - 1);
|
||
}
|
||
|
||
if (!check.isFind3) {
|
||
String64Copy(&certs->clientkey, "Не загружен", sizeof("Не загружен") - 1);
|
||
} else {
|
||
String64Copy(&certs->clientkey, "Загружен", sizeof("Загружен") - 1);
|
||
}
|
||
|
||
|
||
} else {
|
||
String64Copy(&certs->cacert, "Загружен", sizeof("Загружен") - 1);
|
||
String64Copy(&certs->clientcert, "Загружен", sizeof("Загружен") - 1);
|
||
String64Copy(&certs->clientkey, "Загружен", sizeof("Загружен") - 1);
|
||
}
|
||
|
||
}
|
||
|
||
void XfcProtMethodsAdd_Certs(tXfcProtTable *protTab, tCerts *certs, tAtCmd *gsmAt) {
|
||
certs->gsmAt = gsmAt;
|
||
|
||
if (gsmAt == NULL) {
|
||
String64Copy(&certs->cacert, "Интерфейс не инициализирован", sizeof("Интерфейс не инициализирован") - 1);
|
||
String64Copy(&certs->clientcert, "Интерфейс не инициализирован", sizeof("Интерфейс не инициализирован") - 1);
|
||
String64Copy(&certs->clientkey, "Интерфейс не инициализирован", sizeof("Интерфейс не инициализирован") - 1);
|
||
} else {
|
||
String64Copy(&certs->cacert, "Инициализация", sizeof("Инициализация") - 1);
|
||
String64Copy(&certs->clientcert, "Инициализация", sizeof("Инициализация") - 1);
|
||
String64Copy(&certs->clientkey, "Инициализация", sizeof("Инициализация") - 1);
|
||
}
|
||
|
||
XfcProtTable_AddStatic(protTab, "GET_CERTS", XfcProtMethod_CertsGet, certs);
|
||
XfcProtTable_AddStatic(protTab, "SET_CERTS", XfcProtMethod_CertsSet, certs);
|
||
XfcProtTable_AddStatic(protTab, "DEL_CERTS", XfcProtMethod_CertsDel, certs);
|
||
}
|
||
|