Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/libecc/src/wycheproof_tests/libecc_wycheproof.h
34879 views
1
/*
2
* Copyright (C) 2021 - This file is part of libecc project
3
*
4
* Authors:
5
* Ryad BENADJILA <[email protected]>
6
* Arnaud EBALARD <[email protected]>
7
*
8
* This software is licensed under a dual BSD and GPL v2 license.
9
* See LICENSE file at the root folder of the project.
10
*/
11
12
/*
13
* Source code for handling tests imported from the wycheproof project:
14
* https://github.com/google/wycheproof
15
*
16
* As this project primarily targets java cryptographic libraries, the
17
* json test files have been parsed to generate libecc friendly test cases.
18
*
19
* NOTE: we skip here all the tests related to ASN.1 format errors as libecc
20
* does not handle ASN.1 parsing at all. This explains the "skipped" tests from
21
* the wycheproof project.
22
*
23
*/
24
25
#include <libecc/libsig.h>
26
27
typedef struct {
28
/* Test case name */
29
const char *name;
30
31
ec_alg_type sig_alg;
32
33
hash_alg_type hash;
34
35
/* Curve params */
36
const ec_str_params *curve;
37
38
const unsigned char *pubkey;
39
unsigned int pubkeylen;
40
41
const unsigned char *msg;
42
unsigned int msglen;
43
44
const unsigned char *sig;
45
unsigned int siglen;
46
47
int result;
48
49
const char *comment;
50
} wycheproof_ecdsa_test;
51
52
typedef struct {
53
/* Test case name */
54
const char *name;
55
56
ec_alg_type sig_alg;
57
58
hash_alg_type hash;
59
60
/* Curve params */
61
const ec_str_params *curve;
62
63
const unsigned char *pubkey;
64
unsigned int pubkeylen;
65
66
const unsigned char *privkey;
67
unsigned int privkeylen;
68
69
const unsigned char *msg;
70
unsigned int msglen;
71
72
const unsigned char *sig;
73
unsigned int siglen;
74
75
int result;
76
77
const char *comment;
78
} wycheproof_eddsa_test;
79
80
typedef struct {
81
/* Test case name */
82
const char *name;
83
84
ec_alg_type xdh_alg;
85
86
/* Curve params */
87
const ec_str_params *curve;
88
89
const unsigned char *peerpubkey;
90
unsigned int peerpubkeylen;
91
92
const unsigned char *ourpubkey;
93
unsigned int ourpubkeylen;
94
95
const unsigned char *privkey;
96
unsigned int privkeylen;
97
98
const unsigned char *sharedsecret;
99
unsigned int sharedsecretlen;
100
101
int result;
102
103
const char *comment;
104
} wycheproof_xdh_test;
105
106
typedef struct {
107
/* Test case name */
108
const char *name;
109
110
ec_alg_type ecdh_alg;
111
112
/* Curve params */
113
const ec_str_params *curve;
114
115
const unsigned char *peerpubkey;
116
unsigned int peerpubkeylen;
117
int compressed;
118
119
const unsigned char *ourpubkey;
120
unsigned int ourpubkeylen;
121
122
const unsigned char *privkey;
123
unsigned int privkeylen;
124
125
const unsigned char *sharedsecret;
126
unsigned int sharedsecretlen;
127
128
int result;
129
130
const char *comment;
131
} wycheproof_ecdh_test;
132
133
typedef struct {
134
/* Test case name */
135
const char *name;
136
137
hash_alg_type hash;
138
139
const unsigned char *key;
140
unsigned int keylen;
141
142
const unsigned char *msg;
143
unsigned int msglen;
144
145
const unsigned char *tag;
146
unsigned int taglen;
147
148
int result;
149
150
const char *comment;
151
} wycheproof_hmac_test;
152
153