Manuel Pégourié-Gonnard
|
12b8472f2f
|
Test against GnuTLS for every common ciphersuite
|
2014-03-26 12:58:54 +01:00 |
|
Manuel Pégourié-Gonnard
|
a1a9f9a639
|
Allow GnuTLS to be enabled via environment
|
2014-03-26 12:58:53 +01:00 |
|
Manuel Pégourié-Gonnard
|
e01af4cd37
|
Tune compat.sh and ssl-opt.sh error reporting
|
2014-03-26 12:58:48 +01:00 |
|
Manuel Pégourié-Gonnard
|
244c06ee02
|
Be more specific in ref-configs's compat.sh call
|
2014-03-26 12:58:47 +01:00 |
|
Manuel Pégourié-Gonnard
|
897a595406
|
Make all.sh more robust in some use cases
|
2014-03-26 12:58:47 +01:00 |
|
Paul Bakker
|
ad914954c2
|
Ignore .log files in tests
|
2014-03-26 12:57:13 +01:00 |
|
Paul Bakker
|
3f0be61a27
|
Merged support for parsing EC keys that use SpecifiedECDomain
|
2014-03-26 11:30:39 +01:00 |
|
Manuel Pégourié-Gonnard
|
80955ee075
|
all.sh: one test script to run them all
|
2014-03-20 09:38:39 +01:00 |
|
Manuel Pégourié-Gonnard
|
5de31ecf9c
|
Don't use dummy CA in compat.sh
|
2014-03-19 17:43:25 +01:00 |
|
Manuel Pégourié-Gonnard
|
a11a77f316
|
Add test for SpecifiedECDomain
|
2014-03-19 16:50:59 +01:00 |
|
Manuel Pégourié-Gonnard
|
3947d04b24
|
Fix too aggressive test for gnutls commands
|
2014-03-14 18:13:53 +01:00 |
|
Manuel Pégourié-Gonnard
|
417d46cdb0
|
Add --filter, --exclude to ssl-opt.sh
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
74faf3c400
|
Fix usage of environment variables for commands
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
84fd6877c6
|
Use ssl_client2 to terminate ssl_server2
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
ba0b8442f0
|
compat.sh and ssl-opt.sh cosmetics
- do not print '0 memory errors' when memcheck was not used
- add commands to the log files
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
9edba77c06
|
Add --exclude and --peers options to compat.sh
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
a4371447e4
|
Start adding GnuTLS client support to compat.sh
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
213c67adfc
|
Adapt to new ssl_client2 default
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
5b2d776d2a
|
GnuTLS in compat.sh: server-side
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
3eec60402f
|
Add memcheck support to compat.sh
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
de515ccdf5
|
Add tests for client w/o certificate
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
1b149ef746
|
Use no cert when none is required in compat.sh
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
f7a2690561
|
Make the openssl command configurable in sh tests
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
911622d84a
|
compat.sh: never kill our server
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
87ae3031ac
|
compat.sh: use file output (prep. for valgrind)
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
42d195acc1
|
compat.sh: don't start server if no ciphersuite
|
2014-03-14 08:41:02 +01:00 |
|
Manuel Pégourié-Gonnard
|
9dea8bd658
|
Minor compat.sh clean-up
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
c73339fd50
|
Add a --memcheck option to ssl-opt.sh
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
a3d808e140
|
Add tests for version bounds
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
0b6609b34c
|
Add tests for non-blocking I/O
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
db735f67b9
|
Add tests for sess-id-based resume with OpenSSL
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
fccd3255f9
|
Add tests for tickets with OpenSSL
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
677884d174
|
Add a few checks in ssl-opt.sh
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
a9062e96e7
|
shell scripts: clean up when exiting on signal
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
c1da664e89
|
Add test for SSLv2 ClientHello
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
96ea2f2557
|
Add tests for SNI
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
4145b89091
|
compat.sh cosmetics
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
720375e7ea
|
Add test descriptions for lcov
|
2014-03-14 08:41:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
8520dac292
|
Add tests for auth_mode
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
da782c9458
|
compat.sh: better certificate verification testing
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
33a752e180
|
ssl-opt.sh: count and report failures
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
f8bdbb5d62
|
ssl-opt.sh: cosmetics
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
dbe1ee1988
|
Add tests for session ticket lifetime
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
c55a5b7d6f
|
Add tests for cache timeout
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
4c88345f19
|
Add test for ssl_cache max_entries
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
780d671f9d
|
Add tests for renegotiation
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
de14378a53
|
Add tests for max fragment length extension
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
f7c52014ec
|
Add basic tests for session resumption
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
eaadc508fb
|
New ssl-opt.sh test script
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
c57e98b5fa
|
compat.sh: terminate ssl_server2 cleanly
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
5f593f07f7
|
compat.sh: rm a useless sleep
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
95957717f3
|
compat.sh: source cosmetics
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
330e4111cb
|
compat.sh: factor code into run_client() function
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
304beef2ae
|
compat.sh: function to start server
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
9ada01a70c
|
compat.sh: regroup arguments even more
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
1b31d7fd97
|
compat.sh: remove useless server restart
|
2014-03-14 08:41:00 +01:00 |
|
Manuel Pégourié-Gonnard
|
48f196cda5
|
compat.sh refactoring: group ciphersuite lists
|
2014-03-14 08:40:59 +01:00 |
|
Manuel Pégourié-Gonnard
|
d941a796be
|
compat.sh refectoring: regroup argument setting
|
2014-03-14 08:40:59 +01:00 |
|
Manuel Pégourié-Gonnard
|
c7a88a960d
|
Fix more depend issues on specific curves
|
2014-03-13 19:25:06 +01:00 |
|
Manuel Pégourié-Gonnard
|
9533765b25
|
Reject certs and CRLs from the future
|
2014-03-13 19:25:06 +01:00 |
|
Manuel Pégourié-Gonnard
|
6304f786e0
|
Add x509_time_future()
|
2014-03-13 19:25:06 +01:00 |
|
Manuel Pégourié-Gonnard
|
29dcc0b93c
|
Fix depend issues in test suites for cipher modes
|
2014-03-13 19:25:06 +01:00 |
|
Paul Bakker
|
3d52ab76f6
|
Fixed CMake symlinking on out-of-source builds
|
2014-03-07 10:33:55 +01:00 |
|
Manuel Pégourié-Gonnard
|
e8bac683c2
|
Add -Wunreachable-code to check mode
See eg https://www.imperialviolet.org/2014/02/22/applebug.html
|
2014-02-24 10:49:27 +01:00 |
|
Manuel Pégourié-Gonnard
|
c9093085ed
|
Revert "Merged RSA-PSS support in Certificate, CSR and CRL"
This reverts commit ab50d8d30c , reversing
changes made to e31b1d992a .
|
2014-02-12 09:39:59 +01:00 |
|
Paul Bakker
|
cd6d69a414
|
Fixed testing with out-of-source builds using cmake
|
2014-02-06 15:44:11 +01:00 |
|
Paul Bakker
|
ab50d8d30c
|
Merged RSA-PSS support in Certificate, CSR and CRL
|
2014-02-06 13:14:56 +01:00 |
|
Manuel Pégourié-Gonnard
|
fbf0915404
|
Fix bug in RSA PKCS#1 v1.5 "reversed" operations
|
2014-02-05 17:01:24 +01:00 |
|
Manuel Pégourié-Gonnard
|
c4919bc528
|
Add tests for rsa_copy()
|
2014-02-05 17:00:39 +01:00 |
|
Manuel Pégourié-Gonnard
|
725afd8b55
|
Fix the 'error' test suite
|
2014-02-01 11:54:28 +01:00 |
|
Manuel Pégourié-Gonnard
|
e6cdbbd40b
|
Add tests for th init_buf() variant of HMAC_DRBG
|
2014-02-01 11:30:03 +01:00 |
|
Manuel Pégourié-Gonnard
|
7575daa1f2
|
Expand CTR_DRBG test coverage
|
2014-01-31 12:16:54 +01:00 |
|
Manuel Pégourié-Gonnard
|
b3b205e081
|
Clean up details in ctr_drbg_selftest()
|
2014-01-31 12:04:06 +01:00 |
|
Manuel Pégourié-Gonnard
|
79afaa0551
|
Add hmac_drbg_selftest()
|
2014-01-31 11:52:14 +01:00 |
|
Manuel Pégourié-Gonnard
|
62273b88ab
|
Add NIST validation tests for HMAC_DRBG pr=true
|
2014-01-31 10:19:05 +01:00 |
|
Manuel Pégourié-Gonnard
|
24600b7c8a
|
Add NIST validation tests for HMAC_DRBG nopr
|
2014-01-31 09:58:12 +01:00 |
|
Manuel Pégourié-Gonnard
|
4f880a5dc2
|
Add misc tests for HMAC_DRBG
|
2014-01-30 23:17:33 +01:00 |
|
Manuel Pégourié-Gonnard
|
48bc3e81da
|
Add hmac_drbg_{write,update}_seed_file()
|
2014-01-30 23:17:33 +01:00 |
|
Manuel Pégourié-Gonnard
|
6801f39397
|
Add NIST no_reseed validation tests for HMAC_DRBG
|
2014-01-30 23:17:33 +01:00 |
|
Paul Bakker
|
2aca241425
|
Ready for release 1.3.4
|
2014-01-27 11:59:30 +01:00 |
|
Paul Bakker
|
42099c3155
|
Revert "Add pk_rsa_set_padding() and rsa_set_padding()"
This reverts commit b4fae579e8 .
Conflicts:
library/pk.c
tests/suites/test_suite_pk.data
tests/suites/test_suite_pk.function
|
2014-01-27 11:59:29 +01:00 |
|
Manuel Pégourié-Gonnard
|
41cae8e1f9
|
Parse CSRs signed with RSASSA-PSS
|
2014-01-25 12:48:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
d4fd57dda4
|
Add tests for parsing CSRs
|
2014-01-25 12:48:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
5eeb32b552
|
Parse CRLs signed with RSASSA-PSS
|
2014-01-25 12:48:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
ce7c6fd433
|
Fix dependencies
|
2014-01-25 12:48:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
3c1e8b539c
|
Finish parsing RSASSA-PSS parameters
|
2014-01-25 12:48:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
d9fd87be33
|
Start parsing RSASSA-PSS parameters
|
2014-01-25 12:48:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
b1d4eb16e4
|
Basic parsing of certs signed with RSASSA-PSS
|
2014-01-25 12:48:58 +01:00 |
|
Paul Bakker
|
556efba51c
|
Added AES CFB8 mode
|
2014-01-24 15:38:12 +01:00 |
|
Manuel Pégourié-Gonnard
|
a56d363724
|
Fix missing dependency declaration in test
|
2014-01-23 17:50:56 +01:00 |
|
Manuel Pégourié-Gonnard
|
8505d50d4b
|
Fix "check" mode warnings
|
2014-01-23 17:26:36 +01:00 |
|
Manuel Pégourié-Gonnard
|
027a7cb800
|
Rm now useless test helper function
|
2014-01-23 17:00:33 +01:00 |
|
Manuel Pégourié-Gonnard
|
544416aa99
|
Fix failing ECDH test (test vectors misuse)
|
2014-01-23 16:55:18 +01:00 |
|
Paul Bakker
|
bf98c3dd11
|
Merged deterministic ECDSA
Conflicts:
library/ecdsa.c
|
2014-01-23 15:48:01 +01:00 |
|
Manuel Pégourié-Gonnard
|
2d5f142dc6
|
Fix warning in main_test
|
2014-01-22 16:01:17 +01:00 |
|
Manuel Pégourié-Gonnard
|
dfab4c1193
|
Add forgotten #ifdef and depends_on
|
2014-01-22 16:01:06 +01:00 |
|
Manuel Pégourié-Gonnard
|
e707eb6df3
|
Fix unused variable in test case
|
2014-01-22 14:57:36 +01:00 |
|
Paul Bakker
|
5862eee4ca
|
Merged RIPEMD-160 support
|
2014-01-22 14:18:34 +01:00 |
|
Paul Bakker
|
61b699ed1b
|
Renamed RMD160 to RIPEMD160
|
2014-01-22 14:17:31 +01:00 |
|
Paul Bakker
|
0ac99ca7bc
|
Merged support for secp224k1, secp192k1 and secp25k1
|
2014-01-22 13:10:48 +01:00 |
|
Manuel Pégourié-Gonnard
|
83a7fdd47b
|
Replace expired test certificate
|
2014-01-22 13:03:42 +01:00 |
|
Manuel Pégourié-Gonnard
|
b4fae579e8
|
Add pk_rsa_set_padding() and rsa_set_padding()
|
2014-01-22 13:03:27 +01:00 |
|
Manuel Pégourié-Gonnard
|
ea499a7321
|
Add support for secp192k1
|
2014-01-17 21:41:39 +01:00 |
|
Manuel Pégourié-Gonnard
|
18e3ec9b4d
|
Add support for secp224k1
|
2014-01-17 21:41:39 +01:00 |
|
Manuel Pégourié-Gonnard
|
e4d47a655b
|
Add RIPEMD-160 to the generic MD layer
|
2014-01-17 20:41:32 +01:00 |
|
Manuel Pégourié-Gonnard
|
ff40c3ac34
|
Add HMAC support to RIPEMD-160
|
2014-01-17 20:04:59 +01:00 |
|
Manuel Pégourié-Gonnard
|
130fe97055
|
Tighten sizes in mdx.function
|
2014-01-17 14:23:48 +01:00 |
|
Manuel Pégourié-Gonnard
|
df2437d156
|
Rm redundant "depends" in mdx.data
|
2014-01-17 14:09:46 +01:00 |
|
Manuel Pégourié-Gonnard
|
cab4a8807c
|
Add RIPEMD-160 (core functions)
|
2014-01-17 14:04:25 +01:00 |
|
Manuel Pégourié-Gonnard
|
f51c8fc353
|
Add support for secp256k1 arithmetic
|
2014-01-10 18:17:18 +01:00 |
|
Manuel Pégourié-Gonnard
|
937340bce0
|
Add ecdsa_write_signature_det()
|
2014-01-06 15:29:03 +01:00 |
|
Manuel Pégourié-Gonnard
|
4daaef7e27
|
Add ecdsa_sign_det() with test vectors
|
2014-01-06 15:29:03 +01:00 |
|
Manuel Pégourié-Gonnard
|
fae079e4c5
|
Adapt ECDSA tests to new ecp_gen_keypair()
|
2014-01-06 11:01:24 +01:00 |
|
Manuel Pégourié-Gonnard
|
217a29c844
|
Fix bug in rnd_pseudo_rnd() test helper function
Only the first 4 bytes of the output were set, the rest was untouched.
|
2014-01-03 12:19:19 +01:00 |
|
Paul Bakker
|
5bc07a3d30
|
Prepped for 1.3.3
|
2013-12-31 10:57:44 +01:00 |
|
Paul Bakker
|
3a8cb6ff8e
|
Proper const modifier in test_suite_x509_csr_check()
|
2013-12-30 20:41:54 +01:00 |
|
Paul Bakker
|
fe40f484fb
|
Do not print error on missing kill target in compat.sh
|
2013-12-19 17:47:24 +01:00 |
|
Paul Bakker
|
20ed0f7e6d
|
Fixed compat.sh arguments line in test-ref-configs.pl
|
2013-12-19 17:45:11 +01:00 |
|
Paul Bakker
|
a5320904bf
|
Fixed dependency on POLARSSL_GENPRIME in PK tests
|
2013-12-19 17:29:52 +01:00 |
|
Paul Bakker
|
30a3062782
|
Added ability to filter configs in test-ref-configs.pl
|
2013-12-19 17:09:49 +01:00 |
|
Paul Bakker
|
474c2ce05f
|
Fixed dependencies for some tests
|
2013-12-19 16:40:30 +01:00 |
|
Paul Bakker
|
5a607d26b7
|
Merged IPv6 support in the NET module
|
2013-12-17 14:34:19 +01:00 |
|
Manuel Pégourié-Gonnard
|
c9baa873ca
|
Force server to IPv4 in compat.s
|
2013-12-17 14:10:58 +01:00 |
|
Manuel Pégourié-Gonnard
|
0759d369e6
|
Fix ciphersuite selection in compat.sh
|
2013-12-17 11:50:52 +01:00 |
|
Manuel Pégourié-Gonnard
|
31a2325810
|
Add ECDH_ECDSA suites to compat.sh
|
2013-12-17 11:32:31 +01:00 |
|
Manuel Pégourié-Gonnard
|
07b54e06da
|
Fix EC suites version requirements in compat.sh
|
2013-12-17 11:32:31 +01:00 |
|
Manuel Pégourié-Gonnard
|
452f6ba1a6
|
compat.sh cleanups
|
2013-12-17 11:26:59 +01:00 |
|
Manuel Pégourié-Gonnard
|
a60fe8943d
|
Add mpi_safe_cond_swap()
|
2013-12-05 15:58:38 +01:00 |
|
Manuel Pégourié-Gonnard
|
357ff65a51
|
Details in ecp_mul_mxz()
|
2013-12-05 15:58:38 +01:00 |
|
Manuel Pégourié-Gonnard
|
fe0af405f9
|
Adapt ecp_gen_keypair() to Curve25519
|
2013-12-05 15:58:38 +01:00 |
|
Manuel Pégourié-Gonnard
|
9a4a5ac4de
|
Fix bug in mpi_set_bit
|
2013-12-05 15:58:38 +01:00 |
|
Manuel Pégourié-Gonnard
|
a0179b8c4a
|
Change ecp_mul to handle Curve25519 too
|
2013-12-05 15:58:38 +01:00 |
|
Manuel Pégourié-Gonnard
|
312d2e8ea2
|
Adapt key checking functions for Curve25519
|
2013-12-05 15:58:38 +01:00 |
|
Paul Bakker
|
76af736a47
|
Merged splitting off curves from ecp.c into ecp_curves.c
|
2013-12-02 22:01:26 +01:00 |
|
Paul Bakker
|
a2ffccd09f
|
Fixed memory leak in new x509parse test
|
2013-12-02 21:56:37 +01:00 |
|
Manuel Pégourié-Gonnard
|
a0d758b917
|
Fix typo in test dependency
|
2013-12-02 16:34:24 +01:00 |
|
Paul Bakker
|
c680405135
|
Removed test for empty data_files/dir0
dir0 is not in git (empty directories cannot be added to git)
|
2013-12-02 15:26:02 +01:00 |
|
Paul Bakker
|
014f143c2a
|
Merged EC key generation support
|
2013-12-02 14:55:09 +01:00 |
|
Manuel Pégourié-Gonnard
|
0267e3dc9b
|
Add ecp_curve_info_from_name()
|
2013-11-30 15:10:14 +01:00 |
|
Manuel Pégourié-Gonnard
|
104ee1d1f6
|
Add ecp_genkey(), prettier wrapper
|
2013-11-30 14:35:07 +01:00 |
|
Manuel Pégourié-Gonnard
|
fbae2a1f53
|
Add tests for x509_crt_parse_path()
|
2013-11-28 18:07:39 +01:00 |
|
Paul Bakker
|
3ddfa663a5
|
Renamed test_offset to prevent clash with one in ctr_drbg.c
|
2013-11-26 17:45:20 +01:00 |
|
Paul Bakker
|
88cd22646c
|
Merged ciphersuite version improvements
|
2013-11-26 15:22:19 +01:00 |
|
Paul Bakker
|
3209ce3692
|
Merged ECP improvements
|
2013-11-26 15:19:17 +01:00 |
|
Manuel Pégourié-Gonnard
|
c6f03faeaf
|
Update compat.sh ciphersuite versions
|
2013-11-26 14:29:13 +01:00 |
|
Paul Bakker
|
e4c71f0e11
|
Merged Prime generation improvements
|
2013-11-25 14:27:28 +01:00 |
|
Paul Bakker
|
8fc30b178c
|
Various const fixes
|
2013-11-25 13:29:43 +01:00 |
|
Manuel Pégourié-Gonnard
|
378fb4b70a
|
Split mpi_is_prime() and make its first arg const
|
2013-11-22 19:40:32 +01:00 |
|
Manuel Pégourié-Gonnard
|
3e3d2b818c
|
Fix bug in mpi_safe_cond_assign()
|
2013-11-21 21:56:38 +01:00 |
|
Manuel Pégourié-Gonnard
|
71c2c21601
|
Add mpi_safe_cond_assign()
|
2013-11-21 21:56:38 +01:00 |
|