quickjs-tart

quickjs-based runtime for wallet-core logic
Log | Files | Refs | README | LICENSE

hash.c (7082B)


      1 /*
      2  * Test driver for hash entry points.
      3  */
      4 /*  Copyright The Mbed TLS Contributors
      5  *  SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
      6  */
      7 
      8 #include <test/helpers.h>
      9 
     10 #if defined(PSA_CRYPTO_DRIVER_TEST)
     11 #include "psa_crypto_hash.h"
     12 
     13 #include "test/drivers/hash.h"
     14 
     15 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1)
     16 #if MBEDTLS_VERSION_MAJOR < 4
     17 #include "libtestdriver1/library/psa_crypto_hash.h"
     18 #else
     19 #include "libtestdriver1/tf-psa-crypto/drivers/builtin/src/psa_crypto_hash.h"
     20 #endif
     21 #endif
     22 
     23 mbedtls_test_driver_hash_hooks_t
     24     mbedtls_test_driver_hash_hooks = MBEDTLS_TEST_DRIVER_HASH_INIT;
     25 
     26 psa_status_t mbedtls_test_transparent_hash_compute(
     27     psa_algorithm_t alg,
     28     const uint8_t *input, size_t input_length,
     29     uint8_t *hash, size_t hash_size, size_t *hash_length)
     30 {
     31     mbedtls_test_driver_hash_hooks.hits++;
     32 
     33     if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) {
     34         mbedtls_test_driver_hash_hooks.driver_status =
     35             mbedtls_test_driver_hash_hooks.forced_status;
     36     } else {
     37 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
     38         defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH)
     39         mbedtls_test_driver_hash_hooks.driver_status =
     40             libtestdriver1_mbedtls_psa_hash_compute(
     41                 alg, input, input_length,
     42                 hash, hash_size, hash_length);
     43 #elif defined(MBEDTLS_PSA_BUILTIN_HASH)
     44         mbedtls_test_driver_hash_hooks.driver_status =
     45             mbedtls_psa_hash_compute(
     46                 alg, input, input_length,
     47                 hash, hash_size, hash_length);
     48 #else
     49         (void) alg;
     50         (void) input;
     51         (void) input_length;
     52         (void) hash;
     53         (void) hash_size;
     54         (void) hash_length;
     55         mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
     56 #endif
     57     }
     58 
     59     return mbedtls_test_driver_hash_hooks.driver_status;
     60 }
     61 
     62 psa_status_t mbedtls_test_transparent_hash_setup(
     63     mbedtls_transparent_test_driver_hash_operation_t *operation,
     64     psa_algorithm_t alg)
     65 {
     66     mbedtls_test_driver_hash_hooks.hits++;
     67 
     68     if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) {
     69         mbedtls_test_driver_hash_hooks.driver_status =
     70             mbedtls_test_driver_hash_hooks.forced_status;
     71     } else {
     72 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
     73         defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH)
     74         mbedtls_test_driver_hash_hooks.driver_status =
     75             libtestdriver1_mbedtls_psa_hash_setup(operation, alg);
     76 #elif defined(MBEDTLS_PSA_BUILTIN_HASH)
     77         mbedtls_test_driver_hash_hooks.driver_status =
     78             mbedtls_psa_hash_setup(operation, alg);
     79 #else
     80         (void) operation;
     81         (void) alg;
     82         mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
     83 #endif
     84     }
     85 
     86     return mbedtls_test_driver_hash_hooks.driver_status;
     87 }
     88 
     89 psa_status_t mbedtls_test_transparent_hash_clone(
     90     const mbedtls_transparent_test_driver_hash_operation_t *source_operation,
     91     mbedtls_transparent_test_driver_hash_operation_t *target_operation)
     92 {
     93     mbedtls_test_driver_hash_hooks.hits++;
     94 
     95     if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) {
     96         mbedtls_test_driver_hash_hooks.driver_status =
     97             mbedtls_test_driver_hash_hooks.forced_status;
     98     } else {
     99 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
    100         defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH)
    101         mbedtls_test_driver_hash_hooks.driver_status =
    102             libtestdriver1_mbedtls_psa_hash_clone(source_operation,
    103                                                   target_operation);
    104 #elif defined(MBEDTLS_PSA_BUILTIN_HASH)
    105         mbedtls_test_driver_hash_hooks.driver_status =
    106             mbedtls_psa_hash_clone(source_operation, target_operation);
    107 #else
    108         (void) source_operation;
    109         (void) target_operation;
    110         mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
    111 #endif
    112     }
    113 
    114     return mbedtls_test_driver_hash_hooks.driver_status;
    115 }
    116 
    117 psa_status_t mbedtls_test_transparent_hash_update(
    118     mbedtls_transparent_test_driver_hash_operation_t *operation,
    119     const uint8_t *input,
    120     size_t input_length)
    121 {
    122     mbedtls_test_driver_hash_hooks.hits++;
    123 
    124     if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) {
    125         mbedtls_test_driver_hash_hooks.driver_status =
    126             mbedtls_test_driver_hash_hooks.forced_status;
    127     } else {
    128 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
    129         defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH)
    130         mbedtls_test_driver_hash_hooks.driver_status =
    131             libtestdriver1_mbedtls_psa_hash_update(
    132                 operation, input, input_length);
    133 #elif defined(MBEDTLS_PSA_BUILTIN_HASH)
    134         mbedtls_test_driver_hash_hooks.driver_status =
    135             mbedtls_psa_hash_update(operation, input, input_length);
    136 #else
    137         (void) operation;
    138         (void) input;
    139         (void) input_length;
    140         mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
    141 #endif
    142     }
    143 
    144     return mbedtls_test_driver_hash_hooks.driver_status;
    145 }
    146 
    147 psa_status_t mbedtls_test_transparent_hash_finish(
    148     mbedtls_transparent_test_driver_hash_operation_t *operation,
    149     uint8_t *hash,
    150     size_t hash_size,
    151     size_t *hash_length)
    152 {
    153     mbedtls_test_driver_hash_hooks.hits++;
    154 
    155     if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) {
    156         mbedtls_test_driver_hash_hooks.driver_status =
    157             mbedtls_test_driver_hash_hooks.forced_status;
    158     } else {
    159 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
    160         defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH)
    161         mbedtls_test_driver_hash_hooks.driver_status =
    162             libtestdriver1_mbedtls_psa_hash_finish(
    163                 operation, hash, hash_size, hash_length);
    164 #elif defined(MBEDTLS_PSA_BUILTIN_HASH)
    165         mbedtls_test_driver_hash_hooks.driver_status =
    166             mbedtls_psa_hash_finish(operation, hash, hash_size, hash_length);
    167 #else
    168         (void) operation;
    169         (void) hash;
    170         (void) hash_size;
    171         (void) hash_length;
    172         mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
    173 #endif
    174     }
    175 
    176     return mbedtls_test_driver_hash_hooks.driver_status;
    177 }
    178 
    179 psa_status_t mbedtls_test_transparent_hash_abort(
    180     mbedtls_transparent_test_driver_hash_operation_t *operation)
    181 {
    182     mbedtls_test_driver_hash_hooks.hits++;
    183 
    184     if (mbedtls_test_driver_hash_hooks.forced_status != PSA_SUCCESS) {
    185         mbedtls_test_driver_hash_hooks.driver_status =
    186             mbedtls_test_driver_hash_hooks.forced_status;
    187     } else {
    188 #if defined(MBEDTLS_TEST_LIBTESTDRIVER1) && \
    189         defined(LIBTESTDRIVER1_MBEDTLS_PSA_BUILTIN_HASH)
    190         mbedtls_test_driver_hash_hooks.driver_status =
    191             libtestdriver1_mbedtls_psa_hash_abort(operation);
    192 #elif defined(MBEDTLS_PSA_BUILTIN_HASH)
    193         mbedtls_test_driver_hash_hooks.driver_status =
    194             mbedtls_psa_hash_abort(operation);
    195 #else
    196         (void) operation;
    197         mbedtls_test_driver_hash_hooks.driver_status = PSA_ERROR_NOT_SUPPORTED;
    198 #endif
    199     }
    200 
    201     return mbedtls_test_driver_hash_hooks.driver_status;
    202 }
    203 #endif /* PSA_CRYPTO_DRIVER_TEST */