Coverage Report

Created: 2026-11-12 06:30

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/liboqs/src/sig/qruov/sig_qruov_5q127L10aes.c
Line
Count
Source
1
// SPDX-License-Identifier: MIT
2
3
#include <stdlib.h>
4
5
#include <oqs/sig_qruov.h>
6
7
#if defined(OQS_ENABLE_SIG_qruov_5q127L10aes)
8
123
OQS_SIG *OQS_SIG_qruov_5q127L10aes_new(void) {
9
10
123
  OQS_SIG *sig = OQS_MEM_calloc(1, sizeof(OQS_SIG));
11
123
  if (sig == NULL) {
12
0
    return NULL;
13
0
  }
14
123
  sig->method_name = OQS_SIG_alg_qruov_5q127L10aes;
15
123
  sig->alg_version = "Round 3";
16
17
123
  sig->claimed_nist_level = 5;
18
123
  sig->euf_cma = true;
19
123
  sig->suf_cma = false;
20
123
  sig->sig_with_ctx_support = false;
21
22
123
  sig->length_public_key = OQS_SIG_qruov_5q127L10aes_length_public_key;
23
123
  sig->length_secret_key = OQS_SIG_qruov_5q127L10aes_length_secret_key;
24
123
  sig->length_signature = OQS_SIG_qruov_5q127L10aes_length_signature;
25
26
123
  sig->keypair = OQS_SIG_qruov_5q127L10aes_keypair;
27
123
  sig->sign = OQS_SIG_qruov_5q127L10aes_sign;
28
123
  sig->verify = OQS_SIG_qruov_5q127L10aes_verify;
29
123
  sig->sign_with_ctx_str = OQS_SIG_qruov_5q127L10aes_sign_with_ctx_str;
30
123
  sig->verify_with_ctx_str = OQS_SIG_qruov_5q127L10aes_verify_with_ctx_str;
31
32
123
  return sig;
33
123
}
34
35
extern int qruov_5q127L10_aes_ref_crypto_sign_keypair(uint8_t *pk, uint8_t *sk);
36
extern int qruov_5q127L10_aes_ref_crypto_sign_signature(uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk);
37
extern int qruov_5q127L10_aes_ref_crypto_sign_verify(const uint8_t *sig, size_t siglen, const uint8_t *m, size_t mlen, const uint8_t *pk);
38
39
#if defined(OQS_ENABLE_SIG_qruov_5q127L10aes_opt)
40
extern int qruov_5q127L10_aes_opt_crypto_sign_keypair(uint8_t *pk, uint8_t *sk);
41
extern int qruov_5q127L10_aes_opt_crypto_sign_signature(uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk);
42
extern int qruov_5q127L10_aes_opt_crypto_sign_verify(const uint8_t *sig, size_t siglen, const uint8_t *m, size_t mlen, const uint8_t *pk);
43
#endif
44
45
#if defined(OQS_ENABLE_SIG_qruov_5q127L10aes_avx2)
46
extern int qruov_5q127L10_aes_avx2_crypto_sign_keypair(uint8_t *pk, uint8_t *sk);
47
extern int qruov_5q127L10_aes_avx2_crypto_sign_signature(uint8_t *sig, size_t *siglen, const uint8_t *m, size_t mlen, const uint8_t *sk);
48
extern int qruov_5q127L10_aes_avx2_crypto_sign_verify(const uint8_t *sig, size_t siglen, const uint8_t *m, size_t mlen, const uint8_t *pk);
49
#endif
50
51
123
OQS_API OQS_STATUS OQS_SIG_qruov_5q127L10aes_keypair(uint8_t *public_key, uint8_t *secret_key) {
52
#if defined(OQS_ENABLE_SIG_qruov_5q127L10aes_opt)
53
  return (OQS_STATUS) qruov_5q127L10_aes_opt_crypto_sign_keypair(public_key, secret_key);
54
#elif defined(OQS_ENABLE_SIG_qruov_5q127L10aes_avx2)
55
#if defined(OQS_DIST_BUILD)
56
123
  if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_AES)) {
57
123
#endif /* OQS_DIST_BUILD */
58
123
    return (OQS_STATUS) qruov_5q127L10_aes_avx2_crypto_sign_keypair(public_key, secret_key);
59
123
#if defined(OQS_DIST_BUILD)
60
123
  } else {
61
0
    return (OQS_STATUS) qruov_5q127L10_aes_ref_crypto_sign_keypair(public_key, secret_key);
62
0
  }
