+/* Header for class org_etsi_its_security_NativeSecurity */
+
+#ifndef _Included_org_etsi_its_security_NativeSecurity
+#define _Included_org_etsi_its_security_NativeSecurity
+#ifdef __cplusplus
+extern "C" {
+#endif
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: hashWithSha256
+ * Signature: ([B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_hashWithSha256
+ (JNIEnv*, jobject, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: hashWithSha384
+ * Signature: ([B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_hashWithSha384
+ (JNIEnv*, jobject, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: hmacWithSha256
+ * Signature: ([B[B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_hmacWithSha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: signWithEcdsaNistp256WithSha256
+ * Signature: ([B[B[B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_signWithEcdsaNistp256WithSha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: signWithEcdsaBrainpoolp256r1WithSha256
+ * Signature: ([B[B[B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_signWithEcdsaBrainpoolp256r1WithSha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: signWithEcdsaBrainpoolp384r1WithSha384
+ * Signature: ([B[B[B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_signWithEcdsaBrainpoolp384r1WithSha384
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: verifyWithEcdsaNistp256WithSha256
+ * Signature: ([B[B[B[BI)I
+ */
+ JNIEXPORT jint JNICALL Java_org_etsi_its_security_NativeSecurity_verifyWithEcdsaNistp256WithSha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jint);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: verifyWithEcdsaBrainpoolp256r1WithSha256
+ * Signature: ([B[B[B[BI)I
+ */
+ JNIEXPORT jint JNICALL Java_org_etsi_its_security_NativeSecurity_verifyWithEcdsaBrainpoolp256r1WithSha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jint);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: verifyWithEcdsaBrainpoolp384r1WithSha384
+ * Signature: ([B[B[B[BI)I
+ */
+ JNIEXPORT jint JNICALL Java_org_etsi_its_security_NativeSecurity_verifyWithEcdsaBrainpoolp384r1WithSha384
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jint);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: generate_key_pair
+ * Signature: (ILjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)I
+ */
+ JNIEXPORT jint JNICALL Java_org_etsi_its_security_NativeSecurity_generate_1key_1pair
+ (JNIEnv*, jobject, jint, jobject, jobject, jobject, jobject);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: encrypt_with_ecies_nistp256_with_sha256
+ * Signature: ([B[B[BLjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_encrypt_1with_1ecies_1nistp256_1with_1sha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jobject, jobject, jobject, jobject, jobject);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: encrypt_with_ecies_brainpoolp256r1_with_sha256
+ * Signature: ([B[B[BLjava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;Ljava/nio/ByteBuffer;)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_encrypt_1with_1ecies_1brainpoolp256r1_1with_1sha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jobject, jobject, jobject, jobject, jobject);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: decrypt_with_ecies_nistp256_with_sha256
+ * Signature: ([B[B[B[B[B[B[BLjava/nio/ByteBuffer;)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_decrypt_1with_1ecies_1nistp256_1with_1sha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jobject);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: decrypt_with_ecies_brainpoolp256r1_with_sha256
+ * Signature: ([B[B[B[B[B[B[BLjava/nio/ByteBuffer;)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_decrypt_1with_1ecies_1brainpoolp256r1_1with_1sha256
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jobject);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: encrypt_aes_128_ccm_test
+ * Signature: ([B[B[B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_encrypt_1aes_1128_1ccm_1test
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray);
+
+ /*
+ * Class: org_etsi_its_security_NativeSecurity
+ * Method: decrypt_aes_128_ccm_test
+ * Signature: ([B[B[B)[B
+ */
+ JNIEXPORT jbyteArray JNICALL Java_org_etsi_its_security_NativeSecurity_decrypt_1aes_1128_1ccm_1test
+ (JNIEnv*, jobject, jbyteArray, jbyteArray, jbyteArray);
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/tools/itssecurity/test/test_lib_its_security.cc b/tools/itssecurity/test/test_lib_its_security.cc
index af6ae8d4bfeebab44013d5e1c4ad39f13ec1fb0b..7cf2d3e5caf5a6c3bbaf702fdef82346f3bd779a 100755
--- a/tools/itssecurity/test/test_lib_its_security.cc
+++ b/tools/itssecurity/test/test_lib_its_security.cc
@@ -3,7 +3,7 @@
extern "C" {
#include "lib_its_security.h"
#ifndef _Win64
-uint8_t* hex_to_bin(const int8_t* p_buffer, size_t* p_buffer_length);
+ uint8_t* hex_to_bin(const int8_t* p_buffer, size_t* p_buffer_length);
#endif
}
@@ -19,7 +19,7 @@ uint8_t* hex_to_bin(const int8_t* p_buffer, size_t* p_buffer_length) {
}
if ((len = strlen((const char*)p_buffer)) & 1) {
return NULL;
-}
+ }
retval = (uint8_t*)malloc(len >> 1);
for (i = 0; i < len; i++) {
@@ -427,7 +427,7 @@ TEST(lib_its_security_test_suite, sign_with_ecdsa_nistp256_with_sha256_2) {
// Test body
EXPECT_TRUE(verify_with_ecdsa_nistp256_with_sha256(lib_its_security_context, public_key_y, 32, issuer, sig, public_key_compressed, public_key_compressed_mode) == 0);
-
+
// Postamble
free(sig);
free(private_key);
@@ -978,7 +978,7 @@ TEST(lib_its_security_test_suite, decrypt_aes_ccm_4) {
EXPECT_TRUE(decrypt(lib_its_security_context, encrypted_secured_message, encrypted_secured_message_length, &new_plain_text_message, &new_plain_text_message_length) == 0);
EXPECT_TRUE(new_plain_text_message != NULL);
EXPECT_TRUE(plain_text_message_length == new_plain_text_message_length);
- for(size_t i = 0; i < new_plain_text_message_length; i++) {
+ for (size_t i = 0; i < new_plain_text_message_length; i++) {
EXPECT_TRUE(*(new_plain_text_message + i) == *(plain_text_message + i));
}
@@ -1047,7 +1047,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_2) {
uint8_t* encrypted_secured_message = NULL;
size_t encrypted_secured_message_length = 0;
EXPECT_TRUE(encrypt_with_ecies_nistp256_with_sha256(lib_its_security_context/*recipient's public keys*/, plain_text_message, plain_text_message_length, lib_its_security_context->public_key_c, lib_its_security_context->compressed_mode, salt, salt_length, &ephemeral_key_compressed, &ephemeral_compressed_mode, &aes_sym_key, &encrypted_sym_key, &authentication_vector, &nonce, &encrypted_secured_message, &encrypted_secured_message_length) == 0);
-
+
// Test body
size_t new_plain_text_message_length = 0;
uint8_t* new_plain_text_message = NULL;
@@ -1062,7 +1062,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_2) {
}
free(new_plain_text_message);
free(new_aes_enc_sym_key);
-
+
// Postamble
free(plain_text_message);
free(salt);
@@ -1097,7 +1097,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_3) {
uint8_t* encrypted_secured_message = NULL;
size_t encrypted_secured_message_length = 0;
EXPECT_TRUE(encrypt_with_ecies_nistp256_with_sha256(lib_its_security_context/*recipient's public keys*/, plain_text_message, plain_text_message_length, lib_its_security_context->public_key_c, lib_its_security_context->compressed_mode, salt, salt_length, &ephemeral_key_compressed, &ephemeral_compressed_mode, &aes_sym_key, &encrypted_sym_key, &authentication_vector, &nonce, &encrypted_secured_message, &encrypted_secured_message_length) == 0);
-
+
// Test body
size_t new_plain_text_message_length = 0;
uint8_t* new_plain_text_message = NULL;
@@ -1106,7 +1106,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_3) {
EXPECT_TRUE(decrypt_with_ecies_nistp256_with_sha256(lib_its_security_context, encrypted_secured_message, encrypted_secured_message_length, lib_its_security_context->private_key, ephemeral_key_compressed, ephemeral_compressed_mode, encrypted_sym_key, authentication_vector, nonce, salt, salt_length, &new_aes_enc_sym_key, &new_plain_text_message, &new_plain_text_message_length) == -1);
free(new_plain_text_message);
free(new_aes_enc_sym_key);
-
+
// Postamble
free(plain_text_message);
free(salt);
@@ -1141,7 +1141,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_4) {
uint8_t* encrypted_secured_message = NULL;
size_t encrypted_secured_message_length = 0;
EXPECT_TRUE(encrypt_with_ecies_nistp256_with_sha256(lib_its_security_context/*recipient's public keys*/, plain_text_message, plain_text_message_length, lib_its_security_context->public_key_c, lib_its_security_context->compressed_mode, salt, salt_length, &ephemeral_key_compressed, &ephemeral_compressed_mode, &aes_sym_key, &encrypted_sym_key, &authentication_vector, &nonce, &encrypted_secured_message, &encrypted_secured_message_length) == 0);
-
+
// Test body
size_t new_plain_text_message_length = 0;
uint8_t* new_plain_text_message = NULL;
@@ -1150,7 +1150,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_4) {
EXPECT_TRUE(decrypt_with_ecies_nistp256_with_sha256(lib_its_security_context, encrypted_secured_message, encrypted_secured_message_length, lib_its_security_context->private_key, ephemeral_key_compressed, ephemeral_compressed_mode, encrypted_sym_key, authentication_vector, nonce, salt, salt_length, &new_aes_enc_sym_key, &new_plain_text_message, &new_plain_text_message_length) == -1);
free(new_plain_text_message);
free(new_aes_enc_sym_key);
-
+
// Postamble
free(plain_text_message);
free(salt);
@@ -1185,7 +1185,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_5) {
uint8_t* encrypted_secured_message = NULL;
size_t encrypted_secured_message_length = 0;
EXPECT_TRUE(encrypt_with_ecies_nistp256_with_sha256(lib_its_security_context/*recipient's public keys*/, plain_text_message, plain_text_message_length, lib_its_security_context->public_key_c, lib_its_security_context->compressed_mode, salt, salt_length, &ephemeral_key_compressed, &ephemeral_compressed_mode, &aes_sym_key, &encrypted_sym_key, &authentication_vector, &nonce, &encrypted_secured_message, &encrypted_secured_message_length) == 0);
-
+
// Test body
size_t new_plain_text_message_length = 0;
uint8_t* new_plain_text_message = NULL;
@@ -1194,7 +1194,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_5) {
EXPECT_TRUE(decrypt_with_ecies_nistp256_with_sha256(lib_its_security_context, encrypted_secured_message, encrypted_secured_message_length, lib_its_security_context->private_key, ephemeral_key_compressed, ephemeral_compressed_mode, encrypted_sym_key, authentication_vector, nonce, salt, salt_length, &new_aes_enc_sym_key, &new_plain_text_message, &new_plain_text_message_length) == -1);
free(new_plain_text_message);
free(new_aes_enc_sym_key);
-
+
// Postamble
free(plain_text_message);
free(salt);
@@ -1229,7 +1229,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_6) {
uint8_t* encrypted_secured_message = NULL;
size_t encrypted_secured_message_length = 0;
EXPECT_TRUE(encrypt_with_ecies_nistp256_with_sha256(lib_its_security_context/*recipient's public keys*/, plain_text_message, plain_text_message_length, lib_its_security_context->public_key_c, lib_its_security_context->compressed_mode, salt, salt_length, &ephemeral_key_compressed, &ephemeral_compressed_mode, &aes_sym_key, &encrypted_sym_key, &authentication_vector, &nonce, &encrypted_secured_message, &encrypted_secured_message_length) == 0);
-
+
// Test body
size_t new_plain_text_message_length = 0;
uint8_t* new_plain_text_message = NULL;
@@ -1238,7 +1238,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_nistp256_with_sha256_6) {
EXPECT_TRUE(decrypt_with_ecies_nistp256_with_sha256(lib_its_security_context, encrypted_secured_message, encrypted_secured_message_length, lib_its_security_context->private_key, ephemeral_key_compressed, ephemeral_compressed_mode, encrypted_sym_key, authentication_vector, nonce, salt, salt_length, &new_aes_enc_sym_key, &new_plain_text_message, &new_plain_text_message_length) == -1);
free(new_plain_text_message);
free(new_aes_enc_sym_key);
-
+
// Postamble
free(plain_text_message);
free(salt);
@@ -1520,8 +1520,7 @@ TEST(lib_its_security_test_suite, encrypt_with_ecies_brainpoolp256r1_with_sha256
* @param[in] p_argc Number of argumrnt
* @param[in] p_argv List of the arguments
*/
-int main(int argc, char **argv) {
- ::testing::InitGoogleTest(&argc, argv);
- return RUN_ALL_TESTS();
+int main(int argc, char** argv) {
+ ::testing::InitGoogleTest(&argc, argv);
+ return RUN_ALL_TESTS();
}
-
diff --git a/ttcn/AtsPki/ItsPki_TestCases.ttcn b/ttcn/AtsPki/ItsPki_TestCases.ttcn
index 4090324f972d85c743b6672232edbe0a72af19ce..f839f108970212898e179da5566d46b4a8a0b932 100644
--- a/ttcn/AtsPki/ItsPki_TestCases.ttcn
+++ b/ttcn/AtsPki/ItsPki_TestCases.ttcn
@@ -58,6 +58,7 @@ module ItsPki_TestCases {
import from LibItsHttp_BinaryTemplates all;
import from LibItsHttp_Functions all;
import from LibItsHttp_TestSystem all;
+ import from LibItsHttp_Pics all;
// LibItsPki
import from LibItsPki_TypesAndValues all;
@@ -8902,7 +8903,7 @@ module ItsPki_TestCases {
group ca_behavior {
group ctl {
-
+
/**
* @desc Check that the RootCA generates the Full CTL when new EA is about to be added to the Root CTL
*
@@ -8949,7 +8950,7 @@ module ItsPki_TestCases {
// Test adapter configuration
// Preamble
- f_init_default_headers_list(-, "ca_request", v_headers);
+ f_init_default_headers_list(PICS_HEADER_CTL_CONTENT_TYPE, "ca_request", v_headers);
action("The RootCA is triggered to add new EA certificate (CERT_EA) in the CTL");
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
@@ -9047,7 +9048,7 @@ module ItsPki_TestCases {
// Test adapter configuration
// Preamble
- f_init_default_headers_list(-, "ca_request", v_headers);
+ f_init_default_headers_list(PICS_HEADER_CRL_CONTENT_TYPE, "ca_request", v_headers);
action("the RootCA is triggered to add new CA certificate (CERT_CA) to the revocation list");
f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
@@ -9104,4 +9105,111 @@ module ItsPki_TestCases {
} // End of group ca_behavior
+ group tlm_behavior {
+
+ group ctl {
+
+ /**
+ * @desc Check that the TLM generates the ECTL when new RootCA is about to be added
+ *
+ * Pics Selection: PICS_IUT_CA_ROLE
+ * Initial conditions:
+ * }
+ * Expected behaviour:
+ * ensure that {
+ * when {
+ * the TLM is triggered to add new RootCA certificate (CERT_RCA) in the CTL
+ * }
+ * then {
+ * the IUT issue a new CTL of type CtlFormat
+ * containing isFullCtl
+ * indicating TRUE
+ * and containing ctlCommands
+ * containing CtlCommand
+ * containing add
+ * containing rca
+ * containing selfsignedRootCa
+ * indicating CERT_RCA
+ * }
+ * }
+ *
+ *
+ * @see ETSI TS 103 525-2 TP TLM_ECTLGEN_01_BV
+ * @reference ETSI TS 102 941, clause 6.3.1
+ */
+ testcase TC_TLM_ECTLGEN_01_BV() runs on ItsPkiHttp system ItsPkiHttpSystem {
+ // Local variables
+ var HeaderLines v_headers;
+ var HttpMessage v_response;
+
+ // Test control
+ if (not PICS_IUT_CA_ROLE) {
+ log("*** " & testcasename() & ": PICS_IUT_CA_ROLE required for executing the TC ***");
+ setverdict(inconc);
+ stop;
+ }
+
+ // Test component configuration
+ f_cfHttpUp_tlm();
+
+ // Test adapter configuration
+
+ // Preamble
+ f_init_default_headers_list(PICS_HEADER_CTL_CONTENT_TYPE, "tlm_request", v_headers);
+ action("The TLM is triggered to add new RootCA certificate (CERT_RCA) in the CTL");
+ f_selfOrClientSyncAndVerdictPreamble(c_prDone, e_success);
+
+ // Test Body
+ f_http_send(
+ v_headers,
+ m_http_request(
+ m_http_request_get(
+ PICS_HTTP_GET_URI_ECTL,
+ v_headers
+ )));
+ tc_ac.start;
+ alt {
+ [] httpTlmPort.receive(
+ mw_http_response(
+ mw_http_response_ok(
+ mw_http_message_body_binary(
+ mw_binary_body_ieee1609dot2_data(
+ mw_etsiTs103097Data_signed(
+ mw_signedData(
+ -,
+ mw_toBeSignedData( mw_signedDataPayload ),
+ mw_signerIdentifier_digest
+ ))))))) -> value v_response {
+ var ToBeSignedRcaCtl v_to_be_signed_tlm_ectl;
+
+ tc_ac.stop;
+
+ if (f_verify_rca_ctl_response_message(v_response.response.body.binary_body.ieee1609dot2_data, true, v_to_be_signed_tlm_ectl) == false) {
+ log("*** " & testcasename() & ": FAIL: Failed to verify RCA message ***");
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+ } else {
+ if (f_verify_full_ectl(v_to_be_signed_tlm_ectl) == true) {
+ log("*** " & testcasename() & ": PASS: ToBeSignedRcaCtl received ***");
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_success);
+ } else {
+ log("*** " & testcasename() & ": FAIL: Receive unexpected message ***");
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_error);
+ }
+ }
+ }
+ [] tc_ac.timeout {
+ log("*** " & testcasename() & ": INCONC: Expected message not received ***");
+ f_selfOrClientSyncAndVerdictTestBody(c_tbDone, e_timeout);
+ }
+ } // End of 'alt' statement
+
+ // Postamble
+ f_cfHttpDown_tlm();
+
+ } // End of testcase TC_TLM_ECTLGEN_01_BV
+
+ } // End of group ctl
+
+ } // End of group tlm_behavior
+
} // End of module ItsPki_TestCases
diff --git a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
index d5e92a5e8ffd7aefb018d883eadd0e4bbb46a064..7f13b3aa05aed765d9b9f030725d1bdb986df583 100644
--- a/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
+++ b/ttcn/AtsRSUsSimulator/ItsRSUsSimulator_Functions.ttcn
@@ -1389,7 +1389,6 @@ module ItsRSUsSimulator_Functions {
vc_at_counter,
vc_at_certificates
));
- //v_pki.done;
repeat;
}
[] cfPort.receive {
diff --git a/vagrant/provisioner.bash b/vagrant/provisioner.bash
index c31e4402b52291c4b9b86557f81a1e6ef5fda70a..85b680949426441b353fc7ff2eb7fb2ea0b11bc6 100755
--- a/vagrant/provisioner.bash
+++ b/vagrant/provisioner.bash
@@ -137,6 +137,10 @@ echo ". ~/devenv.bash" >> /home/vagrant/.bashrc
cd /home/vagrant/dev/STF525_Its/scripts
./build_titan.bash
. /home/vagrant/devenv.bash
+cp /home/etsi/dev/STF525_Its/data/v3/asn1c_cert.tar.bz2 /home/etsi/tmp
+cd /home/etsi/tmp
+tar xvjf ./asn1c_cert.tar.bz2
+cd /home/etsi/dev/STF525_Its/scripts
./update_its_project.bash
#ln -sf ~/dev/etsi_its/lib/libItsAsn.so ~/lib/libItsAsn.so
cd ${HOME}/dev/etsi_its/src/TestCodec/objs