1d4afb5ceSopenharmony_ciproject(lws-crypto-cose-sign C)
2d4afb5ceSopenharmony_cicmake_minimum_required(VERSION 2.8.12)
3d4afb5ceSopenharmony_cifind_package(libwebsockets CONFIG REQUIRED)
4d4afb5ceSopenharmony_cilist(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR})
5d4afb5ceSopenharmony_ciinclude(CheckCSourceCompiles)
6d4afb5ceSopenharmony_ciinclude(LwsCheckRequirements)
7d4afb5ceSopenharmony_ci
8d4afb5ceSopenharmony_ciset(SAMP lws-crypto-cose-sign)
9d4afb5ceSopenharmony_ciset(SRCS main.c)
10d4afb5ceSopenharmony_ci
11d4afb5ceSopenharmony_ciset(requirements 1)
12d4afb5ceSopenharmony_cirequire_lws_config(LWS_WITH_COSE 1 requirements)
13d4afb5ceSopenharmony_ci
14d4afb5ceSopenharmony_ciif (requirements)
15d4afb5ceSopenharmony_ci
16d4afb5ceSopenharmony_ci	add_executable(${SAMP} ${SRCS})
17d4afb5ceSopenharmony_ci
18d4afb5ceSopenharmony_ci	# EC signing
19d4afb5ceSopenharmony_ci	
20d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-1
21d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid 11
22d4afb5ceSopenharmony_ci		 	--alg ES256 --cose-sign
23d4afb5ceSopenharmony_ci		 	--stdin payload.txt
24d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-es256.sig)
25d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-2
26d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec384
27d4afb5ceSopenharmony_ci		 	--alg ES384 --cose-sign
28d4afb5ceSopenharmony_ci		 	--stdin payload.txt
29d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-es384.sig)
30d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-3
31d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec512
32d4afb5ceSopenharmony_ci		 	--alg ES512 --cose-sign
33d4afb5ceSopenharmony_ci		 	--stdin payload.txt
34d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-es512.sig)
35d4afb5ceSopenharmony_ci
36d4afb5ceSopenharmony_ci	# EC validation
37d4afb5ceSopenharmony_ci		 		
38d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-4
39d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks
40d4afb5ceSopenharmony_ci		 	--stdout r1.txt
41d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-es256.sig)
42d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-4	PROPERTIES
43d4afb5ceSopenharmony_ci						DEPENDS crypto-cose-sign-1)
44d4afb5ceSopenharmony_ci		 	
45d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-5
46d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks
47d4afb5ceSopenharmony_ci		 	--stdout r2.txt
48d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-es384.sig)
49d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-5	PROPERTIES
50d4afb5ceSopenharmony_ci						DEPENDS crypto-cose-sign-2)
51d4afb5ceSopenharmony_ci		 	
52d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-6
53d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks --cose-sign
54d4afb5ceSopenharmony_ci		 	--stdout r3.txt
55d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-es512.sig)
56d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-6	PROPERTIES
57d4afb5ceSopenharmony_ci						DEPENDS crypto-cose-sign-3)
58d4afb5ceSopenharmony_ci
59d4afb5ceSopenharmony_ci	# RSA 4096 signing
60d4afb5ceSopenharmony_ci	
61d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-7
62d4afb5ceSopenharmony_ci	 COMMAND lws-crypto-cose-sign -s -k rsa-4096.ck
63d4afb5ceSopenharmony_ci	 	--alg RS512 --cose-sign
64d4afb5ceSopenharmony_ci	 	--stdin payload.txt
65d4afb5ceSopenharmony_ci	 	--stdout ctest-sig-rs512.sig)
66d4afb5ceSopenharmony_ci	 	
67d4afb5ceSopenharmony_ci	 # RSA 4096 validation
68d4afb5ceSopenharmony_ci
69d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-8
70d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k rsa-4096.ck --cose-sign
71d4afb5ceSopenharmony_ci		 	--stdout r8.txt
72d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-rs512.sig)
73d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-8	PROPERTIES
74d4afb5ceSopenharmony_ci						DEPENDS crypto-cose-sign-7)
75d4afb5ceSopenharmony_ci						
76d4afb5ceSopenharmony_ci	# HMAC signing, cose-mac
77d4afb5ceSopenharmony_ci
78d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-9
79d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
80d4afb5ceSopenharmony_ci#		 	--alg HS256 --cose-mac
81d4afb5ceSopenharmony_ci#		 	--stdin payload.txt
82d4afb5ceSopenharmony_ci#		 	--stdout ctest-sig-hmac256.sig)
83d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-10
84d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-48
85d4afb5ceSopenharmony_ci#		 	--alg HS384 --cose-mac
86d4afb5ceSopenharmony_ci#		 	--stdin payload.txt
87d4afb5ceSopenharmony_ci#		 	--stdout ctest-sig-hmac384.sig)
88d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-11
89d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-64
90d4afb5ceSopenharmony_ci#		 	--alg HS512 --cose-mac
91d4afb5ceSopenharmony_ci#		 	--stdin payload.txt
92d4afb5ceSopenharmony_ci#		 	--stdout ctest-sig-hmac512.sig)
93d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-12
94d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
95d4afb5ceSopenharmony_ci#		 	--alg HS256_64 --cose-mac
96d4afb5ceSopenharmony_ci#		 	--stdin payload.txt
97d4afb5ceSopenharmony_ci#		 	--stdout ctest-sig-hmac256_64.sig)
98d4afb5ceSopenharmony_ci
99d4afb5ceSopenharmony_ci	# HMAC validation, cose-mac
100d4afb5ceSopenharmony_ci	
101d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-13
102d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -k set1.cks
103d4afb5ceSopenharmony_ci#		 	--stdout r1.txt
104d4afb5ceSopenharmony_ci#		 	--stdin ctest-sig-hmac256.sig)
105d4afb5ceSopenharmony_ci#	set_tests_properties(crypto-cose-sign-13
106d4afb5ceSopenharmony_ci#			     PROPERTIES DEPENDS crypto-cose-sign-9)
107d4afb5ceSopenharmony_ci#		 	
108d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-14
109d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -k set1.cks
110d4afb5ceSopenharmony_ci#		 	--stdout r2.txt
111d4afb5ceSopenharmony_ci#		 	--stdin ctest-sig-hmac384.sig)
112d4afb5ceSopenharmony_ci#	set_tests_properties(crypto-cose-sign-14
113d4afb5ceSopenharmony_ci#			     PROPERTIES DEPENDS crypto-cose-sign-10)
114d4afb5ceSopenharmony_ci#		 	
115d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-15
116d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -k set1.cks
117d4afb5ceSopenharmony_ci#		 	--stdout r3.txt
118d4afb5ceSopenharmony_ci#		 	--stdin ctest-sig-hmac512.sig)
119d4afb5ceSopenharmony_ci#	set_tests_properties(crypto-cose-sign-15
120d4afb5ceSopenharmony_ci#			     PROPERTIES DEPENDS crypto-cose-sign-11)
121d4afb5ceSopenharmony_ci#			     
122d4afb5ceSopenharmony_ci#	add_test(NAME crypto-cose-sign-16
123d4afb5ceSopenharmony_ci#		 COMMAND lws-crypto-cose-sign -k set1.cks
124d4afb5ceSopenharmony_ci#		 	--stdout r4.txt
125d4afb5ceSopenharmony_ci#		 	--stdin ctest-sig-hmac256_64.sig)
126d4afb5ceSopenharmony_ci#	set_tests_properties(crypto-cose-sign-16
127d4afb5ceSopenharmony_ci#			     PROPERTIES DEPENDS crypto-cose-sign-12)
128d4afb5ceSopenharmony_ci			     
129d4afb5ceSopenharmony_ci	# HMAC signing, cose-mac0
130d4afb5ceSopenharmony_ci
131d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-17
132d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
133d4afb5ceSopenharmony_ci		 	--alg HS256 --cose-mac0
134d4afb5ceSopenharmony_ci		 	--stdin payload.txt
135d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-hmac0256.sig)
136d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-18
137d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-48
138d4afb5ceSopenharmony_ci		 	--alg HS384 --cose-mac0
139d4afb5ceSopenharmony_ci		 	--stdin payload.txt
140d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-hmac0384.sig)
141d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-19
142d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid sec-64
143d4afb5ceSopenharmony_ci		 	--alg HS512 --cose-mac0
144d4afb5ceSopenharmony_ci		 	--stdin payload.txt
145d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-hmac0512.sig)
146d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-20
147d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -s -k set1.cks --kid our-secret
148d4afb5ceSopenharmony_ci		 	--alg HS256_64 --cose-mac0
149d4afb5ceSopenharmony_ci		 	--stdin payload.txt
150d4afb5ceSopenharmony_ci		 	--stdout ctest-sig-hmac0256_64.sig)
151d4afb5ceSopenharmony_ci
152d4afb5ceSopenharmony_ci	# HMAC validation, cose-mac0
153d4afb5ceSopenharmony_ci	
154d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-21
155d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks
156d4afb5ceSopenharmony_ci		 	--stdout r1.txt
157d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-hmac0256.sig)
158d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-21
159d4afb5ceSopenharmony_ci			     PROPERTIES DEPENDS crypto-cose-sign-17)
160d4afb5ceSopenharmony_ci		 	
161d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-22
162d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks
163d4afb5ceSopenharmony_ci		 	--stdout r2.txt
164d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-hmac0384.sig)
165d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-22
166d4afb5ceSopenharmony_ci			     PROPERTIES DEPENDS crypto-cose-sign-18)
167d4afb5ceSopenharmony_ci		 	
168d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-23
169d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks
170d4afb5ceSopenharmony_ci		 	--stdout r3.txt
171d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-hmac0512.sig)
172d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-23
173d4afb5ceSopenharmony_ci			     PROPERTIES DEPENDS crypto-cose-sign-19)
174d4afb5ceSopenharmony_ci			     
175d4afb5ceSopenharmony_ci	add_test(NAME crypto-cose-sign-24
176d4afb5ceSopenharmony_ci		 COMMAND lws-crypto-cose-sign -k set1.cks
177d4afb5ceSopenharmony_ci		 	--stdout r4.txt
178d4afb5ceSopenharmony_ci		 	--stdin ctest-sig-hmac0256_64.sig)
179d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-24
180d4afb5ceSopenharmony_ci			     PROPERTIES DEPENDS crypto-cose-sign-20)
181d4afb5ceSopenharmony_ci
182d4afb5ceSopenharmony_ci
183d4afb5ceSopenharmony_ci	set_tests_properties(crypto-cose-sign-1
184d4afb5ceSopenharmony_ci			     crypto-cose-sign-2
185d4afb5ceSopenharmony_ci			     crypto-cose-sign-3
186d4afb5ceSopenharmony_ci			     crypto-cose-sign-4
187d4afb5ceSopenharmony_ci     			     crypto-cose-sign-5
188d4afb5ceSopenharmony_ci			     crypto-cose-sign-6
189d4afb5ceSopenharmony_ci			     crypto-cose-sign-7
190d4afb5ceSopenharmony_ci			     crypto-cose-sign-8
191d4afb5ceSopenharmony_ci#    			     crypto-cose-sign-9
192d4afb5ceSopenharmony_ci#       		     crypto-cose-sign-10
193d4afb5ceSopenharmony_ci#			     crypto-cose-sign-11
194d4afb5ceSopenharmony_ci#			     crypto-cose-sign-12
195d4afb5ceSopenharmony_ci#			     crypto-cose-sign-13
196d4afb5ceSopenharmony_ci#			     crypto-cose-sign-14
197d4afb5ceSopenharmony_ci#			     crypto-cose-sign-15
198d4afb5ceSopenharmony_ci#			     crypto-cose-sign-16
199d4afb5ceSopenharmony_ci			     crypto-cose-sign-17
200d4afb5ceSopenharmony_ci			     crypto-cose-sign-18
201d4afb5ceSopenharmony_ci			     crypto-cose-sign-19
202d4afb5ceSopenharmony_ci			     crypto-cose-sign-20
203d4afb5ceSopenharmony_ci			     crypto-cose-sign-21
204d4afb5ceSopenharmony_ci			     crypto-cose-sign-22
205d4afb5ceSopenharmony_ci			     crypto-cose-sign-23
206d4afb5ceSopenharmony_ci			     crypto-cose-sign-24
207d4afb5ceSopenharmony_ci
208d4afb5ceSopenharmony_ci			     PROPERTIES
209d4afb5ceSopenharmony_ci		     		WORKING_DIRECTORY
210d4afb5ceSopenharmony_ci		     			${CMAKE_SOURCE_DIR}/minimal-examples/crypto/minimal-crypto-cose-sign
211d4afb5ceSopenharmony_ci		     		TIMEOUT 5)
212d4afb5ceSopenharmony_ci
213d4afb5ceSopenharmony_ci	if (websockets_shared)
214d4afb5ceSopenharmony_ci		target_link_libraries(${SAMP} websockets_shared ${LIBWEBSOCKETS_DEP_LIBS})
215d4afb5ceSopenharmony_ci		add_dependencies(${SAMP} websockets_shared)
216d4afb5ceSopenharmony_ci	else()
217d4afb5ceSopenharmony_ci		target_link_libraries(${SAMP} websockets ${LIBWEBSOCKETS_DEP_LIBS})
218d4afb5ceSopenharmony_ci	endif()
219d4afb5ceSopenharmony_ciendif()
220