| /NetX-Duo-v6.2.1/nx_secure/src/ |
| D | nx_secure_tls_process_remote_certificate.c | 106 NX_SECURE_X509_CERT *certificate; in _nx_secure_tls_process_remote_certificate() local 203 &certificate); in _nx_secure_tls_process_remote_certificate() 218 certificate = (NX_SECURE_X509_CERT*)(&cert_buffer[cert_buf_size]); in _nx_secure_tls_process_remote_certificate() 219 NX_SECURE_MEMSET(certificate, 0, sizeof(NX_SECURE_X509_CERT)); in _nx_secure_tls_process_remote_certificate() 224 certificate -> nx_secure_x509_certificate_raw_data_length = cert_length; in _nx_secure_tls_process_remote_certificate() 225 certificate -> nx_secure_x509_certificate_raw_data = &packet_buffer[length]; in _nx_secure_tls_process_remote_certificate() 226 certificate -> nx_secure_x509_certificate_raw_buffer_size = cert_length; in _nx_secure_tls_process_remote_certificate() 227 certificate -> nx_secure_x509_user_allocated_cert = NX_FALSE; in _nx_secure_tls_process_remote_certificate() 232 if (certificate -> nx_secure_x509_certificate_raw_buffer_size < cert_length) in _nx_secure_tls_process_remote_certificate() 238 certificate -> nx_secure_x509_certificate_raw_data_length = cert_length; in _nx_secure_tls_process_remote_certificate() [all …]
|
| D | nx_secure_x509_certificate_initialize.c | 110 UINT _nx_secure_x509_certificate_initialize(NX_SECURE_X509_CERT *certificate, in _nx_secure_x509_certificate_initialize() argument 123 NX_SECURE_MEMSET(certificate, 0, sizeof(NX_SECURE_X509_CERT)); in _nx_secure_x509_certificate_initialize() 126 certificate -> nx_secure_x509_certificate_raw_data_length = length; in _nx_secure_x509_certificate_initialize() 130 certificate -> nx_secure_x509_certificate_raw_buffer_size = length; in _nx_secure_x509_certificate_initialize() 131 certificate -> nx_secure_x509_certificate_raw_data = certificate_data; in _nx_secure_x509_certificate_initialize() 141 certificate -> nx_secure_x509_certificate_raw_buffer_size = buffer_size; in _nx_secure_x509_certificate_initialize() 142 certificate -> nx_secure_x509_certificate_raw_data = raw_data_buffer; in _nx_secure_x509_certificate_initialize() 143 …NX_SECURE_MEMCPY(certificate -> nx_secure_x509_certificate_raw_data, certificate_data, length); /*… in _nx_secure_x509_certificate_initialize() 151 status = _nx_secure_x509_certificate_parse(certificate -> nx_secure_x509_certificate_raw_data, in _nx_secure_x509_certificate_initialize() 152 length, &bytes_processed, certificate); in _nx_secure_x509_certificate_initialize() [all …]
|
| D | nx_secure_tls_trusted_certificate_add.c | 87 NX_SECURE_X509_CERT *certificate) in _nx_secure_tls_trusted_certificate_add() argument 98 …certificate -> nx_secure_x509_public_cipher_metadata_area = tls_session -> nx_secure_public_cipher… in _nx_secure_tls_trusted_certificate_add() 99 …certificate -> nx_secure_x509_public_cipher_metadata_size = tls_session -> nx_secure_public_cipher… in _nx_secure_tls_trusted_certificate_add() 101 …certificate -> nx_secure_x509_hash_metadata_area = tls_session -> nx_secure_hash_mac_metadata_area; in _nx_secure_tls_trusted_certificate_add() 102 …certificate -> nx_secure_x509_hash_metadata_size = tls_session -> nx_secure_hash_mac_metadata_size; in _nx_secure_tls_trusted_certificate_add() 105 …certificate -> nx_secure_x509_cipher_table = tls_session -> nx_secure_tls_crypto_table -> nx_secur… in _nx_secure_tls_trusted_certificate_add() 106 …certificate -> nx_secure_x509_cipher_table_size = tls_session -> nx_secure_tls_crypto_table -> nx_… in _nx_secure_tls_trusted_certificate_add() 111 …ficate_add(&tls_session -> nx_secure_tls_credentials.nx_secure_tls_certificate_store, certificate); in _nx_secure_tls_trusted_certificate_add() 119 NX_PARAMETER_NOT_USED(certificate); in _nx_secure_tls_trusted_certificate_add()
|
| D | nx_secure_tls_local_certificate_add.c | 82 NX_SECURE_X509_CERT *certificate) in _nx_secure_tls_local_certificate_add() argument 91 …certificate -> nx_secure_x509_public_cipher_metadata_area = tls_session -> nx_secure_public_cipher… in _nx_secure_tls_local_certificate_add() 92 …certificate -> nx_secure_x509_public_cipher_metadata_size = tls_session -> nx_secure_public_cipher… in _nx_secure_tls_local_certificate_add() 94 …certificate -> nx_secure_x509_hash_metadata_area = tls_session -> nx_secure_hash_mac_metadata_area; in _nx_secure_tls_local_certificate_add() 95 …certificate -> nx_secure_x509_hash_metadata_size = tls_session -> nx_secure_hash_mac_metadata_size; in _nx_secure_tls_local_certificate_add() 98 …certificate -> nx_secure_x509_cipher_table = tls_session -> nx_secure_tls_crypto_table -> nx_secur… in _nx_secure_tls_local_certificate_add() 99 …certificate -> nx_secure_x509_cipher_table_size = tls_session -> nx_secure_tls_crypto_table -> nx_… in _nx_secure_tls_local_certificate_add() 103 …status = _nx_secure_x509_store_certificate_add(certificate, &tls_session -> nx_secure_tls_credenti… in _nx_secure_tls_local_certificate_add() 118 NX_PARAMETER_NOT_USED(certificate); in _nx_secure_tls_local_certificate_add()
|
| D | nx_secure_x509_certificate_verify.c | 89 NX_SECURE_X509_CERT *certificate, in _nx_secure_x509_certificate_verify() argument 133 certificate_verify_data = certificate -> nx_secure_x509_certificate_data; in _nx_secure_x509_certificate_verify() 134 verify_data_length = certificate -> nx_secure_x509_certificate_data_length; in _nx_secure_x509_certificate_verify() 135 signature_data = certificate -> nx_secure_x509_signature_data; in _nx_secure_x509_certificate_verify() 136 signature_length = certificate -> nx_secure_x509_signature_data_length; in _nx_secure_x509_certificate_verify() 139 …status = _nx_secure_x509_find_certificate_methods(certificate, (USHORT)certificate -> nx_secure_x5… in _nx_secure_x509_certificate_verify() 158 certificate -> nx_secure_x509_hash_metadata_area, in _nx_secure_x509_certificate_verify() 159 certificate -> nx_secure_x509_hash_metadata_size); in _nx_secure_x509_certificate_verify() 180 certificate -> nx_secure_x509_hash_metadata_area, in _nx_secure_x509_certificate_verify() 181 certificate -> nx_secure_x509_hash_metadata_size, in _nx_secure_x509_certificate_verify() [all …]
|
| D | nx_secure_x509_certificate_list_add.c | 82 NX_SECURE_X509_CERT *certificate, UINT duplicates_ok) in _nx_secure_x509_certificate_list_add() argument 92 *list_head = certificate; in _nx_secure_x509_certificate_list_add() 93 certificate -> nx_secure_x509_next_certificate = NULL; in _nx_secure_x509_certificate_list_add() 104 if (current_cert == certificate) in _nx_secure_x509_certificate_list_add() 116 if (certificate -> nx_secure_x509_cert_identifier != 0 && in _nx_secure_x509_certificate_list_add() 117 … current_cert -> nx_secure_x509_cert_identifier == certificate -> nx_secure_x509_cert_identifier) in _nx_secure_x509_certificate_list_add() 129 … &certificate -> nx_secure_x509_distinguished_name, NX_SECURE_X509_NAME_COMMON_NAME); in _nx_secure_x509_certificate_list_add() 148 previous_cert -> nx_secure_x509_next_certificate = certificate; in _nx_secure_x509_certificate_list_add() 149 certificate -> nx_secure_x509_next_certificate = NULL; in _nx_secure_x509_certificate_list_add()
|
| D | nx_secure_x509_crl_verify.c | 88 UINT _nx_secure_x509_crl_verify(NX_SECURE_X509_CERT *certificate, NX_SECURE_X509_CRL *crl, in _nx_secure_x509_crl_verify() argument 139 …status = _nx_secure_x509_find_certificate_methods(certificate, crl -> nx_secure_x509_crl_signature… in _nx_secure_x509_crl_verify() 155 certificate -> nx_secure_x509_hash_metadata_area, in _nx_secure_x509_crl_verify() 156 certificate -> nx_secure_x509_hash_metadata_size); in _nx_secure_x509_crl_verify() 177 certificate -> nx_secure_x509_hash_metadata_area, in _nx_secure_x509_crl_verify() 178 certificate -> nx_secure_x509_hash_metadata_size, in _nx_secure_x509_crl_verify() 189 status = hash_method -> nx_crypto_cleanup(certificate -> nx_secure_x509_hash_metadata_area); in _nx_secure_x509_crl_verify() 227 … certificate -> nx_secure_x509_public_cipher_metadata_area, in _nx_secure_x509_crl_verify() 228 … certificate -> nx_secure_x509_public_cipher_metadata_size); in _nx_secure_x509_crl_verify() 251 … certificate -> nx_secure_x509_public_cipher_metadata_area, in _nx_secure_x509_crl_verify() [all …]
|
| D | nx_secure_tls_remote_certificate_allocate.c | 92 NX_SECURE_X509_CERT *certificate, in _nx_secure_tls_remote_certificate_allocate() argument 102 certificate -> nx_secure_x509_certificate_raw_data = raw_certificate_buffer; in _nx_secure_tls_remote_certificate_allocate() 103 certificate -> nx_secure_x509_certificate_raw_buffer_size = buffer_size; in _nx_secure_tls_remote_certificate_allocate() 106 certificate->nx_secure_x509_user_allocated_cert = NX_TRUE; in _nx_secure_tls_remote_certificate_allocate() 109 …status = _nx_secure_x509_store_certificate_add(certificate, &tls_session -> nx_secure_tls_credenti… in _nx_secure_tls_remote_certificate_allocate() 124 NX_PARAMETER_NOT_USED(certificate); in _nx_secure_tls_remote_certificate_allocate()
|
| D | nx_secure_tls_remote_certificate_free_all.c | 84 NX_SECURE_X509_CERT *certificate; in _nx_secure_tls_remote_certificate_free_all() local 93 certificate = store -> nx_secure_x509_remote_certificates; in _nx_secure_tls_remote_certificate_free_all() 96 while (certificate != NX_NULL) in _nx_secure_tls_remote_certificate_free_all() 98 …status = _nx_secure_tls_remote_certificate_free(tls_session, &certificate -> nx_secure_x509_distin… in _nx_secure_tls_remote_certificate_free_all() 106 certificate = store -> nx_secure_x509_remote_certificates; in _nx_secure_tls_remote_certificate_free_all()
|
| D | nx_secure_x509_store_certificate_find.c | 79 NX_SECURE_X509_CERT **certificate, UINT *location) in _nx_secure_x509_store_certificate_find() argument 84 …if (name == NX_CRYPTO_NULL || store == NX_CRYPTO_NULL || certificate == NX_CRYPTO_NULL || location… in _nx_secure_x509_store_certificate_find() 96 …9_certificate_list_find(&store -> nx_secure_x509_trusted_certificates, name, cert_id, certificate); in _nx_secure_x509_store_certificate_find() 104 …509_certificate_list_find(&store -> nx_secure_x509_local_certificates, name, cert_id, certificate); in _nx_secure_x509_store_certificate_find() 112 …09_certificate_list_find(&store -> nx_secure_x509_remote_certificates, name, cert_id, certificate); in _nx_secure_x509_store_certificate_find()
|
| D | nx_secure_x509_expiration_check.c | 76 UINT _nx_secure_x509_expiration_check(NX_SECURE_X509_CERT *certificate, ULONG current_time) in _nx_secure_x509_expiration_check() argument 83 …tatus = _nx_secure_x509_asn1_time_to_unix_convert(certificate -> nx_secure_x509_not_before, certif… in _nx_secure_x509_expiration_check() 84 … certificate -> nx_secure_x509_validity_format, ¬_before); in _nx_secure_x509_expiration_check() 91 …tatus = _nx_secure_x509_asn1_time_to_unix_convert(certificate -> nx_secure_x509_not_after, certifi… in _nx_secure_x509_expiration_check() 92 … certificate -> nx_secure_x509_validity_format, ¬_after); in _nx_secure_x509_expiration_check()
|
| D | nx_secure_x509_free_certificate_get.c | 74 NX_SECURE_X509_CERT **certificate) in _nx_secure_x509_free_certificate_get() argument 88 *certificate = list_head; in _nx_secure_x509_free_certificate_get() 91 store -> nx_secure_x509_free_certificates = (*certificate) -> nx_secure_x509_next_certificate; in _nx_secure_x509_free_certificate_get() 92 (*certificate) -> nx_secure_x509_next_certificate = NX_CRYPTO_NULL; in _nx_secure_x509_free_certificate_get()
|
| D | nxe_secure_dtls_server_trusted_certificate_add.c | 70 NX_SECURE_X509_CERT *certificate, UINT cert_id) in _nxe_secure_dtls_server_trusted_certificate_add() argument 76 if(server_ptr == NX_NULL || certificate == NX_NULL) in _nxe_secure_dtls_server_trusted_certificate_add() 82 status = _nx_secure_dtls_server_trusted_certificate_add(server_ptr, certificate, cert_id); in _nxe_secure_dtls_server_trusted_certificate_add() 88 NX_PARAMETER_NOT_USED(certificate); in _nxe_secure_dtls_server_trusted_certificate_add()
|
| D | nxe_secure_dtls_server_local_certificate_add.c | 69 NX_SECURE_X509_CERT *certificate, UINT cert_id) in _nxe_secure_dtls_server_local_certificate_add() argument 75 if(server_ptr == NX_NULL || certificate == NX_NULL) in _nxe_secure_dtls_server_local_certificate_add() 87 status = _nx_secure_dtls_server_local_certificate_add(server_ptr, certificate, cert_id); in _nxe_secure_dtls_server_local_certificate_add() 92 NX_PARAMETER_NOT_USED(certificate); in _nxe_secure_dtls_server_local_certificate_add()
|
| D | nx_secure_dtls_session_trusted_certificate_add.c | 77 NX_SECURE_X509_CERT *certificate, UINT cert_id) in _nx_secure_dtls_session_trusted_certificate_add() argument 87 certificate->nx_secure_x509_cert_identifier = cert_id; in _nx_secure_dtls_session_trusted_certificate_add() 90 status = _nx_secure_tls_trusted_certificate_add(tls_session, certificate); in _nx_secure_dtls_session_trusted_certificate_add() 95 NX_PARAMETER_NOT_USED(certificate); in _nx_secure_dtls_session_trusted_certificate_add()
|
| D | nxe_secure_dtls_session_trusted_certificate_add.c | 70 NX_SECURE_X509_CERT *certificate, UINT cert_id) in _nxe_secure_dtls_session_trusted_certificate_add() argument 75 if ((dtls_session == NX_NULL) || (certificate == NX_NULL)) in _nxe_secure_dtls_session_trusted_certificate_add() 93 status = _nx_secure_dtls_session_trusted_certificate_add(dtls_session, certificate, cert_id); in _nxe_secure_dtls_session_trusted_certificate_add() 98 NX_PARAMETER_NOT_USED(certificate); in _nxe_secure_dtls_session_trusted_certificate_add()
|
| D | nxe_secure_dtls_session_local_certificate_add.c | 71 NX_SECURE_X509_CERT *certificate, UINT cert_id) in _nxe_secure_dtls_session_local_certificate_add() argument 76 if ((dtls_session == NX_NULL) || (certificate == NX_NULL)) in _nxe_secure_dtls_session_local_certificate_add() 95 status = _nx_secure_dtls_session_local_certificate_add(dtls_session, certificate, cert_id); in _nxe_secure_dtls_session_local_certificate_add() 100 NX_PARAMETER_NOT_USED(certificate); in _nxe_secure_dtls_session_local_certificate_add()
|
| /NetX-Duo-v6.2.1/test/regression/nx_secure_test/ |
| D | nx_secure_x509_certificate_verify_test.c | 87 NX_SECURE_X509_CERT certificate, certificate_1, certificate_2; in test_application_define() local 102 …status = nx_secure_x509_certificate_initialize(&certificate, test_ca_cert_der, test_ca_cert_der_le… in test_application_define() 106 …status = _nx_secure_x509_store_certificate_add(&certificate, &store, NX_SECURE_X509_CERT_LOCATION_… in test_application_define() 109 certificate.nx_secure_x509_cipher_table = test_x509_cipher_table; in test_application_define() 110 certificate.nx_secure_x509_cipher_table_size = 1; in test_application_define() 113 status = _nx_secure_x509_certificate_verify(&store, &certificate, &certificate); in test_application_define() 118 status = _nx_secure_x509_certificate_verify(&store, &certificate, &certificate); in test_application_define() 123 status = _nx_secure_x509_certificate_verify(&store, &certificate, &certificate); in test_application_define() 128 certificate.nx_secure_x509_public_algorithm = 0; in test_application_define() 129 status = _nx_secure_x509_certificate_verify(&store, &certificate, &certificate); in test_application_define() [all …]
|
| D | nx_secure_tls_error_checking_2_test.c | 74 NX_SECURE_X509_CERT *certificate) in test_certificate_callback() argument 84 NX_SECURE_X509_CERT certificate; in ntest_0_entry() local 121 status = nx_secure_tls_active_certificate_set(&tls_session, &certificate); in ntest_0_entry() 124 status = nx_secure_tls_local_certificate_add(&tls_session, &certificate); in ntest_0_entry() 127 …x_secure_tls_local_certificate_find(&tls_session, (NX_SECURE_X509_CERT **)&certificate, "name", 4); in ntest_0_entry() 146 …status = nx_secure_tls_remote_certificate_allocate(&tls_session, &certificate, (UCHAR *)packet_buf… in ntest_0_entry() 155 status = nx_secure_tls_server_certificate_add(&tls_session, &certificate, 0); in ntest_0_entry() 158 …tus = nx_secure_tls_server_certificate_find(&tls_session,(NX_SECURE_X509_CERT **) &certificate, 0); in ntest_0_entry() 232 status = nx_secure_tls_trusted_certificate_add(&tls_session, &certificate); in ntest_0_entry() 235 …status = nx_secure_x509_certificate_initialize(&certificate, (UCHAR *)&packet_buffer, sizeof(packe… in ntest_0_entry() [all …]
|
| D | nx_secure_x509_list_test.c | 64 NX_SECURE_X509_CERT *certificate; in TEST() local 120 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name, 0, &certificate); in TEST() 129 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name, 0, &certificate); in TEST() 138 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name_g, 0, &certificate); in TEST() 141 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name_ca, 0, &certificate); in TEST() 148 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name_g, 0, &certificate); in TEST() 151 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name_ca, 0, &certificate); in TEST() 161 status = _nx_secure_x509_certificate_list_find(&list_head, &cert_name_ca, 0, &certificate); in TEST() 172 NX_SECURE_X509_CERT *certificate; in TEST() local 175 status = _nx_secure_x509_certificate_list_find(NX_NULL, &cert_name, 0, &certificate); in TEST() [all …]
|
| D | nx_secure_tls_cert_verify_test.c | 275 static NX_SECURE_X509_CERT certificate; variable 322 memset(&certificate, 0, sizeof(certificate)); in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 323 …status = _nx_secure_x509_certificate_initialize(&certificate, test_device_cert_der, test_device_ce… in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 327 status = _nx_secure_tls_local_certificate_add(&session, &certificate); in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 344 USHORT tmp_size = certificate.nx_secure_x509_cipher_table_size; in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 345 certificate.nx_secure_x509_cipher_table_size = 0; in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 349 certificate.nx_secure_x509_cipher_table_size = tmp_size; in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 351 UINT tmp_type = certificate.nx_secure_x509_private_key_type; in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 352 certificate.nx_secure_x509_private_key_type = NX_SECURE_X509_KEY_TYPE_USER_DEFINED_MASK; in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() 356 certificate.nx_secure_x509_private_key_type = tmp_type; in NX_Secure_TLS_SendCertificateVerifyTest_Test_1() [all …]
|
| D | nx_secure_x509_parse_test.c | 6254 NX_SECURE_X509_CERT certificate; in TEST() local 6258 memset(&certificate, 0, sizeof(certificate)); in TEST() 6261 …status = nx_secure_x509_certificate_initialize(&certificate, google_cert_der, google_cert_der_len,… in TEST() 6278 …status = _nx_secure_x509_distinguished_name_compare(&certificate.nx_secure_x509_distinguished_name… in TEST() 6294 …status = _nx_secure_x509_distinguished_name_compare(&certificate.nx_secure_x509_issuer, &expected_… in TEST() 6300 EXPECT_EQ(NX_SECURE_X509_VERSION_3, certificate.nx_secure_x509_version); in TEST() 6302 EXPECT_EQ(NX_SECURE_TLS_X509_TYPE_RSA, certificate.nx_secure_x509_public_algorithm); in TEST() 6303 EXPECT_EQ(NX_SECURE_TLS_X509_TYPE_RSA_SHA_256, certificate.nx_secure_x509_signature_algorithm); in TEST() 6305 …EXPECT_EQ(google_cert_public_exponent_length, certificate.nx_secure_x509_public_key.rsa_public_key… in TEST() 6306 …EXPECT_EQ(0, memcmp(certificate.nx_secure_x509_public_key.rsa_public_key.nx_secure_rsa_public_expo… in TEST() [all …]
|
| D | nx_secure_x509_name_check_test.c | 2003 NX_SECURE_X509_CERT certificate; in thread_0_entry() local 2017 memset(&certificate, 0, sizeof(certificate)); in thread_0_entry() 2020 …status = nx_secure_x509_certificate_initialize(&certificate, (UCHAR*)name_check_test_data[i].cert_… in thread_0_entry() 2026 …status = _nx_secure_x509_common_name_dns_check(&certificate, name_check_test_data[i].match_names[j… in thread_0_entry() 2033 …status = _nx_secure_x509_common_name_dns_check(&certificate, name_check_test_data[i].mismatch_name… in thread_0_entry() 2042 memset(&certificate, 0, sizeof(certificate)); in thread_0_entry() 2045 …status = nx_secure_x509_certificate_initialize(&certificate, (UCHAR*)name_check_bad_cert_test_data… in thread_0_entry() 2051 …status = _nx_secure_x509_common_name_dns_check(&certificate, name_check_bad_cert_test_data[i].mism… in thread_0_entry()
|
| D | nx_secure_x509_certificate_initialize_test.c | 198 static NX_SECURE_X509_CERT certificate; variable 215 memset(&certificate, 0, sizeof(certificate)); in test_application_define() 216 …status = _nx_secure_x509_certificate_initialize(&certificate, test_device_cert_der, test_device_ce… in test_application_define()
|
| /NetX-Duo-v6.2.1/nx_secure/inc/ |
| D | nx_secure_x509.h | 906 NX_SECURE_X509_CERT **certificate); 909 NX_SECURE_X509_CERT **certificate, UINT cert_id); 913 NX_SECURE_X509_CERT **certificate); 916 UINT _nx_secure_x509_store_certificate_add(NX_SECURE_X509_CERT *certificate, 936 NX_SECURE_X509_CERT **certificate, UINT *location); 940 NX_SECURE_X509_CERT *certificate); 944 NX_SECURE_X509_CERT *certificate, 949 NX_SECURE_X509_CERT *certificate, ULONG current_time); 959 UINT _nx_secure_x509_certificate_initialize(NX_SECURE_X509_CERT *certificate, 974 NX_SECURE_X509_CERT **certificate); [all …]
|