31 lines
2.0 KiB
Bash
31 lines
2.0 KiB
Bash
#!/bin/bash
|
|
# masoara-go.sh: reteta Go a remedierii (profilul `go`) masurata cap la cap pe laptop: serverul din main.go (EXACT fragmentul retetei),
|
|
# construit cu Go-ul de pe Windows, pornit pe 127.0.0.1:8445; sonde Node 24 (OpenSSL 3.5.x): hibrid singur (trebuie ok), X25519 singur
|
|
# (reteta il lasa ca rezerva: trebuie ok, grup X25519), client TLS 1.2 (MinVersion 1.3: trebuie refuzat), HSTS prin curl -k, si scanerul
|
|
# AERE pe server (ce ar vedea clientul dupa reteta). Serverul e oprit la sfarsit; codul final e 0 numai cu toate cum trebuie.
|
|
set -u
|
|
D="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$D/go" || exit 2
|
|
echo "== go"; go version
|
|
go build -o proba-go-tls.exe main.go || { echo "build cazut"; exit 1; }
|
|
./proba-go-tls.exe 8445 > "$D/go-server.log" 2>&1 &
|
|
PID=$!
|
|
sleep 2
|
|
echo "server: $(head -1 "$D/go-server.log")"
|
|
rele=0
|
|
cere() { # $1 nume, $2 cod asteptat, $3... comanda
|
|
local nume="$1" ast="$2"; shift 2
|
|
out=$("$@" 2>&1); c=$?
|
|
if [ "$c" = "$ast" ]; then echo " OK $nume -> cod $c: $(printf '%s' "$out" | cut -c1-170)"; else echo " RAU $nume -> cod $c (asteptat $ast): $(printf '%s' "$out" | cut -c1-170)"; rele=$((rele + 1)); fi
|
|
}
|
|
cere "hibrid singur (X25519MLKEM768)" 0 node "$D/tls-sonda.mjs" 127.0.0.1 8445 X25519MLKEM768
|
|
cere "clasic singur (X25519, rezerva din reteta)" 0 node "$D/tls-sonda.mjs" 127.0.0.1 8445 X25519
|
|
cere "hibrid + clasic (preferinta)" 0 node "$D/tls-sonda.mjs" 127.0.0.1 8445 X25519MLKEM768:X25519
|
|
cere "client TLS 1.2 (MinVersion 1.3: refuz)" 1 node "$D/tls-sonda.mjs" 127.0.0.1 8445 X25519 TLSv1.2
|
|
echo "-- HSTS (curl -k, antetul)"; curl -sk -m 10 -D - -o /dev/null https://127.0.0.1:8445/ | grep -iE '^(strict-transport-security|HTTP)' | tr -d '\r'
|
|
echo "-- scanerul AERE pe serverul retetei"; node "$D/scaneaza-local.mjs" 8445 | cut -c1-700
|
|
kill $PID 2>/dev/null; sleep 1; ps -p $PID > /dev/null 2>&1 && { echo "serverul nu s-a oprit; taskkill"; taskkill //F //PID $PID > /dev/null 2>&1; }
|
|
rm -f proba-go-tls.exe
|
|
echo "reteta go: $((4 - rele)) din 4 sonde cum trebuie"
|
|
[ "$rele" = 0 ] && exit 0 || exit 1
|