Tobias Brunner
5955db5b12
gmp: Don't parse PKCS1 v1.5 RSA signatures to verify them
...
Instead we generate the expected signature encoding and compare it to the
decrypted value.
Due to the lenient nature of the previous parsing code (minimum padding
length was not enforced, the algorithmIdentifier/OID parser accepts arbitrary
data after OIDs and in the parameters field etc.) it was susceptible to
Daniel Bleichenbacher's low-exponent attack (from 2006!), which allowed
forging signatures for keys that use low public exponents (i.e. e=3).
Since the public exponent is usually set to 0x10001 (65537) since quite a
while, the flaws in the previous code should not have had that much of a
practical impact in recent years.
Fixes: CVE-2018-16151, CVE-2018-16152
2018-09-21 18:51:58 +02:00
Tobias Brunner
64d88efac5
travis: Run long-running tests first to reduce overall build time
...
Moving the manual matrix inclusions further up would be even better but
that doesn't seem possible.
2018-09-21 11:03:47 +02:00
Tobias Brunner
231c087e3c
android: Disable capabilities in the android app
...
capset/capget are not in the NDK headers anymore, but we didn't use them
in the app anyway.
2018-09-21 11:01:26 +02:00
Tobias Brunner
7a6426082a
android: Fix implementation of change_state() method in Android IMC
...
The signature was changed with 731e043c8e ("libimcv: Reset of IMC state for
new measurement cycle").
2018-09-21 10:55:34 +02:00
Andreas Steffen
1dd382b888
Version bump to 5.7.0rc2
2018-09-18 16:03:23 +02:00
Tobias Brunner
b01327b5e1
swanctl: Document PPKs
2018-09-18 10:12:45 +02:00
Tobias Brunner
784d96e031
Fixed some typos, courtesy of codespell
2018-09-17 18:51:44 +02:00
Tobias Brunner
432e2a72b2
settings: Clarify that a key/value-pair can only occur once
2018-09-17 18:51:43 +02:00
Tobias Brunner
d601058a26
settings-test: Remove unused variable in printf() call
2018-09-17 18:51:43 +02:00
Tobias Brunner
c07dde4b7d
vici: Fix syntax error in Ruby bindings
...
I guess nobody uses these.
Fixes: 2c7cfe7630 ("vici: flush-certs command flushes certificate cache")
2018-09-17 18:51:43 +02:00
Tobias Brunner
f1889ca34a
imv-attestation: Don't use comma to separate statements
2018-09-17 18:51:43 +02:00
Tobias Brunner
f0d34f32a7
imv-agent: Don't use comma to separate statements
2018-09-17 18:51:43 +02:00
Tobias Brunner
52b6506a23
xauth-pam: Don't use comma to separate statements
2018-09-17 18:51:42 +02:00
Tobias Brunner
2c41fb6349
tnc-pdp: Don't use comma to separate statements
2018-09-17 18:51:42 +02:00
Tobias Brunner
bea10205b0
receiver: Don't use commas to separate statements
...
Maybe was in the INIT statement at some point.
2018-09-17 18:51:42 +02:00
Tobias Brunner
3552bba63a
manager: Restore direct return if database URI is not defined
...
There was an exit anyway because storage_create() returns NULL if the
database can't be created.
2018-09-17 18:51:42 +02:00
Tobias Brunner
1295558ab3
imv-os-agent: Remove useless assignment
...
`eval` will never be TNC_IMV_EVALUATION_RESULT_DONT_KNOW so we can
remove the if statement too.
2018-09-17 18:51:42 +02:00
Tobias Brunner
ddc797686f
pts: Remove commented call of inexistent function
2018-09-17 18:51:42 +02:00
Tobias Brunner
0b8d00adaf
counters: Fix exit status in error case
2018-09-17 18:51:42 +02:00
Tobias Brunner
66aca84eba
signcrl: Remove useless assignment
2018-09-17 18:51:41 +02:00
Tobias Brunner
020045f416
asn1: Remove useless assignment
2018-09-17 18:51:41 +02:00
Tobias Brunner
3ea33d15a2
mode-config: Remove useless assignment
2018-09-17 18:51:41 +02:00
Tobias Brunner
c503eec92e
keymat_v1: Remove useless assignment
2018-09-17 18:51:41 +02:00
Tobias Brunner
0af96ad5e7
kernel-netlink: Check return value of both halfs when installing default route in main table
2018-09-17 18:51:41 +02:00
Tobias Brunner
d51a28bd5c
botan: Fix leak if hasher initialization fails
2018-09-17 18:51:41 +02:00
Tobias Brunner
dc09570a12
botan: Share code to generate RSA EMSA PSS signature identifier strings
2018-09-17 18:51:40 +02:00
Tobias Brunner
2788529827
botan: Remove unnecessary nested blocks and simplify keyid allocation
2018-09-17 16:41:19 +02:00
Tobias Brunner
7855ad4c9e
daemon: Remove redundant assignment to time_format
2018-09-17 16:41:18 +02:00
Andreas Steffen
11b4a87050
Version bump to 5.7.0rc1
2018-09-16 09:30:18 +02:00
Andreas Steffen
9a4b47ef96
testing: Extended Botan scenarios
2018-09-16 09:30:18 +02:00
Tobias Brunner
d2a1834d01
NEWS: Added some news for 5.7.0
2018-09-12 18:41:53 +02:00
Tobias Brunner
bbe72f97f9
travis: Silence git checkout for Botan
2018-09-12 17:18:15 +02:00
Tobias Brunner
c46a94e0cc
Merge branch 'botan-plugin'
...
Adds a wrapper plugin for the Botan crypto library.
Closes strongswan/strongswan#109 .
2018-09-12 16:25:07 +02:00
Tobias Brunner
1bbb736edc
travis: Use a fix revision for Botan and speed up subsequent builds via ccache
2018-09-12 16:25:00 +02:00
Tobias Brunner
24af02b00d
travis: Use amalgamation build for Botan and build outside our source tree
...
This merges all source files into botan_all.cpp, which reduces the build
time by almost 50%. Building outside the strongSwan tree avoids analyzing
Botan with sonarqube.
2018-09-12 16:25:00 +02:00
Tobias Brunner
a80069e7bf
gcrypt: Make generic DH constructor static
2018-09-12 16:25:00 +02:00
Tobias Brunner
e5d5277467
travis: Build botan plugin also in the tests that build everything
2018-09-12 16:25:00 +02:00
Tobias Brunner
9c6bcb21f0
travis: Only add the sonarcloud addon for that build
2018-09-12 16:25:00 +02:00
Andreas Steffen
72a6831e7c
testing: Added botan/rw-cert scenario
2018-09-12 16:25:00 +02:00
Tobias Brunner
a5c682e87d
testing: Enable Botan and the plugin
...
ldconfig is required, otherwise the library won't be found by
strongSwan in the same session.
Should later be changed to 2.8.0 or a newer stable release.
2018-09-12 16:25:00 +02:00
Tobias Brunner
b4062c4bb7
botan: Add support for X25519
2018-09-12 16:25:00 +02:00
Tobias Brunner
40b3bf6ba7
botan: Simplify DH/ECDH key derivation
2018-09-12 16:25:00 +02:00
Tobias Brunner
125222dca7
test-vectors: Add the actual test vector from RFC 8031 for x25519
...
The existing test vector is from RFC 8037.
2018-09-12 16:25:00 +02:00
Tobias Brunner
e5e500c07e
ike-init: Fix leak if KE payload creation fails
2018-09-12 16:25:00 +02:00
Tobias Brunner
472efd3809
leak-detective: Add an option to ignore frees of unknown memory blocks
...
This also changes how unknown/corrupted memory is handled in the free()
and realloc() hooks in general.
Incorporates changes provided by Thomas Egerer who ran into a similar
issue.
2018-09-12 16:25:00 +02:00
Tobias Brunner
9ee23d5efa
travis: Add Botan build
...
We build Botan directly from the master branch until 2.8.0 is released.
2018-09-12 16:25:00 +02:00
Tobias Brunner
c064a5288e
leak-detective: Whitelist some Botan functions
...
Due to the mangled C++ function names it's tricky to be more specific. The
"leaked" allocations are from a static hashtable containing EC groups.
There is another leak caused by the locking allocator singleton
(triggered by the first function that uses it, usually initialization of
a cipher, but could be a hasher in other test runners), but we can avoid
that with a Botan config option.
2018-09-12 16:25:00 +02:00
Tobias Brunner
304d4ca57a
botan: Adhere to configured DH exponent length
2018-09-12 16:25:00 +02:00
Tobias Brunner
bd267c863f
botan: Encode private keys as PKCS#8
...
Since we can now parse that encoding directly we can simplify the private
key export and stick to PKCS#8.
2018-09-12 16:25:00 +02:00
Tobias Brunner
607f10dca4
botan: Load public/private keys generically
...
Simplifies public key loading and this way unencrypted PKCS#8-encoded
keys can be loaded directly without pkcs8 plugin (code for encrypted
keys could probably later be added, if necessary).
It also simplifies the implementation of private_key_t::get_public_key()
a lot.
2018-09-12 16:25:00 +02:00