CVCert is burn only if it does not exist. This check is only executed for first configuration.

Signed-off-by: Pol Henarejos <pol.henarejos@cttc.es>
This commit is contained in:
Pol Henarejos
2022-04-14 18:31:39 +02:00
parent 1b010c8a68
commit b09fc75913
2 changed files with 56 additions and 42 deletions

View File

@@ -42,6 +42,14 @@ set_source_files_properties(
PROPERTIES COMPILE_DEFINITIONS "PACKAGE_VERSION=\"0.22.0\";OPENSC_CONF_PATH=\".\"" PROPERTIES COMPILE_DEFINITIONS "PACKAGE_VERSION=\"0.22.0\";OPENSC_CONF_PATH=\".\""
) )
find_package( PythonInterp 3.7 REQUIRED )
if (NOT EXISTS ${CMAKE_CURRENT_LIST_DIR}/src/hsm/cvcerts.h)
execute_process(COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/burn-cvcerts.py ${CMAKE_CURRENT_LIST_DIR})
message("Burning CVCert")
endif()
target_sources(pico_hsm PUBLIC target_sources(pico_hsm PUBLIC
${CMAKE_CURRENT_LIST_DIR}/src/hsm/hsm2040.c ${CMAKE_CURRENT_LIST_DIR}/src/hsm/hsm2040.c
${CMAKE_CURRENT_LIST_DIR}/src/hsm/sc_hsm.c ${CMAKE_CURRENT_LIST_DIR}/src/hsm/sc_hsm.c

View File

@@ -12,6 +12,7 @@ from cryptography.hazmat.primitives.asymmetric import ec
import base64 import base64
import urllib.request import urllib.request
import json import json
import sys
def print_var(v, name): def print_var(v, name):
s = '\n' s = '\n'
@@ -29,6 +30,9 @@ def print_var(v, name):
s += '};\n' s += '};\n'
return s return s
def main():
args = sys.argv[1:]
private_key = ec.generate_private_key(ec.SECP192R1(), default_backend()) private_key = ec.generate_private_key(ec.SECP192R1(), default_backend())
public_key = private_key.public_key() public_key = private_key.public_key()
pub_num = public_key.public_numbers() pub_num = public_key.public_numbers()
@@ -66,7 +70,9 @@ s += print_var(cvcert,'termca')
pvk = private_key.private_numbers().private_value.to_bytes(24,'big') pvk = private_key.private_numbers().private_value.to_bytes(24,'big')
s += print_var(pvk,'termca_pk') s += print_var(pvk,'termca_pk')
s += '\n#endif\n' s += '\n#endif\n'
f = open(args[0] + '/src/hsm/cvcerts.h','w')
f = open('src/hsm/cvcerts.h','w')
f.write(s) f.write(s)
f.close() f.close()
if __name__ == '__main__':
main()