Compare commits

..

No commits in common. "26d171e6d3e27370fb529ee0cc059a4b577cd0cc" and "583d1de06ac5c1f38ed9a33ec6a7a2e0f6cf72b2" have entirely different histories.

3 changed files with 19 additions and 31 deletions

View file

@ -10,13 +10,6 @@
"request": "launch",
"module": "kiwi_vpn_api.main",
"justMyCode": true
},
{
"name": "EasyRSA script",
"type": "python",
"request": "launch",
"module": "kiwi_vpn_api.easyrsa",
"justMyCode": true
}
]
}

View file

@ -206,7 +206,7 @@ class ServerDN(BaseModel):
common_name: str
class KeyAlgorithm(Enum):
class CertificateAlgo(Enum):
"""
Supported certificate signing algorithms
"""
@ -227,7 +227,7 @@ class CryptoConfig(BaseModel):
schemes: list[str] = ["bcrypt"]
# pki settings
key_algorithm: KeyAlgorithm | None
cert_algo: CertificateAlgo | None
ca_password: str | None
ca_expiry_days: int | None
cert_expiry_days: int | None

View file

@ -12,7 +12,7 @@ from OpenSSL import crypto
from passlib import pwd
from pydantic import BaseModel
from .config import Config, KeyAlgorithm, Settings
from .config import CertificateAlgo, Config, Settings
from .db import Connection, Device
@ -167,29 +167,24 @@ class EasyRSA:
if expiry_days is not None:
extra_args += [f"--days={expiry_days}"]
if (algorithm := config.crypto.key_algorithm) is not None:
args_map = {
KeyAlgorithm.rsa2048: [
"--use-algo=rsa", "--keysize=2048"
],
KeyAlgorithm.rsa2048: [
"--use-algo=rsa", "--keysize=2048"
],
KeyAlgorithm.secp256r1: [
"--use-algo=ec", "--curve=secp256r1"
],
KeyAlgorithm.secp384r1: [
"--use-algo=ec", "--curve=secp384r1"
],
KeyAlgorithm.ed25519: [
"--use-algo=ed", "--curve=ed25519"
]
}
if (algo := config.crypto.cert_algo) is not None:
if algo is CertificateAlgo.rsa2048:
extra_args += ("--use-algo=rsa", "--keysize=2048")
if algorithm not in args_map:
raise ValueError(f"Unexpected algorithm: {algorithm}")
elif algo is CertificateAlgo.rsa4096:
extra_args += ("--use-algo=rsa", "--keysize=4096")
extra_args += args_map[algorithm]
elif algo is CertificateAlgo.secp256r1:
extra_args += ("--use-algo=ec", "--curve=secp256r1")
elif algo is CertificateAlgo.secp384r1:
extra_args += ("--use-algo=ec", "--curve=secp384r1")
elif algo is CertificateAlgo.ed25519:
extra_args += ("--use-algo=ed", "--curve=ed25519")
else:
raise ValueError(f"Unexpected algorithm: {algo}")
self.__easyrsa(
*extra_args,