@@ -12,21 +12,20 @@ concurrency:
1212
1313env :
1414 wolfssl : v5.8.4-stable
15- os : ubuntu-latest
16- cache_key : wolfssh-mlkem-wolfssl-${{ env.wolfssl }}-${{ env.os }}
15+ openssh : V_10_2_P1
1716
1817jobs :
1918 build_wolfssl :
20- name : Build wolfssl
21- runs-on : ${{ env.os }}
19+ name : Build wolfSSL
20+ runs-on : ubuntu-latest
2221 timeout-minutes : 4
2322 steps :
2423 - name : Checking cache for wolfSSL
2524 uses : actions/cache@v4
2625 id : cache-wolfssl
2726 with :
2827 path : build-dir/
29- key : ${{ env.cache_key }}
28+ key : wolfssh-mlkem-wolfssl- ${{ env.wolfssl }}b
3029 lookup-only : true
3130
3231 - name : Checkout, build, and install wolfSSL
@@ -36,27 +35,68 @@ jobs:
3635 repository : wolfSSL/wolfssl
3736 ref : ${{ env.wolfssl }}
3837 path : wolfssl
39- configure : --enable-wolfssh --enable-mlkem --enable-curve25519 --enable-base64encode --enable-cryptonly --disable-examples --disable-crypttests
38+ configure : --enable-wolfssh --enable-mlkem --enable-ed25519 --enable-ed25519-stream --enable-curve25519 --enable-base64encode --enable-cryptonly --disable-examples --disable-crypttests
39+ check : false
40+ install : true
41+
42+ build_openssh :
43+ runs-on : ubuntu-latest
44+ timeout-minutes : 4
45+ steps :
46+ - name : Checking cache for OpenSSH
47+ uses : actions/cache@v4
48+ id : cache-openssh
49+ with :
50+ path : build-dir/
51+ key : wolfssh-mlkem-openssh-${{ env.openssh }}
52+ lookup-only : true
53+
54+ - name : Checkout, build, and install wolfSSL
55+ if : steps.cache-openssh.outputs.cache-hit != 'true'
56+ uses : wolfSSL/actions-build-autotools-project@v1
57+ with :
58+ repository : openssh/openssh-portable
59+ ref : ${{ env.openssh }}
60+ path : openssh
61+ configure :
4062 check : false
4163 install : true
4264
4365 build_wolfssh :
44- name : Build wolfssh
45- runs-on : ${{ env.os }}
66+ name : Build wolfSSH
67+ runs-on : ubuntu-latest
4668 timeout-minutes : 4
47- needs : [build_wolfssl]
69+ needs : [build_wolfssl, build_openssh]
70+ env :
71+ build_dir : ${{ github.workspace }}/build-dir
4872 steps :
4973 - name : Checking cache for wolfSSL
5074 uses : actions/cache@v4
5175 with :
5276 path : build-dir/
53- key : wolfssh-mlkem-wolfssl-${{ env.wolfssl }}-${{ env.os }}
77+ key : wolfssh-mlkem-wolfssl-${{ env.wolfssl }}b
78+ fail-on-cache-miss : true
79+
80+ - name : Checking cache for OpenSSH
81+ uses : actions/cache@v4
82+ with :
83+ path : build-dir/
84+ key : wolfssh-mlkem-openssh-${{ env.openssh }}
5485 fail-on-cache-miss : true
5586
5687 - name : Checkout, build, and test wolfSSH
5788 uses : wolfSSL/actions-build-autotools-project@v1
5889 with :
5990 repository : wolfSSL/wolfssh
6091 path : wolfssh
61- configure : --with-wolfssl=${{ github.workspace }}/build-dir
92+ configure : --enable-debug -- with-wolfssl=${{ env.build_dir }}
6293 check : true
94+
95+ - name : Run connect test
96+ working-directory : ./wolfssh/
97+ run : |
98+ mkdir -p /var/empty
99+ ${{ env.build_dir }}/bin/ssh-keygen -f ~/.ssh/id_ed25519 -N "" -t ed25519
100+ cp ~/.ssh/id_ed25519.pub ~/.ssh/authorized_keys
101+ ${{ env.build_dir }}/sbin/sshd -p 22222 -o KbdInteractiveAuthentication=no -o PasswordAuthentication=no -o KexAlgorithms=mlkem768x25519-sha256
102+ ./examples/client/client -u root -i ~/.ssh/id_ed25519 -j ~/.ssh/id_ed25519.pub -c "ls /"
0 commit comments