63
123
#endif /* OQS_DIST_BUILD */
64
#else
65
  return (OQS_STATUS) qruov_5q127L10_aes_ref_crypto_sign_keypair(public_key, secret_key);
66
#endif
67
123
}
68
69
123
OQS_API OQS_STATUS OQS_SIG_qruov_5q127L10aes_sign(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *secret_key) {
70
#if defined(OQS_ENABLE_SIG_qruov_5q127L10aes_opt)
71
  return (OQS_STATUS) qruov_5q127L10_aes_opt_crypto_sign_signature(signature, signature_len, message, message_len, secret_key);
72
#elif defined(OQS_ENABLE_SIG_qruov_5q127L10aes_avx2)
73
#if defined(OQS_DIST_BUILD)
74
123
  if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_AES)) {
75
123
#endif /* OQS_DIST_BUILD */
76
123
    return (OQS_STATUS) qruov_5q127L10_aes_avx2_crypto_sign_signature(signature, signature_len, message, message_len, secret_key);
77
123
#if defined(OQS_DIST_BUILD)
78
123
  } else {
79
0
    return (OQS_STATUS) qruov_5q127L10_aes_ref_crypto_sign_signature(signature, signature_len, message, message_len, secret_key);
80
0
  }
81
123
#endif /* OQS_DIST_BUILD */
82
#else
83
  return (OQS_STATUS) qruov_5q127L10_aes_ref_crypto_sign_signature(signature, signature_len, message, message_len, secret_key);
84
#endif
85
123
}
86
87
123
OQS_API OQS_STATUS OQS_SIG_qruov_5q127L10aes_verify(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *public_key) {
88
#if defined(OQS_ENABLE_SIG_qruov_5q127L10aes_opt)
89
  return (OQS_STATUS) qruov_5q127L10_aes_opt_crypto_sign_verify(signature, signature_len, message, message_len, public_key);
90
#elif defined(OQS_ENABLE_SIG_qruov_5q127L10aes_avx2)
91
#if defined(OQS_DIST_BUILD)
92
123
  if (OQS_CPU_has_extension(OQS_CPU_EXT_AVX2) && OQS_CPU_has_extension(OQS_CPU_EXT_BMI2) && OQS_CPU_has_extension(OQS_CPU_EXT_AES)) {
93
123
#endif /* OQS_DIST_BUILD */
94
123
    return (OQS_STATUS) qruov_5q127L10_aes_avx2_crypto_sign_verify(signature, signature_len, message, message_len, public_key);
95
123
#if defined(OQS_DIST_BUILD)
96
123
  } else {
97
0
    return (OQS_STATUS) qruov_5q127L10_aes_ref_crypto_sign_verify(signature, signature_len, message, message_len, public_key);
98
0
  }
99
123
#endif /* OQS_DIST_BUILD */
100
#else
101
  return (OQS_STATUS) qruov_5q127L10_aes_ref_crypto_sign_verify(signature, signature_len, message, message_len, public_key);
102
#endif
103
123
}
104
105
0
OQS_API OQS_STATUS OQS_SIG_qruov_5q127L10aes_sign_with_ctx_str(uint8_t *signature, size_t *signature_len, const uint8_t *message, size_t message_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *secret_key) {
106
0
  if (ctx_str == NULL && ctx_str_len == 0) {
107
0
    return OQS_SIG_qruov_5q127L10aes_sign(signature, signature_len, message, message_len, secret_key);
108
0
  } else {
109
0
    return OQS_ERROR;
110
0
  }
111
0
}
112
113
0
OQS_API OQS_STATUS OQS_SIG_qruov_5q127L10aes_verify_with_ctx_str(const uint8_t *message, size_t message_len, const uint8_t *signature, size_t signature_len, const uint8_t *ctx_str, size_t ctx_str_len, const uint8_t *public_key) {
114
0
  if (ctx_str == NULL && ctx_str_len == 0) {
115
0
    return OQS_SIG_qruov_5q127L10aes_verify(message, message_len, signature, signature_len, public_key);
116
0
  } else {
117
0
    return OQS_ERROR;
118
0
  }
119
0
}
120
#endif