1
|
from src.utils.file_anchor import FileAnchor
|
2
|
|
3
|
INMEMORY_DATABASE_FILE = ":memory:"
|
4
|
TEST_DATABASE_FILE = INMEMORY_DATABASE_FILE
|
5
|
DATABASE_FILE = "db/database_sqlite.db"
|
6
|
DATABASE_FILE_LOCATION = FileAnchor("aswi2021jmsd", DATABASE_FILE)
|
7
|
DATETIME_FORMAT = "%d.%m.%Y %H:%M:%S"
|
8
|
|
9
|
LOG_DIR = "logs"
|
10
|
LOG_FILE = f"{LOG_DIR}/application.log"
|
11
|
LOG_FILE_LOCATION = FileAnchor("aswi2021jmsd", LOG_FILE)
|
12
|
LOG_FORMAT = "%(levelname)-8s %(asctime)s - %(message)s"
|
13
|
LOG_NAME = "app_logger"
|
14
|
|
15
|
REV_REASON_UNSPECIFIED = "unspecified"
|
16
|
|
17
|
# Types of certificates
|
18
|
ROOT_CA_ID = 1
|
19
|
INTERMEDIATE_CA_ID = 2
|
20
|
CERTIFICATE_ID = 3
|
21
|
|
22
|
# Usage types of certificates
|
23
|
CA_ID = 1
|
24
|
SSL_ID = 2
|
25
|
SIGNATURE_ID = 3
|
26
|
AUTHENTICATION_ID = 4
|
27
|
DICT_USAGES = {CA_ID: False, SSL_ID: False, SIGNATURE_ID: False, AUTHENTICATION_ID: False}
|
28
|
|
29
|
# DB names of tables
|
30
|
TAB_CERTIFICATES = "Certificates"
|
31
|
TAB_PRIVATE_KEYS = "PrivateKeys"
|
32
|
TAB_CERTIFICATE_USAGES = "CertificateUsages"
|
33
|
TAB_CERTIFICATE_TYPES = "CertificateTypes"
|
34
|
TAB_USAGE_TYPES = "UsageTypes"
|
35
|
|
36
|
# DB column names
|
37
|
COL_ID = "id"
|
38
|
|
39
|
# DB column names of Certificates table
|
40
|
COL_VALID_FROM = "valid_from"
|
41
|
COL_VALID_TO = "valid_to"
|
42
|
COL_PEM_DATA = "pem_data"
|
43
|
COL_COMMON_NAME = "common_name"
|
44
|
COL_COUNTRY_CODE = "country_code"
|
45
|
COL_LOCALITY = "locality"
|
46
|
COL_PROVINCE = "province"
|
47
|
COL_ORGANIZATION = "organization"
|
48
|
COL_ORGANIZATIONAL_UNIT = "organizational_unit"
|
49
|
COL_EMAIL_ADDRESS = "email_address"
|
50
|
COL_REVOCATION_DATE = "revocation_date"
|
51
|
COL_REVOCATION_REASON = "revocation_reason"
|
52
|
COL_DELETION_DATE = "deletion_date"
|
53
|
COL_TYPE_ID = "certificate_type_id"
|
54
|
COL_PARENT_ID = "parent_certificate_id"
|
55
|
COL_PRIVATE_KEY_ID = "private_key_id"
|
56
|
|
57
|
# DB column names of PrivateKeys table
|
58
|
COL_PRIVATE_KEY = "private_key"
|
59
|
COL_PASSWORD = "password"
|
60
|
|
61
|
# DB column names of PrivateKey table
|
62
|
COL_CERTIFICATE_ID = "certificate_id"
|
63
|
COL_USAGE_TYPE_ID = "usage_type_id"
|
64
|
|
65
|
# configuration default
|
66
|
DEFAULT_CONNECTION_STRING = "db/database_sqlite.db"
|
67
|
DEFAULT_SERVER_BASE_URL = "http://localhost"
|
68
|
DEFAULT_LOG_LEVEL = "DEBUG"
|
69
|
|
70
|
# available certificate states and revocation reasons
|
71
|
CERTIFICATE_STATES = {"valid", "revoked"}
|
72
|
CERTIFICATE_REVOCATION_REASONS = {"unspecified", "keyCompromise",
|
73
|
"CACompromise", "affiliationChanged",
|
74
|
"superseded", "cessationOfOperation",
|
75
|
"certificateHold", "removeFromCRL"}
|
76
|
|
77
|
CERTIFICATE_VALID = "valid"
|
78
|
CERTIFICATE_REVOKED = "revoked"
|
79
|
CERTIFICATE_EXPIRED = "expired"
|
80
|
|
81
|
|
82
|
# Insert values into the template using % (index_file, serial_file)
|
83
|
CRL_CONFIG = """[ ca ]
|
84
|
default_ca = crl_ca
|
85
|
|
86
|
[ crl_ext ]
|
87
|
authorityKeyIdentifier=keyid:always
|
88
|
|
89
|
[ crl_ca ]
|
90
|
database = %s
|
91
|
serial = %s
|
92
|
default_md = sha1
|
93
|
policy = crl_policy
|
94
|
default_crl_days = 30
|
95
|
|
96
|
[ crl_policy ]
|
97
|
commonName = supplied
|
98
|
stateOrProvinceName = optional
|
99
|
countryName = optional
|
100
|
emailAddress = optional
|
101
|
organizationName = optional
|
102
|
organizationalUnitName = optional
|
103
|
|
104
|
"""
|